local l_Workspace_0 = game:GetService("Workspace");
local l_RunService_0 = game:GetService("RunService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v5 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagMigrateRoactUtilsToReactUtils();
local l_Parent_0 = script.Parent.Parent;
local v7 = require(l_CorePackages_0.Roact);
local v8 = require(l_Parent_0.RoactUtilities.ExternalEventConnection);
local v9 = require(l_CorePackages_0.Rodux);
local v10 = require(l_CorePackages_0.RoactRodux);
local v11 = require(l_CorePackages_0.Cryo);
local function v14(v12, v13)
    v12 = v12 or {
        left = 0,
        right = 0,
        up = 0,
        pause = 0
    };
    if v13.type == "SetPlayerInput" then
        return v11.Dictionary.join(v12, {
            [v13.playerInput] = v13.value
        });
    else
        return v12;
    end;
end;
local function v19(v15, v16)
    v15 = v15 or {
        position = Vector2.new(0, 0),
        velocity = Vector2.new(0, 0),
        angle = 0,
        turnRate = 1.5707963267948966,
        throttleRate = 10
    };
    if v16.type == "GameStep" then
        local l_inputs_0 = v16.inputs;
        local l_delta_0 = v16.delta;
        return v11.Dictionary.join(v15, {
            position = v15.position + v15.velocity * l_delta_0,
            velocity = v15.velocity + ((l_inputs_0.up * v15.throttleRate) * l_delta_0) * Vector2.new(math.sin(v15.angle), -math.cos(v15.angle)),
            angle = v15.angle + ((l_inputs_0.right - l_inputs_0.left) * v15.turnRate) * l_delta_0
        });
    elseif v16.type == "SetPlayerRotation" then
        return v11.Dictionary.join(v15, {
            angle = v16.value
        });
    else
        return v15;
    end;
end;
local function _(v20, v21)
    v20 = v20 or 0;
    if v21.type == "GameStep" then
        return v20 + v21.delta;
    else
        return v20;
    end;
end;
local function v33(v23, v24)
    v23 = v23 or (function()
        return {
            {
                position = Vector2.new(-5, -5),
                velocity = Vector2.new(1, 0),
                size = 5
            },
            {
                position = Vector2.new(-5, 5),
                velocity = Vector2.new(1, 0),
                size = 3
            },
            {
                position = Vector2.new(5, 5),
                velocity = Vector2.new(0, -1),
                size = 5
            },
            {
                position = Vector2.new(5, -5),
                velocity = Vector2.new(0, 1),
                size = 3
            }
        };
    end)();
    if v24.type == "GameStep" then
        local l_delta_1 = v24.delta;
        local v26 = {};
        for v27, v28 in pairs(v23) do
            local l_X_0 = v28.position.X;
            local l_Y_0 = v28.position.Y;
            local l_X_1 = v28.velocity.X;
            local l_Y_1 = v28.velocity.Y;
            v26[v27] = {
                position = Vector2.new(l_X_0 + l_X_1 * l_delta_1, l_Y_0 + l_Y_1 * l_delta_1),
                velocity = Vector2.new(l_X_1, l_Y_1),
                size = v28.size
            };
        end;
        return v26;
    else
        return v23;
    end;
end;
local function _(v34)
    local v35 = false;
    if v34.playerInput == "pause" then
        v35 = v34.value == 1;
    end;
    return v35;
end;
local function _(v37, v38)
    v37 = v37 or false;
    if v38.type == "SetPlayerInput" then
        local v39 = false;
        if v38.playerInput == "pause" then
            v39 = v38.value == 1;
        end;
        if v39 then
            return not v37;
        end;
    end;
    return v37;
end;
local function v47(v41, v42)
    v41 = v41 or {};
    local v43 = {
        playerInputs = v14(v41.playerInputs, v42)
    };
    local v44 = v41.paused or false;
    local v45;
    if v42.type == "SetPlayerInput" then
        local v46 = false;
        if v42.playerInput == "pause" then
            v46 = v42.value == 1;
        end;
        if v46 then
            v45 = not v44;
            goto label0 --[[  true, true  ]];
        end;
    end;
    v45 = v44;
    ::label0::;
    v43.paused = v45;
    v43.player = v19(v41.player, v42);
    v44 = v41.time or 0;
    v43.time = if v42.type == "GameStep" then v44 + v42.delta else v44;
    v43.asteroids = v33(v41.asteroids, v42);
    return v43;
end;
local v48 = v7.Component:extend("Camera");
v48.init = function(v49)
    v49.cameraRef = v7.createRef();
end;
v48.render = function(v50)
    local l_focus_0 = v50.props.focus;
    return v7.createElement("Camera", {
        CameraType = Enum.CameraType.Scriptable,
        CFrame = CFrame.new((Vector3.new(l_focus_0.x, 20, l_focus_0.y))) * CFrame.fromEulerAnglesXYZ(-1.5707963267948966, 0, 0),
        FieldOfView = 90,
        [v7.Ref] = v50.cameraRef
    });
end;
v48.didMount = function(v52)
    l_Workspace_0.CurrentCamera = v52.cameraRef.current;
end;
local v55 = v10.connect(function(v53, _)
    return {
        focus = v53.player.position
    };
end, nil)(v48);
local v56 = v7.Component:extend("Asteroid");
v56.render = function(v57)
    local l_position_0 = v57.props.position;
    local l_size_0 = v57.props.size;
    return v7.createElement("Part", {
        Anchored = true,
        Shape = Enum.PartType.Ball,
        Size = Vector3.new(l_size_0, l_size_0, l_size_0),
        Color = Color3.fromRGB(170, 170, 170),
        CFrame = CFrame.new((Vector3.new(l_position_0.x, 0, l_position_0.y))),
        TopSurface = Enum.SurfaceType.Smooth
    });
end;
local v60 = v7.Component:extend("Asteroids");
v60.render = function(v61)
    local l_props_0 = v61.props;
    local v63 = {};
    for v64, v65 in pairs(l_props_0) do
        v63[v64] = v7.createElement(v56, {
            position = v65.position,
            size = v65.size
        });
    end;
    return v7.createElement("Folder", {
        Name = "Asteroids"
    }, v63);
end;
v60 = v10.connect(function(v66, _)
    return v66.asteroids;
end, nil)(v60);
local v68 = v7.Component:extend("Ship");
v68.render = function(v69)
    local l_position_1 = v69.props.position;
    return v7.createElement("Part", {
        Anchored = true,
        Size = Vector3.new(2, 2, 6),
        Color = Color3.fromHSV((v69.props.time % 5) / 5, 1, 1),
        CFrame = CFrame.new((Vector3.new(l_position_1.x, 0, l_position_1.y))) * CFrame.fromEulerAnglesXYZ(0, -v69.props.angle, 0),
        FrontSurface = Enum.SurfaceType.Hinge
    });
end;
local v73 = v10.connect(function(v71, _)
    return {
        position = v71.player.position,
        angle = v71.player.angle,
        time = v71.time
    };
end, nil)(v68);
local v74 = v7.Component:extend("GameBackground");
v74.render = function(_)
    return v7.createElement("Part", {
        Anchored = true,
        Size = Vector3.new(512, 10, 512),
        CFrame = CFrame.new((Vector3.new(0, -5, 0))),
        Color = Color3.new(0, 0, 0)
    });
end;
local v76 = v7.Component:extend("PauseText");
v76.render = function(_)
    return v7.createElement("TextLabel", {
        Text = "Paused",
        TextColor3 = Color3.fromRGB(255, 255, 255),
        Font = Enum.Font.Arcade,
        TextSize = 70,
        Position = UDim2.new(0.5, 0, 0.5, 0)
    });
end;
local v78 = v7.Component:extend("InputConnector");
v78.render = function(v79)
    local function v81(v80)
        if v79.props.onInputBegan then
            v79.props.onInputBegan(v80);
        end;
    end;
    local function v83(v82)
        if v79.props.onInputChanged then
            v79.props.onInputChanged(v82);
        end;
    end;
    local function v85(v84)
        if v79.props.onInputEnded then
            v79.props.onInputEnded(v84);
        end;
    end;
    if not v5 then
        return v7.createElement(v8, {
            event = l_UserInputService_0.InputBegan,
            callback = v81
        }, {
            v7.createElement(v8, {
                event = l_UserInputService_0.InputChanged,
                callback = v83
            }, {
                v7.createElement(v8, {
                    event = l_UserInputService_0.InputEnded,
                    callback = v85
                })
            })
        });
    else
        return v7.createFragment({
            InputBeganConnection = v7.createElement(v8, {
                event = l_UserInputService_0.InputBegan,
                callback = v81
            }),
            InputChangedConnection = v7.createElement(v8, {
                event = l_UserInputService_0.InputChanged,
                callback = v83
            }),
            InputEndedConnection = v7.createElement(v8, {
                event = l_UserInputService_0.InputEnded,
                callback = v85
            })
        });
    end;
end;
local v86 = {
    [Enum.KeyCode.Left] = "left",
    [Enum.KeyCode.A] = "left",
    [Enum.KeyCode.Right] = "right",
    [Enum.KeyCode.D] = "right",
    [Enum.KeyCode.Up] = "up",
    [Enum.KeyCode.W] = "up",
    [Enum.KeyCode.P] = "pause"
};
local function _(v87)
    if v87.UserInputType ~= Enum.UserInputType.Keyboard then
        return nil;
    else
        return v86[v87.KeyCode];
    end;
end;
local v94 = v10.connect(nil, function(v89)
    return {
        onInputBegan = function(v90)
            local v91 = if v90.UserInputType ~= Enum.UserInputType.Keyboard then nil else v86[v90.KeyCode];
            if v91 then
                v89({
                    type = "SetPlayerInput",
                    playerInput = v91,
                    value = 1
                });
            end;
        end,
        onInputEnded = function(v92)
            local v93 = if v92.UserInputType ~= Enum.UserInputType.Keyboard then nil else v86[v92.KeyCode];
            if v93 then
                v89({
                    type = "SetPlayerInput",
                    playerInput = v93,
                    value = 0
                });
            end;
        end
    };
end)(v78);
local v95 = v7.Component:extend("RenderSteppedConnector");
v95.render = function(v96)
    local l_playerInputs_0 = v96.props.playerInputs;
    return v7.createElement(v8, {
        event = l_RunService_0.RenderStepped,
        callback = function(v98)
            v96.props.onStepped(v98, l_playerInputs_0);
        end
    });
end;
v95 = v10.connect(function(v99, _)
    return {
        playerInputs = v99.playerInputs
    };
end, function(v101)
    return {
        onStepped = function(v102, v103)
            v101({
                type = "GameStep",
                delta = v102,
                inputs = v103
            });
        end
    };
end)(v95);
local v110 = v10.connect(function(v104, _)
    return {
        paused = v104.paused
    };
end, nil)(function(v106)
    local l_paused_0 = v106.paused;
    local l_match_0 = v106.match;
    local l_component_0 = v106.component;
    if l_paused_0 == l_match_0 then
        return v7.createElement(l_component_0);
    else
        return nil;
    end;
end);
local v111 = v7.Component:extend("App");
v111.render = function(_)
    return v7.createElement("Folder", {}, {
        Player = v7.createElement(v73),
        PlayerCamera = v7.createElement(v55),
        GameBackground = v7.createElement(v74),
        Asteroids = v7.createElement(v60),
        KeyboardInputConnector = v7.createElement(v94),
        RenderSteppedConnector = v7.createElement(v110, {
            match = false,
            component = v95
        })
    });
end;
local v113 = v7.Component:extend("Ui");
v113.render = function(_)
    return v7.createElement("ScreenGui", nil, {
        PauseText = v7.createElement(v110, {
            match = true,
            component = v76
        })
    });
end;
return function()
    l_RunService_0.Stepped:Wait();
    local v115 = v9.Store.new(v47);
    local v116 = v7.createElement(v10.StoreProvider, {
        store = v115
    }, {
        App = v7.createElement(v111)
    });
    local v117 = v7.createElement(v10.StoreProvider, {
        store = v115
    }, {
        Ui = v7.createElement(v113)
    });
    v7.mount(v116, l_Workspace_0, "Roact-asteroids");
    v7.mount(v117, l_CoreGui_0, "Roact-asteroids-ui");
end;


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = v0.Component:extend("ContextProvider");
v1.init = function(v2)
    v2._context = {
        someValue = 5
    };
end;
v1.render = function(v3)
    return v0.oneChild(v3.props[v0.Children]);
end;
local v4 = v0.Component:extend("ContextReader");
v4.init = function(v5)
    print("Context value of", v5._context.someValue);
end;
v4.render = function(_)
    return nil;
end;
return function()
    v0.mount(v0.createElement(v1, {}, {
        SomeChild = v0.createElement(v4)
    }), nil, "SomeName");
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Roact);
local function v3(v2)
    return v1.createElement("TextLabel", {
        Size = UDim2.new(1, 0, 1, 0),
        Text = ("Current tick is %dformat(v2.value),
        TextSize = 48
    });
end;
local v4 = v1.Component:extend("App");
v4.init = function(v5)
    v5.running = false;
    v5.state = {
        count = 0
    };
end;
v4.render = function(v6)
    return v1.createElement("ScreenGui", {
        Name = "Roact-demo-counter"
    }, {
        Count = v1.createElement(v3, {
            value = v6.state.count
        })
    });
end;
v4.didMount = function(v7)
    spawn(function()
        v7.running = true;
        while v7.running do
            v7:setState({
                count = v7.state.count + 1
            });
            wait(1);
        end;
    end);
end;
v4.willUnmount = function(v8)
    v8.running = false;
end;
return function()
    v1.mount(v1.createElement(v4), l_CoreGui_0, "Roact-counter");
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Roact);
local v2 = v1.Component:extend("App");
v2.render = function(_)
    return v1.createElement("ScreenGui", {}, {
        Button = v1.createElement("TextButton", {
            Size = UDim2.new(0.5, 0, 0.5, 0),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            [v1.Event.Activated] = function(_)
                print("The button was clicked");
            end
        })
    });
