-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. Deal with caution. -- -- Stay safe: -- • Never log in on unofficial Roblox sites or lookalike domains. -- • Real Roblox links use roblox.com (check the .com ending). -- • Treat fake Roblox login / "claim reward" pages as phishing. -- [[ End Rscripts Risk Notice ]] --[=[ d888b db db d888888b .d888b. db db db .d8b. 88' Y8b 88 88 `88' VP `8D 88 88 88 d8' `8b 88 88 88 88 odD' 88 88 88 88ooo88 88 ooo 88 88 88 .88' 88 88 88 88~~~88 88. ~8~ 88b d88 .88. j88. 88booo. 88b d88 88 88 @uniquadev Y888P ~Y8888P' Y888888P 888888D Y88888P ~Y8888P' YP YP CONVERTER ]=] -- Instances: 43 | Scripts: 3 | Modules: 2 | Tags: 0 local G2L = {}; -- Workspace.MainModule.builderx.fun G2L["1"] = Instance.new("ScreenGui", game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")); G2L["1"]["Name"] = [[builderx.fun]]; G2L["1"]["ZIndexBehavior"] = Enum.ZIndexBehavior.Sibling; -- Workspace.MainModule.builderx.fun.Frame G2L["2"] = Instance.new("Frame", G2L["1"]); G2L["2"]["BackgroundColor3"] = Color3.fromRGB(0, 0, 0); G2L["2"]["Size"] = UDim2.new(0, 591, 0, 377); G2L["2"]["Position"] = UDim2.new(0.20079, 0, 0.18068, 0); G2L["2"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); -- Workspace.MainModule.builderx.fun.Frame.UIStroke G2L["3"] = Instance.new("UIStroke", G2L["2"]); G2L["3"]["Thickness"] = 4; G2L["3"]["Color"] = Color3.fromRGB(255, 138, 4); G2L["3"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border; -- Workspace.MainModule.builderx.fun.Frame.UICorner G2L["4"] = Instance.new("UICorner", G2L["2"]); -- Workspace.MainModule.builderx.fun.Frame.TextLabel G2L["5"] = Instance.new("TextLabel", G2L["2"]); G2L["5"]["BorderSizePixel"] = 0; G2L["5"]["TextSize"] = 21; G2L["5"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 54); G2L["5"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["5"]["TextColor3"] = Color3.fromRGB(255, 255, 255); G2L["5"]["Size"] = UDim2.new(0, 464, 0, 50); G2L["5"]["BorderColor3"] = Color3.fromRGB(0, 0, 0); G2L["5"]["Text"] = [[Script Manager ]]; G2L["5"]["Position"] = UDim2.new(0.06997, 0, -0.01857, 0); -- Workspace.MainModule.builderx.fun.Frame.TextLabel G2L["6"] = Instance.new("TextLabel", G2L["2"]); G2L["6"]["BorderSizePixel"] = 0; G2L["6"]["TextSize"] = 21; G2L["6"]["BackgroundColor3"] = Color3.fromRGB(44, 44, 44); G2L["6"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["6"]["TextColor3"] = Color3.fromRGB(255, 134, 12); G2L["6"]["Size"] = UDim2.new(0, 88, 0, 45); G2L["6"]["BorderColor3"] = Color3.fromRGB(0, 0, 0); G2L["6"]["Text"] = [[]]; G2L["6"]["Position"] = UDim2.new(0.1912, 0, -0.01326, 0); -- Workspace.MainModule.builderx.fun.Frame.Frame G2L["7"] = Instance.new("Frame", G2L["2"]); G2L["7"]["BorderSizePixel"] = 0; G2L["7"]["BackgroundColor3"] = Color3.fromRGB(54, 54, 54); G2L["7"]["Size"] = UDim2.new(0, 464, 0, 50); G2L["7"]["Position"] = UDim2.new(0.06997, 0, 0.11406, 0); G2L["7"]["BorderColor3"] = Color3.fromRGB(0, 0, 0); -- Workspace.MainModule.builderx.fun.Frame.Frame.TextButton G2L["8"] = Instance.new("TextButton", G2L["7"]); G2L["8"]["BorderSizePixel"] = 0; G2L["8"]["TextSize"] = 21; G2L["8"]["TextColor3"] = Color3.fromRGB(255, 255, 255); G2L["8"]["BackgroundColor3"] = Color3.fromRGB(8, 8, 8); G2L["8"]["FontFace"] = Font.new([[rbxasset://fonts/families/SourceSansPro.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["8"]["Size"] = UDim2.new(0, 92, 0, 49); G2L["8"]["BorderColor3"] = Color3.fromRGB(0, 0, 0); G2L["8"]["Text"] = [[Script 1]]; -- Workspace.MainModule.builderx.fun.Frame.Frame.TextButton.UICorner G2L["9"] = Instance.new("UICorner", G2L["8"]); -- Workspace.MainModule.builderx.fun.Frame.Frame.UIStroke G2L["a"] = Instance.new("UIStroke", G2L["7"]); G2L["a"]["Color"] = Color3.fromRGB(255, 255, 255); -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton G2L["b"] = Instance.new("TextButton", G2L["2"]); G2L["b"]["TextSize"] = 16; G2L["b"]["AutoButtonColor"] = false; G2L["b"]["TextColor3"] = Color3.fromRGB(255, 255, 255); G2L["b"]["BackgroundColor3"] = Color3.fromRGB(255, 117, 4); G2L["b"]["FontFace"] = Font.new([[rbxasset://fonts/families/GothamSSm.json]], Enum.FontWeight.Medium, Enum.FontStyle.Normal); G2L["b"]["Size"] = UDim2.new(0, 135, 0, 41); G2L["b"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["b"]["Text"] = [[Execute]]; G2L["b"]["Name"] = [[ExecuteButton]]; G2L["b"]["Position"] = UDim2.new(0.05434, 0, 0.8903, 0); -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.pheeowe G2L["c"] = Instance.new("ModuleScript", G2L["b"]); G2L["c"]["Name"] = [[pheeowe]]; -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.lucent G2L["d"] = Instance.new("ModuleScript", G2L["b"]); G2L["d"]["Name"] = [[lucent]]; -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.LocalScript G2L["e"] = Instance.new("LocalScript", G2L["b"]); -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.Script G2L["f"] = Instance.new("Script", G2L["b"]); -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.Script G2L["10"] = Instance.new("Script", G2L["b"]); -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.UICorner G2L["11"] = Instance.new("UICorner", G2L["b"]); G2L["11"]["CornerRadius"] = UDim.new(0, 6); -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.UIStroke G2L["12"] = Instance.new("UIStroke", G2L["b"]); G2L["12"]["Transparency"] = 0.5; G2L["12"]["Color"] = Color3.fromRGB(98, 98, 98); G2L["12"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border; -- Workspace.MainModule.builderx.fun.Frame.ExecuteButton.RemoteFunction G2L["13"] = Instance.new("RemoteFunction", G2L["b"]); -- Workspace.MainModule.builderx.fun.Frame.ClearButton G2L["14"] = Instance.new("TextButton", G2L["2"]); G2L["14"]["TextSize"] = 16; G2L["14"]["AutoButtonColor"] = false; G2L["14"]["TextColor3"] = Color3.fromRGB(255, 255, 255); G2L["14"]["BackgroundColor3"] = Color3.fromRGB(41, 41, 41); G2L["14"]["FontFace"] = Font.new([[rbxasset://fonts/families/GothamSSm.json]], Enum.FontWeight.Medium, Enum.FontStyle.Normal); G2L["14"]["Size"] = UDim2.new(0, 91, 0, 41); G2L["14"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["14"]["Text"] = [[Clear]]; G2L["14"]["Name"] = [[ClearButton]]; G2L["14"]["Position"] = UDim2.new(0.33853, 0, 0.8903, 0); -- Workspace.MainModule.builderx.fun.Frame.ClearButton.LocalScript G2L["15"] = Instance.new("LocalScript", G2L["14"]); -- Workspace.MainModule.builderx.fun.Frame.ClearButton.UICorner G2L["16"] = Instance.new("UICorner", G2L["14"]); G2L["16"]["CornerRadius"] = UDim.new(0, 6); -- Workspace.MainModule.builderx.fun.Frame.ClearButton.UIStroke G2L["17"] = Instance.new("UIStroke", G2L["14"]); G2L["17"]["Transparency"] = 0.5; G2L["17"]["Color"] = Color3.fromRGB(98, 98, 98); G2L["17"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border; -- Workspace.MainModule.builderx.fun.Frame.Editor G2L["18"] = Instance.new("Frame", G2L["2"]); G2L["18"]["BackgroundColor3"] = Color3.fromRGB(255, 109, 11); G2L["18"]["Size"] = UDim2.new(0, 458, 0, 223); G2L["18"]["Position"] = UDim2.new(0.05318, 0, 0.27388, 0); G2L["18"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["18"]["Name"] = [[Editor]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.UIStroke G2L["19"] = Instance.new("UIStroke", G2L["18"]); G2L["19"]["Transparency"] = 0.5; G2L["19"]["Color"] = Color3.fromRGB(98, 98, 98); G2L["19"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border; -- Workspace.MainModule.builderx.fun.Frame.Editor.UICorner G2L["1a"] = Instance.new("UICorner", G2L["18"]); G2L["1a"]["CornerRadius"] = UDim.new(0, 6); -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame G2L["1b"] = Instance.new("ScrollingFrame", G2L["18"]); G2L["1b"]["ZIndex"] = 5; G2L["1b"]["BorderSizePixel"] = 0; G2L["1b"]["CanvasSize"] = UDim2.new(0, 0, 0, 0); G2L["1b"]["HorizontalScrollBarInset"] = Enum.ScrollBarInset.ScrollBar; -- [ERROR] cannot convert TopImageContent, please report to "https://github.com/uniquadev/GuiToLuaConverter/issues" G2L["1b"]["TopImage"] = [[rbxassetid://148970562]]; G2L["1b"]["Name"] = [[EditorFrame]]; G2L["1b"]["BackgroundColor3"] = Color3.fromRGB(18, 20, 23); G2L["1b"]["MidImage"] = [[rbxassetid://148970562]]; -- [ERROR] cannot convert MidImageContent, please report to "https://github.com/uniquadev/GuiToLuaConverter/issues" -- [ERROR] cannot convert BottomImageContent, please report to "https://github.com/uniquadev/GuiToLuaConverter/issues" G2L["1b"]["BottomImage"] = [[rbxassetid://148970562]]; G2L["1b"]["Size"] = UDim2.new(0, 448, 0, 217); G2L["1b"]["Position"] = UDim2.new(0.0102, 0, 0.00927, 0); G2L["1b"]["BorderColor3"] = Color3.fromRGB(62, 62, 62); G2L["1b"]["ScrollBarThickness"] = 5; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Lines G2L["1c"] = Instance.new("TextLabel", G2L["1b"]); G2L["1c"]["ZIndex"] = 6; G2L["1c"]["TextSize"] = 15; G2L["1c"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["1c"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["1c"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["1c"]["TextColor3"] = Color3.fromRGB(255, 255, 255); G2L["1c"]["BackgroundTransparency"] = 1; G2L["1c"]["Size"] = UDim2.new(0, 30, 1, 0); G2L["1c"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["1c"]["Text"] = [[1]]; G2L["1c"]["Name"] = [[Lines]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source G2L["1d"] = Instance.new("TextBox", G2L["1b"]); G2L["1d"]["Name"] = [[Source]]; G2L["1d"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["1d"]["PlaceholderColor3"] = Color3.fromRGB(205, 205, 205); G2L["1d"]["ZIndex"] = 5; G2L["1d"]["TextSize"] = 15; G2L["1d"]["TextColor3"] = Color3.fromRGB(205, 205, 205); G2L["1d"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["1d"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["1d"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["1d"]["MultiLine"] = true; G2L["1d"]["ClearTextOnFocus"] = false; G2L["1d"]["Size"] = UDim2.new(0.91404, 0, 1, 0); G2L["1d"]["Position"] = UDim2.new(0, 30, 0, 0); G2L["1d"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["1d"]["Text"] = [[-- Your script here print("Hello from BuilderX!") create by TUBERS93os52]]; G2L["1d"]["BackgroundTransparency"] = 1; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source.Comments_ G2L["1e"] = Instance.new("TextLabel", G2L["1d"]); G2L["1e"]["ZIndex"] = 5; G2L["1e"]["TextSize"] = 15; G2L["1e"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["1e"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["1e"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["1e"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["1e"]["TextColor3"] = Color3.fromRGB(60, 201, 60); G2L["1e"]["BackgroundTransparency"] = 1; G2L["1e"]["Size"] = UDim2.new(1, 0, 1, 0); G2L["1e"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["1e"]["Text"] = [[]]; G2L["1e"]["Name"] = [[Comments_]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source.Globals_ G2L["1f"] = Instance.new("TextLabel", G2L["1d"]); G2L["1f"]["ZIndex"] = 5; G2L["1f"]["TextSize"] = 15; G2L["1f"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["1f"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["1f"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["1f"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["1f"]["TextColor3"] = Color3.fromRGB(133, 215, 248); G2L["1f"]["BackgroundTransparency"] = 1; G2L["1f"]["Size"] = UDim2.new(1, 0, 1, 0); G2L["1f"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["1f"]["Text"] = [[]]; G2L["1f"]["Name"] = [[Globals_]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source.Keywords_ G2L["20"] = Instance.new("TextLabel", G2L["1d"]); G2L["20"]["ZIndex"] = 5; G2L["20"]["TextSize"] = 15; G2L["20"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["20"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["20"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["20"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["20"]["TextColor3"] = Color3.fromRGB(249, 110, 125); G2L["20"]["BackgroundTransparency"] = 1; G2L["20"]["Size"] = UDim2.new(1, 0, 1, 0); G2L["20"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["20"]["Text"] = [[]]; G2L["20"]["Name"] = [[Keywords_]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source.RemoteHighlight_ G2L["21"] = Instance.new("TextLabel", G2L["1d"]); G2L["21"]["ZIndex"] = 5; G2L["21"]["TextSize"] = 15; G2L["21"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["21"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["21"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["21"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["21"]["TextColor3"] = Color3.fromRGB(0, 145, 255); G2L["21"]["BackgroundTransparency"] = 1; G2L["21"]["Size"] = UDim2.new(1, 0, 1, 0); G2L["21"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["21"]["Text"] = [[]]; G2L["21"]["Name"] = [[RemoteHighlight_]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source.Strings_ G2L["22"] = Instance.new("TextLabel", G2L["1d"]); G2L["22"]["ZIndex"] = 5; G2L["22"]["TextSize"] = 15; G2L["22"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["22"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["22"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["22"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["22"]["TextColor3"] = Color3.fromRGB(174, 242, 150); G2L["22"]["BackgroundTransparency"] = 1; G2L["22"]["Size"] = UDim2.new(1, 0, 1, 0); G2L["22"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["22"]["Text"] = [[]]; G2L["22"]["Name"] = [[Strings_]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source.Tokens_ G2L["23"] = Instance.new("TextLabel", G2L["1d"]); G2L["23"]["ZIndex"] = 5; G2L["23"]["TextSize"] = 15; G2L["23"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["23"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["23"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["23"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["23"]["TextColor3"] = Color3.fromRGB(255, 255, 255); G2L["23"]["BackgroundTransparency"] = 1; G2L["23"]["Size"] = UDim2.new(1, 0, 1, 0); G2L["23"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["23"]["Text"] = [[]]; G2L["23"]["Name"] = [[Tokens_]]; -- Workspace.MainModule.builderx.fun.Frame.Editor.EditorFrame.Source.Numbers_ G2L["24"] = Instance.new("TextLabel", G2L["1d"]); G2L["24"]["ZIndex"] = 4; G2L["24"]["TextSize"] = 15; G2L["24"]["TextXAlignment"] = Enum.TextXAlignment.Left; G2L["24"]["TextYAlignment"] = Enum.TextYAlignment.Top; G2L["24"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["24"]["FontFace"] = Font.new([[rbxasset://fonts/families/Inconsolata.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["24"]["TextColor3"] = Color3.fromRGB(255, 199, 0); G2L["24"]["BackgroundTransparency"] = 1; G2L["24"]["Size"] = UDim2.new(1, 0, 1, 0); G2L["24"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["24"]["Text"] = [[]]; G2L["24"]["Name"] = [[Numbers_]]; -- Workspace.MainModule.builderx.fun.Frame.LocalScript G2L["25"] = Instance.new("LocalScript", G2L["2"]); -- [ERROR] cannot convert Capabilities, please report to "https://github.com/uniquadev/GuiToLuaConverter/issues" G2L["25"]["Sandboxed"] = true; -- Workspace.MainModule.builderx.fun.MorphsButton G2L["26"] = Instance.new("TextButton", G2L["1"]); G2L["26"]["TextWrapped"] = true; G2L["26"]["RichText"] = true; G2L["26"]["TextSize"] = 14; G2L["26"]["TextScaled"] = true; G2L["26"]["TextColor3"] = Color3.fromRGB(0, 0, 0); G2L["26"]["BackgroundColor3"] = Color3.fromRGB(0, 0, 0); G2L["26"]["FontFace"] = Font.new([[rbxasset://fonts/families/FredokaOne.json]], Enum.FontWeight.Regular, Enum.FontStyle.Normal); G2L["26"]["Size"] = UDim2.new(0, 126, 0, 122); G2L["26"]["BorderColor3"] = Color3.fromRGB(28, 43, 54); G2L["26"]["Text"] = [[]]; G2L["26"]["Name"] = [[MorphsButton]]; G2L["26"]["Position"] = UDim2.new(0.02053, 0, 0.6914, 0); -- Workspace.MainModule.builderx.fun.MorphsButton.Script G2L["27"] = Instance.new("Script", G2L["26"]); -- [ERROR] cannot convert Capabilities, please report to "https://github.com/uniquadev/GuiToLuaConverter/issues" G2L["27"]["Sandboxed"] = true; -- Workspace.MainModule.builderx.fun.MorphsButton.Script G2L["28"] = Instance.new("Script", G2L["26"]); -- [ERROR] cannot convert Capabilities, please report to "https://github.com/uniquadev/GuiToLuaConverter/issues" G2L["28"]["Sandboxed"] = true; -- Workspace.MainModule.builderx.fun.MorphsButton.UIStroke G2L["29"] = Instance.new("UIStroke", G2L["26"]); G2L["29"]["Thickness"] = 4; G2L["29"]["ApplyStrokeMode"] = Enum.ApplyStrokeMode.Border; -- Workspace.MainModule.builderx.fun.MorphsButton.UICorner G2L["2a"] = Instance.new("UICorner", G2L["26"]); -- Workspace.MainModule.builderx.fun.MorphsButton.ImageLabel G2L["2b"] = Instance.new("ImageLabel", G2L["26"]); G2L["2b"]["BorderSizePixel"] = 0; G2L["2b"]["BackgroundColor3"] = Color3.fromRGB(255, 255, 255); G2L["2b"]["Image"] = [[rbxassetid://136092032803671]]; G2L["2b"]["Size"] = UDim2.new(0, 100, 0, 100); G2L["2b"]["BorderColor3"] = Color3.fromRGB(0, 0, 0); G2L["2b"]["Position"] = UDim2.new(0.06923, 0, 0.10317, 0); -- Require G2L wrapper local G2L_REQUIRE = require; local G2L_MODULES = {}; local function require(Module:ModuleScript) local ModuleState = G2L_MODULES[Module]; if ModuleState then if not ModuleState.Required then ModuleState.Required = true; ModuleState.Value = ModuleState.Closure(); end return ModuleState.Value; end; return G2L_REQUIRE(Module); end G2L_MODULES[G2L["c"]] = { Closure = function() local script = G2L["c"];-- // Environment changes in the VM are not supposed to alter the behaviour of the VM so we localise globals beforehand local type = type local pcall = pcall local error = error local tonumber = tonumber local assert = assert local setmetatable = setmetatable local string_format = string.format local table_move = table.move local table_pack = table.pack local table_unpack = table.unpack local table_create = table.create local table_insert = table.insert local table_remove = table.remove local table_concat = table.concat local coroutine_create = coroutine.create local coroutine_yield = coroutine.yield local coroutine_resume = coroutine.resume local coroutine_close = coroutine.close local buffer_fromstring = buffer.fromstring local buffer_len = buffer.len local buffer_readu8 = buffer.readu8 local buffer_readu32 = buffer.readu32 local buffer_readstring = buffer.readstring local buffer_readf32 = buffer.readf32 local buffer_readf64 = buffer.readf64 local bit32_bor = bit32.bor local bit32_band = bit32.band local bit32_btest = bit32.btest local bit32_rshift = bit32.rshift local bit32_lshift = bit32.lshift local bit32_extract = bit32.extract local ttisnumber = function(v) return type(v) == "number" end local ttisstring = function(v) return type(v) == "string" end local ttisboolean = function(v) return type(v) == "boolean" end local ttisfunction = function(v) return type(v) == "function" end -- // opList contains information about the instruction, each instruction is defined in this format: -- // {OP_NAME, OP_MODE, K_MODE, HAS_AUX} -- // OP_MODE specifies what type of registers the instruction uses if any -- 0 = NONE -- 1 = A -- 2 = AB -- 3 = ABC -- 4 = AD -- 5 = AE -- // K_MODE specifies if the instruction has a register that holds a constant table index, which will be directly converted to the constant in the 2nd pass -- 0 = NONE -- 1 = AUX -- 2 = C -- 3 = D -- 4 = AUX import -- 5 = AUX boolean low 1 bit -- 6 = AUX number low 24 bits -- // HAS_AUX boolean specifies whether the instruction is followed up with an AUX word, which may be used to execute the instruction. local opList = { { "NOP", 0, 0, false }, { "BREAK", 0, 0, false }, { "LOADNIL", 1, 0, false }, { "LOADB", 3, 0, false }, { "LOADN", 4, 0, false }, { "LOADK", 4, 3, false }, { "MOVE", 2, 0, false }, { "GETGLOBAL", 1, 1, true }, { "SETGLOBAL", 1, 1, true }, { "GETUPVAL", 2, 0, false }, { "SETUPVAL", 2, 0, false }, { "CLOSEUPVALS", 1, 0, false }, { "GETIMPORT", 4, 4, true }, { "GETTABLE", 3, 0, false }, { "SETTABLE", 3, 0, false }, { "GETTABLEKS", 3, 1, true }, { "SETTABLEKS", 3, 1, true }, { "GETTABLEN", 3, 0, false }, { "SETTABLEN", 3, 0, false }, { "NEWCLOSURE", 4, 0, false }, { "NAMECALL", 3, 1, true }, { "CALL", 3, 0, false }, { "RETURN", 2, 0, false }, { "JUMP", 4, 0, false }, { "JUMPBACK", 4, 0, false }, { "JUMPIF", 4, 0, false }, { "JUMPIFNOT", 4, 0, false }, { "JUMPIFEQ", 4, 0, true }, { "JUMPIFLE", 4, 0, true }, { "JUMPIFLT", 4, 0, true }, { "JUMPIFNOTEQ", 4, 0, true }, { "JUMPIFNOTLE", 4, 0, true }, { "JUMPIFNOTLT", 4, 0, true }, { "ADD", 3, 0, false }, { "SUB", 3, 0, false }, { "MUL", 3, 0, false }, { "DIV", 3, 0, false }, { "MOD", 3, 0, false }, { "POW", 3, 0, false }, { "ADDK", 3, 2, false }, { "SUBK", 3, 2, false }, { "MULK", 3, 2, false }, { "DIVK", 3, 2, false }, { "MODK", 3, 2, false }, { "POWK", 3, 2, false }, { "AND", 3, 0, false }, { "OR", 3, 0, false }, { "ANDK", 3, 2, false }, { "ORK", 3, 2, false }, { "CONCAT", 3, 0, false }, { "NOT", 2, 0, false }, { "MINUS", 2, 0, false }, { "LENGTH", 2, 0, false }, { "NEWTABLE", 2, 0, true }, { "DUPTABLE", 4, 3, false }, { "SETLIST", 3, 0, true }, { "FORNPREP", 4, 0, false }, { "FORNLOOP", 4, 0, false }, { "FORGLOOP", 4, 8, true }, { "FORGPREP_INEXT", 4, 0, false }, { "FASTCALL3", 3, 1, true }, { "FORGPREP_NEXT", 4, 0, false }, { "DEP_FORGLOOP_NEXT", 0, 0, false }, { "GETVARARGS", 2, 0, false }, { "DUPCLOSURE", 4, 3, false }, { "PREPVARARGS", 1, 0, false }, { "LOADKX", 1, 1, true }, { "JUMPX", 5, 0, false }, { "FASTCALL", 3, 0, false }, { "COVERAGE", 5, 0, false }, { "CAPTURE", 2, 0, false }, { "SUBRK", 3, 7, false }, { "DIVRK", 3, 7, false }, { "FASTCALL1", 3, 0, false }, { "FASTCALL2", 3, 0, true }, { "FASTCALL2K", 3, 1, true }, { "FORGPREP", 4, 0, false }, { "JUMPXEQKNIL", 4, 5, true }, { "JUMPXEQKB", 4, 5, true }, { "JUMPXEQKN", 4, 6, true }, { "JUMPXEQKS", 4, 6, true }, { "IDIV", 3, 0, false }, { "IDIVK", 3, 2, false }, } local LUA_MULTRET = -1 local LUA_GENERALIZED_TERMINATOR = -2 local function luau_newsettings() return { vectorCtor = function() error("vectorCtor was not provided") end, vectorSize = 4, useNativeNamecall = false, namecallHandler = function() error("Native __namecall handler was not provided") end, extensions = {}, callHooks = {}, errorHandling = true, generalizedIteration = true, allowProxyErrors = false, useImportConstants = false, staticEnvironment = {}, decodeOp = function(op) return op end } end local function luau_validatesettings(luau_settings) assert(type(luau_settings) == "table", "luau_settings should be a table") assert(type(luau_settings.vectorCtor) == "function", "luau_settings.vectorCtor should be a function") assert(type(luau_settings.vectorSize) == "number", "luau_settings.vectorSize should be a number") assert(type(luau_settings.useNativeNamecall) == "boolean", "luau_settings.useNativeNamecall should be a boolean") assert(type(luau_settings.namecallHandler) == "function", "luau_settings.namecallHandler should be a function") assert(type(luau_settings.extensions) == "table", "luau_settings.extensions should be a table of functions") assert(type(luau_settings.callHooks) == "table", "luau_settings.callHooks should be a table of functions") assert(type(luau_settings.errorHandling) == "boolean", "luau_settings.errorHandling should be a boolean") assert(type(luau_settings.generalizedIteration) == "boolean", "luau_settings.generalizedIteration should be a boolean") assert(type(luau_settings.allowProxyErrors) == "boolean", "luau_settings.allowProxyErrors should be a boolean") assert(type(luau_settings.staticEnvironment) == "table", "luau_settings.staticEnvironment should be a table") assert(type(luau_settings.useImportConstants) == "boolean", "luau_settings.useImportConstants should be a boolean") assert(type(luau_settings.decodeOp) == "function", "luau_settings.decodeOp should be a function") end local function getmaxline(module, protoid) local proto = if (protoid == nil) then module.mainProto else module.protoList[protoid] local size = -1 assert(proto.lineinfoenabled, "proto must have debug enabled") for pc = 1, proto.sizecode do local line = proto.instructionlineinfo[pc] size = if (line > size) then line else size end for i, subid in proto.protos do local maxline = getmaxline(module, subid) size = if (maxline > size) then maxline else size end return size end local function getcoverage(module, protoid, depth, callback, size) local proto = if (protoid == nil) then module.mainProto else module.protoList[protoid] assert(proto.lineinfoenabled, "proto must have debug enabled") local buffer = {} for pc = 1, proto.sizecode do local inst = proto.code[pc] local line = proto.instructionlineinfo[pc] if (inst.opcode ~= 69) then --[[ COVERAGE ]] continue end local hits = inst.E buffer[line] = if ((buffer[line] or 0) > hits) then buffer[line] else hits end callback(proto.debugname, proto.linedefined, depth, buffer, size) for i, subid in proto.protos do getcoverage(module, subid, depth + 1, callback, size) end end local function luau_getcoverage(module, protoid, callback) assert(type(module) == "table", "module must be a table") assert(type(protoid) == "number" or type(protoid) == "nil", "protoid must be a number or nil") assert(type(callback) == "function", "callback must be a function") getcoverage(module, protoid, 0, callback, getmaxline(module)) end local function resolveImportConstant(static, count, k0, k1, k2) local res = static[k0] if count < 2 or res == nil then return res end res = res[k1] if count < 3 or res == nil then return res end res = res[k2] return res end local function luau_deserialize(bytecode, luau_settings) if luau_settings == nil then luau_settings = luau_newsettings() else luau_validatesettings(luau_settings) end local stream = if type(bytecode) == "string" then buffer_fromstring(bytecode) else bytecode local cursor = 0 local function readByte() local byte = buffer_readu8(stream, cursor) cursor = cursor + 1 return byte end local function readWord() local word = buffer_readu32(stream, cursor) cursor = cursor + 4 return word end local function readFloat() local float = buffer_readf32(stream, cursor) cursor = cursor + 4 return float end local function readDouble() local double = buffer_readf64(stream, cursor) cursor = cursor + 8 return double end local function readVarInt() local result = 0 for i = 0, 4 do local value = readByte() result = bit32_bor(result, bit32_lshift(bit32_band(value, 0x7F), i * 7)) if not bit32_btest(value, 0x80) then break end end return result end local function readString() local size = readVarInt() if size == 0 then return "" else local str = buffer_readstring(stream, cursor, size) cursor = cursor + size return str end end local luauVersion = readByte() local typesVersion = 0 if luauVersion == 0 then error("the provided bytecode is an error message",0) elseif luauVersion < 3 or luauVersion > 6 then error("the version of the provided bytecode is unsupported",0) elseif luauVersion >= 4 then typesVersion = readByte() end local stringCount = readVarInt() local stringList = table_create(stringCount) for i = 1, stringCount do stringList[i] = readString() end local function readInstruction(codeList) local value = luau_settings.decodeOp(readWord()) local opcode = bit32_band(value, 0xFF) local opinfo = opList[opcode + 1] local opname = opinfo[1] local opmode = opinfo[2] local kmode = opinfo[3] local usesAux = opinfo[4] local inst = { opcode = opcode; opname = opname; opmode = opmode; kmode = kmode; usesAux = usesAux; } table_insert(codeList, inst) if opmode == 1 then --[[ A ]] inst.A = bit32_band(bit32_rshift(value, 8), 0xFF) elseif opmode == 2 then --[[ AB ]] inst.A = bit32_band(bit32_rshift(value, 8), 0xFF) inst.B = bit32_band(bit32_rshift(value, 16), 0xFF) elseif opmode == 3 then --[[ ABC ]] inst.A = bit32_band(bit32_rshift(value, 8), 0xFF) inst.B = bit32_band(bit32_rshift(value, 16), 0xFF) inst.C = bit32_band(bit32_rshift(value, 24), 0xFF) elseif opmode == 4 then --[[ AD ]] inst.A = bit32_band(bit32_rshift(value, 8), 0xFF) local temp = bit32_band(bit32_rshift(value, 16), 0xFFFF) inst.D = if temp < 0x8000 then temp else temp - 0x10000 elseif opmode == 5 then --[[ AE ]] local temp = bit32_band(bit32_rshift(value, 8), 0xFFFFFF) inst.E = if temp < 0x800000 then temp else temp - 0x1000000 end if usesAux then local aux = readWord() inst.aux = aux table_insert(codeList, {value = aux, opname = "auxvalue" }) end return usesAux end local function checkkmode(inst, k) local kmode = inst.kmode if kmode == 1 then --// AUX inst.K = k[inst.aux + 1] elseif kmode == 2 then --// C inst.K = k[inst.C + 1] elseif kmode == 3 then--// D inst.K = k[inst.D + 1] elseif kmode == 4 then --// AUX import local extend = inst.aux local count = bit32_rshift(extend, 30) local id0 = bit32_band(bit32_rshift(extend, 20), 0x3FF) inst.K0 = k[id0 + 1] inst.KC = count if count == 2 then local id1 = bit32_band(bit32_rshift(extend, 10), 0x3FF) inst.K1 = k[id1 + 1] elseif count == 3 then local id1 = bit32_band(bit32_rshift(extend, 10), 0x3FF) local id2 = bit32_band(bit32_rshift(extend, 0), 0x3FF) inst.K1 = k[id1 + 1] inst.K2 = k[id2 + 1] end if luau_settings.useImportConstants then inst.K = resolveImportConstant( luau_settings.staticEnvironment, count, inst.K0, inst.K1, inst.K2 ) end elseif kmode == 5 then --// AUX boolean low 1 bit inst.K = bit32_extract(inst.aux, 0, 1) == 1 inst.KN = bit32_extract(inst.aux, 31, 1) == 1 elseif kmode == 6 then --// AUX number low 24 bits inst.K = k[bit32_extract(inst.aux, 0, 24) + 1] inst.KN = bit32_extract(inst.aux, 31, 1) == 1 elseif kmode == 7 then --// B inst.K = k[inst.B + 1] elseif kmode == 8 then --// AUX number low 16 bits inst.K = bit32_band(inst.aux, 0xf) end end local function readProto(bytecodeid) local maxstacksize = readByte() local numparams = readByte() local nups = readByte() local isvararg = readByte() ~= 0 if luauVersion >= 4 then readByte() --// flags local typesize = readVarInt(); cursor = cursor + typesize; end local sizecode = readVarInt() local codelist = table_create(sizecode) local skipnext = false for i = 1, sizecode do if skipnext then skipnext = false continue end skipnext = readInstruction(codelist) end local debugcodelist = table_create(sizecode) for i = 1, sizecode do debugcodelist[i] = codelist[i].opcode end local sizek = readVarInt() local klist = table_create(sizek) for i = 1, sizek do local kt = readByte() local k if kt == 0 then --// Nil k = nil elseif kt == 1 then --// Bool k = readByte() ~= 0 elseif kt == 2 then --// Number k = readDouble() elseif kt == 3 then --// String k = stringList[readVarInt()] elseif kt == 4 then --// Import k = readWord() elseif kt == 5 then --// Table local dataLength = readVarInt() k = table_create(dataLength) for i = 1, dataLength do k[i] = readVarInt() end elseif kt == 6 then --// Closure k = readVarInt() elseif kt == 7 then --// Vector local x,y,z,w = readFloat(), readFloat(), readFloat(), readFloat() if luau_settings.vectorSize == 4 then k = luau_settings.vectorCtor(x,y,z,w) else k = luau_settings.vectorCtor(x,y,z) end end klist[i] = k end -- // 2nd pass to replace constant references in the instruction for i = 1, sizecode do checkkmode(codelist[i], klist) end local sizep = readVarInt() local protolist = table_create(sizep) for i = 1, sizep do protolist[i] = readVarInt() + 1 end local linedefined = readVarInt() local debugnameindex = readVarInt() local debugname if debugnameindex ~= 0 then debugname = stringList[debugnameindex] else debugname = "(??)" end -- // lineinfo local lineinfoenabled = readByte() ~= 0 local instructionlineinfo = nil if lineinfoenabled then local linegaplog2 = readByte() local intervals = bit32_rshift((sizecode - 1), linegaplog2) + 1 local lineinfo = table_create(sizecode) local abslineinfo = table_create(intervals) local lastoffset = 0 for j = 1, sizecode do lastoffset += readByte() lineinfo[j] = lastoffset end local lastline = 0 for j = 1, intervals do lastline += readWord() abslineinfo[j] = lastline % (2 ^ 32) end instructionlineinfo = table_create(sizecode) for i = 1, sizecode do --// p->abslineinfo[pc >> p->linegaplog2] + p->lineinfo[pc]; table_insert(instructionlineinfo, abslineinfo[bit32_rshift(i - 1, linegaplog2) + 1] + lineinfo[i]) end end -- // debuginfo if readByte() ~= 0 then local sizel = readVarInt() for i = 1, sizel do readVarInt() readVarInt() readVarInt() readByte() end local sizeupvalues = readVarInt() for i = 1, sizeupvalues do readVarInt() end end return { maxstacksize = maxstacksize; numparams = numparams; nups = nups; isvararg = isvararg; linedefined = linedefined; debugname = debugname; sizecode = sizecode; code = codelist; debugcode = debugcodelist; sizek = sizek; k = klist; sizep = sizep; protos = protolist; lineinfoenabled = lineinfoenabled; instructionlineinfo = instructionlineinfo; bytecodeid = bytecodeid; } end -- userdataRemapping (not used in VM, left unused) if typesVersion == 3 then local index = readByte() while index ~= 0 do readVarInt() index = readByte() end end local protoCount = readVarInt() local protoList = table_create(protoCount) for i = 1, protoCount do protoList[i] = readProto(i - 1) end local mainProto = protoList[readVarInt() + 1] assert(cursor == buffer_len(stream), "deserializer cursor position mismatch") mainProto.debugname = "(main)" return { stringList = stringList; protoList = protoList; mainProto = mainProto; typesVersion = typesVersion; } end local function luau_load(module, env, luau_settings) if luau_settings == nil then luau_settings = luau_newsettings() else luau_validatesettings(luau_settings) end if type(module) ~= "table" then module = luau_deserialize(module, luau_settings) end local protolist = module.protoList local mainProto = module.mainProto local breakHook = luau_settings.callHooks.breakHook local stepHook = luau_settings.callHooks.stepHook local interruptHook = luau_settings.callHooks.interruptHook local panicHook = luau_settings.callHooks.panicHook local alive = true local function luau_close() alive = false end local function luau_wrapclosure(module, proto, upvals) local function luau_execute(...) local debugging, stack, protos, code, varargs if luau_settings.errorHandling then debugging, stack, protos, code, varargs = ... else --// Copied from error handling wrapper local passed = table_pack(...) stack = table_create(proto.maxstacksize) varargs = { len = 0, list = {}, } table_move(passed, 1, proto.numparams, 0, stack) if proto.numparams < passed.n then local start = proto.numparams + 1 local len = passed.n - proto.numparams varargs.len = len table_move(passed, start, start + len - 1, 1, varargs.list) end passed = nil debugging = {pc = 0, name = "NONE"} protos = proto.protos code = proto.code end local top, pc, open_upvalues, generalized_iterators = -1, 1, setmetatable({}, {__mode = "vs"}), setmetatable({}, {__mode = "ks"}) local constants = proto.k local debugopcodes = proto.debugcode local extensions = luau_settings.extensions local handlingBreak = false local inst, op while alive do if not handlingBreak then inst = code[pc] op = inst.opcode end handlingBreak = false debugging.pc = pc debugging.top = top debugging.name = inst.opname pc += 1 if stepHook then stepHook(stack, debugging, proto, module, upvals) end if op == 0 then --[[ NOP ]] --// Do nothing elseif op == 1 then --[[ BREAK ]] if breakHook then local results = table.pack(breakHook(stack, debugging, proto, module, upvals)) if results[1] then return table_unpack(results, 2, #results) end end pc -= 1 op = debugopcodes[pc] handlingBreak = true elseif op == 2 then --[[ LOADNIL ]] stack[inst.A] = nil elseif op == 3 then --[[ LOADB ]] stack[inst.A] = inst.B == 1 pc += inst.C elseif op == 4 then --[[ LOADN ]] stack[inst.A] = inst.D elseif op == 5 then --[[ LOADK ]] stack[inst.A] = inst.K elseif op == 6 then --[[ MOVE ]] stack[inst.A] = stack[inst.B] elseif op == 7 then --[[ GETGLOBAL ]] local kv = inst.K stack[inst.A] = extensions[kv] or env[kv] pc += 1 --// adjust for aux elseif op == 8 then --[[ SETGLOBAL ]] local kv = inst.K env[kv] = stack[inst.A] pc += 1 --// adjust for aux elseif op == 9 then --[[ GETUPVAL ]] local uv = upvals[inst.B + 1] stack[inst.A] = uv.store[uv.index] elseif op == 10 then --[[ SETUPVAL ]] local uv = upvals[inst.B + 1] uv.store[uv.index] = stack[inst.A] elseif op == 11 then --[[ CLOSEUPVALS ]] for i, uv in open_upvalues do if uv.index >= inst.A then uv.value = uv.store[uv.index] uv.store = uv uv.index = "value" --// self reference open_upvalues[i] = nil end end elseif op == 12 then --[[ GETIMPORT ]] if luau_settings.useImportConstants then stack[inst.A] = inst.K else local count = inst.KC local k0 = inst.K0 local import = extensions[k0] or env[k0] if count == 1 then stack[inst.A] = import elseif count == 2 then stack[inst.A] = import[inst.K1] elseif count == 3 then stack[inst.A] = import[inst.K1][inst.K2] end end pc += 1 --// adjust for aux elseif op == 13 then --[[ GETTABLE ]] stack[inst.A] = stack[inst.B][stack[inst.C]] elseif op == 14 then --[[ SETTABLE ]] stack[inst.B][stack[inst.C]] = stack[inst.A] elseif op == 15 then --[[ GETTABLEKS ]] local index = inst.K stack[inst.A] = stack[inst.B][index] pc += 1 --// adjust for aux elseif op == 16 then --[[ SETTABLEKS ]] local index = inst.K stack[inst.B][index] = stack[inst.A] pc += 1 --// adjust for aux elseif op == 17 then --[[ GETTABLEN ]] stack[inst.A] = stack[inst.B][inst.C + 1] elseif op == 18 then --[[ SETTABLEN ]] stack[inst.B][inst.C + 1] = stack[inst.A] elseif op == 19 then --[[ NEWCLOSURE ]] local newPrototype = protolist[protos[inst.D + 1]] local nups = newPrototype.nups local upvalues = table_create(nups) stack[inst.A] = luau_wrapclosure(module, newPrototype, upvalues) for i = 1, nups do local pseudo = code[pc] pc += 1 local type = pseudo.A if type == 0 then --// value local upvalue = { value = stack[pseudo.B], index = "value",--// self reference } upvalue.store = upvalue upvalues[i] = upvalue elseif type == 1 then --// reference local index = pseudo.B local prev = open_upvalues[index] if prev == nil then prev = { index = index, store = stack, } open_upvalues[index] = prev end upvalues[i] = prev elseif type == 2 then --// upvalue upvalues[i] = upvals[pseudo.B + 1] end end elseif op == 20 then --[[ NAMECALL ]] local A = inst.A local B = inst.B local kv = inst.K local sb = stack[B] stack[A + 1] = sb pc += 1 --// adjust for aux local useFallback = true --// Special handling for native namecall behaviour local useNativeHandler = luau_settings.useNativeNamecall if useNativeHandler then local nativeNamecall = luau_settings.namecallHandler local callInst = code[pc] local callOp = callInst.opcode --// Copied from the CALL handler under local callA, callB, callC = callInst.A, callInst.B, callInst.C if stepHook then stepHook(stack, debugging, proto, module, upvals) end if interruptHook then interruptHook(stack, debugging, proto, module, upvals) end local params = if callB == 0 then top - callA else callB - 1 local ret_list = table_pack( nativeNamecall(kv, table_unpack(stack, callA + 1, callA + params)) ) if ret_list[1] == true then useFallback = false pc += 1 --// Skip next CALL instruction inst = callInst op = callOp debugging.pc = pc debugging.name = inst.opname table_remove(ret_list, 1) local ret_num = ret_list.n - 1 if callC == 0 then top = callA + ret_num - 1 else ret_num = callC - 1 end table_move(ret_list, 1, ret_num, callA, stack) end end if useFallback then stack[A] = sb[kv] end elseif op == 21 then --[[ CALL ]] if interruptHook then interruptHook(stack, debugging, proto, module, upvals) end local A, B, C = inst.A, inst.B, inst.C local params = if B == 0 then top - A else B - 1 local func = stack[A] local ret_list = table_pack( func(table_unpack(stack, A + 1, A + params)) ) local ret_num = ret_list.n if C == 0 then top = A + ret_num - 1 else ret_num = C - 1 end table_move(ret_list, 1, ret_num, A, stack) elseif op == 22 then --[[ RETURN ]] if interruptHook then interruptHook(stack, debugging, proto, module, upvals) end local A = inst.A local B = inst.B local b = B - 1 local nresults if b == LUA_MULTRET then nresults = top - A + 1 else nresults = B - 1 end return table_unpack(stack, A, A + nresults - 1) elseif op == 23 then --[[ JUMP ]] pc += inst.D elseif op == 24 then --[[ JUMPBACK ]] if interruptHook then interruptHook(stack, debugging, proto, module, upvals) end pc += inst.D elseif op == 25 then --[[ JUMPIF ]] if stack[inst.A] then pc += inst.D end elseif op == 26 then --[[ JUMPIFNOT ]] if not stack[inst.A] then pc += inst.D end elseif op == 27 then --[[ JUMPIFEQ ]] if stack[inst.A] == stack[inst.aux] then pc += inst.D else pc += 1 end elseif op == 28 then --[[ JUMPIFLE ]] if stack[inst.A] <= stack[inst.aux] then pc += inst.D else pc += 1 end elseif op == 29 then --[[ JUMPIFLT ]] if stack[inst.A] < stack[inst.aux] then pc += inst.D else pc += 1 end elseif op == 30 then --[[ JUMPIFNOTEQ ]] if stack[inst.A] == stack[inst.aux] then pc += 1 else pc += inst.D end elseif op == 31 then --[[ JUMPIFNOTLE ]] if stack[inst.A] <= stack[inst.aux] then pc += 1 else pc += inst.D end elseif op == 32 then --[[ JUMPIFNOTLT ]] if stack[inst.A] < stack[inst.aux] then pc += 1 else pc += inst.D end elseif op == 33 then --[[ ADD ]] stack[inst.A] = stack[inst.B] + stack[inst.C] elseif op == 34 then --[[ SUB ]] stack[inst.A] = stack[inst.B] - stack[inst.C] elseif op == 35 then --[[ MUL ]] stack[inst.A] = stack[inst.B] * stack[inst.C] elseif op == 36 then --[[ DIV ]] stack[inst.A] = stack[inst.B] / stack[inst.C] elseif op == 37 then --[[ MOD ]] stack[inst.A] = stack[inst.B] % stack[inst.C] elseif op == 38 then --[[ POW ]] stack[inst.A] = stack[inst.B] ^ stack[inst.C] elseif op == 39 then --[[ ADDK ]] stack[inst.A] = stack[inst.B] + inst.K elseif op == 40 then --[[ SUBK ]] stack[inst.A] = stack[inst.B] - inst.K elseif op == 41 then --[[ MULK ]] stack[inst.A] = stack[inst.B] * inst.K elseif op == 42 then --[[ DIVK ]] stack[inst.A] = stack[inst.B] / inst.K elseif op == 43 then --[[ MODK ]] stack[inst.A] = stack[inst.B] % inst.K elseif op == 44 then --[[ POWK ]] stack[inst.A] = stack[inst.B] ^ inst.K elseif op == 45 then --[[ AND ]] local value = stack[inst.B] stack[inst.A] = if value then stack[inst.C] or false else value elseif op == 46 then --[[ OR ]] local value = stack[inst.B] stack[inst.A] = if value then value else stack[inst.C] or false elseif op == 47 then --[[ ANDK ]] local value = stack[inst.B] stack[inst.A] = if value then inst.K or false else value elseif op == 48 then --[[ ORK ]] local value = stack[inst.B] stack[inst.A] = if value then value else inst.K or false elseif op == 49 then --[[ CONCAT ]] local B, C = inst.B, inst.C local success, s = pcall(table_concat, stack, "", B, C) if not success then s = stack[B] for i = B + 1, C do s ..= stack[i] end end stack[inst.A] = s elseif op == 50 then --[[ NOT ]] stack[inst.A] = not stack[inst.B] elseif op == 51 then --[[ MINUS ]] stack[inst.A] = -stack[inst.B] elseif op == 52 then --[[ LENGTH ]] stack[inst.A] = #stack[inst.B] elseif op == 53 then --[[ NEWTABLE ]] stack[inst.A] = table_create(inst.aux) pc += 1 --// adjust for aux elseif op == 54 then --[[ DUPTABLE ]] local template = inst.K local serialized = {} for _, id in template do serialized[constants[id + 1]] = nil end stack[inst.A] = serialized elseif op == 55 then --[[ SETLIST ]] local A = inst.A local B = inst.B local c = inst.C - 1 if c == LUA_MULTRET then c = top - B + 1 end table_move(stack, B, B + c - 1, inst.aux, stack[A]) pc += 1 --// adjust for aux elseif op == 56 then --[[ FORNPREP ]] local A = inst.A local limit = stack[A] if not ttisnumber(limit) then local number = tonumber(limit) if number == nil then error("invalid 'for' limit (number expected)") end stack[A] = number limit = number end local step = stack[A + 1] if not ttisnumber(step) then local number = tonumber(step) if number == nil then error("invalid 'for' step (number expected)") end stack[A + 1] = number step = number end local index = stack[A + 2] if not ttisnumber(index) then local number = tonumber(index) if number == nil then error("invalid 'for' index (number expected)") end stack[A + 2] = number index = number end if step > 0 then if not (index <= limit) then pc += inst.D end else if not (limit <= index) then pc += inst.D end end elseif op == 57 then --[[ FORNLOOP ]] if interruptHook then interruptHook(stack, debugging, proto, module, upvals) end local A = inst.A local limit = stack[A] local step = stack[A + 1] local index = stack[A + 2] + step stack[A + 2] = index if step > 0 then if index <= limit then pc += inst.D end else if limit <= index then pc += inst.D end end elseif op == 58 then --[[ FORGLOOP ]] if interruptHook then interruptHook(stack, debugging, proto, module, upvals) end local A = inst.A local res = inst.K top = A + 6 local it = stack[A] if (luau_settings.generalizedIteration == false) or ttisfunction(it) then local vals = { it(stack[A + 1], stack[A + 2]) } table_move(vals, 1, res, A + 3, stack) if stack[A + 3] ~= nil then stack[A + 2] = stack[A + 3] pc += inst.D else pc += 1 end else local ok, vals = coroutine_resume(generalized_iterators[inst], it, stack[A + 1], stack[A + 2]) if not ok then error(vals) end if vals == LUA_GENERALIZED_TERMINATOR then generalized_iterators[inst] = nil pc += 1 else table_move(vals, 1, res, A + 3, stack) stack[A + 2] = stack[A + 3] pc += inst.D end end elseif op == 59 then --[[ FORGPREP_INEXT ]] if not ttisfunction(stack[inst.A]) then error(string_format("attempt to iterate over a %s value", type(stack[inst.A]))) -- FORGPREP_INEXT encountered non-function value end pc += inst.D elseif op == 60 then --[[ FASTCALL3 ]] --[[ Skipped ]] pc += 1 --// adjust for aux elseif op == 61 then --[[ FORGPREP_NEXT ]] if not ttisfunction(stack[inst.A]) then error(string_format("attempt to iterate over a %s value", type(stack[inst.A]))) -- FORGPREP_NEXT encountered non-function value end pc += inst.D elseif op == 63 then --[[ GETVARARGS ]] local A = inst.A local b = inst.B - 1 if b == LUA_MULTRET then b = varargs.len top = A + b - 1 end table_move(varargs.list, 1, b, A, stack) elseif op == 64 then --[[ DUPCLOSURE ]] local newPrototype = protolist[inst.K + 1] --// correct behavior would be to reuse the prototype if possible but it would not be useful here local nups = newPrototype.nups local upvalues = table_create(nups) stack[inst.A] = luau_wrapclosure(module, newPrototype, upvalues) for i = 1, nups do local pseudo = code[pc] pc += 1 local type = pseudo.A if type == 0 then --// value local upvalue = { value = stack[pseudo.B], index = "value",--// self reference } upvalue.store = upvalue upvalues[i] = upvalue --// references dont get handled by DUPCLOSURE elseif type == 2 then --// upvalue upvalues[i] = upvals[pseudo.B + 1] end end elseif op == 65 then --[[ PREPVARARGS ]] --[[ Handled by wrapper ]] elseif op == 66 then --[[ LOADKX ]] local kv = inst.K stack[inst.A] = kv pc += 1 --// adjust for aux elseif op == 67 then --[[ JUMPX ]] if interruptHook then interruptHook(stack, debugging, proto, module, upvals) end pc += inst.E elseif op == 68 then --[[ FASTCALL ]] --[[ Skipped ]] elseif op == 69 then --[[ COVERAGE ]] inst.E += 1 elseif op == 70 then --[[ CAPTURE ]] --[[ Handled by CLOSURE ]] error("encountered unhandled CAPTURE") elseif op == 71 then --[[ SUBRK ]] stack[inst.A] = inst.K - stack[inst.C] elseif op == 72 then --[[ DIVRK ]] stack[inst.A] = inst.K / stack[inst.C] elseif op == 73 then --[[ FASTCALL1 ]] --[[ Skipped ]] elseif op == 74 then --[[ FASTCALL2 ]] --[[ Skipped ]] pc += 1 --// adjust for aux elseif op == 75 then --[[ FASTCALL2K ]] --[[ Skipped ]] pc += 1 --// adjust for aux elseif op == 76 then --[[ FORGPREP ]] local iterator = stack[inst.A] if luau_settings.generalizedIteration and not ttisfunction(iterator) then local loopInstruction = code[pc + inst.D] if generalized_iterators[loopInstruction] == nil then local function gen_iterator(...) for r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142, r143, r144, r145, r146, r147, r148, r149, r150, r151, r152, r153, r154, r155, r156, r157, r158, r159, r160, r161, r162, r163, r164, r165, r166, r167, r168, r169, r170, r171, r172, r173, r174, r175, r176, r177, r178, r179, r180, r181, r182, r183, r184, r185, r186, r187, r188, r189, r190, r191, r192, r193, r194, r195, r196, r197, r198, r199, r200 in ... do coroutine_yield({r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133, r134, r135, r136, r137, r138, r139, r140, r141, r142, r143, r144, r145, r146, r147, r148, r149, r150, r151, r152, r153, r154, r155, r156, r157, r158, r159, r160, r161, r162, r163, r164, r165, r166, r167, r168, r169, r170, r171, r172, r173, r174, r175, r176, r177, r178, r179, r180, r181, r182, r183, r184, r185, r186, r187, r188, r189, r190, r191, r192, r193, r194, r195, r196, r197, r198, r199, r200}) end coroutine_yield(LUA_GENERALIZED_TERMINATOR) end generalized_iterators[loopInstruction] = coroutine_create(gen_iterator) end end pc += inst.D elseif op == 77 then --[[ JUMPXEQKNIL ]] local kn = inst.KN if (stack[inst.A] == nil) ~= kn then pc += inst.D else pc += 1 end elseif op == 78 then --[[ JUMPXEQKB ]] local kv = inst.K local kn = inst.KN local ra = stack[inst.A] if (ttisboolean(ra) and (ra == kv)) ~= kn then pc += inst.D else pc += 1 end elseif op == 79 then --[[ JUMPXEQKN ]] local kv = inst.K local kn = inst.KN local ra = stack[inst.A] if (ra == kv) ~= kn then pc += inst.D else pc += 1 end elseif op == 80 then --[[ JUMPXEQKS ]] local kv = inst.K local kn = inst.KN local ra = stack[inst.A] if (ra == kv) ~= kn then pc += inst.D else pc += 1 end elseif op == 81 then --[[ IDIV ]] stack[inst.A] = stack[inst.B] // stack[inst.C] elseif op == 82 then --[[ IDIVK ]] stack[inst.A] = stack[inst.B] // inst.K else error("Unsupported Opcode: " .. inst.opname .. " op: " .. op) end end for i, uv in open_upvalues do uv.value = uv.store[uv.index] uv.store = uv uv.index = "value" --// self reference open_upvalues[i] = nil end for i, iter in generalized_iterators do coroutine_close(iter) generalized_iterators[i] = nil end end local function wrapped(...) local passed = table_pack(...) local stack = table_create(proto.maxstacksize) local varargs = { len = 0, list = {}, } table_move(passed, 1, proto.numparams, 0, stack) if proto.numparams < passed.n then local start = proto.numparams + 1 local len = passed.n - proto.numparams varargs.len = len table_move(passed, start, start + len - 1, 1, varargs.list) end passed = nil local debugging = {pc = 0, name = "NONE"} local result if luau_settings.errorHandling then result = table_pack(pcall(luau_execute, debugging, stack, proto.protos, proto.code, varargs)) else result = table_pack(true, luau_execute(debugging, stack, proto.protos, proto.code, varargs)) end if result[1] then return table_unpack(result, 2, result.n) else local message = result[2] if panicHook then panicHook(message, stack, debugging, proto, module, upvals) end if ttisstring(message) == false then if luau_settings.allowProxyErrors then error(message) else message = type(message) end end if proto.lineinfoenabled then return error(string_format("Fiu VM Error { Name: %s Line: %s PC: %s Opcode: %s }: %s", proto.debugname, proto.instructionlineinfo[debugging.pc], debugging.pc, debugging.name, message), 0) else return error(string_format("Fiu VM Error { Name: %s PC: %s Opcode: %s }: %s", proto.debugname, debugging.pc, debugging.name, message), 0) end end end if luau_settings.errorHandling then return wrapped else return luau_execute end end return luau_wrapclosure(module, mainProto), luau_close end return { luau_newsettings = luau_newsettings, luau_validatesettings = luau_validatesettings, luau_deserialize = luau_deserialize, luau_load = luau_load, luau_getcoverage = luau_getcoverage, } end; }; G2L_MODULES[G2L["d"]] = { Closure = function() local script = G2L["d"];--!optimize 2 --// LuauCeption - Full variant --// Luau 0.654 (8cc289fae430d9b0c22bde209fe5cf2d01751ff1) local STUB_WARN = true --// Vanilla Luau Vector3 implementation --// Provides Vector3 lib if no existing implementation is available --// Missing: xAxis, yAxis, zAxis, Magnitude, Unit, and all namecall functions --// Last checked: 11 December 2024 local type = type local typeof = typeof local Vector3 = Vector3 do local lOk, lRbx = pcall(require, "@lune/roblox") Vector3 = Vector3 or (if lOk then lRbx.Vector3 else nil) or (if vector then { new = vector.create } else nil) end if not Vector3 then local Vector3Internal = {} Vector3Internal.__index = Vector3Internal Vector3Internal.__type = "Vector3" Vector3Internal.__metatable = "This metatable is locked" Vector3 = {} Vector3.new = function(x, y, z) return setmetatable({X = x or 0, Y = y or 0, Z = z or 0}, Vector3Internal) end Vector3.zero = Vector3.new(0,0,0) Vector3.one = Vector3.new(1,1,1) table.freeze(Vector3) Vector3Internal.__concat = function() assert(false, "attempt to concatenate Vector3 with Vector3") return end Vector3Internal.__unm = function(self) return Vector3.new(-self.X, -self.Y, -self.Z) end Vector3Internal.__add = function(self, v3_2) v3_2 = if (typeof(v3_2) == "number") then Vector3.new(v3_2, v3_2, v3_2) else v3_2 return Vector3.new(self.X + v3_2.X, self.Y + v3_2.Y, self.Z + v3_2.Z) end Vector3Internal.__sub = function(self, v3_2) v3_2 = if (typeof(v3_2) == "number") then Vector3.new(v3_2, v3_2, v3_2) else v3_2 return Vector3.new(self.X - v3_2.X, self.Y - v3_2.Y, self.Z - v3_2.Z) end Vector3Internal.__mul = function(self, v3_2) v3_2 = if (typeof(v3_2) == "number") then Vector3.new(v3_2, v3_2, v3_2) else v3_2 return Vector3.new(self.X * v3_2.X, self.Y * v3_2.Y, self.Z * v3_2.Z) end Vector3Internal.__div = function(self, v3_2) v3_2 = if (typeof(v3_2) == "number") then Vector3.new(v3_2, v3_2, v3_2) else v3_2 return Vector3.new(self.X / v3_2.X, self.Y / v3_2.Y, self.Z / v3_2.Z) end Vector3Internal.__mod = function(_, t) if (typeof(t) == "table") and (t["__type"] == "Vector3") then assert(false, "attempt to perform arithmetic (mod) on Vector3") else assert(false, "attempt to perform arithmetic (mod) on Vector3 and "..typeof(t)) end return end Vector3Internal.__pow = function(_, t) if (typeof(t) == "table") and (t["__type"] == "Vector3") then assert(false, "attempt to perform arithmetic (pow) on Vector3") else assert(false, "attempt to perform arithmetic (pow) on Vector3 and "..typeof(t)) end return end Vector3Internal.__tostring = function(self) return self.X..", "..self.Y..", "..self.Z end Vector3Internal.__eq = function(self, v3_2) if (typeof(v3_2) ~= "Vector3") then return false end return (self.X == v3_2.X) and (self.Y == v3_2.Y) and (self.Z == v3_2.Z) end Vector3Internal.__lt = function(self, v3_2) if (typeof(v3_2) ~= "Vector3") then return false end return (self.X < v3_2.X) and (self.Y < v3_2.Y) and (self.Z < v3_2.Z) end Vector3Internal.__le = function(self, v3_2) if (typeof(v3_2) ~= "Vector3") then return false end return (self.X <= v3_2.X) and (self.Y <= v3_2.Y) and (self.Z <= v3_2.Z) end Vector3Internal.__len = function() assert(false, "attempt to get length of a Vector3 value") return end local oldtype = type type = function(v) return if (oldtype(v) == "table") and v["__type"] then v["__type"] else oldtype(v) end local oldtypeof = typeof typeof = function(v) return if (oldtypeof(v) == "table") and v["__type"] then v["__type"] else oldtypeof(v) end end local function no_op(num) return num end local bit_lshift = bit32.lshift local bit_rshift = bit32.rshift local bit_arshift = bit32.arshift local bit_and = bit32.band local bit_or = bit32.bor local bit_xor = bit32.bxor local bit_not = bit32.bnot local bit_extract = bit32.extract local bit_replace = bit32.replace -- X: a[0 __21] -- Y: a[22__31] -- | b[0 __11] -- Z: b[12__31] local constructor = Vector3.new local rt_i64_ZERO = constructor(0, 0, 0) local function rt_i64_from_u32(data_1, data_2) local x = bit_and(data_1, 0x3FFFFF) local y = bit_and(data_2, 0x3FFFFF) local z = bit_replace(bit_rshift(data_1, 22), bit_rshift(data_2, 22), 10, 10) return constructor(x, y, z) end local function rt_i64_is_zero(value) return value == rt_i64_ZERO end local function load_d1(value) return bit_replace(bit_and(value.X, 0x3FFFFF), value.Z, 22, 10) end local function load_d2(value) return bit_replace(bit_and(value.Y, 0x3FFFFF), bit_rshift(value.Z, 10), 22, 10) end local function rt_i64_into_u32(value) local x, y, z = value.X, value.Y, value.Z return bit_replace(bit_and(x, 0x3FFFFF), z, 22, 10), bit_replace(bit_and(y, 0x3FFFFF), bit_rshift(z, 10), 22, 10) end local function rt_i64_from_u64(value) return rt_i64_from_u32(bit_and(value % 0x100000000), bit_and(value / 0x100000000)) end local function rt_convert_f64_u64(value) local value_1, value_2 = rt_i64_into_u32(value) return value_1 + value_2 * 0x100000000 end local rt_i64_ONE = rt_i64_from_u64(1) local NUM_SIX_FOUR = rt_i64_from_u64(64) local NUM_BIT_26 = rt_i64_from_u64(0x4000000) local NUM_BIT_52 = rt_i64_from_u64(0x10000000000000) local function rt_add_i64(lhs, rhs) local lhs_1, lhs_2 = rt_i64_into_u32(lhs) local rhs_1, rhs_2 = rt_i64_into_u32(rhs) local data_1 = lhs_1 + rhs_1 local data_2 = lhs_2 + rhs_2 if data_1 >= 0x100000000 then data_1 = data_1 - 0x100000000 data_2 = data_2 + 1 end if data_2 >= 0x100000000 then data_2 = data_2 - 0x100000000 end return rt_i64_from_u32(data_1, data_2) end local function rt_sub_i64(lhs, rhs) local lhs_1, lhs_2 = rt_i64_into_u32(lhs) local rhs_1, rhs_2 = rt_i64_into_u32(rhs) local data_1 = lhs_1 - rhs_1 local data_2 = lhs_2 - rhs_2 if data_1 < 0 then data_1 = data_1 + 0x100000000 data_2 = data_2 - 1 end if data_2 < 0 then data_2 = data_2 + 0x100000000 end return rt_i64_from_u32(data_1, data_2) end local function rt_lt_u64(lhs, rhs) local data_l_2 = load_d2(lhs) local data_r_2 = load_d2(rhs) return data_l_2 < data_r_2 or (data_l_2 == data_r_2 and load_d1(lhs) < load_d1(rhs)) end local function rt_mul_i64(lhs, rhs) if rt_i64_is_zero(lhs) or rt_i64_is_zero(rhs) then return rt_i64_ZERO elseif rt_lt_u64(lhs, NUM_BIT_26) and rt_lt_u64(rhs, NUM_BIT_26) then return rt_i64_from_u64(load_d1(lhs) * load_d1(rhs)) end -- Divide each long into 4 chunks of 16 bits, and then add up 4x4 products_ -- We can skip products that would overflow_ local lhs_1, lhs_2 = rt_i64_into_u32(lhs) local rhs_1, rhs_2 = rt_i64_into_u32(rhs) local a48 = bit_rshift(lhs_2, 16) local a32 = bit_and(lhs_2, 0xFFFF) local a16 = bit_rshift(lhs_1, 16) local a00 = bit_and(lhs_1, 0xFFFF) local b48 = bit_rshift(rhs_2, 16) local b32 = bit_and(rhs_2, 0xFFFF) local b16 = bit_rshift(rhs_1, 16) local b00 = bit_and(rhs_1, 0xFFFF) local c00 = a00 * b00 local c16 = bit_rshift(c00, 16) c00 = bit_and(c00, 0xFFFF) c16 = c16 + a16 * b00 local c32 = bit_rshift(c16, 16) c16 = bit_and(c16, 0xFFFF) c16 = c16 + a00 * b16 c32 = c32 + bit_rshift(c16, 16) c16 = bit_and(c16, 0xFFFF) c32 = c32 + a32 * b00 local c48 = bit_rshift(c32, 16) c32 = bit_and(c32, 0xFFFF) c32 = c32 + a16 * b16 c48 = c48 + bit_rshift(c32, 16) c32 = bit_and(c32, 0xFFFF) c32 = c32 + a00 * b32 c48 = c48 + bit_rshift(c32, 16) c32 = bit_and(c32, 0xFFFF) c48 = c48 + a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48 c48 = bit_and(c48, 0xFFFF) local data_1 = bit_replace(c00, c16, 16, 16) local data_2 = bit_replace(c32, c48, 16, 16) return rt_i64_from_u32(data_1, data_2) end local function rt_bit_or_i64(lhs, rhs) local x = bit_or(lhs.X, rhs.X) local y = bit_or(lhs.Y, rhs.Y) local z = bit_or(lhs.Z, rhs.Z) return constructor(x, y, z) end local function rt_shl_i64(lhs, rhs) local count = rhs.X % 64 if count == 0 then return lhs elseif count < 32 then local pad = 32 - count local lhs_1, lhs_2 = rt_i64_into_u32(lhs) local data_1 = bit_lshift(lhs_1, count) local data_2 = bit_replace(bit_rshift(lhs_1, pad), lhs_2, count, pad) return rt_i64_from_u32(data_1, data_2) else local lhs_1 = load_d1(lhs) return rt_i64_from_u32(0, bit_lshift(lhs_1, count - 32)) end end local function rt_div_u64(lhs, rhs) if rt_i64_is_zero(rhs) then error("division by zero") elseif rt_i64_is_zero(lhs) then return rt_i64_ZERO, rt_i64_ZERO elseif rt_lt_u64(lhs, NUM_BIT_52) and rt_lt_u64(rhs, NUM_BIT_52) then local lhs_u = rt_convert_f64_u64(lhs) local rhs_u = rt_convert_f64_u64(rhs) return rt_i64_from_u64(lhs_u / rhs_u), rt_i64_from_u64(lhs_u % rhs_u) end local quotient = rt_i64_ZERO local remainder = rt_i64_ZERO local num_1, num_2 = rt_i64_into_u32(lhs) for i = 63, 0, -1 do local rem_1, rem_2 = rt_i64_into_u32(rt_shl_i64(remainder, rt_i64_ONE)) if i > 31 then rem_1 = bit_or(rem_1, bit_extract(num_2, i - 32, 1)) else rem_1 = bit_or(rem_1, bit_extract(num_1, i, 1)) end remainder = rt_i64_from_u32(rem_1, rem_2) if not rt_lt_u64(remainder, rhs) then remainder = rt_sub_i64(remainder, rhs) quotient = rt_bit_or_i64(quotient, rt_shl_i64(rt_i64_ONE, rt_i64_from_u32(i, 0))) end end return quotient, remainder end local function rt_i64_is_negative(value) return value.Z >= 0x80000 end local function rt_i64_negate(value) local value_1, value_2 = rt_i64_into_u32(value) local data_1 = bit_not(value_1) + 1 local data_2 = bit_not(value_2) if data_1 >= 0x100000000 then data_1 = data_1 - 0x100000000 data_2 = data_2 + 1 end if data_2 >= 0x100000000 then data_2 = data_2 - 0x100000000 end return rt_i64_from_u32(data_1, data_2) end local function rt_div_i64(lhs, rhs) local left_negative = rt_i64_is_negative(lhs) local right_negative = rt_i64_is_negative(rhs) if left_negative then lhs = rt_i64_negate(lhs) end if right_negative then rhs = rt_i64_negate(rhs) end local quotient, remainder = rt_div_u64(lhs, rhs) if left_negative ~= right_negative then quotient = rt_i64_negate(quotient) end if left_negative then remainder = rt_i64_negate(remainder) end return quotient, remainder end local function rt_bit_and_i64(lhs, rhs) local x = bit_and(lhs.X, rhs.X) local y = bit_and(lhs.Y, rhs.Y) local z = bit_and(lhs.Z, rhs.Z) return constructor(x, y, z) end local function rt_bit_not_i64(value) local x = bit_and(bit_not(value.X), 0xFFFFFF) local y = bit_and(bit_not(value.Y), 0xFFFFFF) local z = bit_and(bit_not(value.Z), 0xFFFFFF) return constructor(x, y, z) end local function rt_bit_xor_i64(lhs, rhs) local x = bit_xor(lhs.X, rhs.X) local y = bit_xor(lhs.Y, rhs.Y) local z = bit_xor(lhs.Z, rhs.Z) return constructor(x, y, z) end local function rt_shr_u64(lhs, rhs) local count = rhs.X % 64 if count == 0 then return lhs elseif count < 32 then local lhs_1, lhs_2 = rt_i64_into_u32(lhs) local data_1 = bit_replace(bit_rshift(lhs_1, count), lhs_2, 32 - count, count) local data_2 = bit_rshift(lhs_2, count) return rt_i64_from_u32(data_1, data_2) else local lhs_2 = load_d2(lhs) return rt_i64_from_u32(bit_rshift(lhs_2, count - 32), 0) end end local function rt_shr_i64(lhs, rhs) local count = rhs.X % 64 if count == 0 then return lhs elseif count < 32 then local lhs_1, lhs_2 = rt_i64_into_u32(lhs) local data_1 = bit_replace(bit_rshift(lhs_1, count), lhs_2, 32 - count, count) local data_2 = bit_arshift(lhs_2, count) return rt_i64_from_u32(data_1, data_2) else local lhs_2 = load_d2(lhs) local data_1 = bit_arshift(lhs_2, count - 32) local data_2 = lhs_2 >= 0x80000000 and 0xFFFFFFFF or 0 return rt_i64_from_u32(data_1, data_2) end end local function rt_rotl_i64(lhs, rhs) if rt_i64_is_zero(rhs) then return lhs else local data_1 = rt_shl_i64(lhs, rhs) local data_2 = rt_shr_u64(lhs, rt_sub_i64(NUM_SIX_FOUR, rhs)) return rt_bit_or_i64(data_1, data_2) end end local function rt_rotr_i64(lhs, rhs) if rt_i64_is_zero(rhs) then return lhs else local data_1 = rt_shr_u64(lhs, rhs) local data_2 = rt_shl_i64(lhs, rt_sub_i64(NUM_SIX_FOUR, rhs)) return rt_bit_or_i64(data_1, data_2) end end local function rt_eq_i64(lhs, rhs) return lhs == rhs end local function rt_gt_u64(lhs, rhs) local data_l_2 = load_d2(lhs) local data_r_2 = load_d2(rhs) return data_l_2 > data_r_2 or (data_l_2 == data_r_2 and load_d1(lhs) > load_d1(rhs)) end local function rt_lt_i64(lhs, rhs) local neg_a = rt_i64_is_negative(lhs) local neg_b = rt_i64_is_negative(rhs) if neg_a and not neg_b then return true elseif not neg_a and neg_b then return false else return rt_i64_is_negative(rt_sub_i64(lhs, rhs)) end end local function rt_gt_i64(lhs, rhs) local neg_a = rt_i64_is_negative(lhs) local neg_b = rt_i64_is_negative(rhs) if neg_a and not neg_b then return false elseif not neg_a and neg_b then return true else return rt_i64_is_negative(rt_sub_i64(rhs, lhs)) end end local function rt_convert_f64_i32(num) return bit_xor(num, 0x80000000) - 0x80000000 end local assert = assert local math_abs = math.abs local math_fmod = math.fmod local math_modf = math.modf local math_round = math.round local math_sign = math.sign local math_min = math.min local math_max = math.max local function rt_add_i32(lhs, rhs) return bit_or(lhs + rhs, 0) end local function rt_sub_i32(lhs, rhs) return bit_or(lhs - rhs, 0) end local function rt_mul_i32(lhs, rhs) if (lhs + rhs) < 0x8000000 then return bit_or(lhs * rhs, 0) else local a16 = bit_rshift(lhs, 16) local a00 = bit_and(lhs, 0xFFFF) local b16 = bit_rshift(rhs, 16) local b00 = bit_and(rhs, 0xFFFF) local c00 = a00 * b00 local c16 = a16 * b00 + a00 * b16 return bit_or(c00 + bit_lshift(c16, 16), 0) end end local function rt_div_i32(lhs, rhs) assert(rhs ~= 0, "division by zero") lhs = rt_convert_f64_i32(lhs) rhs = rt_convert_f64_i32(rhs) return bit_or(math_modf(lhs / rhs), 0) end local function rt_div_u32(lhs, rhs) assert(rhs ~= 0, "division by zero") return bit_or(math_modf(lhs / rhs), 0) end local function rt_rem_i32(lhs, rhs) assert(rhs ~= 0, "division by zero") lhs = rt_convert_f64_i32(lhs) rhs = rt_convert_f64_i32(rhs) return bit_or(math_fmod(lhs, rhs), 0) end local function rt_rem_i64(lhs, rhs) local _, remainder = rt_div_i64(lhs, rhs) return remainder end local function rt_rem_u64(lhs, rhs) local _, remainder = rt_div_u64(lhs, rhs) return remainder end local function rt_neg_f64(num) return -num end local function rt_min_f64(lhs, rhs) if rhs == rhs then return math_min(lhs, rhs) else return rhs end end local function rt_max_f64(lhs, rhs) if rhs == rhs then return math_max(lhs, rhs) else return rhs end end local buffer_create = buffer.create local CP_INSTANCE = buffer_create(8) local buffer_write_f64 = buffer.writef64 local buffer_read_i8 = buffer.readi8 local function rt_copysign_f64(lhs, rhs) buffer_write_f64(CP_INSTANCE, 0, rhs) if buffer_read_i8(CP_INSTANCE, 7) >= 0 then return (math_abs(lhs)) else return -math_abs(lhs) end end local function rt_nearest_f32(num) local result = math_round(num) if (math_abs(num) + 0.5) % 2 == 1 then return result - math_sign(result) else return result end end local bit_countlz = bit32.countlz local bit_countrz = bit32.countrz local function rt_popcnt_i32(num) num = num - bit_and(bit_rshift(num, 1), 0x55555555) num = bit_and(num, 0x33333333) + bit_and(bit_rshift(num, 2), 0x33333333) num = bit_and((num + bit_rshift(num, 4)), 0x0F0F0F0F) num = num + bit_rshift(num, 8) num = num + bit_rshift(num, 16) return bit_and(num, 0x0000003F) end local function rt_clz_i64(num) local data_1, data_2 = rt_i64_into_u32(num) local temp if data_2 == 0 then temp = bit_countlz(data_1) + 32 else temp = bit_countlz(data_2) end return rt_i64_from_u32(temp, 0) end local function rt_ctz_i64(num) local data_1, data_2 = rt_i64_into_u32(num) local temp if data_1 == 0 then temp = bit_countrz(data_2) + 32 else temp = bit_countrz(data_1) end return rt_i64_from_u32(temp, 0) end local function rt_popcnt_i64(num) local data_1, data_2 = rt_i64_into_u32(num) local temp = rt_popcnt_i32(data_1) + rt_popcnt_i32(data_2) return rt_i64_from_u32(temp, 0) end local function rt_le_i32(lhs, rhs) return rt_convert_f64_i32(lhs) <= rt_convert_f64_i32(rhs) end local function rt_lt_i32(lhs, rhs) return rt_convert_f64_i32(lhs) < rt_convert_f64_i32(rhs) end local function rt_ge_i32(lhs, rhs) return rt_convert_f64_i32(lhs) >= rt_convert_f64_i32(rhs) end local function rt_gt_i32(lhs, rhs) return rt_convert_f64_i32(lhs) > rt_convert_f64_i32(rhs) end local function rt_ne_i64(lhs, rhs) return not rt_eq_i64(lhs, rhs) end local function rt_le_i64(lhs, rhs) return rt_lt_i64(lhs, rhs) or rt_eq_i64(lhs, rhs) end local function rt_le_u64(lhs, rhs) return rt_lt_u64(lhs, rhs) or rt_eq_i64(lhs, rhs) end local function rt_ge_i64(lhs, rhs) return rt_gt_i64(lhs, rhs) or rt_eq_i64(lhs, rhs) end local function rt_ge_u64(lhs, rhs) return rt_gt_u64(lhs, rhs) or rt_eq_i64(lhs, rhs) end local bit_lrotate = bit32.lrotate local bit_rrotate = bit32.rrotate local function rt_shl_i32(lhs, rhs) return bit_lshift(lhs, rhs % 32) end local function rt_shr_u32(lhs, rhs) return bit_rshift(lhs, rhs % 32) end local function rt_shr_i32(lhs, rhs) return bit_arshift(lhs, rhs % 32) end local function rt_rotl_i32(lhs, rhs) return bit_lrotate(lhs, rhs % 32) end local function rt_rotr_i32(lhs, rhs) return bit_rrotate(lhs, rhs % 32) end local math_ceil = math.ceil local math_floor = math.floor local math_clamp = math.clamp local NUM_MIN_I64 = rt_i64_from_u32(0, 0x80000000) local NUM_MAX_I64 = rt_i64_from_u32(0xFFFFFFFF, 0x7FFFFFFF) local NUM_MAX_U64 = rt_i64_from_u32(0xFFFFFFFF, 0xFFFFFFFF) local function rt_truncate_f64(num) if num >= 0 then return math_floor(num) else return math_ceil(num) end end local function rt_wrap_i32_i64(num) local data_1, _ = rt_i64_into_u32(num) return data_1 end local function rt_truncate_i32_f64(num) return bit_or(rt_truncate_f64(num), 0) end local function rt_truncate_i64_f64(num) if num < 0 then local temp = rt_i64_from_u64(-num) return rt_i64_negate(temp) else return rt_i64_from_u64(num) end end local function rt_truncate_u64_f64(num) if num <= 0 then return rt_i64_ZERO else return rt_i64_from_u64(math_floor(num)) end end local function rt_saturate_i32_f64(num) local temp = math_clamp(rt_truncate_f64(num), -0x80000000, 0x7FFFFFFF) return bit_or(temp, 0) end local function rt_saturate_u32_f64(num) return math_clamp(rt_truncate_f64(num), 0, 0xFFFFFFFF) end local function rt_saturate_i64_f64(num) if num >= 2 ^ 63 - 1 then return NUM_MAX_I64 elseif num <= -2 ^ 63 then return NUM_MIN_I64 else return rt_truncate_i64_f64(num) end end local function rt_saturate_u64_f64(num) if num >= 2 ^ 64 then return NUM_MAX_U64 elseif num <= 0 then return rt_i64_ZERO else return rt_truncate_i64_f64(num) end end local function rt_extend_i32_n8(num) num = bit_and(num, 0xFF) if num >= 0x80 then return bit_or(num - 0x100, 0) else return num end end local function rt_extend_i32_n16(num) num = bit_and(num, 0xFFFF) if num >= 0x8000 then return bit_or(num - 0x10000, 0) else return num end end local function rt_extend_i64_n8(num) local data_1, _ = rt_i64_into_u32(num) data_1 = bit_and(data_1, 0xFF) if data_1 >= 0x80 then local temp = rt_i64_from_u32(-data_1 + 0x100, 0) return rt_i64_negate(temp) else return rt_i64_from_u32(data_1, 0) end end local function rt_extend_i64_n16(num) local data_1, _ = rt_i64_into_u32(num) data_1 = bit_and(data_1, 0xFFFF) if data_1 >= 0x8000 then local temp = rt_i64_from_u32(-data_1 + 0x10000, 0) return rt_i64_negate(temp) else return rt_i64_from_u32(data_1, 0) end end local function rt_extend_i64_n32(num) local data_1, _ = rt_i64_into_u32(num) if data_1 >= 0x80000000 then local temp = rt_i64_from_u32(-data_1 + 0x100000000, 0) return rt_i64_negate(temp) else return rt_i64_from_u32(data_1, 0) end end local function rt_extend_i64_i32(num) if num >= 0x80000000 then local temp = rt_i64_from_u32(-num + 0x100000000, 0) return rt_i64_negate(temp) else return rt_i64_from_u32(num, 0) end end local function rt_extend_i64_u32(num) return rt_i64_from_u32(num, 0) end local function rt_convert_f64_i64(num) if rt_i64_is_negative(num) then local temp = rt_i64_negate(num) return -rt_convert_f64_u64(temp) else return rt_convert_f64_u64(num) end end local RE_INSTANCE = buffer_create(8) local buffer_read_f32 = buffer.readf32 local buffer_read_f64 = buffer.readf64 local buffer_read_u32 = buffer.readu32 local buffer_write_f32 = buffer.writef32 local buffer_write_u32 = buffer.writeu32 local function rt_reinterpret_i32_f32(num) buffer_write_f32(RE_INSTANCE, 0, num) return buffer_read_u32(RE_INSTANCE, 0) end local function rt_reinterpret_i64_f64(num) buffer_write_f64(RE_INSTANCE, 0, num) local data_1 = buffer_read_u32(RE_INSTANCE, 0) local data_2 = buffer_read_u32(RE_INSTANCE, 4) return rt_i64_from_u32(data_1, data_2) end local function rt_reinterpret_f32_i32(num) buffer_write_u32(RE_INSTANCE, 0, num) return buffer_read_f32(RE_INSTANCE, 0) end local function rt_reinterpret_f64_i64(num) local data_1, data_2 = rt_i64_into_u32(num) buffer_write_u32(RE_INSTANCE, 0, data_1) buffer_write_u32(RE_INSTANCE, 4, data_2) return buffer_read_f64(RE_INSTANCE, 0) end local string_sub = string.sub local buffer_to_string = buffer.tostring local buffer_from_string = buffer.fromstring local buffer_len = buffer.len local buffer_copy = buffer.copy local buffer_fill = buffer.fill local buffer_read_u8 = buffer.readu8 local buffer_read_i16 = buffer.readi16 local buffer_read_u16 = buffer.readu16 local buffer_read_i32 = buffer.readi32 local buffer_write_u8 = buffer.writeu8 local buffer_write_u16 = buffer.writeu16 local function rt_load_i32_i8(memory, addr) return bit_or(buffer_read_i8(memory.data, addr), 0) end local function rt_load_i32_u8(memory, addr) return buffer_read_u8(memory.data, addr) end local function rt_load_i32_i16(memory, addr) return bit_or(buffer_read_i16(memory.data, addr), 0) end local function rt_load_i32_u16(memory, addr) return buffer_read_u16(memory.data, addr) end local function rt_load_i32(memory, addr) return buffer_read_u32(memory.data, addr) end local function rt_load_i64_i8(memory, addr) local value = buffer_read_i8(memory.data, addr) if value >= 0 then return rt_i64_from_u32(value, 0) else return rt_i64_from_u32(value + 0x100000000, 0xFFFFFFFF) end end local function rt_load_i64_u8(memory, addr) return rt_i64_from_u32(buffer_read_u8(memory.data, addr), 0) end local function rt_load_i64_i16(memory, addr) local value = buffer_read_i16(memory.data, addr) if value >= 0 then return rt_i64_from_u32(value, 0) else return rt_i64_from_u32(value + 0x100000000, 0xFFFFFFFF) end end local function rt_load_i64_u16(memory, addr) return rt_i64_from_u32(buffer_read_u16(memory.data, addr), 0) end local function rt_load_i64_i32(memory, addr) local value = buffer_read_i32(memory.data, addr) if value >= 0 then return rt_i64_from_u32(value, 0) else return rt_i64_from_u32(value + 0x100000000, 0xFFFFFFFF) end end local function rt_load_i64_u32(memory, addr) return rt_i64_from_u32(buffer_read_u32(memory.data, addr), 0) end local function rt_load_i64(memory, addr) local data = memory.data local value_1 = buffer_read_u32(data, addr) local value_2 = buffer_read_u32(data, addr + 4) return rt_i64_from_u32(value_1, value_2) end local function rt_load_f32(memory, addr) return buffer_read_f32(memory.data, addr) end local function rt_load_f64(memory, addr) return buffer_read_f64(memory.data, addr) end local function rt_load_string(memory, addr, len) local temp = buffer_create(len) buffer_copy(temp, 0, memory.data, addr, len) return buffer_to_string(temp) end local function rt_store_i32_n8(memory, addr, value) buffer_write_u8(memory.data, addr, value) end local function rt_store_i32_n16(memory, addr, value) buffer_write_u16(memory.data, addr, value) end local function rt_store_i32(memory, addr, value) buffer_write_u32(memory.data, addr, value) end local function rt_store_i64_n8(memory, addr, value) local value_1, _ = rt_i64_into_u32(value) buffer_write_u8(memory.data, addr, value_1) end local function rt_store_i64_n16(memory, addr, value) local value_1, _ = rt_i64_into_u32(value) buffer_write_u16(memory.data, addr, value_1) end local function rt_store_i64_n32(memory, addr, value) local value_1, _ = rt_i64_into_u32(value) buffer_write_u32(memory.data, addr, value_1) end local function rt_store_i64(memory, addr, value) local data = memory.data local value_1, value_2 = rt_i64_into_u32(value) buffer_write_u32(data, addr, value_1) buffer_write_u32(data, addr + 4, value_2) end local function rt_store_f32(memory, addr, value) buffer_write_f32(memory.data, addr, value) end local function rt_store_f64(memory, addr, value) buffer_write_f64(memory.data, addr, value) end local function rt_store_string(memory, addr, data, len) local content = if not len or len == #data then data else string_sub(data, 1, len) local temp = buffer_from_string(content) buffer_copy(memory.data, addr, temp) end local function rt_store_copy(memory_1, addr_1, memory_2, addr_2, len) buffer_copy(memory_1.data, addr_1, memory_2.data, addr_2, len) end local function rt_store_fill(memory, addr, len, value) buffer_fill(memory.data, addr, value, len) end local WASM_PAGE_SIZE = 65536 local function rt_allocator_new(min, max) return { max = max, data = buffer_create(min * WASM_PAGE_SIZE) } end local function rt_allocator_size(memory) return buffer_len(memory.data) / WASM_PAGE_SIZE end local function rt_allocator_grow(memory, num) local old = rt_allocator_size(memory) local new = old + num if new <= memory.max then local reallocated = buffer_create(new * WASM_PAGE_SIZE) buffer_copy(reallocated, 0, memory.data) memory.data = reallocated return old else return 0xFFFFFFFF end end local memory_at_0 local FUNC_LIST = table.create(1443) local TABLE_LIST = table.create(0) local MEMORY_LIST = table.create(0) local GLOBAL_LIST = table.create(1) FUNC_LIST[14] = --[[ Luau::Compile::assignMutable(Luau::DenseHashMap, std::__2::equal_to>&, Luau::AstNameTable const&, char const* const*) ]] function(loc_0, loc_1, loc_2) local loc_3 = 0 local loc_4 = 0 local reg_0 local reg_1 while true do loc_4 = rt_sub_i32(GLOBAL_LIST[0].value, 16) GLOBAL_LIST[0].value = loc_4 reg_1 = FUNC_LIST[1007](loc_1, 9932) loc_3 = reg_1 rt_store_i32(memory_at_0, loc_4 + 12, loc_3) if loc_3 ~= 0 then while true do reg_0 = FUNC_LIST[15](loc_0, rt_add_i32(loc_4, 12)) rt_store_i32(memory_at_0, reg_0, 1) break end end while true do if loc_2 == 0 then break end loc_3 = rt_load_i32(memory_at_0, loc_2) if loc_3 == 0 then break end while true do reg_1 = FUNC_LIST[1007](loc_1, loc_3) loc_3 = reg_1 rt_store_i32(memory_at_0, loc_4 + 8, loc_3) if loc_3 ~= 0 then while true do reg_0 = FUNC_LIST[15](loc_0, rt_add_i32(loc_4, 8)) rt_store_i32(memory_at_0, reg_0, 1) break end end loc_3 = rt_load_i32(memory_at_0, loc_2 + 4) loc_2 = rt_add_i32(loc_2, 4) if loc_3 ~= 0 then continue end break end break end GLOBAL_LIST[0].value = rt_add_i32(loc_4, 16) break end end FUNC_LIST[15] = --[[ Luau::DenseHashMap, std::__2::equal_to>::operator[](Luau::AstName const&) ]] function(loc_0, loc_1) local loc_2 = 0 local loc_3 = 0 local loc_4 = 0 local loc_5 = 0 local loc_6 = 0 local loc_7 = 0 local loc_8 = 0 local loc_9 = 0 local reg_0 local desired while true do while true do loc_3 = rt_load_i32(memory_at_0, loc_0 + 8) loc_6 = rt_load_i32(memory_at_0, loc_0 + 4) if loc_3 < rt_shr_u32(rt_mul_i32(loc_6, 3), 2) then break end while true do if loc_3 == 0 then break end loc_4 = rt_load_i32(memory_at_0, loc_1) loc_8 = rt_load_i32(memory_at_0, loc_0 + 12) if loc_4 == loc_8 then break end loc_2 = bit_xor(rt_shr_u32(loc_4, 4), rt_shr_u32(loc_4, 9)) loc_7 = rt_sub_i32(loc_6, 1) loc_9 = rt_load_i32(memory_at_0, loc_0) loc_3 = 0 while true do loc_5 = bit_and(loc_2, loc_7) loc_2 = rt_load_i32(memory_at_0, rt_add_i32(rt_shl_i32(loc_5, 3), loc_9)) if loc_4 == loc_2 then desired = 1 break end if loc_2 == loc_8 then desired = 2 break end loc_3 = rt_add_i32(loc_3, 1) loc_2 = rt_add_i32(loc_5, loc_3) if loc_3 <= loc_7 then continue end break end if desired then if desired == 2 then desired = nil end break end break end if desired then if desired == 1 then desired = nil end break end FUNC_LIST[16](loc_0) loc_6 = rt_load_i32(memory_at_0, loc_0 + 4) break end while true do while true do loc_8 = rt_load_i32(memory_at_0, loc_0) loc_6 = rt_sub_i32(loc_6, 1) loc_5 = rt_load_i32(memory_at_0, loc_1) loc_3 = bit_and(loc_6, bit_xor(rt_shr_u32(loc_5, 4), rt_shr_u32(loc_5, 9))) loc_4 = rt_add_i32(loc_8, rt_shl_i32(loc_3, 3)) loc_2 = rt_load_i32(memory_at_0, loc_4) loc_9 = rt_load_i32(memory_at_0, loc_0 + 12) if loc_2 == loc_9 then break end if loc_2 == loc_5 then desired = 1 break end loc_2 = 0 while true do loc_2 = rt_add_i32(loc_2, 1) loc_3 = bit_and(loc_6, rt_add_i32(loc_3, loc_2)) loc_4 = rt_add_i32(rt_shl_i32(loc_3, 3), loc_8) loc_7 = rt_load_i32(memory_at_0, loc_4) if loc_9 == loc_7 then desired = 2 break end if loc_5 ~= loc_7 then continue end break end if desired then if desired == 2 then desired = nil end break end desired = 1 break end if desired then if desired == 1 then desired = nil end break end rt_store_i32(memory_at_0, loc_4, loc_5) rt_store_i32(memory_at_0, loc_0 + 8, rt_add_i32(rt_load_i32(memory_at_0, loc_0 + 8), 1)) break end reg_0 = rt_add_i32(loc_4, 4) break end return reg_0 end FUNC_LIST[16] = --[[ Luau::detail::DenseHashTable, std::__2::pair, Luau::detail::ItemInterfaceMap, std::__2::hash, std::__2::equal_to>::rehash() ]] function(loc_0) local loc_1 = 0 local loc_2 = 0 local loc_3 = 0 local loc_4 = 0 local loc_5 = 0 local loc_6 = 0 local loc_7 = 0 local loc_8 = 0 local loc_9 = 0 local loc_10 = 0 local loc_11 = 0 local loc_12 = 0 local reg_0 local desired while true do loc_11 = rt_load_i32(memory_at_0, loc_0 + 12) while true do loc_10 = rt_load_i32(memory_at_0, loc_0 + 4) loc_6 = (if loc_10 ~= 0 then rt_shl_i32(loc_10, 1) else 16) if loc_6 == 0 then while true do desired = 1 break end if desired then if desired == 1 then desired = nil end break end end loc_8 = bit_and(loc_6, 2) reg_0 = FUNC_LIST[1310](rt_shl_i32(loc_6, 3)) loc_7 = reg_0 loc_3 = rt_load_i32(memory_at_0, loc_0 + 12) if loc_6 >= 4 then while true do loc_9 = bit_and(loc_6, 4294967292) while true do loc_1 = rt_add_i32(rt_shl_i32(loc_2, 3), loc_7) rt_store_i32(memory_at_0, loc_1 + 4, 0) rt_store_i32(memory_at_0, loc_1, loc_3) rt_store_i32(memory_at_0, loc_1 + 8, loc_3) rt_store_i32(memory_at_0, loc_1 + 12, 0) rt_store_i32(memory_at_0, loc_1 + 20, 0) rt_store_i32(memory_at_0, loc_1 + 16, loc_3) rt_store_i32(memory_at_0, loc_1 + 28, 0) rt_store_i32(memory_at_0, loc_1 + 24, loc_3) loc_2 = rt_add_i32(loc_2, 4) loc_5 = rt_add_i32(loc_5, 4) if loc_9 ~= loc_5 then continue end break end if desired then break end break end if desired then if desired == 1 then desired = nil end break end end if loc_8 ~= 0 then while true do while true do loc_1 = rt_add_i32(rt_shl_i32(loc_2, 3), loc_7) rt_store_i32(memory_at_0, loc_1 + 4, 0) rt_store_i32(memory_at_0, loc_1, loc_3) loc_2 = rt_add_i32(loc_2, 1) loc_4 = rt_add_i32(loc_4, 1) if loc_8 ~= loc_4 then continue end break end if desired then break end break end if desired then if desired == 1 then desired = nil end break end end loc_10 = rt_load_i32(memory_at_0, loc_0 + 4) break end if loc_10 ~= 0 then while true do loc_8 = rt_sub_i32(loc_6, 1) loc_9 = 0 while true do loc_12 = rt_add_i32(rt_load_i32(memory_at_0, loc_0), rt_shl_i32(loc_9, 3)) loc_4 = rt_load_i32(memory_at_0, loc_12) if loc_4 ~= rt_load_i32(memory_at_0, loc_0 + 12) then while true do while true do while true do loc_1 = bit_and(loc_8, bit_xor(rt_shr_u32(loc_4, 4), rt_shr_u32(loc_4, 9))) loc_5 = rt_add_i32(rt_shl_i32(loc_1, 3), loc_7) loc_3 = rt_load_i32(memory_at_0, loc_5) if loc_11 == loc_3 then break end loc_2 = 0 if loc_3 == loc_4 then desired = 4 break end while true do loc_2 = rt_add_i32(loc_2, 1) loc_1 = bit_and(loc_8, rt_add_i32(loc_1, loc_2)) loc_5 = rt_add_i32(rt_shl_i32(loc_1, 3), loc_7) loc_3 = rt_load_i32(memory_at_0, loc_5) if loc_11 == loc_3 then desired = 5 break end if loc_3 ~= loc_4 then continue end break end if desired then if desired == 5 then desired = nil end break end desired = 4 break end if desired then if desired == 4 then desired = nil end break end rt_store_i32(memory_at_0, loc_5, loc_4) break end if desired then break end rt_store_i32(memory_at_0, loc_5, loc_4) rt_store_i32(memory_at_0, loc_5 + 4, rt_load_i32(memory_at_0, loc_12 + 4)) break end if desired then if desired == 2 then desired = nil continue end break end end loc_9 = rt_add_i32(loc_9, 1) if loc_10 ~= loc_9 then continue end break end break end end rt_store_i32(memory_at_0, loc_0 + 4, loc_6) loc_1 = rt_load_i32(memory_at_0, loc_0) rt_store_i32(memory_at_0, loc_0, loc_7) if loc_1 ~= 0 then while true do FUNC_LIST[1316](loc_1) break end end break end end FUNC_LIST[17] = --[[ Luau::Compile::trackValues(Luau::DenseHashMap, std::__2::equal_to>&, Luau::DenseHashMap>&, Luau::AstNode*) ]] function(loc_0, loc_1, loc_2) local loc_3 = 0 while true do loc_3 = rt_sub_i32(GLOBAL_LIST[0].value, 16) GLOBAL_LIST[0].value = loc_3 rt_store_i32(memory_at_0, loc_3 + 12, loc_1) rt_store_i32(memory_at_0, loc_3 + 8, loc_0) rt_store_i32(memory_at_0, loc_3 + 4, 13272) TABLE_LIST[0].data[rt_load_i32(memory_at_0, rt_load_i32(memory_at_0, loc_2))](loc_2, rt_add_i32(loc_3, 4)) GLOBAL_LIST[0].value = rt_add_i32(loc_3, 16) break end end FUNC_LIST[18] = --[[ Luau::Compile::ValueVisitor::~ValueVisitor() ]] function(loc_0) while true do FUNC_LIST[1317](loc_0, 12) break end end FUNC_LIST[19] = --[[ Luau::Compile::ValueVisitor::visit(Luau::AstStatLocal*) ]] function(loc_0, loc_1) local loc_2 = 0 local loc_3 = 0 local loc_4 = 0 local reg_0 local desired while true do while true do loc_3 = rt_load_i32(memory_at_0, loc_1 + 32) if loc_3 == 0 then break end while true do if rt_load_i32(memory_at_0, loc_1 + 40) == 0 then break end while true do loc_3 = rt_shl_i32(loc_2, 2) loc_4 = rt_load_i32(memory_at_0, rt_add_i32(loc_3, rt_load_i32(memory_at_0, loc_1 + 36))) reg_0 = FUNC_LIST[20](rt_load_i32(memory_at_0, loc_0 + 8), rt_add_i32(loc_3, rt_load_i32(memory_at_0, loc_1 + 28))) rt_store_i32(memory_at_0, reg_0, loc_4) loc_2 = rt_add_i32(loc_2, 1) loc_3 = rt_load_i32(memory_at_0, loc_1 + 32) if loc_2 >= loc_3 then desired = 2 break end if rt_load_i32(memory_at_0, loc_1 + 40) > loc_2 then continue end break end if desired then if desired == 2 then desired = nil end break end break end if desired then if desired == 1 then desired = nil end break end loc_2 = rt_load_i32(memory_at_0, loc_1 + 40) if loc_3 <= loc_2 then break end while true do reg_0 = FUNC_LIST[20](rt_load_i32(memory_at_0, loc_0 + 8), rt_add_i32(rt_load_i32(memory_at_0, loc_1 + 28), rt_shl_i32(loc_2, 2))) rt_store_i32(memory_at_0, reg_0, 0) loc_2 = rt_add_i32(loc_2, 1) if loc_2 < rt_load_i32(memory_at_0, loc_1 + 32) then continue end break end if desired then if desired == 1 then desired = nil end break end break end reg_0 = 1 break end return reg_0 end FUNC_LIST[20] = --[[ Luau::DenseHashMap>::operator[](Luau::AstLocal* const&) ]] function(loc_0, loc_1) local loc_2 = 0 local loc_3 = 0 local loc_4 = 0 local loc_5 = 0 local loc_6 = 0 local loc_7 = 0 local loc_8 = 0 local loc_9 = 0 local reg_0 local desired while true do while true do loc_3 = rt_load_i32(memory_at_0, loc_0 + 8) loc_6 = rt_load_i32(memory_at_0, loc_0 + 4) if loc_3 < rt_shr_u32(rt_mul_i32(loc_6, 3), 2) then break end while true do if loc_3 == 0 then break end loc_4 = rt_load_i32(memory_at_0, loc_1) loc_8 = rt_load_i32(memory_at_0, loc_0 + 12) if loc_4 == loc_8 then break end loc_2 = bit_xor(rt_shr_u32(loc_4, 4), rt_shr_u32(loc_4, 9)) loc_7 = rt_sub_i32(loc_6, 1) loc_9 = rt_load_i32(memory_at_0, loc_0) loc_3 = 0 while true do loc_5 = bit_and(loc_2, loc_7) loc_2 = rt_load_i32(memory_at_0, rt_add_i32(rt_mul_i32(loc_5, 12), loc_9)) if loc_4 == loc_2 then desired = 1 break end if loc_2 == loc_8 then desired = 2 break end loc_3 = rt_add_i32(loc_3, 1) loc_2 = rt_add_i32(loc_5, loc_3) if loc_3 <= loc_7 then continue end break end if desired then if desired == 2 then desired = nil end break end break end if desired then if desired == 1 then desired = nil end break end FUNC_LIST[25](loc_0) loc_6 = rt_load_i32(memory_at_0, loc_0 + 4) break end while true do while true do loc_8 = rt_load_i32(memory_at_0, loc_0) loc_6 = rt_sub_i32(loc_6, 1) loc_5 = rt_load_i32(memory_at_0, loc_1) loc_3 = bit_and(loc_6, bit_xor(rt_shr_u32(loc_5, 4), rt_shr_u32(loc_5, 9))) loc_4 = rt_add_i32(loc_8, rt_mul_i32(loc_3, 12)) loc_2 = rt_load_i32(memory_at_0, loc_4) loc_9 = rt_load_i32(memory_at_0, loc_0 + 12) if loc_2 == loc_9 then break end if loc_2 == loc_5 then desired = 1 break end loc_2 = 0 while true do loc_2 = rt_add_i32(loc_2, 1) loc_3 = bit_and(loc_6, rt_add_i32(loc_3, loc_2)) loc_4 = rt_add_i32(rt_mul_i32(loc_3, 12), loc_8) loc_7 = rt_load_i32(memory_at_0, loc_4) if loc_9 == loc_7 then desired = 2 break end if loc_5 ~= loc_7 then continue end break end if desired then if desired == 2 then desired = nil end break end desired = 1 break end if desired then if desired == 1 then desired = nil end break end rt_store_i32(memory_at_0, loc_4, loc_5) rt_store_i32(memory_at_0, loc_0 + 8, rt_add_i32(rt_load_i32(memory_at_0, loc_0 + 8), 1)) break end reg_0 = rt_add_i32(loc_4, 4) break end return reg_0 end FUNC_LIST[21] = --[[ Luau::Compile::ValueVisitor::visit(Luau::AstStatAssign*) ]] function(loc_0, loc_1) local loc_2 = 0 local loc_3 = 0 local loc_4 = 0 local reg_0 local desired while true do if rt_load_i32(memory_at_0, loc_1 + 32) ~= 0 then while true do while true do loc_2 = rt_load_i32(memory_at_0, rt_add_i32(rt_load_i32(memory_at_0, loc_1 + 28), rt_shl_i32(loc_3, 2))) loc_4 = rt_load_i32(memory_at_0, loc_2 + 4) while true do while true do if loc_2 == 0 then break end if rt_load_i32(memory_at_0, 61160) ~= loc_4 then break end reg_0 = FUNC_LIST[20](rt_load_i32(memory_at_0, loc_0 + 8), rt_add_i32(loc_2, 24)) rt_store_i32_n8(memory_at_0, reg_0 + 4, 1) desired = 3 break end if desired then if desired == 3 then desired = nil end break end while true do if loc_2 == 0 then break end if rt_load_i32(memory_at_0, 61168) ~= loc_4 then break end reg_0 = FUNC_LIST[15](rt_load_i32(memory_at_