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


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


local v0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.BlockingUtility);
local v1 = require(script.Parent.Parent.Actions.SetPlayerIsBlocked);
return function(v2)
    return function(v3)
        coroutine.wrap(function()
            if v0:BlockPlayerAsync(v2) then
                v3:dispatch(v1(v2, true));
            end;
        end)();
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v4 = require(l_RobloxGui_0.Modules.PlayerPermissionsModule);
local v5 = require(l_RobloxGui_0.Modules.TenFootInterface);
local v6 = require(l_RobloxGui_0.Modules.BlockingUtility);
local l_Images_0 = require(l_CorePackages_0.UIBlox).App.ImageSet.Images;
local l_Parent_0 = script.Parent.Parent;
local v9 = {
    Admin = l_Images_0["icons/status/player/admin"],
    Intern = l_Images_0["icons/status/player/intern"],
    Star = l_Images_0["icons/status/player/videostar"]
};
local v10 = require(l_Parent_0.Actions.SetPlayerSpecialGroupIcon);
local v11 = require(l_Parent_0.Actions.SetPlayerIsCreator);
local v12 = require(l_Parent_0.Actions.SetPlayerAvatarIcon);
local v13 = require(l_Parent_0.Actions.SetPlayerIsBlocked);
local v14 = require(l_Parent_0.Actions.SetPlayerFriendStatus);
local function v22(v15, v16, v17)
    local l_players_0 = v15:getState().players;
    local v19 = false;
    for _, v21 in ipairs(l_players_0) do
        if v16 == v21 then
            v19 = true;
            break;
        end;
    end;
    if v19 then
        v15:dispatch(v17);
    end;
end;
local function v25(v23, v24)
    if not v4.IsPlayerAdminAsync(v24) then
        if not v4.IsPlayerStarAsync(v24) then
            if v4.IsPlayerInternAsync(v24) then
                v22(v23, v24, v10(v24, v9.Intern));
            end;
            return ;
        else
            v22(v23, v24, v10(v24, v9.Star));
            return ;
        end;
    else
        v22(v23, v24, v10(v24, v9.Admin));
        return ;
    end;
end;
local function v28(v26, v27)
    if game.CreatorType ~= Enum.CreatorType.Group then
        return ;
    else
        if v4.CanPlayerManagePlaceAsync(v27) then
            v22(v26, v27, v11(v27, true));
        end;
        return ;
    end;
end;
local function v31(v29, v30)
    if v5:IsEnabled() then
        v22(v29, v30, v12(v30, "rbxthumb://type=Avatar&id=" .. v30.UserId .. "&w=100&h=100"));
        return ;
    else
        return ;
    end;
end;
local function v34(v32, v33)
    if v6:IsPlayerBlockedByUserId(v33.UserId) then
        v22(v32, v33, v13(v33, true));
    end;
end;
local function v37(v35, v36)
    if (v36 ~= l_Players_0.LocalPlayer and v36.Parent == l_Players_0) and l_Players_0.LocalPlayer.Parent == l_Players_0 then
        v22(v35, v36, v14(v36, l_Players_0.LocalPlayer:GetFriendStatus(v36)));
    end;
end;
return function(v38)
    return function(v39)
        coroutine.wrap(v25)(v39, v38);
        coroutine.wrap(v28)(v39, v38);
        coroutine.wrap(v31)(v39, v38);
        coroutine.wrap(v34)(v39, v38);
        coroutine.wrap(v37)(v39, v38);
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_Players_0 = game:GetService("Players");
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v5 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local v6 = require(l_RobloxGui_0.Modules.FriendingUtility);
local l_SendNotificationInfo_0 = l_RobloxGui_0:WaitForChild("SendNotificationInfo");
return function(v8, v9)
    return function()
        coroutine.wrap(function()
            local l_v6_FriendCountAsync_0 = v6:GetFriendCountAsync(v8.UserId);
            local l_v6_FriendCountAsync_1 = v6:GetFriendCountAsync(l_LocalPlayer_0.UserId);
            if l_v6_FriendCountAsync_1 and l_v6_FriendCountAsync_0 then
                if l_v6_FriendCountAsync_1 < 200 and l_v6_FriendCountAsync_0 < 200 then
                    l_RbxAnalyticsService_0:ReportCounter("PlayerDropDown-RequestFriendship");
                    l_RbxAnalyticsService_0:TrackEvent("Game", "RequestFriendship", "PlayerDropDown");
                    if v8.Parent == l_Players_0 then
                        l_LocalPlayer_0:RequestFriendship(v8);
                        return ;
                    end;
                elseif l_v6_FriendCountAsync_1 >= 200 then
                    l_SendNotificationInfo_0:Fire({
                        Title = not v9 and "Cannot send friend request" or "Cannot accept friend request",
                        Text = "You are at the max friends limit.",
                        Duration = 5
                    });
                    return ;
                elseif l_v6_FriendCountAsync_0 >= 200 then
                    l_SendNotificationInfo_0:Fire({
                        Title = not v9 and "Cannot send friend request" or "Cannot accept friend request",
                        Text = v5:FormatByKey("PlayerDropDown.OtherPlayerFriendLimit", {
                            RBX_NAME = v8.Name
                        }),
                        Duration = 5
                    });
                end;
                return ;
            else
                return ;
            end;
        end)();
    end;
end;


local v0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.BlockingUtility);
local v1 = require(script.Parent.Parent.Actions.SetPlayerIsBlocked);
return function(v2)
    return function(v3)
        coroutine.wrap(function()
            if v0:UnblockPlayerAsync(v2) then
                v3:dispatch(v1(v2, false));
            end;
        end)();
    end;
end;


local v0 = {};
local l_Players_0 = game:GetService("Players");
local _ = game:GetService("CoreGui"):WaitForChild("RobloxGui"):WaitForChild("Modules");
local v3 = {};
v3.__index = v3;
v3.new = function(v4)
    local v5 = setmetatable({}, v3);
    v5.player = v4;
    v5.pendingGroupData = {};
    v5.pendingCanManage = {};
    v5.groupData = nil;
    v5.canManage = nil;
    return v5;
end;
v3.getGroupDataAsync = function(v6)
    if not v6.groupData then
        table.insert(v6.pendingGroupData, (coroutine.running()));
        coroutine.yield();
        return v6.groupData;
    else
        return v6.groupData;
    end;
end;
v3.getCanManageAsync = function(v7)
    if v7.canManage ~= nil then
        return v7.canManage;
    else
        table.insert(v7.pendingCanManage, (coroutine.running()));
        coroutine.yield();
        return v7.canManage;
    end;
end;
v3.setGroupData = function(v8, v9)
    v8.groupData = v9;
    local l_pendingGroupData_0 = v8.pendingGroupData;
    v8.pendingGroupData = {};
    for _, v12 in pairs(l_pendingGroupData_0) do
        coroutine.resume(v12);
    end;
end;
v3.setCanManage = function(v13, v14)
    v13.canManage = not not v14 or false;
    local l_pendingCanManage_0 = v13.pendingCanManage;
    v13.pendingCanManage = {};
    for _, v17 in pairs(l_pendingCanManage_0) do
        coroutine.resume(v17);
    end;
end;
v3.destroy = function(v18)
    for _, v20 in pairs(v18.pendingGroupData) do
        coroutine.resume(v20);
    end;
    for _, v22 in pairs(v18.pendingCanManage) do
        coroutine.resume(v22);
    end;
end;
local v23 = {};
local function _(v24)
    local v25 = v23[v24];
    if not v25 and v24.Parent ~= nil then
        v25 = v3.new(v24);
        v23[v24] = v25;
    end;
    return v25;
end;
spawn(function()
    game:GetService("RobloxReplicatedStorage"):WaitForChild("NewPlayerGroupDetails", math.huge).OnClientEvent:Connect(function(...)
        local v27 = {
            ...
        };
        if #v27 == 1 then
            for v28, v29 in pairs(v27[1]) do
                local l_l_Players_0_PlayerByUserId_0 = l_Players_0:GetPlayerByUserId((tonumber(v28)));
                if l_l_Players_0_PlayerByUserId_0 then
                    local v31 = v23[l_l_Players_0_PlayerByUserId_0];
                    if not v31 and l_l_Players_0_PlayerByUserId_0.Parent ~= nil then
                        v31 = v3.new(l_l_Players_0_PlayerByUserId_0);
                        v23[l_l_Players_0_PlayerByUserId_0] = v31;
                    end;
                    local l_v31_0 = v31;
                    if l_v31_0 then
                        l_v31_0:setGroupData(v29);
                    end;
                end;
            end;
            return ;
        else
            local v33 = v27[1];
            local v34 = v27[2];
            local l_l_Players_0_PlayerByUserId_1 = l_Players_0:GetPlayerByUserId((tonumber(v33)));
            if l_l_Players_0_PlayerByUserId_1 then
                local v36 = v23[l_l_Players_0_PlayerByUserId_1];
                if not v36 and l_l_Players_0_PlayerByUserId_1.Parent ~= nil then
                    v36 = v3.new(l_l_Players_0_PlayerByUserId_1);
                    v23[l_l_Players_0_PlayerByUserId_1] = v36;
                end;
                local l_v36_0 = v36;
                if l_v36_0 then
                    l_v36_0:setGroupData(v34);
                end;
            end;
            return ;
        end;
    end);
end);
coroutine.wrap(function()
    game:GetService("RobloxReplicatedStorage"):WaitForChild("NewPlayerCanManageDetails", math.huge).OnClientEvent:Connect(function(v38, v39)
        local l_l_Players_0_PlayerByUserId_2 = l_Players_0:GetPlayerByUserId((tonumber(v38)));
        if l_l_Players_0_PlayerByUserId_2 then
            local v41 = v23[l_l_Players_0_PlayerByUserId_2];
            if not v41 and l_l_Players_0_PlayerByUserId_2.Parent ~= nil then
                v41 = v3.new(l_l_Players_0_PlayerByUserId_2);
                v23[l_l_Players_0_PlayerByUserId_2] = v41;
            end;
            local l_v41_0 = v41;
            if l_v41_0 then
                l_v41_0:setCanManage(v39);
            end;
        end;
    end);
end)();
l_Players_0.PlayerRemoving:Connect(function(v43)
    if v23[v43] then
        local v44 = v23[v43];
        v23[v43] = nil;
        v44:destroy();
    end;
end);
local function _(v45)
    return function(v46)
        local v47 = v23[v46];
        if not v47 and v46.Parent ~= nil then
            v47 = v3.new(v46);
            v23[v46] = v47;
        end;
        local l_v47_0 = v47;
        if l_v47_0 then
            v47 = l_v47_0:getGroupDataAsync();
            if not (not v47 or not v47[v45]) then
                return true;
            end;
        end;
        return false;
    end;
end;
local v50 = {};
local v51 = "SpanishLocalizationExpert";
local l_v51_0 = v51 --[[ copy: 11 -> 15 ]];
local function v56(v53)
    local v54 = v23[v53];
    if not v54 and v53.Parent ~= nil then
        v54 = v3.new(v53);
        v23[v53] = v54;
    end;
    local l_v54_0 = v54;
    if l_v54_0 then
        v54 = l_v54_0:getGroupDataAsync();
        if not (not v54 or not v54[l_v51_0]) then
            return true;
        end;
    end;
    return false;
end;
local v57 = "BrazilianLocalizationExpert";
local l_v57_0 = v57 --[[ copy: 12 -> 16 ]];
v51 = function(v59)
    local v60 = v23[v59];
    if not v60 and v59.Parent ~= nil then
        v60 = v3.new(v59);
        v23[v59] = v60;
    end;
    local l_v60_0 = v60;
    if l_v60_0 then
        v60 = l_v60_0:getGroupDataAsync();
        if not (not v60 or not v60[l_v57_0]) then
            return true;
        end;
    end;
    return false;