end;
return function()
    v1.mount(v1.createElement(v2), l_CoreGui_0, "Roact-events");
end;


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = v0.Component:extend("App");
v1.init = function(v2)
    v2.ref = v0.createRef();
end;
v1.render = function(v3)
    return v0.createElement("Frame", {
        Size = UDim2.new(0, 123, 0, 123),
        [v0.Ref] = v3.ref
    });
end;
v1.didMount = function(v4)
    print("Roblox Instance:", v4.ref.current);
    print("Roblox Instance Size:", v4.ref.current.Size);
end;
return function()
    v0.mount(v0.createElement(v1), nil, "SomeName");
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Rodux);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = v2.Component:extend("App");
v5.render = function(v6)
    return v2.createElement("ScreenGui", nil, {
        Label = v2.createElement("TextButton", {
            Size = UDim2.new(1, 0, 1, 0),
            Text = "Count: " .. tostring(v6.props.count),
            TextSize = 48,
            AutoButtonColor = false,
            [v2.Event.Activated] = v6.props.onClick
        })
    });
end;
v5 = v4.connect(function(v7, _)
    return {
        count = v7.count
    };
end, function(v9)
    print("hello?");
    return {
        onClick = function()
            v9({
                type = "increment"
            });
        end
    };
end)(v5);
local function v12(v10, v11)
    v10 = v10 or {
        count = 0
    };
    if v11.type == "increment" then
        return {
            count = v10.count + 1
        };
    else
        return v10;
    end;
end;
return function()
    v2.mount(v2.createElement(v4.StoreProvider, {
        store = v3.Store.new(v12)
    }, {
        App = v2.createElement(v5)
    }), l_CoreGui_0, "Roact-demo-rodux");
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Rodux);
local v5 = require(l_CorePackages_0.RoactRodux);
local v13 = v5.connect(function(v6, _)
    return {
        location = v6.location
    };
end, function(v8)
    return {
        onClick = function(v9)
            v8({
                type = "Navigate",
                location = v9
            });
        end
    };
end)(function(v10)
    local l_text_0 = v10.text;
    local l_onClick_0 = v10.onClick;
    return v3.createElement("TextButton", {
        Size = UDim2.new(0, 100, 0, 30),
        Text = l_text_0,
        [v3.Event.Activated] = function()
            l_onClick_0(v10.target);
        end
    });
end);
local v20 = v5.connect(function(v14, _)
    return {
        enabled = #v14.history > 0
    };
end, function(v16)
    return {
        onClick = function()
            v16({
                type = "Back"
            });
        end
    };
end)(function(v17)
    local l_onClick_1 = v17.onClick;
    local l_enabled_0 = v17.enabled;
    return v3.createElement("TextButton", {
        Size = UDim2.new(0, 30, 0, 30),
        Text = "<",
        AutoButtonColor = l_enabled_0,
        BackgroundColor3 = not not l_enabled_0 and Color3.new(0.8, 0.8, 0.8) or Color3.new(0.5, 0.5, 0.5),
        [v3.Event.Activated] = l_onClick_1
    });
end);
local v27 = v5.connect(function(v21, _)
    return {
        current = v21.current
    };
end, nil)(function(v23)
    local l_current_0 = v23.current;
    local l_match_0 = v23.match;
    local l_component_0 = v23.component;
    if l_current_0 == l_match_0 then
        return v3.createElement(l_component_0);
    else
        return nil;
    end;
end);
local function v28()
    return v3.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 30),
        Position = UDim2.new(0, 0, 1, 0),
        BackgroundColor3 = Color3.new(1, 1, 1)
    }, {
        Layout = v3.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal
        }),
        Back = v3.createElement(v20),
        GoHome = v3.createElement(v13, {
            text = "Go to Home",
            target = "home"
        }),
        GoAbout = v3.createElement(v13, {
            text = "Go to About",
            target = "about"
        }),
        GoContact = v3.createElement(v13, {
            text = "Go to Contact",
            target = "contact"
        })
    });
end;
local function v29()
    return v3.createElement("TextLabel", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundColor3 = Color3.new(0.5, 0.3, 0.7),
        Text = "Home",
        TextSize = 30,
        TextColor3 = Color3.new(0.95, 0.95, 0.95)
    });
end;
local function v30()
    return v3.createElement("TextLabel", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundColor3 = Color3.new(0.5, 0.6, 0.2),
        Text = "About",
        TextSize = 30,
        TextColor3 = Color3.new(0.95, 0.95, 0.95)
    });
end;
local function v31()
    return v3.createElement("TextLabel", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundColor3 = Color3.new(0.8, 0.3, 0.4),
        Text = "Contact",
        TextSize = 30,
        TextColor3 = Color3.new(0.95, 0.95, 0.95)
    });
end;
local v32 = v3.Component:extend("App");
v32.render = function(_)
    return v3.createElement("ScreenGui", {}, {
        Body = v3.createElement("Frame", {
            Size = UDim2.new(0, 600, 0, 400),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            BackgroundTransparency = 1
        }, {
            Home = v3.createElement(v27, {
                match = "home",
                component = v29
            }),
            About = v3.createElement(v27, {
                match = "about",
                component = v30
            }),
            Contact = v3.createElement(v27, {
                match = "contact",
                component = v31
            }),
            NavBar = v3.createElement(v28)
        })
    });
end;
local function v37(v34, v35)
    v34 = v34 or {
        current = "home",
        history = {}
    };
    if v35.type == "Navigate" then
        if v34.current ~= v35.location then
            return {
                current = v35.location,
                history = v2.List.join(v34.history, {
                    v34.current
                })
            };
        end;
    elseif v35.type == "Back" then
        local v36 = #v34.history;
        if v36 == 0 then
            return v34;
        else
            return {
                current = v34.history[v36],
                history = v2.List.removeIndex(v34.history, v36)
            };
        end;
    end;
    return v34;
end;
return function()
    v3.mount(v3.createElement(v5.StoreProvider, {
        store = v4.Store.new(v37)
    }, {
        App = v3.createElement(v32)
    }), l_CoreGui_0, "Roact-router");
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_RunService_0 = game:GetService("RunService");
local v2 = require(game:GetService("CorePackages").Roact);
local v3 = v2.Component:extend("Node");
v3.render = function(v4)
    local l_x_0 = v4.props.x;
    local l_y_0 = v4.props.y;
    return v2.createElement("Frame", {
        Size = UDim2.new(0, 10, 0, 10),
        Position = UDim2.new(0, 10 * l_x_0, 0, 10 * l_y_0),
        BackgroundColor3 = Color3.new(0.5 + 0.5 * math.sin((v4.props.time + l_x_0 / 10) + l_y_0 / 10), 0.5, 0.5)
    });
end;
local v7 = v2.Component:extend("App");
v7.init = function(v8)
    v8.state = {
        time = tick()
    };
end;
v7.render = function(v9)
    local l_time_0 = v9.state.time;
    local v11 = {};
    local v12 = 0;
    for v13 = 0, 49 do
        for v14 = 0, 49 do
            v12 = v12 + 1;
            v11[v12] = v2.createElement(v3, {
                x = v13,
                y = v14,
                time = l_time_0
            });
        end;
    end;
    return v2.createElement("ScreenGui", nil, v11);
end;
v7.didMount = function(v15)
    l_RunService_0.Stepped:Connect(function()
        v15:setState({
            time = tick()
        });
    end);
end;
return function()
    v2.mount(v2.createElement(v7), l_CoreGui_0);
end;


game:DefineFastFlag("ContactListClientEnabled", false);
return function()
    return game:GetFastFlag("ContactListClientEnabled");
end;


game:DefineFastFlag("ContactListEnabled2", false);
return function()
    return game:GetFastFlag("ContactListEnabled2");
end;


game:DefineFastFlag("DevConsoleCloseButtonOverlapFix", false);
return function()
    return game:GetFastFlag("DevConsoleCloseButtonOverlapFix");
end;


game:DefineFastFlag("EnableIXPInGame", false);
return function()
    return game:GetFastFlag("EnableIXPInGame");
end;


game:DefineFastFlag("EnableInGameMenuDurationLogger", false);
return function()
    return game:GetFastFlag("EnableInGameMenuDurationLogger");
end;


game:DefineFastFlag("EnableVoiceDefaultServerScript", false);
return function()
    return game:GetFastFlag("EnableVoiceDefaultServerScript");
end;


game:DefineFastFlag("PlayerViewRemoteEnabled", false);
return function()
    return game:GetFastFlag("PlayerViewRemoteEnabled");
end;


game:DefineFastFlag("PlayerViewValidateRequesteeEnabled2", false);
return function()
    return game:GetFastFlag("PlayerViewValidateRequesteeEnabled2");
end;


game:DefineFastFlag("IXPServiceWrapperWaitRefactor", false);
return function()
    return game:GetFastFlag("IXPServiceWrapperWaitRefactor");
end;


