local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(game:GetService("CorePackages").UIBlox);
local l_withStyle_0 = v1.Style.withStyle;
local v3 = require(l_Modules_0.Common.Roact);
local v4 = require(l_Modules_0.Common.Text);
local v5 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local l_ColorSystem_0 = v1.Common.Style.ColorSystem;
local v7 = Rect.new(12, 12, 13, 13);
local v8 = v3.PureComponent:extend("NumericalBadge");
v8.defaultProps = {
    AnchorPoint = Vector2.new(0.5, 0.5),
    Position = UDim2.new(1, 0, 0, 0),
    badgeCount = 0,
    inAppChrome = false,
    redBadgeVariant = false
};
v8.render = function(v9)
    local l_AnchorPoint_0 = v9.props.AnchorPoint;
    local l_Position_0 = v9.props.Position;
    local l_LayoutOrder_0 = v9.props.LayoutOrder;
    local l_badgeCount_0 = v9.props.badgeCount;
    if not (type(l_badgeCount_0) == "number") or l_badgeCount_0 <= 0 then
        return nil;
    else
        local function v22(v14, v15, v16)
            local v17 = l_badgeCount_0 > 99 and "99+" or tostring(l_badgeCount_0);
            local v18 = v4.GetTextWidth(v17, v16.Font, v16.TextSize);
            local v19 = math.max(24, (v18 + 6) + 4);
            local l_Color_0 = v15.Color;
            local l_TextColor3_0 = v16.TextColor3;
            if v9.props.redBadgeVariant then
                l_Color_0 = l_ColorSystem_0.Red[60];
                l_TextColor3_0 = l_ColorSystem_0.White;
            end;
            return v3.createElement(v5, {
                AnchorPoint = l_AnchorPoint_0,
                Position = l_Position_0,
                Size = UDim2.new(0, v19, 0, 24),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Image = "LuaApp/9-slice/notification_badge",
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = v7,
                ImageColor3 = v14.Color,
                ImageTransparency = v14.Transparency,
                LayoutOrder = l_LayoutOrder_0
            }, {
                InnerBadge = v3.createElement(v5, {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    Size = UDim2.new(1, -4, 1, -4),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Image = "LuaApp/9-slice/notification_badge",
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = v7,
                    ImageColor3 = l_Color_0,
                    ImageTransparency = v15.Transparency
                }, {
                    Count = v3.createElement("TextLabel", {
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Position = UDim2.new(0.5, 0, 0.5, 0),
                        Size = UDim2.new(0, v18, 1, 0),
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        Font = v16.Font,
                        Text = v17,
                        TextSize = v16.TextSize,
                        TextColor3 = l_TextColor3_0,
                        TextTransparency = v16.TextTransparency
                    })
                })
            });
        end;
        return l_withStyle_0(function(v23)
            return v22(v23.Theme.BackgroundDefault, v23.Theme.Badge, {
                Font = v23.Font.CaptionHeader.Font,
                TextSize = v23.Font.CaptionHeader.RelativeSize * v23.Font.BaseSize,
                TextColor3 = v23.Theme.BadgeContent.Color,
                TextTransparency = v23.Theme.BadgeContent.Transparency
            });
        end);
    end;
end;
return v8;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_UserInputService_0 = game:GetService("UserInputService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Common_0 = l_Modules_0.Common;
local v4 = require(l_Common_0.Roact);
local _ = require(l_Common_0.RoactRodux);
local _ = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local _ = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local _ = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v9 = v4.PureComponent:extend("OnScreenKeyboardWindow");
v9.init = function(v10)
    v10.state = {
        onScreenKeyboardHeight = 0
    };
end;
v9.didMount = function(v11)
    v11.keyboardVisibleChanged = l_UserInputService_0:GetPropertyChangedSignal("OnScreenKeyboardVisible"):connect(function()
        v11:setState({
            onScreenKeyboardHeight = not not l_UserInputService_0.OnScreenKeyboardVisible and l_UserInputService_0.OnScreenKeyboardSize.Y or 0
        });
    end);
end;
v9.willUnmount = function(v12)
    if v12.keyboardVisibleChanged then
        v12.keyboardVisibleChanged:disconnect();
        v12.keyboardVisibleChanged = nil;
    end;
end;
v9.render = function(v13)
    return v4.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, -v13.state.onScreenKeyboardHeight),
        Position = UDim2.new(0.5, 0, 0, 0),
        AnchorPoint = Vector2.new(0.5, 0),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        LayoutOrder = 1
    }, v13.props.Contents);
end;
return v9;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_CorePackages_0.Roact);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v5 = require(l_Modules_0.LuaApp.Services.RoactLocalization);
local l_NumberLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).NumberLocalization;
local v7 = require(l_Modules_0.LuaApp.withLocalization);
local v8 = require(l_CorePackages_0.Packages.t);
local l_Images_0 = v2.App.ImageSet.Images;
local l_Button_0 = v2.App.Button.Button;
local l_ButtonType_0 = v2.App.Button.Enum.ButtonType;
local v12 = l_Images_0["icons/common/robux"];
local v13 = v3.PureComponent:extend("PassFooter");
v13.validateProps = v8.strictInterface({
    price = v8.number,
    userOwnsPass = v8.boolean,
    onActivated = v8.callback,
    localization = v8.table
});
v13.render = function(v14)
    local l_localization_0 = v14.props.localization;
    local l_price_0 = v14.props.price;
    local l_userOwnsPass_0 = v14.props.userOwnsPass;
    return v7({
        owned = "Feature.Catalog.Label.Owned"
    })(function(v18)
        local _ = nil;
        return v3.createElement(l_Button_0, {
            buttonType = l_ButtonType_0.PrimarySystem,
            size = UDim2.new(1, 0, 0, 35),
            icon = if l_userOwnsPass_0 then nil else v12,
            text = if not l_userOwnsPass_0 then l_NumberLocalization_0.abbreviate(l_price_0, l_localization_0:GetLocale()) else v18.owned,
            isDisabled = l_userOwnsPass_0,
            onActivated = v14.props.onActivated
        });
    end);
end;
return (l_RoactServices_0.connect({
    localization = v5
})(v13));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v5 = require(l_Modules_0.LuaApp.Enum.TransitionAnimation);
local v6 = require(l_Modules_0.LuaApp.AppPage);
local v7 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v8 = require(l_CorePackages_0.Packages.t);
local l_ItemTile_0 = require(l_CorePackages_0.UIBlox).Tile.ItemTile;
local v10 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForPurchasePass);
local v11 = require(l_Modules_0.LuaApp.Components.Passes.PassFooter);
local v12 = v2.PureComponent:extend("PassTile");
v12.validateProps = v8.strictInterface({
    universeId = v8.string,
    pass = v8.table,
    passThumbnail = v8.string,
    requestPurchasePass = v8.optional(v8.callback),
    navigateDown = v8.optional(v8.callback)
});
v12.init = function(v13)
    v13.promptPurchase = function(v14, v15)
        return function()
            if not v14.isOwned then
                v13.props.requestPurchasePass(v14, v15);
            end;
        end;
    end;
    v13.viewPassDetails = function(v16)
        return function()
            if v13.isMounted then
                v13.props.navigateDown({
                    name = v6.GenericWebPage,
                    detail = v7.game.info.pass({
                        passId = v16.id
                    }),
                    extraProps = {
                        title = v16.displayName,
                        transitionAnimation = v5.SlideInFromRight,
                        passOwned = v16.isOwned
                    }
                });
            end;
        end;
    end;
end;
v12.render = function(v17)
    local l_pass_0 = v17.props.pass;
    return v2.createElement(l_ItemTile_0, {
        name = l_pass_0.displayName,
        titleTextLineCount = 1,
        thumbnail = v17.props.passThumbnail,
        onActivated = v17.viewPassDetails(l_pass_0),
        footer = v2.createElement(v11, {
            price = l_pass_0.price,
            userOwnsPass = l_pass_0.isOwned,
            onActivated = v17.promptPurchase(l_pass_0, v17.props.universeId)
        })
    });
end;
v12.didMount = function(v19)
    v19.isMounted = true;
end;
v12.willUnmount = function(v20)
    v20.isMounted = false;
end;
return (v3.connect(nil, function(v21)
    return {
        requestPurchasePass = function(v22, v23)
            return v21(v10(v22, v23));
        end,
        navigateDown = function(v24)
            return v21(v4(v24));
        end
    };
end)(v12));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_Modules_0.Common.memoize);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_CorePackages_0.UIBlox);
local l_GridMetrics_0 = v6.App.Grid.GridMetrics;
local l_DefaultMetricsGridView_0 = v6.App.Grid.DefaultMetricsGridView;
local v9 = require(l_Modules_0.LuaApp.Constants);
local v10 = require(l_Modules_0.LuaApp.Components.Passes.PassTile);
local l_GAME_GRID_CHILD_PADDING_0 = v9.GAME_GRID_CHILD_PADDING;
local l_GAME_GRID_TILE_FOOTER_HEIGHT_0 = v9.GAME_GRID_TILE_FOOTER_HEIGHT;
local v13 = v2.PureComponent:extend("PassesGrid");
v13.validateProps = v5.strictInterface({
    universeId = v5.string,
    passes = v5.optional(v5.table),
    numRows = v5.optional(v5.number),
    viewWidth = v5.optional(v5.number),
    layoutOrder = v5.optional(v5.integer),
    passTiles = v5.optional(v5.table)
});
v13.init = function(v14)
    v14.renderPass = function(v15)
        return v2.createElement(v10, v15);
    end;
    v14.getPassesGridItemHeight = function(v16)
        return v16 + l_GAME_GRID_TILE_FOOTER_HEIGHT_0;
    end;
end;
v13.render = function(v17)
    return v2.createElement(l_DefaultMetricsGridView_0, {
        renderItem = v17.renderPass,
        getItemHeight = v17.getPassesGridItemHeight,
        getItemMetrics = l_GridMetrics_0.getSmallMetrics,
        itemPadding = Vector2.new(l_GAME_GRID_CHILD_PADDING_0, l_GAME_GRID_CHILD_PADDING_0),
        items = v17.props.passTiles,
        LayoutOrder = v17.props.layoutOrder
    });
end;
local v26 = v4(function(v18, v19, v20, v21)
    local v22 = {};
    if v21 and v21 == 0 then
        return v22;
    else
        if v18 then
            for _, v24 in ipairs(v18) do
                if v24.price ~= nil then
                    local v25 = "";
                    if not (not v19 or not v19[tostring(v24.id)]) then
                        v25 = v19[tostring(v24.id)].url;
                    end;
                    table.insert(v22, {
                        universeId = v20,
                        pass = v24,
                        passThumbnail = v25
                    });
                    if not (not v21 or v21 > #v22) then
                        break;
                    end;
                end;
            end;
        end;
        return v22;
    end;
end);
return (v3.connect(function(v27, v28)
    local l_passes_0 = v28.passes;
    local l_universeId_0 = v28.universeId;
    local l_numRows_0 = v28.numRows;
    local l_viewWidth_0 = v28.viewWidth;
    local l_PassesThumbnails_0 = v27.PassesThumbnails;
    local v34 = nil;
    if l_numRows_0 then
        v34 = l_GridMetrics_0.getSmallMetrics(l_viewWidth_0, l_GAME_GRID_CHILD_PADDING_0).itemsPerRow * l_numRows_0;
    end;
    return {
        passTiles = v26(l_passes_0, l_PassesThumbnails_0, l_universeId_0, v34)
    };
end)(v13));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Common.RoactRodux);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_Modules_0.LuaApp.Components.AlertWindow);
local v6 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v7 = require(l_Modules_0.LuaApp.AppPage);
local v8 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v9 = require(l_Modules_0.LuaApp.withLocalization);
local l_withStyle_0 = v4.Style.withStyle;
local v11 = require(l_CorePackages_0.Packages.t);
local v12 = v2.PureComponent:extend("PurchasePassInsufficientRobux");
v12.validateProps = v11.strictInterface({
    containerWidth = v11.number,
    defaultChildRef = v11.optional(v11.any),
    focusController = v11.optional(v11.any),
    openPurchaseRobuxPage = v11.callback,
    closePrompt = v11.callback
});
v12.init = function(v13)
    v13.openPurchaseRobuxPage = function()
        v13.props.closePrompt();
        v13.props.openPurchaseRobuxPage();
    end;