end;
local v62 = "FrenchLocalizationExpert";
local l_v62_0 = v62 --[[ copy: 13 -> 17 ]];
v57 = function(v64)
    local v65 = v23[v64];
    if not v65 and v64.Parent ~= nil then
        v65 = v3.new(v64);
        v23[v64] = v65;
    end;
    local l_v65_0 = v65;
    if l_v65_0 then
        v65 = l_v65_0:getGroupDataAsync();
        if not (not v65 or not v65[l_v62_0]) then
            return true;
        end;
    end;
    return false;
end;
local v67 = "GermanLocalizationExpert";
local l_v67_0 = v67 --[[ copy: 14 -> 18 ]];
v62 = function(v69)
    local v70 = v23[v69];
    if not v70 and v69.Parent ~= nil then
        v70 = v3.new(v69);
        v23[v69] = v70;
    end;
    local l_v70_0 = v70;
    if l_v70_0 then
        v70 = l_v70_0:getGroupDataAsync();
        if not (not v70 or not v70[l_v67_0]) then
            return true;
        end;
    end;
    return false;
end;
setlist { ['R009[1 to 4]'] = 'R010 to R013' };
v56 = function()
    return function(v72)
        for v73 = 1, #v50 do
            if v50[v73](v72) then
                return true;
            end;
        end;
        return false;
    end;
end;
v51 = function()
    if game.CreatorType == Enum.CreatorType.Group then
        local v74 = "PlaceCreator";
        return function(v75)
            local v76 = v23[v75];
            if not v76 and v75.Parent ~= nil then
                v76 = v3.new(v75);
                v23[v75] = v76;
            end;
            local l_v76_0 = v76;
            if l_v76_0 then
                v76 = l_v76_0:getGroupDataAsync();
                if not (not v76 or not v76[v74]) then
                    return true;
                end;
            end;
            return false;
        end;
    else
        return function(v78)
            return v78.UserId == game.CreatorId;
        end;
    end;
end;
v57 = function(v79)
    local v80 = v23[v79];
    if not v80 and v79.Parent ~= nil then
        v80 = v3.new(v79);
        v23[v79] = v80;
    end;
    local l_v80_0 = v80;
    if not l_v80_0 then
        return false;
    else
        return l_v80_0:getCanManageAsync() or false;
    end;
end;
v67 = "Admin";
local l_v67_1 = v67 --[[ copy: 14 -> 19 ]];
v0.IsPlayerAdminAsync = function(v83)
    local v84 = v23[v83];
    if not v84 and v83.Parent ~= nil then
        v84 = v3.new(v83);
        v23[v83] = v84;
    end;
    local l_v84_0 = v84;
    if l_v84_0 then
        v84 = l_v84_0:getGroupDataAsync();
        if not (not v84 or not v84[l_v67_1]) then
            return true;
        end;
    end;
    return false;
end;
v67 = "Intern";
local l_v67_2 = v67 --[[ copy: 14 -> 20 ]];
v0.IsPlayerInternAsync = function(v87)
    local v88 = v23[v87];
    if not v88 and v87.Parent ~= nil then
        v88 = v3.new(v87);
        v23[v87] = v88;
    end;
    local l_v88_0 = v88;
    if l_v88_0 then
        v88 = l_v88_0:getGroupDataAsync();
        if not (not v88 or not v88[l_v67_2]) then
            return true;
        end;
    end;
    return false;
end;
v67 = "Star";
local l_v67_3 = v67 --[[ copy: 14 -> 21 ]];
v0.IsPlayerStarAsync = function(v91)
    local v92 = v23[v91];
    if not v92 and v91.Parent ~= nil then
        v92 = v3.new(v91);
        v23[v91] = v92;
    end;
    local l_v92_0 = v92;
    if l_v92_0 then
        v92 = l_v92_0:getGroupDataAsync();
        if not (not v92 or not v92[l_v67_3]) then
            return true;
        end;
    end;
    return false;
end;
v0.IsPlayerLocalizationExpertAsync = function(v94)
    for v95 = 1, #v50 do
        if v50[v95](v94) then
            return true;
        end;
    end;
    return false;
end;
if game.CreatorType == Enum.CreatorType.Group then
    v67 = "PlaceCreator";
    v62 = function(v96)
        local v97 = v23[v96];
        if not v97 and v96.Parent ~= nil then
            v97 = v3.new(v96);
            v23[v96] = v97;
        end;
        local l_v97_0 = v97;
        if l_v97_0 then
            v97 = l_v97_0:getGroupDataAsync();
            if not (not v97 or not v97[v67]) then
                return true;
            end;
        end;
        return false;
    end;
else
    v62 = function(v99)
        return v99.UserId == game.CreatorId;
    end;
end;
v0.IsPlayerPlaceOwnerAsync = v62;
v0.CanPlayerManagePlaceAsync = v57;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function(v1)
    local v2 = {};
    setmetatable(v2, v0);
    v2.aggregatedData = v1;
    v2.sounds = {};
    return v2;
end;
v0.addSound = function(v3, v4, v5)
    local v6 = v3.sounds[v4];
    if v6 == nil then
        v3.sounds[v4] = {
            count = 0,
            starttime = os.time(),
            maxLoopCount = 1,
            instances = {}
        };
        v6 = v3.sounds[v4];
    end;
    if v6.instances[v5] == nil then
        v6.instances[v5] = 1;
        v6.count = v6.count + 1;
    end;
end;
v0.removeSound = function(v7, v8, v9)
    local v10 = v7.sounds[v8];
    if v10 == nil then
        return ;
    else
        if v10.instances[v9] then
            v10.instances[v9] = nil;
            v10.count = v10.count - 1;
        end;
        if v10.count == 0 then
            v7.aggregatedData:addPlay(v8, os.time() - v10.starttime, v10.maxLoopCount);
            v7.sounds[v8] = nil;
        end;
        return ;
    end;
end;
v0.loopSound = function(v11, v12, v13)
    local v14 = v11.sounds[v12];
    if not (v14 ~= nil) or v14.instances[v13] == nil then
        return ;
    else
        local l_instances_0 = v14.instances;
        l_instances_0[v13] = l_instances_0[v13] + 1;
        v14.maxLoopCount = math.max(v14.maxLoopCount, v14.instances[v13]);
        return ;
    end;
end;
return v0;