local l_GuiService_0 = game:GetService("GuiService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils);
local l_FocusNavigableSurfaceRegistry_0 = v3.FocusNavigableSurfaceRegistry;
local l_GetFFlagEnableAppCommonInputHooks_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagEnableAppCommonInputHooks;
local v6 = nil;
v6 = if not l_GetFFlagEnableAppCommonInputHooks_0() then require(l_CorePackages_0.Packages.ReactFocusNavigation).useLastInputMethod else v3.useLastInputMethod;
local l_useRegisterFocusNavigableSurface_0 = l_FocusNavigableSurfaceRegistry_0.useRegisterFocusNavigableSurface;
local l_useDeRegisterFocusNavigableSurface_0 = l_FocusNavigableSurfaceRegistry_0.useDeRegisterFocusNavigableSurface;
local l_useAutoFocus_0 = v3.useAutoFocus;
local l_useDescendantHasFocus_0 = v3.useDescendantHasFocus;
local _ = game:GetService("CoreGui"):WaitForChild("RobloxGui");
return function(v12)
    local v13, v14 = v2.useState(nil);
    local v15 = l_useRegisterFocusNavigableSurface_0();
    local v16 = l_useDeRegisterFocusNavigableSurface_0();
    local v17 = l_useAutoFocus_0({
        v13
    }, 0.1);
    local v18 = l_useDescendantHasFocus_0(v13);
    local v19 = v6();
    local v20 = true;
    if v19 ~= "Gamepad" then
        v20 = v19 == "Keyboard";
    end;
    v2.useEffect(function()
        if not v13 then
            v16(v12.focusNavigableSurfaceIdentifier, v13);
            if v12.selectionGroupName then
                l_GuiService_0:RemoveSelectionGroup(v12.selectionGroupName);
            end;
        else
            v15(v12.focusNavigableSurfaceIdentifier, v13);
            if v12.selectionGroupName then
                l_GuiService_0:AddSelectionParent(v12.selectionGroupName, v13);
            end;
        end;
        return function()
            v16(v12.focusNavigableSurfaceIdentifier, v13);
            if v12.selectionGroupName then
                l_GuiService_0:RemoveSelectionGroup(v12.selectionGroupName);
            end;
        end;
    end, {
        v13,
        v12.focusNavigableSurfaceIdentifier,
        v12.selectionGroupName
    });
    local v21 = (v20 and v13) and not v18;
    v2.useEffect(function()
        local v22 = nil;
        if v21 then
            v22 = v17();
        end;
        return function()
            if v22 then
                v22.cancel();
            end;
        end;
    end, {
        v21,
        v17
    });
    return v2.createElement("Frame", {
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        AutomaticSize = v12.automaticSize,
        Size = if not v12.size then UDim2.new(1, 0, 1, 0) else v12.size,
        ref = v14
    }, v12.children);
end;


local l_IsVRAppBuild_0 = require(game:GetService("CorePackages").Workspace.Packages.AppCommonLib).IsVRAppBuild;
local _ = game:GetService("UserInputService");
local _ = game:GetService("CoreGui"):WaitForChild("RobloxGui");
return function()
    if not l_IsVRAppBuild_0() then
        return Enum.QualityLevel.Automatic;
    else
        return Enum.QualityLevel.Level07;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Promise);
local v2 = require(l_CoreGui_0.RobloxGui.Modules.Flags.GetFIntCanHideGuiGroupId);
return function(_, v4, _)
    return v1.new(function(v6, v7)
        if game:GetEngineFeature("GuiHidingApiSupport") then
            if v4 then
                local v8 = false;
                local l_status_0, l_result_0 = pcall(function()
                    v8 = v4:IsInGroup((v2()));
                end);
                if not l_status_0 then
                    v7(l_result_0);
                else
                    v6(v8);
                end;
                return ;
            else
                v7("Invalid local player");
                return ;
            end;
        else
            v6(false);
            return ;
        end;
    end);
end;


local v0 = require(game:GetService("CorePackages").Packages.React);
return function()
    local v1 = nil;
    local v2 = nil;
    local v3, v4 = v0.useState(Vector2.new(0, 0));
    local function v6()
        local l_CurrentCamera_0 = workspace.CurrentCamera;
        if l_CurrentCamera_0 then
            v4(Vector2.new(l_CurrentCamera_0.ViewportSize.X, l_CurrentCamera_0.ViewportSize.Y));
        end;
    end;
    local function v8()
        local l_CurrentCamera_1 = workspace.CurrentCamera;
        if v2 then
            pcall(function()
                v2:Disconnect();
            end);
            v2 = nil;
        end;
        if l_CurrentCamera_1 then
            v2 = l_CurrentCamera_1:GetPropertyChangedSignal("ViewportSize"):Connect(v6);
        end;
    end;
    v0.useEffect(function()
        v1 = workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(v8);
        v8();
        local l_CurrentCamera_2 = workspace.CurrentCamera;
        if l_CurrentCamera_2 then
            v4(Vector2.new(l_CurrentCamera_2.ViewportSize.X, l_CurrentCamera_2.ViewportSize.Y));
        end;
        return function()
            if v1 then
                v1:Disconnect();
            end;
            if v2 then
                v2:Disconnect();
            end;
        end;
    end, {});
    return v3;
end;


local l_Players_0 = game:GetService("Players");
local function v6(...)
    local l_BindableEvent_0 = Instance.new("BindableEvent");
    local v2 = {
        ...
    };
    local function v4(...)
        for v3 = 1, #v2 do
            v2[v3]:Disconnect();
        end;
        return l_BindableEvent_0:Fire(...);
    end;
    for v5 = 1, #v2 do
        v2[v5] = v2[v5]:Connect(v4);
    end;
    return l_BindableEvent_0.Event:Wait();
end;
return {
    registerHumanoidReady = function(v7)
        local function v12(v8, v9)
            if not v9.Parent then
                v6(v9.AncestryChanged, v8.CharacterAdded);
            end;
            if v8.Character == v9 and v9.Parent then
                local l_Humanoid_0 = v9:FindFirstChildOfClass("Humanoid");
                while not (not v9:IsDescendantOf(game) or l_Humanoid_0) do
                    v6(v9.ChildAdded, v9.AncestryChanged, v8.CharacterAdded);
                    l_Humanoid_0 = v9:FindFirstChildOfClass("Humanoid");
                end;
                if v8.Character == v9 and v9:IsDescendantOf(game) then
                    local l_HumanoidRootPart_0 = v9:FindFirstChild("HumanoidRootPart");
                    while not (not v9:IsDescendantOf(game) or l_HumanoidRootPart_0) do
                        v6(v9.ChildAdded, v9.AncestryChanged, l_Humanoid_0.AncestryChanged, v8.CharacterAdded);
                        l_HumanoidRootPart_0 = v9:FindFirstChild("HumanoidRootPart");
                    end;
                    if not ((not l_HumanoidRootPart_0 or not l_Humanoid_0:IsDescendantOf(game)) or not v9:IsDescendantOf(game)) and v8.Character == v9 then
                        v7(v8, v9, l_Humanoid_0);
                    end;
                    return ;
                else
                    return ;
                end;
            else
                return ;
            end;
        end;
        local function v20(v13)
            local v15 = v13.CharacterAdded:Connect(function(v14)
                v12(v13, v14);
            end);
            local v16 = nil;
            v16 = v13.AncestryChanged:Connect(function(_, v18)
                if not game:IsAncestorOf(v18) then
                    v16:Disconnect();
                    v15:Disconnect();
                end;
            end);
            local l_Character_0 = v13.Character;
            if l_Character_0 then
                v12(v13, l_Character_0);
            end;
        end;
        l_Players_0.PlayerAdded:Connect(v20);
        for _, v22 in pairs(l_Players_0:GetPlayers()) do
            v20(v22);
        end;
    end
};


if not game:DefineFastFlag("UsePackagifiedIXPServiceWrapper", false) then
    local l_RunService_0 = game:GetService("RunService");
    local l_IXPService_0 = game:GetService("IXPService");
    local v2 = require(script.Parent.Flags.GetIXPServiceWrapperWaitRefactor);
    return {
        InitializeAsync = function(v3, v4, v5)
            local l_status_0, l_result_0 = pcall(function()
                if l_RunService_0:IsStudio() then
                    l_IXPService_0:ClearUserLayers();
                end;
                l_IXPService_0:RegisterUserLayers(v5);
                l_IXPService_0:InitializeUserLayers(v4);
                if not v2() then
                    local l_l_IXPService_0_UserLayerLoadingStatus_0 = l_IXPService_0:GetUserLayerLoadingStatus();
                    while not (l_l_IXPService_0_UserLayerLoadingStatus_0 ~= Enum.IXPLoadingStatus.None) or l_l_IXPService_0_UserLayerLoadingStatus_0 == Enum.IXPLoadingStatus.Pending do
                        l_IXPService_0.OnUserLayerLoadingStatusChanged:Wait();
                        l_l_IXPService_0_UserLayerLoadingStatus_0 = l_IXPService_0:GetUserLayerLoadingStatus();
                    end;
                    return l_l_IXPService_0_UserLayerLoadingStatus_0;
                else
                    return v3:WaitForInitialization();
                end;
            end);
            return l_status_0, l_result_0;
        end,
        WaitForInitialization = function(_)
            local l_l_IXPService_0_UserLayerLoadingStatus_1 = l_IXPService_0:GetUserLayerLoadingStatus();
            while not (l_l_IXPService_0_UserLayerLoadingStatus_1 ~= Enum.IXPLoadingStatus.None) or l_l_IXPService_0_UserLayerLoadingStatus_1 == Enum.IXPLoadingStatus.Pending do
                l_IXPService_0.OnUserLayerLoadingStatusChanged:Wait();
                l_l_IXPService_0_UserLayerLoadingStatus_1 = l_IXPService_0:GetUserLayerLoadingStatus();
            end;
            return l_l_IXPService_0_UserLayerLoadingStatus_1;
        end,
        GetLayerData = function(_, v12)
            local l_status_1, l_result_1 = pcall(function()
                return l_IXPService_0:GetUserLayerVariables(v12);
            end);
            return not not l_status_1 and l_result_1 or nil;
        end,
        LogUserLayerExposure = function(_, v16)
            pcall(function()
                l_IXPService_0:LogUserLayerExposure(v16);
            end);
        end,
        LogBrowserTrackerLayerExposure = function(_, v18)
            pcall(function()
                l_IXPService_0:LogBrowserTrackerLayerExposure(v18);
            end);
        end
    };
else
    return require(game:GetService("CorePackages").Workspace.Packages.IxpServiceWrapper).IXPServiceWrapper;
end;


local v0 = require(game:GetService("CorePackages").Workspace.Packages.UniversalAppPolicy).getAppFeaturePolicies();
return {
    canNavigateHome = v0.getInExperienceCanNavigateHome(),
    canListPeopleInSameServer = v0.getInExperienceCanListPeopleInSameServer()
};


return {
    Headshot = "rbxthumb://type=AvatarHeadShot&id=%d&w=%d&h=%d",
    Bust = string.gsub(string.gsub(string.gsub(game:GetService("ContentProvider").BaseUrl:lower(), "/m.", "/www."), "/www.", "/thumbnails."), "http:", "https:") .. "v1/users/avatar-bust?userIds=%d&size=%dx%d&format=Png&isCircular=false",
    Thumbnail = "rbxthumb://type=Avatar&id=%d&w=%d&h=%d"
};


local l_ScriptContext_0 = game:GetService("ScriptContext");
local l_RunService_0 = game:GetService("RunService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v3 = require(l_CorePackages_0.Packages.React);
local l_ErrorQueue_0 = require(l_CorePackages_0.Workspace.Packages.ErrorReporters).ErrorQueue;
local v5 = require(script.Parent.removePII);
local v6 = require(script.Parent.Analytics).new();
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.LoggingProtocol).default;
local v8 = require(script.Parent.RobloxTelemetryConfigs.LuaShellErrors);
local l_FVariable_0 = settings():GetFVariable("LuaAppsDiagErrorCounter");
local v10 = game:DefineFastString("LuaErrorByPlatformCounter", "LuaErrorPlatformOther");
local v11 = tonumber(settings():GetFVariable("LuaAppErrorReporterRateLimitThreshold"));
local v12 = tonumber(settings():GetFVariable("LuaAppErrorReporterRateLimitIntervalInSec"));
local l_FVariable_1 = settings():GetFVariable("LuaAppsDiagRateLimitedErrorsCounter");
local v14 = 2 * v11;
local function _(v15)
    return string.format("%s-%s", v15, (l_RunService_0:GetRobloxVersion()));
