local l_AddFriends_0 = script:FindFirstAncestor("FriendsLanding").AddFriends;
local v1 = require(l_AddFriends_0.dependencies);
local v2 = require(l_AddFriends_0.Enums.LocalizedKeys);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local l_UIBlox_0 = v1.UIBlox;
local l_withLocalization_0 = v1.withLocalization;
local l_Text_0 = v1.Text;
local l_memoize_0 = v1.memoize;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_ImageSetButton_0 = l_UIBlox_0.Core.ImageSet.ImageSetButton;
local v13 = Vector2.new(70, 20);
local v14 = Vector2.new(18, 18);
local v15 = l_Roact_0.PureComponent:extend("PlayerTileFriendshipButton");
v15.validateProps = l_t_0.strictInterface({
    status = l_t_0.optional(l_t_0.enum(Enum.FriendStatus)),
    onActivated = l_t_0.optional(l_t_0.callback)
});
v15.defaultProps = {
    status = Enum.FriendStatus.NotFriend
};
v15.init = function(v16)
    v16.getTextBounds = l_memoize_0(function(v17, v18, v19)
        return l_Text_0.GetTextBounds(v17, v18, v19, v13);
    end);
    v16.getButtonSize = l_memoize_0(function(v20, v21)
        return UDim2.new(0, ((v14.X + 6) + v20) + 16, 0, math.max(v14.Y, v21) + 10);
    end);
end;
v15.renderWithProviders = function(v22, v23, v24)
    local l_status_0 = v22.props.status;
    local l_onActivated_0 = v22.props.onActivated;
    local v27 = l_Images_0["icons/actions/friends/friendAdd"];
    local v28 = nil;
    local v29 = nil;
    if l_status_0 == Enum.FriendStatus.NotFriend then
        v28 = v24.addFriend;
        v29 = 0;
    elseif l_status_0 == Enum.FriendStatus.FriendRequestSent then
        v28 = v24.requestPending;
        v29 = 0.2;
    else
        return ;
    end;
    local l_Theme_0 = v23.Theme;
    local l_Font_0 = v23.Font;
    local l_Font_1 = l_Font_0.CaptionHeader.Font;
    local v33 = l_Font_0.BaseSize * l_Font_0.CaptionHeader.RelativeSize;
    local v34 = v22.getTextBounds(v28, l_Font_1, v33);
    return l_Roact_0.createElement(l_ImageSetButton_0, {
        BackgroundTransparency = 1,
        Image = l_Images_0["component_assets/circle_21"],
        ImageColor3 = l_Theme_0.SystemPrimaryDefault.Color,
        ImageTransparency = l_Theme_0.SystemPrimaryDefault.Transparency + v29,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(8, 8, 9, 9),
        AnchorPoint = Vector2.new(1, 1),
        Position = UDim2.new(1, -12, 1, -12),
        Size = v22.getButtonSize(v34.X, v34.Y),
        [l_Roact_0.Event.Activated] = l_onActivated_0
    }, {
        Icon = l_Roact_0.createElement(l_ImageSetLabel_0, {
            BackgroundTransparency = 1,
            Image = v27,
            ImageColor3 = l_Theme_0.SystemPrimaryContent.Color,
            ImageTransparency = l_Theme_0.SystemPrimaryContent.Transparency + v29,
            AnchorPoint = Vector2.new(0, 0.5),
            Position = UDim2.new(0, 8, 0.5, 0),
            Size = UDim2.new(0, v14.X, 0, v14.Y)
        }),
        Text = l_Roact_0.createElement("TextLabel", {
            BackgroundTransparency = 1,
            Font = l_Font_1,
            TextSize = v33,
            Text = v28,
            TextColor3 = l_Theme_0.SystemPrimaryContent.Color,
            TextTransparency = l_Theme_0.SystemPrimaryContent.Transparency + v29,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            Position = UDim2.new(0, (8 + v14.X) + 6, 0, 0),
            Size = UDim2.new(0, v34.X + 8, 1, 0)
        })
    });
end;
v15.render = function(v35)
    return l_withStyle_0(function(v36)
        return l_withLocalization_0({
            addFriend = v2.AddFriend.rawValue(),
            requestPending = v2.RequestPending.rawValue()
        })(function(v37)
            return v35:renderWithProviders(v36, v37);
        end);
    end);
end;
return v15;


local v0 = require(script:FindFirstAncestor("FriendsLanding").AddFriends.dependencies);
local l_Roact_0 = v0.Roact;
local l_t_0 = v0.t;
local l_UIBlox_0 = v0.UIBlox;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_ImageSetButton_0 = l_UIBlox_0.Core.ImageSet.ImageSetButton;
local v8 = Vector2.new(28, 28);
local v9 = l_Roact_0.PureComponent:extend("PlayerTileRequestActionButtons");
v9.validateProps = l_t_0.strictInterface({
    status = l_t_0.optional(l_t_0.enum(Enum.FriendStatus)),
    onAccept = l_t_0.optional(l_t_0.callback),
    onDecline = l_t_0.optional(l_t_0.callback)
});
v9.defaultProps = {
    status = Enum.FriendStatus.FriendRequestReceived
};
v9.render = function(v10)
    local l_status_0 = v10.props.status;
    local l_onDecline_0 = v10.props.onDecline;
    local l_onAccept_0 = v10.props.onAccept;
    if l_status_0 ~= Enum.FriendStatus.FriendRequestReceived then
        return nil;
    else
        return l_withStyle_0(function(v14)
            local l_Theme_0 = v14.Theme;
            return l_Roact_0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 44),
                AnchorPoint = Vector2.new(0.5, 1),
                Position = UDim2.new(0.5, 0, 1, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0
            }, {
                Padding = l_Roact_0.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 8),
                    PaddingRight = UDim.new(0, 8),
                    PaddingBottom = UDim.new(0, 8)
                }),
                DeclineButton = l_Roact_0.createElement(l_ImageSetButton_0, {
                    BackgroundTransparency = 1,
                    Image = l_Images_0["component_assets/circle_17_stroke_1"],
                    ImageColor3 = l_Theme_0.SecondaryDefault.Color,
                    ImageTransparency = l_Theme_0.SecondaryDefault.Transparency,
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = Rect.new(7, 7, 8, 8),
                    AnchorPoint = Vector2.new(0, 0),
                    Position = UDim2.new(0, 0, 0, 0),
                    Size = UDim2.new(0.5, -4, 1, 0),
                    [l_Roact_0.Event.Activated] = l_onDecline_0
                }, {
                    DeclineIcon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                        BackgroundTransparency = 1,
                        Image = l_Images_0["icons/actions/reject"],
                        ImageColor3 = l_Theme_0.SecondaryContent.Color,
                        ImageTransparency = l_Theme_0.SecondaryContent.Transparency,
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Position = UDim2.new(0.5, 0, 0.5, 0),
                        Size = UDim2.new(0, v8.X, 0, v8.Y)
                    })
                }),
                AcceptButton = l_Roact_0.createElement(l_ImageSetButton_0, {
                    BackgroundTransparency = 1,
                    Image = l_Images_0["component_assets/circle_17"],
                    ImageColor3 = l_Theme_0.SystemPrimaryDefault.Color,
                    ImageTransparency = l_Theme_0.SystemPrimaryDefault.Transparency,
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = Rect.new(7, 7, 8, 8),
                    AnchorPoint = Vector2.new(1, 0),
                    Position = UDim2.new(1, 0, 0, 0),
                    Size = UDim2.new(0.5, -4, 1, 0),
                    [l_Roact_0.Event.Activated] = l_onAccept_0
                }, {
                    AcceptIcon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                        BackgroundTransparency = 1,
                        Image = l_Images_0["icons/actions/accept"],
                        ImageColor3 = l_Theme_0.SystemPrimaryContent.Color,
                        ImageTransparency = l_Theme_0.SystemPrimaryContent.Transparency,
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Position = UDim2.new(0.5, 0, 0.5, 0),
                        Size = UDim2.new(0, v8.X, 0, v8.Y)
                    })
                })
            });
        end);
    end;
end;
return v9;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_React_0 = v1.React;
local l_UIBlox_0 = v1.UIBlox;
local v4 = require(l_script_FirstAncestor_0.Common.TextKeys);
local l_IconButton_0 = l_UIBlox_0.App.Button.IconButton;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_Badge_0 = l_UIBlox_0.App.Indicator.Badge;
local l_Tooltip_0 = l_UIBlox_0.App.Dialog.Tooltip;
local l_Dash_0 = v1.Dash;
local l_useState_0 = l_React_0.useState;
local l_useLocalization_0 = v1.Hooks.useLocalization;
local l_getDeepValue_0 = v1.SocialLibraries.Dictionary.getDeepValue;
local v13 = {
    layoutOrder = 0,
    friendRequestCount = 0,
    onActivated = l_Dash_0.noop,
    showTooltip = false
};
return function(v14)
    local v15 = l_Dash_0.join(v13, v14);
    local v16, v17 = l_useState_0(240);
    local function v19(v18)
        if not (not v18 or not v18:FindFirstChild("CallToActionTooltip", true)) then
            v17(l_getDeepValue_0(v18, "CallToActionTooltip.TooltipContainer.AbsoluteSize.X") or 240);
        end;
    end;
    local v20 = l_useLocalization_0({
        tooltipMessage = v4.NO_FRIENDS_TOOLTIP
    });
    local l_createElement_0 = l_React_0.createElement;
    local l_l_IconButton_0_0 = l_IconButton_0;
    local v23 = {
        size = UDim2.fromOffset(0, 0),
        icon = l_Images_0["icons/actions/friends/friendAdd"],
        position = v15.position,
        anchorPoint = Vector2.new(1, 0.5),
        layoutOrder = v15.layoutOrder,
        onActivated = v15.onActivated
    };
    local v24 = {};
    local l_createElement_1 = l_React_0.createElement;
    local v26 = "Frame";
    local v27 = {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        [l_React_0.Change.AbsoluteSize] = v19
    };
    local v28 = {};
    local v29 = false;
    if v15.friendRequestCount > 0 then
        v29 = l_React_0.createElement(l_Badge_0, {
            position = UDim2.new(0.5, 0, 0.5, 0),
            anchorPoint = Vector2.new(0, 1),
            value = v15.friendRequestCount
        });
    end;
    v28.FriendRequestsBadge = v29;
    v28.CallToActionTooltip = v15.showTooltip and l_React_0.createElement(l_Tooltip_0, {
        position = UDim2.new(0, 42.5 - v16, 0, 36),
        triggerPosition = Vector2.new(0, 0),
        triggerSize = Vector2.new(36, 0),
        bodyText = v20.tooltipMessage,
        forceClickTriggerPoint = true,
        isDirectChild = true
    });
    v24.ImagesContainer = l_createElement_1(v26, v27, v28);
    return l_createElement_0(l_l_IconButton_0_0, v23, v24);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_CoreGui_0 = v1.CoreGui;
