local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_CorePackages_0.UIBlox);
local v7 = require(script.Parent.DropDownButtonAnimator);
local l_Images_0 = v6.App.ImageSet.Images;
local v9 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.RobloxTranslator);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local v11 = v4.PureComponent:extend("FriendDropDownButton");
v11.validateProps = v5.strictInterface({
    layoutOrder = v5.integer,
    playerRelationship = v5.strictInterface({
        isBlocked = v5.boolean,
        friendStatus = v5.enum(Enum.FriendStatus),
        isFollowing = v5.boolean,
        isFollower = v5.boolean
    }),
    selectedPlayer = v5.optional(v5.instanceIsA("Player")),
    dropDownOpen = v5.boolean,
    requestFriendship = v5.callback,
    contentVisible = v5.boolean
});
local function v15(v12)
    local v13 = l_Images_0["icons/actions/friends/friendAdd"];
    local v14 = l_Images_0["icons/actions/friends/friendRemove"];
    if v12 == Enum.FriendStatus.Friend then
        return v9:FormatByKey("PlayerDropDown.Unfriend"), v14;
    elseif not (v12 ~= Enum.FriendStatus.Unknown) or v12 == Enum.FriendStatus.NotFriend then
        return v9:FormatByKey("PlayerDropDown.FriendRequest"), v13;
    elseif v12 == Enum.FriendStatus.FriendRequestSent then
        return v9:FormatByKey("PlayerDropDown.CancelRequest"), v13;
    elseif v12 == Enum.FriendStatus.FriendRequestReceived then
        return v9:FormatByKey("PlayerDropDown.Accept"), v13;
    else
        return v9:FormatByKey("PlayerDropDown.Friend Request"), v13;
    end;
end;
v11.init = function(v16)
    v16.state = {
        unfriendConfirm = false
    };
end;
v11.render = function(v17)
    local l_playerRelationship_0 = v17.props.playerRelationship;
    local l_selectedPlayer_0 = v17.props.selectedPlayer;
    local v20 = nil;
    v20 = (not (l_playerRelationship_0.friendStatus == Enum.FriendStatus.Friend) or v17.state.unfriendConfirm) and function()
        if l_playerRelationship_0.friendStatus == Enum.FriendStatus.Friend then
            l_LocalPlayer_0:RevokeFriendship(l_selectedPlayer_0);
            return ;
        elseif not (l_playerRelationship_0.friendStatus ~= Enum.FriendStatus.Unknown) or l_playerRelationship_0.friendStatus == Enum.FriendStatus.NotFriend then
            v17.props.requestFriendship(l_selectedPlayer_0, false);
            return ;
        elseif l_playerRelationship_0.friendStatus == Enum.FriendStatus.FriendRequestSent then
            l_RbxAnalyticsService_0:ReportCounter("PlayerDropDown-RevokeFriendship");
            l_RbxAnalyticsService_0:TrackEvent("Game", "RevokeFriendship", "PlayerDropDown");
            l_LocalPlayer_0:RevokeFriendship(l_selectedPlayer_0);
            return ;
        else
            if l_playerRelationship_0.friendStatus == Enum.FriendStatus.FriendRequestReceived then
                l_RbxAnalyticsService_0:ReportCounter("PlayerDropDown-RequestFriendship");
                l_RbxAnalyticsService_0:TrackEvent("Game", "RequestFriendship", "PlayerDropDown");
                v17.props.requestFriendship(l_selectedPlayer_0, true);
            end;
            return ;
        end;
    end or function()
        v17:setState({
            unfriendConfirm = true
        });
    end;
    local v21 = nil;
    if l_playerRelationship_0.friendStatus == Enum.FriendStatus.FriendRequestReceived then
        v21 = function()
            l_LocalPlayer_0:RevokeFriendship(l_selectedPlayer_0);
        end;
    end;
    local v22 = nil;
    if v17.state.unfriendConfirm then
        v22 = function()
            v17:setState({
                unfriendConfirm = false
            });
        end;
    end;
    local v23, v24 = v15(l_playerRelationship_0.friendStatus);
    return v4.createElement(v7, {
        layoutOrder = v17.props.layoutOrder,
        text = v23,
        icon = v24,
        lastButton = false,
        onActivated = v20,
        forceShowOptions = v17.state.unfriendConfirm,
        selectedPlayer = l_selectedPlayer_0,
        onDecline = v21,
        onDismiss = v22,
        contentVisible = v17.props.contentVisible
    });
end;
v11.didUpdate = function(v25, v26, _)
    if v26.playerRelationship.friendStatus ~= v25.props.playerRelationship.friendStatus then
        v25:setState({
            unfriendConfirm = false
        });
    end;
    if not (v26.selectedPlayer == v25.props.selectedPlayer) or v26.dropDownOpen ~= v25.props.dropDownOpen then
        v25:setState({
            unfriendConfirm = false
        });
    end;
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local l_GuiService_0 = game:GetService("GuiService");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Packages.t);
local v7 = require(l_CorePackages_0.Packages.Otter);
local v8 = require(l_CorePackages_0.UIBlox);
local l_Parent_0 = script.Parent.Parent;
local l_WithLayoutValues_0 = require(l_Parent_0.Connection.LayoutValues).WithLayoutValues;
local v11 = require(script.Parent.DropDownButton);
local v12 = require(script.Parent.DropDownPlayerHeader);
local v13 = require(script.Parent.FriendDropDownButton);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v16 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local l_Images_0 = v8.App.ImageSet.Images;
local v18 = require(l_RobloxGui_0.Modules.isNewInGameMenuEnabled);
local l_Parent_1 = l_Parent_0.Parent;
local v20 = require(l_Parent_1.Actions.ClosePlayerDropDown);
local v21 = require(l_Parent_1.Actions.SetPlayerListVisibility);
local v22 = require(l_Parent_1.Thunks.BlockPlayer);
local v23 = require(l_Parent_1.Thunks.UnblockPlayer);
local v24 = require(l_Parent_1.Thunks.RequestFriendship);
local v25 = v4.PureComponent:extend("PlayerDropDown");
v25.validateProps = v6.strictInterface({
    contentsVisible = v6.boolean,
    selectedPlayer = v6.optional(v6.instanceIsA("Player")),
    isVisible = v6.boolean,
    playerRelationship = v6.optional(v6.strictInterface({
        isBlocked = v6.boolean,
        friendStatus = v6.enum(Enum.FriendStatus),
        isFollowing = v6.boolean,
        isFollower = v6.boolean
    })),
    inspectMenuEnabled = v6.boolean,
    isTenFootInterface = v6.boolean,
    subjectToChinaPolicies = v6.boolean,
    preferredTransparency = v6.number,
    closeDropDown = v6.callback,
    blockPlayer = v6.callback,
    unblockPlayer = v6.callback,
    requestFriendship = v6.callback,
    setPlayerListVisibility = v6.callback
});
local v26 = {
    dampingRatio = 1,
    frequency = 4
};
v25.init = function(v27)
    v27.state = {
        allVisible = false,
        contentVisible = false
    };
    local v28, v29 = v4.createBinding(1);
    v27.containerScale = v28;
    v27.updateContainerScale = v29;
    v27.containerScaleMotor = v7.createSingleMotor(0);
    v27.containerScaleMotor:onStep(function(v30)
        v27.updateContainerScale(v30);
    end);
    v28, v29 = v4.createBinding(1);
    v27.transparency = v28;
    v27.updateTransparency = v29;
    v27.transparencyMotor = v7.createSingleMotor(0);
    v27.transparencyMotor:onStep(function(v31)
        v27.updateTransparency(v31);
        if (not (v31 < 0.5) or not v27.props.isVisible) or not v27.props.contentsVisible then
            v27:setState({
                contentVisible = false
            });
        else
            v27:setState({
                contentVisible = true
            });
        end;
        v27:setState({
            allVisible = v31 < 1
        });
    end);
    v28, v29 = v4.createBinding(1);
    v27.buttonTransparency = v28;
    v27.updateButtonTransparency = v29;
    v27.buttonTransparencyMotor = v7.createSingleMotor(0);
    v27.buttonTransparencyMotor:onStep(function(v32)
        v27.updateButtonTransparency(v32);
    end);
end;
v25.createFriendButton = function(v33, v34)
    return v4.createElement(v13, {
        layoutOrder = 1,
        playerRelationship = v34,
        selectedPlayer = v33.props.selectedPlayer,
        dropDownOpen = v33.props.isVisible,
        requestFriendship = v33.props.requestFriendship,
        contentVisible = v33.state.contentVisible
    });
end;
v25.createBlockButton = function(v35, v36)
    local l_selectedPlayer_0 = v35.props.selectedPlayer;
    return v4.createElement(v11, {
        contentVisible = v35.state.contentVisible,
        buttonTransparency = v35.buttonTransparency,
        layoutOrder = 4,
        text = not not v36.isBlocked and v16:FormatByKey("PlayerDropDown.UnBlock") or v16:FormatByKey("PlayerDropDown.Block"),
        icon = l_Images_0["icons/actions/block"],
        lastButton = false,
        forceShowOptions = false,
        onActivated = function()
            if not v36.isBlocked then
                v35.props.blockPlayer(l_selectedPlayer_0);
                return ;
            else
                v35.props.unblockPlayer(l_selectedPlayer_0);
                return ;
            end;
        end
    });
end;
v25.createReportButton = function(v38)
    local l_selectedPlayer_1 = v38.props.selectedPlayer;
    return v4.createElement(v11, {
        contentVisible = v38.state.contentVisible,
        buttonTransparency = v38.buttonTransparency,
        layoutOrder = 5,
        text = v16:FormatByKey("PlayerDropDown.Report"),
        icon = l_Images_0["icons/actions/feedback"],
        lastButton = true,
        forceShowOptions = false,
        onActivated = function()
            if not v18() then
                require(l_RobloxGui_0.Modules.Settings.Pages.ReportAbuseMenuNewContainerPage):ReportPlayer(l_selectedPlayer_1, v38.__componentName);
                v38.props.closeDropDown();
                return ;
            else
                require(l_RobloxGui_0.Modules.InGameMenuInit).openReportDialog(l_selectedPlayer_1, v38.__componentName);
                return ;
            end;
        end
    });
end;
v25.createInspectButton = function(v40)
    local l_selectedPlayer_2 = v40.props.selectedPlayer;
    return v4.createElement(v11, {
        contentVisible = v40.state.contentVisible,
        buttonTransparency = v40.buttonTransparency,
        layoutOrder = 3,
        text = v16:FormatByKey("PlayerDropDown.Examine"),
        icon = l_Images_0["icons/actions/zoomIn"],
        lastButton = l_selectedPlayer_2 == l_LocalPlayer_0,
        forceShowOptions = false,
        onActivated = function()
            l_GuiService_0:InspectPlayerFromUserIdWithCtx(l_selectedPlayer_2.UserId, "leaderBoard");
            v40.props.closeDropDown();
            v40.props.setPlayerListVisibility(false);
        end
    });