return require(script:FindFirstAncestor("Profile").dependencies).enumerate(script.Name, {
    Friends = "friends",
    Followers = "followers",
    ViewPlayerProfile = "viewPlayerProfile",
    ContextualMenu = "contextualMenu",
    Following = "following",
    ViewCatalogItem = "viewCatalogItem",
    GameDetails = "gameDetails",
    PurchaseGame = "purchaseGame"
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Profile");
local v1 = require(script.Parent.EntryPoints);
local v2 = require(script.Parent.ButtonClickEvents);
local v3 = require(l_script_FirstAncestor_0.Common.ContextualMenuRowsEnums);
local v4 = require(l_script_FirstAncestor_0.Components.ProfilePrimaryContextualButton.ButtonStates);
return {
    UserLoadedPage = game:DefineFastString("LuaProfileUserLoadedPageCounter", "LuaProfile" .. "UserLoadedPage"),
    UserLoadedPageWithData = game:DefineFastString("LuaProfileUserLoadedPageWithDataCounter", "LuaProfile" .. "UserLoadedPage" .. "WithData"),
    [v1.HomePageSelf] = game:DefineFastString("LuaProfileEntryHomePageSelfCounter", "LuaProfile" .. "Entry" .. "HomePageSelf"),
    [v1.MorePageSelf] = game:DefineFastString("LuaProfileEntryMorePageSelfCounter", "LuaProfile" .. "Entry" .. "MorePageSelf"),
    [v1.HomePageFriendsCarousel] = game:DefineFastString("LuaProfileEntryHomePageFriendsCarouselCounter", "LuaProfile" .. "Entry" .. "HomePageFriendsCarousel"),
    [v1.GameDetailsDeveloper] = game:DefineFastString("LuaProfileEntryGameDetailsDeveloperCounter", "LuaProfile" .. "Entry" .. "GameDetailsDeveloper"),
    [v1.PlayerSearch] = game:DefineFastString("LuaProfileEntryPlayerSearchCounter", "LuaProfile" .. "Entry" .. "PlayerSearch"),
    [v3.CHAT] = game:DefineFastString("LuaProfileNavigationContextualChatCounter", "LuaProfile" .. "Navigation" .. "ContextualChat"),
    [v3.REPORT] = game:DefineFastString("LuaProfileNavigationContextualReportCounter", "LuaProfile" .. "Navigation" .. "ContextualReport"),
    [v4.Chat] = game:DefineFastString("LuaProfileNavigationCTAChatCounter", "LuaProfile" .. "Navigation" .. "CTAChat"),
    [v4.EditProfile] = game:DefineFastString("LuaProfileNavigationCTAEditProfileCounter", "LuaProfile" .. "Navigation" .. "CTAEditProfile"),
    [v4.JoinExperience] = game:DefineFastString("LuaProfileNavigationCTAJoinExperienceCounter", "LuaProfile" .. "Navigation" .. "CTAJoinExperience"),
    [v4.ShareProfileQRCode] = game:DefineFastString("LuaProfileNavigationCTAQRCode", "LuaProfile" .. "Navigation" .. "CTAQRCode"),
    [v2.ViewCatalogItem] = game:DefineFastString("LuaProfileNavigationViewCatalogItemCounter", "LuaProfile" .. "Navigation" .. "ViewCatalogItem"),
    [v2.Friends] = game:DefineFastString("LuaProfileNavigationViewFriendsCounter", "LuaProfile" .. "Navigation" .. "ViewFriends"),
    [v2.Followers] = game:DefineFastString("LuaProfileNavigationViewFollowersCounter", "LuaProfile" .. "Navigation" .. "ViewFollowers"),
    [v2.Following] = game:DefineFastString("LuaProfileNavigationViewFollowingCounter", "LuaProfile" .. "Navigation" .. "ViewFollowing"),
    [v2.ViewPlayerProfile] = game:DefineFastString("LuaProfileNavigationViewPlayerProfileCounter", "LuaProfile" .. "Navigation" .. "ViewPlayerProfile"),
    [v2.ContextualMenu] = game:DefineFastString("LuaProfileNavigationContextualMenuCounter", "LuaProfile" .. "Navigation" .. "ContextualMenu"),
    [v2.PurchaseGame] = game:DefineFastString("LuaProfileNavigationPurchaseCounter", "LuaProfile" .. "Navigation" .. "Purchase"),
    [v2.GameDetails] = game:DefineFastString("LuaProfileNavigationGameDetailsCounter", "LuaProfile" .. "Navigation" .. "GameDetails")
};


return require(script:FindFirstAncestor("Profile").dependencies).enumerate(script.Name, {
    HomePageSelf = "homePageSelf",
    MorePageSelf = "morePageSelf",
    HomePageFriendsCarousel = "homePageFriendsCarousel",
    GameDetailsDeveloper = "gameDetailsDeveloper",
    PlayerSearch = "playerSearch"
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Profile");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Logger_0 = v2.Logger;
local l_AnalyticsService_0 = v2.AnalyticsService;
local l_Dash_0 = v2.Dash;
local l_PresenceType_0 = v2.RoduxPresence.Enums.PresenceType;
local l_SetGamePlaySession_0 = v2.SetGamePlaySession;
local v8 = require(l_script_FirstAncestor_0.Common.ContextualMenuRowsEnums);
local _ = require(l_script_FirstAncestor_0.Common.ProfileTypes);
local v10 = require(l_script_FirstAncestor_0.Components.ProfilePrimaryContextualButton.ButtonStates);
local _ = require(l_script_FirstAncestor_0.Common.ContextPropsTypes);
local l_FFlagLuaAppConsolidateProfileLogging_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagLuaAppConsolidateProfileLogging;
local v13 = require(script.Parent.EntryPoints);
local v14 = require(script.Parent.ButtonClickEvents);
local v15 = require(script.Parent.DiagCounters);
local v16 = {
    [l_PresenceType_0.InGame] = "inGame",
    [l_PresenceType_0.InStudio] = "inStudio",
    [l_PresenceType_0.Offline] = "offline",
    [l_PresenceType_0.Online] = "online"
};
local v17 = {
    NotFriends = "nonfriend",
    Friends = "friend",
    RequestSent = "requestSent",
    RequestReceived = "requestReceived",
    Ineligible = "ineligible"
};
local v18 = {
    [v13.HomePageSelf] = {
        ctx = "homepage",
        btn = "loggedInUserIdentity"
    },
    [v13.MorePageSelf] = {
        ctx = "morepage",
        btn = "playerProfile"
    },
    [v13.HomePageFriendsCarousel] = {
        ctx = "homepage",
        btn = "playerProfile"
    },
    [v13.GameDetailsDeveloper] = {
        ctx = "gameDetails",
        btn = "developer"
    },
    [v13.PlayerSearch] = {
        ctx = "playerSearch",
        btn = "playerProfile"
    }
};
local v19 = {
    [v14.Friends] = {
        btn = v14.Friends.rawValue()
    },
    [v14.Followers] = {
        btn = v14.Followers.rawValue()
    },
    [v14.Following] = {
        btn = v14.Following.rawValue()
    },
    [v14.ViewPlayerProfile] = {
        btn = v14.ViewPlayerProfile.rawValue()
    },
    [v14.ContextualMenu] = {
        btn = v14.ContextualMenu.rawValue()
    },
    [v14.GameDetails] = {
        btn = v14.GameDetails.rawValue()
    },
    [v14.PurchaseGame] = {
        btn = v14.PurchaseGame.rawValue()
    }
};
local v20 = {
    [v8.CHAT] = {
        btn = v8.CHAT.rawValue()
    },
    [v8.IGNORE_FRIEND_REQUEST] = {
        btn = v8.IGNORE_FRIEND_REQUEST.rawValue()
    },
    [v8.REPORT] = {
        btn = v8.REPORT.rawValue()
    },
    [v8.BLOCK] = {
        btn = v8.BLOCK.rawValue()
    },
    [v8.UNFRIEND] = {
        btn = v8.UNFRIEND.rawValue()
    },
    [v8.SET_ALIAS] = {
        btn = v8.SET_ALIAS.rawValue()
    }
};
local v21 = {
    [v10.JoinExperience] = {
        eventType = "joinGameInPeopleList",
        btn = "joinExperience"
    },
    [v10.Chat] = {
        btn = "chatAttempt"
    },
    [v10.EditProfile] = {
        btn = "editProfile"
    },
    [v10.Unfriend] = {
        btn = "unFriend"
    },
    [v10.Unblock] = {
        btn = "unblock"
    },
    [v10.AddFriend] = {
        btn = "addFriend"
    },
    [v10.AcceptFriendRequest] = {
        btn = "acceptFriend"
    },
    [v10.ShareProfileQRCode] = {
        btn = "shareProfileQRCode"
    }
};
local v22 = {};
v22.__index = v22;
v22.new = function(v23)
    local v24 = {
        _diagImpl = not not v23.analytics and v23.analytics.Diag or l_AnalyticsService_0.Diag,
        _eventStreamImpl = not not v23.analytics and v23.analytics.EventStream or l_AnalyticsService_0.EventStream,
        _eventIngestService = v23.eventIngestService,
        _sessionService = v23.sessionService,
        _sessionType = v23.sessionType,
        localUserId = v23.localUserId,
        logger = v23.logger or l_Logger_0,
        profileUserId = v23.profileUserId,
        analyticsProps = v23.analyticsProps or {}
    };
    setmetatable(v24, v22);
    return v24;
end;
v22.pageLoaded = function(v25)
    v25.logger:info("ProfilePeekView pageLoaded");
    v25._diagImpl:reportCounter(v15.UserLoadedPage, 1);
end;
v22.pageLoadedWithData = function(v26, v27)
    local v28 = v17[v27.friendStatus] or v17.NotFriends;
    local v29 = l_PresenceType_0.fromRawValue(v27.playerPresence) or l_PresenceType_0.Offline;
    v26.logger:info("ProfilePeekView pageLoadedWithData");
    v26._diagImpl:reportCounter(v15.UserLoadedPageWithData, 1);
    v26._eventStreamImpl:setRBXEventStream("playerProfile", "luaPageLoad", l_Dash_0.join(v27, v26.analyticsProps, {
        page = "playerProfile",
        subpage = "peekView",
        friendStatus = v26.localUserId == v26.profileUserId and "self" or v28,
        profileUserId = v26.profileUserId,
        playerPresence = v16[v29],
        uid = v26.localUserId
    }));
end;
v22.joinExperience = function(v30, v31)
    assert(v30._eventIngestService, "Need to pass in EventIngestService");
    assert(v30._sessionService, "Need to pass in SessionService");
    assert(v30._sessionType, "Need to pass in SessionType");
    if v31.isHomePageCarousel then
        l_SetGamePlaySession_0(v30._sessionService, v30._sessionType.StructuralIdentifier.GamePlayFromFriendsList, true);
    end;
    v30._eventIngestService:setRBXEventStream("playerProfile", v21[v10.JoinExperience].eventType, l_Dash_0.join(v31, v30.analyticsProps, {
        btn = v21[v10.JoinExperience].btn,
        subpage = "peekView",
        profileUserId = v30.profileUserId,
        uid = v30.localUserId,
        isHomePageCarousel = v31.isHomePageCarousel or false,
        joinAttemptId = v31.joinAttemptId
    }));
    v30._diagImpl:reportCounter(v15[v10.JoinExperience], 1);
end;
v22.navigateToProfile = function(v32, v33)
    if l_FFlagLuaAppConsolidateProfileLogging_0 then
        assert(false, "navigateToProfile is deprecated with FFlagLuaAppConsolidateProfileLogging");
    end;
    assert(v13.isEnumValue(v33), "Invalid EntryPoints Enum value passed");
    v32:_buttonClick(l_Dash_0.join({
        page = "playerProfile"
    }, v18[v33]), v33);
end;
v22.buttonClick = function(v34, v35, v36)
    assert(v14.isEnumValue(v35), "Invalid ButtonClickEvent Enum value passed");
    v34:_buttonClick(l_Dash_0.join(v19[v35], v36), v35);
end;
v22.contextualMenuClick = function(v37, v38)
    assert(v8.isEnumValue(v38), "Invalid ContextualMenuRowsEnums Enum value passed");
    v37:_buttonClick({
        btn = "contextualMenu_" .. v20[v38].btn,
        optionType = "CTAType"
    }, v38);
end;
v22.primaryCTAClick = function(v39, v40, v41)
    v39:_buttonClick(l_Dash_0.join(v21[v40] or {
        btn = v40
    }, v41), v40);
end;
v22.viewCatalogItem = function(v42)
    v42._diagImpl:reportCounter(v15[v14.ViewCatalogItem], 1);
end;
v22._buttonClick = function(v43, v44, v45)
    if v15[v45] then
        v43._diagImpl:reportCounter(v15[v45], 1);
    end;
    v43._eventStreamImpl:setRBXEventStream(v44.ctx or "playerProfile", v44.eventType or "buttonClick", l_Dash_0.join(v44, v43.analyticsProps, {
        uid = v43.localUserId,
        profileUserId = v43.profileUserId,
        subpage = "peekView",
        ctx = l_Dash_0.None,
        eventType = l_Dash_0.None
    }));
end;
return v22;


local l_Context_0 = require(script:FindFirstAncestor("Profile").dependencies).SocialLibraries.Context;
local v1 = require(script.ProfileAnalytics);
local v2 = require(script.ProfileAnalyticsContext);
return {
    Class = v1,
    Context = v2,
    connect = l_Context_0.getConnect(v2),
    with = l_Context_0.getWith(v2),
    Enums = {
        EntryPoints = require(script.EntryPoints),
        ButtonClickEvents = require(script.ButtonClickEvents)
    }
};


return {
    AnalyticsContext = {
        PlayerProfile = "PlayerProfile",
        PeopleListInHomePage = "peopleListInHomePage"
    },
    ItemTilePadding = 24,
    ItemTileInnerMargins = 8,
    ItemTileTitleMaxLines = 2,
    CardMargin = 12,
    RobuxCurrency = 1,
    NavBarHeight = 56
};


local _ = require(game:GetService("CorePackages").Workspace.Packages.SocialCommon);
local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.Common.ProfileTypes);
local v3 = require(l_Parent_0.dependencies);
local l_t_0 = v3.t;
local l_isCallable_0 = v3.Dash.isCallable;
local v6 = l_t_0.strictInterface({
    showBackButton = l_t_0.optional(l_t_0.boolean),
    mountAsFullView = l_t_0.optional(l_t_0.boolean),
    mountAnimation = l_t_0.optional(l_t_0.boolean),
    onPeekViewClosed = l_t_0.optional(l_isCallable_0),
    onPeekViewGoBack = l_t_0.optional(l_isCallable_0)
});
local v7 = l_t_0.strictInterface({
    ProfilePeekView = l_isCallable_0,
    ViewUserProfile = l_isCallable_0,
    GameDetailsPeekView = l_isCallable_0,
    Chat = l_isCallable_0,
    JoinGame = l_isCallable_0,
    ViewUserFriends = l_isCallable_0,
    ViewUserFollowing = l_isCallable_0,
    ViewUserFollowers = l_isCallable_0,
    ItemDetails = l_isCallable_0,
    ReportUser = l_isCallable_0,
    PurchaseErrorToast = l_isCallable_0,
    NetworkingErrorToast = l_isCallable_0,
    ProfileQRCodePage = l_isCallable_0,
    EditProfilePage = l_t_0.optional(l_isCallable_0)
});
return {
    validatePeekViewProps = v6,
    validateNavigateToLuaAppPages = v7,
    validateContext = l_t_0.strictInterface({
        profileUserId = l_t_0.string,
        localUserId = l_t_0.string,
        peekViewProps = v6,
        navigateToLuaAppPages = v7,
        abbreviateCount = l_isCallable_0
    }),
    validateNavigationParams = l_t_0.strictInterface({
        absolutePosition = l_t_0.optional(l_t_0.number),
        isHomePageCarousel = l_t_0.optional(l_t_0.boolean),
        isRecommendation = l_t_0.optional(l_t_0.boolean),
        recommendationContextType = l_t_0.optional(l_t_0.string),
        mutualFriendsCount = l_t_0.optional(l_t_0.number),
        recommendationSessionId = l_t_0.optional(l_t_0.string),
        recommendationRank = l_t_0.optional(l_t_0.number),
        source = l_t_0.optional(l_t_0.string),
        offNetworkFriendRequestToken = l_t_0.optional(l_t_0.string),
        offNetworkFriendRequestLinkId = l_t_0.optional(l_t_0.string),
        shareLinkId = l_t_0.optional(l_t_0.string),
        contextualInfoType = l_t_0.optional(l_t_0.string),
        contextualInfoDisplay = l_t_0.optional(l_t_0.table)
    })
};


return require(script.Parent.Parent.dependencies).enumerate(script.Name, {
    CHAT = "chat",
    SET_ALIAS = "setAlias",
    IGNORE_FRIEND_REQUEST = "ignoreFriendRequest",
    REPORT = "report",
    BLOCK = "block",
    UNFRIEND = "unfriend"
});


local l_t_0 = require(script:FindFirstAncestor("Profile").dependencies).t;
return {
    validate = l_t_0.strictInterface({
        left = l_t_0.numberMin(0),
        right = l_t_0.numberMin(0),
        top = l_t_0.numberMin(0),
        bottom = l_t_0.numberMin(0)
    })
};


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


local v0 = {
    None = "None",
    ProfilePeekView = "ProfilePeekView",
    ContextualMenu = "ContextualMenu",
    GenericToast = "GenericToast",
    PurchaseExperienceModal = "PurchaseExperienceModal",
    UnableToJoinExperienceModal = "UnableToJoinExperienceModal",
    Chat = "Chat",
    JoinGame = "JoinGame",
    GameDetailsPeekView = "GameDetailsPeekView",
    ItemDetails = "ItemDetails",
    ViewUserProfile = "ViewUserProfile",
    ViewUserFriends = "ViewUserFriends",
    ViewUserFollowing = "ViewUserFollowing",
    ViewUserFollowers = "ViewUserFollowers",
    ReportUser = "ReportUser",
    PurchaseErrorToast = "PurchaseErrorToast",
    NetworkingErrorToast = "NetworkingErrorToast",
    SetAliasModal = "SetAliasModal",
    ProfileQRCodePage = "ProfileQRCodePage",
    EditProfilePage = "EditProfilePage",
    EditDescriptionModal = "EditDescriptionModal",
    EditDisplayNameModal = "EditDisplayNameModal",
    EditDisplayNameErrorModal = "EditDisplayNameErrorModal",
    UsernameInsufficientFundsModal = "UsernameInsufficientFundsModal"
};
setmetatable(v0, {
    __index = function(_, v2)
        error(string.format("%q is not a valid member of ProfileScreens", (tostring(v2))), 2);
    end
});
return v0;


return {
    validateProfileType = function(v0)
        local v1 = true;
        if v0 ~= "Default" then
            v1 = true;
            if v0 ~= "OffNetworkFriendRequest" then
                v1 = true;
                if v0 ~= "ProfileShare" then
                    v1 = true;
                    if v0 ~= "FromContacts" then
                        v1 = v0 == "FromDeepLink";
                    end;
                end;
            end;
        end;
        return v1;
    end,
    Default = "Default",
    OffNetworkFriendRequest = "OffNetworkFriendRequest",
    ProfileShare = "ProfileShare",
    FromContacts = "FromContacts",
    FromDeepLink = "FromDeepLink"
};


return {
    ItemStatusNew = "Feature.Catalog.Label.New",
    ItemStatusSale = "Feature.Catalog.Label.Sale",
    CatalogLabelFree = "Feature.Catalog.LabelFree",
    CatalogLabelOffSale = "Feature.Catalog.LabelOffSale",
    CurrentlyWearing = "Feature.Avatar.Label.CurrentlyWearing",
    NoInternet = "Feature.EmptyStatePage.Message.NoInternet",
    Unfriend = "Feature.Friends.Action.Unfriend",
    Chat = "CommonUI.Features.Label.Chat",
    Report = "Feature.Catalog.Action.Report",
    ViewProfile = "Feature.Profile.Action.ViewFullProfile",
    Join = "Feature.Chat.Drawer.Join",
    EditProfile = "Feature.Friends.Action.EditProfile",
    AddFriend = "Feature.PlayerSearchResults.Action.AddFriend",
    AcceptFriend = "Feature.Friends.Action.AcceptFriend",
    PendingRequest = "Feature.Friends.Action.PendingRequest",
    Unblock = "Feature.Friends.Action.Unblock",
    IgnoreFriendRequest = "Feature.AddFriends.Action.IgnoreFriendRequest",
    Block = "Feature.Friends.Action.Block",
    SetAlias = "Feature.Profile.Label.ChangeAlias",
    CustomizeName = "Feature.Profile.Label.CustomizeName",
    RequestIgnored = "Feature.AddFriends.Action.RequestIgnored",
    UserBlocked = "Feature.Profile.Action.UserBlocked",
    FriendAdded = "Feature.Friends.Action.FriendAdded",
    FriendRemoved = "Feature.Friends.Action.FriendRemoved",
    SomethingIsWrong = "Feature.Toast.NetworkingError.SomethingIsWrong",
    AccountDeleted = "Feature.Friends.Action.AccountDeleted",
    FriendRequestCancelled = "Feature.Friends.Action.FriendRequestCancelled",
    FriendRequestSent = "Feature.Friends.Action.FriendRequestSent",
    YouAreFollowing = "Feature.PlayerSearchResults.Label.YouAreFollowing",
    FollowsYou = "Feature.Friends.Label.FollowsYou",
    SentFromWithContext = "Feature.Friends.Label.SentFromWithContext",
    FriendInvite = "Feature.Friends.Label.FriendInvite",
    FromContacts = "Feature.Friends.Description.FromContacts",
    PurchaseExperienceModalTitle = "Feature.GameDetails.Heading.PurchaseGame",
    PurchaseExperienceModalBody = "Feature.GameDetails.Message.PurchaseGameV2",
    Unlock = "Feature.GameDetails.Action.Unlock",
    Cancel = "Feature.Friends.Label.Cancel",
    SuccessPurchaseToastTitle = "Feature.Toast.Heading.PurchaseMessage.Success",
    SuccessPurchaseToastMessage = "Feature.Toast.Message.PurchaseMessage.SuccessV3",
    UnableToJoin = "Feature.Profile.Label.UnableToJoin",
    NoAccessToExperience = "Feature.Profile.Message.NoAccessToExperience",
    ViewDetails = "Feature.Profile.Label.ViewDetails",
    Followers = "Feature.Friends.Label.Followers",
    Following = "Feature.Friends.Label.Following",
    Friends = "CommonUI.Features.Label.Friends",
    Friend = "Feature.Friends.Label.Friend",
    Follower = "Feature.Friends.Label.Follower",
    SingularMutualFriend = "Feature.Friends.Label.SingularMutualFriend",
    MutualFriends = "Feature.Friends.Label.MutualFriends",
    PlayedTogether = "Feature.Friends.Label.Frequent",
    ToQRCode = "Feature.Profile.Action.ToQRCode",
    FromQRCode = "Feature.Profile.Label.QRCodeFriendRequest",
    ContactsProfileBody = "Feature.Contacts.Description.ContactsProfileView",
    AliasTooltipHeader = "Feature.Profile.Label.CustomName",
    AliasTooltipBody = "Feature.Profile.Tooltip.CustomNameProfile",
    DisplayNameTooltipBody = "Feature.Profile.Tooltip.DisplayName",
    DisplayNameNewCharactersTooltipBody = "Feature.Profile.Tooltip.DisplayNameNewCharacters",
    OneMutualFriendText = "Feature.Friends.OneMutualFriend",
    OneOtherMutualFriendText = "Feature.Friends.OneOtherMutualFriend",
    PluralMutualFriendsText = "Feature.Friends.PluralMutualFriends",
    PluralOtherMutualFriendsText = "Feature.Friends.PluralOtherMutualFriends"
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local l_UIBlox_0 = v1.UIBlox;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_LoadableImage_0 = l_UIBlox_0.App.Loading.LoadableImage;
local l_Container_0 = require(l_Parent_0.Components.ProfileUserDetails).Container;
local l_UserLib_0 = v1.UserLib;
local l_Constants_0 = l_UserLib_0.Utils.Constants;
local l_getRbxthumbWithTypeSizeAndOptions_0 = l_UserLib_0.Utils.getRbxthumbWithTypeSizeAndOptions;
local v13 = l_Roact_0.PureComponent:extend("AvatarImage");
v13.validateProps = l_t_0.strictInterface({
    layoutOrder = l_t_0.optional(l_t_0.number),
    profileUserId = l_t_0.string,
    width = l_t_0.number,
    padding = l_t_0.optional(l_t_0.number),
    navigation = l_t_0.optional(l_t_0.table),
    ZIndex = l_t_0.optional(l_t_0.number)
});
v13.defaultProps = {
    padding = 24
};
v13.renderWithProviders = function(v14, v15)
    local l_props_0 = v14.props;
    local l_profileUserId_0 = l_props_0.profileUserId;
    return l_Roact_0.createElement("Frame", {
        Size = v14:getImageSize(l_props_0.width),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        LayoutOrder = l_props_0.layoutOrder,
        ZIndex = l_props_0.ZIndex
    }, {
        Background = l_Roact_0.createElement(l_ImageSetLabel_0, {
            Position = UDim2.fromScale(0, 0),
            Size = UDim2.fromScale(1, 1),
            BorderSizePixel = 0,
            Image = l_Images_0[v15.Theme.PlayerBackgroundDefault.Image],
            ZIndex = 1
        }),
        AvatarThumbnail = l_Roact_0.createElement(l_LoadableImage_0, {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            Size = UDim2.new(1, -96, 1, -96),
            ScaleType = Enum.ScaleType.Fit,
            BackgroundTransparency = 1,
            Image = l_getRbxthumbWithTypeSizeAndOptions_0(l_profileUserId_0, l_Constants_0.RbxthumbTypes.Avatar, 720),
            useShimmerAnimationWhileLoading = true,
            ZIndex = 2
        }),
        TopGradient = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 70),
            Position = UDim2.fromScale(0, 0),
            BackgroundColor3 = v15.Theme.BackgroundDefault.Color,
            BorderSizePixel = 0,
            ZIndex = 3
        }, {
            UIGradient = l_Roact_0.createElement("UIGradient", {
                Rotation = 90,
                Transparency = NumberSequence.new({
                    NumberSequenceKeypoint.new(0, 0),
                    NumberSequenceKeypoint.new(1, 1)
                })
            })
        }),
        BottomGradient = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 70),
            Position = UDim2.fromScale(0, 1),
            AnchorPoint = Vector2.new(0, 1),
            BackgroundColor3 = v15.Theme.BackgroundDefault.Color,
            BorderSizePixel = 0,
            ZIndex = 3
        }, {
            UIGradient = l_Roact_0.createElement("UIGradient", {
                Rotation = 90,
                Transparency = NumberSequence.new({
                    NumberSequenceKeypoint.new(0, 1),
                    NumberSequenceKeypoint.new(1, 0)
                })
            })
        }),
        UserDetails = l_Roact_0.createElement(l_Container_0, {
            layoutOrder = 1,
            zIndex = 4,
            profileUserId = l_profileUserId_0,
            padding = l_props_0.padding,
            navigation = l_props_0.navigation
        })
    });