local l_Roact_0 = v1.Roact;
local l_TextService_0 = v1.TextService;
local l_UIBlox_0 = v1.UIBlox;
local l_withLocalization_0 = v1.withLocalization;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local v8 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics.ImpressionEvents);
local l_Pill_0 = l_UIBlox_0.App.Control.Pill;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_withTooltip_0 = l_UIBlox_0.App.Dialog.TooltipV2.withTooltip;
local l_TooltipOrientation_0 = l_UIBlox_0.App.Dialog.Enum.TooltipOrientation;
local v13 = require(l_script_FirstAncestor_0.Friends.filterStates);
local v14 = require(l_script_FirstAncestor_0.Components.PillWithAlert);
local l_IconSize_0 = l_UIBlox_0.App.ImageSet.Enum.IconSize;
local l_getIconSize_0 = l_UIBlox_0.App.ImageSet.getIconSize;
local v17 = l_Roact_0.PureComponent:extend("FilterByButton");
v17.defaultProps = {
    analytics = nil,
    layoutOrder = 1,
    onActivated = function()
    end,
    filter = v13.All,
    friendCount = 0,
    inactiveFriendCount = 0,
    isDisabled = false,
    showFriendPruningAlert = false,
    initialShowFriendPruningTooltip = false,
    onTooltipDismissal = function()
    end
};
v17.init = function(v18)
    v18.state = {
        showFriendPruningTooltip = v18.props.initialShowFriendPruningTooltip,
        hasDismissedFriendPruningTooltip = false
    };
    v18.convertFilterToTranslation = function(v19, v20)
        if v19 == v13.All then
            return v20.all;
        elseif v19 == v13.Online then
            return v20.online;
        elseif v19 == v13.InExperience then
            return v20.inExperience;
        elseif v19 == v13.Offline then
            return v20.offline;
        elseif v19 == v13.Inactive then
            return v20.inactive;
        else
            return nil;
        end;
    end;
    v18.buildFilterText = function(v21, v22, v23)
        local v24 = v18.convertFilterToTranslation(v21, v22);
        if v23 == 0 then
            return v24;
        else
            return v24 .. " (" .. v23 .. ")";
        end;
    end;
    v18.isSelected = function(v25)
        if v25 == v13.All then
            return false;
        else
            return true;
        end;
    end;
    v18.dismissFriendPruningTooltip = function()
        v18:setState({
            showFriendPruningTooltip = false,
            hasDismissedFriendPruningTooltip = true
        });
        v18.props.onTooltipDismissal();
    end;
end;
v17.didMount = function(v26)
    if not (not v26.props.initialShowFriendPruningTooltip or not v26.props.analytics) then
        v26.props.analytics:impressionEvent(v8.FriendPruningTooltipSeen, {
            friendCount = tostring(v26.props.friendCount),
            inactiveFriendCount = tostring(v26.props.inactiveFriendCount)
        });
    end;
end;
v17.didUpdate = function(v27)
    v27:setState({
        showFriendPruningTooltip = v27.props.initialShowFriendPruningTooltip and not v27.state.hasDismissedFriendPruningTooltip
    });
end;
v17.render = function(v28)
    return l_withStyle_0(function(_)
        local v30 = l_Images_0["icons/actions/filter"];
        return l_withLocalization_0({
            all = "Feature.Friends.Label.All",
            inactive = "Feature.Friends.Label.FewestInteractions",
            inExperience = "Feature.Friends.Label.InGame",
            tooltipHeader = "Feature.Friends.Label.ManageFriendsList",
            tooltipBody = "Feature.Friends.Label.ManageFriendsListCaption",
            online = "Common.Presence.Label.Online",
            offline = "Common.Presence.Label.Offline"
        })(function(v31)
            local l_filter_0 = v28.props.filter;
            local l_friendCount_0 = v28.props.friendCount;
            local l_isDisabled_0 = v28.props.isDisabled;
            local l_onActivated_0 = v28.props.onActivated;
            local v36 = v28.buildFilterText(l_filter_0, v31, l_friendCount_0);
            local v37 = {
                headerText = v31.tooltipHeader,
                bodyText = v31.tooltipBody
            };
            local v38 = {
                preferredOrientation = l_TooltipOrientation_0.Bottom,
                guiTarget = l_CoreGui_0,
                active = true,
                DisplayOrder = 2
            };
            return l_Roact_0.createElement("Frame", {
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.new(1, 0, 0, 36),
                LayoutOrder = v28.props.layoutOrder,
                BackgroundTransparency = 1
            }, {
                Button = if not v28.state.showFriendPruningTooltip then if v28.props.showFriendPruningAlert then l_Roact_0.createElement(v14, {
                    icon = v30,
                    text = v36,
                    isDisabled = l_isDisabled_0,
                    isSelected = v28.isSelected(l_filter_0),
                    onActivated = l_onActivated_0
                }) else l_Roact_0.createElement(l_Pill_0, {
                    icon = v30,
                    text = v36,
                    isDisabled = l_isDisabled_0,
                    isSelected = v28.isSelected(l_filter_0),
                    onActivated = l_onActivated_0
                }) else l_withStyle_0(function(v39)
                    return l_withTooltip_0(v37, v38, function(v40)
                        local l_Font_0 = v39.Font;
                        return l_Roact_0.createElement("Frame", {
                            Size = UDim2.fromOffset(((l_TextService_0:GetTextSize(v36, l_Font_0.CaptionHeader.RelativeSize * l_Font_0.BaseSize, l_Font_0.CaptionHeader.Font, Vector2.new(10000, 10000)).X + 24) + 4) + l_getIconSize_0(l_IconSize_0.Small), 28),
                            LayoutOrder = v28.props.layoutOrder,
                            BackgroundTransparency = 1,
                            [l_Roact_0.Change.AbsoluteSize] = v40,
                            [l_Roact_0.Change.AbsolutePosition] = v40
                        }, {
                            PortalToCoreGui = l_Roact_0.createElement(l_Roact_0.Portal, {
                                target = l_CoreGui_0
                            }, {
                                ScreenGui = l_Roact_0.createElement("ScreenGui", {
                                    ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                                    DisplayOrder = 1
                                }, {
                                    DismissFriendPruningTooltipButton = l_Roact_0.createElement("TextButton", {
                                        ZIndex = 0,
                                        BackgroundTransparency = 1,
                                        Size = UDim2.fromScale(1, 1),
                                        Text = "",
                                        [l_Roact_0.Event.Activated] = v28.dismissFriendPruningTooltip,
                                        [l_Roact_0.Event.TouchSwipe] = v28.dismissFriendPruningTooltip,
                                        [l_Roact_0.Event.MouseWheelForward] = v28.dismissFriendPruningTooltip,
                                        [l_Roact_0.Event.MouseWheelBackward] = v28.dismissFriendPruningTooltip
                                    })
                                })
                            }),
                            FilterByButtonPillPossiblyWithAlert = if not v28.props.showFriendPruningAlert then l_Roact_0.createElement(l_Pill_0, {
                                icon = v30,
                                text = v36,
                                isDisabled = l_isDisabled_0,
                                isSelected = v28.isSelected(l_filter_0),
                                onActivated = l_onActivated_0
                            }) else l_Roact_0.createElement(v14, {
                                icon = v30,
                                text = v36,
                                isDisabled = l_isDisabled_0,
                                isSelected = v28.isSelected(l_filter_0),
                                onActivated = l_onActivated_0
                            })
                        });
                    end);
                end)
            });
        end);
    end);
end;
return v17;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_UIBlox_0 = v2.UIBlox;
local l_t_0 = v2.t;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_PlayerTile_0 = l_UIBlox_0.App.Tile.PlayerTile;
local l_withLocalization_0 = v2.withLocalization;
local v9 = require(l_Parent_0.UserProfiles);
local l_getFFlagVerifiedBadgeInFriendsLanding_0 = v2.getFFlagVerifiedBadgeInFriendsLanding;
local v11 = require(l_script_FirstAncestor_0.Friends.userPresenceText);
local v12 = require(l_script_FirstAncestor_0.Friends.userPresenceIcon);
local v13 = require(l_script_FirstAncestor_0.Friends.getCorrectUserPresence);
local l_memoize_0 = v2.memoize;
local v15 = require(script.Parent.createRelevancyInfo);
local v16 = l_Roact_0.PureComponent:extend("FriendTile");
local v17 = require(l_script_FirstAncestor_0.Flags.getFriendsLandingUserProfileApiEnabled);
local function v18()
    return function()
    end;
end;
v16.validateProps = l_t_0.strictInterface({
    user = l_t_0.table,
    index = l_t_0.number,
    openPlayerProfile = l_t_0.optional(l_t_0.callback),
    isLuobu = l_t_0.optional(l_t_0.boolean),
    pageLoadingTimeReport = l_t_0.optional(l_t_0.callback),
    buttons = l_t_0.optional(l_t_0.array(l_t_0.strictInterface({
        icon = l_t_0.optional(l_t_0.string),
        onActivated = l_t_0.optional(l_t_0.callback),
        isSecondary = l_t_0.optional(l_t_0.boolean),
        isDisabled = l_t_0.optional(l_t_0.boolean)
    }))),
    userProfile = l_t_0.optional(l_t_0.table),
    isPlayerContextualMenuEnabled = l_t_0.optional(l_t_0.boolean),
    selected = l_t_0.optional(l_t_0.boolean),
    focusGuiObject = l_t_0.optional(l_t_0.callback)
});
v16.defaultProps = {
    user = {
        username = ""
    },
    openPlayerProfile = v18,
    isLuobu = false,
    index = 1,
    buttons = nil,
    isPlayerContextualMenuEnabled = false
};
v16.init = function(v19)
    v19.state = {
        isFirstRender = true
    };
    v19.makeRelevancyInfo = l_memoize_0(v15);
    v19.playerTileRef = l_Roact_0.createRef();
    v19.openPlayerProfile = not v19.props.isPlayerContextualMenuEnabled and function(v20, v21)
        local l_user_0 = v19.props.user;
        if not v20 or not v21 then
            return v19.props.openPlayerProfile(l_user_0.id, v19.props.index, l_user_0);
        else
            return v19.props.openPlayerProfile(l_user_0.id, v19.props.index, l_user_0, v20, v21);
        end;
    end or function(_, _)
        return v19.props.openPlayerProfile(v19.props.user);
    end;
    v19.openPlayerProfileForRelevancyInfo = function(v25, v26)
        return function()
            return v19.openPlayerProfile(v25, v26);
        end;
    end;
    v19.checkAndSetSelected = function()
        if not (not v19.props.selected or not v19.props.focusGuiObject) then
            local v27 = v19.playerTileRef:getValue();
            if v27 then
                v19.props.focusGuiObject(v27);
            end;
        end;
    end;
end;
v16.didMount = function(v28)
    if v28.props.pageLoadingTimeReport then
        v28.props.pageLoadingTimeReport();
    end;
    v28.checkAndSetSelected();
end;
v16.render = function(v29)
    local l_user_1 = v29.props.user;
    local v31 = v13(l_user_1);
    local v32 = v11[v31];
    local v33 = v12[v31];
    local v34 = nil;
    local v35 = nil;
    local v36 = v29.playerTileRef:getValue();
    if not v36 then
        v29:setState({
            isFirstRender = false
        });
    else
        v34 = v36.AbsoluteSize;
        v35 = v36.AbsolutePosition;
    end;
    return l_withStyle_0(function(v37)
        return l_withLocalization_0({
            presenceText = v32,
            accountDeletedText = "Feature.Friends.Action.AccountDeleted"
        })(function(v38)
            local v39 = v38.presenceText or nil;
            local l_accountDeletedText_0 = v38.accountDeletedText;
            local v41 = nil;
            local v42 = nil;
            if not (not v17() or not v29.props.userProfile) then
                v41 = v29.props.userProfile.names.combinedName;
                v42 = v9.Formatters.formatUsername(v29.props.userProfile.names.username);
            end;
            local v43 = if not not v17() and v41 then v41 else l_user_1.displayName;
            local v44 = if not not v17() and v42 then v42 else "@" .. l_user_1.username;
            local v45 = if not v17() or v41 then v29.makeRelevancyInfo(l_user_1, v39, v33, v29.openPlayerProfileForRelevancyInfo(v34, v35), v37.Theme, v29.props.index, v29.props.isLuobu, v37.Font, l_accountDeletedText_0, true) else nil;
            return l_Roact_0.createElement(l_PlayerTile_0, {
                tileSize = if not v36 then UDim2.fromScale(1, 1) else UDim2.new(0, v34.X, 0, v34.Y),
                thumbnail = l_user_1.thumbnail,
                title = v43,
                subtitle = v44,
                hasVerifiedBadge = if not l_getFFlagVerifiedBadgeInFriendsLanding_0() then nil else l_user_1.hasVerifiedBadge,
                onActivated = v29.openPlayerProfile(v34, v35, v43, v44, v45),
                forwardedRef = v29.playerTileRef,
                buttons = v29.props.buttons,
                Selectable = true,
                relevancyInfo = v45
            });
        end);
    end);