end;
v25.render = function(v42)
    return l_WithLayoutValues_0(function(v43)
        local l_selectedPlayer_3 = v42.props.selectedPlayer;
        if l_selectedPlayer_3 and not v42.props.isTenFootInterface then
            local v45 = {
                UIScale = v4.createElement("UIScale", {
                    Scale = v42.containerScale
                }),
                UIListLayout = v4.createElement("UIListLayout", {
                    Padding = UDim.new(0, v43.DropDownButtonPadding),
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                PlayerHeader = v4.createElement(v12, {
                    player = v42.props.selectedPlayer,
                    contentVisible = v42.state.contentVisible,
                    transparency = v42.transparency
                })
            };
            local v46 = 4 * v43.DropDownButtonSizeY + v43.DropDownHeaderSizeY;
            local v47 = v43.DropDownButtonPadding + v43.DropDownHeaderSizeY;
            local l_playerRelationship_0 = v42.props.playerRelationship;
            if l_selectedPlayer_3 ~= l_LocalPlayer_0 then
                if not l_playerRelationship_0.isBlocked then
                    v45.FriendButton = v42:createFriendButton(l_playerRelationship_0);
                    v47 = (v47 + v43.DropDownButtonPadding) + v43.DropDownButtonSizeY;
                end;
                v45.BlockButton = v42:createBlockButton(l_playerRelationship_0);
                v47 = (v47 + v43.DropDownButtonPadding) + v43.DropDownButtonSizeY;
                v45.ReportButton = v42:createReportButton();
                v47 = (v47 + v43.DropDownButtonPadding) + v43.DropDownButtonSizeY;
            end;
            if v42.props.inspectMenuEnabled then
                v45.InspectButton = v42:createInspectButton();
                v47 = (v47 + v43.DropDownButtonPadding) + v43.DropDownButtonSizeY;
            end;
            return v4.createElement("ImageButton", {
                LayoutOrder = v42.props.layoutOrder,
                Position = UDim2.new(0, 0, 0, 0),
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                Selectable = false,
                Modal = false,
                Visible = v42.state.allVisible,
                AutoButtonColor = false,
                Active = v42.props.isVisible,
                Image = "",
                [v4.Event.Activated] = v42.props.closeDropDown,
                [v4.Ref] = v42.imageButtonRef
            }, {
                Container = v4.createElement("Frame", {
                    LayoutOrder = v42.props.layoutOrder,
                    AnchorPoint = Vector2.new(0.5, 0),
                    Position = UDim2.new(0.5, 0, 0.5, -v46 / 2),
                    Size = UDim2.new(0, v43.PlayerDropDownSizeXMobile, 0, v47 - v43.DropDownButtonPadding),
                    BackgroundTransparency = 1,
                    ClipsDescendants = true
                }, v45)
            });
        else
            return nil;
        end;
    end);
end;
v25.getScale = function(v49)
    if not v49.props.isVisible or not v49.props.contentsVisible then
        return 1.25;
    else
        return 1;
    end;
end;
v25.getTransparency = function(v50)
    if not v50.props.isVisible or not v50.props.contentsVisible then
        return 1;
    else
        return 0;
    end;
end;
v25.getButtonTransparency = function(v51)
    if not v51.props.isVisible or not v51.props.contentsVisible then
        return 1;
    else
        return v51.props.preferredTransparency * 0.3;
    end;
end;
v25.didUpdate = function(v52, _, _)
    v52.containerScaleMotor:setGoal(v7.spring(v52:getScale(), v26));
    v52.transparencyMotor:setGoal(v7.spring(v52:getTransparency(), v26));
    v52.buttonTransparencyMotor:setGoal(v7.spring(v52:getButtonTransparency(), v26));
end;
v25.didMount = function(_)
end;
v25.willUnmount = function(v56)
    v56.transparencyMotor:destroy();
    v56.containerScaleMotor:destroy();
    v56.buttonTransparencyMotor:destroy();
    v56.transparencyMotor = nil;
    v56.containerScaleMotor = nil;
    v56.buttonTransparencyMotor = nil;
end;
return v5.connect(function(v57)
    local l_selectedPlayer_4 = v57.playerDropDown.selectedPlayer;
    return {
        selectedPlayer = l_selectedPlayer_4,
        isVisible = v57.playerDropDown.isVisible,
        playerRelationship = l_selectedPlayer_4 and v57.playerRelationship[l_selectedPlayer_4.UserId],
        inspectMenuEnabled = v57.displayOptions.inspectMenuEnabled,
        isTenFootInterface = v57.displayOptions.isTenFootInterface,
        subjectToChinaPolicies = v57.displayOptions.subjectToChinaPolicies,
        preferredTransparency = v57.settings.preferredTransparency
    };
end, function(v59)
    return {
        closeDropDown = function()
            return v59(v20());
        end,
        setPlayerListVisibility = function(v60)
            return v59(v21(v60));
        end,
        blockPlayer = function(v61)
            return v59(v22(v61));
        end,
        unblockPlayer = function(v62)
            return v59(v23(v62));
        end,
        requestFriendship = function(v63, _)
            return v59(v24(v63));
        end
    };
end)(v25);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_LocalPlayer_0 = game:GetService("Players").LocalPlayer;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_AppFonts_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppFonts;
local v6 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v8 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.Interfaces.playerInterface);
local l_Parent_0 = script.Parent.Parent;
local l_WithLayoutValues_0 = require(l_Parent_0.Connection.LayoutValues).WithLayoutValues;
local v11 = require(l_Parent_0.PresentationCommon.PlayerIcon);
local v12 = require(script.Parent.PlayerNameTag);
local v13 = require(script.Parent.StatEntry);
local l_Parent_1 = l_Parent_0.Parent;
local v15 = require(l_Parent_1.Actions.ClosePlayerDropDown);
local v16 = require(l_Parent_1.Actions.OpenPlayerDropDown);
local v17 = v3.PureComponent:extend("PlayerEntry");
v17.validateProps = v6.strictInterface({
    topDiv = v6.optional(v6.boolean),
    bottomDiv = v6.optional(v6.boolean),
    player = v8,
    titlePlayerEntry = v6.boolean,
    entrySize = v6.integer,
    layoutOrder = v6.optional(v6.integer),
    playerStats = v6.map(v6.string, v6.any),
    playerIconInfo = v6.strictInterface({
        isPlaceOwner = v6.boolean,
        avatarIcon = v6.optional(v6.table),
        specialGroupIcon = v6.optional(v6.table)
    }),
    playerRelationship = v6.strictInterface({
        isBlocked = v6.boolean,
        friendStatus = v6.enum(Enum.FriendStatus),
        isFollowing = v6.boolean,
        isFollower = v6.boolean
    }),
    gameStats = v6.array(v6.strictInterface({
        name = v6.string,
        text = v6.string,
        addId = v6.integer,
        isPrimary = v6.boolean,
        priority = v6.number
    })),
    [v3.Ref] = v6.optional(v6.table),
    selectedPlayer = v6.optional(v6.instanceIsA("Player")),
    dropDownOpen = v6.boolean,
    isSmallTouchDevice = v6.boolean,
    closeDropDown = v6.callback,
    openDropDown = v6.callback,
    Position = v6.optional(v6.UDim2)
});
v17.init = function(v18)
    v18.state = {
        isHovered = false,
        isPressed = false
    };
    v18.onActivated = function()
        if not v18.props.dropDownOpen then
            v18.props.openDropDown(v18.props.player);
            return ;
        else
            v18.props.closeDropDown();
            return ;
        end;
    end;
    v18.onSelectionGained = function()
        v18:setState({
            isHovered = true
        });
    end;
    v18.onSelectionLost = function()
        v18:setState({
            isHovered = false
        });
    end;
    v18.onMouseEnter = function()
        v18:setState({
            isHovered = true
        });
    end;
    v18.onMouseLeave = function()
        v18:setState({
            isHovered = false,
            isPressed = false
        });
    end;
    v18.onMouseDown = function()
        v18:setState({
            isPressed = true
        });
    end;
    v18.onInputEnded = function()
        v18:setState({
            isPressed = false
        });
    end;
end;
v17.getBackgroundColor = function(v19, v20)
    return not not (v19.state.isHovered or v19.state.isPressed) and v20.RowHoverColor or v20.RowDefaultColor;
end;
v17.getTextStyle = function(v21, v22, v23)
    if not v22.IsTenFoot then
        if not (v21.props.player == l_LocalPlayer_0) then
            return v23.Theme.TextMuted;
        else
            return v23.Theme.TextEmphasis;
        end;
    elseif not v21.state.isHovered then
        return v22.DefaultTextStyle, v22.PlayerNameTextSizeMobile;
    else
        return v22.HoveredTextStyle, v22.PlayerNameTextSizeMobile;
    end;
end;
v17.getPlayerNameFont = function(v24, _, v26)
    if not (v24.props.player == l_LocalPlayer_0) then
        return {
            Font = l_AppFonts_0.default:getDefault(),
            Size = v26.Font.CaptionBody.RelativeSize * v26.Font.BaseSize,
            MinSize = v26.Font.Footer.RelativeMinSize * v26.Font.BaseSize
        };
    else
        return {
            Font = l_AppFonts_0.default:getMedium(),
            Size = v26.Font.CaptionHeader.RelativeSize * v26.Font.BaseSize,
            MinSize = v26.Font.Footer.RelativeMinSize * v26.Font.BaseSize
        };
    end;
end;
v17.render = function(v27)
    return l_WithLayoutValues_0(function(v28)
        return l_withStyle_0(function(v29)
            local v30 = v27:getTextStyle(v28, v29);
            local v31 = {
                Layout = v3.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                NameFrame = v3.createElement("Frame", {
                    LayoutOrder = 0,
                    Size = UDim2.new(0, v28.PlayerNameSizeXMobile, 0, v28.PlayerEntrySizeY),
                    BackgroundTransparency = 1
                }, {
                    PlayerIcon = v3.createElement(v11, {
                        player = v27.props.player,
                        playerIconInfo = v27.props.playerIconInfo,
                        playerRelationship = v27.props.playerRelationship
                    }),
                    PlayerName = v3.createElement(v12, {
                        player = v27.props.player,
                        isTitleEntry = v27.props.titlePlayerEntry,
                        isHovered = v27.state.isHovered,
                        textStyle = v30,
                        textFont = v27:getPlayerNameFont(v28, v29)
                    })
                })
            };
            for v32, v33 in ipairs(v27.props.gameStats) do
                if v28.MaxLeaderstats >= v32 then
                    v31["GameStat_" .. v33.name] = v3.createElement(v13, {
                        statValue = v27.props.playerStats[v33.name],
                        isTitleEntry = v27.props.titlePlayerEntry,
                        isTeamEntry = false,
                        layoutOrder = v32,
                        textStyle = v30
                    });
                else
                    break;
                end;
            end;
            return v3.createElement("ImageButton", {
                Position = v27.props.Position,
                Size = UDim2.new(1, v28.EntryXOffset, 0, v28.PlayerEntrySizeY),
                AutoButtonColor = false,
                BackgroundColor3 = v27:getBackgroundColor(v28),
                BackgroundTransparency = 0.8,
                BorderSizePixel = 0,
                Image = "",
                LayoutOrder = v27.props.layoutOrder,
                [v3.Event.Activated] = v27.onActivated,
                [v3.Event.SelectionGained] = v27.onSelectionGained,
                [v3.Event.SelectionLost] = v27.onSelectionLost,
                [v3.Event.MouseButton1Down] = v27.onMouseDown,
                [v3.Event.InputEnded] = v27.onInputEnded
            }, {
                ChildrenFrame = v3.createElement("Frame", {
                    Size = UDim2.fromScale(1, 1),
                    Position = UDim2.new(0, 0, 0, 0),
                    BackgroundTransparency = 1
                }, v31),
                TopDiv = not not (v27.props.topDiv or false) and v3.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 1),
                    Position = UDim2.new(0, 0, 0, 0),
                    AnchorPoint = Vector2.new(0, 0),
                    BackgroundColor3 = Color3.fromRGB(255, 255, 255),
                    BackgroundTransparency = 0.8
                }) or nil,
                BottomDiv = not not (v27.props.bottomDiv or false) and v3.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 1),
                    Position = UDim2.new(0, 0, 1, 0),
                    AnchorPoint = Vector2.new(0, 1),
                    BackgroundColor3 = Color3.fromRGB(255, 255, 255),
                    BackgroundTransparency = 0.8
                }) or nil
            });
        end);
    end);