end;
local function _(v17)
    local v18 = "";
    local v19 = true;
    for v20 in v17:gmatch("[^\r\n]+") do
        if not v19 then
            v18 = v18 .. " | " .. v20;
        else
            v18 = v20;
            v19 = false;
        end;
    end;
    return v18;
end;
local function _(v22)
    return v5(v22);
end;
local function v28(v24, v25, v26, v27)
    print(table.concat({
        "---- Unhandled Error Handler -----",
        string.format("Current App<%s, %d> : \n%s\n", type(v24), #v24, v24),
        string.format("Message<%s,%d> :\n%s\n", type(v25), #v25, v25),
        string.format("Stack<%s,%d> :\n%s", type(v26), #v26, v26),
        string.format("Script<%s> :\n%s", type(v27), v27:GetFullName()),
        "----------------------------------"
    }, "\n"));
end;
local function v32(_, v30, v31)
    v6.GoogleAnalytics:trackEvent(v30.productName, v30.errorMessage, v30.errorStack, v31);
end;
local function _(v33, v34, v35, v36)
    l_default_0:logRobloxTelemetryEvent(v8, nil, {
        app = v33,
        err = v34,
        stack = v35,
        script = v36:GetFullName()
    });
end;
local function _()
    v6.Diag:reportCounter(l_FVariable_0, 1);
end;
local function _()
    v6.Diag:reportCounter(v10, 1);
end;
local function _()
    v6.Diag:reportCounter(l_FVariable_1, 1);
end;
local v41 = {};
v41.__index = v41;
v41.new = function(v42, v43, v44)
    if not v42 then
        v42 = l_ScriptContext_0.Error;
    end;
    v43 = v43 or v12;
    local v45 = {
        _isInstance = true,
        _verbose = false,
        _signalConnectionToken = nil,
        _shouldReportDiag = true,
        _shouldReportGoogleAnalytics = true,
        _shouldReportInflux = true,
        _currentApp = "Unknown",
        _reportQueueGA = nil,
        _backtraceReporter = v44,
        _rateLimitingThreshold = v11,
        _rateLimitingIntervalSec = v43,
        _rateLimitCounts = {},
        _rateLimitNextTick = tick() + v43
    };
    setmetatable(v45, v41);
    v45._reportQueueGA = l_ErrorQueue_0.new(v32, {
        queueKeyLimit = 10
    });
    v45._signalConnectionToken = v42:connect(function(v46, v47, v48, v49)
        local l_status_0, l_result_0 = pcall(function()
            local v50, v51 = v3.unstable_parseReactError(v46);
            v46 = v50.message;
            v47 = v50.stack or v47;
            v49 = v49 or v51;
            v45:handleError(v46, v47, v48, v49);
        end);
        if not l_status_0 then
            warn(string.format("An error occurred while reporting an error : %s", l_result_0));
        end;
    end);
    if not (l_RunService_0:IsStudio() or _G.__TESTEZ_RUNNING_TEST__) then
        game:BindToClose(function()
            v45:delete();
        end);
    end;
    v45._rateLimitHeartbeatConnectionToken = l_RunService_0.Heartbeat:connect(function()
        local v54 = tick();
        if v45._rateLimitNextTick < v54 then
            v45:_processRateLimitingTick();
            v45._rateLimitNextTick = v54 + v45._rateLimitingIntervalSec;
        end;
    end);
    return v45;
end;
v41._processRateLimitingTick = function(v55)
    local v56 = 0;
    for v57, v58 in pairs(v55._rateLimitCounts) do
        if v55._rateLimitingThreshold <= v58 then
            v56 = v56 + 1;
        end;
        local v59 = v58 - v55._rateLimitingThreshold;
        if v14 < v59 then
            v55._rateLimitCounts[v57] = v14;
        elseif v59 <= 0 then
            v55._rateLimitCounts[v57] = nil;
        else
            v55._rateLimitCounts[v57] = v59;
        end;
    end;
    if v56 > 0 then
        v6.Diag:reportCounter(l_FVariable_1, 1);
    end;
end;
v41._processErrorForRateLimiting = function(v60, v61, v62)
    local v63 = v61 .. v62;
    local v64 = v60._rateLimitCounts[v63] or 0;
    v60._rateLimitCounts[v63] = v64 + 1;
    return v60._rateLimitingThreshold <= v64;
end;
v41.delete = function(v65)
    if v65._rateLimitHeartbeatConnectionToken ~= nil then
        v65._rateLimitHeartbeatConnectionToken:disconnect();
    end;
    v65._signalConnectionToken:disconnect();
    v65._reportQueueGA:reportAllErrors();
    v65._reportQueueGA:stopTimer();
    if v65._backtraceReporter ~= nil then
        v65._backtraceReporter:stop();
    end;
end;
v41.setCurrentApp = function(v66, v67)
    if type(v67) ~= "string" then
        error("appName must be a string");
    end;
    v66._currentApp = v67;
end;
v41.startQueueTimers = function(v68)
    v68._reportQueueGA:startTimer();
end;
v41.stopQueueTimers = function(v69)
    v69._reportQueueGA:stopTimer();
end;
v41.handleError = function(v70, v71, v72, v73, v74)
    local v75 = string.format("%s-%s", v70._currentApp, (l_RunService_0:GetRobloxVersion()));
    if v70._verbose then
        v28(v75, v71, v72, v73);
    end;
    local v76 = v5(v71);
    local v77 = v5(v72);
    local v78 = "";
    local v79 = true;
    for v80 in v77:gmatch("[^\r\n]+") do
        if not v79 then
            v78 = v78 .. " | " .. v80;
        else
            v78 = v80;
            v79 = false;
        end;
    end;
    local l_v78_0 = v78;
    if v74 ~= nil then
        v74 = v5(v74);
    end;
    if not v70:_processErrorForRateLimiting(v76, l_v78_0) then
        v78 = string.format("%s | %s", v76, v77);
        if v70._shouldReportGoogleAnalytics then
            v70._reportQueueGA:addError(v78, {
                productName = v75,
                errorMessage = v76,
                errorStack = l_v78_0
            });
        end;
        if v70._backtraceReporter ~= nil then
            v70._backtraceReporter:reportErrorDeferred(v76, v77, v74);
        end;
        if v70._shouldReportInflux then
            l_default_0:logRobloxTelemetryEvent(v8, nil, {
                app = v75,
                err = v76,
                stack = l_v78_0,
                script = v73:GetFullName()
            });
        end;
        if v70._shouldReportDiag then
            v6.Diag:reportCounter(l_FVariable_0, 1);
            v6.Diag:reportCounter(v10, 1);
        end;
        return ;
    else
        return ;
    end;
end;
return v41;


local function v2(v0, v1, ...)
    if not v1 then
        error(..., 2);
    end;
    if coroutine.status(v0) ~= "dead" then
        error(debug.traceback(v0, "Attempted to yield inside Changed event"), 2);
    end;
    return ...;
end;
return function(v3, ...)
    local v4 = coroutine.create(v3);
    return v2(v4, coroutine.resume(v4, ...));
end;


local v0 = {};
local v1 = {};
v1.__index = v1;
v1.GetInstance = function(v2, v3)
    if v2.InstancePoolsByClass[v3] == nil then
        v2.InstancePoolsByClass[v3] = {};
    end;
    local v4 = #v2.InstancePoolsByClass[v3];
    if v4 > 0 then
        local v5 = v2.InstancePoolsByClass[v3][v4];
        table.remove(v2.InstancePoolsByClass[v3]);
        return v5;
    else
        return Instance.new(v3);
    end;
end;
v1.ReturnInstance = function(v6, v7)
    if v6.InstancePoolsByClass[v7.ClassName] == nil then
        v6.InstancePoolsByClass[v7.ClassName] = {};
    end;
    if #v6.InstancePoolsByClass[v7.ClassName] < v6.PoolSizePerType then
        table.insert(v6.InstancePoolsByClass[v7.ClassName], v7);
        return ;
    else
        v7:Destroy();
        return ;
    end;
end;
v0.new = function(v8)
    local v9 = setmetatable({}, v1);
    v9.InstancePoolsByClass = {};
    v9.Name = "ObjectPool";
    v9.PoolSizePerType = v8;
    return v9;
end;
return v0;


local l_HttpService_0 = game:GetService("HttpService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Stats_0 = game:GetService("Stats");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_InGameMenu_0 = l_RobloxGui_0.Modules.InGameMenu;
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.LoggingProtocol).default;
local v6 = require(l_RobloxGui_0.Modules.isNewInGameMenuEnabled);
local v7 = require(l_InGameMenu_0.Utility.SendAnalytics);
local v8 = require(script.Parent.Constants);
local v9 = require(l_InGameMenu_0.Resources.Constants);
local v10 = require(script.Parent.Flags.GetFFlagEnableInGameMenuDurationLogger)();
local v11 = if not l_Stats_0 then nil else l_Stats_0:FindFirstChild("FrameRateManager");
local v12 = if not v11 then nil else v11:FindFirstChild("RenderAverage");
local function _()
    if not v6() then
        return 1;
    else
        return 2;
    end;
end;
local function _(v14)
    if not v14 then
        return v9.ShieldCloseAnimationTweenTime;
    else
        return v9.ShieldOpenAnimationTweenTime;
    end;
end;
local function _()
    return os.clock();
end;
local function v17()
    if not v12 then
        return nil;
    else
        return 1000 / v12:GetValue();
    end;
end;
local v18 = l_HttpService_0:GenerateGUID();
local v19 = os.clock();
local v20 = os.clock();
local v21 = nil;
local v22 = nil;
local v23 = false;
local v24 = false;
local v25 = 0;
local function v28(v26, v27)
    v27.fps = if not v12 then nil else 1000 / v12:GetValue();
    v27.menu_version = not v6() and 1 or 2;
    if v10 then
        v26 = v26 .. "_v" .. v27.menu_version;
    end;
    if v27.menu_session then
        if not v10 then
            v7(v8.AnalyticsInGameMenuName, v26, v27);
        else
            l_default_0:logEvent(v26, v27);
            return ;
        end;
    end;
end;
local function v31()
    local v29 = if not v10 then v8.AnalyticsPerfMenuOpening else v8.AnalyticsGameMenuOpenStart;
    local v30 = {
        menu_session = v21,
        game_session = v18,
        count = v25,
        interrupted_closing = v23
    };
    if v10 then
        v28(v8.AnalyticsGameMenuFlowStart, v30);
    end;
    v28(v29, v30);
end;
local function _(v32, v33)
    v28(if not v10 then v8.AnalyticsPerfMenuStarted else v8.AnalyticsGameMenuOpenEnd, {
        menu_session = v21,
        transition_time_total = v32,
        transition_time_normalized = v33
    });
end;
local function v39(v35, v36)
    local v37 = if not v10 then v8.AnalyticsPerfMenuClosed else v8.AnalyticsGameMenuCloseEnd;
    local v38 = {
        menu_session = v22,
        transition_time_total = v35,
        transition_time_normalized = v36
    };
    v28(v37, v38);
    if v10 then
        v28(v8.AnalyticsGameMenuFlowEnd, v38);
    end;
end;
local function _(v40, v41)
    v28(if not v10 then v8.AnalyticsPerfMenuEnding else v8.AnalyticsGameMenuCloseStart, {
        menu_session = v21,
        session_time = v40,
        reason = not v41 and "resume" or "leaving",
        interrupted_opening = v24
    });
end;
return {
    menuOpenBegin = function()
        if not v21 then
            v25 = v25 + 1;
            v19 = os.clock();
            v21 = l_HttpService_0:GenerateGUID();
            v31();
            v24 = true;
            v23 = false;
            return ;
        else
            return ;
        end;
    end,
    menuOpenComplete = function()
        local v43 = os.clock() - v19;
        v28(if not v10 then v8.AnalyticsPerfMenuStarted else v8.AnalyticsGameMenuOpenEnd, {
            menu_session = v21,
            transition_time_total = v43,
            transition_time_normalized = v43 - v9.ShieldOpenAnimationTweenTime
        });
        v24 = false;
    end,
    menuClose = function()
        v20 = os.clock();
        v28(if not v10 then v8.AnalyticsPerfMenuEnding else v8.AnalyticsGameMenuCloseStart, {
            menu_session = v21,
            session_time = v20 - v19,
            reason = "resume",
            interrupted_opening = v24
        });
        v22 = v21;
        v21 = nil;
        v24 = false;
        v23 = true;
    end,
    menuCloseComplete = function()
        local v44 = os.clock() - v20;
        v39(v44, v44 - v9.ShieldCloseAnimationTweenTime);
        v22 = nil;
        v23 = false;
    end,
    leavingGame = function()
        v28(if not v10 then v8.AnalyticsPerfMenuEnding else v8.AnalyticsGameMenuCloseStart, {
            menu_session = v21,
            session_time = os.clock() - v19,
            reason = "leaving",
            interrupted_opening = v24
        });
        v21 = nil;
    end,
    getFps = v17
};


local l_Players_0 = game:GetService("Players");
local v1 = true;
local v2 = nil;
local v3 = false;
local v4 = false;
local l_BindableEvent_0 = Instance.new("BindableEvent");
return {
    InitAsync = function(_)
        if not _G.__TESTEZ_RUNNING_TEST__ then
            if not v3 then
                if not v4 then
                    v4 = true;
                    local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
                    while not l_LocalPlayer_0 do
                        l_Players_0.PlayerAdded:Wait();
                        l_LocalPlayer_0 = l_Players_0.LocalPlayer;
                    end;
                    assert(l_LocalPlayer_0, "");
                    pcall(function()
                        v2 = game:GetService("PolicyService"):GetPolicyInfoForPlayerAsync(l_LocalPlayer_0);
                    end);
                    if v2 then
                        v1 = v2.IsSubjectToChinaPolicies;
                    end;
                    v3 = true;
                    l_BindableEvent_0:Fire();
                    return ;
                else
                    l_BindableEvent_0.Event:Wait();
                    return ;
                end;
            else
                return ;
            end;
        else
            v1 = false;
            return ;
        end;
    end,
    IsSubjectToChinaPolicies = function(v8)
        v8:InitAsync();
        return v1;
    end
};


local l_RunService_0 = game:GetService("RunService");
local l_game_EngineFeature_0 = game:GetEngineFeature("AvatarJointUpgradeFeature");
local v2 = {};
local v3 = {
    UpperAngle = 45,
    TwistLowerAngle = -40,
    TwistUpperAngle = 40,
    FrictionTorque = 400,
    StrengthTorque = 400,
    ReferenceMass = 1.0249234437943
};
local v4 = {
    UpperAngle = 20,
    TwistLowerAngle = -40,
    TwistUpperAngle = 20,
    FrictionTorque = 750,
    StrengthTorque = 5000,
    ReferenceMass = 2.861558675766
};
local v5 = {
    UpperAngle = 10,
    TwistLowerAngle = -10,
    TwistUpperAngle = 10,
    StrengthTorque = 400,
    ReferenceMass = 0.43671694397926
};
local v6 = {
    UpperAngle = 20,
    TwistLowerAngle = 5,
    TwistUpperAngle = 120,
    StrengthTorque = 1200,
    ReferenceMass = 0.70196455717087
};
local v7 = {
    UpperAngle = 30,
    TwistLowerAngle = -10,
    TwistUpperAngle = 10,
    StrengthTorque = 400,
    ReferenceMass = 0.69132566452026
};
local v8 = {
    UpperAngle = 5,
    TwistLowerAngle = -120,
    TwistUpperAngle = -5,
    StrengthTorque = 2000,
    ReferenceMass = 0.65389388799667
};
local v9 = {
    UpperAngle = 110,
    TwistLowerAngle = -85,
    TwistUpperAngle = 85,
    FrictionTorque = 600,
    StrengthTorque = 4000,
    ReferenceMass = 0.90918225049973
};
local v10 = {
    UpperAngle = 40,
    TwistLowerAngle = -5,
    TwistUpperAngle = 80,
    FrictionTorque = 600,
    StrengthTorque = 4000,
    ReferenceMass = 1.9175016880035
};
local v11 = {
    UpperAngle = 30,
    TwistLowerAngle = -40,
    TwistUpperAngle = 40
};
local v12 = {
    UpperAngle = 110,
    TwistLowerAngle = -85,
    TwistUpperAngle = 85
};
local v13 = {
    UpperAngle = 40,
    TwistLowerAngle = -5,
    TwistUpperAngle = 80
};
local v14 = Vector3.new();
local v15 = Vector3.new(0, 1, 0);
local v16 = Vector3.new(0, -1, 0);
local v17 = Vector3.new(1, 0, 0);
local v18 = Vector3.new(-1, 0, 0);
local v19 = {
    {
        "UpperTorso",
        "RightShoulderRagdollAttachment",
        CFrame.fromMatrix(v14, v17, v15),
        "RightShoulderRigAttachment"
    },
    {
        "RightUpperArm",
        "RightShoulderRagdollAttachment",
        CFrame.fromMatrix(v14, v16, v17),
        "RightShoulderRigAttachment"
    },
    {
        "UpperTorso",
        "LeftShoulderRagdollAttachment",
        CFrame.fromMatrix(v14, v18, v15),
        "LeftShoulderRigAttachment"
    },
    {
        "LeftUpperArm",
        "LeftShoulderRagdollAttachment",
        CFrame.fromMatrix(v14, v16, v18),
        "LeftShoulderRigAttachment"
    }
};
local v20 = {
    {
        "UpperTorso",
        "Head",
        "NeckRigAttachment",
        v3
    },
    {
        "LowerTorso",
        "UpperTorso",
        "WaistRigAttachment",
        v4
    },
    {
        "UpperTorso",
        "LeftUpperArm",
        "LeftShoulderRagdollAttachment",
        v9
    },
    {
        "LeftUpperArm",
        "LeftLowerArm",
        "LeftElbowRigAttachment",
        v6
    },
    {
        "LeftLowerArm",
        "LeftHand",
        "LeftWristRigAttachment",
        v7
    },
    {
        "UpperTorso",
        "RightUpperArm",
        "RightShoulderRagdollAttachment",
        v9
    },
    {
        "RightUpperArm",
        "RightLowerArm",
        "RightElbowRigAttachment",
        v6
    },
    {
        "RightLowerArm",
        "RightHand",
        "RightWristRigAttachment",
        v7
    },
    {
        "LowerTorso",
        "LeftUpperLeg",
        "LeftHipRigAttachment",
        v10
    },
    {
        "LeftUpperLeg",
        "LeftLowerLeg",
        "LeftKneeRigAttachment",
        v8
    },
    {
        "LeftLowerLeg",
        "LeftFoot",
        "LeftAnkleRigAttachment",
        v5
    },
    {
        "LowerTorso",
        "RightUpperLeg",
        "RightHipRigAttachment",
        v10
    },
    {
        "RightUpperLeg",
        "RightLowerLeg",
        "RightKneeRigAttachment",
        v8
    },
    {
        "RightLowerLeg",
        "RightFoot",
        "RightAnkleRigAttachment",
        v5
    }
};
local v21 = {
    {
        "LowerTorso",
        "LeftUpperArm"
    },
    {
        "LeftUpperArm",
        "LeftHand"
    },
    {
        "LowerTorso",
        "RightUpperArm"
    },
    {
        "RightUpperArm",
        "RightHand"
    },
    {
        "LeftUpperLeg",
        "RightUpperLeg"
    },
    {
        "UpperTorso",
        "RightUpperLeg"
    },
    {
        "RightUpperLeg",
        "RightFoot"
    },
    {
        "UpperTorso",
        "LeftUpperLeg"
    },
    {
        "LeftUpperLeg",
        "LeftFoot"
    },
    {
        "UpperTorso",
        "LeftLowerLeg"
    },
    {
        "UpperTorso",
        "RightLowerLeg"
    },
    {
        "LowerTorso",
        "LeftLowerLeg"
    },
    {
        "LowerTorso",
        "RightLowerLeg"
    },
    {
        "UpperTorso",
        "LeftLowerArm"
    },
    {
        "UpperTorso",
        "RightLowerArm"
    },
    {
        "Head",
        "LeftUpperArm"
    },
    {
        "Head",
        "RightUpperArm"
    }
};
local v22 = {
    {
        "Waist",
        "UpperTorso"
    },
    {
        "Neck",
        "Head"
    },
    {
        "LeftShoulder",
        "LeftUpperArm"
    },
    {
        "LeftElbow",
        "LeftLowerArm"
    },
    {
        "LeftWrist",
        "LeftHand"
    },
    {
        "RightShoulder",
        "RightUpperArm"
    },
    {
        "RightElbow",
        "RightLowerArm"
    },
    {
        "RightWrist",
        "RightHand"
    },
    {
        "LeftHip",
        "LeftUpperLeg"
    },
    {
        "LeftKnee",
        "LeftLowerLeg"
    },
    {
        "LeftAnkle",
        "LeftFoot"
    },
    {
        "RightHip",
        "RightUpperLeg"
    },
    {
        "RightKnee",
        "RightLowerLeg"
    },
    {
        "RightAnkle",
        "RightFoot"
    }
};
local v23 = {
    {
        "Head",
        "NeckAttachment",
        CFrame.new(0, -0.5, 0)
    },
    {
        "Torso",
        "RightShoulderRagdollAttachment",
        CFrame.fromMatrix(Vector3.new(1, 0.5, 0), v17, v15)
    },
    {
        "Right Arm",
        "RightShoulderRagdollAttachment",
        CFrame.fromMatrix(Vector3.new(-0.5, 0.5, 0), v16, v17)
    },
    {
        "Torso",
        "LeftShoulderRagdollAttachment",
        CFrame.fromMatrix(Vector3.new(-1, 0.5, 0), v18, v15)
    },
    {
        "Left Arm",
        "LeftShoulderRagdollAttachment",
        CFrame.fromMatrix(Vector3.new(0.5, 0.5, 0), v16, v18)
    },
    {
        "Torso",
        "RightHipAttachment",
        CFrame.new(0.5, -1, 0)
    },
    {
        "Right Leg",
        "RightHipAttachment",
        CFrame.new(0, 1, 0)
    },
    {
        "Torso",
        "LeftHipAttachment",
        CFrame.new(-0.5, -1, 0)
    },
    {
        "Left Leg",
        "LeftHipAttachment",
        CFrame.new(0, 1, 0)
    }
};
local v24 = {
    {
        "Torso",
        "Head",
        "NeckAttachment",
        v11
    },
    {
        "Torso",
        "Left Leg",
        "LeftHipAttachment",
        v13
    },
    {
        "Torso",
        "Right Leg",
        "RightHipAttachment",
        v13
    },
    {
        "Torso",
        "Left Arm",
        "LeftShoulderRagdollAttachment",
        v12
    },
    {
        "Torso",
        "Right Arm",
        "RightShoulderRagdollAttachment",
        v12
    }
};
local v25 = {
    {
        "Left Leg",
        "Right Leg"
    },
    {
        "Head",
        "Right Arm"
    },
    {
        "Head",
        "Left Arm"
    }
};
local v26 = {
    {
        "Neck",
        "Torso"
    },
    {
        "Left Shoulder",
        "Torso"
    },
    {
        "Right Shoulder",
        "Torso"
    },
    {
        "Left Hip",
        "Torso"
    },
    {
        "Right Hip",
        "Torso"
    }
};
local function v32(v27)
    local v28 = {};
    for _, v30 in ipairs(v27:GetChildren()) do
        if v30:IsA("BasePart") then
            local l_name_0 = v30.name;
            if not v28[l_name_0] then
                v28[l_name_0] = v30;
            end;
        end;
    end;
    return v28;
end;
local function v53(v33, v34, v35)
    if v35 then
        local l_AnimationConstraint_0 = Instance.new("AnimationConstraint");
        l_AnimationConstraint_0.Name = "Root";
        l_AnimationConstraint_0.Attachment0 = v33.HumanoidRootPart.RootRigAttachment;
        l_AnimationConstraint_0.Attachment1 = v33.LowerTorso.RootRigAttachment;
        l_AnimationConstraint_0.IsKinematic = true;
        v33.LowerTorso.Root:Destroy();
        l_AnimationConstraint_0.Parent = v33.LowerTorso;
    end;
    for _, v38 in ipairs(v34) do
        local v39, v40, v41, v42 = unpack(v38);
        local v43 = v33[v39];
        local v44 = v33[v40];
        if not (not v43 or not v44) then
            local l_v43_FirstChild_0 = v43:FindFirstChild(v41);
            local l_v44_FirstChild_0 = v44:FindFirstChild(v41);
            if not (((not l_v43_FirstChild_0 or not l_v44_FirstChild_0) or not l_v43_FirstChild_0:IsA("Attachment")) or not l_v44_FirstChild_0:IsA("Attachment")) then
                local l_RagdollBallSocket_0 = v44:FindFirstChild("RagdollBallSocket");
                if not l_RagdollBallSocket_0 then
                    l_RagdollBallSocket_0 = Instance.new("BallSocketConstraint");
                    l_RagdollBallSocket_0.Name = "RagdollBallSocket";
                end;
                l_RagdollBallSocket_0.Attachment0 = l_v43_FirstChild_0;
                l_RagdollBallSocket_0.Attachment1 = l_v44_FirstChild_0;
                l_RagdollBallSocket_0.LimitsEnabled = true;
                l_RagdollBallSocket_0.UpperAngle = v42.UpperAngle;
                l_RagdollBallSocket_0.TwistLimitsEnabled = true;
                l_RagdollBallSocket_0.TwistLowerAngle = v42.TwistLowerAngle;
                l_RagdollBallSocket_0.TwistUpperAngle = v42.TwistUpperAngle;
                local v48 = workspace.Gravity / 196.2;
                if v35 then
                    v48 = math.max(v48, 0.2);
                end;
                local l_ReferenceMass_0 = v42.ReferenceMass;
                local v50 = not not l_ReferenceMass_0 and v44:GetMass() / l_ReferenceMass_0 or 1;
                l_RagdollBallSocket_0.MaxFrictionTorque = ((v42.FrictionTorque or 500) * v50) * v48;
                if v35 then
                    l_RagdollBallSocket_0.MaxFrictionTorque = l_RagdollBallSocket_0.MaxFrictionTorque / 100;
                end;
                l_RagdollBallSocket_0.Parent = v44;
                if v35 then
                    local l_Motor6D_0 = v44:FindFirstChildWhichIsA("Motor6D");
                    assert(l_Motor6D_0);
                    local l_AnimationConstraint_1 = Instance.new("AnimationConstraint");
                    l_AnimationConstraint_1.Name = l_Motor6D_0.Name;
                    l_AnimationConstraint_1.Attachment0 = l_Motor6D_0.Part0:FindFirstChild(l_Motor6D_0.Name .. "RigAttachment");
                    l_AnimationConstraint_1.Attachment1 = l_Motor6D_0.Part1:FindFirstChild(l_Motor6D_0.Name .. "RigAttachment");
                    l_AnimationConstraint_1.IsKinematic = true;
                    l_AnimationConstraint_1.MaxTorque = ((v42.StrengthTorque or 500) * v50) * v48;
                    l_AnimationConstraint_1.MaxForce = 0;
                    l_AnimationConstraint_1.Parent = l_Motor6D_0.parent;
                    l_Motor6D_0:Destroy();
                end;
            end;
        end;
    end;
end;
local function v65(v54, v55)
    for _, v57 in ipairs(v55) do
        local v58, v59, v60, v61 = unpack(v57);
        local v62 = v54[v58];
        if v62 then
            local l_v62_FirstChild_0 = v62:FindFirstChild(v59);
            if not (l_v62_FirstChild_0 and not l_v62_FirstChild_0:IsA("Attachment")) then
                if v61 then
                    local l_v62_FirstChild_1 = v62:FindFirstChild(v61);
                    if not (not l_v62_FirstChild_1 or not l_v62_FirstChild_1:IsA("Attachment")) then
                        v60 = l_v62_FirstChild_1.CFrame * v60;
                    end;
                end;
                if l_v62_FirstChild_0 then
                    l_v62_FirstChild_0.CFrame = v60;
                else
                    l_v62_FirstChild_0 = Instance.new("Attachment");
                    l_v62_FirstChild_0.Name = v59;
                    l_v62_FirstChild_0.CFrame = v60;
                    l_v62_FirstChild_0.Parent = v62;
                end;
            end;
        end;
    end;
end;
local function v89(v66, v67)
    local v68 = {};
    for _, v70 in ipairs(v67) do
        local v71, v72 = unpack(v70);
        local v73 = v66[v71];
        local v74 = v66[v72];
        if not (not v73 or not v74) then
            local v75 = v68[v74];
            if not v75 then
                v75 = {};
                v68[v74] = v75;
            end;
            v75[v73] = true;
        end;
    end;
    local v76 = {};
    for v77, v78 in pairs(v68) do
        local v79 = {};
        for _, v81 in ipairs(v77:GetChildren()) do
            if v81:IsA("NoCollisionConstraint") and v81.Name == "RagdollNoCollision" then
                local l_Part0_0 = v81.Part0;
                if not (v81.Part1 == v77) or not v78[l_Part0_0] then
                    table.insert(v79, v81);
                else
                    v78[l_Part0_0] = nil;
                end;
            end;
        end;
        v76[v77] = v79;
    end;
    for v83, v84 in pairs(v68) do
        local v85 = v76[v83];
        for v86, _ in pairs(v84) do
            local v88 = table.remove(v85) or Instance.new("NoCollisionConstraint");
            v88.Name = "RagdollNoCollision";
            v88.Part0 = v86;
            v88.Part1 = v83;
            v88.Parent = v83;
        end;
    end;
end;
local function _(v90, v91)
    local v92;
    if v90 then
        v92 = true;
        if not (v90.Parent ~= v91) then
            goto label0;
        end;
    end;
    v92 = false;
    ::label0::;
    return v92;
end;
local function _(v94, v95, v96, v97)
    local v98;
    if v96 then
        v98 = true;
        if not (v96.Parent ~= v94) then
            goto label1;
        end;
    end;
    v98 = false;
    ::label1::;
    if v98 then
        if v97 then
            v98 = true;
            if not (v97.Parent ~= v95) then
                goto label3;
            end;
        end;
        v98 = false;
        ::label3::;
        if v98 then
            return true;
        end;
    end;
    if v96 then
        v98 = true;
        if not (v96.Parent ~= v95) then
            goto label2;
        end;
    end;
    v98 = false;
    ::label2::;
    if v98 then
        if v97 then
            v98 = true;
            if not (v97.Parent ~= v94) then
                goto label4;
            end;
        end;
        v98 = false;
        ::label4::;
        if v98 then
            return true;
        end;
    end;
    return false;
end;
local function v108(v100, v101)
    for _, v103 in ipairs(v101:GetChildren()) do
        if v103:IsA("BallSocketConstraint") then
            local l_Attachment0_0 = v103.Attachment0;
            local l_Attachment1_0 = v103.Attachment1;
            local v106;
            if l_Attachment0_0 then
                v106 = true;
                if not (l_Attachment0_0.Parent ~= v100) then
                    goto label5;
                end;
            end;
            v106 = false;
            ::label5::;
            local v107;
            if v106 then
                if l_Attachment1_0 then
                    v106 = true;
                    if not (l_Attachment1_0.Parent ~= v101) then
                        goto label8;
                    end;
                end;
                v106 = false;
                ::label8::;
                if v106 then
                    v107 = true;
                    goto label7 --[[  true, true  ]];
                end;
            end;
            if l_Attachment0_0 then
                v106 = true;
                if not (l_Attachment0_0.Parent ~= v101) then
                    goto label6;
                end;
            end;
            v106 = false;
            ::label6::;
            if v106 then
                if l_Attachment1_0 then
                    v106 = true;
                    if not (l_Attachment1_0.Parent ~= v100) then
                        goto label9;
                    end;
                end;
                v106 = false;
                ::label9::;
                if v106 then
                    v107 = true;
                    goto label7 --[[  true, true  ]];
                end;
            end;
            v107 = false;
            ::label7::;
            if v107 then
                return true;
            end;
        end;
    end;
    return false;
end;
local function v114(v109)
    if (not l_game_EngineFeature_0 or v109:IsA("Motor6D")) or v109:IsA("AnimationConstraint") then
        local v110 = nil;
        local v111 = nil;
        if not v109:IsA("Motor6D") then
            if not (not l_game_EngineFeature_0 or not v109:IsA("AnimationConstraint")) then
                local l_Attachment0_1 = v109.Attachment0;
                local l_Attachment1_1 = v109.Attachment1;
                v110 = l_Attachment0_1 and l_Attachment0_1.Parent;
                v111 = l_Attachment1_1 and l_Attachment1_1.Parent;
            end;
        else
            v110 = v109.Part0;
            v111 = v109.Part1;
        end;
        if v110 and v111 then
            if not v108(v110, v111) then
                if not v108(v111, v110) then
                    return false;
                else
                    return true;
                end;
            else
                return true;
            end;
        else
            return false;
        end;
    else
        return false;
    end;
end;
local function v122(v115, v116)
    local v117 = {};
    for _, v119 in ipairs(v116) do
        local l_v115_FirstChild_0 = v115:FindFirstChild(v119[2]);
        if l_v115_FirstChild_0 then
            local l_l_v115_FirstChild_0_FirstChild_0 = l_v115_FirstChild_0:FindFirstChild(v119[1]);
            if not ((not l_l_v115_FirstChild_0_FirstChild_0 or not l_game_EngineFeature_0 and not l_l_v115_FirstChild_0_FirstChild_0:IsA("Motor6D")) or not v114(l_l_v115_FirstChild_0_FirstChild_0)) then
                table.insert(v117, l_l_v115_FirstChild_0_FirstChild_0);
                l_l_v115_FirstChild_0_FirstChild_0.Enabled = false;
            end;
        end;
    end;
    return v117;
end;
v2.createRagdollJoints = function(v123, v124, v125)
    local v126 = v32(v123);
    if v124 == Enum.HumanoidRigType.R6 then
        v65(v126, v23);
        v53(v126, v24, false);
        v89(v126, v25);
        return ;
    elseif v124 == Enum.HumanoidRigType.R15 then
        v65(v126, v19);
        v53(v126, v20, v125);
        v89(v126, v21);
        return ;
    else
        error("unknown rig type", 2);
        return ;
    end;
end;
v2.disableMotors = function(v127, v128)
    local v129 = nil;
    if v128 == Enum.HumanoidRigType.R6 then
        v129 = v122(v127, v26);
    elseif v128 == Enum.HumanoidRigType.R15 then
        v129 = v122(v127, v22);
    else
        error("unknown rig type", 2);
    end;
    local v130 = v127.PrimaryPart or v127:FindFirstChild("HumanoidRootPart");
    if not (not v130 or not v130:IsA("BasePart")) then
        v130.CanCollide = false;
    end;
    local l_Head_0 = v127:FindFirstChild("Head");
    if not (not l_Head_0 or not l_Head_0:IsA("BasePart")) then
        l_Head_0.CanCollide = true;
    end;
    return v129;
end;
v2.disableParticleEmittersAndFadeOut = function(v132, v133)
    if l_RunService_0:IsServer() then
        error("disableParticleEmittersAndFadeOut should not be called on the server.", 2);
    end;
    local l_v132_Descendants_0 = v132:GetDescendants();
    local v135 = {};
    for _, v137 in pairs(l_v132_Descendants_0) do
        if not v137:IsA("BasePart") and not v137:IsA("Decal") then
            if v137:IsA("ParticleEmitter") then
                v137.Enabled = false;
            end;
        else
            v135[v137] = v137.Transparency;
        end;
    end;
    local v138 = 0;
    while v138 < v133 do
        v138 = v138 + l_RunService_0.Heartbeat:Wait();
        local v139 = math.min(v138 / v133, 1);
        for v140, v141 in pairs(v135) do
            v140.Transparency = (1 - v139) * v141 + v139;
        end;
    end;
end;
v2.easeNongraphicJointFriction = function(v142, v143)
    local l_v142_Descendants_0 = v142:GetDescendants();
    local v145 = {};
    for _, v147 in pairs(l_v142_Descendants_0) do
        if v147:IsA("BallSocketConstraint") and v147.Name == "RagdollBallSocket" then
            v147.MaxFrictionTorque = v147.MaxFrictionTorque * 100;
            local l_MaxFrictionTorque_0 = v147.MaxFrictionTorque;
            local l_Name_0 = v147.Parent.Name;
            v145[v147] = {
                v147,
                l_MaxFrictionTorque_0,
                l_MaxFrictionTorque_0 * ((not (l_Name_0 ~= "UpperTorso") or l_Name_0 == "Head") and 0.5 or 0.05)
            };
        end;
    end;
    local v150 = 0;
    while v150 < v143 do
        local _, v152 = l_RunService_0.Stepped:Wait();
        v150 = v150 + v152;
        local v153 = math.min(v150 / v143, 1);
        for _, v155 in pairs(v145) do
            local v156, v157, v158 = unpack(v155);
            v156.MaxFrictionTorque = (1 - v153) * v157 + v153 * v158;
        end;
    end;
end;
v2.easeJointFriction_OLD = function(v159, v160)
    local l_v159_Descendants_0 = v159:GetDescendants();
    local v162 = {};
    for _, v164 in pairs(l_v159_Descendants_0) do
        if v164:IsA("BallSocketConstraint") and v164.Name == "RagdollBallSocket" then
            local l_MaxFrictionTorque_1 = v164.MaxFrictionTorque;
            local l_Name_1 = v164.Parent.Name;
            v162[v164] = {
                v164,
                l_MaxFrictionTorque_1,
                l_MaxFrictionTorque_1 * ((not (l_Name_1 ~= "UpperTorso") or l_Name_1 == "Head") and 0.5 or 0.05)
            };
        end;
    end;
    local v167 = 0;
    while v167 < v160 do
        local _, v169 = l_RunService_0.Stepped:Wait();
        v167 = v167 + v169;
        local v170 = math.min(v167 / v160, 1);
        for _, v172 in pairs(v162) do
            local v173, v174, v175 = unpack(v172);
            v173.MaxFrictionTorque = (1 - v170) * v174 + v170 * v175;
        end;
    end;
end;
return v2;


return {
    eventName = settings():GetFVariable("LuaErrorsInfluxSeries"),
    backends = {
        require(game:GetService("CorePackages").Workspace.Packages.LoggingProtocol).TelemetryBackends.Points
    },
    throttlingPercentage = tonumber(settings():GetFVariable("LuaErrorsInfluxThrottling")),
    lastUpdated = {
        22,
        7,
        29
    },
    description = "Report Lua errors to Points with document name \"luashellerrors\"",
    links = "https://grafana.simulprod.com/d/grdIrDiVz/lua-apps-error-metrics?orgId=1"
};


local v0 = {};
local l_ContentProvider_0 = game:GetService("ContentProvider");
local _ = function(v2)
    local _, v4 = v2:find("%.");
    local v5 = v2:sub(v4 + 1);
    if v5:sub(-1) ~= "/" then
        v5 = v5 .. "/";
    end;
    return v5;
end;
local l_BaseUrl_0 = l_ContentProvider_0.BaseUrl;
local _, v9 = l_BaseUrl_0:find("%.");
local v10 = l_BaseUrl_0:sub(v9 + 1);
if v10:sub(-1) ~= "/" then
    v10 = v10 .. "/";
end;
local l_v10_0 = v10;
local v12 = {
    GAME_URL = string.format("https://games.%s", l_v10_0),
    RCS_URL = string.format("https://apis.rcs.%s", l_v10_0),
    APIS_URL = string.format("https://apis.%s", l_v10_0),
    ACCOUNT_SETTINGS_URL = string.format("https://accountsettings.%s", l_v10_0),
    GAME_INTERNATIONALIZATION_URL = string.format("https://gameinternationalization.%s", l_v10_0),
    LOCALE_URL = string.format("https://locale.%s", l_v10_0),
    ROLES_URL = string.format("https://users.%s", l_v10_0)
};
setmetatable(v0, {
    __newindex = function(_, _, _)
    end,
    __index = function(_, v17)
        return v12[v17];
    end
});
return v0;


local l_Players_0 = game:GetService("Players");
local v1 = require(script.Parent.StringUtilities.StringReplaceAll);
local function v4()
    local v2 = {};
    local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
    if l_LocalPlayer_0 ~= nil then
        if l_LocalPlayer_0.UserId and l_LocalPlayer_0.UserId > 0 then
            v2[tostring(l_LocalPlayer_0.UserId)] = "UserId";
        end;
        if l_LocalPlayer_0.Name and l_LocalPlayer_0.Name ~= "" then
            v2[tostring(l_LocalPlayer_0.Name)] = "UserName";
        end;
    end;
    return v2;
end;
local function v5(v6, v7)
    if not v7 then
        v7 = v4();
    end;
    if type(v6) == "table" then
        local v8 = {};
        for v9, v10 in pairs(v6) do
            v8[v9] = v5(v10, v7);
        end;
        return v8;
    elseif type(v6) ~= "string" then
        for v11, v12 in pairs(v7) do
            if tostring(v6) == v11 then
                return v12;
            end;
        end;
        return v6;
    else
        return v1(v6, v7);
    end;
end;
return v5;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local l_StyleProviderWithDefaultTheme_0 = require(l_CorePackages_0.Workspace.Packages.Style).StyleProviderWithDefaultTheme;
return function(v3, v4)
    return v1.createElement(l_StyleProviderWithDefaultTheme_0, {
        withUiModeSupport = not not v4 and v4.withUiModeSupport,
        withDarkTheme = not v4 and true or v4.withDarkTheme
    }, v3);
end;


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        friend = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1, v2)
    return {
        title = v0,
        bodyText = v1,
        dismissCallback = v2
    };
end);


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.ContactList.Enums.Pages);
return require(l_CorePackages_0.Rodux).makeActionCreator(script.Name, function(v3)
    return {
        page = v3
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        tag = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        lastRemovedFriendId = v0
    };
end);