end;
return v16;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.UserProfiles);
local v4 = require(l_Parent_0.Dash);
local v5 = require(script.Parent.FriendTile);
local v6 = require(l_script_FirstAncestor_0.Flags.getFriendsLandingUserProfileApiEnabled);
return function(v7)
    local v8 = nil;
    if v6() then
        v8 = v3.Hooks.useUserProfilesFetch({
            userIds = {
                v7.user.id
            },
            query = v3.Queries.userProfilesCombinedNameAndUsernameByUserIds
        });
    end;
    return v2.createElement(v5, v4.join(v7, {
        userProfile = if not not v6() and v8.data then v8.data.userProfiles[1] else nil
    }));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_UIBlox_0 = v1.UIBlox;
local v3 = require(l_script_FirstAncestor_0.Friends.isUserInGame);
local v4 = require(l_script_FirstAncestor_0.Friends.getCorrectUserPresence);
local v5 = require(l_script_FirstAncestor_0.Enums.NotLocalizedStrings);
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_PresenceType_0 = v1.RoduxPresence.Enums.PresenceType;
local v8 = UDim2.fromOffset(12, 12);
return function(v9, v10, v11, v12, v13, v14, v15, v16, v17, v18)
    local v19 = {};
    local v20 = v4(v9);
    v19.icon = not not v11 and l_Images_0[v11] or nil;
    if v20 == l_PresenceType_0.Online then
        if not v18 then
            v19.iconSize = v8;
        end;
        v19.iconColor = v13.OnlineStatus.Color;
        v19.iconTransparency = v13.OnlineStatus.Transparency;
    end;
    if not v9.isDeleted then
        if not v3(v9) then
            if v9.userPresenceType == l_PresenceType_0.InStudio then
                if v9.lastLocation and v9.lastLocation ~= "" then
                    v19.text = v9.lastLocation;
                else
                    v19.text = not not v15 and v5.StudioPresenceTextLuobu.rawValue() or v5.StudioPresenceTextGlobal.rawValue();
                end;
            else
                v19.text = v10;
            end;
        else
            v19.text = v9.lastLocation;
            v19.onActivated = v12(v9.universeId, v9.id, v14);
        end;
    else
        v19.text = v17;
    end;
    if not (v18 or not v16) then
        v19.fontStyle = not not v3(v9) and v16.CaptionHeader or v16.CaptionBody;
    end;
    return v19;
end;


local l_PresenceType_0 = require(script:FindFirstAncestor("FriendsLanding").dependencies).RoduxPresence.Enums.PresenceType;
return {
    OnlineFriend = {
        displayName = "OnlineFriend",
        gameId = "Game-OoooOO-Id",
        id = "37",
        lastLocation = "LastLocation",
        lastOnline = "LastOnline-OOOoOO",
        placeId = 123,
        rootPlaceId = 234,
        thumbnail = "rbxthumb://type=Avatar&id=37&w=150&h=150",
        universeId = 345,
        userId = 456,
        userPresenceType = l_PresenceType_0.Online,
        username = "username37"
    },
    DeletedFriend = {
        displayName = "DeletedFriend",
        gameId = "Game-OoooOO-Id",
        id = "37",
        lastLocation = "LastLocation",
        lastOnline = "LastOnline-OOOoOO",
        placeId = 123,
        rootPlaceId = 234,
        thumbnail = "rbxthumb://type=Avatar&id=37&w=150&h=150",
        universeId = 345,
        userId = 456,
        userPresenceType = l_PresenceType_0.Offline,
        username = "username37",
        isDeleted = true
    },
    OfflineFriend = {
        displayName = "OfflineFriend",
        gameId = "Game-OoooOO-Id",
        id = "37",
        lastLocation = "LastLocation",
        lastOnline = "LastOnline-OOOoOO",
        placeId = 123,
        rootPlaceId = 234,
        thumbnail = "rbxthumb://type=Avatar&id=37&w=150&h=150",
        universeId = 345,
        userId = 456,
        userPresenceType = l_PresenceType_0.Offline,
        username = "username37"
    },
    InGameFriend = {
        displayName = "InGameFriend",
        gameId = "Game-OoooOO-Id",
        id = "37",
        lastLocation = "LastLocation",
        lastOnline = "LastOnline-OOOoOO",
        placeId = 123,
        rootPlaceId = 234,
        thumbnail = "rbxthumb://type=Avatar&id=37&w=150&h=150",
        universeId = 345,
        userId = 456,
        userPresenceType = l_PresenceType_0.InGame,
        username = "username37"
    },
    InStudioFriend = {
        displayName = "InStudioFriend",
        gameId = "Game-OoooOO-Id",
        id = "37",
        lastLocation = "LastLocation",
        lastOnline = "LastOnline-OOOoOO",
        placeId = 123,
        rootPlaceId = 234,
        thumbnail = "rbxthumb://type=Avatar&id=37&w=150&h=150",
        universeId = 345,
        userId = 456,
        userPresenceType = l_PresenceType_0.InStudio,
        username = "username37"
    },
    InGameWithoutLastLocationFriend = {
        displayName = "InGameWithoutLastLocationFriend",
        gameId = "Game-OoooOO-Id",
        id = "37",
        lastLocation = "",
        lastOnline = "LastOnline-OOOoOO",
        placeId = 123,
        rootPlaceId = 234,
        thumbnail = "rbxthumb://type=Avatar&id=37&w=150&h=150",
        universeId = 345,
        userId = 456,
        userPresenceType = l_PresenceType_0.InGame,
        username = "username37"
    },
    InStudioWithoutLastLocationFriend = {
        displayName = "InStudioWithoutLastLocationFriend",
        gameId = "Game-OoooOO-Id",
        id = "37",
        lastLocation = "",
        lastOnline = "LastOnline-OOOoOO",
        placeId = 123,
        rootPlaceId = 234,
        thumbnail = "rbxthumb://type=Avatar&id=37&w=150&h=150",
        universeId = 345,
        userId = 456,
        userPresenceType = l_PresenceType_0.InStudio,
        username = "username37"
    }
};


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local v1 = require(script.Parent);
local l_Roact_0 = v0.Roact;
local l_llama_0 = v0.llama;
local v4 = require(script.Parent.friendsWithPresence);
return function(v5)
    return l_Roact_0.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        frame = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(0, 150, 0, 0),
            BackgroundTransparency = 1
        }, {
            layout = l_Roact_0.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal,
                Padding = UDim.new(0, 6)
            }),
            OnlineFriend = l_Roact_0.createElement(v1, l_llama_0.Dictionary.join(v5, {
                user = v4.OnlineFriend
            })),
            DeletedFriend = l_Roact_0.createElement(v1, l_llama_0.Dictionary.join(v5, {
                user = v4.DeletedFriend
            })),
            OfflineFriend = l_Roact_0.createElement(v1, l_llama_0.Dictionary.join(v5, {
                user = v4.OfflineFriend
            })),
            InGameFriend = l_Roact_0.createElement(v1, l_llama_0.Dictionary.join(v5, {
                user = v4.InGameFriend
            })),
            InGameWithoutLastLocationFriend = l_Roact_0.createElement(v1, l_llama_0.Dictionary.join(v5, {
                user = v4.InGameWithoutLastLocationFriend
            })),
            InStudioFriend = l_Roact_0.createElement(v1, l_llama_0.Dictionary.join(v5, {
                user = v4.InStudioFriend
            })),
            InStudioWithoutLastLocationFriend = l_Roact_0.createElement(v1, l_llama_0.Dictionary.join(v5, {
                user = v4.InStudioWithoutLastLocationFriend
            }))
        })
    });
end;