end;
v13.getImageSize = function(_, v19)
    return UDim2.fromOffset(v19, v19);
end;
v13.render = function(v20)
    return l_withStyle_0(function(v21)
        return v20:renderWithProviders(v21);
    end);
end;
return v13;


local v0 = require(script.Parent.Parent.Parent.dependencies);
local l_Roact_0 = v0.Roact;
local l_UIBlox_0 = v0.UIBlox;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_LoadableImage_0 = l_UIBlox_0.App.Loading.LoadableImage;
local l_StyledTextLabel_0 = l_UIBlox_0.App.Text.StyledTextLabel;
local l_HorizontalPageMargin_0 = l_UIBlox_0.App.Container.HorizontalPageMargin;
local l_getDeepValue_0 = v0.SocialLibraries.Dictionary.getDeepValue;
local l_useSelector_0 = v0.useSelector;
local l_useLocalization_0 = v0.useLocalization;
l_Roact_0.PureComponent:extend("AvatarImage").defaultProps = {
    padding = 24
};
return function(v12)
    local v13 = l_useStyle_0();
    local v14 = l_useLocalization_0({
        fromContacts = "Feature.Friends.Description.FromContacts"
    });
    local v15 = v12.avatarAssetHashId or "";
    local v17 = l_useSelector_0(function(v16)
        return l_getDeepValue_0(v16, (("Profile.ContactAvatarId.%*.imageUrl"):format(v15))) or "";
    end);
    local l_width_0 = v12.width;
    local v19 = l_Images_0[v13.Theme.PlayerBackgroundDefault.Image];
    local function v20()
        return l_Roact_0.createElement(l_ImageSetLabel_0, {
            Size = UDim2.fromScale(1, 1),
            Image = l_Images_0["component_assets/contactFullAvatar_large"],
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            ZIndex = 2
        });
    end;
    return l_Roact_0.createElement("Frame", {
        Size = UDim2.fromOffset(l_width_0, l_width_0),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        LayoutOrder = v12.layoutOrder
    }, {
        Background = l_Roact_0.createElement(l_ImageSetLabel_0, {
            Position = UDim2.fromScale(0, 0),
            Size = UDim2.fromScale(1, 1),
            BorderSizePixel = 0,
            Image = v19,
            ZIndex = 1
        }),
        AvatarThumbnail = if not v12.avatarImageUrl then if not (v15 ~= "") or v15 == "0" then l_Roact_0.createElement(l_ImageSetLabel_0, {
            Size = UDim2.fromScale(1, 1),
            Image = l_Images_0["component_assets/contactFullAvatar_large"],
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            ZIndex = 2
        }) else l_Roact_0.createElement(l_LoadableImage_0, {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            Size = UDim2.new(1, -96, 1, -96),
            ScaleType = Enum.ScaleType.Fit,
            BackgroundTransparency = 1,
            Image = v17,
            useShimmerAnimationWhileLoading = true,
            renderOnFailed = v20,
            ZIndex = 2
        }) else l_Roact_0.createElement(l_LoadableImage_0, {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            Size = UDim2.new(1, -96, 1, -96),
            ScaleType = Enum.ScaleType.Fit,
            BackgroundTransparency = 1,
            Image = v12.avatarImageUrl,
            useShimmerAnimationWhileLoading = true,
            renderOnFailed = v20,
            ZIndex = 2
        }),
        TopGradient = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 70),
            Position = UDim2.fromScale(0, 0),
            BackgroundColor3 = v13.Theme.BackgroundDefault.Color,
            BorderSizePixel = 0,
            ZIndex = 3
        }, {
            UIGradient = l_Roact_0.createElement("UIGradient", {
                Rotation = 90,
                Transparency = NumberSequence.new({
                    NumberSequenceKeypoint.new(0, 0),
                    NumberSequenceKeypoint.new(1, 1)
                })
            })
        }),
        BottomGradient = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 70),
            Position = UDim2.fromScale(0, 1),
            AnchorPoint = Vector2.new(0, 1),
            BackgroundColor3 = v13.Theme.BackgroundDefault.Color,
            BorderSizePixel = 0,
            ZIndex = 3
        }, {
            UIGradient = l_Roact_0.createElement("UIGradient", {
                Rotation = 90,
                Transparency = NumberSequence.new({
                    NumberSequenceKeypoint.new(0, 1),
                    NumberSequenceKeypoint.new(1, 0)
                })
            })
        }),
        UserDetails = l_Roact_0.createElement(l_HorizontalPageMargin_0, {
            size = UDim2.new(1, 0, 0, 112),
            position = UDim2.fromScale(0, 0.9),
            anchorPoint = Vector2.new(0, 1),
            zIndex = 4,
            backgroundTransparency = 1
        }, {
            UserDetailsLayout = l_Roact_0.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            padding1 = l_Roact_0.createElement("Frame", {
                Size = UDim2.fromOffset(0, 40),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }),
            ContactName = l_Roact_0.createElement(l_StyledTextLabel_0, {
                text = v12.contactName,
                size = UDim2.new(1, 0, 0, 24),
                textTruncate = Enum.TextTruncate.AtEnd,
                textXAlignment = Enum.TextXAlignment.Left,
                textYAlignment = Enum.TextYAlignment.Center,
                fontStyle = v13.Font.Header1,
                colorStyle = v13.Theme.TextEmphasis,
                layoutOrder = 2
            }),
            padding2 = l_Roact_0.createElement("Frame", {
                Size = UDim2.fromOffset(0, 15),
                BackgroundTransparency = 1,
                LayoutOrder = 3
            }),
            Description = l_Roact_0.createElement(l_StyledTextLabel_0, {
                size = UDim2.new(1, 0, 0, 16),
                text = v14.fromContacts,
                textTruncate = Enum.TextTruncate.AtEnd,
                textXAlignment = Enum.TextXAlignment.Left,
                textYAlignment = Enum.TextYAlignment.Center,
                fontStyle = v13.Font.CaptionHeader,
                colorStyle = v13.Theme.TextMuted,
                layoutOrder = 4
            }),
            padding3 = l_Roact_0.createElement("Frame", {
                Size = UDim2.fromOffset(0, 19),
                BackgroundTransparency = 1,
                LayoutOrder = 5
            })
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Roact_0 = v1.Roact;
local v4 = require(l_Parent_0.Common.TextKeys);
local v5 = require(script.Parent.ContactAvatarImage);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local l_useLocalization_0 = v1.useLocalization;
local l_UIBlox_0 = v1.UIBlox;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local l_StyledTextLabel_0 = l_UIBlox_0.App.Text.StyledTextLabel;
local l_HorizontalPageMargin_0 = l_UIBlox_0.App.Container.HorizontalPageMargin;
local l_FFlagContactRecs_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagContactRecs;
return function(v13)
    local v14 = l_useLocalization_0({
        contactsProfileBody = {
            v4.ContactsProfileBody;
            contactName = v13.contactName
        },
        failedMessage = v4.NoInternet
    });
    local v15 = l_useStyle_0();
    return l_Roact_0.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 0),
        Position = UDim2.new(0, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        ClipsDescendants = true
    }, {
        ProfileDetails = l_Roact_0.createElement("Frame", {
            Position = UDim2.new(0, 0, 0, 0),
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1
        }, {
            Background = l_Roact_0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v13.height),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 1,
                ZIndex = 1
            }),
            Content = l_Roact_0.createElement(l_HorizontalPageMargin_0, {
                size = UDim2.fromScale(1, 1),
                zIndex = 2,
                backgroundTransparency = 1
            }, {
                ListLayout = l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 24)
                }),
                AvatarImage = l_Roact_0.createElement(v5, {
                    contactName = v13.contactName,
                    avatarAssetHashId = v13.avatarAssetHashId,
                    profileUserId = v13.profileUserId,
                    width = v13.width,
                    layoutOrder = 1,
                    padding = 24,
                    avatarImageUrl = if not l_FFlagContactRecs_0 then nil else v13.avatarImageUrl
                }),
                Description = l_Roact_0.createElement(l_StyledTextLabel_0, {
                    layoutOrder = 3,
                    lineHeight = 1.25,
                    size = UDim2.new(1, 0, 0, 100),
                    text = v14.contactsProfileBody,
                    textXAlignment = Enum.TextXAlignment.Center,
                    textYAlignment = Enum.TextYAlignment.Top,
                    textTruncate = Enum.TextTruncate.AtEnd,
                    fontStyle = v15.Font.Body,
                    colorStyle = v15.Theme.TextDefault,
                    fluidSizing = false,
                    richText = false
                })
            })
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_React_0 = v1.React;
local l_Dash_0 = v1.Dash;
local l_useDispatch_0 = v1.useDispatch;
local v6 = require(l_Parent_0.Networking.GetContactAvatar);
local l_getDeepValue_0 = v1.SocialLibraries.Dictionary.getDeepValue;
local l_RetrievalStatus_0 = v1.UIBlox.App.Loading.Enum.RetrievalStatus;
local v9 = require(l_Parent_0.ProfileContext);
local l_useSelector_0 = v1.useSelector;
local v11 = require(script.Parent.ContactProfileCard);
return function(v12)
    local v13 = l_useDispatch_0();
    local v15 = l_useSelector_0(function(_)
        return l_RetrievalStatus_0.Done;
    end);
    local v16 = l_React_0.useContext(v9.Context);
    local l_profileUserId_0 = v16.profileUserId;
    local v19 = l_useSelector_0(function(v18)
        return l_getDeepValue_0(v18, string.format("Profile.Contacts.byContactId.%s.contactName", l_profileUserId_0)) or "LOADING";
    end);
    local v21 = l_getDeepValue_0(v16, "contactProps.avatarAssetHashId") or l_useSelector_0(function(v20)
        if not v20.Profile.Contacts.byContactId[l_profileUserId_0] then
            return "";
        else
            return v20.Profile.Contacts.byContactId[l_profileUserId_0].avatarAssetHashId;
        end;
    end);
    local function v22()
        v13(v6.API({
            height = 420,
            width = 420,
            assetHashIds = {
                v21
            },
            avatarType = "avatar"
        }));
    end;
    l_React_0.useEffect(function()
        if v21 ~= "" then
            v22();
        end;
    end);
    return l_Roact_0.createElement(v11, (l_Dash_0.join(v12, {
        profileUserId = v16.profileUserId,
        peekViewProps = v16.peekViewProps,
        wideMode = v16.wideMode,
        profileType = v16.profileType,
        profilePageDataStatus = v15,
        contactName = v19,
        avatarImageUrl = v12.avatarImageUrl,
        avatarAssetHashId = v21
    })));
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_CarouselWidget_0 = v1.CarouselWidget;
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_t_0 = v1.t;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_memoize_0 = v1.memoize;
local l_withLocalization_0 = v1.withLocalization;
local l_FormFactor_0 = v1.FormFactor;
local l_FitFrameVertical_0 = v1.RoactFitComponents.FitFrameVertical;
local v11 = require(l_Parent_0.Common.TextKeys);
local v12 = require(l_Parent_0.Common.Constants);
local v13 = require(l_Parent_0.Components.ItemCard);
local v14 = l_Roact_0.PureComponent:extend("CurrentlyWearingCarousel");
v14.validateProps = l_t_0.strictInterface({
    assetIds = l_t_0.table,
    layoutOrder = l_t_0.optional(l_t_0.number),
    itemCardWidth = l_t_0.optional(l_t_0.number),
    fractionalCardsPerRow = l_t_0.optional(l_t_0.number),
    formFactor = l_t_0.string,
    getItemClickHandler = l_t_0.callback
});
v14.defaultProps = {
    layoutOrder = 1
};
v14.init = function(v15)
    v15:setState({
        cardWindowStart = 1,
        cardWindowIndex = 1,
        cardsInWindow = 0
    });
    v15.scrollingFrameRefCallback = function(v16)
        v15.scrollingFrameRef = v16;
        v15:updateCardWindowBounds();
    end;
    v15.onChangeCanvasPosition = function()
        v15:updateCardWindowBounds();
    end;