return {
    CallBarHangUpClicked = "callBarHangUpClicked",
    PhoneBookNavigate = "phoneBookNavigate",
    PhoneBookSearchClicked = "phoneBookSearchClicked",
    PhoneBookSearchAttempted = "phoneBookSearchAttempted",
    PhoneBookSearchFinished = "phoneBookSearchFinished",
    PhoneBookPlayerMenuOpened = "phoneBookPlayerMenuOpened",
    PhoneBookPlayerMenuUnfriendClicked = "phoneBookPlayerMenuUnfriendClicked",
    PhoneBookPlayerMenuUnfriendFinished = "phoneBookPlayerMenuUnfriendFinished",
    PhoneBookPlayerMenuBlockClicked = "phoneBookPlayerMenuBlockClicked",
    PhoneBookCallFriendClicked = "phoneBookCallFriendClicked",
    PhoneBookCallFriendFailed = "phoneBookCallFriendFailed"
};


local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_UserInputService_0 = game:GetService("UserInputService");
local v4 = require(l_CorePackages_0.Packages.Dash);
local l_Enums_0 = require(l_CorePackages_0.Workspace.Packages.SocialLuaAnalytics).Analytics.Enums;
local l_Contexts_0 = l_Enums_0.Contexts;
local l_EventTypes_0 = l_Enums_0.EventTypes;
local v8 = require(script.Parent.EventNamesEnum);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
local l_l_RbxAnalyticsService_0_PlaySessionId_0 = l_RbxAnalyticsService_0:GetPlaySessionId();
local v12 = nil;
v12 = (not (l_l_UserInputService_0_Platform_0 ~= Enum.Platform.Windows) or l_l_UserInputService_0_Platform_0 == Enum.Platform.OSX) and "desktop" or (l_l_UserInputService_0_Platform_0 == Enum.Platform.IOS and "ios" or (l_l_UserInputService_0_Platform_0 == Enum.Platform.Android and "android" or ((not (((l_l_UserInputService_0_Platform_0 ~= Enum.Platform.XBox360 and l_l_UserInputService_0_Platform_0 ~= Enum.Platform.PS3) and l_l_UserInputService_0_Platform_0 ~= Enum.Platform.PS4) and l_l_UserInputService_0_Platform_0 ~= Enum.Platform.XBoxOne) or l_l_UserInputService_0_Platform_0 == Enum.Platform.WiiU) and "console" or "other")));
return {
    [v8.CallBarHangUpClicked] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.CallBarHangUpClicked,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            calleeUserId = v4.identity,
            callerUserId = v4.identity,
            callId = v4.identity,
            callStatus = v4.identity,
            isRetry = v4.identity
        }
    },
    [v8.PhoneBookNavigate] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookNavigate,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            startingPage = v4.identity,
            destinationPage = v4.identity
        }
    },
    [v8.PhoneBookSearchClicked] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookSearchClicked,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        }
    },
    [v8.PhoneBookSearchAttempted] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookSearchAttempted,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            searchQueryString = v4.identity
        }
    },
    [v8.PhoneBookSearchFinished] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookSearchFinished,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            searchQueryString = v4.identity,
            searchResultCount = v4.identity
        }
    },
    [v8.PhoneBookPlayerMenuOpened] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookPlayerMenuOpened,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            friendUserId = v4.identity,
            searchQueryString = v4.identity,
            itemListIndex = v4.identity,
            isSuggestedUser = v4.identity,
            page = v4.identity
        }
    },
    [v8.PhoneBookPlayerMenuUnfriendClicked] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookPlayerMenuUnfriendClicked,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            friendUserId = v4.identity
        }
    },
    [v8.PhoneBookPlayerMenuUnfriendFinished] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookPlayerMenuUnfriendFinished,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            friendUserId = v4.identity,
            success = v4.identity
        }
    },
    [v8.PhoneBookPlayerMenuBlockClicked] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookPlayerMenuBlockClicked,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            friendUserId = v4.identity
        }
    },
    [v8.PhoneBookCallFriendClicked] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookCallFriendClicked,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            friendUserId = v4.identity,
            searchQueryString = v4.identity,
            itemListIndex = v4.identity,
            isSuggestedUser = v4.identity,
            page = v4.identity
        }
    },
    [v8.PhoneBookCallFriendFailed] = {
        context = l_Contexts_0.ContactList,
        eventType = l_EventTypes_0.PhoneBookCallFriendFailed,
        additionalInfo = {
            uid = l_LocalPlayer_0.UserId,
            universeId = game.GameId,
            placeId = game.PlaceId,
            deviceType = v12,
            playSessionId = l_l_RbxAnalyticsService_0_PlaySessionId_0
        },
        formatRulesForAdditionalInfo = {
            eventTimestampMs = v4.identity,
            calleeUserId = v4.identity,
            callerUserId = v4.identity,
            errorMsg = v4.identity
        }
    }
};