local l_FriendsNetworking_0 = require(script:FindFirstAncestor("FriendsLanding").dependencies).FriendsNetworking;
return function(v1)
    return {
        fetchFriends = function(v2)
            return v1(l_FriendsNetworking_0.GetFriendsFromUserId.API(v2));
        end,
        getFriendRequestsCount = function()
            return v1(l_FriendsNetworking_0.GetFriendRequestsCount.API());
        end,
        getInactiveFriends = function(v3)
            return v1(l_FriendsNetworking_0.GetInactiveFriends.API(v3));
        end,
        unfriendTargetUser = function(v4)
            return v1(l_FriendsNetworking_0.UnfriendTargetUserId.API(v4));
        end
    };
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").Friends.mapToUsers);
return function(v1, _)
    return {
        localUserId = v1.LocalUserId,
        friends = v0(v1)(v1.LocalUserId)
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_withLocalization_0 = v1.withLocalization;
local l_ContextualMenu_0 = l_UIBlox_0.App.Menu.ContextualMenu;
local l_MenuDirection_0 = l_UIBlox_0.App.Menu.MenuDirection;
local v8 = require(l_script_FirstAncestor_0.FriendsLandingContext);
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local v10 = require(l_script_FirstAncestor_0.Components.FriendsLandingContainer.mapStateToProps);
local l_RoactRodux_0 = v1.RoactRodux;
local l_compose_0 = v1.SocialLibraries.RoduxTools.compose;
local l_FriendsNetworking_0 = v1.FriendsNetworking;
local v14 = require(l_script_FirstAncestor_0.EnumScreens);
local l_memoize_0 = v1.memoize;
local l_Otter_0 = v1.Otter;
local v17 = l_Roact_0.PureComponent:extend("FriendsLandingContextualMenu");
local v18 = {
    motorCallback = l_Otter_0.instant,
    open = {
        targetValue = 1
    },
    close = {
        targetValue = 0
    }
};
v17.init = function(v19)
    v19.onClose = function()
        if v19.props.navigation then
            v19.props.navigation.goBack();
        end;
    end;
    v19.onUnfriend = l_memoize_0(function(v20, v21)
        v19.props.navigation.navigate(v14.GenericToast, {
            toastProps = {
                toastContent = {
                    toastTitle = v20,
                    iconImage = v21
                }
            }
        });
    end);
    v19.onActivated = l_memoize_0(function(v22, v23)
        return function()
            local l_userId_0 = v19.props.navigation.state.params.userId;
            if l_userId_0 ~= nil then
                v19.props.unfriendTargetUserId({
                    targetUserId = l_userId_0,
                    currentUserId = v19.props.localUserId
                }):andThen(function()
                    v19.onUnfriend(v22, l_Images_0["icons/actions/friends/friendRemove"]);
                end):catch(function()
                    v19.onUnfriend(v23);
                end);
            end;
            v19.onClose();
        end;
    end);
end;
v17.render = function(v25)
    return l_withStyle_0(function(_)
        return l_withLocalization_0({
            unfriend = "Feature.Friends.Action.Unfriend",
            error = "Feature.Toast.NetworkingError.SomethingIsWrong",
            success = "Feature.Friends.Action.FriendRemoved"
        })(function(v27)
            return l_Roact_0.createElement(l_ContextualMenu_0, {
                buttonProps = {
                    {
                        icon = l_Images_0["icons/actions/friends/friendRemove"],
                        text = v27.unfriend,
                        onActivated = v25.onActivated(v27.success, v27.error)
                    }
                },
                open = true,
                menuDirection = l_MenuDirection_0.Up,
                openPositionY = UDim.new(1, -24),
                screenSize = v25.props.screenSize,
                onDismiss = v25.onClose,
                closeBackgroundVisible = false,
                motorOverrideOptions = v18
            });
        end);
    end);
end;
return l_compose_0(l_RoactRodux_0.connect(v10, function(v28)
    return {
        unfriendTargetUserId = function(v29)
            return v28(l_FriendsNetworking_0.UnfriendTargetUserId.API(v29));
        end
    };
end), v8.connect(function(v30, _)
    return {
        screenSize = v30.screenSize
    };
end))(v17);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Roact_0 = require(l_script_FirstAncestor_0.dependencies).Roact;
local v2 = require(l_script_FirstAncestor_0.Navigator);
local v3 = require(l_script_FirstAncestor_0.Components.FriendsLandingEntryPoint);
return function(v4)
    assert(type(v4.with) == "function", "Expect parentContext to have with");
    local v5 = l_Roact_0.Component:extend("FriendsLandingEntryPointWithParentContext");
    v5.render = function(v6)
        local v7 = v6.props.navigation.getParam("EntryPage");
        return v4.with(function(v8)
            return l_Roact_0.createElement(v3, {
                navigation = v6.props.navigation,
                navigateToLuaAppPages = v8.navigateToLuaAppPages,
                luaAppPages = v8.luaAppPages,
                friendsRequestEventListener = v8.friendsRequestEventListener,
                robloxEventReceiver = v8.robloxEventReceiver,
                getLoadingTimeInfo = v8.getNavigatingFromSocialTabEvent,
                entryPage = v7,
                luaAddFriendsPageEnabled = v8.luaAddFriendsPageEnabled,
                contactImporterAndPYMKEnabled = v8.contactImporterAndPYMKEnabled or nil,
                diagService = v8.diagService,
                eventIngestService = v8.eventIngestService,
                openProfilePeekView = v8.openProfilePeekView,
                wideMode = v8.wideMode,
                passedNavParams = v6.props.navigation.state.params,
                openPlayerContextualMenu = v8.openPlayerContextualMenu
            });
        end);
    end;
    v5.router = v2.router;
    return v5;
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local l_RoduxNetworking_0 = v0.RoduxNetworking;
local l_Promise_0 = v0.Promise;
local l_t_0 = v0.t;
local l_NetworkStatus_0 = l_RoduxNetworking_0.Enum.NetworkStatus;
local l_FriendsNetworking_0 = v0.FriendsNetworking;
local v6 = l_t_0.strictInterface({
    localUserId = l_t_0.string,
    inactiveFriendsNetworkRequestStatus = l_t_0.string,
    onResolve = l_t_0.union(l_t_0.callback, l_t_0.table),
    onError = l_t_0.union(l_t_0.callback, l_t_0.table)
});
return function(v7)
    return {
        refreshPageData = function(v8)
            assert(v6(v8));
            return l_Promise_0.all({
                v7(l_FriendsNetworking_0.GetFriendsFromUserId.API(v8.localUserId)),
                v7(l_FriendsNetworking_0.GetFriendRequestsCount.API()),
                v7(function(_)
                    if not (v8.inactiveFriendsNetworkRequestStatus ~= l_NetworkStatus_0.NotStarted) or v8.inactiveFriendsNetworkRequestStatus == l_NetworkStatus_0.Failed then
                        return v7(l_FriendsNetworking_0.GetInactiveFriends.API(v8.localUserId));
                    else
                        return l_Promise_0.resolve();
                    end;
                end)
            }):andThen(v8.onResolve):catch(v8.onError);
        end,
        getFriendRequestsCount = function()
            return v7(l_FriendsNetworking_0.GetFriendRequestsCount.API());
        end
    };
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local l_getDeepValue_0 = v0.SocialLibraries.Dictionary.getDeepValue;
local l_FriendsNetworking_0 = v0.FriendsNetworking;
return function(v3)
    local v4 = l_getDeepValue_0(v3, string.format("FriendsLanding.Friends.byUserId.%s", v3.LocalUserId));
    return {
        localUserId = v3.LocalUserId,
        screenSize = v3.ScreenSize,
        inactiveFriendsNetworkRequestStatus = l_FriendsNetworking_0.GetInactiveFriends.getStatus(v3, v3.LocalUserId),
        friendRequestCount = l_getDeepValue_0(v3, "FriendsLanding.Friends.requests.receivedCount") or 0,
        totalFriendCount = not not v4 and #v4 or 0
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_UIBlox_0 = v1.UIBlox;
local l_Roact_0 = v1.Roact;
local l_memoize_0 = v1.memoize;
local l_TextService_0 = v1.TextService;
local l_withLocalization_0 = v1.withLocalization;
local l_PartialPageModal_0 = l_UIBlox_0.App.Dialog.Modal.PartialPageModal;
local l_SmallRadioButtonGroup_0 = l_UIBlox_0.App.Cell.Small.SelectionGroup.SmallRadioButtonGroup;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_Badge_0 = l_UIBlox_0.App.Indicator.Badge;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_compose_0 = v1.SocialLibraries.RoduxTools.compose;
local v13 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics);
local v14 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics.ButtonClickEvents);
local v15 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics.ImpressionEvents);
local v16 = require(l_script_FirstAncestor_0.FriendsLandingContext);
local v17 = require(l_script_FirstAncestor_0.Friends.makeFilterButtons);
local v18 = require(l_script_FirstAncestor_0.Friends.filterStates);
local v19 = require(script.navigationParamKeys);
local v20 = l_Roact_0.PureComponent:extend("FriendsLandingFilter");
v20.defaultProps = {
    analytics = nil,
    navigation = nil
};
v20.init = function(v21)
    v21.state = {
        selectedValue = v21.props.filter
    };
    v21.onClose = function()
        v21.props.navigation.goBack();
    end;
    v21.onApply = l_memoize_0(function(v22)
        return function()
            v21.props.analytics:buttonClick(v14.FriendFilterApply, {
                filter = v21.state.selectedValue
            });
            v22(v21.state.selectedValue);
            v21.onClose();
            if v21.state.selectedValue == v18.Inactive then
                v21.onFewestInteractionsSelection()();
            end;
        end;
    end);
    v21.setSelectedValue = function(v23)
        v21:setState({
            selectedValue = v23
        });
    end;
    v21.onCurrentSelected = function(v24)
        return v24 == v21.state.selectedValue;
    end;
    v21.getAlertPlacement = function(v25, v26, v27, v28)
        local v29 = 0;
        local v30 = "";
        for v31, v32 in ipairs(v26) do
            if v32.id == v25 then
                v29 = v31;
                v30 = v32.text;
                break;
            end;
        end;
        assert(v29 ~= 0, "getAlertPlacement expects alertFilterId to have an entry in filterButtons");
        return UDim2.fromOffset((24 + l_TextService_0:GetTextSize(v30, v28.Header2.RelativeSize * v28.BaseSize, v28.Header2.Font, Vector2.new(10000, 10000)).X) + 12, (v29 - 1) * 57 + math.floor(28 - v27 / 2));
    end;
    v21.showFriendPruningAlert = function()
        if not v21.props.navigation.getParam then
            return nil;
        else
            return (v21.props.navigation.getParam(v19.ShowFriendPruningAlert));
        end;
    end;
    v21.showInactiveFilterOption = function()
        if not v21.props.navigation.getParam then
            return nil;
        else
            return (v21.props.navigation.getParam(v19.ShowInactiveFilterOption));
        end;
    end;
    v21.onFewestInteractionsSelection = function()
        if not v21.props.navigation.getParam then
            return nil;
        else
            return (v21.props.navigation.getParam(v19.OnFewestInteractionsSelection));
        end;
    end;
end;
v20.didMount = function(v33)
    if not (not v33.showInactiveFilterOption() or not v33.showFriendPruningAlert()) then
        v33.props.analytics:impressionEvent(v15.FriendPruningNewBadgeSeen, {
            friendCount = tostring(if not not v33.props.navigation and v33.props.navigation.getParam then v33.props.navigation.getParam(v19.FriendCount) else 0),
            inactiveFriendCount = tostring(if not not v33.props.navigation and v33.props.navigation.getParam then v33.props.navigation.getParam(v19.InactiveFriendCount) else 0)
        });
    end;
end;
v20.render = function(v34)
    return l_withStyle_0(function(v35)
        return l_withLocalization_0({
            apply = "CommonUI.Messages.Action.Apply",
            all = "Feature.Friends.Label.All",
            inactive = "Feature.Friends.Label.FewestInteractions",
            inExperience = "Feature.Friends.Label.InGame",
            online = "Common.Presence.Label.Online",
            offline = "Common.Presence.Label.Offline",
            filterBy = "Feature.Friends.Heading.FilterBy",
            upsellNew = "Feature.Catalog.Label.New"
        })(function(v36)
            local v37 = v17(v36, v34.showInactiveFilterOption());
            return l_Roact_0.createElement(l_PartialPageModal_0, {
                title = v36.filterBy,
                screenSize = v34.props.screenSize,
                onCloseClicked = v34.onClose,
                marginSize = 0,
                buttonStackProps = {
                    buttons = {
                        {
                            buttonType = l_ButtonType_0.PrimarySystem,
                            props = {
                                isDisabled = v34.onCurrentSelected(v34.props.filter),
                                onActivated = v34.onApply(v34.props.setFilterKeys),
                                text = v36.apply
                            }
                        }
                    }
                }
            }, {
                ButtonContainer = l_Roact_0.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 58 * #v37 + 20),
                    BackgroundTransparency = 1
                }, {
                    RadioButtons = l_Roact_0.createElement(l_SmallRadioButtonGroup_0, {
                        onActivated = v34.setSelectedValue,
                        selectedValue = v34.state.selectedValue,
                        items = v37
                    }),
                    InactiveFriendsAlert = if not v34.showFriendPruningAlert() then nil else l_Roact_0.createElement(l_Badge_0, {
                        position = v34.getAlertPlacement(v18.Inactive, v37, 24, v35.Font),
                        value = v36.upsellNew
                    })
                })
            });
        end);
    end);
end;
return l_compose_0(v13.connect(function(v38)
    return {
        analytics = v38
    };
end), v16.connect(function(v39, _)
    return {
        filter = v39.filter,
        screenSize = v39.screenSize,
        setFilterKeys = v39.setFilterKeys
    };
end))(v20);


return {
    FriendCount = "friendCount",
    InactiveFriendCount = "inactiveFriendCount",
    OnFewestInteractionsSelection = "onFewestInteractionsSelection",
    ShowFriendPruningAlert = "showFriendPruningAlert",
    ShowInactiveFilterOption = "showInactiveFilterOption"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_HeaderBar_0 = require(l_script_FirstAncestor_0.dependencies).UIBlox.App.Bar.HeaderBar;
local l_useUiModeInfo_0 = require(l_Parent_0.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = require(l_Parent_0.RobloxAppEnums).UiMode;
local v5 = require(l_script_FirstAncestor_0.Common.Constants);
local v6 = require(l_Parent_0.React);
return function(v7)
    if not (l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot) then
        return v6.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v5.TOP_BAR_HEIGHT),
            LayoutOrder = -1,
            ZIndex = 2
        }, {
            headerBar = v6.createElement(l_HeaderBar_0, {
                title = v7.title,
                barHeight = v5.TOP_BAR_HEIGHT,
                renderLeft = v7.renderLeft,
                renderCenter = v7.renderCenter,
                renderRight = v7.renderRight,
                isSecondary = v7.isSecondary,
                shouldHideSecondaryLeftItem = v7.shouldHideSecondaryLeftItem
            })
        });
    else
        return nil;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_UIBlox_0 = v2.UIBlox;