end;
v12.render = function(v14)
    local l_containerWidth_0 = v14.props.containerWidth;
    local l_closePrompt_0 = v14.props.closePrompt;
    return l_withStyle_0(function(v17)
        return v9({
            titleText = "Feature.Catalog.Heading.InsufficientFunds",
            messageText = "Feature.Catalog.Label.InsufficientFunds",
            confirmButtonText = "Feature.GameDetails.Action.BuyRobux"
        })(function(v18)
            return v2.createElement(v5, {
                containerWidth = l_containerWidth_0,
                titleText = v18.titleText,
                titleFont = v17.Font.Header1.Font,
                messageText = v18.messageText,
                messageFont = v17.Font.Body.Font,
                buttonFont = v17.Font.Header2.Font,
                confirmButtonText = v18.confirmButtonText,
                onConfirm = v14.openPurchaseRobuxPage,
                hasCancelButton = true,
                onCancel = l_closePrompt_0
            });
        end);
    end);
end;
return (v3.connect(nil, function(v19)
    return {
        closePrompt = function()
            v19(v6());
        end,
        openPurchaseRobuxPage = function()
            return v19(v8({
                name = v7.PurchaseRobux
            }));
        end
    };
end)(v12));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.UIBlox);
local v2 = require(l_CorePackages_0.Packages.React);
local l_EmptyState_0 = v1.App.Indicator.EmptyState;
local l_Images_0 = v1.App.ImageSet.Images;
local l_Colors_0 = v1.App.Style.Colors;
local l_ButtonType_0 = v1.App.Button.Enum.ButtonType;
local l_useStyle_0 = v1.Core.Style.useStyle;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v11 = require(l_Modules_0.LuaApp.AppPage);
local l_EventNames_0 = require(l_Modules_0.LuaApp.Components.UserSearch.api).Analytics.EventNames;
local l_getFFlagPlayerSearchNewEmptyPageEnabled_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFFlagPlayerSearchNewEmptyPageEnabled;
local l_GetFFlagTenFootUiPlayerSearchBackground_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagTenFootUiPlayerSearchBackground;
local v15 = l_Images_0["icons/status/oof_xlarge"];
local v16 = l_Images_0["icons/graphic/findfriends_xlarge"];
return function(v17)
    local v18 = l_useNavigation_0();
    local v19 = if not l_getFFlagPlayerSearchNewEmptyPageEnabled_0() then nil else function()
        v17.fireAnalyticsEvent(l_EventNames_0.NavigateToAddFriendsBtn);
        v18.push(v11.AddFriendsPage);
    end;
    local v20 = l_useLocalization_0({
        landingText = "Feature.AddFriends.Label.SearchForFriendsPrompt",
        keywordTooShortText = "Feature.PlayerSearchResults.Label.KeywordTooShort",
        noResultsText = "Feature.PlayerSearchResults.Label.NoResultsFound",
        findFriendsButton = "Feature.Friends.Action.FindFriends",
        tryAnotherWayText = "Feature.PlayerSearchResults.Label.NoResultsTryAnotherWay"
    });
    local v21 = l_useStyle_0();
    local v22 = nil;
    local v23 = nil;
    local v24 = nil;
    local v25 = nil;
    local v26 = nil;
    local v27 = nil;
    local v28 = nil;
    if not v17.shouldShowUserSearchLandingPage then
        if not v17.searchWordLengthNotSupported then
            if not v17.newEmptyPageUI or not l_getFFlagPlayerSearchNewEmptyPageEnabled_0() then
                v22 = v20.noResultsText;
                v23 = v15;
            else
                v22 = ("%*\n%*"):format(v20.noResultsText, v20.tryAnotherWayText);
                v23 = v16;
                v24 = l_Colors_0.White;
                v25 = v20.findFriendsButton;
                v27 = l_ButtonType_0.PrimarySystem;
                v26 = "";
                v28 = v19;
            end;
        else
            v22 = v20.keywordTooShortText;
            v23 = v15;
        end;
    else
        v22 = v20.landingText;
        v23 = v16;
        v24 = l_Colors_0.White;
    end;
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = if not not l_GetFFlagTenFootUiPlayerSearchBackground_0() and v17.backgroundTransparency then v17.backgroundTransparency else v21.Theme.BackgroundDefault.Transparency,
        BackgroundColor3 = v21.Theme.BackgroundDefault.Color,
        BorderSizePixel = 0
    }, {
        LandingText = v2.createElement(l_EmptyState_0, {
            text = v22,
            icon = v23,
            iconColor = v24,
            buttonText = v25,
            buttonType = v27,
            buttonIcon = v26,
            onActivated = v28,
            maxSizeTextLabel = Vector2.new(v17.screenSize.X - 64, v17.screenSize.Y)
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Cryo);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_Modules_0.LuaApp.Constants);
local v7 = require(l_Modules_0.LuaApp.Components.Generic.GridView);
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_GridMetrics_0 = v2.App.Grid.GridMetrics;
local v10 = require(l_Modules_0.LuaApp.Components.UserSearch.UserSearchTileUniversalWrapper.Container);
local l_useUiModeInfo_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).UiMode;
local l_GetFFlagTenFootUiPlayerSearch_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagTenFootUiPlayerSearch;
local l_GetFFlagFixTenFootUiPlayerSearchTileHeight_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagFixTenFootUiPlayerSearchTileHeight;
local l_GAME_GRID_CHILD_PADDING_0 = v6.GAME_GRID_CHILD_PADDING;
local l_PLAYER_GRID_TILE_FOOTER_HEIGHT_0 = v6.PLAYER_GRID_TILE_FOOTER_HEIGHT;
local v17 = v3.PureComponent:extend("PlayerGrid");
v17.validateProps = v5.strictInterface({
    entries = v5.table,
    LayoutOrder = v5.optional(v5.integer),
    numberOfRowsToShow = v5.optional(v5.integer),
    windowSize = v5.Vector2,
    horizontalAlignment = v5.optional(v5.enum(Enum.HorizontalAlignment)),
    searchParameters = v5.table,
    impressionsTag = v5.string,
    mappedProfilesInsights = v5.optional(v5.table),
    uiModeInfo = if not l_GetFFlagTenFootUiPlayerSearch_0() then nil else v5.table,
    cellSpacingHorizontal = if not l_GetFFlagTenFootUiPlayerSearch_0() then nil else v5.integer,
    cellSpacingVertical = if not l_GetFFlagTenFootUiPlayerSearch_0() then nil else v5.integer,
    tileHeightOffset = if not not l_GetFFlagTenFootUiPlayerSearch_0() and l_GetFFlagFixTenFootUiPlayerSearchTileHeight_0() then v5.integer else nil,
    Analytics = v5.any
});
v17.defaultProps = {
    horizontalAlignment = Enum.HorizontalAlignment.Center,
    mappedProfilesInsights = {}
};
v17.renderItem = function(v18, v19, v20, v21)
    return v3.createElement(v10, {
        index = v21,
        user = v19,
        size = UDim2.new(0, v20.X, 0, v20.Y),
        searchParameters = v18.props.searchParameters,
        hasEmphasis = v19.featured or false,
        impressionsTag = v18.props.impressionsTag,
        profileInsight = v18.props.mappedProfilesInsights[v19.id],
        Analytics = v18.props.Analytics
    });
end;
v17.render = function(v22)
    local l_entries_0 = v22.props.entries;
    local l_LayoutOrder_0 = v22.props.LayoutOrder;
    local l_numberOfRowsToShow_0 = v22.props.numberOfRowsToShow;
    local l_windowSize_0 = v22.props.windowSize;
    local l_horizontalAlignment_0 = v22.props.horizontalAlignment;
    local v28 = nil;
    local l_itemWidth_0 = l_GridMetrics_0.getMediumMetrics(l_windowSize_0.X, l_GAME_GRID_CHILD_PADDING_0).itemWidth;
    local v30 = Vector2.new(l_itemWidth_0, (math.floor(l_itemWidth_0 + l_PLAYER_GRID_TILE_FOOTER_HEIGHT_0)));
    local v31 = Vector2.new(l_GAME_GRID_CHILD_PADDING_0, l_GAME_GRID_CHILD_PADDING_0 * 2);
    if #l_entries_0 == 1 then
        v28 = {
            v4.Dictionary.join(l_entries_0[1], {
                featured = true
            })
        };
        local l_itemWidth_1 = l_GridMetrics_0.getLargeMetrics(l_windowSize_0.X, l_GAME_GRID_CHILD_PADDING_0).itemWidth;
        v30 = Vector2.new(l_itemWidth_1, l_itemWidth_1 + l_PLAYER_GRID_TILE_FOOTER_HEIGHT_0);
    end;
    if l_GetFFlagTenFootUiPlayerSearch_0() and v22.props.uiModeInfo.uiMode == l_UiMode_0.TenFoot then
        l_itemWidth_0 = l_GridMetrics_0.getMetricsForFixedColumns(l_windowSize_0.X, v22.props.cellSpacingHorizontal, 6).itemWidth;
        v30 = Vector2.new(l_itemWidth_0, (math.floor(l_itemWidth_0 + (not l_GetFFlagFixTenFootUiPlayerSearchTileHeight_0() and 124 or v22.props.tileHeightOffset))));
        v31 = Vector2.new(v22.props.cellSpacingHorizontal, v22.props.cellSpacingVertical);
    end;
    return v3.createElement(v7, {
        layoutOrder = l_LayoutOrder_0,
        items = v28 or l_entries_0,
        renderItem = function(...)
            return v22:renderItem(...);
        end,
        windowAbsoluteSize = l_windowSize_0,
        itemAbsoluteSize = v30,
        cellPaddingOffset = v31,
        numberOfRowsToShow = l_numberOfRowsToShow_0,
        horizontalAlignment = l_horizontalAlignment_0
    });
end;
if l_GetFFlagTenFootUiPlayerSearch_0() then
    local l_v17_0 = v17;
    v17 = function(v34)
        local v35 = l_useDesignTokens_0();
        return v3.createElement(l_v17_0, (v4.Dictionary.join(v34, {
            uiModeInfo = l_useUiModeInfo_0(),
            cellSpacingHorizontal = v35.Global.Space_300,
            cellSpacingVertical = v35.Global.Space_400,
            tileHeightOffset = if not l_GetFFlagFixTenFootUiPlayerSearchTileHeight_0() then nil else v35.Global.Space_800
        })));
    end;