local v0 = require(game:GetService("CorePackages").Workspace.Packages.SocialLuaAnalytics);
return {
    Analytics = v0.Analytics.AnalyticsFactory.setUpAnalyticsFactory({
        eventLists = {
            EventStream = require(script.EventStreamActionList),
            Diag = nil
        },
        analyticsImpl = {
            EventStream = v0.Analytics.DefaultAnalyticsService.EventStream,
            Diag = nil
        }
    }),
    useAnalytics = require(script.useAnalytics)
};


local v0 = require(game:GetService("CorePackages").Packages.React);
local v1 = require(script:FindFirstAncestor("ContactList").Context.ContactListContext);
return function()
    return {
        fireEvent = v0.useContext(v1).fireAnalyticsEvent
    };
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Packages.Cryo);
local v4 = require(l_CorePackages_0.Workspace.Packages.CallProtocol);
local l_Sounds_0 = require(l_CorePackages_0.Workspace.Packages.SoundManager).Sounds;
local l_SoundGroups_0 = require(l_CorePackages_0.Workspace.Packages.SoundManager).SoundGroups;
local l_SoundManager_0 = require(l_CorePackages_0.Workspace.Packages.SoundManager).SoundManager;
local v8 = require(l_CorePackages_0.Workspace.Packages.UserProfiles);
local l_GetFFlagIrisUseLocalizationProvider_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagIrisUseLocalizationProvider;
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_ContactList_0 = l_RobloxGui_0.Modules.ContactList;
local v12 = require(l_ContactList_0.dependencies);
local v13 = require(l_ContactList_0.Analytics.useAnalytics);
local v14 = require(l_ContactList_0.Analytics.EventNamesEnum);
local l_UIBlox_0 = v12.UIBlox;
local l_RoduxCall_0 = v12.RoduxCall;
local l_getStandardSizeAvatarHeadShotRbxthumb_0 = v12.getStandardSizeAvatarHeadShotRbxthumb;
local l_teleportToRootPlace_0 = v12.teleportToRootPlace;
local l_Colors_0 = l_UIBlox_0.App.Style.Colors;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local l_useSelector_0 = v12.Hooks.useSelector;
local v23 = nil;
local v24 = nil;
if not l_GetFFlagIrisUseLocalizationProvider_0() then
    v24 = require(l_RobloxGui_0.Modules.RobloxTranslator);