local l_withLocalization_0 = v2.withLocalization;
local l_Actions_0 = v2.RoactNavigation.Actions;
local v7 = require(l_script_FirstAncestor_0.FriendsLandingContext);
local v8 = require(l_script_FirstAncestor_0.EnumScreens);
local v9 = require(script.FriendsLandingHeaderBarPresentational);
local l_HeaderBar_0 = l_UIBlox_0.App.Bar.HeaderBar;
local l_AppHeaderBar_0 = v2.AppHeaderBar;
local v12 = require(l_script_FirstAncestor_0.Navigator.getActiveChildNavigationOptionsSafely);
local l_GetFFlagUIBloxUseNewHeaderBar_0 = require(l_Parent_0.SharedFlags).UIBlox.GetFFlagUIBloxUseNewHeaderBar;
local v14 = l_Roact_0.PureComponent:extend("FriendsLandingHeaderBar");
v14.init = function(v15)
    v15.renderLeft = function(v16, v17, v18)
        if not v18 then
            return (if not l_GetFFlagUIBloxUseNewHeaderBar_0() then l_HeaderBar_0.renderLeft.backButton else l_AppHeaderBar_0.makeBackButton)(function()
                if not (v16.state.index == 1) or not v17 then
                    v16.dispatch(l_Actions_0.back());
                    return ;
                else
                    v17();
                    return ;
                end;
            end);
        else
            return function()
                return nil;
            end;
        end;
    end;
end;
v14.render = function(v19)
    return v7.with(function(v20)
        local l_navigation_0 = v19.props.navigation;
        local v22 = v12(l_navigation_0);
        local v23 = not not v20 and v20.exitFriendsLanding or nil;
        local l_headerText_0 = v22.headerText;
        local v25 = v20.getScreenTopBar(v8.FriendsLanding);
        return l_withLocalization_0({
            titleText = l_headerText_0.raw
        })(function(v26)
            local l_titleText_0 = v26.titleText;
            if not v20.addFriendsPageSearchbarEnabled then
                return l_Roact_0.createElement(v9, {
                    title = l_titleText_0,
                    renderLeft = not v25.shouldRenderCenter and v22.renderLeft or v19.renderLeft(l_navigation_0, v23, v25.shouldRenderCenter),
                    renderCenter = not not v25.shouldRenderCenter and v22.renderCenter or nil,
                    renderRight = v22.renderRight
                });
            else
                return l_Roact_0.createElement(v9, {
                    title = l_titleText_0,
                    renderLeft = not v25.shouldRenderCenter and v22.renderLeft or v19.renderLeft(l_navigation_0, v23, v25.shouldRenderCenter),
                    renderCenter = if not v25.shouldRenderCenter then nil else v22.renderCenter,
                    renderRight = v22.renderRight,
                    isSecondary = v22.useSecondaryHeader,
                    shouldHideSecondaryLeftItem = v25.shouldRenderCenter
                });
            end;
        end);
    end);
end;
return v14;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_useStyle_0 = v1.UIBlox.Core.Style.useStyle;
local l_useLocalization_0 = v1.Hooks.useLocalization;
local l_TenFootUiGridCarouselHeader_0 = require(l_Parent_0.TenFootUiSharedComponents).TenFootUiGridCarouselHeader;
local v6 = require(l_Parent_0.React);
return function(v7)
    return v6.createElement("Frame", {
        BackgroundTransparency = 1,
        LayoutOrder = v7.LayoutOrder,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.new(1, 0, 0, 0)
    }, {
        Padding = v6.createElement("UIPadding", {
            PaddingTop = UDim.new(0, l_useStyle_0().Tokens.Global.Space_500)
        }),
        Layout = v6.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        GridHeader = v6.createElement(l_TenFootUiGridCarouselHeader_0, {
            text = ("%* (%*)"):format(l_useLocalization_0({
                friends = "CommonUI.Features.Label.Friends"
            }).friends, (tostring(v7.friendCount or 0)))
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Roact_0 = require(l_script_FirstAncestor_0.dependencies).Roact;
local v2 = require(l_script_FirstAncestor_0.Enums.LocalizedKeys);
local v3 = require(l_script_FirstAncestor_0.Components.HeaderBarRightView);
local v4 = require(l_script_FirstAncestor_0.Components.HeaderBarCenterView);
local v5 = require(l_script_FirstAncestor_0.Flags.getFFlagNewHeaderBarForFriendsLandingEnabled);
return function(v6)
    return {
        headerText = {
            raw = v2.FriendsHeader.rawValue(),
            shouldLocalize = true
        },
        useSecondaryHeader = not not v5() or nil,
        shouldExitNavigation = false,
        tabBarVisible = false,
        renderRight = function()
            return l_Roact_0.createElement(v3, v6);
        end,
        renderCenter = function()
            return l_Roact_0.createElement(v4, v6);
        end,
        transparent = true,
        absorbInputSelectable = false
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Roact_0 = require(l_script_FirstAncestor_0.dependencies).Roact;
local v2 = require(l_script_FirstAncestor_0.EnumScreens);
local v3 = require(l_script_FirstAncestor_0.FriendsLandingContext);
local v4 = require(l_script_FirstAncestor_0.Components.FriendsLandingContainer);
local v5 = l_Roact_0.PureComponent:extend("FriendsLandingScreen");
v5.defaultProps = {
    friends = {}
};
v5.render = function(v6)
    return v3.with(function(v7)
        return l_Roact_0.createElement(v4, {
            navigation = v6.props.navigation,
            filterText = v7.getScreenTopBar(v2.FriendsLanding).filterText,
            setScreenTopBar = v7.setScreenTopBar
        });
    end);
end;
return v5;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_UIBlox_0 = v2.UIBlox;
local v5 = require(l_script_FirstAncestor_0.EnumScreens);
local l_withLocalization_0 = v2.withLocalization;
local v7 = require(l_script_FirstAncestor_0.FriendsLandingContext);
local v8 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics.PlayerSearchEvent);
local l_SocialLibraries_0 = v2.SocialLibraries;
local l_getDeepValue_0 = l_SocialLibraries_0.Dictionary.getDeepValue;
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local l_ImageSetButton_0 = l_UIBlox_0.Core.ImageSet.ImageSetButton;
local l_UserSearchBar_0 = v2.SocialCommon.Components.UserSearchBar.UserSearchBar;
local v14 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics);
local l_Sources_0 = require(l_Parent_0.SocialLuaAnalytics).Analytics.Enums.Sources;
local v16 = l_Roact_0.PureComponent:extend("HeaderBarCenterView");
local l_FFlagDisableAutocorrectSocialUserSearch_0 = require(l_Parent_0.SharedFlags).FFlagDisableAutocorrectSocialUserSearch;
v16.init = function(v18)
    v18.state = {
        filterText = ""
    };
    v18.goToUserSearch = function(v19)
        local l_navigation_0 = v18.props.navigation;
        v8(v18.props.analytics, "submit", {
            kwd = v18.state.filterText,
            source = v19
        });
        if l_navigation_0.state.routeName == v5.SearchFriends then
            l_navigation_0.replace(v5.SearchFriends, {
                searchText = v18.state.filterText,
                userSearchSource = v19
            });
            return ;
        else
            v18.props.analytics:navigate(v5.SearchFriends);
            l_navigation_0.push(v5.SearchFriends, {
                searchText = v18.state.filterText,
                userSearchSource = v19
            });
            return ;
        end;
    end;
end;
v16.render = function(v21)
    return v7.with(function(v22)
        local v23 = v22.getScreenTopBar(v5.FriendsLanding);
        local l_navigation_1 = v21.props.navigation;
        local v25 = (l_navigation_1 and l_navigation_1.state) and l_navigation_1.state.routeName;
        local v26 = nil;
        if not l_getDeepValue_0(l_navigation_1 or {}, "state.params.userSearchSource") then
            if not l_getDeepValue_0(v22, "passedNavParams.userSearchSource") then
                if v25 == v5.FriendsLanding then
                    v26 = l_Sources_0.FriendsLanding;
                end;
            else
                v26 = v22.passedNavParams.userSearchSource;
            end;
        else
            v26 = l_navigation_1.state.params.userSearchSource;
        end;
        if not v22.addFriendsPageSearchbarEnabled then
            if not v23.shouldRenderCenter then
                return nil;
            end;
        elseif v23.shouldRenderCenter then
            if v25 == v5.AddFriends then
                v22.setScreenTopBar(v5.FriendsLanding, {
                    shouldRenderCenter = false
                });
                return nil;
            end;
        else
            return nil;
        end;
        return l_withLocalization_0({
            searchPlaceholderText = not v22.addFriendsPageSearchbarEnabled and "Feature.Chat.Label.SearchWord" or "Feature.AddFriends.Label.InputPlaceholder.SearchForPeople",
            cancelText = "Feature.Chat.Action.Cancel"
        })(function(v27)
            return l_Roact_0.createElement(l_ImageSetButton_0, {
                Size = if not not v22.addFriendsPageSearchbarEnabled and v22.wideMode then UDim2.new(0, 400, 1, 0) else UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1
            }, {
                filterBox = l_Roact_0.createElement(l_UserSearchBar_0, {
                    analytics = v21.props.analytics,
                    initialInputText = v23.filterText,
                    cancelText = v27.cancelText,
                    searchPlaceholderText = v27.searchPlaceholderText,
                    captureFocusOnMount = v23.shouldAutoFocusCenter,
                    onSelectCallback = v23.closeInputBar or function()
                    end,
                    resetOnMount = function()
                        v22.setScreenTopBar(v5.FriendsLanding, {
                            shouldAutoFocusCenter = false
                        });
                    end,
                    cancelCallback = function()
                        v21:setState({
                            filterText = ""
                        });
                        v22.setScreenTopBar(v5.FriendsLanding, {
                            shouldRenderCenter = false
                        });
                        v8(v21.props.analytics, "cancel", {
                            source = v26
                        });
                    end,
                    textChangedCallback = function(v28)
                        v21:setState({
                            filterText = v28
                        });
                    end,
                    focusChangedCallback = function(v29, v30)
                        if not (not (v29 == false) or not v30) then
                            v21.goToUserSearch(v26);
                        end;
                    end,
                    returnPressedFromOnScreenKeyboardCallback = if not l_FFlagDisableAutocorrectSocialUserSearch_0 then nil else function()
                        v21.goToUserSearch(v26);
                    end
                })
            });
        end);
    end);
end;
return l_compose_0(v14.connect(function(v31)
    return {
        analytics = v31
    };
end))(v16);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_SocialLibraries_0 = v2.SocialLibraries;
local l_Roact_0 = v2.Roact;
local l_UIBlox_0 = v2.UIBlox;
local v6 = require(l_script_FirstAncestor_0.FriendsLandingContext);
local v7 = require(l_script_FirstAncestor_0.EnumScreens);
local v8 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics);
local v9 = require(l_script_FirstAncestor_0.Components.AddFriendsIcon);
local l_memoize_0 = v2.memoize;
local l_IconButton_0 = l_UIBlox_0.App.Button.IconButton;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local v13 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics.ButtonClickEvents);
local v14 = require(l_script_FirstAncestor_0.FriendsLandingAnalytics.PlayerSearchEvent);
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local l_getDeepValue_0 = l_SocialLibraries_0.Dictionary.getDeepValue;
local l_Sources_0 = require(l_Parent_0.SocialLuaAnalytics).Analytics.Enums.Sources;
local function v19(v18)
    return l_Roact_0.createElement(l_IconButton_0, {
        size = UDim2.fromOffset(0, 0),
        icon = l_Images_0["icons/common/search"],
        layoutOrder = v18.layoutOrder,
        onActivated = v18.goToSearchFriendsPage
    });
end;
local v20 = {
    SHOW_ADDFRIENDS_ICON = {
        [v7.FriendsLanding] = true,
        [v7.SearchFriends] = true
    },
    SHOW_SEARCHFRIENDS_ICON = {
        [v7.FriendsLanding] = true,
        [v7.SearchFriends] = true,
        [v7.AddFriends] = true
    }
};
local v21 = l_Roact_0.PureComponent:extend("HeaderBarRightView");
v21.defaultProps = {
    layoutOrder = 1,
    onActivated = nil
};
v21.init = function(v22)
    v22.goToFriendRequestsPage = l_memoize_0(function(_, v24)
        return function()
            v22.props.analytics:buttonClick(v24 == 0 and v13.AddFriendsNoFriends or v13.AddFriends);
            v22.props.analytics:navigate(v7.AddFriends);
            return v22.props.navigation.navigate(v7.AddFriends);
        end;
    end);
    v22.goToSearchFriendsPage = l_memoize_0(function(v25)
        return function()
            local l_navigation_0 = v22.props.navigation;
            local v27 = if not not l_navigation_0 and l_navigation_0.state then l_navigation_0.state.routeName else nil;
            local v28 = nil;
            if not l_getDeepValue_0(l_navigation_0 or {}, "state.params.userSearchSource") then
                if not l_getDeepValue_0(v22.props, "passedNavParams.userSearchSource") then
                    if v27 == v7.FriendsLanding then
                        v28 = l_Sources_0.FriendsLanding;
                    end;
                else
                    v28 = v22.props.passedNavParams.userSearchSource;
                end;
            else
                v28 = l_navigation_0.state.params.userSearchSource;
            end;
            v14(v22.props.analytics, "open", {
                source = v28,
                currentRoute = v27
            });
            v25(v7.FriendsLanding, {
                shouldRenderCenter = true,
                shouldAutoFocusCenter = true
            });
        end;
    end);
end;
v21.render = function(v29)
    if not v29.props.getScreenTopBar(v7.FriendsLanding).shouldRenderCenter then
        local l_navigation_1 = v29.props.navigation;
        local v31 = nil;
        local v32 = nil;
        if v29.props.addFriendsPageSearchbarEnabled then
            v20.SHOW_ADDFRIENDS_ICON[v7.SearchFriends] = false;
        end;
        if not (not l_navigation_1 or not l_navigation_1.state) then
            local l_routeName_0 = l_navigation_1.state.routeName;
            v31 = v20.SHOW_SEARCHFRIENDS_ICON[l_routeName_0];
            v32 = v20.SHOW_ADDFRIENDS_ICON[l_routeName_0];
        end;
        return l_Roact_0.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(0, 72, 0, 36)
        }, {
            UIListLayout = l_Roact_0.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Right,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            SearchFriendsIcon = v31 and v19({
                goToSearchFriendsPage = v29.goToSearchFriendsPage(v29.props.setScreenTopBar),
                layoutOrder = 1
            }),
            Padding = l_Roact_0.createElement("Frame", {
                Size = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }),
            AddFriendsIcon = v32 and l_Roact_0.createElement(v9, {
                onActivated = v29.goToFriendRequestsPage(v29.props.navigateToLuaAppPages, v29.props.totalFriendCount),
                layoutOrder = 3,
                friendRequestCount = v29.props.friendRequestCount,
                showTooltip = v29.props.totalFriendCount == 0
            })
        });
    else
        return nil;
    end;