end;
return v17;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(script.Parent.PlayerGrid);
local l_ProfileInsightsContextFetchWrapper_0 = require(l_Modules_0.LuaApp.Components.UserSearch.api).ProfileInsightsContextFetchWrapper;
local _ = require(l_CorePackages_0.Workspace.Packages.GraphQLServer);
return function(v7)
    return v2.createElement(l_ProfileInsightsContextFetchWrapper_0, {
        users = v7.entries,
        searchParameters = v7.searchParameters,
        renderComponent = function(v8)
            return v2.createElement(v4, v3.Dictionary.join(v7, {
                mappedProfilesInsights = v8
            }));
        end
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Common.RoactRodux);
local v4 = require(l_Modules_0.LuaApp.Constants);
local v5 = require(l_Modules_0.LuaApp.Thunks.Search.ApiFetchPlayerSearch);
local v6 = require(l_Modules_0.LuaApp.Thunks.FetchDataWithErrorToasts);
local l_RetrievalStatus_0 = require(l_CorePackages_0.Workspace.Packages.Http).Enum.RetrievalStatus;
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v9 = require(l_CorePackages_0.Packages.Dash);
local v10 = require(script.Parent.UserSearchResultsPageLayerExposure);
local v11 = require(script.Parent.PlayerSearchPage);
local function _(v12)
    return v4.PLAYER_SEARCH_MIN_KEYWORD_UTF8_LEN <= utf8.len(v12);
end;
return v3.connect(function(v14, v15)
    local l_searchKeyword_0 = v15.searchParameters.searchKeyword;
    local v17 = not (v4.PLAYER_SEARCH_MIN_KEYWORD_UTF8_LEN <= utf8.len(l_searchKeyword_0));
    return {
        screenSize = v14.ScreenSize,
        usersSearchResult = v14.UsersSearchResults[l_searchKeyword_0],
        searchWordLengthNotSupported = v17,
        playerSearchStatus = not not v17 and l_RetrievalStatus_0.Done or v5.GetFetchingStatus(v14, l_searchKeyword_0),
        wideMode = v14.FormFactor == l_FormFactor_0.WIDE
    };
end, function(v18)
    return {
        fetchPlayerSearch = function(v19, ...)
            return v18(v6(v5.Fetch(v19, ...)));
        end
    };
end)(function(v20)
    return v2.createElement(v10, {
        renderChild = function(v21)
            return v2.createElement(v11, v9.join(v21 or {}, v20 or {}));
        end
    });
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_HttpService_0 = game:GetService("HttpService");
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_Modules_0.Common.Roact);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v6 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v8 = require(l_Modules_0.LuaApp.Promise);
local v9 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v9.Style.withStyle;
local l_RetrievalStatus_0 = v9.App.Loading.Enum.RetrievalStatus;
local l_LoadingStateContainer_0 = v9.App.Container.LoadingStateContainer;
local l_EmptyState_0 = v9.App.Indicator.EmptyState;
local l_RetrievalStatus_1 = require(l_CorePackages_0.Workspace.Packages.Http).Enum.RetrievalStatus;
local l_Signal_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Signal;
local l_ScreenSizeImpressionsDetector_0 = require(l_CorePackages_0.Workspace.Packages.Impressions).ScreenSizeImpressionsDetector;
local v17 = require(l_Modules_0.LuaApp.Constants);
local v18 = require(l_Modules_0.LuaApp.Util.debounce);
local v19 = require(l_Modules_0.LuaApp.Components.RefreshScrollingFrameWithLoadMore);
local v20 = require(l_Modules_0.LuaApp.Components.Players.PlayerGrid);
local v21 = require(l_Modules_0.LuaApp.Components.Players.PlayerGridWithProfileInsights);
local v22 = require(script.Parent.EmptyPlayerSearchPage);
local v23 = require(l_Modules_0.LuaApp.Components.UserSearch.api);
local l_EventNames_0 = v23.Analytics.EventNames;
local l_Analytics_0 = v23.Analytics.Analytics;
local l_Timers_0 = require(l_CorePackages_0.Workspace.Packages.SocialLuaAnalytics).Analytics.Timing.Timers;
local l_GetFFlagTenFootUiSearch_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagTenFootUiSearch;
local l_GetFFlagTenFootUiPlayerSearchBackground_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagTenFootUiPlayerSearchBackground;
local l_getFFlagPlayerSearchNewEmptyPageEnabled_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFFlagPlayerSearchNewEmptyPageEnabled;
local l_FFlagUserSearchUseNewEndpointIXP_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagUserSearchUseNewEndpointIXP;
local l_FFlagOmniSearchAutoTabIXP_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagOmniSearchAutoTabIXP;
local function _(v32)
    return v17.PLAYER_SEARCH_MIN_KEYWORD_UTF8_LEN <= utf8.len(v32);
end;
local v34 = v4.PureComponent:extend("PlayerSearchPage");
v34.validateProps = v3.strictInterface({
    searchUuid = v3.optional(v3.string),
    backgroundTransparency = if not l_GetFFlagTenFootUiSearch_0() then nil else v3.optional(v3.number),
    searchParameters = v3.table,
    onScrollDirectionChanged = v3.optional(v3.callback),
    shouldShowUserSearchLandingPage = v3.optional(v3.boolean),
    isRoutedFromAutoSearch = if not l_FFlagOmniSearchAutoTabIXP_0 then nil else v3.optional(v3.boolean),
    screenSize = v3.Vector2,
    usersSearchResult = v3.optional(v3.table),
    searchWordLengthNotSupported = v3.boolean,
    playerSearchStatus = v3.string,
    wideMode = v3.optional(v3.boolean),
    fetchPlayerSearch = v3.callback,
    networking = v3.callback,
    eventIngest = v3.optional(v3.table),
    enableRecommendationsSearchContext = v3.optional(v3.boolean),
    enableNewEmptySearchUI = v3.optional(v3.boolean),
    shouldUseOmniSearchEndpoint = if not l_FFlagUserSearchUseNewEndpointIXP_0 then nil else v3.optional(v3.boolean)
});
v34.init = function(v35)
    local l_screenSize_0 = v35.props.screenSize;
    local v37 = v17.GetPageSideMargin(l_screenSize_0.X);
    v35.userSearchSessionId = if not l_FFlagOmniSearchAutoTabIXP_0 then l_HttpService_0:GenerateGUID(false) else v35.props.searchUuid or l_HttpService_0:GenerateGUID(false);
    v35.Analytics = l_Analytics_0({
        infoForAllEvents = {
            userSearchSessionId = v35.userSearchSessionId
        }
    });
    v35.state = {
        loaded = false,
        impressionsToSend = nil,
        contentSize = Vector2.new(l_screenSize_0.X - 2 * v37, l_screenSize_0.Y)
    };
    v35.onRequestImpressionsSignal = l_Signal_0.new();
    v35.onImpressionsDetected = function(v38)
        if not v38 or #v38 == 0 then
            return ;
        else
            v35:setState({
                impressionsToSend = v38
            });
            return ;
        end;
    end;
    v35.sendPlayerTileImpressions = function(v39)
        if v35.Analytics then
            if not v39 or #v39 == 0 then
                return ;
            else
                local l_usersSearchResult_0 = v35.props.usersSearchResult;
                local v41 = if not l_usersSearchResult_0 then nil else l_usersSearchResult_0.entries;
                if v41 then
                    local v42 = {};
                    local v43 = {};
                    local v44 = {};
                    for v45 = 1, #v39 do
                        local v46 = v39[v45];
                        table.insert(v42, v46);
                        if v46 > 0 and v46 <= #v41 then
                            local v47 = v41[v46];
                            if v47 then
                                table.insert(v43, v47.id);
                                table.insert(v44, v47.name);
                            end;
                        end;
                    end;
                    v35.Analytics.fireAnalyticsEvent(l_EventNames_0.PlayerTileImpressions, {
                        tilePos = v42,
                        playerId = v43,
                        playerName = v44
                    });
                    return ;
                else
                    return ;
                end;
            end;
        else
            return ;
        end;
    end;
    v35.onAbsoluteContentSizeChanged = function(v48)
        if not (not v35.isMounted or not v48) then
            local l_AbsoluteContentSize_0 = v48.AbsoluteContentSize;
            if v35.state.contentSize == l_AbsoluteContentSize_0 then
                return ;
            elseif l_AbsoluteContentSize_0.X > 0 and l_AbsoluteContentSize_0.Y > 0 then
                v35:setState({
                    contentSize = l_AbsoluteContentSize_0
                });
            end;
        end;
    end;
    v35.loadingTimers = l_Timers_0();
    v35.reportLoadingTimeForPromise = function(v50, v51)
        local v52 = v35.loadingTimers.start();
        local function v54(v53)
            v35.Analytics.fireAnalyticsEvent(l_EventNames_0.UserSearchLoadingTime, {
                status = v53,
                loadingTime = v35.loadingTimers.stop(v52),
                nextPage = not not v51 and v51.nextPage
            });
        end;
        return v50():andThen(function()
            v54(l_RetrievalStatus_0.Done.rawValue());
        end):catch(function()
            v54(l_RetrievalStatus_0.Failed.rawValue());
        end);
    end;
    v35.onLoadMore = function()
        local l_networking_0 = v35.props.networking;
        local l_searchKeyword_0 = v35.props.searchParameters.searchKeyword;
        local l_fetchPlayerSearch_0 = v35.props.fetchPlayerSearch;
        return v35.reportLoadingTimeForPromise(function()
            return l_fetchPlayerSearch_0(l_networking_0, {
                keyword = l_searchKeyword_0,
                userSearchSessionId = v35.userSearchSessionId,
                isNewSearchInitiated = false,
                shouldUseOmniSearchEndpoint = if not l_FFlagUserSearchUseNewEndpointIXP_0 then nil else v35.props.shouldUseOmniSearchEndpoint
            });
        end, {
            nextPage = true
        });
    end;
    v35.dispatchInitialSearch = function()
        if not l_FFlagOmniSearchAutoTabIXP_0 or not v35.props.isRoutedFromAutoSearch then
            local l_networking_1 = v35.props.networking;
            local l_fetchPlayerSearch_1 = v35.props.fetchPlayerSearch;
            local l_searchKeyword_1 = v35.props.searchParameters.searchKeyword;
            if not l_searchKeyword_1 or not (v17.PLAYER_SEARCH_MIN_KEYWORD_UTF8_LEN <= utf8.len(l_searchKeyword_1)) then
                return ;
            else
                return v35.reportLoadingTimeForPromise(function()
                    return l_fetchPlayerSearch_1(l_networking_1, {
                        keyword = l_searchKeyword_1,
                        userSearchSessionId = v35.userSearchSessionId,
                        isNewSearchInitiated = true,
                        shouldUseOmniSearchEndpoint = if not l_FFlagUserSearchUseNewEndpointIXP_0 then nil else v35.props.shouldUseOmniSearchEndpoint
                    });
                end);
            end;
        else
            return v8.resolve();
        end;
    end;
end;
v34.didMount = function(v61)
    v61.isMounted = true;
    v61.dispatchInitialSearch();
end;
v34.willUnmount = function(v62)
    v62.isMounted = false;
end;
v34.renderOnLoaded = function(v63)
    local l_screenSize_1 = v63.props.screenSize;
    local l_contentSize_0 = v63.state.contentSize;
    local v66 = v17.GetPageSideMargin(l_screenSize_1.X);
    local l_searchWordLengthNotSupported_0 = v63.props.searchWordLengthNotSupported;
    local v68 = false;
    local v69 = {};
    local l_usersSearchResult_1 = v63.props.usersSearchResult;
    if l_usersSearchResult_1 then
        v68 = not not l_usersSearchResult_1.nextPageCursor or false;
        v69 = l_usersSearchResult_1.entries;
    end;
    local v71 = true;
    if #v69 ~= 0 then
        v71 = l_searchWordLengthNotSupported_0;
    end;
    if not v71 then
        return l_withStyle_0(function(_)
            return l_withLocalization_0({
                noResultsText = "Feature.PlayerSearchResults.Label.NoResultsFound",
                keywordTooShortText = "Feature.PlayerSearchResults.Label.KeywordTooShort",
                landingText = if not v63.props.addFriendsPageSearchbarEnabled then nil else "Feature.AddFriends.Label.SearchForFriendsPrompt"
            })(function(_)
                return v4.createElement("Frame", {
                    Size = UDim2.new(1, 0, 1, 0),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0
                }, {
                    Content = v4.createElement(v19, {
                        Size = UDim2.new(1, 0, 1, 0),
                        Position = UDim2.new(0, 0, 0, 0),
                        CanvasSize = UDim2.new(1, 0, 1, 0),
                        refresh = v63.refresh,
                        BackgroundTransparency = if not l_GetFFlagTenFootUiPlayerSearchBackground_0() then nil else v63.props.backgroundTransparency,
                        onLoadMore = not not v68 and v63.onLoadMore or nil,
                        onScrollDirectionChanged = v63.props.onScrollDirectionChanged,
                        onCanvasPositionChangedCallback = v18(function()
                            v63.onRequestImpressionsSignal:fire();
                        end, 0.2)
                    }, {
                        Layout = v4.createElement("UIListLayout", {
                            FillDirection = Enum.FillDirection.Vertical,
                            HorizontalAlignment = Enum.HorizontalAlignment.Center,
                            SortOrder = Enum.SortOrder.LayoutOrder,
                            Padding = UDim.new(0, 12),
                            [v4.Change.AbsoluteContentSize] = v63.onAbsoluteContentSizeChanged
                        }),
                        Padding = v4.createElement("UIPadding", {
                            PaddingLeft = UDim.new(0, v66),
                            PaddingRight = UDim.new(0, v66),
                            PaddingTop = UDim.new(0, v17.GAME_GRID_PADDING),
                            PaddingBottom = UDim.new(0, v17.GAME_GRID_PADDING)
                        }),
                        PlayerGrid = if not v63.props.enableRecommendationsSearchContext then v4.createElement(v20, {
                            LayoutOrder = 1,
                            entries = v69,
                            searchParameters = v63.props.searchParameters,
                            horizontalAlignment = Enum.HorizontalAlignment.Left,
                            windowSize = Vector2.new(l_contentSize_0.X, l_screenSize_1.Y),
                            impressionsTag = "PLAYER_TILE_IMPRESSIONS",
                            Analytics = v63.Analytics
                        }) else v4.createElement(v21, {
                            LayoutOrder = 1,
                            entries = v69,
                            searchParameters = v63.props.searchParameters,
                            horizontalAlignment = Enum.HorizontalAlignment.Left,
                            windowSize = Vector2.new(l_contentSize_0.X, l_screenSize_1.Y),
                            impressionsTag = "PLAYER_TILE_IMPRESSIONS",
                            Analytics = v63.Analytics
                        })
                    }),
                    ScreenSizeImpressionsDetector = v4.createElement(l_ScreenSizeImpressionsDetector_0, {
                        onRequestImpressionsSignal = v63.onRequestImpressionsSignal,
                        onImpressionsDetected = v63.onImpressionsDetected,
                        impressionsTag = "PLAYER_TILE_IMPRESSIONS"
                    })
                });
            end);
        end);
    else
        return v4.createElement(v22, {
            wideMode = v63.props.wideMode,
            screenSize = v63.props.screenSize,
            backgroundTransparency = if not l_GetFFlagTenFootUiPlayerSearchBackground_0() then nil else v63.props.backgroundTransparency,
            searchWordLengthNotSupported = l_searchWordLengthNotSupported_0,
            shouldShowUserSearchLandingPage = v63.props.shouldShowUserSearchLandingPage,
            newEmptyPageUI = if not l_getFFlagPlayerSearchNewEmptyPageEnabled_0() then nil else v63.props.enableNewEmptySearchUI,
            fireAnalyticsEvent = v63.Analytics.fireAnalyticsEvent
        });
    end;
end;
v34.renderOnFailed = function(v74, v75)
    return v4.createElement(l_EmptyState_0, {
        onActivated = v74.dispatchInitialSearch,
        text = v75.failedMessage
    });
end;
v34.render = function(v76)
    local l_playerSearchStatus_0 = v76.props.playerSearchStatus;
    return l_withLocalization_0({
        failedMessage = "Feature.EmptyStatePage.Message.NoInternet"
    })(function(v78)
        return v4.createElement(l_LoadingStateContainer_0, {
            dataStatus = l_RetrievalStatus_0.fromRawValue(l_playerSearchStatus_0),
            renderOnLoading = not not v76.state.loaded and function()
                return v76:renderOnLoaded();
            end or nil,
            renderOnFailed = function()
                return v76:renderOnFailed(v78);
            end,
            renderOnLoaded = function()
                return v76:renderOnLoaded();
            end
        });
    end);
end;
v34.didUpdate = function(v79, v80, v81)
    local l_playerSearchStatus_1 = v79.props.playerSearchStatus;
    if l_playerSearchStatus_1 ~= v80.playerSearchStatus then
        if l_playerSearchStatus_1 == l_RetrievalStatus_1.Done then
            if v79.state.loaded == false then
                v79:setState({
                    loaded = true
                });
            end;
            v79.onRequestImpressionsSignal:fire();
        elseif (not (l_playerSearchStatus_1 ~= l_RetrievalStatus_1.NotStarted) or l_playerSearchStatus_1 == l_RetrievalStatus_1.Failed) and v79.state.loaded == true then
            v79:setState({
                loaded = false
            });
        end;
    end;
    local l_impressionsToSend_0 = v79.state.impressionsToSend;
    if l_impressionsToSend_0 ~= nil and l_impressionsToSend_0 ~= v81.impressionsToSend then
        v79.sendPlayerTileImpressions(l_impressionsToSend_0);
        v79:setState({
            impressionsToSend = nil
        });
    end;
end;
return l_RoactServices_0.connect({
    networking = v6
})(v34);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Packages.Roact);
local v4 = require(l_CorePackages_0.Packages.Cryo);
local v5 = require(l_Modules_0.LuaApp.Experiment.RoactAppExperiment);
local l_getFStringSocialUserSearchResultsPageLayer_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFStringSocialUserSearchResultsPageLayer;
local l_getFFlagPlayerSearchNewEmptyPageEnabled_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFFlagPlayerSearchNewEmptyPageEnabled;
local l_FFlagUserSearchUseNewEndpointIXP_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagUserSearchUseNewEndpointIXP;
local v9 = v3.PureComponent:extend("UserSearchResultsPageLayerExposure");
v9.init = function(v10)
    v10.state = {
        layerExposedOnMount = false
    };