else
    v23 = v12.Hooks.useLocalization;
end;
local l_Players_0 = game:GetService("Players");
local l_RunService_0 = game:GetService("RunService");
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local v28 = not not l_LocalPlayer_0 and l_LocalPlayer_0.UserId or 0;
local v29 = {
    callProtocol = v4.CallProtocol.default
};
local function v38(v30)
    local v31 = math.floor(v30 / 3600);
    local v32 = math.floor((v30 % 3600) / 60);
    local v33 = v30 % 60;
    local v34 = string.format("%02d", v31);
    local v35 = string.format("%02d", v32);
    local v36 = string.format("%02d", v33);
    local _ = "";
    if v31 > 0 then
        return v34 .. ":" .. v35 .. ":" .. v36;
    else
        return v35 .. ":" .. v36;
    end;
end;
local function v41(v39, _)
    if v39 == l_RoduxCall_0.Enums.Status.Connecting then
        return "Feature.Call.Label.Calling";
    elseif v39 == l_RoduxCall_0.Enums.Status.Teleporting then
        return "Feature.Call.Label.Teleporting";
    elseif v39 == l_RoduxCall_0.Enums.Status.Active then
        return "Feature.Call.Label.RobloxCall";
    elseif v39 == l_RoduxCall_0.Enums.Status.Idle then
        return "Feature.Call.Label.CallEnded";
    else
        error("Invalid status for call bar: " .. v39 .. ".");
        return ;
    end;