end;
return l_compose_0(v8.connect(function(v34)
    return {
        analytics = v34
    };
end), v6.connect(function(v35, _)
    return {
        getScreenTopBar = v35.getScreenTopBar,
        setScreenTopBar = v35.setScreenTopBar,
        navigateToLuaAppPages = v35.navigateToLuaAppPages,
        friendRequestCount = v35.friendRequestCount,
        totalFriendCount = v35.totalFriendCount,
        luaAddFriendsPageEnabled = v35.luaAddFriendsPageEnabled,
        addFriendsPageSearchbarEnabled = v35.addFriendsPageSearchbarEnabled,
        passedNavParams = v35.passedNavParams
    };
end))(v21);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_React_0 = v2.React;
local l_Dash_0 = v2.Dash;
local l_UIBlox_0 = v2.UIBlox;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_StandardButtonSize_0 = l_UIBlox_0.App.Button.Enum.StandardButtonSize;
local l_Colors_0 = l_UIBlox_0.App.Style.Colors;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local l_StyledTextLabel_0 = l_UIBlox_0.App.Text.StyledTextLabel;
local l_useLocalization_0 = v2.Hooks.useLocalization;
local v15 = require(l_script_FirstAncestor_0.Common.TextKeys);
local v16 = require(l_script_FirstAncestor_0.Common.Constants);
local l_AppFonts_0 = require(l_Parent_0.Style).AppFonts;
local v18 = game:DefineFastFlag("EnableNoFriendsViewPageRenderReport", false);
local v19 = game:DefineFastFlag("FriendsLandingNoFriendsViewUseCustomLabels", false);
local v20 = {
    layoutOrder = 0,
    pageLoadingTimeReport = nil,
    pageRenderReport = nil,
    openAddFriendsPage = l_Dash_0.noop,
    addFriendsBtnLabelKey = if not v19 then nil else v15.ADD_FRIENDS_BTN,
    noFriendsTextLabelKey = if not v19 then nil else v15.NO_FRIENDS_TEXT
};
return function(v21)
    local v22 = l_Dash_0.join(v20, v21 or {});
    l_React_0.useEffect(function()
        if v22.pageLoadingTimeReport then
            v22.pageLoadingTimeReport();
        end;
        if not (not v18 or not v22.pageRenderReport) then
            v22.pageRenderReport();
        end;
    end, {});
    local v23 = nil;
    v23 = if not v19 then l_useLocalization_0({
        addFriendsBtn = v15.ADD_FRIENDS_BTN,
        noFriendsText = v15.NO_FRIENDS_TEXT
    }) else l_useLocalization_0({
        addFriendsBtn = v22.addFriendsBtnLabelKey,
        noFriendsText = v22.noFriendsTextLabelKey,
        noFriendsHeader = v22.noFriendsHeaderKey
    });
    local v24 = l_useStyle_0();
    return l_React_0.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, -(v16.TOP_BAR_HEIGHT + 45)),
        LayoutOrder = v22.layoutOrder,
        BackgroundTransparency = 1
    }, {
        IndicatorInner = l_React_0.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, 0, 0, 0),
            BackgroundTransparency = 1,
            Position = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5)
        }, {
            SidePadding = l_React_0.createElement("UIPadding", {
                PaddingRight = UDim.new(0, 30),
                PaddingLeft = UDim.new(0, 30)
            }),
            UIList = l_React_0.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 15)
            }),
            Imagelabel = l_React_0.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = l_Images_0["icons/graphic/findfriends_xlarge"],
                ImageColor3 = l_Colors_0.White,
                LayoutOrder = 1,
                Size = UDim2.fromOffset(96, 96)
            }),
            Headerlabel = if (not not v19 and v22.noFriendsHeaderKey) and v23.noFriendsHeader then l_React_0.createElement(l_StyledTextLabel_0, {
                text = v23.noFriendsHeader,
                fontStyle = v24.Font.Header1,
                colorStyle = v24.Theme.TextEmphasis,
                automaticSize = Enum.AutomaticSize.Y,
                size = UDim2.new(0, 315, 0, 0),
                textXAlignment = Enum.TextXAlignment.Center,
                textYAlignment = Enum.TextYAlignment.Center,
                layoutOrder = 2
            }) else nil,
            Textlabel = l_React_0.createElement("TextLabel", {
                AutomaticSize = Enum.AutomaticSize.Y,
                TextWrapped = true,
                BackgroundTransparency = 1,
                Font = l_AppFonts_0.default:getDefault(),
                LayoutOrder = 2,
                Size = UDim2.new(0, 315, 0, 0),
                Text = v23.noFriendsText,
                TextColor3 = v24.Theme.TextMuted.Color,
                TextSize = v24.Font.Header2.RelativeSize * v24.Font.BaseSize,
                TextTransparency = v24.Theme.TextMuted.Transparency
            }),
            Padding = l_React_0.createElement("Frame", {
                LayoutOrder = 3,
                BackgroundTransparency = 1,
                Size = UDim2.new(0, 0, 0, 10)
            }),
            AddFriendsButton = l_React_0.createElement(l_Button_0, {
                buttonType = l_ButtonType_0.PrimarySystem,
                layoutOrder = 4,
                text = v23.addFriendsBtn,
                standardSize = l_StandardButtonSize_0.Regular,
                onActivated = v22.openAddFriendsPage
            })
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_t_0 = v2.t;
local l_TextService_0 = v2.TextService;
local l_UIBlox_0 = v2.UIBlox;
local l_IconSize_0 = l_UIBlox_0.App.ImageSet.Enum.IconSize;
local l_getIconSize_0 = l_UIBlox_0.App.ImageSet.getIconSize;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local l_validateImage_0 = l_UIBlox_0.Core.ImageSet.Validator.validateImage;
local l_ControlState_0 = l_UIBlox_0.Core.Control.Enum.ControlState;
local l_Interactable_0 = l_UIBlox_0.Core.Control.Interactable;
local l_Badge_0 = l_UIBlox_0.App.Indicator.Badge;
local l_BadgeStates_0 = l_UIBlox_0.App.Indicator.Enum.BadgeStates;
local l_StyledTextLabel_0 = l_UIBlox_0.App.Text.StyledTextLabel;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_ShimmerPanel_0 = l_UIBlox_0.App.Loading.ShimmerPanel;
local l_FFlagUIBloxUseNewInteractable_0 = require(l_Parent_0.SharedFlags).UIBlox.FFlagUIBloxUseNewInteractable;
local function v24(v19, v20, v21)
    local v22 = v19[v20] or v19[l_ControlState_0.Default];
    local v23 = {
        Color = v21.Theme[v22].Color,
        Transparency = v21.Theme[v22].Transparency
    };
    if not (v20 ~= l_ControlState_0.Disabled) or v20 == l_ControlState_0.Pressed then
        v23.Transparency = 0.5 * v23.Transparency + 0.5;
    end;
    return v23;
end;
local v25 = l_Roact_0.PureComponent:extend("Pill");
v25.validateProps = l_t_0.strictInterface({
    text = l_t_0.optional(l_t_0.string),
    isSelected = l_t_0.optional(l_t_0.boolean),
    isDisabled = l_t_0.optional(l_t_0.boolean),
    isLoading = l_t_0.optional(l_t_0.boolean),
    icon = l_t_0.union(l_t_0.string, l_validateImage_0),
    onActivated = l_t_0.callback
});
v25.init = function(v26)
    v26.state = {
        controlState = l_ControlState_0.Initialize
    };
    v26.onStateChanged = function(_, v28)
        v26:setState({
            controlState = v28
        });
    end;