end;
v14.updateCardWindowBounds = function(v17)
    local l_props_0 = v17.props;
    local l_state_0 = v17.state;
    if v17.scrollingFrameRef then
        local l_fractionalCardsPerRow_0 = l_props_0.fractionalCardsPerRow;
        local l_X_0 = v17.scrollingFrameRef.CanvasPosition.X;
        local v22 = math.max(1, (math.floor(l_X_0 / (l_props_0.itemCardWidth + v12.CardMargin))));
        local v23 = math.max(0, (math.floor(l_X_0 / (l_props_0.itemCardWidth + v12.CardMargin)))) + 1;
        local v24 = math.ceil(l_fractionalCardsPerRow_0) + 2;
        local v25 = true;
        if v22 == l_state_0.cardWindowStart then
            v25 = true;
            if v23 == l_state_0.cardWindowIndex then
                v25 = true;
                if v24 == l_state_0.cardsInWindow then
                    v25 = l_props_0.itemCardWidth ~= l_state_0.itemCardWidth;
                end;
            end;
        end;
        if v25 then
            v17:setState({
                cardWindowStart = v22,
                cardWindowIndex = v23,
                cardsInWindow = v24,
                itemCardWidth = l_props_0.itemCardWidth
            });
        end;
        return ;
    else
        return ;
    end;