end;
return function(v42)
    local v43 = v3.Dictionary.join(v29, v42);
    local v44 = l_useStyle_0();
    local v45 = v13();
    local l_Theme_0 = v44.Theme;
    local l_Font_0 = v44.Font;
    local v48, v49 = v2.useState("00:00");
    local v51 = l_useSelector_0((v2.useCallback(function(v50)
        if not v50.Call.currentCall then
            return "";
        else
            return v50.Call.currentCall.callId;
        end;
    end)));
    local v53 = l_useSelector_0((v2.useCallback(function(v52)
        if not v52.Call.currentCall then
            return "";
        else
            return v52.Call.currentCall.callerId;
        end;
    end)));
    local v55 = l_useSelector_0((v2.useCallback(function(v54)
        if not v54.Call.currentCall then
            return "";
        else
            return v54.Call.currentCall.calleeId;
        end;
    end)));
    local v57 = l_useSelector_0((v2.useCallback(function(v56)
        if not v56.Call.currentCall then
            return "";
        else
            return v56.Call.currentCall.status;
        end;
    end)));
    local v59 = l_useSelector_0((v2.useCallback(function(v58)
        if v58.Call.currentCall ~= nil then
            return v58.Call.currentCall.instanceId;
        else
            return "";
        end;
    end)));
    local v62 = l_useSelector_0((v2.useCallback(function(v60)
        local l_currentCall_0 = v60.Call.currentCall;
        if not l_currentCall_0 then
            return nil;
        elseif v28 == l_currentCall_0.callerId then
            return l_currentCall_0.calleeId;
        else
            return l_currentCall_0.callerId;
        end;
    end)));
    local v63 = nil;
    if v62 then
        v63 = l_getStandardSizeAvatarHeadShotRbxthumb_0(v62);
    end;
    local v64 = nil;
    if not l_GetFFlagIrisUseLocalizationProvider_0() then
        v64 = v24:FormatByKey(v41(v57, v59));
    else
        local l_v23_0 = v23;
        local v66 = {};
        local v67;
        if v57 == l_RoduxCall_0.Enums.Status.Connecting then
            v67 = "Feature.Call.Label.Calling";
        elseif v57 == l_RoduxCall_0.Enums.Status.Teleporting then
            v67 = "Feature.Call.Label.Teleporting";
        elseif v57 == l_RoduxCall_0.Enums.Status.Active then
            v67 = "Feature.Call.Label.RobloxCall";
        elseif v57 == l_RoduxCall_0.Enums.Status.Idle then
            v67 = "Feature.Call.Label.CallEnded";
        else
            error("Invalid status for call bar: " .. v57 .. ".");
            v67 = nil;
        end;
        v66.callStatusLabel = v67;
        v64 = l_v23_0(v66).callStatusLabel;
    end;
    local v68 = false;
    if v57 == l_RoduxCall_0.Enums.Status.Idle then
        v68 = game.JobId == v59;
    end;
    local v69 = true;
    if v57 ~= l_RoduxCall_0.Enums.Status.Active then
        v69 = true;
        if v57 ~= l_RoduxCall_0.Enums.Status.Connecting then
            v69 = v68;
        end;
    end;
    local v71 = v2.useCallback(function()
        local v70 = false;
        if not v68 then
            if v57 == l_RoduxCall_0.Enums.Status.Active then
                l_SoundManager_0:PlaySound(l_Sounds_0.HangUp.Name, {
                    Volume = 0.5
                }, l_SoundGroups_0.Iris);
                v43.callProtocol:finishCall(v51);
            elseif v57 == l_RoduxCall_0.Enums.Status.Connecting then
                v43.callProtocol:cancelCall(v51);
            end;
        else
            l_teleportToRootPlace_0();
            v70 = true;
        end;
        v45.fireEvent(v14.CallBarHangUpClicked, {
            eventTimestampMs = os.time() * 1000,
            callerUserId = v53,
            calleeUserId = v55,
            callId = v51,
            callStatus = v57,
            isRetry = v70
        });
    end, {
        v57,
        v43.callProtocol,
        v68
    });
    local v72 = if not v68 then v44.Theme.Alert else v44.Theme.SystemPrimaryDefault;
    local v73 = not v68 and "rbxassetid://15239778319" or "rbxassetid://15123605982";
    local v74 = if not v68 then l_Colors_0.White else l_Colors_0.Slate;
    v2.useEffect(function()
        local v75 = l_RunService_0.Heartbeat:Connect(function()
            if v43.activeUtc == 0 then
                return ;
            else
                v49((v38((math.max(0, os.time() - v43.activeUtc / 1000)))));
                return ;
            end;
        end);
        return function()
            v75:Disconnect();
        end;
    end, {
        v43.activeUtc
    });
    local v76 = v8.Hooks.useUserProfilesFetch({
        userIds = {
            (tostring(v62))
        },
        query = v8.Queries.userProfilesCombinedNameAndUsernameByUserIds
    });
    local v79 = l_useSelector_0((v2.useCallback(function(v77)
        local l_currentCall_1 = v77.Call.currentCall;
        if not l_currentCall_1 then
            return "";
        elseif v28 == l_currentCall_1.callerId then
            return l_currentCall_1.calleeCombinedName or "";
        else
            return l_currentCall_1.callerCombinedName or "";
        end;
    end)));
    local v80 = "";
    if not v76.data then
        if v76.error then
            v80 = v79;
        end;
    else
        v80 = v8.Selectors.getCombinedNameFromId(v76.data, v62);
    end;
    return v2.createElement("Frame", {
        Size = UDim2.fromOffset(v43.size.X, v43.size.Y),
        Position = v43.position,
        AnchorPoint = Vector2.new(0, 0),
        BackgroundColor3 = l_Theme_0.BackgroundMuted.Color,
        BackgroundTransparency = l_Theme_0.BackgroundMuted.Transparency,
        BorderSizePixel = 0
    }, {
        UICorner = v2.createElement("UICorner", {
            CornerRadius = UDim.new(0.5, 0)
        }),
        UIListLayout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            Padding = UDim.new(0, 8),
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        UIPadding = v2.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 4),
            PaddingTop = UDim.new(0, 4),
            PaddingRight = UDim.new(0, 4),
            PaddingBottom = UDim.new(0, 4)
        }),
        ProfileImage = v2.createElement(l_ImageSetLabel_0, {
            Position = UDim2.fromOffset(0, 0),
            Size = UDim2.fromOffset(36, 36),
            Image = v63,
            LayoutOrder = 1
        }, {
            UICorner = v2.createElement("UICorner", {
                CornerRadius = UDim.new(1, 0)
            })
        }),
        Content = v2.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, -88, 0, 0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            LayoutOrder = 2
        }, {
            UIListLayout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            DisplayName = v2.createElement("TextLabel", {
                Size = UDim2.new(1, 0, 0, 22),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Font = l_Font_0.CaptionHeader.Font,
                LayoutOrder = 1,
                Text = v80,
                TextColor3 = l_Theme_0.TextEmphasis.Color,
                TextSize = l_Font_0.BaseSize * l_Font_0.CaptionHeader.RelativeSize,
                TextTransparency = l_Theme_0.TextEmphasis.Transparency,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            DetailsText = v2.createElement("TextLabel", {
                Size = UDim2.new(1, 0, 0, 14),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Font = l_Font_0.Footer.Font,
                LayoutOrder = 2,
                Text = if v57 == l_RoduxCall_0.Enums.Status.Active then v48 else v64,
                TextColor3 = l_Colors_0.White,
                TextSize = l_Font_0.BaseSize * l_Font_0.Footer.RelativeSize,
                TextTransparency = 0.4,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left
            })
        }),
        ActionButton = if v57 ~= l_RoduxCall_0.Enums.Status.Failed then v2.createElement("ImageButton", {
            Position = UDim2.fromOffset(0, 0),
            Active = v69,
            AnchorPoint = Vector2.new(1, 1),
            LayoutOrder = 3,
            Size = UDim2.fromOffset(36, 36),
            BackgroundTransparency = v72.Transparency,
            BackgroundColor3 = v72.Color,
            BorderSizePixel = 0,
            Image = v73,
            ImageColor3 = v74,
            [v2.Event.Activated] = v71
        }, {
            UICorner = v2.createElement("UICorner", {
                CornerRadius = UDim.new(0, 36)
            })
        }) else nil
    });
end;