end;
v25.render = function(v29)
    return l_withStyle_0(function(v30)
        local l_Font_0 = v30.Font;
        local l_isSelected_0 = v29.props.isSelected;
        local l_isDisabled_0 = v29.props.isDisabled;
        local l_isLoading_0 = v29.props.isLoading;
        local l_icon_0 = v29.props.icon;
        local l_text_0 = v29.props.text;
        local l_onActivated_0 = v29.props.onActivated;
        local v38 = {
            [l_ControlState_0.Default] = not l_isSelected_0 and "IconDefault" or "SystemPrimaryContent",
            [l_ControlState_0.Hover] = not l_isSelected_0 and "IconEmphasis" or "SystemPrimaryContent"
        };
        local v39 = {
            [l_ControlState_0.Default] = not l_isSelected_0 and "TextDefault" or "SystemPrimaryContent",
            [l_ControlState_0.Hover] = not l_isSelected_0 and "TextEmphasis" or "SystemPrimaryContent"
        };
        local v40 = {
            [l_ControlState_0.Default] = not l_isSelected_0 and "BackgroundUIDefault" or "SystemPrimaryDefault",
            [l_ControlState_0.Hover] = not l_isSelected_0 and "BackgroundUIDefault" or "SystemPrimaryOnHover"
        };
        local v41 = v24(v38, v29.state.controlState, v30);
        local v42 = v24(v39, v29.state.controlState, v30);
        local v43 = v24(v40, v29.state.controlState, v30);
        local v44 = l_getIconSize_0(l_IconSize_0.Small);
        local v45 = l_Font_0.CaptionHeader.RelativeSize * l_Font_0.BaseSize;
        local l_X_0 = l_TextService_0:GetTextSize(l_text_0, v45, l_Font_0.CaptionHeader.Font, Vector2.new(10000, 10000)).X;
        local v47 = l_X_0 + 24;
        local v48 = 240 - ((32 + v44) + 12);
        if not l_isLoading_0 then
            local l_createElement_0 = l_Roact_0.createElement;
            local l_l_Interactable_0_0 = l_Interactable_0;
            local v53 = {
                Size = UDim2.new(0, ((v47 + 8) + v44) + 12, 0, 28),
                BackgroundColor3 = v43.Color,
                BackgroundTransparency = v43.Transparency,
                AutoButtonColor = false,
                BorderSizePixel = 0,
                LayoutOrder = 1,
                isDisabled = l_isDisabled_0,
                [l_Roact_0.Event.Activated] = not l_isLoading_0 and l_onActivated_0 or nil,
                onStateChanged = not l_FFlagUIBloxUseNewInteractable_0 and function(_, v52)
                    v29:setState({
                        controlState = v52
                    });
                end or v29.onStateChanged
            };
            local v54 = {
                UIListLayout = l_Roact_0.createElement("UIListLayout", {
                    Padding = UDim.new(0, 0),
                    FillDirection = Enum.FillDirection.Horizontal,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                })
            };
            local l_createElement_1 = l_Roact_0.createElement;
            local v56 = "Frame";
            local v57 = {
                Size = UDim2.new(0, ((l_X_0 + 8) + v44) + 12, 1, 0),
                ClipsDescendants = true,
                BackgroundTransparency = 1
            };
            local v58 = {
                UIListLayout = l_Roact_0.createElement("UIListLayout", {
                    Padding = UDim.new(0, 4),
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center
                }),
                Icon = l_Roact_0.createElement(l_ImageSetLabel_0, {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Size = UDim2.fromOffset(v44, v44),
                    BackgroundTransparency = 1,
                    LayoutOrder = 2,
                    Image = l_icon_0,
                    ImageColor3 = v41.Color,
                    ImageTransparency = v41.Transparency
                })
            };
            local v59 = false;
            if string.len(l_text_0) > 0 then
                v59 = l_Roact_0.createElement("Frame", {
                    Size = UDim2.fromOffset(l_X_0, v45),
                    LayoutOrder = 3,
                    BackgroundTransparency = 1
                }, {
                    PillText = l_Roact_0.createElement(l_StyledTextLabel_0, {
                        text = l_text_0,
                        fontStyle = l_Font_0.CaptionHeader,
                        colorStyle = v42,
                        textTruncate = Enum.TextTruncate.AtEnd,
                        textXAlignment = Enum.TextXAlignment.Left,
                        textYAlignment = Enum.TextYAlignment.Center,
                        size = UDim2.fromOffset(v48, v45),
                        [l_Roact_0.Ref] = v29.PillText
                    });
                    l_Roact_0.createElement("UISizeConstraint", {
                        MaxSize = Vector2.new(v48, 28)
                    })
                });
            end;
            v58.TextArea = v59;
            v58.BadgeFrame = l_Roact_0.createElement("Frame", {
                Size = UDim2.fromOffset(12, 12),
                LayoutOrder = 4,
                BackgroundTransparency = 1
            }, {
                Badge = l_Roact_0.createElement(l_Badge_0, {
                    value = l_BadgeStates_0.isEmpty
                })
            });
            v58.UISizeConstraint = l_Roact_0.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(216, 28)
            });
            v54.Content = l_createElement_1(v56, v57, v58);
            v54.UICorner = l_Roact_0.createElement("UICorner", {
                CornerRadius = UDim.new(1, 0)
            });
            v54.UISizeConstraint = l_Roact_0.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(240, 28)
            });
            return l_createElement_0(l_l_Interactable_0_0, v53, v54) or l_Roact_0.createElement(l_ShimmerPanel_0, {
                Size = UDim2.new(0, (v47 + 4) + v44, 0, 28),
                cornerRadius = UDim.new(1, 0)
            });
        else
            return nil;
        end;
    end);
end;
return v25;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_UIBlox_0 = v2.UIBlox;
local l_withLocalization_0 = v2.withLocalization;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local v8 = require(l_Parent_0.Cryo);
local l_useDesignTokens_0 = require(l_Parent_0.Style).useDesignTokens;
local v10 = l_Roact_0.PureComponent:extend("ShowMoreButton");
local function v11()
end;
v10.defaultProps = {
    layoutOrder = 1,
    onSizeChange = v11,
    onActivated = v11,
    buttonHeight = 48
};
v10.MAX_WIDTH = 640;
v10.init = function(v12)
    v12.state = {
        width = 100
    };
    v12.localization = {
        showMore = "Feature.Friends.Action.ShowMore"
    };
    v12.onChangeSize = function(v13)
        v12:setState({
            width = math.min(v12.props.maxWidth or v10.MAX_WIDTH, v13.AbsoluteSize.X)
        });
        v12.props.onSizeChange(v13);
    end;
end;
v10.render = function(v14)
    return l_withLocalization_0(v14.localization)(function(v15)
        local l_buttonHeight_0 = v14.props.buttonHeight;
        return l_Roact_0.createFragment({
            showMoreContainer = l_Roact_0.createElement("Frame", {
                BackgroundTransparency = 1,
                LayoutOrder = v14.props.layoutOrder,
                Size = UDim2.new(1, 0, 0, l_buttonHeight_0 + 48),
                [l_Roact_0.Change.AbsoluteSize] = v14.onChangeSize
            }, {
                layout = l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                showMore = l_Roact_0.createElement(l_Button_0, {
                    buttonType = l_ButtonType_0.Secondary,
                    onActivated = v14.props.onActivated,
                    size = UDim2.new(0, v14.state.width, 0, l_buttonHeight_0),
                    text = v15.showMore
                })
            })
        });
    end);
end;
return function(v17)
    local v18 = l_useDesignTokens_0();
    return l_Roact_0.createElement(v10, v8.Dictionary.join({
        maxWidth = v18.LuaApps.FriendsLanding.ShowMore.ButtonWidth,
        buttonHeight = v18.LuaApps.FriendsLanding.ShowMore.ButtonHeight
    }, v17));
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local l_llama_0 = v0.llama;
local l_t_0 = v0.t;
local v3 = require(script.Parent.friendsPerRow);
local v4 = l_t_0.interface({
    width = l_t_0.number
});
local v5 = l_t_0.interface({
    visibleRows = l_t_0.number,
    itemSize = l_t_0.number,
    minimumItemsPerRow = l_t_0.optional(l_t_0.number)
});
return function(v6, v7)
    assert(v4(v6));
    assert(v5(v7));
    return v7.visibleRows * v3(l_llama_0.Dictionary.join({
        width = v6.width
    }, v7));
end;


local l_t_0 = require(script:FindFirstAncestor("FriendsLanding").dependencies).t;
local v1 = l_t_0.interface({
    width = l_t_0.number,
    itemSize = l_t_0.number,
    minimumItemsPerRow = l_t_0.optional(l_t_0.number)
});
return function(v2)
    assert(v1(v2));
    return (math.max(math.floor(v2.width / v2.itemSize), v2.minimumItemsPerRow or 2));
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local l_llama_0 = v0.llama;
local l_t_0 = v0.t;
return function(v3, v4)
    assert(l_t_0.table(v4));
    assert(l_t_0.number(v3));
    return l_llama_0.List.filter(v4, function(_, v6)
        return v6 <= v3;
    end);
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local l_t_0 = v0.t;
local l_llama_0 = v0.llama;
local v3 = require(script.Parent.friendsPerLoadGroup);
local v4 = l_t_0.interface({
    visibleRows = l_t_0.number,
    itemSize = l_t_0.number,
    filter = l_t_0.string
});
local v5 = l_t_0.interface({
    width = l_t_0.number,
    filterFriendCounts = l_t_0.table
});
return function(v6, v7)
    assert(v5(v6));
    assert(v4(v7));
    return {
        filterFriendCounts = l_llama_0.Dictionary.join(v6.filterFriendCounts, {
            [v7.filter] = v6.filterFriendCounts[v7.filter] + v3(v6, v7)
        })
    };
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local l_t_0 = v0.t;
local l_Dictionary_0 = v0.llama.Dictionary;
local v3 = require(script.Parent.friendsPerLoadGroup);
local v4 = l_t_0.interface({
    visibleRows = l_t_0.number,
    itemSize = l_t_0.number,
    filter = l_t_0.string
});
local v5 = l_t_0.interface({
    filterFriendCounts = l_t_0.table
});
return function(v6)
    return function(v7, v8)
        assert(v4(v8));
        assert(v5(v7));
        local v9 = v3({
            width = v6
        }, v8);
        return {
            width = v6,
            filterFriendCounts = l_Dictionary_0.join(v7.filterFriendCounts, l_Dictionary_0.map(v7.filterFriendCounts, function(v10)
                return (math.max(v9, v10));
            end))
        };
    end;
end;


return {
    Gateway = "Gateway",
    FriendsLanding = "FriendsLanding",
    FilterByModal = "FilterByModal",
    GenericToast = "GenericToast",
    ContextualMenu = "ContextualMenu",
    ContactImporter = "ContactImporter",
    ContactsList = "ContactsList",
    ContactsRevokedAccessDialog = "ContactsRevokedAccessDialog",
    DiscoverabilityOverlay = "DiscoverabilityOverlay",
    ProfileQRCodePage = "ProfileQRCodePage",
    AddFriends = "AddFriendsPage",
    SearchFriends = "SearchFriends",
    FriendFinder = "FriendFinder",
    GameDetailsPeekView = "GameDetailsPeekView",
    ViewUserProfile = "ViewUserProfile",
    LearnMore = "LearnMore",
    PhoneVerification = "PhoneVerification",
    ProfileQRCode = "ProfileQRCode",
    AmpWizardContainer = "AmpWizardContainer",
    SearchPage = "SearchPage"
};


return require(script:FindFirstAncestor("FriendsLanding").dependencies).enumerate(script.Name, {
    FriendsHeader = "Feature.Friends.Label.Friends"
});


return require(script:FindFirstAncestor("FriendsLanding").dependencies).enumerate(script.Name, {
    StudioPresenceTextGlobal = "Roblox Studio",
    StudioPresenceTextLuobu = "LuoBu Studio"
});


return {
    Friends = "Friends",
    FriendRequests = "FriendRequests",
    FriendRecommendations = "FriendRecommendations"
};


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


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


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


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


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


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


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


game:DefineFastInt("AddFriendsVisibleRecRows", 5);
return function()
    return game:GetFastInt("AddFriendsVisibleRecRows");
end;


game:DefineFastInt("FriendsLandingFriendPruningUpsellMinFriends", 151);
return function()
    return game:GetFastInt("FriendsLandingFriendPruningUpsellMinFriends");
end;