end;
v9.didMount = function(v11)
    v11:setState({
        layerExposedOnMount = true
    });
end;
v9.render = function(v12)
    if not v12.state.layerExposedOnMount then
        return nil;
    else
        return (v12.props.renderChild(v4.Dictionary.join(v12.props, {
            renderChild = v4.None
        })));
    end;
end;
return v5.connectUserLayer({
    l_getFStringSocialUserSearchResultsPageLayer_0()
}, function(v13, _)
    local v15 = v13[l_getFStringSocialUserSearchResultsPageLayer_0()] or {};
    return {
        enableRecommendationsSearchContext = v15.enableRecommendationsSearchContext,
        enableNewEmptySearchUI = if not l_getFFlagPlayerSearchNewEmptyPageEnabled_0() then nil else v15.new_empty_search_ui,
        shouldUseOmniSearchEndpoint = if not l_FFlagUserSearchUseNewEndpointIXP_0 then nil else v15.useOmniSearchEndpoint
    };
end)(v9);


local v0 = require(game:GetService("CorePackages").Workspace.Packages.JestConfigs);
return {
    displayName = "SocialAppIntegration-Players",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Enum.AccountSecurity.addRawValueMethodToEnum);
local v2 = require(l_CorePackages_0.enumerate);
local v3 = {
    Shown = "PremiumUpsellShown",
    Confirmed = "PremiumUpsellConfirmed",
    Cancelled = "PremiumUpsellCancelled",
    Failed = "PremiumUpsellFailed",
    InvalidProducts = "PremiumUpsellFailedInvalidProducts"
};
local v4 = v2(script.Name, v3);
v1(v4, v3);
return v4;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Enum.AccountSecurity.addRawValueMethodToEnum);
local v2 = require(l_CorePackages_0.enumerate);
local v3 = {
    UACatalog = "UACatalog"
};
local v4 = v2(script.Name, v3);
v1(v4, v3);
return v4;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_LocaleProvider_0 = require(l_CorePackages_0.IAPExperience).Locale.LocaleProvider;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v7 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v8 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v9 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local v10 = require(script.Parent.PremiumUpsellOverlay);
local v11 = require(script.Parent.Enum.PremiumUpsellTriggerContext);
local v12 = require(script.Parent.mapStateToProps);
local v13 = require(script.Parent.mapDispatchToProps);
local v14 = require(l_Modules_0.AvatarExperience.Common.Components.withOverlayFocusHandling);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withMappedNavigationParams);
local v16 = v3.PureComponent:extend(script.Name);
v16.init = function(v17)
    v17.closeCentralOverlay = function()
        v17.props.navigation.goBack();
    end;
    v17.promptPremium = function()
        v17.endPurchase();
        v17.props.promptPremium();
    end;
    v17.cancelPurchase = function()
        v17.endPurchase();
        if v17.props.onCancel then
            v17.props.onCancel();
        end;
    end;
    v17.endPurchase = function()
        v17.props.navigation.goBack();
        if v17.props.onOverlayClosed then
            v17.props.onOverlayClosed();
        end;
    end;
    v17.sendAnalyticEvent = function(v18, v19, v20)
        v17.props.analytics.EventStream:setRBXEventStream(v18, v19, v20);
    end;
    v17.sendCounter = function(v21)
        local l_Diag_0 = v17.props.analytics.Diag;
        local v23 = v11.toRawValue(v17.props.triggerContext);
        l_Diag_0:reportCounter(v21, 1);
        l_Diag_0:reportCounter(v23 .. v21, 1);
    end;
end;
v16.didMount = function(v24)
    if not (v24.props.iapProductsFetchingStatus ~= v9.NotStarted) or v24.props.iapProductsFetchingStatus == v9.Failed then
        v24.props.dispatchFetchIAPProducts(v24.props.networking);
    end;
end;
v16.render = function(v25)
    return v3.createElement(l_LocaleProvider_0, {
        locale = l_LocalizationService_0.RobloxLocaleId
    }, {
        PremiumUpsellOverlay = v3.createElement(v10, {
            screenSize = v25.props.screenSize,
            currencySymbol = if not v25.props.subscriptionProduct then nil else v25.props.subscriptionProduct.currencySymbol,
            robuxPrice = if not v25.props.subscriptionProduct then nil else v25.props.subscriptionProduct.price,
            robuxAmount = if not v25.props.subscriptionProduct then nil else v25.props.subscriptionProduct.robuxAmount,
            iapProductsFetchingStatus = v25.props.iapProductsFetchingStatus,
            promptPremium = v25.promptPremium,
            cancelPurchase = v25.cancelPurchase,
            endPurchase = v25.endPurchase,
            sendAnalyticEvent = v25.sendAnalyticEvent,
            sendCounter = v25.sendCounter,
            eventPrefix = v11.toRawValue(v25.props.triggerContext),
            dispatchCentralOverlay = v25.props.dispatchCentralOverlay
        })
    });