end;
return v4.connect(function(v34)
    return {
        selectedPlayer = v34.playerDropDown.selectedPlayer,
        dropDownOpen = v34.playerDropDown.isVisible,
        isSmallTouchDevice = v34.displayOptions.isSmallTouchDevice
    };
end, function(v35)
    return {
        closeDropDown = function()
            return v35(v15());
        end,
        openDropDown = function(v36)
            return v35(v16(v36));
        end
    };
end)(v17);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Otter);
local l_AppFonts_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppFonts;
local l_CoreGui_0 = game:GetService("CoreGui");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_RobloxTranslator_0 = require(l_RobloxGui_0:WaitForChild("Modules"):WaitForChild("RobloxTranslator"));
local v10 = require(l_Modules_0.TopBar.Constants);
local v11 = require(l_Modules_0.Chrome.Enabled)();
local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent.Parent;
local v14 = require(l_Parent_1.Actions.SetPlayerListVisibility);
local v15 = require(l_Parent_0.PlayerDropDown);
local v16 = require(l_Parent_0.PlayerListSorter);
local v17 = require(l_Parent_0.Parent.PresentationCommon.VoiceChatShield);
local l_Connection_0 = l_Parent_1.Components.Connection;
local v19 = require(l_Connection_0.EventConnections);
local v20 = require(l_Connection_0.ContextActionsBinder);
local v21 = require(l_Connection_0.TopStatConnector);
local l_WithLayoutValues_0 = require(l_Connection_0.LayoutValues).WithLayoutValues;
local v23 = require(l_Parent_1.Flags.FFlagPlayerListFixMobileScrolling);
local v24 = require(l_Parent_1.Flags.FFlagPlayerListFixBackgroundFlicker);
local v25 = require(l_Parent_1.Flags.GetFFlagPlayerListChromePushdown);
local v26 = {
    dampingRatio = 1,
    frequency = 4
};
local function _(v27, v28, v29, v30, v31)
    return ((v27 - v28) * (v31 - v30)) / (v29 - v28) + v30;
end;
local v33 = v2.PureComponent:extend("PlayerListApp");
local function v41(v34)
    local v35 = math.min(v34.x, v34.y);
    local v36 = math.max(v34.x, v34.y);
    local v37 = ((v35 - 320) * 60) / 55 + 270;
    local v38 = ((v36 - 480) * 46) / 190 + 434;
    v37 = math.clamp(v37, math.min(270, v35 - 24), 500);
    v38 = math.clamp(v38, math.min(434, v36 - 24), 600);
    local v39 = v34.y < v34.x and v38 or v37;
    local v40 = v34.x < v34.y and v38 or v37;
    if not (not v25() or not v11) and v34.y < v34.x then
        v40 = v40 - (v10.TopBarHeight - 24);
    end;
    return UDim2.fromOffset(v39, v40);
end;
local _ = function(v42)
    for _, v44 in ipairs(v42) do
        if v44.Team == nil then
            return true;
        end;
    end;
    return false;
end;
local function v55(v46, v47)
    local v48 = {};
    local v49 = 0;
    for _, v51 in pairs(v46) do
        if not v48[v51.TeamColor.Number] then
            v48[v51.TeamColor.Number] = true;
            v49 = v49 + 1;
        end;
    end;
    if v49 > 0 then
        local v52;
        for _, v54 in ipairs(v47) do
            if v54.Team == nil then
                v52 = true;
                goto label0 --[[  true, false  ]];
            end;
        end;
        v52 = false;
        ::label0::;
        if v52 then
            v49 = v49 + 1;
        end;
    end;
    return v49;
end;
v33.init = function(v56)
    v56.state = {
        visible = false
    };
    local v57, v58 = v2.createBinding(0.5);
    v56.bodyTransparency = v57;
    v56.updateBodyTransparency = v58;
    v56.bodyTransparencyMotor = v4.createSingleMotor(not v24 and 0 or 1);
    v56.bodyTransparencyMotor:onStep(function(v59)
        v56.updateBodyTransparency(v59);
        if not (v59 < 0.5) or not v56.props.displayOptions.isVisible then
            if v56.state.visible then
                v56:setState({
                    visible = false
                });
            end;
        elseif not v56.state.visible then
            v56:setState({
                visible = true
            });
        end;
        local l_setLayerCollectorEnabled_0 = v56.props.setLayerCollectorEnabled;
        local v61 = true;
        if v59 >= 0.99 then
            v61 = v56.props.displayOptions.isVisible;
        end;
        l_setLayerCollectorEnabled_0(v61);
    end);
    v57, v58 = v2.createBinding(0);
    v56.bgTransparency = v57;
    v56.updateBgTransparency = v58;
    v56.bgTransparencyMotor = v4.createSingleMotor(not v24 and 0 or 1);
    v56.bgTransparencyMotor:onStep(v56.updateBgTransparency);
    v57, v58 = v2.createBinding(1);
    v56.frameScale = v57;
    v56.updateFrameScale = v58;
    v56.frameScaleMotor = v4.createSingleMotor(0);
    v56.frameScaleMotor:onStep(function(v62)
        v56.updateFrameScale(v62);
    end);
    v56.titleRef = v2.createRef();
    v56.closeRef = v2.createRef();
end;
v33.renderBodyChildren = function(v63, _, v65)
    local l_visible_0 = v63.state.visible;
    local l_isDropDownVisible_0 = v63.props.isDropDownVisible;
    return {
        UIScale = v2.createElement("UIScale", {
            Scale = v63.frameScale
        }),
        UICorner = v2.createElement("UICorner", {
            CornerRadius = UDim.new(0, 6)
        }),
        TitleText = v2.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 0, 44),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1,
            Font = l_AppFonts_0.default:getBold(),
            Visible = l_visible_0 and not l_isDropDownVisible_0,
            TextSize = 22,
            TextColor3 = Color3.fromRGB(240, 240, 240),
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center,
            Text = l_RobloxTranslator_0:FormatByKey("InGame.PlayerList.Leaderboard"),
            [v2.Ref] = v63.titleRef
        }),
        CloseButton = v2.createElement("ImageButton", {
            Image = "rbxasset://textures/ui/InspectMenu/x.png",
            ImageColor3 = Color3.fromRGB(255, 255, 255),
            AnchorPoint = Vector2.new(0, 0.5),
            Size = UDim2.fromOffset(22, 22),
            Position = UDim2.fromOffset(11, 22),
            BackgroundTransparency = 1,
            Visible = l_visible_0 and not l_isDropDownVisible_0,
            ZIndex = 0,
            [v2.Ref] = v63.closeRef,
            [v2.Event.Activated] = function()
                v63.props.setPlayerListVisible(false);
            end
        }),
        ContentFrame = v2.createElement("Frame", {
            Position = UDim2.new(0.5, 0, 1, 0),
            AnchorPoint = Vector2.new(0.5, 1),
            Size = UDim2.new(1, 0, 1, -44),
            BackgroundTransparency = 1,
            Visible = l_visible_0 and not l_isDropDownVisible_0,
            AutoLocalize = false
        }, v65)
    };
end;
v33.render = function(v68)
    return l_WithLayoutValues_0(function(v69)
        local v70 = nil;
        if not v69.IsTenFoot then
            v70 = v69.EntryBaseSizeX + 4 * v69.EntrySizeIncreasePerStat;
            local v71 = v69.ContainerPadding * 2 + (v69.PlayerDropDownSizeXMobile + v69.PlayerDropDownOffset);
            if v68.props.screenSizeX - v71 < v70 then
                v70 = v68.props.screenSizeX - v71;
            end;
        else
            v70 = v69.EntrySizeX;
        end;
        local l_huge_0 = math.huge;
        local v73 = false;
        if l_Players_0.MaxPlayers >= 6 then
            v73 = l_Players_0.MaxPlayers <= 12;
        end;
        if v73 then
            l_huge_0 = l_Players_0.MaxPlayers * 26 + v55(v68.props.teams, v68.props.players) * 20;
        end;
        local v74 = {};
        if v68.state.visible then
            v74.PlayerScrollList = v2.createElement(v16, {
                screenSizeY = v68.props.screenSizeY,
                entrySize = v70
            });
        end;
        v74.EventConnections = v2.createElement(v19);
        v74.ContextActionsBindings = v2.createElement(v20);
        v74.TopStatConnector = v2.createElement(v21);
        if not (game:GetEngineFeature("XboxRemoveVoiceChatButton") or not v68.props.displayOptions.hasPermissionToVoiceChat) then
            v74.VoiceChatShield = v2.createElement(v17);
        end;
        return v2.createElement("ImageButton", {
            Active = v68.props.displayOptions.isVisible,
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundColor3 = Color3.fromRGB(17, 18, 20),
            BackgroundTransparency = v68.bgTransparency,
            BorderColor3 = Color3.fromRGB(0, 0, 0),
            BorderSizePixel = 0,
            AutoLocalize = false,
            AutoButtonColor = false,
            Selectable = not v23,
            Image = "",
            [v2.Event.Activated] = function()
                v68.props.setPlayerListVisible(false);
            end
        }, {
            PlayerDropDown = v2.createElement(v15, {
                contentsVisible = true,
                selectedPlayer = v68.props.dropDownPlayer
            }),
            BodyPadding = if (not not v25() and v11) and v68.props.screenSizeY < v68.props.screenSizeX then v2.createElement("UIPadding", {
                PaddingTop = UDim.new(0, v10.TopBarHeight)
            }) else nil,
            BodyBackground = v2.createElement("Frame", {
                Size = v41(Vector2.new(v68.props.screenSizeX, v68.props.screenSizeY)),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.new(0.5, 0, 0.5, 0),
                BackgroundColor3 = Color3.fromRGB(17, 18, 20),
                BackgroundTransparency = v68.bodyTransparency,
                BorderColor3 = Color3.fromRGB(0, 0, 0),
                BorderSizePixel = 0
            }, v68:renderBodyChildren(l_huge_0, v74))
        });
    end);
end;
v33.didMount = function(v75)
    v75.props.setLayerCollectorEnabled(false);
    v75:setState({
        visible = v75.props.displayOptions.isVisible
    });
end;
v33.willUnmount = function(v76)
    v76.props.setLayerCollectorEnabled(true);
end;
v33.didUpdate = function(v77, v78, _)
    local l_isVisible_0 = v77.props.displayOptions.isVisible;
    local l_isDropDownVisible_1 = v77.props.isDropDownVisible;
    if not (not (l_isVisible_0 ~= v78.displayOptions.isVisible) or l_isVisible_0) then
        v77:setState({
            visible = l_isVisible_0
        });
    end;
    v77.bgTransparencyMotor:setGoal(v4.spring((l_isDropDownVisible_1 or l_isVisible_0) and 0.7 or 1, v26));
    local v82 = 1.25;
    if not l_isDropDownVisible_1 then
        if l_isVisible_0 then
            v82 = 1;
        end;
    else
        v82 = 0.95;
    end;
    v77.frameScaleMotor:setGoal(v4.spring(v82, v26));
    local v83 = 1;
    if not l_isDropDownVisible_1 then
        if l_isVisible_0 then
            v83 = 0.2 * v77.props.preferredTransparency;
        end;
    else
        v83 = 0.8 * v77.props.preferredTransparency;
    end;
    v77.bodyTransparencyMotor:setGoal(v4.spring(v83, v26));