game:DefineFastInt("FriendsLandingFriendPruningUpsellMinInactiveFriends", 5);
return function()
    return game:GetFastInt("FriendsLandingFriendPruningUpsellMinInactiveFriends");
end;


game:DefineFastInt("FromContactsText", 0);
game:DefineFastFlag("FromContactsTextEnabledForAll", false);
local l_rolloutByApplicationId_0 = require(script:FindFirstAncestor("FriendsLanding").Parent.AppCommonLib).rolloutByApplicationId;
local function v1()
    return game:GetFastInt("FromContactsText");
end;
local function _()
    return game:GetFastFlag("FromContactsTextEnabledForAll");
end;
local v3 = l_rolloutByApplicationId_0(v1);
return function()
    return game:GetFastFlag("FromContactsTextEnabledForAll") or v3();
end;


local l_rolloutByApplicationId_0 = require(script:FindFirstAncestor("FriendsLanding").Parent.AppCommonLib).rolloutByApplicationId;
game:DefineFastInt("FriendsLandingUserProfileApiRollout", 0);
game:DefineFastFlag("FriendsLandingUserProfileApiEnabledForAll", false);
local function v1()
    return game:GetFastInt("FriendsLandingUserProfileApiRollout");
end;
local function _()
    return game:GetFastFlag("FriendsLandingUserProfileApiEnabledForAll");
end;
local function _()
    return l_rolloutByApplicationId_0(v1)();
end;
return function()
    return l_rolloutByApplicationId_0(v1)() or game:GetFastFlag("FriendsLandingUserProfileApiEnabledForAll");
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_PresenceType_0 = v1.RoduxPresence.Enums.PresenceType;
local l_llama_0 = v1.llama;
local l_t_0 = v1.t;
local v5 = require(l_script_FirstAncestor_0.Friends.filterToPresence);
local v6 = require(l_script_FirstAncestor_0.Friends.filterStates);
local v7 = require(l_script_FirstAncestor_0.Friends.getCorrectUserPresence);
return function(v8, v9)
    assert(l_t_0.table(v8), "friends should be a table");
    assert(l_t_0.string(v9), "filter should be a string");
    return l_llama_0.List.filter(v8, function(v10)
        if v9 == v6.Inactive then
            return v10.isInactiveFriend;
        else
            return l_llama_0.List.includes(v5(v9), v7(v10) or l_PresenceType_0.Offline);
        end;
    end);
end;


return {
    All = "All",
    InExperience = "InExperience",
    Online = "Online",
    Offline = "Offline",
    Inactive = "Inactive"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_PresenceType_0 = require(l_script_FirstAncestor_0.dependencies).RoduxPresence.Enums.PresenceType;
local v2 = require(l_script_FirstAncestor_0.Friends.filterStates);
return function(v3)
    if v3 == v2.InExperience then
        return {
            l_PresenceType_0.InGame,
            l_PresenceType_0.InStudio
        };
    elseif v3 == v2.Offline then
        return {
            l_PresenceType_0.Offline
        };
    elseif v3 == v2.Online then
        return {
            l_PresenceType_0.Online,
            l_PresenceType_0.InStudio,
            l_PresenceType_0.InGame
        };
    else
        return {
            l_PresenceType_0.Online,
            l_PresenceType_0.InStudio,
            l_PresenceType_0.InGame,
            l_PresenceType_0.Offline
        };
    end;
end;


local l_PresenceType_0 = require(script:FindFirstAncestor("FriendsLanding").dependencies).RoduxPresence.Enums.PresenceType;
local v1 = require(script.Parent.isUserInGame);
return function(v2)
    if v2 then
        assert(v2, "");
        local l_userPresenceType_0 = v2.userPresenceType;
        if l_userPresenceType_0 == l_PresenceType_0.InGame then
            return not not v1(v2) and l_PresenceType_0.InGame or l_PresenceType_0.Online;
        else
            return l_userPresenceType_0;
        end;
    else
        return nil;
    end;
end;


local l_PresenceType_0 = require(script:FindFirstAncestor("FriendsLanding").dependencies).RoduxPresence.Enums.PresenceType;
return function(v1)
    if v1 then
        assert(v1, "user modal must be non-nil");
        local v2;
        if not (not (v1.userPresenceType == l_PresenceType_0.InGame) or not v1.lastLocation) then
            v2 = true;
            if not (v1.lastLocation == "") then
                goto label0;
            end;
        end;
        v2 = false;
        ::label0::;
        return v2;
    else
        return false;
    end;
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").Friends.filterStates);
return function(v1, v2)
    if not v2 then
        return {
            {
                text = v1.all,
                id = v0.All
            },
            {
                text = v1.online,
                id = v0.Online
            },
            {
                text = v1.inExperience,
                id = v0.InExperience
            },
            {
                text = v1.offline,
                id = v0.Offline
            }
        };
    else
        return {
            {
                text = v1.all,
                id = v0.All
            },
            {
                text = v1.online,
                id = v0.Online
            },
            {
                text = v1.inExperience,
                id = v0.InExperience
            },
            {
                text = v1.offline,
                id = v0.Offline
            },
            {
                text = v1.inactive,
                id = v0.Inactive
            }
        };
    end;
end;


local v0 = require(script:FindFirstAncestor("FriendsLanding").dependencies);
local l_llama_0 = v0.llama;
local l_t_0 = v0.t;
local l_RoduxPresence_0 = v0.RoduxPresence;
local l_SocialLibraries_0 = v0.SocialLibraries;
local l_getFFlagVerifiedBadgeInFriendsLanding_0 = v0.getFFlagVerifiedBadgeInFriendsLanding;
local l_getDeepValue_0 = l_SocialLibraries_0.Dictionary.getDeepValue;
local l_getRbxthumbWithTypeSizeAndOptions_0 = v0.getRbxthumbWithTypeSizeAndOptions;
local l_UserLibConstants_0 = v0.UserLibConstants;
return function(v9)
    return function(v10)
        assert(l_t_0.string(v10));
        local v11 = l_getDeepValue_0(v9, string.format("FriendsLanding.Friends.byUserId.%s", v10)) or {};
        local v12 = v9.FriendsLanding.DeletedUsers or nil;
        local v13 = if not l_getFFlagVerifiedBadgeInFriendsLanding_0() then nil else v9.FriendsLanding.VerifiedUsers;
        return l_llama_0.Dictionary.map(v11, function(v14)
            local _ = nil;
            return l_llama_0.Dictionary.join(l_getDeepValue_0(v9, string.format("FriendsLanding.Users.byUserId.%s", v14)), l_RoduxPresence_0.Selectors.getUserPresenceByUserId(v9, v14), {
                thumbnail = if not v9.isTest then l_getRbxthumbWithTypeSizeAndOptions_0(v14, l_UserLibConstants_0.RbxthumbTypes.Avatar, 352) else ""
            }, {
                isDeleted = v12 and v12[v14]
            }, {
                hasVerifiedBadge = if not l_getFFlagVerifiedBadgeInFriendsLanding_0() then nil else v13 and v13[v14]
            }, {
                isInactiveFriend = l_getDeepValue_0(v9, (("FriendsLanding.InactiveFriends.%*"):format(v14)))
            }, {
                friendRank = l_getDeepValue_0(v9, (("FriendsLanding.Friends.friendsRankByUserId.%*.%*"):format(v9.LocalUserId, v14)))
            });
        end);
    end;
end;


local l_PresenceType_0 = require(script:FindFirstAncestor("FriendsLanding").dependencies).RoduxPresence.Enums.PresenceType;
return {
    [l_PresenceType_0.Offline] = nil,
    [l_PresenceType_0.Online] = "component_assets/circle_16",
    [l_PresenceType_0.InGame] = "icons/menu/games_small",
    [l_PresenceType_0.InStudio] = "icons/logo/studiologo_small"
};


local l_PresenceType_0 = require(script:FindFirstAncestor("FriendsLanding").dependencies).RoduxPresence.Enums.PresenceType;
return {
    [l_PresenceType_0.Offline] = "Common.Presence.Label.Offline",
    [l_PresenceType_0.Online] = "Common.Presence.Label.Online",
    [l_PresenceType_0.InGame] = "Common.Presence.Label.Online",
    [l_PresenceType_0.InStudio] = "Common.Presence.Label.Online"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local v1 = require(l_script_FirstAncestor_0.Logger);
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_AppStyleProvider_0 = v2.UIBlox.App.Style.AppStyleProvider;
local l_Roact_0 = v2.Roact;
local l_UniversalAppPolicy_0 = v2.UniversalAppPolicy;
local l_llama_0 = v2.llama;
local l_mockLocale_0 = require(l_script_FirstAncestor_0.Parent.Dev.SocialTestHelpers).StoryHelpers.mockLocale;
local v8 = v2.Lumberyak.Logger.new();
v8:addSink({
    maxLevel = v8.Levels.fromString("info"),
    log = function(_, v10, _)
        print(v10);
    end
});
v1:setParent(v8);
local v12 = {
    Default = {
        themeName = "Light",
        fontName = "Gotham"
    },
    Light = {
        themeName = "Light",
        fontName = "Gotham"
    },
    Dark = {
        themeName = "Dark",
        fontName = "Gotham"
    }
};
local v13 = {
    language = "en-us"
};
return {
    mapDefinition = function(v14)
        return l_llama_0.Dictionary.join(v14, {
            controls = l_llama_0.Dictionary.join(v13, v14.controls or {})
        });
    end,
    roact = l_Roact_0,
    mapStory = function(v15)
        return function(v16)
            return l_Roact_0.createElement(l_AppStyleProvider_0, {
                style = not not v16 and v12[v16.theme] or v12.Default
            }, {
                l_Roact_0.createElement(l_UniversalAppPolicy_0.Provider, {
                    policy = {
                        function()
                            return {
                                getShowDisplayName = function()
                                    return v16.controls.getShowDisplayName;
                                end
                            };
                        end
                    }
                }, {
                    Child = l_mockLocale_0(v15, v16)
                })
            });
        end;
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("FriendsLanding");
local l_AddFriends_0 = l_script_FirstAncestor_0.AddFriends;
local v2 = require(script.Parent.ButtonClickEvents);
local v3 = require(l_script_FirstAncestor_0.EnumScreens);
local v4 = require(l_AddFriends_0.dependencies);
local l_Contexts_0 = v4.SocialLuaAnalytics.Analytics.Enums.Contexts;
local l_FormFactor_0 = v4.FormFactor;
return function(v7, v8)
    local v9 = v8 and v8.formFactor;
    v7:navigate(v3.SearchFriends);
    v7:buttonClick(v2.PeopleSearchBar, {
        contextOverride = l_Contexts_0.PeopleSearchFromAddFriends,
        formFactor = v9 or l_FormFactor_0.UNKNOWN
    });
end;


return require(script:FindFirstAncestor("FriendsLanding").dependencies).enumerate(script.Name, {
    AddFriendsNoFriends = "addFriendsNoFriends",
    AddFriendsNoFriendsEmptyView = "addFriendsNoFriendsEmptyView",
    AddFriends = "addFriends",
    PlayerTile = "playerTile",
    FriendFilterPill = "friendFilterPill",
    LoadMoreUsers = "loadMoreUsers",
    FriendFilterApply = "friendFilterApply",
    FriendTileUnfriendButton = "friendTileUnfriendButton",
    IgnoreAllButton = "ignoreAll",
    ConnectWithFriends = "connectWithFriends",
    PlayerProfile = "playerProfile",
    PeopleSearchBar = "peopleSearchBar",
    ProfileQRCode = "shareProfileQRCode",
    RequestFriendship = "requestFriendship",
    DeclineFriendship = "declineFriendship",
    AcceptFriendship = "acceptFriendship"
});