end;
return (v15((v14((l_RoactServices_0.connect({
    networking = v7,
    analytics = v8
})((v4.connect(v12, v13)(v16))))))));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local _ = require(l_CorePackages_0.Promise);
local v4 = require(l_CorePackages_0.IAPExperience);
local l_PremiumUpsellFlow_0 = v4.PurchaseFlow.PremiumUpsellFlow;
local l_PremiumUpsellFlowState_0 = v4.PurchaseFlow.PremiumUpsellFlowState;
local l_PurchaseErrorType_0 = v4.PurchaseFlow.PurchaseErrorType;
local _ = require(l_Modules_0.LuaApp.Enum.NativePurchaseStatus);
local v9 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local v10 = require(script.Parent.Enum.PremiumUpsellCounter);
local _ = require(l_Modules_0.LuaApp.Enum.PaymentPlatform);
local _ = require(l_Modules_0.LuaApp.Util.getPaymentPlatform);
local v13 = v2.PureComponent:extend(script.Name);
v13.init = function(v14)
    v14.state = {
        errorType = l_PurchaseErrorType_0.None
    };
    v14.failFlow = function(v15, v16)
        v14.sendCounter(v10.Failed);
        local v17 = {};
        if v16 ~= nil then
            v17 = v16;
        end;
        if v15 ~= nil then
            v17.errorType = v15;
        else
            v17.errorType = l_PurchaseErrorType_0.Unknown;
        end;
        v14:setState(v17);
    end;
    v14.purchasePremium = function()
        v14.sendCounter(v10.Confirmed);
        v14.props.promptPremium();
    end;
    v14.cancelPurchase = function()
        v14.sendCounter(v10.Cancelled);
        v14.props.cancelPurchase();
    end;
    v14.flowComplete = function()
        v14.props.endPurchase();
    end;
    v14.sendAnalyticEvent = function(v18, v19)
        v14.props.sendAnalyticEvent(v14.props.eventPrefix .. "PremiumUpsell", v18, v19);
    end;
    v14.sendCounter = function(v20)
        v14.props.sendCounter(v10.toRawValue(v20));
    end;
end;
v13.didMount = function(v21)
    v21.sendCounter(v10.Shown);
end;
v13.didUpdate = function(v22, v23)
    local l_props_0 = v22.props;
    if l_props_0.iapProductsFetchingStatus ~= v23.iapProductsFetchingStatus and l_props_0.iapProductsFetchingStatus == v9.Failed then
        v22.sendCounter(v10.InvalidProducts);
        v22.failFlow();
    end;
end;
v13.getFlowState = function(v25)
    local l_state_0 = v25.state;
    local l_props_1 = v25.props;
    if l_state_0.errorType ~= l_PurchaseErrorType_0.None then
        return l_PremiumUpsellFlowState_0.Error;
    elseif l_props_1.iapProductsFetchingStatus ~= v9.Done then
        return l_PremiumUpsellFlowState_0.None;
    elseif l_props_1.robuxPrice ~= nil then
        return l_PremiumUpsellFlowState_0.PurchaseModal;
    else
        return l_PremiumUpsellFlowState_0.Error;
    end;
end;
v13.getErrorType = function(v28)
    local l_state_1 = v28.state;
    local _ = v28.props;
    return l_state_1.errorType;
end;
v13.render = function(v31)
    local l_props_3 = v31.props;
    local _ = v31.state;
    return v2.createElement(l_PremiumUpsellFlow_0, {
        screenSize = l_props_3.screenSize,
        currencySymbol = l_props_3.currencySymbol,
        robuxPrice = l_props_3.robuxPrice,
        robuxAmount = l_props_3.robuxAmount,
        purchaseState = v31:getFlowState(),
        errorType = v31:getErrorType(),
        purchasePremium = v31.purchasePremium,
        cancelPurchase = v31.cancelPurchase,
        flowComplete = v31.flowComplete,
        onAnalyticEvent = v31.sendAnalyticEvent,
        eventPrefix = l_props_3.eventPrefix,
        dispatchCentralOverlay = l_props_3.dispatchCentralOverlay
    });
end;
return v13;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_UserInputService_0 = game:GetService("UserInputService");
local v2 = require(l_Modules_0.LuaApp.AppPage);
local v3 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v4 = require(l_Modules_0.LuaApp.Thunks.ApiFetchIAPProducts);
local v5 = require(l_Modules_0.LuaApp.Thunks.OpenNativePurchase);
local v6 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v7 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v8)
    return {
        dispatchCentralOverlay = function(v9, v10)
            return v8(v7(v9, v10));
        end,
        dispatchFetchIAPProducts = function(v11)
            v8(v4.Fetch(v11));
        end,
        closeCentralOverlay = function()
            v8(v3());
        end,
        promptPremium = function(v12, v13)
            local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
            if not (l_l_UserInputService_0_Platform_0 ~= Enum.Platform.Windows) or l_l_UserInputService_0_Platform_0 == Enum.Platform.OSX then
                v8(v6({
                    name = v2.BuildersClub
                }));
                return ;
            else
                v8(v5(v12, v13));
                return ;
            end;
        end
    };
end;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Thunks.ApiFetchIAPProducts);
return function(v1, _)
    local l_Subscriptions_0 = v1.IAPProducts.Subscriptions;
    return {
        screenSize = v1.ScreenSize,
        subscriptionProduct = not not l_Subscriptions_0 and l_Subscriptions_0[1] or nil,
        iapProductsFetchingStatus = v0.GetFetchingStatus(v1)
    };
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Common.Text);
local v4 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v6 = v2.PureComponent:extend("PrimaryStatWidget");
v6.defaultProps = {
    AnchorPoint = Vector2.new(0, 0),
    Position = UDim2.new(0, 0, 0, 0)
};
v6.GetMinimumWidth = function(v7, v8, v9)
    return math.max(v3.GetTextWidth(v7, v9, 42), (v3.GetTextWidth(v8, v9, 12))) + 74;
end;
v6.GetMinimumWidthRethemed = function(v10, v11, v12)
    return math.max(v3.GetTextWidth(v10, v12.Font.Title.Font, v12.Font.BaseSize * v12.Font.Title.RelativeSize), (v3.GetTextWidth(v11, v12.Font.CaptionHeader.Font, v12.Font.BaseSize * v12.Font.CaptionHeader.RelativeSize))) + 74;
end;
v6.render = function(v13)
    local l_icon_0 = v13.props.icon;
    local l_number_0 = v13.props.number;
    local l_label_0 = v13.props.label;
    local l_font_0 = v13.props.font;
    local l_color_0 = v13.props.color;
    local l_width_0 = v13.props.width;
    local l_LayoutOrder_0 = v13.props.LayoutOrder;
    local l_AnchorPoint_0 = v13.props.AnchorPoint;
    local l_Position_0 = v13.props.Position;
    local l_withNewThemeProvider_0 = v13.props.withNewThemeProvider;
    local v24 = l_width_0 - 74;
    return l_withStyle_0(function(v25)
        return v2.createElement("Frame", {
            AnchorPoint = l_AnchorPoint_0,
            Position = l_Position_0,
            Size = UDim2.new(0, l_width_0, 0, 44),
            BackgroundTransparency = 1,
            LayoutOrder = l_LayoutOrder_0
        }, {
            ListLayout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 10)
            }),
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 10),
                PaddingRight = UDim.new(0, 10)
            }),
            Icon = not not l_withNewThemeProvider_0 and v2.createElement(v4, {
                Size = UDim2.new(0, 44, 0, 44),
                Image = l_icon_0,
                ImageColor3 = v25.Theme.IconEmphasis.Color,
                ImageTransparency = v25.Theme.IconEmphasis.Transparency,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }) or v2.createElement(v4, {
                Size = UDim2.new(0, 44, 0, 44),
                Image = l_icon_0,
                ImageColor3 = l_color_0,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }),
            TextSection = v2.createElement("Frame", {
                Size = UDim2.new(0, v24, 1, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }, {
                Number = not not l_withNewThemeProvider_0 and v2.createElement("TextLabel", {
                    Size = UDim2.new(1, 0, 0, 42),
                    Position = UDim2.new(0, 0, 0, -7),
                    Text = l_number_0,
                    Font = v25.Font.Title.Font,
                    TextSize = v25.Font.BaseSize * v25.Font.Title.RelativeSize,
                    TextColor3 = v25.Theme.TextEmphasis.Color,
                    TextTransparency = v25.Theme.TextEmphasis.Transparency,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextScaled = true,
                    BackgroundTransparency = 1
                }) or v2.createElement("TextLabel", {
                    Size = UDim2.new(1, 0, 0, 42),
                    Position = UDim2.new(0, 0, 0, -7),
                    Text = l_number_0,
                    Font = l_font_0,
                    TextSize = 42,
                    TextColor3 = l_color_0,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextScaled = true,
                    BackgroundTransparency = 1
                }),
                Label = not not l_withNewThemeProvider_0 and v2.createElement("TextLabel", {
                    Size = UDim2.new(1, 0, 0, 12),
                    Position = UDim2.new(0, 0, 0, 28),
                    Text = l_label_0,
                    Font = v25.Font.CaptionHeader.Font,
                    TextSize = v25.Font.BaseSize * v25.Font.CaptionHeader.RelativeSize,
                    TextColor3 = v25.Theme.TextEmphasis.Color,
                    TextTransparency = v25.Theme.TextEmphasis.Transparency,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextScaled = true,
                    BackgroundTransparency = 1
                }) or v2.createElement("TextLabel", {
                    Size = UDim2.new(1, 0, 0, 12),
                    Position = UDim2.new(0, 0, 0, 28),
                    Text = l_label_0,
                    Font = l_font_0,
                    TextSize = 12,
                    TextColor3 = l_color_0,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextScaled = true,
                    BackgroundTransparency = 1
                })
            })
        });
    end);