end;
return v3.connect(function(v84)
    return {
        isDropDownVisible = v84.playerDropDown.isVisible,
        screenSizeX = v84.screenSize.X,
        screenSizeY = v84.screenSize.Y,
        preferredTransparency = v84.settings.preferredTransparency,
        displayOptions = v84.displayOptions,
        players = v84.players,
        playerStats = v84.playerStats,
        playerIconInfo = v84.playerIconInfo,
        playerRelationship = v84.playerRelationship,
        gameStats = v84.gameStats,
        teams = v84.teams
    };
end, function(v85)
    return {
        setPlayerListVisible = function(v86)
            return v85(v14(v86));
        end
    };
end)(v33);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_GuiService_0 = game:GetService("GuiService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_LocalPlayer_0 = game:GetService("Players").LocalPlayer;
local v5 = require(l_CorePackages_0.Roact);
local v6 = require(l_CorePackages_0.RoactRodux);
local v7 = require(l_CorePackages_0.UIBlox);
local v8 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = v7.Style.withStyle;
local v10 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.Interfaces.playerInterface);
local l_WithLayoutValues_0 = require(script.Parent.Parent.Connection.LayoutValues).WithLayoutValues;
local v12 = require(script.Parent.PlayerEntry);
local v13 = require(script.Parent.TeamEntry);
local v14 = require(script.Parent.TitleBar);
local l_Parent_0 = script.Parent.Parent.Parent;
local v16 = require(l_Parent_0.Flags.FFlagPlayerListFixMobileScrolling);
local v17 = require(l_Parent_0.GetFakeNeutralTeam);
local v18 = v5.PureComponent:extend("PlayerListDisplay");
v18.validateProps = v8.strictInterface({
    isVisible = v8.boolean,
    isMinimized = v8.boolean,
    isTenFootInterface = v8.boolean,
    isUsingGamepad = v8.boolean,
    screenSizeY = v8.integer,
    entrySize = v8.integer,
    sortedPlayers = v8.array(v10),
    sortedTeams = v8.optional(v8.any),
    teamColorToPlayerMap = v8.optional(v8.map(v8.integer, v8.array(v10))),
    teamScores = v8.optional(v8.map(v8.instanceIsA("Team"), v8.map(v8.string, v8.any))),
    teamNames = v8.map(v8.instanceIsA("Team"), v8.string),
    teamColors = v8.map(v8.instanceIsA("Team"), v8.BrickColor),
    playerTeam = v8.map(v8.integer, v8.instanceIsA("Team")),
    playerStats = v8.map(v8.integer, v8.map(v8.string, v8.any)),
    gameStats = v8.array(v8.strictInterface({
        name = v8.string,
        text = v8.string,
        addId = v8.integer,
        isPrimary = v8.boolean,
        priority = v8.number
    })),
    playerIconInfo = v8.map(v8.integer, v8.strictInterface({
        isPlaceOwner = v8.boolean,
        avatarIcon = v8.optional(v8.table),
        specialGroupIcon = v8.optional(v8.table)
    })),
    playerRelationship = v8.map(v8.integer, v8.strictInterface({
        isBlocked = v8.boolean,
        friendStatus = v8.enum(Enum.FriendStatus),
        isFollowing = v8.boolean,
        isFollower = v8.boolean
    })),
    dropDownPlayer = v8.optional(v10),
    dropDownVisible = v8.boolean
});
v18.init = function(v19)
    v19.scrollingFrameRef = v5.createRef();
    v19.firstPlayerRef = v5.createRef();
    v19.state = {
        lastCanvasPosition = Vector2.new(0, 0),
        containerSizeY = 100,
        contentsVisible = true
    };
    v19.absoluteSizeChanged = function(v20)
        v19:setState({
            containerSizeY = v20.AbsoluteSize.Y
        });
    end;
    v19.canvasPositionChanged = function(v21)
        v19:setState({
            lastCanvasPosition = v21.CanvasPosition
        });
    end;
end;
v18.getShowTitlePlayer = function(v22)
    local v23;
    if v22.props.sortedPlayers then
        v23 = true;
        if not (#v22.props.sortedPlayers <= 1) then
            goto label0;
        end;
    end;
    v23 = false;
    ::label0::;
    local v24;
    if v22.props.sortedTeams then
        v24 = true;
        if not (#v22.props.sortedTeams <= 0) then
            goto label1;
        end;
    end;
    v24 = false;
    ::label1::;
    return (v23 or v24) or #v22.props.gameStats > 0;
end;
v18.inVerticalScrollWindow = function(v25, v26, v27)
    if (v26 + v27) + v27 * 3 < v25.state.lastCanvasPosition.Y then
        return false;
    elseif v25.state.lastCanvasPosition.Y + v25.state.containerSizeY < v26 - v27 * 3 then
        return false;
    else
        return true;
    end;
end;
v18.isPastEndOfContent = function(v28, v29, v30)
    if v28.state.lastCanvasPosition.Y + v28.state.containerSizeY < v29 - v30 * 3 then
        return true;
    else
        return false;
    end;
end;
v18.render = function(v31)
    return l_WithLayoutValues_0(function(v32)
        return l_withStyle_0(function(_)
            local l_EntryPadding_0 = v32.EntryPadding;
            local l_TeamEntrySizeY_0 = v32.TeamEntrySizeY;
            local l_PlayerEntrySizeY_0 = v32.PlayerEntrySizeY;
            local v37 = 0;
            local function _()
                v37 = v37 + 1;
                return v37;
            end;
            local v39 = {};
            local v40 = 0;
            if v31:getShowTitlePlayer() then
                v39.TitlePlayer = v5.createElement(v12, {
                    player = l_LocalPlayer_0,
                    playerStats = v31.props.playerStats[l_LocalPlayer_0.UserId] or {},
                    playerIconInfo = v31.props.playerIconInfo[l_LocalPlayer_0.UserId] or {
                        isPlaceOwner = false
                    },
                    playerRelationship = v31.props.playerRelationship[l_LocalPlayer_0.UserId] or {
                        isBlocked = false,
                        friendStatus = Enum.FriendStatus.NotFriend,
                        isFollowing = false,
                        isFollower = false
                    },
                    titlePlayerEntry = true,
                    gameStats = v31.props.gameStats,
                    entrySize = v31.props.entrySize,
                    topDiv = false,
                    bottomDiv = true,
                    Position = UDim2.fromOffset(0, v40)
                });
                v40 = v40 + (l_PlayerEntrySizeY_0 + l_EntryPadding_0);
            end;
            v39.TitleBar = v5.createElement(v14, {
                contentsVisible = v31.state.contentsVisible,
                gameStats = v31.props.gameStats,
                Size = UDim2.new(1, 0, 0, 24),
                entrySize = v31.props.entrySize,
                Position = UDim2.fromOffset(0, v40)
            });
            v40 = v40 + (l_TeamEntrySizeY_0 + l_EntryPadding_0);
            local l_v40_0 = v40;
            if not v31.props.sortedTeams then
                l_v40_0 = l_v40_0 + (l_PlayerEntrySizeY_0 + l_EntryPadding_0) * #v31.props.sortedPlayers;
                for v42, v43 in ipairs(v31.props.sortedPlayers) do
                    if not (v42 ~= 1 and v31:isPastEndOfContent(v40, l_PlayerEntrySizeY_0)) then
                        if not (v42 ~= 1 and not v31:inVerticalScrollWindow(v40, l_PlayerEntrySizeY_0)) then
                            local l_UserId_0 = v43.UserId;
                            local v45 = "Player_" .. tostring(l_UserId_0);
                            local l_createElement_0 = v5.createElement;
                            local l_v12_0 = v12;
                            local v48 = {
                                player = v43,
                                playerStats = v31.props.playerStats[l_UserId_0],
                                playerIconInfo = v31.props.playerIconInfo[l_UserId_0],
                                playerRelationship = v31.props.playerRelationship[l_UserId_0],
                                titlePlayerEntry = false,
                                gameStats = v31.props.gameStats,
                                entrySize = v31.props.entrySize
                            };
                            v37 = v37 + 1;
                            v48.layoutOrder = v37;
                            v48.topDiv = true;
                            v48.bottomDiv = false;
                            v48.Position = UDim2.fromOffset(0, v40);
                            v48[v5.Ref] = v42 == 1 and v31.firstPlayerRef or nil;
                            v39[v45] = l_createElement_0(l_v12_0, v48);
                        end;
                        v40 = v40 + (l_PlayerEntrySizeY_0 + l_EntryPadding_0);
                    else
                        break;
                    end;
                end;
            else
                local v49 = true;
                for v50, v51 in ipairs(v31.props.sortedTeams) do
                    local v52 = nil;
                    if v51.team == v17 then
                        v52 = {};
                        for _, v54 in ipairs(v31.props.sortedPlayers) do
                            if v31.props.playerTeam[v54.UserId] == nil then
                                table.insert(v52, v54);
                            end;
                        end;
                    else
                        v52 = v31.props.teamColorToPlayerMap[v51.team.TeamColor.Number] or {};
                    end;
                    l_v40_0 = l_v40_0 + (l_TeamEntrySizeY_0 + (l_PlayerEntrySizeY_0 + l_EntryPadding_0) * #v52);
                    if v31:inVerticalScrollWindow(v40, l_TeamEntrySizeY_0) then
                        local v55 = "Team_" .. tostring(v50);
                        local l_createElement_1 = v5.createElement;
                        local l_v13_0 = v13;
                        local v58 = {
                            teamName = v31.props.teamNames[v51.team],
                            teamColor = v31.props.teamColors[v51.team],
                            leaderstats = v31.props.teamScores[v51.team],
                            gameStats = v31.props.gameStats,
                            entrySize = v31.props.entrySize
                        };
                        v37 = v37 + 1;
                        v58.layoutOrder = v37;
                        v58.Position = UDim2.fromOffset(0, v40);
                        v39[v55] = l_createElement_1(l_v13_0, v58);
                    end;
                    v40 = v40 + (l_TeamEntrySizeY_0 + l_EntryPadding_0);
                    for v59, v60 in ipairs(v52) do
                        if not (not v49 and v31:isPastEndOfContent(v40, l_TeamEntrySizeY_0)) then
                            if not (not v49 and not v31:inVerticalScrollWindow(v40, l_PlayerEntrySizeY_0)) then
                                local l_UserId_1 = v60.UserId;
                                v39["Player_" .. tostring(v60.UserId)] = v5.createElement(v12, {
                                    player = v60,
                                    playerStats = v31.props.playerStats[l_UserId_1],
                                    playerIconInfo = v31.props.playerIconInfo[l_UserId_1],
                                    playerRelationship = v31.props.playerRelationship[l_UserId_1],
                                    titlePlayerEntry = false,
                                    gameStats = v31.props.gameStats,
                                    topDiv = true,
                                    bottomDiv = v59 == #v52,
                                    entrySize = v31.props.entrySize,
                                    Position = UDim2.fromOffset(0, v40),
                                    [v5.Ref] = not not v49 and v31.firstPlayerRef or nil
                                });
                                v49 = false;
                            end;
                            v40 = v40 + (l_PlayerEntrySizeY_0 + l_EntryPadding_0);
                        else
                            break;
                        end;
                    end;
                end;
            end;
            local l_huge_0 = math.huge;
            if #v31.props.gameStats > 0 then
                l_huge_0 = l_huge_0 - v32.TitleBarSizeY;
            end;
            local v63 = true;
            if not v16 then
                v63 = not v31.props.dropDownVisible;
            end;
            return v5.createElement("ScrollingFrame", {
                Active = v16,
                Size = UDim2.fromScale(1, 1),
                CanvasSize = UDim2.fromOffset(0, l_v40_0),
                BackgroundTransparency = 1,
                ScrollBarImageColor3 = v32.ScrollImageColor,
                ScrollBarImageTransparency = v32.ScrollImageTransparency,
                BorderSizePixel = 0,
                ScrollBarThickness = v32.ScrollBarSizeMobile,
                VerticalScrollBarInset = Enum.ScrollBarInset.None,
                HorizontalScrollBarInset = Enum.ScrollBarInset.None,
                ClipsDescendants = true,
                ScrollingEnabled = v63,
                ElasticBehavior = Enum.ElasticBehavior.Never,
                Selectable = false,
                ScrollingDirection = Enum.ScrollingDirection.Y,
                [v5.Change.CanvasPosition] = v31.canvasPositionChanged,
                [v5.Change.AbsoluteSize] = v31.absoluteSizeChanged
            }, v39);
        end);
    end);
end;
v18.didUpdate = function(v64, v65)
    if v64.props.isVisible ~= v65.isVisible then
        if not v64.props.isVisible then
            if not (not v64.props.isTenFootInterface or not v64.props.isUsingGamepad) then
                l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.None;
            end;
            if not (not l_GuiService_0.SelectedCoreObject or not l_GuiService_0.SelectedCoreObject:IsDescendantOf(v64.scrollingFrameRef.current)) then
                l_GuiService_0.SelectedCoreObject = nil;
            end;
        elseif not (not v64.props.isTenFootInterface or not v64.props.isUsingGamepad) then
            l_GuiService_0.SelectedCoreObject = v64.firstPlayerRef.current;
            l_UserInputService_0.OverrideMouseIconBehavior = Enum.OverrideMouseIconBehavior.ForceHide;
        end;
    end;
    if v64.props.isMinimized ~= v65.isMinimized then
        v64:setState({
            contentsVisible = not v64.props.isMinimized
        });
    end;
end;
return v6.connect(function(v66)
    return {
        isVisible = v66.displayOptions.isVisible,
        isMinimized = v66.displayOptions.isMinimized,
        isTenFootInterface = v66.displayOptions.isTenFootInterface,
        isUsingGamepad = v66.displayOptions.isUsingGamepad,
        gameStats = v66.gameStats,
        teamNames = v66.teamNames,
        teamColors = v66.teamColors,
        playerStats = v66.playerStats,
        playerIconInfo = v66.playerIconInfo,
        playerRelationship = v66.playerRelationship,
        playerTeam = v66.playerTeam,
        dropDownPlayer = v66.playerDropDown.selectedPlayer,
        dropDownVisible = v66.playerDropDown.isVisible
    };
end, nil)(v18);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.Packages.Cryo);
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v6 = require(l_RobloxGui_0.Modules.Interfaces.playerInterface);
local l_Parent_0 = script.Parent.Parent.Parent;
local l_WithLayoutValues_0 = require(script.Parent.Parent.Connection.LayoutValues).WithLayoutValues;
local v9 = require(l_Parent_0.Hooks.usePlayerCombinedName);
local v10 = require(l_CoreGui_0.RobloxGui.Modules.ApolloClient);
local v11 = require(l_CorePackages_0.Workspace.Packages.UserProfiles);
local v12 = require(l_RobloxGui_0.Modules.Flags.getIsUserProfileOnLeaderboardEnabled);
local v13 = require(l_Parent_0.Flags.FFlagRefactorPlayerNameTag);
local v14 = v2.PureComponent:extend("PlayerNameTag");
v14.validateProps = v3.strictInterface({
    player = v6,
    isTitleEntry = v3.boolean,
    isHovered = v3.boolean,
    name = if not v13 then nil else v3.string,
    textStyle = v3.strictInterface({
        Color = v3.Color3,
        Transparency = v3.number,
        StrokeColor = v3.optional(v3.Color3),
        StrokeTransparency = v3.optional(v3.number)
    }),
    textFont = v3.strictInterface({
        Size = v3.number,
        MinSize = v3.number,
        Font = v3.enum(Enum.Font)
    })
});
if not v13 then
    v14.init = function(v15)
        if v12() then
            v15:setState({
                name = v15.props.player.DisplayName
            });
            v10:query({
                query = v11.Queries.userProfilesCombinedNameByUserIds,
                variables = {
                    userIds = {
                        (tostring(v15.props.player.UserId))
                    }
                }
            }):andThen(function(v16)
                v15:setState({
                    name = v16.data.userProfiles[1].names.combinedName
                });
            end);
        end;
    end;
end;
v14.render = function(v17)
    return l_WithLayoutValues_0(function(v18)
        return v2.createElement("TextLabel", {
            AnchorPoint = Vector2.new(1, 0),
            Position = UDim2.new(1, 0, 0, 0),
            Size = UDim2.new(1, -v18.PlayerIconSizeMobile.X.Offset - v18.PlayerNamePaddingXMobile * 2, 1, 0),
            TextXAlignment = Enum.TextXAlignment.Left,
            Font = v17.props.textFont.Font,
            TextSize = v17.props.textFont.Size,
            TextColor3 = v17.props.textStyle.Color,
            TextTransparency = v17.props.textStyle.Transparency,
            TextStrokeColor3 = v17.props.textStyle.StrokeColor,
            TextStrokeTransparency = v17.props.textStyle.StrokeTransparency,
            BackgroundTransparency = 1,
            Text = if not v13 then if v12() then v17.state.name else v17.props.player.DisplayName else v17.props.name,
            TextTruncate = Enum.TextTruncate.AtEnd
        });
    end);
end;
local function v20(v19)
    return v2.createElement(v14, v4.Dictionary.join(v19, {
        name = v9(tostring(v19.player.UserId), v19.player.DisplayName)
    }));
end;
if not v13 then
    return v14;
else
    return v20;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local l_Parent_0 = script.Parent.Parent;
local l_WithLayoutValues_0 = require(l_Parent_0.Connection.LayoutValues).WithLayoutValues;
local v6 = require(l_Parent_0.Parent.FormatStatString);
local v7 = v1.PureComponent:extend("StatEntry");
v7.validateProps = v2.strictInterface({
    statValue = v2.optional(v2.any),
    isTitleEntry = v2.boolean,
    isTeamEntry = v2.boolean,
    layoutOrder = v2.integer,
    textStyle = v2.strictInterface({
        Color = v2.Color3,
        Transparency = v2.number,
        StrokeColor = v2.optional(v2.Color3),
        StrokeTransparency = v2.optional(v2.number)
    })
});
v7.render = function(v8)
    return l_WithLayoutValues_0(function(v9)
        return l_withStyle_0(function(v10)
            local v11 = nil;
            local v12 = nil;
            if v9.IsTenFoot then
                v12 = v9.StatTextSizeMobile;
                v11 = v9.StatFont;
                if not v8.props.isTitleEntry then
                    if v8.props.isTeamEntry then
                        v11 = v9.TeamStatFont;
                    end;
                else
                    v11 = v9.TitleStatFont;
                end;
            else
                v11 = v10.Font.CaptionHeader.Font;
                v12 = v10.Font.CaptionHeader.RelativeSize * v10.Font.BaseSize;
            end;
            return v1.createElement("TextLabel", {
                Size = UDim2.new(0, v9.StatEntrySizeX, 1, 0),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 1,
                Font = v11,
                LayoutOrder = v8.props.layoutOrder,
                TextSize = v12,
                TextColor3 = v8.props.textStyle.Color,
                TextTransparency = v8.props.textStyle.Transparency,
                TextStrokeColor3 = v8.props.textStyle.StrokeColor,
                TextStrokeTransparency = v8.props.textStyle.StrokeTransparency,
                Text = v6(v8.props.statValue),
                TextTruncate = Enum.TextTruncate.AtEnd
            });
        end);
    end);
end;
return v7;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v5 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.GameTranslator);
local l_WithLayoutValues_0 = require(script.Parent.Parent.Connection.LayoutValues).WithLayoutValues;
local v7 = require(script.Parent.StatEntry);
local v8 = v2.PureComponent:extend("TeamEntry");
v8.render = function(v9)
    return l_WithLayoutValues_0(function(v10)
        return l_withStyle_0(function(v11)
            local v12 = nil;
            local v13 = nil;
            if not v9.props.teamName then
                v12 = v10.NeutralTeamName;
                v13 = v10.NeutralTeamColor.Color;
            else
                v12 = v5:TranslateGameText(l_CoreGui_0, v9.props.teamName);
                v13 = v9.props.teamColor.Color;
            end;
            local l_Settings_0 = v11.Settings;
            local l_TextEmphasis_0 = v11.Theme.TextEmphasis;
            local v16 = {
                UIListLayout = v2.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                NameFrame = v2.createElement("TextLabel", {
                    Size = UDim2.new(0, v10.PlayerNameSizeXMobile, 1, 0),
                    TextXAlignment = Enum.TextXAlignment.Left,
                    Font = v11.Font.CaptionHeader.Font,
                    TextSize = v11.Font.CaptionHeader.RelativeSize * v11.Font.BaseSize,
                    LayoutOrder = 0,
                    TextColor3 = l_TextEmphasis_0.Color,
                    TextStrokeTransparency = l_TextEmphasis_0.StrokeTransparency,
                    TextStrokeColor3 = l_TextEmphasis_0.StrokeColor,
                    BackgroundTransparency = 1,
                    Text = v12,
                    TextTruncate = Enum.TextTruncate.AtEnd
                }, {
                    UIPadding = v2.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, v10.TeamEntryTextPaddingMobile)
                    })
                })
            };
            for v17, v18 in ipairs(v9.props.gameStats) do
                if v10.MaxLeaderstats >= v17 then
                    v16["GameStat_" .. v18.name] = v2.createElement(v7, {
                        statValue = v9.props.leaderstats[v18.name],
                        isTitleEntry = false,
                        isTeamEntry = true,
                        textStyle = l_TextEmphasis_0,
                        layoutOrder = v17
                    });
                else
                    break;
                end;
            end;
            return v2.createElement("Frame", {
                LayoutOrder = v9.props.layoutOrder,
                Size = UDim2.new(1, 0, 0, v10.TeamEntrySizeY),
                Position = v9.props.Position,
                BackgroundTransparency = l_Settings_0.PreferredTransparency * 0.5,
                BackgroundColor3 = v13,
                BorderSizePixel = 0
            }, v16);
        end);
    end);