end;
local v28 = l_memoize_0(function(v26)
    return function(v27)
        return (v27 + v12.ItemTileTitleMaxLines * v26) + (v12.ItemTilePadding + v12.ItemTileInnerMargins);
    end;
end);
v14.renderWithProviders = function(v29, v30, v31)
    local l_props_1 = v29.props;
    local l_state_1 = v29.state;
    local l_cardWindowStart_0 = l_state_1.cardWindowStart;
    local l_cardsInWindow_0 = l_state_1.cardsInWindow;
    local l_cardWindowIndex_0 = l_state_1.cardWindowIndex;
    local v37 = v29.props.formFactor == l_FormFactor_0.COMPACT and 24 or 48;
    local l_Font_0 = v31.Font;
    local v39 = v28(l_Font_0.Header2.RelativeSize * l_Font_0.BaseSize)(v29.props.itemCardWidth);
    local v40 = v29.props.assetIds or {};
    local v41 = math.min(#v40, (l_cardWindowStart_0 + l_cardsInWindow_0) - 1);
    local v42 = math.max(0, #v40 * (v12.CardMargin + v29.props.itemCardWidth));
    local v43 = {
        Layout = l_Roact_0.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Horizontal,
            Padding = UDim.new(0, v12.CardMargin),
            HorizontalAlignment = Enum.HorizontalAlignment.Left
        }),
        Padding = l_Roact_0.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, (l_cardWindowStart_0 - 1) * (v12.CardMargin + v29.props.itemCardWidth))
        })
    };
    for v44 = l_cardWindowStart_0, v41 do
        local v45 = v40[v44];
        v43[v45] = l_Roact_0.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.fromOffset(v29.props.itemCardWidth, v39),
            LayoutOrder = v44
        }, {
            ItemCard = l_Roact_0.createElement(v13, {
                assetId = v45,
                onActivated = v29.props.getItemClickHandler(v45)
            })
        });
    end;
    return l_Roact_0.createElement(l_FitFrameVertical_0, {
        width = UDim.new(1, 0),
        BackgroundTransparency = 1,
        LayoutOrder = l_props_1.layoutOrder
    }, {
        Layout = l_Roact_0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 0)
        }),
        Padding = l_Roact_0.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v37)
        }),
        CarouselWidget = l_Roact_0.createElement(l_CarouselWidget_0, {
            title = v30.headerText,
            items = v43,
            index = math.max(1, (math.min(l_cardWindowIndex_0, #v40))),
            itemCount = #v40,
            itemWidth = l_props_1.itemCardWidth,
            itemPadding = v12.CardMargin,
            carouselMargin = v37,
            carouselHeight = v39,
            canvasWidth = v42,
            onChangeCanvasPosition = v29.onChangeCanvasPosition,
            onRefCallback = v29.scrollingFrameRefCallback,
            showSeeAll = false
        })
    });
end;
v14.render = function(v46)
    return l_withLocalization_0({
        headerText = v11.CurrentlyWearing
    })(function(v47)
        return l_withStyle_0(function(v48)
            return v46:renderWithProviders(v47, v48);
        end);
    end);
end;
v14.didUpdate = function(v49, v50)
    local l_props_2 = v49.props;
    if not (l_props_2.itemCardWidth == v50.itemCardWidth) or l_props_2.fractionalCardsPerRow ~= v50.fractionalCardsPerRow then
        v49:updateCardWindowBounds();
    end;
end;
return v14;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_RoactAppExperiment_0 = v1.RoactAppExperiment;
local l_AppUserLayers_0 = v1.AppUserLayers;
local l_t_0 = v1.t;
local v6 = require(l_Parent_0.ProfileContext);
local v7 = require(l_Parent_0.Common.ContextPropsTypes);
local v8 = require(l_Parent_0.Common.ProfileScreens);
local l_RoactRodux_0 = v1.RoactRodux;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_GridMetrics_0 = v1.UIBlox.App.Grid.GridMetrics;
local l_Dash_0 = v1.Dash;
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local v14 = require(l_Parent_0.Common.Constants);
local _ = require(l_Parent_0.Reducers.Root);
local _ = require(l_Parent_0.Reducers.Assets);
local v17 = require(l_Parent_0.Analytics);
local v18 = require(l_Parent_0.Flags.SortCurrentlyWearingItemsIXP);
local l_IsVRAppBuild_0 = v1.IsVRAppBuild;
local v20 = require(script.Parent.CurrentlyWearingCarousel);
local v21 = l_Roact_0.PureComponent:extend("CurrentlyWearingCarouselContainer");
local function v30(v22, v23, v24, v25)
    local v26 = v24[v22];
    local v27 = v24[v23];
    local v28 = {
        isOffSale = v26.isOffSale or false,
        price = (v26.price or v26.lowestResalePrice) or 0,
        favoriteCount = v26.favoriteCount or 0
    };
    local v29 = {
        isOffSale = v27.isOffSale or false,
        price = (v27.price or v27.lowestResalePrice) or 0,
        favoriteCount = v27.favoriteCount or 0
    };
    if v28.isOffSale ~= v29.isOffSale then
        return not v28.isOffSale;
    elseif v28.price == 0 then
        return false;
    elseif v29.price == 0 then
        return true;
    elseif v25 == v18.Variants.FavoriteCount and v28.favoriteCount ~= v29.favoriteCount then
        return v29.favoriteCount < v28.favoriteCount;
    elseif v25 == v18.Variants.PriceDecreasing and v28.price ~= v29.price then
        return v29.price < v28.price;
    elseif v25 == v18.Variants.PriceIncreasing and v28.price ~= v29.price then
        return v28.price < v29.price;
    else
        return tonumber(v22) < tonumber(v23);
    end;
end;
local function v39(v31, v32)
    local v33 = v31.Profile.CurrentlyWearing[v32.profileUserId] or {};
    local l_Assets_0 = v31.Profile.Assets;
    v33 = l_Dash_0.filter(v33, function(v35)
        return l_Assets_0[v35] ~= nil;
    end);
    if (v18.FFlagIsSetupEnabled() and v32.sortCurrentlyWearingItemsVariant ~= nil) and v32.sortCurrentlyWearingItemsVariant ~= v18.Variants.Default then
        table.sort(v33, function(v36, v37)
            return (v30(v36, v37, l_Assets_0, v32.sortCurrentlyWearingItemsVariant));
        end);
    end;
    local v38 = l_GridMetrics_0.getSmallMetrics(v31.ScreenSize.X, v14.CardMargin);
    return {
        assetIds = v33,
        itemCardWidth = v38.itemWidth,
        fractionalCardsPerRow = v38.itemsPerRow + 1,
        formFactor = v31.FormFactor
    };
end;
v21.defaultProps = {
    currentlyWearingCarouselComponent = v20
};
v21.validateProps = l_t_0.strictInterface({
    profileUserId = l_t_0.string,
    layoutOrder = l_t_0.optional(l_t_0.number),
    currentlyWearingCarouselComponent = l_t_0.any,
    navigateToLuaAppPages = l_t_0.optional(v7.validateNavigateToLuaAppPages),
    catalogAnalytics = l_t_0.table,
    profileAnalytics = l_t_0.table,
    assetIds = l_t_0.table,
    itemCardWidth = l_t_0.optional(l_t_0.number),
    fractionalCardsPerRow = l_t_0.optional(l_t_0.number),
    formFactor = l_t_0.string,
    sortCurrentlyWearingItemsVariant = l_t_0.optional(l_t_0.string)
});
v21.init = function(v40)
    v40.itemClickHandlers = {};
    v40.getItemClickHandler = function(v41)
        if not l_IsVRAppBuild_0() then
            if not v40.itemClickHandlers[v41] then
                v40.itemClickHandlers[v41] = function()
                    local l_props_0 = v40.props;
                    local l_v41_0 = v41;
                    l_props_0.navigateToLuaAppPages[v8.ItemDetails](l_v41_0, "Asset", false);
                    l_props_0.profileAnalytics:viewCatalogItem();
                    l_props_0.catalogAnalytics.clickCatalogItemFromProfile(v14.AnalyticsContext.PlayerProfile, l_v41_0, "Asset");
                end;
            end;
            return v40.itemClickHandlers[v41];
        else
            return nil;
        end;
    end;
end;
v21.render = function(v44)
    local l_props_1 = v44.props;
    return l_Roact_0.createElement(l_props_1.currentlyWearingCarouselComponent, {
        layoutOrder = l_props_1.layoutOrder,
        assetIds = l_props_1.assetIds,
        itemCardWidth = l_props_1.itemCardWidth,
        fractionalCardsPerRow = l_props_1.fractionalCardsPerRow,
        formFactor = l_props_1.formFactor,
        getItemClickHandler = v44.getItemClickHandler
    });
end;
return {
    Container = l_compose_0(l_RoactAppExperiment_0.connectUserLayer({
        l_AppUserLayers_0.SocialProfilePeekViewLayer
    }, function(v46)
        return {
            sortCurrentlyWearingItemsVariant = if not v18.FFlagIsSetupEnabled() then nil else v18.getExperimentVariant(v46)
        };
    end), l_RoactRodux_0.connect(v39, nil), v6.connect(function(v47)
        return {
            navigateToLuaAppPages = v47.navigateToLuaAppPages,
            catalogAnalytics = v47.catalogAnalytics
        };
    end), v17.connect(function(v48)
        return {
            profileAnalytics = v48
        };
    end))(v21),
    mapStateToProps = v39
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_RoactRodux_0 = v1.RoactRodux;
local l_UIBlox_0 = v1.UIBlox;
local l_t_0 = v1.t;
local l_CatalogUtils_0 = v1.CatalogUtils;
local l_UserLib_0 = v1.UserLib;
local l_Constants_0 = l_UserLib_0.Utils.Constants;
local l_getRbxthumbWithTypeSizeAndOptions_0 = l_UserLib_0.Utils.getRbxthumbWithTypeSizeAndOptions;
local l_FFlagAXFixItemTypeHandling_0 = v1.FFlagAXFixItemTypeHandling;
local _ = require(l_Parent_0.Reducers.Models.AssetInfo);
local _ = require(l_Parent_0.Reducers.Root);
local l_ItemTile_0 = l_UIBlox_0.Tile.ItemTile;
local v14 = l_Roact_0.PureComponent:extend("ItemCard");
v14.validateProps = l_t_0.strictInterface({
    assetId = l_t_0.string,
    onActivated = l_t_0.optional(l_t_0.callback),
    footer = l_t_0.optional(l_t_0.table),
    layoutOrder = l_t_0.optional(l_t_0.integer),
    assetInfo = l_t_0.optional(l_t_0.table)
});
v14.render = function(v15)
    local l_props_0 = v15.props;
    local l_assetInfo_0 = l_props_0.assetInfo;
    local l_assetId_0 = l_props_0.assetId;
    local v19 = nil;
    local v20 = nil;
    local v21 = nil;
    if l_assetInfo_0 then
        v19 = l_getRbxthumbWithTypeSizeAndOptions_0(l_assetId_0, l_Constants_0.RbxthumbTypes.Asset, 150);
        v20 = l_assetInfo_0.name;
        v21 = if not l_FFlagAXFixItemTypeHandling_0 then l_CatalogUtils_0.DEPRECATED_HasPremiumBenefits(l_assetInfo_0) else l_assetInfo_0.premiumPricing ~= nil;
    end;
    return l_Roact_0.createElement(l_ItemTile_0, {
        footer = l_props_0.footer,
        LayoutOrder = l_props_0.layoutOrder,
        isPremium = v21,
        name = v20,
        onActivated = l_props_0.onActivated,
        thumbnail = v19
    });
end;
return l_RoactRodux_0.connect(function(v22, v23)
    return {
        assetInfo = v22.Profile.Assets[v23.assetId]
    };
end, nil)(v14);


local v0 = require(game:GetService("CorePackages").Packages.React);
local l_UIBlox_0 = require(script:FindFirstAncestor("Profile").dependencies).UIBlox;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local l_ShimmerPanel_0 = l_UIBlox_0.App.Loading.ShimmerPanel;
return function(v4)
    local v5 = l_useStyle_0();
    local v6 = v5.Font.BaseSize * v5.Font.CaptionBody.RelativeSize;
    return v0.createElement("Frame", {
        LayoutOrder = v4.layoutOrder,
        Size = UDim2.new(1, 0, 0, v6),
        BackgroundTransparency = 1,
        BorderSizePixel = 0
    }, {
        Padding = v0.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 4),
            PaddingBottom = UDim.new(0, 4)
        }),
        ShimmerPanel = v0.createElement(l_ShimmerPanel_0, {
            Size = UDim2.new(0.6, 0, 0, v6)
        })
    });