end;
return v6;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Cryo);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppNotificationService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppNotificationService;
local l_AppGame_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppGame;
local v8 = require(l_script_FirstAncestor_0.AvatarExperience.Catalog.Services.Analytics);
local v9 = require(l_script_FirstAncestor_0.LuaApp.Services.AppEventIngestService);
local l_AppSessionService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppSessionService;
local v11 = require(script.Parent.ProfileUniversalAppWrapper);
local v12 = require(script.Parent.mapStateToProps);
local v13 = require(script.Parent.mapDispatchToProps);
local l_compose_0 = require(l_CorePackages_0.LuaSocialLibrariesDeps).SocialLibraries.config({}).RoduxTools.compose;
local v15 = require(l_script_FirstAncestor_0.LuaApp.Flags.FullProfileViewIXP);
return l_compose_0(v3.connect(v12, v13), l_RoactServices_0.connect({
    catalogAnalytics = v8,
    notificationService = l_AppNotificationService_0,
    game = l_AppGame_0,
    eventIngestService = v9,
    sessionService = l_AppSessionService_0
}))(function(v16)
    if v15.GetFFlagFullProfileViewIXPSetupEnabled() then
        v16 = v4.Dictionary.join(v16, {
            showFullProfileView = v15.useIsFeatureActive()
        });
    end;
    return v2.createElement(v11, v16);
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactNavigation);
local v6 = require(l_CorePackages_0.Cryo);
local _ = require(l_CorePackages_0.Packages.React);
local l_l_GuiService_0_NotificationTypeList_0 = l_GuiService_0:GetNotificationTypeList();
local l_LaunchGame_0 = require(l_CorePackages_0.Workspace.Packages.GameLaunch).LaunchGame;
local l_RobloxEventReceiver_0 = require(l_CorePackages_0.Workspace.Packages.RealtimeDelivery).RobloxEventReceiver;
local v11 = require(l_script_FirstAncestor_0.LuaApp.Navigation.AndroidBackButtonNavigationHandler.Container);
local v12 = require(l_script_FirstAncestor_0.LuaApp.Navigation.isRootRouteInRN);
local v13 = require(l_script_FirstAncestor_0.LuaApp.AppPage);
local l_SessionType_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppSessionization).SessionType;
local l_withNavigationProps_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppNavigation).withNavigationProps;
local v16 = require(l_script_FirstAncestor_0.Common.memoize);
local l_Localization_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppLocales).Localization;
local l_abbreviateCount_0 = require(l_CorePackages_0.Workspace.Packages.Localization).abbreviateCount;
local l_ChatEntryPointNames_0 = require(l_CorePackages_0.Workspace.Packages.SocialCommon).Enums.ChatEntryPointNames;
local _ = require(script.Parent.mapStateToProps);
local _ = require(script.Parent.mapDispatchToProps);
local v22 = require(l_script_FirstAncestor_0.Profile);
local l_PeekViewEntryPoint_0 = v22.PeekViewEntryPoint;
local l_ProfileScreens_0 = v22.ProfileScreens;
local l_ProfileTypes_0 = v22.ProfileTypes;
local _ = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenProfilePeekView);
local l_peekViewDismissedEvent_0 = require(l_CorePackages_0.Workspace.Packages.PeekView).analytics.peekViewDismissedEvent;
local l_GetFFlagPeekViewScrimLogging_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagPeekViewScrimLogging;
local v29 = require(l_script_FirstAncestor_0.LuaApp.Flags.FullProfileViewIXP);
local v30 = v4.Component:extend("ProfileUniversalAppWrapper");
v30.defaultProps = {
    enteredChatFromEntryPoint = function()
    end,
    renderProfilePeekView = nil
};
v30.init = function(v31)
    local l_props_0 = v31.props;
    v31.navigationAppContainer = v5.createAppContainer(l_PeekViewEntryPoint_0, nil);
    if l_props_0.debug_navigationAppContainer then
        v31.navigationAppContainer = l_props_0.debug_navigationAppContainer;
    end;
    v31._robloxEventReceiver = l_RobloxEventReceiver_0.new(v31.props.notificationService);
    v31.openChatDialog = function(v33)
        l_props_0.enteredChatFromEntryPoint(l_ChatEntryPointNames_0.ProfilePeekView);
        l_GuiService_0:BroadcastNotification(v33, l_l_GuiService_0_NotificationTypeList_0.LAUNCH_CONVERSATION);
    end;
    v31.joinGame = function(v34, v35, v36)
        l_LaunchGame_0(nil, nil, {
            userId = v34
        }, v31.props.game, v35, v36);
    end;
    v31.navigateToLuaAppPages = {
        [l_ProfileScreens_0.ProfilePeekView] = l_props_0.openProfilePeekView,
        [l_ProfileScreens_0.ViewUserProfile] = l_props_0.openProfileFullPage,
        [l_ProfileScreens_0.GameDetailsPeekView] = l_props_0.openGameDetailsPeekView,
        [l_ProfileScreens_0.Chat] = v31.openChatDialog,
        [l_ProfileScreens_0.JoinGame] = v31.joinGame,
        [l_ProfileScreens_0.ViewUserFriends] = l_props_0.openViewUserFriends,
        [l_ProfileScreens_0.ViewUserFollowing] = l_props_0.openViewUserFollowing,
        [l_ProfileScreens_0.ViewUserFollowers] = l_props_0.openViewUserFollowers,
        [l_ProfileScreens_0.ItemDetails] = l_props_0.openAppItemDetails,
        [l_ProfileScreens_0.ReportUser] = l_props_0.openReportUser,
        [l_ProfileScreens_0.PurchaseErrorToast] = l_props_0.showPurchaseErrorToast,
        [l_ProfileScreens_0.NetworkingErrorToast] = l_props_0.showNetworkingErrorToast,
        [l_ProfileScreens_0.ProfileQRCodePage] = l_props_0.navigateTo3DQRCodePage,
        [l_ProfileScreens_0.EditProfilePage] = function(v37)
            v31.props.openEditProfilePage(v6.Dictionary.join(v37, {
                robloxEventReceiver = v31._robloxEventReceiver
            }));
        end
    };
    v31.isAndroidBackButtonHandlerDisabled = v16(function(v38, v39, v40)
        local v41 = false;
        if v38 == v13.ProfilePeekView then
            v41 = v39 == v40;
        end;
        return not v41;
    end);
    v31.renderAndroidBackButtonNavigationHandler = v16(function(v42)
        return function(v43)
            return v4.createElement(v11, {
                canGoBackInRN = not v12(v43.state),
                navigateBackInRN = v43.pop,
                disabled = v42
            });
        end;
    end);
    v31.onPeekViewClosed = function()
        if l_props_0.onPeekViewClosed then
            l_props_0.onPeekViewClosed();
        end;
        l_props_0.navigateBackInAppRoute(true);
    end;
    if l_GetFFlagPeekViewScrimLogging_0() then
        v31.onPeekViewGoBack = function()
            if l_props_0.eventIngestService then
                l_peekViewDismissedEvent_0.logEvent(l_props_0.eventIngestService, "ProfilePeekView", {
                    dismissMethod = l_peekViewDismissedEvent_0.dismissMethodEnum.topBarTap,
                    page = l_props_0.currentAppPageName
                });
            end;
            l_props_0.navigateBackInAppRoute();
        end;
    end;
    v31.abbreviateCount = function(v44)
        return l_abbreviateCount_0(v44, l_Localization_0.new(l_LocalizationService_0.RobloxLocaleId):GetLocale());
    end;
    v31.renderProfilePeekView = l_props_0.renderProfilePeekView or function()
        local l_props_1 = v31.props;
        return v4.createElement(v31.navigationAppContainer, {
            profileType = l_props_1.profileType,
            profileUserId = l_props_1.profileUserId,
            peekViewProps = {
                showBackButton = l_props_1.showBackButton,
                mountAsFullView = ((not not v29.GetFFlagFullProfileViewIXPSetupEnabled() and l_props_1.showFullProfileView) and l_props_1.profileType ~= l_ProfileTypes_0.FromContacts) and true or l_props_1.mountAsFullView,
                onPeekViewClosed = v31.onPeekViewClosed,
                onPeekViewGoBack = if not l_GetFFlagPeekViewScrimLogging_0() then l_props_0.navigateBackInAppRoute else v31.onPeekViewGoBack
            },
            navigationParams = {
                absolutePosition = l_props_1.absolutePosition,
                isHomePageCarousel = l_props_1.isHomePageCarousel,
                recommendationContextType = l_props_1.recommendationContextType,
                isRecommendation = l_props_1.isRecommendation,
                mutualFriendsCount = l_props_1.mutualFriendsCount,
                recommendationSessionId = l_props_1.recommendationSessionId,
                recommendationRank = l_props_1.recommendationRank,
                source = l_props_1.source,
                offNetworkFriendRequestToken = l_props_1.offNetworkFriendRequestToken,
                shareLinkId = l_props_1.shareLinkId,
                contextualInfoType = l_props_1.contextualInfoType,
                contextualInfoDisplay = l_props_1.contextualInfoDisplay
            },
            contactProps = l_props_1.contactProps or {
                contactId = l_props_1.contactId,
                contactName = l_props_1.contactName
            },
            analyticsProps = l_props_1.analyticsProps,
            navigateToLuaAppPages = v31.navigateToLuaAppPages,
            renderAndroidBackButtonNavigationHandler = v31.renderAndroidBackButtonNavigationHandler((v31.isAndroidBackButtonHandlerDisabled(l_props_1.currentAppPageName, l_props_1.currentAppPageDetail, l_props_1.profileUserId))),
            abbreviateCount = v31.abbreviateCount,
            robloxEventReceiver = v31._robloxEventReceiver,
            catalogAnalytics = l_props_1.catalogAnalytics,
            eventIngestService = l_props_1.eventIngestService,
            sessionService = l_props_1.sessionService,
            sessionType = l_SessionType_0,
            localUserId = l_props_1.localUserId,
            wideMode = l_props_1.wideMode
        });
    end;
end;
v30.render = function(v46)
    return v46.renderProfilePeekView();
end;
v30.didMount = function(v47)
    if v47.props.onOpen then
        v47.props.onOpen();
    end;
end;
v30.willUnmount = function(v48)
    if v48.props.onClose then
        v48.props.onClose();
    end;
end;
return (l_withNavigationProps_0(function(v49, v50)
    return v6.Dictionary.join(v50 or {}, {
        profileUserId = v49
    });
end)(v30));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v2 = require(l_CorePackages_0.Workspace.Packages.NavigationRodux);
local v3 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateBack);
local v4 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenGameDetails);
local v5 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDownTo3DQRCodePage);
local l_NavigateDownToViewUserProfile_0 = v2.Thunks.NavigateDownToViewUserProfile;
local v7 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenProfilePeekView);
local v8 = require(l_script_FirstAncestor_0.LuaApp.Thunks.OpenAppItemDetails);
local v9 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDown);
local v10 = require(l_script_FirstAncestor_0.LuaApp.AppPage);
local v11 = require(l_script_FirstAncestor_0.LuaApp.Http.UrlBuilder);
local v12 = require(l_script_FirstAncestor_0.LuaApp.Http.Url);
local v13 = require(l_script_FirstAncestor_0.LuaApp.Thunks.SetPurchaseErrorToast);
local v14 = require(l_script_FirstAncestor_0.LuaApp.Thunks.SetNetworkingErrorToast);
local _ = require(l_CorePackages_0.Packages.Dash);
local l_TextKeys_0 = require(l_script_FirstAncestor_0.Profile).TextKeys;
local _ = require(l_CorePackages_0.Workspace.Packages.ProfileQRCode);
local _ = require(l_CorePackages_0.Workspace.Packages.SocialCommon);
local l_EnteredChatFromEntryPoint_0 = require(l_CorePackages_0.Workspace.Packages.AppChat).Actions.EnteredChatFromEntryPoint;
return function(v20)
    return {
        navigateBackInAppRoute = function(v21)
            v20(v3(v21));
        end,
        openViewUserFriends = function(v22, v23)
            if v22 == (v23 and v23.localUserId) then
                v20(v9({
                    name = v10.ViewFriends,
                    extraProps = {
                        navigateToFriendsLandingEventStart = {
                            startPage = v10.ProfilePeekView,
                            startTime = v23 and v23.startTime
                        }
                    }
                }, nil));
                return ;
            else
                v20(v9({
                    name = v10.GenericWebPage,
                    detail = v11.user.friends({
                        userId = v22
                    }),
                    extraProps = {
                        titleKey = l_TextKeys_0.Friends
                    }
                }, nil));
                return ;
            end;
        end,
        openViewUserFollowers = function(v24)
            v20(v9({
                name = v10.GenericWebPage,
                detail = string.format("%susers/%s/friends#/followers", v12.BASE_URL, v24),
                extraProps = {
                    titleKey = l_TextKeys_0.Followers
                }
            }, nil));
        end,
        openViewUserFollowing = function(v25)
            v20(v9({
                name = v10.GenericWebPage,
                detail = string.format("%susers/%s/friends#/following", v12.BASE_URL, v25),
                extraProps = {
                    titleKey = l_TextKeys_0.Following
                }
            }, nil));
        end,
        openReportUser = function(v26)
            v20(v9({
                name = v10.GenericWebPage,
                detail = string.format("%sabusereport/userprofile?id=%s", v12.BASE_URL, v26),
                extraProps = {
                    titleKey = l_TextKeys_0.Report
                }
            }, nil));
        end,
        openGameDetailsPeekView = function(v27, v28)
            v20(v4(v27, v28));
        end,
        openProfileFullPage = function(v29)
            v20(l_NavigateDownToViewUserProfile_0(v29));
        end,
        openProfilePeekView = function(v30, v31)
            v20(v7(v30, v31));
        end,
        openAppItemDetails = function(v32, v33, v34)
            v20(v8(v32, v33, v34));
        end,
        showPurchaseErrorToast = function(v35)
            v20(v13(v35));
        end,
        showNetworkingErrorToast = function(v36)
            v20(v14(v36));
        end,
        navigateTo3DQRCodePage = function(v37)
            v20(v5(v37));
        end,
        enteredChatFromEntryPoint = function(v38)
            v20(l_EnteredChatFromEntryPoint_0(v38));
        end
    };