end;
return v3.connect(function(v19)
    return {
        isSmallTouchDevice = v19.displayOptions.isSmallTouchDevice
    };
end, nil)(v8);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local l_WithLayoutValues_0 = require(script.Parent.Parent.Connection.LayoutValues).WithLayoutValues;
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v8 = require(l_RobloxGui_0.Modules.GameTranslator);
local v9 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local v10 = v2.PureComponent:extend("TitleBar");
v10.validateProps = v4.strictInterface({
    Size = v4.UDim2,
    Position = v4.optional(v4.UDim2),
    LayoutOrder = v4.optional(v4.integer),
    entrySize = v4.integer,
    contentsVisible = v4.boolean,
    isSmallTouchDevice = v4.boolean,
    gameStats = v4.array(v4.strictInterface({
        name = v4.string,
        text = v4.string,
        addId = v4.integer,
        isPrimary = v4.boolean,
        priority = v4.number
    }))
});
v10.render = function(v11)
    return l_WithLayoutValues_0(function(v12)
        return l_withStyle_0(function(v13)
            local v14 = {
                UIListLayout = v2.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                PlayersHeader = v2.createElement("TextLabel", {
                    LayoutOrder = 0,
                    Size = UDim2.new(0, v12.PlayerNameSizeXMobile, 1, 0),
                    Text = v9:FormatByKey("InGame.PlayerList.Players"),
                    BackgroundTransparency = 1,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    Font = v13.Font.Footer.Font,
                    TextSize = v13.Font.BaseSize * v13.Font.Footer.RelativeSize,
                    TextColor3 = v13.Theme.TextMuted.Color
                }, {
                    Padding = v2.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, 14)
                    })
                })
            };
            local l_MaxLeaderstats_0 = v12.MaxLeaderstats;
            for v16, v17 in ipairs(v11.props.gameStats) do
                if l_MaxLeaderstats_0 >= v16 then
                    v14["Stat_" .. v17.name] = v2.createElement("TextLabel", {
                        LayoutOrder = v16,
                        Size = UDim2.new(0, v12.StatEntrySizeX, 1, 0),
                        Text = v8:TranslateGameText(l_CoreGui_0, v17.name),
                        BackgroundTransparency = 1,
                        TextXAlignment = Enum.TextXAlignment.Center,
                        TextYAlignment = Enum.TextYAlignment.Center,
                        Font = v13.Font.Footer.Font,
                        TextSize = v13.Font.BaseSize * v13.Font.Footer.RelativeSize,
                        TextTransparency = 0,
                        TextColor3 = Color3.fromRGB(255, 255, 255),
                        TextTruncate = Enum.TextTruncate.AtEnd
                    });
                else
                    break;
                end;
            end;
            return v2.createElement("Frame", {
                Size = v11.props.Size,
                Position = v11.props.Position,
                LayoutOrder = v11.props.LayoutOrder,
                Visible = v11.props.contentsVisible,
                BackgroundTransparency = 1,
                BorderSizePixel = 0
            }, v14);
        end);
    end);
end;
return v3.connect(function(v18)
    return {
        isSmallTouchDevice = v18.displayOptions.isSmallTouchDevice
    };
end, nil)(v10);