end;


local v0 = require(game:GetService("CorePackages").Packages.React);
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Profile");
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_useLocalization_0 = v2.useLocalization;
local l_Array_0 = v2.LuauPolyfill.Array;
local v6 = require(l_script_FirstAncestor_0.ProfileContext);
local v7 = require(l_script_FirstAncestor_0.Common.TextKeys);
local _ = require(l_script_FirstAncestor_0.Common.ContextPropsTypes);
local v9 = require(l_script_FirstAncestor_0.Flags.getFIntProfileMutualFriendsListMaxNameLength);
local v10 = require(script.Parent.MutualFriendsListPresentational);
local v11 = require(script.Parent.LoadingShimmer);
local v12 = require(script.Parent.useUserNamesForDisplay);
local v13 = require(script.Parent.useProfileInsightsByUserIdQuery);
local function _(v14, v15)
    local v16 = v9();
    if v15.shouldTruncateLongNames and v16 <= #v14 then
        return (("%*%*"):format(string.sub(v14, 1, v16 - 1), "\226\128\166"));
    else
        return v14;
    end;
end;
local function _(v18, v19)
    return l_Array_0.join(l_Array_0.map(v18, function(v20)
        local l_v19_0 = v19;
        local v22 = v9();
        if l_v19_0.shouldTruncateLongNames and v22 <= #v20 then
            return (("%*%*"):format(string.sub(v20, 1, v22 - 1), "\226\128\166"));
        else
            return v20;
        end;
    end), ", ");
end;
local function _(v24, v25)
    if v24 == 1 then
        return v25.oneMutualFriendText;
    elseif v24 > 1 and v24 <= 3 then
        return v25.pluralMutualFriendsText;
    else
        local v26 = v24 - 3;
        return (("+ %* %*"):format(v26, if v26 == 1 then v25.oneOtherMutualFriendText else v25.pluralOtherMutualFriendsText));
    end;
end;
local function _(v28, v29, v30, v31)
    local v35 = l_Array_0.join(l_Array_0.map(v29, function(v32)
        local l_v30_0 = v30;
        local v34 = v9();
        if l_v30_0.shouldTruncateLongNames and v34 <= #v32 then
            return (("%*%*"):format(string.sub(v32, 1, v34 - 1), "\226\128\166"));
        else
            return v32;
        end;
    end), ", ");
    local v36;
    if v28 == 1 then
        v36 = v31.oneMutualFriendText;
    elseif v28 > 1 and v28 <= 3 then
        v36 = v31.pluralMutualFriendsText;
    else
        local v37 = v28 - 3;
        v36 = ("+ %* %*"):format(v37, if v37 == 1 then v31.oneOtherMutualFriendText else v31.pluralOtherMutualFriendsText);
    end;
    return (("%* %*"):format(v35, v36));
end;
return function(v39)
    local v40 = l_useLocalization_0({
        oneMutualFriendText = v7.OneMutualFriendText,
        oneOtherMutualFriendText = v7.OneOtherMutualFriendText,
        pluralMutualFriendsText = v7.PluralMutualFriendsText,
        pluralOtherMutualFriendsText = v7.PluralOtherMutualFriendsText
    });
    local v41 = v0.useContext(v6.Context);
    local v42, v43 = v13({
        userId = v39.profileUserId
    });
    local v44 = v42.mutualFriends or {};
    local v45 = v12(v44, 3);
    local v46 = #v44;
    if not v43 and v46 == 0 then
        return nil;
    elseif not v43 and v45 then
        local v47 = false;
        if v46 > 1 then
            v47 = not v41.wideMode;
        end;
        local v48 = {
            shouldTruncateLongNames = v47
        };
        local v52 = l_Array_0.join(l_Array_0.map(v45, function(v49)
            local l_v48_0 = v48;
            local v51 = v9();
            if l_v48_0.shouldTruncateLongNames and v51 <= #v49 then
                return (("%*%*"):format(string.sub(v49, 1, v51 - 1), "\226\128\166"));
            else
                return v49;
            end;
        end), ", ");
        local v53;
        if v46 == 1 then
            v53 = v40.oneMutualFriendText;
        elseif v46 > 1 and v46 <= 3 then
            v53 = v40.pluralMutualFriendsText;
        else
            local v54 = v46 - 3;
            v53 = ("+ %* %*"):format(v54, if v54 == 1 then v40.oneOtherMutualFriendText else v40.pluralOtherMutualFriendsText);
        end;
        return l_Roact_0.createElement(v10, {
            layoutOrder = v39.layoutOrder,
            text = ("%* %*"):format(v52, v53)
        });
    else
        return l_Roact_0.createElement(v11, {
            layoutOrder = v39.layoutOrder
        });
    end;
end;


local v0 = require(game:GetService("CorePackages").Packages.React);
local l_UIBlox_0 = require(script:FindFirstAncestor("Profile").dependencies).UIBlox;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_PlayerContext_0 = l_UIBlox_0.App.Indicator.PlayerContext;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
return function(v5)
    return v0.createElement("Frame", {
        LayoutOrder = v5.layoutOrder,
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        BorderSizePixel = 0
    }, {
        PlayerContext = v0.createElement(l_PlayerContext_0, {
            icon = l_Images_0["icons/status/player/friend"],
            iconSize = UDim2.fromOffset(12, 12),
            text = v5.text,
            fontStyle = l_useStyle_0().Font.CaptionBody
        })
    });
end;


local v0 = require(script.Parent.Parent.Parent.dependencies);
local l_useQuery_0 = v0.ApolloClientModule.useQuery;
local l_queries_0 = v0.ApolloLocalState.queries;
local _ = require(game:GetService("CorePackages").Workspace.Packages.GraphQLServer);
return function(v4)
    local v5 = l_useQuery_0(l_queries_0.profilesInsightsByUserIds, {
        errorPolicy = "all",
        skip = not v4.userId or v4.skip,
        variables = {
            userIds = {
                v4.userId
            }
        }
    });
    return ((not not v5 and v5.data) and v5.data.profilesInsightsByUserIds) and v5.data.profilesInsightsByUserIds[1] or {}, v5.loading;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Profile");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_Array_0 = v1.LuauPolyfill.Array;
local l_UserProfiles_0 = v1.UserProfiles;
local _ = require(script.Parent.useProfileInsightsByUserIdQuery);
local v5 = require(l_script_FirstAncestor_0.Flags.FFlagProfileUseRealNamesForMutual);
local function _(v6, v7)
    return l_Array_0.slice(v6, 1, v7 + 1);
end;
local function _(v9, v10)
    if not v9 then
        return nil;
    else
        return (l_Array_0.map(v10, function(v11)
            return l_UserProfiles_0.Selectors.getCombinedNameFromId(v9, v11);
        end));
    end;
end;
return function(v13, v14)
    local v15 = l_Array_0.slice(v13, 1, v14 + 1);
    local v17 = l_Array_0.map(v15, function(v16)
        return v16.id;
    end);
    local v18 = if not v5 then nil else l_UserProfiles_0.Hooks.useUserProfilesFetch({
        userIds = v17,
        query = l_UserProfiles_0.Queries.userProfilesCombinedNameByUserIds
    });
    if not v5 then
        return (l_Array_0.map(v15, function(v19)
            return v19.displayName;
        end));
    else
        local l_data_0 = v18.data;
        if not l_data_0 then
            return nil;
        else
            return (l_Array_0.map(v17, function(v21)
                return l_UserProfiles_0.Selectors.getCombinedNameFromId(l_data_0, v21);
            end));
        end;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Components.ProfileMoreButton);
local v3 = require(l_Parent_0.Components.ProfilePrimaryContextualButton);
local v4 = require(l_Parent_0.dependencies);
local l_RoactAppExperiment_0 = v4.RoactAppExperiment;
local l_AppUserLayers_0 = v4.AppUserLayers;
local l_Roact_0 = v4.Roact;
local l_React_0 = v4.React;
local l_UIBlox_0 = v4.UIBlox;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_ActionBar_0 = l_UIBlox_0.App.Button.ActionBar;
local l_LoadingStateContainer_0 = l_UIBlox_0.App.Container.LoadingStateContainer;
local l_RetrievalStatus_0 = l_UIBlox_0.App.Loading.Enum.RetrievalStatus;
local l_Cryo_0 = v4.Cryo;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_ShimmerPanel_0 = l_UIBlox_0.App.Loading.ShimmerPanel;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_getFFlagEditProfilePageEnabled_0 = require(l_CorePackages_0.Workspace.Packages.EditProfile).Flags.getFFlagEditProfilePageEnabled;
local l_FFlagEditProfileSetupNewExperimentFlow_0 = require(l_CorePackages_0.Workspace.Packages.EditProfile).Flags.FFlagEditProfileSetupNewExperimentFlow;
local l_EditProfileIXP_0 = require(l_CorePackages_0.Workspace.Packages.EditProfile).Flags.EditProfileIXP;
local l_RealNamesInDisplayNamesIXP_0 = require(l_CorePackages_0.Workspace.Packages.EditProfile).Flags.RealNamesInDisplayNamesIXP;
local v23 = l_Roact_0.PureComponent:extend("ProfileActionBar");
v23.defaultProps = {
    showMorePageEnabled = true
};
local function v24()
end;
v23.init = function(v25)
    local v26, v27 = l_Roact_0.createBinding(UDim2.new(1, 0, 0, 100));
    v25.bottomBarSize = v26;
    v25.updateBottomBarSize = v27;
    v25.onAbsoluteSizeChanged = function(v28)
        v25.updateBottomBarSize(UDim2.new(1, 0, 0, v28.Y));
    end;
    v25.renderOnLoading = function()
        return l_Roact_0.createFragment({
            LoadingMoreButton = l_Roact_0.createElement(l_ShimmerPanel_0, {
                Size = UDim2.new(0, 48, 0, 48),
                LayoutOrder = 1,
                cornerRadius = UDim.new(0.2, 0)
            }),
            LoadingCTAButton = l_Roact_0.createElement(l_Button_0, {
                buttonType = l_ButtonType_0.PrimarySystem,
                size = UDim2.new(1, -v25.props.innerPaddingSize, 0, 48),
                isLoading = true,
                layoutOrder = 2,
                onActivated = v24
            })
        });
    end;
    v25.renderOnFailed = function()
        return l_Roact_0.createFragment({
            DisabledMoreButton = l_Roact_0.createElement(v2, {
                layoutOrder = 1,
                onActivated = v24,
                isDisabled = true
            }),
            FailedCTAButton = l_Roact_0.createElement(l_Button_0, {
                buttonType = l_ButtonType_0.PrimarySystem,
                size = UDim2.new(1, -v25.props.innerPaddingSize, 0, 48),
                isDisabled = true,
                icon = l_Images_0["icons/actions/block"],
                layoutOrder = 2,
                onActivated = v24
            })
        });
    end;