end;


local l_CorePackages_0 = game:GetService("CorePackages");
return function(v1, _)
    local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
    local v4 = v1.Navigation.history[#v1.Navigation.history];
    local v5 = v4[#v4];
    return {
        currentAppPageName = not not v5 and v5.name or nil,
        currentAppPageDetail = not not v5 and v5.detail or nil,
        localUserId = v1.LocalUserId,
        wideMode = v1.FormFactor == l_FormFactor_0.WIDE
    };
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local l_AppNotificationService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppNotificationService;
local l_PermissionsProtocol_0 = require(l_CorePackages_0.Workspace.Packages.PermissionsProtocol).PermissionsProtocol;
local v4 = require(l_CorePackages_0.Workspace.Packages.ProfileQRCode);
local v5 = require(l_CorePackages_0.Packages.React);
local v6 = require(l_CorePackages_0.Roact);
local _ = require(l_CorePackages_0.Workspace.Packages.RoactUtils);
local v8 = require(l_script_FirstAncestor_0.LuaApp.AppPage);
local v9 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateBack);
local v10 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDown);
local v11 = require(l_script_FirstAncestor_0.LuaApp.Enum.OverlayType);
local l_RobloxEventReceiver_0 = require(l_CorePackages_0.Workspace.Packages.RealtimeDelivery).RobloxEventReceiver;
local v13 = require(l_script_FirstAncestor_0.LuaApp.Actions.SetCentralOverlay);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local v15 = require(l_script_FirstAncestor_0.LuaApp.Hooks.useRoactService);
return function(v16)
    local v17 = l_useDispatch_0();
    local v18 = v15(l_AppNotificationService_0);
    return v6.createElement(v4.ProfileQRCodeEntryPoint, {
        robloxEventReceiver = v5.useMemo(function()
            return l_RobloxEventReceiver_0.new(v18);
        end, {
            v18
        }),
        source = v16.source,
        onClose = v5.useCallback(function()
            v17(v9(true));
        end, {}),
        openQrCodeScanner = v5.useCallback(function()
            l_PermissionsProtocol_0.default:checkOrRequestPermissions({
                l_PermissionsProtocol_0.Permissions.CAMERA_ACCESS
            }):andThen(function(v19)
                if v19 == l_PermissionsProtocol_0.Status.AUTHORIZED then
                    v17(v10({
                        name = v8.ScanQrCode
                    }));
                    return ;
                else
                    v17(v13(v11.CameraPermissionPrompt));
                    return ;
                end;
            end);
        end, {})
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_Modules_0.LuaApp.Components.GenericIconTextButton);
local l_Colors_0 = require(l_CorePackages_0.Workspace.Packages.Style).Colors;
local v6 = UDim2.new(0, 37, 0, 37);
local v7 = v2.PureComponent:extend("QQButton");
v7.render = function(v8)
    local l_props_0 = v8.props;
    return v2.createElement(v4, v3.Dictionary.join(l_props_0, {
        iconImage = "rbxasset://textures/ui/LuaApp/graphic/Auth/qqlogo.png",
        iconSize = v6,
        leftIconEnabled = true,
        themeSettings = {
            Color = l_props_0.Color or l_Colors_0.Blue,
            Transparency = l_props_0.Transparency or 0,
            OnPressTransparency = 0.5,
            DisabledTransparency = 0.5,
            DisabledColor = l_Colors_0.White,
            Text = {
                Color = l_Colors_0.White,
                Transparency = 0
            },
            Border = {
                Hidden = true,
                Transparency = 1
            }
        },
        iconRightPadding = 10
    }));
end;
return v7;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_Modules_0.Common.Signal);
local v5 = require(l_Modules_0.LuaApp.Enum.ScrollMovementDirection);
local v6 = require(l_Modules_0.LuaApp.Components.LoadingBarWithTheme);
local v7 = require(l_Modules_0.LuaApp.Components.RefreshScrollingFrame);
local v8 = require(l_Modules_0.LuaApp.Flags.GetFFlagRSFLoadMoreFix);
local v9 = require(l_Modules_0.LuaApp.Flags.GetFFlagOptScrollingEventing);
local v10 = v3.PureComponent:extend("RefreshScrollingFrameWithLoadMore");
v10.defaultProps = {
    preloadDistance = 2000
};
v10.init = function(v11)
    v11._isMounted = false;
    v11.scrollToTopSignal = v4.new();
    v11.scrollToTop = function()
        v11.scrollToTopSignal:fire();
    end;
    v11.state = {
        isLoadingMore = false,
        isScrollable = false
    };
    v11.lastLoadMoreThreshold = 0;
    v11.lastCanvasHeight = 0;
    v11.loadMore = function()
        local l_onLoadMore_0 = v11.props.onLoadMore;
        v11:setState({
            isLoadingMore = true
        });
        l_onLoadMore_0():andThen(function()
            if v11._isMounted then
                v11:setState({
                    isLoadingMore = false
                });
            end;
        end, function()
            if v11._isMounted then
                v11:setState({
                    isLoadingMore = false
                });
            end;
            v11.lastLoadMoreThreshold = 0;
        end);
    end;
    v11.lastScrollPosition = 0;
    v11.scrollMovementDirection = v5.Backward;
    v11.checkScrollDirectionChanged = function(v13)
        local l_Y_0 = v13.CanvasPosition.Y;
        if not (l_Y_0 >= 0) or l_Y_0 == v11.lastScrollPosition then
            return ;
        else
            local v15 = nil;
            v15 = if v11.lastScrollPosition < l_Y_0 then v5.Forward else v5.Backward;
            if v15 ~= v11.scrollMovementDirection then
                if v11.props.onScrollDirectionChanged ~= nil then
                    v11.props.onScrollDirectionChanged(v15);
                end;
                v11.scrollMovementDirection = v15;
            end;
            v11.lastScrollPosition = l_Y_0;
            return ;
        end;
    end;
    v11.onCanvasPositionChanged = function(v16)
        local l_preloadDistance_0 = v11.props.preloadDistance;
        local l_onLoadMore_1 = v11.props.onLoadMore;
        local l_isLoadingMore_0 = v11.state.isLoadingMore;
        local l_Y_1 = v16.CanvasPosition.Y;
        if l_onLoadMore_1 and not l_isLoadingMore_0 then
            if v16.CanvasSize.Y.Scale ~= 0 then
                warn("RefreshScrollingFrame: Scrollingframe.CanvasSize.Y.Scale is not 0\n\t\t\t\tContent loading would not work properly.");
                return ;
            else
                local v21 = (v16.CanvasSize.Y.Offset - (v11._absoluteWindowSize or v16.AbsoluteWindowSize).Y) - l_preloadDistance_0;
                local v22 = false;
                if v21 < l_Y_1 then
                    v22 = false;
                    if v21 ~= v11.lastLoadMoreThreshold then
                        v22 = v21 ~= v11.lastLoadMoreThreshold + 56;
                    end;
                end;
                if v22 then
                    v11.lastLoadMoreThreshold = v21;
                    v11.loadMore();
                end;
            end;
        end;
        if v11.props.onCanvasPositionChangedCallback then
            v11.props.onCanvasPositionChangedCallback(l_Y_1);
        end;
        if v11.props.onScrollDirectionChanged ~= nil then
            v11.checkScrollDirectionChanged(v16);
        end;
    end;
    v11.onAbsoluteWindowSizeChanged = function(v23)
        v11._absoluteWindowSize = v23.AbsoluteWindowSize;
        v11.onCanvasSizeChanged(v23);
    end;
    v11.onCanvasSizeChanged = function(v24)
        local l_Offset_0 = v24.CanvasSize.Y.Offset;
        local l_Y_2 = (v11._absoluteWindowSize or v24.AbsoluteWindowSize).Y;
        if l_Offset_0 < v11.lastCanvasHeight and l_Offset_0 ~= v11.lastCanvasHeight - 56 then
            v11.lastLoadMoreThreshold = 0;
        end;
        v11.lastCanvasHeight = l_Offset_0;
        if l_Y_2 == 0 then
            return ;
        elseif v11._isMounted then
            local v27 = l_Y_2 < l_Offset_0;
            if v27 ~= v11.state.isScrollable then
                v11:setState({
                    isScrollable = v27
                });
            end;
            if not (not ((v11.props.onLoadMore and not v11.state.isLoadingMore) and not v27) or v11.props.initializing) then
                v11.loadMore();
            end;
            return ;
        else
            return ;
        end;
    end;
    v11.createFooter = function()
        return v11.state.isLoadingMore and v3.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, 56)
        }, {
            LoadingBar = v3.createElement(v6)
        });
    end;
end;
v10.didMount = function(v28)
    v28._isMounted = true;
    if v8() then
        local v29 = if not v28.props.forwardRef then nil else v28.props.forwardRef.current;
        if v29 then
            v28.onCanvasSizeChanged(v29);
        end;
    end;
    if v9() then
        local v30 = if not v28.props.forwardRef then nil else v28.props.forwardRef.current;
        if v30 then
            v28._absoluteWindowSize = v30.AbsoluteWindowSize;
        end;
    end;
end;
v10.willUnmount = function(v31)
    v31._isMounted = false;
end;
v10.render = function(v32)
    return v3.createElement(v7, v2.Dictionary.join(v32.props, {
        onCanvasPositionChangedCallback = v32.onCanvasPositionChanged,
        onCanvasSizeChangedCallback = v32.onCanvasSizeChanged,
        onAbsoluteWindowSizeChangedCallback = if not v9() then nil else v32.onAbsoluteWindowSizeChanged,
        createFooter = v32.createFooter,
        onLoadMore = v2.None,
        bottomPadding = v32.props.bottomPadding,
        [v3.Children] = v2.None,
        [v3.Ref] = v32.props.forwardRef
    }), v32.props[v3.Children]);