local l_Images_0 = require(game:GetService("CorePackages").UIBlox).App.ImageSet.Images;
local v1 = require(script.Parent.Parent.TopBar.Constants);
local v2 = require(script.Parent.Parent.Chrome.Enabled);
return function(v3)
    local v4 = {
        IsTenFoot = v3
    };
    if not v3 then
        v4.ContainerPadding = 4;
        v4.ContainerPosition = UDim2.new(1, -4, 0, 4);
        v4.ContainerSize = UDim2.new(0, 0, 0.5, 0);
        v4.ExtraContainerPadding = 16;
        v4.AnchorPoint = Vector2.new(1, 0);
        v4.PlayerDropDownSizeX = 300;
        v4.PlayerDropDownOffset = 4;
        v4.PlayerScrollListPosition = UDim2.new(0, 0, 0, 0);
        v4.PlayerScrollListSize = UDim2.new(1, -1, 1, 0);
        v4.EntryBaseSizeX = 150;
        v4.EntrySizeIncreasePerStat = 11;
        v4.PlayerEntrySizeY = 40;
        v4.EntryPadding = 0;
        v4.TeamEntrySizeY = 24;
        v4.StatEntrySizeX = 66;
        v4.TitleBarSizeY = 20;
        v4.EntryXOffset = 0;
        v4.TeamEntryBackgroundTransparency = 0.5;
        v4.IconButtonBackgroundTransparency = 0.3;
        v4.DropDownHeaderBackgroundTransparency = 0.1;
        v4.OverrideBackgroundTransparency = 0.3;
        v4.FadedBackgroundTransparency = 0.65;
        v4.FadedBackgroundScaleDelta = 0.05;
        v4.PlayerIconSize = UDim2.new(0, 16, 0, 16);
        v4.InitalPlayerEntryPadding = 12;
        v4.PlayerEntryPadding = 12;
        v4.PlayerEntryNamePadding = 4;
        v4.TeamEntryTextPadding = 15;
        v4.StatTextPadding = 4;
        v4.PlayerNameSize = UDim2.new(1, -34, 1, 0);
        v4.PlayerNameTextSize = 14;
        v4.StatTextSize = 14;
        v4.ScrollImageColor = Color3.fromRGB(216, 216, 216);
        v4.ScrollImageTransparency = 0.5;
        v4.ScrollBarOffset = 4;
        v4.ScrollBarSize = 8;
    else
        v4.ContainerPosition = UDim2.new(0.5, 0, 0.5, 0);
        v4.ContainerSize = UDim2.new(0, 350, 0, 720);
        v4.AnchorPoint = Vector2.new(0.5, 0.5);
        v4.PlayerDropDownSizeX = 0;
        v4.PlayerScrollListPosition = UDim2.new(0, 0, 0, 105);
        v4.PlayerScrollListSize = UDim2.new(1, 19, 1, 0);
        v4.PlayerScrollListInnerFramePosition = UDim2.new(0, 0, 0, 0);
        v4.PlayerScrollListInnerFrameSize = UDim2.new(1, 0, 1, 0);
        v4.EntrySizeX = 350;
        v4.PlayerEntrySizeY = 100;
        v4.EntryPadding = 5;
        v4.TeamEntrySizeY = 32;
        v4.StatEntrySizeX = 250;
        v4.EntryXOffset = -20;
        v4.BackgroundStyle = {
            Default = {
                Color = Color3.fromRGB(60, 60, 60),
                Transparency = 0.25
            },
            Hovered = {
                Color = Color3.fromRGB(50, 181, 255),
                Transparency = 0.25
            },
            HoveredTitle = {
                Color = Color3.fromRGB(50, 181, 255),
                Transparency = 0
            },
            Title = {
                Color = Color3.fromRGB(25, 25, 25),
                Transparency = 0
            },
            Selected = nil
        };
        v4.TeamEntryBackgroundTransparency = 0.25;
        v4.DefaultTextStyle = {
            Color = Color3.fromRGB(255, 255, 243),
            Transparency = 0,
            StrokeTransparency = 0.75,
            StrokeColor = Color3.fromRGB(34, 34, 34)
        };
        v4.HoveredTextStyle = {
            Color = Color3.fromRGB(19, 19, 19),
            Transparency = 0,
            StrokeTransparency = 0.75,
            StrokeColor = Color3.fromRGB(34, 34, 34)
        };
        v4.PlayerIconSize = UDim2.new(0, 64, 0, 64);
        v4.InitalPlayerEntryPadding = 18;
        v4.PlayerEntryPadding = 8;
        v4.PlayerEntryNamePadding = 8;
        v4.TeamEntryTextPadding = 5;
        v4.StatTextPadding = 0;
        v4.PlayerNameSize = UDim2.new(1, -88, 1, 0);
        v4.PlayerNameTextSize = 32;
        v4.StatTextSize = 32;
        v4.ScrollImageColor = Color3.fromRGB(31, 31, 31);
        v4.ScrollImageTransparency = 0.5;
    end;
    if not v2() then
        v4.TopBarOffset = 36;
    else
        v4.TopBarOffset = v1.TopBarHeight;
    end;
    v4.PlayerDropDownSizeXMobile = 327;
    v4.ScrollBarSizeMobile = 2;
    v4.PlayerNameSizeXMobile = 194;
    v4.PlayerIconSizeMobile = UDim2.fromOffset(20, 20);
    v4.PlayerNameTextSizeMobile = 16;
    v4.StatTextSizeMobile = 16;
    v4.PlayerNamePaddingXMobile = 14;
    v4.TeamEntryTextPadding = 15;
    v4.TeamEntryTextPaddingMobile = 14;
    v4.RowHoverColor = Color3.fromRGB(0, 0, 0);
    v4.RowDefaultColor = Color3.fromRGB(84, 84, 84);
    v4.MaxLeaderstats = 4;
    v4.MaxLeaderstatsSmallScreen = 1;
    v4.PlayerEntryFont = Enum.Font.SourceSans;
    v4.TitlePlayerEntryFont = Enum.Font.SourceSansBold;
    v4.TeamEntryFont = Enum.Font.SourceSans;
    v4.StatFont = Enum.Font.SourceSans;
    v4.TitleStatFont = Enum.Font.SourceSansBold;
    v4.TeamStatFont = Enum.Font.SourceSansBold;
    v4.StatNameFont = Enum.Font.SourceSans;
    v4.PlayerIconBackgroundSize = UDim2.new(0, 66, 0, 66);
    v4.PlayerBackgroundImage = "rbxasset://textures/ui/PlayerList/CharacterImageBackground.png";
    v4.RobloxIconImage = "rbxasset://textures/ui/Shell/Icons/RobloxIcon24.png";
    v4.IconSelectedColor = Color3.fromRGB(19, 19, 19);
    v4.IconUnSelectedColor = Color3.fromRGB(255, 255, 255);
    v4.SelectedEntryColor = Color3.fromRGB(0, 255, 255);
    v4.ShadowImage = "rbxasset://textures/ui/PlayerList/TileShadowMissingTop.png";
    v4.ShadowSize = 5;
    v4.ShadowSliceRect = Rect.new(6, 6, 9, 9);
    v4.DefaultThumbnail = "rbxasset://textures/ui/Shell/Icons/DefaultProfileIcon.png";
    v4.BlockedIcon = l_Images_0["icons/status/unavailable_small"];
    v4.FriendIcons = {
        [Enum.FriendStatus.Friend] = l_Images_0["icons/status/player/friend"],
        [Enum.FriendStatus.FriendRequestReceived] = l_Images_0["icons/status/player/pending"]
    };
    v4.FollowingIcon = l_Images_0["icons/status/player/following"];
    v4.PlaceOwnerIcon = l_Images_0["icons/status/player/developer"];
    v4.MembershipIcons = {
        [Enum.MembershipType.Premium] = l_Images_0["icons/status/premium_small"]
    };
    v4.CustomPlayerIcons = {
        [7210880] = "rbxassetid://134032333",
        [13268404] = "rbxassetid://113059239",
        [261] = "rbxassetid://105897927"
    };
    v4.NeutralTeamColor = BrickColor.new("White");
    v4.NeutralTeamName = "Neutral";
    v4.DropDownButtonSizeY = 56;
    v4.DropDownButtonPadding = 0;
    v4.DropDownPadding = 10;
    v4.DropDownRightOptionSize = 55;
    v4.DropDownIconSize = 36;
    v4.DropDownHeaderSizeY = 80;
    v4.DropDownHeaderBackgroundSize = 65;
    v4.DropDownScreenSidePadding = 4;
    v4.VoiceChatShieldColor = Color3.fromRGB(41, 41, 41);
    v4.VoiceChatShieldTransparency = 0.2;
    setmetatable(v4, {
        __index = function(_, v6)
            error(string.format("%q is not a valid member of LayoutValues", (tostring(v6))), 2);
        end
    });
    return v4;
end;


if game:GetEngineFeature("CoreAttributes") then
    return game:DefineFastFlag("LeaderstatsWithASideOfClient", false);
else
    return false;
end;


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


local l_CorePackages_0 = game:GetService("CorePackages");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_NumberLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).NumberLocalization;
local l_RoundingBehaviour_0 = require(l_CorePackages_0.Workspace.Packages.Localization).RoundingBehaviour;
return function(v4)
    if v4 == nil then
        return "-";
    elseif type(v4) == "number" then
        if not (tostring(v4):len() >= 7) then
            return l_NumberLocalization_0.localize(v4, l_LocalizationService_0.RobloxLocaleId);
        else
            return l_NumberLocalization_0.abbreviate(v4, l_LocalizationService_0.RobloxLocaleId, l_RoundingBehaviour_0.Truncate);
        end;
    else
        return (tostring(v4));
    end;
end;