end;
v23.render = function(v29)
    v29.renderOnLoaded = function()
        local l_props_0 = v29.props;
        local v31 = -l_props_0.innerPaddingSize;
        local v32 = nil;
        if l_props_0.showMorePageEnabled then
            v32 = l_Roact_0.createElement(v2, {
                layoutOrder = 1,
                onActivated = l_props_0.openMoreMenu,
                isSelected = l_props_0.isMoreMenuOpen,
                isQRCode = false
            });
        end;
        if not (not l_props_0.editProfileIXPEnabled and not l_getFFlagEditProfilePageEnabled_0() or not l_props_0.showProfileQRCode) then
            v32 = l_Roact_0.createElement(v2, {
                layoutOrder = 1,
                onActivated = l_props_0.shareProfileQRCode,
                isSelected = l_props_0.isMoreMenuOpen,
                isQRCode = true
            });
        end;
        return l_Roact_0.createFragment({
            MoreButton = v32,
            PrimaryCTAButton = if l_props_0.disableWebViewSupport then nil else l_Roact_0.createElement(v3, {
                size = UDim2.new(1, v31, 0, 48),
                layoutOrder = 2,
                openPurchaseExperienceModal = l_props_0.openPurchaseExperienceModal,
                onClickWithToast = l_props_0.onClickWithToast,
                openUnableToJoinExperienceModal = l_props_0.openUnableToJoinExperienceModal,
                openEditProfilePage = l_props_0.openEditProfilePage,
                editProfileIXPEnabled = l_props_0.editProfileIXPEnabled
            })
        });
    end;
    return l_withStyle_0(function(v33)
        return l_Roact_0.createElement("Frame", {
            Size = v29.bottomBarSize,
            Position = UDim2.fromScale(0, 1),
            AnchorPoint = Vector2.new(0, 1),
            BorderSizePixel = 0,
            BackgroundColor3 = v33.Theme.BackgroundDefault.Color,
            BackgroundTransparency = v33.Theme.BackgroundDefault.Transparency,
            ZIndex = 2
        }, {
            GradientFrame = l_Roact_0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 24),
                Position = UDim2.new(0, 0, 0, -24),
                BackgroundColor3 = v33.Theme.BackgroundDefault.Color,
                BackgroundTransparency = v33.Theme.BackgroundDefault.Transparency,
                BorderSizePixel = 0
            }, {
                Gradient = l_Roact_0.createElement("UIGradient", {
                    Rotation = -90,
                    Transparency = NumberSequence.new({
                        NumberSequenceKeypoint.new(0, 0),
                        NumberSequenceKeypoint.new(1, 1)
                    })
                })
            }),
            ActionBar = l_Roact_0.createElement(l_ActionBar_0, {
                onAbsoluteSizeChanged = v29.onAbsoluteSizeChanged,
                marginOverride = {
                    left = 24,
                    right = 24,
                    top = 0,
                    bottom = 24
                }
            }, {
                loadingStateContainer = l_Roact_0.createElement(l_LoadingStateContainer_0, {
                    dataStatus = l_RetrievalStatus_0.fromRawValue(v29.props.actionBarLoadingStatus),
                    renderOnLoaded = v29.renderOnLoaded,
                    renderOnLoading = v29.renderOnLoading,
                    renderOnFailed = v29.renderOnFailed
                })
            })
        });
    end);
end;
if not l_FFlagEditProfileSetupNewExperimentFlow_0 then
    return (l_RoactAppExperiment_0.connectUserLayer({
        l_AppUserLayers_0.SocialSelfProfileViewLayer
    }, function(v34, _)
        return {
            editProfileIXPEnabled = if not l_EditProfileIXP_0.isEditProfileExperimentEnabled() then nil else l_EditProfileIXP_0.isExperimentEnabled(v34)
        };
    end)(v23));
else
    return function(v36)
        return l_React_0.createElement(v23, l_Cryo_0.Dictionary.join(v36, {
            editProfileIXPEnabled = l_RealNamesInDisplayNamesIXP_0.useIsExperimentEnabled({
                isExposureEnabled = not not v36.isLocalUser or false
            })
        }));
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Parent_0.dependencies);
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Roact_0 = v2.Roact;
local l_RoactRodux_0 = v2.RoactRodux;
local l_compose_0 = v2.SocialLibraries.RoduxTools.compose;
local v7 = require(l_Parent_0.ProfileContext);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v9 = require(l_Parent_0.Common.ProfileScreens);
local v10 = require(l_Parent_0.Utils.isLocalUser);
local v11 = require(script.Parent.ProfileActionBar);
local v12 = require(script.Parent.profileActionBarMapStateToProps);
local v13 = require(l_Parent_0.Analytics);
local v14 = require(l_Parent_0.Common.ProfileTypes);
local l_Contexts_0 = v2.SocialLuaAnalytics.Analytics.Enums.Contexts;
local l_FFlagEditProfileSetupNewExperimentFlow_0 = require(l_CorePackages_0.Workspace.Packages.EditProfile).Flags.FFlagEditProfileSetupNewExperimentFlow;
local l_UniversalAppPolicy_0 = v2.UniversalAppPolicy;
local l_GetFFlagDisableEditProfileForVR_0 = v2.GetFFlagDisableEditProfileForVR;
local v19 = require(script.Parent.ProfileActionBarMapDispatchToProps);
local v20 = l_Roact_0.PureComponent:extend("ProfileActionBarContainer");
v20.init = function(v21)
    v21:setState({
        isMoreMenuOpen = false
    });
    v21.openPurchaseExperienceModal = function(v22)
        v21.props.navigation.navigate(v9.PurchaseExperienceModal, v22);
    end;
    v21.openUnableToJoinExperienceModal = function(v23)
        v21.props.navigation.navigate(v9.UnableToJoinExperienceModal, v23);
    end;
    v21.openContextualMenu = function()
        local l_props_0 = v21.props;
        l_props_0.analytics:buttonClick(v13.Enums.ButtonClickEvents.ContextualMenu);
        v21:setState({
            isMoreMenuOpen = true
        });
        l_props_0.navigation.navigate(v9.ContextualMenu, {
            onCloseContextualMenu = function()
                v21:setState({
                    isMoreMenuOpen = false
                });
            end
        });
    end;
    v21.shareProfileQRCode = function()
        return v21.props.navigateToLuaAppPages[v9.ProfileQRCodePage]({
            source = l_Contexts_0.ProfileCard,
            distanceFromTop = l_UserInputService_0.StatusBarSize.Y
        });
    end;
    v21.openEditProfilePage = function()
        return v21.props.navigation.navigate(v9.EditProfilePage, {
            profileScreens = v9,
            navigateToEditUsername = v21.props.navigateDownToEditUsername,
            navigateDownToPurchaseRobux = v21.props.navigateDownToPurchaseRobux
        });
    end;
end;
v20.render = function(v25)
    local l_props_1 = v25.props;
    return l_Roact_0.createElement(v11, {
        isLocalUser = if not l_FFlagEditProfileSetupNewExperimentFlow_0 then nil else l_props_1.isLocalUser,
        actionBarLoadingStatus = l_props_1.actionBarLoadingStatus,
        showMorePageEnabled = (not l_props_1.isLocalUser and not l_props_1.isDeleted) and l_props_1.profileType ~= v14.FromContacts,
        showProfileQRCode = l_props_1.isLocalUser,
        onClickWithToast = l_props_1.onClickWithToast,
        openMoreMenu = v25.openContextualMenu,
        shareProfileQRCode = v25.shareProfileQRCode,
        openEditProfilePage = v25.openEditProfilePage,
        isMoreMenuOpen = v25.state.isMoreMenuOpen,
        openPurchaseExperienceModal = v25.openPurchaseExperienceModal,
        innerPaddingSize = l_props_1.innerPaddingSize,
        openUnableToJoinExperienceModal = v25.openUnableToJoinExperienceModal,
        disableWebViewSupport = l_props_1.disableWebViewSupport
    });
end;
if l_GetFFlagDisableEditProfileForVR_0() then
    v20 = l_UniversalAppPolicy_0.connect(function(v27)
        return {
            disableWebViewSupport = if not l_GetFFlagDisableEditProfileForVR_0() then nil else not v27.getWebViewSupport()
        };
    end)(v20);
end;
return l_compose_0(v7.connect(function(v28)
    return {
        profileUserId = v28.profileUserId,
        isLocalUser = v10(v28),
        profileType = v28.profileType,
        navigateToLuaAppPages = v28.navigateToLuaAppPages
    };
end), l_RoactRodux_0.connect(v12, v19), v13.connect(function(v29)
    return {
        analytics = v29
    };
end))(v20);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v2 = require(l_Modules_0.LuaApp.AppPage);
local v3 = require(l_Modules_0.LuaApp.Components.BrowserServiceWrapper);
return function(v4)
    return {
        navigateDownToEditUsername = function(v5)
            v4(v1({
                name = v2.EditUsername,
                extraProps = {
                    BrowserWrapperComponent = v3,
                    showToast = v5
                }
            }));
        end,
        navigateDownToPurchaseRobux = function()
            v4(v1({
                name = v2.PurchaseRobux,
                extraProps = {}
            }));
        end
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_RetrievalStatus_0 = v1.UIBlox.App.Loading.Enum.RetrievalStatus;
local _ = require(l_Parent_0.Reducers.Root);
local l_getDeepValue_0 = v1.SocialLibraries.Dictionary.getDeepValue;
local l_RoduxNetworking_0 = v1.RoduxNetworking;
local l_NetworkingFriends_0 = v1.NetworkingFriends;
local l_NetworkingBlocking_0 = v1.NetworkingBlocking;
local v8 = require(l_Parent_0.Common.ProfileTypes);
local l_NetworkStatus_0 = l_RoduxNetworking_0.Enum.NetworkStatus;
return function(v10, v11)
    if v11.profileType == v8.FromContacts then
        return {
            actionBarLoadingStatus = l_RetrievalStatus_0.Done.rawValue(),
            isDeleted = false
        };
    else
        local v12 = v11.profileUserId or "";
        local v13 = l_getDeepValue_0(v10, string.format("Profile.ProfilePageDataStatus.%s", v12));
        local v14 = l_getDeepValue_0(v10, string.format("Profile.AdditionalUserFields.%s.isDeleted", v12));
        local v15 = not (#v12 > 0);
        if not v15 then
            v15 = true;
            if l_NetworkingFriends_0.UnfriendTargetUserId.getStatus(v10, v12) ~= l_NetworkStatus_0.Fetching then
                v15 = true;
                if l_NetworkingFriends_0.RequestFriendshipFromUserId.getStatus(v10, v12) ~= l_NetworkStatus_0.Fetching then
                    v15 = true;
                    if l_NetworkingFriends_0.AcceptFriendRequestFromUserId.getStatus(v10, v12) ~= l_NetworkStatus_0.Fetching then
                        v15 = true;
                        if l_NetworkingFriends_0.AcceptFriendRequestWithToken.getStatus(v10, v12) ~= l_NetworkStatus_0.Fetching then
                            v15 = true;
                            if l_NetworkingFriends_0.DeclineFriendRequestFromUserId.getStatus(v10, v12) ~= l_NetworkStatus_0.Fetching then
                                v15 = true;
                                if l_NetworkingBlocking_0.BlockUserById.getStatus(v10, v12) ~= l_NetworkStatus_0.Fetching then
                                    v15 = l_NetworkingBlocking_0.UnblockUserById.getStatus(v10, v12) == l_NetworkStatus_0.Fetching;
                                end;
                            end;
                        end;
                    end;
                end;
            end;
        end;
        return {
            actionBarLoadingStatus = (not not v15 and l_RetrievalStatus_0.Fetching.rawValue() or v13) or l_RetrievalStatus_0.NotStarted.rawValue(),
            isDeleted = v14 or false
        };
    end;
end;