end;
return v3.forwardRef(function(v33, v34)
    return v3.createElement(v10, v2.Dictionary.join(v33, {
        forwardRef = v34
    }));
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_RunService_0 = game:GetService("RunService");
local l_withStyle_0 = require(game:GetService("CorePackages").UIBlox).Style.withStyle;
local v3 = require(l_Modules_0.Common.Roact);
local v4 = require(l_Modules_0.Common.RoactUtilities.ExternalEventConnection);
local v5 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v6 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v7 = require(l_Modules_0.LuaApp.Components.ShimmerAnimation);
local v8 = {
    Image = "LuaApp/buttons/buttonFill",
    SliceCenter = Rect.new(8, 8, 9, 9)
};
local v9 = {
    Image = "LuaApp/buttons/buttonStroke",
    SliceCenter = Rect.new(8, 8, 9, 9)
};
local v10 = v3.PureComponent:extend("RetryButton");
v10.init = function(v11)
    v11.state = {
        isRetrying = false,
        isInCooldown = false
    };
    v11._isMounted = false;
    v11.cooldownTimer = 0;
    v11.safeSetState = function(v12)
        if v11._isMounted then
            v11:setState(v12);
        end;
    end;
    v11.onActivated = function()
        local l_onRetry_0 = v11.props.onRetry;
        if not ((v11.state.isRetrying or v11.state.isInCooldown) or not l_onRetry_0) then
            v11.cooldownTimer = 0;
            v11.safeSetState({
                isRetrying = true,
                isInCooldown = true
            });
            l_onRetry_0():andThen(function()
                v11.safeSetState({
                    isRetrying = false
                });
            end, function()
                v11.safeSetState({
                    isRetrying = false
                });
            end);
        end;
    end;
    v11.renderSteppedCallback = function(v14)
        if v11.state.isInCooldown then
            v11.cooldownTimer = v11.cooldownTimer + v14;
            if v11.cooldownTimer >= 1.5 then
                v11.safeSetState({
                    isInCooldown = false
                });
            end;
        end;
    end;
end;
v10.didMount = function(v15)
    v15._isMounted = true;
end;
v10.willUnmount = function(v16)
    v16._isMounted = false;
end;
v10.isDisabled = function(v17)
    return v17.state.isRetrying or v17.state.isInCooldown;
end;
local function _(v18, v19)
    return 1 - (1 - v18) * (1 - v19);
end;
v10.render = function(v21)
    local l_Position_0 = v21.props.Position;
    local l_AnchorPoint_0 = v21.props.AnchorPoint;
    local l_LayoutOrder_0 = v21.props.LayoutOrder;
    local v25 = v21:isDisabled();
    return l_withStyle_0(function(v26)
        return v3.createElement(v5, {
            Size = UDim2.new(0, 44, 0, 44),
            Position = l_Position_0,
            AnchorPoint = l_AnchorPoint_0,
            LayoutOrder = l_LayoutOrder_0,
            BackgroundTransparency = 1,
            Image = v8.Image,
            ImageColor3 = v26.Theme.UIEmphasis.Color,
            ImageTransparency = 1 - (1 - v26.Theme.UIEmphasis.Transparency) * (1 - (not v25 and 0 or 0.5)),
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = v8.SliceCenter,
            [v3.Event.Activated] = v21.onActivated
        }, {
            Border = v3.createElement(v6, {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                Image = v9.Image,
                ImageColor3 = v26.Theme.SecondaryDefault.Color,
                ImageTransparency = 1 - (1 - v26.Theme.SecondaryDefault.Transparency) * (1 - (not v25 and 0 or 0.5)),
                BorderSizePixel = 0,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = v9.SliceCenter
            }),
            Spinner = v3.createElement(v6, {
                Size = UDim2.new(0, 36, 0, 36),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.new(0.5, 0, 0.5, 0),
                BackgroundTransparency = 1,
                Image = "LuaApp/icons/common_refresh",
                ImageColor3 = v26.Theme.IconEmphasis.Color,
                ImageTransparency = 1 - (1 - v26.Theme.IconEmphasis.Transparency) * (1 - (not v25 and 0 or 0.5))
            }),
            Shimmer = v25 and v3.createElement(v7, {
                Size = UDim2.new(1, -2, 1, -2),
                Position = UDim2.new(0, 1, 0, 1)
            }),
            renderStepped = v3.createElement(v4, {
                event = l_RunService_0.renderStepped,
                callback = v21.renderSteppedCallback
            })
        });
    end);
end;
return v10;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Enum.AccountSecurity.addRawValueMethodToEnum);
local v2 = require(l_CorePackages_0.enumerate);
local v3 = {
    UnknownError = "UnknownError",
    UpsellShown = "UpsellShown",
    UpsellModalShown = "UpsellModalShown",
    UpsellGenericModalShown = "UpsellGenericModalShown",
    UpsellCancelled = "UpsellCancelled",
    UpsellFailedNotEnoughRobux = "UpsellFailedNotEnoughRobux",
    UpsellFailedNativePurchase = "UpsellFailedNativePurchase",
    UpsellFailedTwoStep = "UpsellFailedTwoStep",
    UpsellFailed = "UpsellFailed",
    UpsellSuccess = "UpsellSuccess",
    ShowU13PaymentModal = "ShowU13PaymentModal",
    ShowU13MonthlyThreshold1Modal = "ShowU13MonthlyThreshold1Modal",
    ShowU13MonthlyThreshold2Modal = "ShowU13MonthlyThreshold2Modal",
    ShowParentalConsentWarningPaymentModal13To17 = "ShowParentalConsentWarningPaymentModal13To17",
    ConfirmU13PaymentModal = "ConfirmU13PaymentModal",
    ConfirmU13MonthlyThreshold1Modal = "ConfirmU13MonthlyThreshold1Modal",
    ConfirmU13MonthlyThreshold2Modal = "ConfirmU13MonthlyThreshold2Modal",
    ConfirmParentalConsentWarningPaymentModal13To17 = "ConfirmParentalConsentWarningPaymentModal13To17",
    ShownEnableTwoStepAuth = "ShownEnableTwoStepAuth",
    ShownTwoStepAuth = "ShownTwoStepAuth",
    FailedShowTwoStepAuth = "FailedShowTwoStepAuth",
    FailedShowTwoStepAuthUnknown = "FailedShowTwoStepAuthUnknown",
    CompletedTwoStepAuth = "CompletedTwoStepAuth",
    InvalidatedTwoStepAuth = "InvalidatedTwoStepAuth",
    AbandonedTwoStepAuth = "AbandonedTwoStepAuth",
    LoadFailedTwoStepAuth = "LoadFailedTwoStepAuth"
};
local v4 = v2(script.Name, v3);
v1(v4, v3);
return v4;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Enum.AccountSecurity.addRawValueMethodToEnum);
local v2 = require(l_CorePackages_0.enumerate);
local v3 = {
    UACatalog = "UACatalog",
    UAGamepass = "UAGamepass"
};
local v4 = v2(script.Name, v3);
v1(v4, v3);
return v4;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactRodux);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppLinking_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLinking;
local v9 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v10 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local l_LocaleProvider_0 = require(l_CorePackages_0.IAPExperience).Locale.LocaleProvider;
local v13 = require(script.Parent.RobuxUpsellOverlay);
local v14 = require(script.Parent.mapStateToProps);
local v15 = require(script.Parent.mapDispatchToProps);
local v16 = require(script.Parent.Enum.RobuxUpsellTriggerContext);
local v17 = require(l_Modules_0.AvatarExperience.Common.Components.withOverlayFocusHandling);
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withMappedNavigationParams);
local v19 = require(l_Modules_0.LuaApp.Enum.PaymentPlatform);
local v20 = require(l_Modules_0.LuaApp.Util.getPaymentPlatform);
local v21 = require(l_Modules_0.LuaApp.Flags.GetFFlagUADesktopPurchaseWarnings);
local v22 = require(l_Modules_0.LuaApp.Flags.GetFFlagGuardTermOfUseByIsLinkAllowed);
local v23 = v4.PureComponent:extend(script.Name);
local v24 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
v23.init = function(v25)
    v25.openSecuritySettings = function()
        v25.endPurchase();
        v25.props.openSecuritySettings();
    end;
    v25.openBuyRobux = function()
        v25.endPurchase();
        v25.props.openBuyRobux();
    end;
    v25.endPurchase = function()
        v25.props.navigation.goBack();
        v25.props.endPurchase();
        if v25.props.onOverlayClosed then
            v25.props.onOverlayClosed();
        end;
    end;
    v25.sendAnalyticEvent = function(v26, v27, v28)
        v25.props.analytics.EventStream:setRBXEventStream(v26, v27, v28);
    end;
    v25.sendCounter = function(v29)
        local l_Diag_0 = v25.props.analytics.Diag;
        local v31 = v16.toRawValue(v25.props.triggerContext);
        l_Diag_0:reportCounter(v29, 1);
        l_Diag_0:reportCounter(v31 .. v29, 1);
        local v32 = v19.toRawValue(v20());
        l_Diag_0:reportCounter(v29 .. v32, 1);
        l_Diag_0:reportCounter(v31 .. v29 .. v32, 1);
    end;
    v25.handleOpenTermsOfUseOpen = function()
        if v25.props.disableWebViewSupport == true then
            v25.props.linking:openURL(v24.static.about.terms());
            return ;
        else
            v25.props.openTermsOfUse();
            return ;
        end;
    end;
end;
v23.isLinkAllowed = function(_)
    local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
    local v35 = true;
    if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.Windows then
        v35 = true;
        if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.OSX then
            v35 = l_l_UserInputService_0_Platform_0 == Enum.Platform.Linux;
        end;
    end;
    return v35;
end;
v23.render = function(v36)
    return v4.createElement(l_LocaleProvider_0, {
        locale = l_LocalizationService_0.RobloxLocaleId
    }, {
        RobuxUpsellOverlay = v4.createElement(v13, {
            screenSize = v36.props.screenSize,
            networking = v36.props.networking,
            userId = v36.props.userId,
            dispatchFetchRobuxProduct = function()
                return v36.props.dispatchFetchRobuxProduct(v36.props.networking, v36.props.userRobux, v36.props.priceInRobux);
            end,
            dispatchFetchIAPPurchaseWarning = function(v37, v38)
                if not v21() then
                    return v36.props.dispatchFetchIAPPurchaseWarning(v36.props.networking, v37);
                else
                    return v36.props.dispatchFetchIAPPurchaseWarning(v36.props.networking, v37, v38, v36.props.isPremium);
                end;
            end,
            dispatchPostAckPurchaseWarning = function(v39)
                return v36.props.dispatchPostAckPurchaseWarning(v36.props.networking, v39);
            end,
            dispatchCentralOverlay = v36.props.dispatchCentralOverlay,
            iapPurchase = v36.props.iapPurchase,
            itemIcon = v36.props.itemIcon,
            itemName = v36.props.itemName,
            beforeRobuxBalance = v36.props.userRobux,
            priceInRobux = v36.props.priceInRobux,
            endPurchase = v36.endPurchase,
            promptRobux = v36.props.promptRobux,
            openTermsOfUse = if not v22() then v36.handleOpenTermsOfUseOpen else v36:isLinkAllowed() and v36.handleOpenTermsOfUseOpen or nil,
            openSecuritySettings = v36.openSecuritySettings,
            openBuyRobux = v36.openBuyRobux,
            renderChallenge = v36.props.renderChallenge,
            purchaseItem = v36.props.purchaseItem,
            equipItem = v36.props.equipItem,
            sendAnalyticEvent = v36.sendAnalyticEvent,
            sendCounter = v36.sendCounter,
            eventPrefix = v16.toRawValue(v36.props.triggerContext)
        })
    });
end;
return (l_withNavigation_0((v18((v17((l_RoactServices_0.connect({
    networking = v9,
    analytics = v10,
    linking = l_AppLinking_0
})((l_RoactAppPolicy_0.connect(function(v40, _)
    return {
        disableWebViewSupport = not v40.getWebViewSupport(),
        enablePremiumUserFeatures = v40.getEnablePremiumUserFeatures()
    };
end)((v5.connect(v14, v15)(v23))))))))))));