return {
    propValidation = false,
    elementTracing = false,
    typeChecks = false
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_useQuery_0 = require(l_CorePackages_0.Packages.ApolloClient).useQuery;
local v2 = require(l_CorePackages_0.Workspace.Packages.UserProfiles);
return function(v3, v4)
    local v5 = l_useQuery_0(v2.Queries.userProfilesCombinedNameByUserIds, {
        variables = {
            userIds = {
                v3
            }
        }
    });
    return if not v5.data then nil else v2.Selectors.getCombinedNameFromId(v5.data, v3) or v4;
end;


local l_VRService_0 = game:GetService("VRService");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v2 = require(l_RobloxGui_0.Modules.TenFootInterface);
local v3 = require(l_RobloxGui_0.Modules.Settings.Utility);
local v4 = game:DefineFastFlag("FixPlayerListOpenOnLaunch", false);
local function _()
    if not _G.__TESTEZ_RUNNING_TEST__ then
        return v3:IsSmallTouchScreen();
    else
        return false;
    end;
end;
return function()
    if not v4 then
        return not if not _G.__TESTEZ_RUNNING_TEST__ then v3:IsSmallTouchScreen() else false and not l_VRService_0.VREnabled;
    else
        return (not if not _G.__TESTEZ_RUNNING_TEST__ then v3:IsSmallTouchScreen() else false and not l_VRService_0.VREnabled) and not v2:IsEnabled();
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_UiModeStyleProvider_0 = require(l_CorePackages_0.Workspace.Packages.Style).UiModeStyleProvider;
local l_Parent_0 = script.Parent;
local l_Connection_0 = l_Parent_0.Components.Connection;
local v7 = require(l_Parent_0.Components.Presentation.PlayerListApp);
local v8 = require(l_Parent_0.Components.PresentationMobile.PlayerListApp);
local l_Provider_0 = require(l_Connection_0.LayoutValues).Provider;
local v10 = require(l_Parent_0.CreateLayoutValues);
local v11 = require(l_RobloxGui_0.Modules.TenFootInterface);
local v12 = require(l_Parent_0.Actions.SetPlayerListVisibility);
local v13 = require(l_Parent_0.PlayerListInitialVisibleState);
local v14 = v2.PureComponent:extend("PlayerListSwitcher");
v14.didMount = function(v15)
    v15.props.setPlayerListVisible(v13());
end;
v14.wrapWithUiModeStyleProvider = function(v16, v17)
    return {
        ThemeProvider = v2.createElement(l_UiModeStyleProvider_0, {
            style = {
                themeName = v16.props.appStyleForUiModeStyleProvider.themeName,
                fontName = v16.props.appStyleForUiModeStyleProvider.fontName
            }
        }, v17)
    };
end;
v14.render = function(v18)
    return v2.createElement(l_Provider_0, {
        layoutValues = v10(v11:IsEnabled())
    }, v18:wrapWithUiModeStyleProvider({
        PlayerListApp = not not v18.props.isSmallTouchDevice and v2.createElement(v8, {
            setLayerCollectorEnabled = v18.props.setLayerCollectorEnabled
        }) or v2.createElement(v7, {
            setLayerCollectorEnabled = v18.props.setLayerCollectorEnabled
        })
    }));
end;
v14.didUpdate = function(v19)
    v19.props.setPlayerListVisible(not v19.props.isSmallTouchDevice);
end;
return v3.connect(function(v20)
    return {
        isSmallTouchDevice = v20.displayOptions.isSmallTouchDevice
    };
end, function(v21)
    return {
        setPlayerListVisible = function(v22)
            return v21(v12(v22));
        end
    };
end)(v14);


local function v2(v0, v1)
    return v0 < v1;
end;
local function v4(v3)
    return v3;
end;
local function v9(v5, v6)
    local l_stat_0 = v5.stat;
    local l_stat_1 = v6.stat;
    if l_stat_0 == l_stat_1 then
        return v5.name < v6.name;
    elseif l_stat_0 == nil then
        return false;
    elseif l_stat_1 == nil then
        return true;
    else
        if type(l_stat_0) ~= type(l_stat_1) then
            l_stat_0 = tostring(l_stat_0);
            l_stat_1 = tostring(l_stat_1);
        end;
        if l_stat_0 == l_stat_1 then
            return v5.name < v6.name;
        else
            return l_stat_1 < l_stat_0;
        end;
    end;
end;
local function v24(v10, v11, v12, v13)
    v12 = v12 or v2;
    v13 = v13 or v4;
    local v14 = 1;
    local v15 = 1;
    local v16 = #v10;
    local v17 = #v11;
    if v16 == 0 then
        return v11;
    elseif v17 == 0 then
        return v10;
    else
        local v18 = table.create(v16 + v17, nil);
        local v19 = v10[v14];
        local v20 = v11[v15];
        local v21 = v13(v19);
        local v22 = v13(v20);
        local v23 = 0;
        while v21 ~= nil and v22 ~= nil do
            if not v12(v21, v22) then
                v23 = v23 + 1;
                v18[v23] = v20;
                v15 = v15 + 1;
                v20 = v11[v15];
                v22 = not not v20 and v13(v20) or nil;
            else
                v23 = v23 + 1;
                v18[v23] = v19;
                v14 = v14 + 1;
                v19 = v10[v14];
                v21 = not not v19 and v13(v19) or nil;
            end;
        end;
        if v21 ~= nil then
            table.move(v10, v14, v16, v23 + 1, v18);
            return v18;
        else
            if v22 ~= nil then
                table.move(v11, v15, v17, v23 + 1, v18);
            end;
            return v18;
        end;
    end;
end;
return {
    keyCmp = v9,
    joinSorted = v24,
    getDerivedStateFromProps = function(v25, v26)
        v26 = v26 or {};
        if v25.playerKeys.keys == v26.playerKeys then
            return v26;
        else
            local v27 = v26.sortedPlayers or {};
            local l_keys_0 = v25.playerKeys.keys;
            local v29 = table.create(#v27, nil);
            local v30 = table.create(5, nil);
            local v31 = 0;
            local v32 = 0;
            local v33 = v26.playerKeys or {};
            for _, v35 in pairs(v27) do
                local v36 = l_keys_0[v35];
                if v36 then
                    if v36 ~= v33[v35] then
                        v32 = v32 + 1;
                        v30[v32] = v35;
                    else
                        v31 = v31 + 1;
                        v29[v31] = v35;
                    end;
                end;
            end;
            for v37 in pairs(l_keys_0) do
                if not v33[v37] then
                    v32 = v32 + 1;
                    v30[v32] = v37;
                end;
            end;
            local function v39(v38)
                return l_keys_0[v38];
            end;
            table.sort(v30, function(v40, v41)
                local v42 = l_keys_0[v40];
                local v43 = l_keys_0[v41];
                local l_stat_2 = v42.stat;
                local l_stat_3 = v43.stat;
                if l_stat_2 == l_stat_3 then
                    return v42.name < v43.name;
                elseif l_stat_2 == nil then
                    return false;
                elseif l_stat_3 == nil then
                    return true;
                else
                    if type(l_stat_2) ~= type(l_stat_3) then
                        l_stat_2 = tostring(l_stat_2);
                        l_stat_3 = tostring(l_stat_3);
                    end;
                    if l_stat_2 == l_stat_3 then
                        return v42.name < v43.name;
                    else
                        return l_stat_3 < l_stat_2;
                    end;
                end;
            end);
            return {
                sortedPlayers = v24(v29, v30, v9, v39),
                playerKeys = l_keys_0
            };
        end;
    end
};


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_VRService_0 = game:GetService("VRService");
local l_GuiService_0 = game:GetService("GuiService");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v5 = require(l_CorePackages_0.Rodux);
local v6 = require(l_CorePackages_0.Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
local v8 = require(l_Actions_0.SetPlayerListVisibility);
local v9 = require(l_Actions_0.SetPlayerListEnabled);
local v10 = require(l_Actions_0.SetTempHideKey);
local v11 = require(l_Actions_0.SetPerformanceStatsVisible);
local v12 = require(l_Actions_0.SetSmallTouchDevice);
local v13 = require(l_Actions_0.SetTenFootInterface);
local v14 = require(l_Actions_0.SetInspectMenuEnabled);
local v15 = require(l_Actions_0.SetIsUsingGamepad);
local v16 = require(l_Actions_0.SetHasPermissionToVoiceChat);
local v17 = require(l_Actions_0.SetMinimized);
local v18 = require(l_Actions_0.SetSubjectToChinaPolicies);
local v19 = require(l_RobloxGui_0.Modules.Flags.FFlagMobilePlayerList);
local v20 = {
    isMinimized = false,
    setVisible = true,
    isVisible = true,
    isSmallTouchDevice = false,
    performanceStatsVisible = false,
    vrEnabled = l_VRService_0.VREnabled,
    inspectMenuEnabled = l_GuiService_0:GetInspectMenuEnabled(),
    playerlistCoreGuiEnabled = true,
    isTenFootInterface = false,
    isUsingGamepad = false,
    hasPermissionToVoiceChat = false,
    tempHideKeys = {},
    subjectToChinaPolicies = true
};
local function _(v21)
    v21.isVisible = v21.setVisible;
    if not v19 then
        if not v21.isTenFootInterface then
            v21.isVisible = v21.isVisible and not v21.isSmallTouchDevice;
        end;
    elseif not v21.isTenFootInterface then
        v21.isVisible = v21.isVisible;
    end;
    v21.isVisible = v21.isVisible and v6.isEmpty(v21.tempHideKeys);
    return v21;
end;
return (v5.createReducer(v20, {
    [v8.name] = function(v23, v24)
        local v25 = v6.Dictionary.join(v23, {
            setVisible = v24.isVisible
        });
        v25.isVisible = v25.setVisible;
        if not v19 then
            if not v25.isTenFootInterface then
                v25.isVisible = v25.isVisible and not v25.isSmallTouchDevice;
            end;
        elseif not v25.isTenFootInterface then
            v25.isVisible = v25.isVisible;
        end;
        v25.isVisible = v25.isVisible and v6.isEmpty(v25.tempHideKeys);
        return v25;
    end,
    [v9.name] = function(v26, v27)
        local v28 = v6.Dictionary.join(v26, {
            playerlistCoreGuiEnabled = v27.isEnabled
        });
        v28.isVisible = v28.setVisible;
        if not v19 then
            if not v28.isTenFootInterface then
                v28.isVisible = v28.isVisible and not v28.isSmallTouchDevice;
            end;
        elseif not v28.isTenFootInterface then
            v28.isVisible = v28.isVisible;
        end;
        v28.isVisible = v28.isVisible and v6.isEmpty(v28.tempHideKeys);
        return v28;
    end,
    [v10.name] = function(v29, v30)
        local l_tempHideValue_0 = v30.tempHideValue;
        if l_tempHideValue_0 == nil then
            l_tempHideValue_0 = v6.None;
        end;
        local v32 = v6.Dictionary.join(v29, {
            tempHideKeys = v6.Dictionary.join(v29.tempHideKeys, {
                [v30.tempHideKey] = l_tempHideValue_0
            })
        });
        v32.isVisible = v32.setVisible;
        if not v19 then
            if not v32.isTenFootInterface then
                v32.isVisible = v32.isVisible and not v32.isSmallTouchDevice;
            end;
        elseif not v32.isTenFootInterface then
            v32.isVisible = v32.isVisible;
        end;
        v32.isVisible = v32.isVisible and v6.isEmpty(v32.tempHideKeys);
        return v32;
    end,
    [v11.name] = function(v33, v34)
        return v6.Dictionary.join(v33, {
            performanceStatsVisible = v34.isVisible
        });
    end,
    [v12.name] = function(v35, v36)
        local v37 = v6.Dictionary.join(v35, {
            isSmallTouchDevice = v36.isSmallTouchDevice
        });
        v37.isVisible = v37.setVisible;
        if not v19 then
            if not v37.isTenFootInterface then
                v37.isVisible = v37.isVisible and not v37.isSmallTouchDevice;
            end;
        elseif not v37.isTenFootInterface then
            v37.isVisible = v37.isVisible;
        end;
        v37.isVisible = v37.isVisible and v6.isEmpty(v37.tempHideKeys);
        return v37;
    end,
    [v13.name] = function(v38, v39)
        local l_setVisible_0 = v38.setVisible;
        if v39.isTenFootInterface then
            l_setVisible_0 = false;
        end;
        local v41 = v6.Dictionary.join(v38, {
            isTenFootInterface = v39.isTenFootInterface,
            setVisible = l_setVisible_0
        });
        v41.isVisible = v41.setVisible;
        if not v19 then
            if not v41.isTenFootInterface then
                v41.isVisible = v41.isVisible and not v41.isSmallTouchDevice;
            end;
        elseif not v41.isTenFootInterface then
            v41.isVisible = v41.isVisible;
        end;
        v41.isVisible = v41.isVisible and v6.isEmpty(v41.tempHideKeys);
        return v41;
    end,
    [v14.name] = function(v42, v43)
        return v6.Dictionary.join(v42, {
            inspectMenuEnabled = v43.enabled
        });
    end,
    [v15.name] = function(v44, v45)
        return v6.Dictionary.join(v44, {
            isUsingGamepad = v45.isUsingGamepad
        });
    end,
    [v16.name] = function(v46, v47)
        return v6.Dictionary.join(v46, {
            hasPermissionToVoiceChat = v47.hasPermissionToVoiceChat
        });
    end,
    [v17.name] = function(v48, v49)
        return v6.Dictionary.join(v48, {
            isMinimized = v49.isMinimized
        });
    end,
    [v18.name] = function(v50, v51)
        return v6.Dictionary.join(v50, {
            subjectToChinaPolicies = v51.subjectToChinaPolicies
        });
    end
}));


local v0 = require(game:GetService("CorePackages").Cryo);
local l_Parent_0 = script.Parent.Parent;
local l_Actions_0 = l_Parent_0.Actions;
local v3 = require(l_Actions_0.AddGameStat);
local v4 = require(l_Actions_0.RemoveGameStat);
local v5 = require(l_Actions_0.SetGameStatText);
local v6 = require(l_Actions_0.SetGameStatAddId);
local v7 = require(l_Parent_0.Flags.FFlagLeaderstatsWithASideOfClient);
local v8 = require(l_Parent_0.FormatStatString);
local function v13(v9, v10)
    if v9.isPrimary ~= v10.isPrimary then
        return v9.isPrimary;
    elseif v9.priority == v10.priority then
        if v7 then
            local l_serverAddId_0 = v9.serverAddId;
            local l_serverAddId_1 = v10.serverAddId;
            if not (not l_serverAddId_0 or not l_serverAddId_1) then
                return l_serverAddId_0 < l_serverAddId_1;
            end;
        end;
        return v9.addId < v10.addId;
    else
        return v10.priority < v9.priority;
    end;
end;
local v14 = 0;
return function(v15, v16)
    v15 = v15 or {};
    if v16.type == v3.name then
        local v17 = nil;
        local v18 = nil;
        local v19 = v8(nil);
        local v20 = {};
        for _, v22 in ipairs(v15) do
            if v22.name == v16.statName then
                v17 = v22.addId;
                v19 = v22.text;
                if v7 then
                    v18 = v22.serverAddId;
                end;
            else
                table.insert(v20, v22);
            end;
        end;
        v14 = v14 + 1;
        v20 = v0.List.join(v20, {
            {
                name = v16.statName,
                text = v19,
                addId = v17 or v14,
                isPrimary = v16.isPrimary,
                priority = v16.priority,
                serverAddId = v18
            }
        });
        table.sort(v20, v13);
        return v20;
    elseif v16.type == v4.name then
        return v0.List.filter(v15, function(v23)
            return v23.name ~= v16.statName;
        end);
    elseif v16.type == v5.name then
        return v0.List.map(v15, function(v24)
            return v24.name == v16.statName and v0.Dictionary.join(v24, {
                text = v16.text
            }) or v24;
        end);
    elseif v7 and v16.type == v6.name then
        local v26 = v0.List.map(v15, function(v25)
            return v25.name == v16.statName and v0.Dictionary.join(v25, {
                serverAddId = v16.serverAddId
            }) or v25;
        end);
        table.sort(v26, v13);
        return v26;
    else
        return v15;
    end;
end;


local v0 = require(game:GetService("CorePackages").Rodux);
local l_Actions_0 = script.Parent.Parent.Actions;
return (v0.createReducer({
    isVisible = false,
    selectedPlayer = nil
}, {
    [require(l_Actions_0.SetPlayerListVisibility).name] = function(v2, v3)
        if v3.isVisible then
            return v2;
        else
            return {
                isVisible = false,
                selectedPlayer = v2.selectedPlayer
            };
        end;
    end,
    [require(l_Actions_0.OpenPlayerDropDown).name] = function(_, v5)
        return {
            isVisible = true,
            selectedPlayer = v5.selectedPlayer
        };
    end,
    [require(l_Actions_0.ClosePlayerDropDown).name] = function(v6, _)
        return {
            isVisible = false,
            selectedPlayer = v6.selectedPlayer
        };
    end,
    [require(l_Actions_0.RemovePlayer).name] = function(v8, v9)
        if v9.player == v8.selectedPlayer then
            return {
                isVisible = false,
                selectedPlayer = nil
            };
        else
            return v8;
        end;
    end
}));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
return (v1.createReducer({}, {
    [require(l_Actions_0.AddPlayer).name] = function(v4, v5)
        local l_join_0 = v2.Dictionary.join;
        local l_v4_0 = v4;
        local v8 = {};
        local l_userId_0 = v5.userId;
        local v10 = {};
        local v11 = false;
        if game.CreatorType == Enum.CreatorType.User then
            v11 = v5.userId == game.CreatorId;
        end;
        v10.isPlaceOwner = v11;
        v10.avatarIcon = nil;
        v10.specialGroupIcon = nil;
        v8[l_userId_0] = v10;
        return l_join_0(l_v4_0, v8);
    end,
    [require(l_Actions_0.RemovePlayer).name] = function(v12, v13)
        return v2.Dictionary.join(v12, {
            [v13.userId] = v2.None
        });
    end,
    [require(l_Actions_0.SetPlayerAvatarIcon).name] = function(v14, v15)
        return v2.Dictionary.join(v14, {
            [v15.userId] = {
                isPlaceOwner = v14[v15.userId].isPlaceOwner,
                avatarIcon = v15.avatarIcon,
                specialGroupIcon = v14[v15.userId].specialGroupIcon
            }
        });
    end,
    [require(l_Actions_0.SetPlayerIsCreator).name] = function(v16, v17)
        return v2.Dictionary.join(v16, {
            [v17.userId] = {
                isPlaceOwner = v17.isCreator,
                avatarIcon = v16[v17.userId].avatarIcon,
                specialGroupIcon = v16[v17.userId].specialGroupIcon
            }
        });
    end,
    [require(l_Actions_0.SetPlayerSpecialGroupIcon).name] = function(v18, v19)
        return v2.Dictionary.join(v18, {
            [v19.userId] = {
                isPlaceOwner = v18[v19.userId].isPlaceOwner,
                avatarIcon = v18[v19.userId].avatarIcon,
                specialGroupIcon = v19.specialGroupIcon
            }
        });
    end
}));


local v0 = require(game:GetService("CorePackages").Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
local v2 = require(l_Actions_0.AddPlayer);
local v3 = require(l_Actions_0.RemovePlayer);
local v4 = require(l_Actions_0.SetPlayerLeaderstat);
local function v9(v5, v6, v7)
    local v8 = nil;
    if (v6 ~= nil and v7 ~= nil) and v7[v5.UserId] ~= nil then
        v8 = v7[v5.UserId][v6];
    end;
    return {
        name = v5.DisplayName:upper(),
        stat = not not v8 and tonumber(v8) or v8
    };
end;
return function(v10, v11, v12)
    local v13 = not not v12.gameStats[1] and v12.gameStats[1].name or nil;
    if not v10 or v13 ~= v10.primaryStat then
        local v14 = {};
        for _, v16 in pairs(v12.players) do
            v14[v16] = v9(v16, v13, v12.playerStats);
        end;
        return {
            primaryStat = v13,
            keys = v14
        };
    elseif not (v11.type ~= v2.name) or v11.type == v4.name then
        return {
            primaryStat = v13,
            keys = v0.Dictionary.join(v10.keys, {
                [v11.player] = v9(v11.player, v13, v12.playerStats)
            })
        };
    elseif v11.type == v3.name then
        return {
            primaryStat = v13,
            keys = v0.Dictionary.join(v10.keys, {
                [v11.player] = v0.None
            })
        };
    else
        return v10;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
return (v1.createReducer({}, {
    [require(l_Actions_0.AddPlayer).name] = function(v4, v5)
        return v2.Dictionary.join(v4, {
            [v5.userId] = {
                isBlocked = false,
                friendStatus = Enum.FriendStatus.Unknown,
                isFollowing = false,
                isFollower = false
            }
        });
    end,
    [require(l_Actions_0.RemovePlayer).name] = function(v6, v7)
        return v2.Dictionary.join(v6, {
            [v7.userId] = v2.None
        });
    end,
    [require(l_Actions_0.SetPlayerIsBlocked).name] = function(v8, v9)
        return v2.Dictionary.join(v8, {
            [v9.userId] = {
                isBlocked = v9.isBlocked,
                friendStatus = v8[v9.userId].friendStatus,
                isFollowing = v8[v9.userId].isFollowing,
                isFollower = v8[v9.userId].isFollower
            }
        });
    end,
    [require(l_Actions_0.SetPlayerFollowRelationship).name] = function(v10, v11)
        return v2.Dictionary.join(v10, {
            [v11.userId] = {
                isBlocked = v10[v11.userId].isBlocked,
                friendStatus = v10[v11.userId].friendStatus,
                isFollowing = v11.isFollowing,
                isFollower = v11.isFollower
            }
        });
    end,
    [require(l_Actions_0.SetPlayerIsFollowing).name] = function(v12, v13)
        return v2.Dictionary.join(v12, {
            [v13.userId] = {
                isBlocked = v12[v13.userId].isBlocked,
                friendStatus = v12[v13.userId].friendStatus,
                isFollowing = v13.isFollowing,
                isFollower = v12[v13.userId].isFollower
            }
        });
    end,
    [require(l_Actions_0.SetPlayerFriendStatus).name] = function(v14, v15)
        return v2.Dictionary.join(v14, {
            [v15.userId] = {
                isBlocked = v14[v15.userId].isBlocked,
                friendStatus = v15.friendStatus,
                isFollowing = v14[v15.userId].isFollowing,
                isFollower = v14[v15.userId].isFollower
            }
        });
    end
}));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
return (v1.createReducer({}, {
    [require(l_Actions_0.AddPlayer).name] = function(v4, v5)
        return v2.Dictionary.join(v4, {
            [v5.userId] = {}
        });
    end,
    [require(l_Actions_0.RemovePlayer).name] = function(v6, v7)
        return v2.Dictionary.join(v6, {
            [v7.userId] = v2.None
        });
    end,
    [require(l_Actions_0.SetPlayerLeaderstat).name] = function(v8, v9)
        if v8[v9.userId] == nil then
            return v8;
        else
            return v2.Dictionary.join(v8, {
                [v9.userId] = v2.Dictionary.join(v8[v9.userId], {
                    [v9.leaderstat] = v9.value
                })
            });
        end;
    end
}));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
return (v1.createReducer({}, {
    [require(l_Actions_0.AddPlayerToTeam).name] = function(v4, v5)
        return v2.Dictionary.join(v4, {
            [v5.player.UserId] = v5.team
        });
    end,
    [require(l_Actions_0.RemovePlayerFromTeam).name] = function(v6, v7)
        return v2.Dictionary.join(v6, {
            [v7.player.UserId] = v2.None
        });
    end,
    [require(l_Actions_0.RemovePlayer).name] = function(v8, v9)
        return v2.Dictionary.join(v8, {
            [v9.player.UserId] = v2.None
        });
    end
}));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
return (v1.createReducer({}, {
    [require(l_Actions_0.AddPlayer).name] = function(v4, v5)
        return v2.List.join(v4, {
            v5.player
        });
    end,
    [require(l_Actions_0.RemovePlayer).name] = function(v6, v7)
        return v2.List.filter(v6, function(v8)
            return v8 ~= v7.player;
        end);
    end
}));


local v0 = require(game:GetService("CorePackages").Rodux);
local v1 = require(script.Parent.DisplayOptions);
local v2 = require(script.Parent.ScreenSize);
local v3 = require(script.Parent.Settings);
local v4 = require(script.Parent.GameStats);
local v5 = require(script.Parent.Teams);
local v6 = require(script.Parent.TeamNames);
local v7 = require(script.Parent.TeamColors);
local v8 = require(script.Parent.Players);
local v9 = require(script.Parent.PlayerStats);
local v10 = require(script.Parent.PlayerTeam);
local v11 = require(script.Parent.PlayerIconInfo);
local v12 = require(script.Parent.PlayerRelationship);
local v13 = require(script.Parent.PlayerDropDown);
local v14 = require(script.Parent.PlayerKeys);
local v15 = v0.combineReducers({
    displayOptions = v1,
    screenSize = v2,
    settings = v3,
    gameStats = v4,
    teams = v5,
    teamNames = v6,
    teamColors = v7,
    players = v8,
    playerStats = v9,
    playerTeam = v10,
    playerIconInfo = v11,
    playerRelationship = v12,
    playerDropDown = v13
});
return function(v16, v17)
    local v18 = v15(v16, v17);
    v18.playerKeys = v14(not not v16 and v16.playerKeys or nil, v17, v18);
    return v18;
end;


return (require(game:GetService("CorePackages").Rodux).createReducer({
    X = 1000,
    Y = 1000
}, {
    [require(script.Parent.Parent.Actions.SetScreenSize).name] = function(_, v1)
        return {
            X = v1.sizeX,
            Y = v1.sizeY
        };
    end
}));


return (require(game:GetService("CorePackages").Rodux).createReducer({
    preferredTransparency = 1,
    reducedMotion = false
}, {
    [require(script.Parent.Parent.Actions.SetSettings).name] = function(_, v1)
        return {
            preferredTransparency = v1.preferredTransparency,
            reducedMotion = v1.reducedMotion
        };
    end
}));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Rodux);
local v2 = require(l_CorePackages_0.Cryo);
local l_Actions_0 = script.Parent.Parent.Actions;
return (v1.createReducer({}, {
    [require(l_Actions_0.AddTeam).name] = function(v4, v5)
        return v2.Dictionary.join(v4, {
            [v5.team] = v5.team.TeamColor
        });
    end,
    [require(l_Actions_0.RemoveTeam).name] = function(v6, v7)
        return v2.Dictionary.join(v6, {
            [v7.team] = v2.None
        });
    end,
    [require(l_Actions_0.SetTeamColor).name] = function(v8, v9)
        return v2.Dictionary.join(v8, {
            [v9.team] = v9.teamColor
        });
    end
}));