local l_CoreGui_0 = game:GetService("CoreGui");
local l_RunService_0 = game:GetService("RunService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.Enum.NativePurchaseStatus);
local v4 = require(l_Modules_0.LuaApp.Actions.SetUserMembershipType);
local v5 = require(l_Modules_0.LuaApp.Actions.SetNativePurchaseResult);
local _ = require(l_Modules_0.LuaApp.Models.PremiumFeaturesApi.IAPProduct);
local v7 = require(l_Modules_0.LuaApp.Thunks.PollRobuxBalance);
local _ = function(v8, v9)
    for _, v11 in pairs(v8) do
        if v11.mobileProductId == v9 then
            return true;
        end;
    end;
    return false;
end;
return function(v13, v14, v15)
    return function(v16)
        local v17 = v16:getState();
        local l_LocalUserId_0 = v17.LocalUserId;
        local v19 = v17.UserRobux[v17.LocalUserId];
        if not (v15 ~= v3.Failed) or v15 == v3.Pending then
            return v16:dispatch(v5(v14, v3.Failed));
        else
            local l_Subscriptions_0 = v17.IAPProducts.Subscriptions;
            local l_v14_0 = v14;
            local v22;
            for _, v24 in pairs(l_Subscriptions_0) do
                if v24.mobileProductId == l_v14_0 then
                    v22 = true;
                    goto label0 --[[  true, false  ]];
                end;
            end;
            v22 = false;
            ::label0::;
            if not v22 then
                v16:dispatch(v5(v14, v3.Polling));
                if not l_RunService_0:IsStudio() then
                    return v16:dispatch(v7(v13, tostring(l_LocalUserId_0), v19, function(v25)
                        return v16:dispatch(v5(v14, v25 ~= v19 and v3.Success or v3.Failed));
                    end)):catch(function()
                        return v16:dispatch(v5(v14, v3.Failed));
                    end);
                else
                    return v16:dispatch(v5(v14, v3.Success));
                end;
            else
                v16:dispatch(v4(l_LocalUserId_0, Enum.MembershipType.Premium));
                return v16:dispatch(v5(v14, v3.Success));
            end;
        end;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local v2 = require(l_CoreGui_0.RobloxGui.Modules.LuaApp.Actions.SetUserMembershipType);
return function(v3, v4)
    return function(v5)
        local v6 = v5:getState();
        if v4 then
            for _, v8 in pairs(v6.IAPProducts.Subscriptions) do
                if v8.mobileProductId == v3 then
                    v5:dispatch(v2(tostring(l_Players_0.LocalPlayer.UserId), Enum.MembershipType.Premium));
                    return ;
                end;
            end;
        end;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v5 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.NavigateDownToAvatarScreen);
local v6 = require(l_Modules_0.LuaApp.Components.ProfileQRCodePage.api);
local v7 = require(l_Modules_0.LuaApp.Components.ProfileQRCodePage.ProfileQRCodeUniversalAppWrapper);
local l_TitleKey_0 = v6.TitleKey;
local v9 = require(l_CorePackages_0.Cryo);
local v10 = require(l_Modules_0.LuaApp.Components.FullscreenPageWithSafeArea);
return function(v11)
    return v5(v4.AvatarBackground, "QRCode", {
        playEmote = true,
        renderContent = function(v12)
            return v3.createElement(v10, {
                includeStatusBar = true,
                BackgroundTransparency = 1
            }, {
                QRCode = v3.createElement(v7, v9.Dictionary.join(v11, v12))
            });
        end,
        title = l_TitleKey_0,
        isTopBarVisible = false
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.AppPage);
local v4 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v5 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v6)
    assert(v1.callback(v6) or v1.none(v6));
    return v5({
        name = v3.GenericWebPage,
        detail = v4.static.friends(),
        extraProps = {
            titleKey = "CommonUI.Features.Label.Friends",
            onClose = v6,
            searchParams = {
                searchType = "Players"
            }
        }
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.AppPage);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v5, v6)
    assert(v1.string(v5));
    assert(v1.callback(v6) or v1.none(v6));
    return v4({
        name = v3.SdkShare,
        extraProps = {
            context = "AddFriendsTile",
            userId = v5,
            onClose = v6
        }
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function()
    return v2({
        name = v1.AddFriendsPage,
        extraProps = {
            titleKey = "Feature.Friends.Feature.Friends.Heading.AddFriends"
        }
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.AppPage);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v5)
    assert(v1.callback(v5) or v1.none(v5));
    return v4({
        name = v3.Chat,
        extraProps = {
            onClose = v5
        }
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.AppPage);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v5)
    assert(v1.callback(v5) or v1.none(v5));
    return v4({
        name = v3.AddFriends,
        extraProps = {
            onClose = v5
        }
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.Http.Url);
local v4 = require(l_Modules_0.LuaApp.AppPage);
local v5 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v6)
    assert(v1.callback(v6) or v1.none(v6));
    return v5({
        name = v4.GenericWebPage,
        detail = string.format("%susers/friends#/friend-requests", v3.BASE_URL),
        extraProps = {
            titleKey = "CommonUI.Features.Label.Friends",
            onClose = v6,
            searchParams = {
                searchType = "Players"
            }
        }
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v3, v4, v5, v6, v7, v8)
    return function(v9)
        v9:dispatch(v2({
            name = v1.RobuxUpsell,
            detail = "",
            extraProps = {
                triggerContext = v3,
                priceInRobux = v4,
                userRobux = v5,
                itemName = v6,
                itemIcon = v7,
                purchaseItem = v8
            }
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.ArgCheck);
local v3 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v5)
    v2.isTypeOrNil(v5, "function", "onClose");
    return v4({
        name = v1.SettingsSubPage,
        detail = v3.static.settings.security(),
        extraProps = {
            titleKey = "Feature.AccountSettings.Heading.Tab.Security",
            onClose = v5
        }
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.AppPage);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v5)
    assert(v1.callback(v5) or v1.none(v5));
    return v4({
        name = v3.ViewFriends,
        extraProps = {
            onClose = v5
        }
    });
end;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Thunks.ResetNavigationHistory);
local function v8(v1, v2)
    local v3 = {};
    if #v1 > 1 then
        for v4 = 1, #v1 - 1 do
            v3[v4] = v1[v4];
        end;
    end;
    local v5 = v1[#v1];
    local v6 = {};
    if v5 and #v5 > 1 then
        for v7 = 1, #v5 - 1 do
            v6[v7] = v5[v7];
        end;
        v6[#v6 + 1] = {
            name = v2
        };
    else
        v6 = {
            {
                name = v2
            }
        };
    end;
    v3[#v3 + 1] = v6;
    return v6, v3;
end;
return function(v9, v10)
    return function(v11)
        local v12, v13 = v8(v9, v10);
        v11:dispatch(v0(v12, v13));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForPeopleList);
local v3 = require(l_Modules_0.LuaApp.Thunks.OpenProfilePeekView);
local l_UserModel_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Models.UserModel;
local v5 = require(l_Modules_0.Profile.Analytics.ProfileAnalytics);
local l_FFlagLuaAppConsolidateProfileLogging_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagLuaAppConsolidateProfileLogging;
local function v11(v7, v8)
    local v9 = not not v7 and v7.Users[v8] or {};
    local v10 = false;
    if v9.presence == l_UserModel_0.PresenceType.IN_GAME then
        v10 = v9.lastLocation;
    end;
    return v10;
end;
return function(v12, v13)
    return function(v14)
        local v15 = v14:getState();
        local l_LocalUserId_0 = v15.LocalUserId;
        local v17 = v13.userInGame or v11;
        if (not v13.openJoinable or not v13.contextualMenuProps) or not v17(v15, v12) then
            if not (l_FFlagLuaAppConsolidateProfileLogging_0 or not v13.entryPoint) then
                v5.new({
                    localUserId = l_LocalUserId_0,
                    profileUserId = v12,
                    analyticsProps = v13.profilePeekViewProps and v13.profilePeekViewProps.analyticsProps
                }):navigateToProfile(v13.entryPoint);
            end;
            v14:dispatch(v3(v12, v13.profilePeekViewProps));
            return ;
        else
            v14:dispatch(v2(v13.contextualMenuProps));
            return ;
        end;
    end;
end;


local v0 = require(game:GetService("CorePackages").Cryo);
local v1 = require(script.Parent.RetryWithOverridableWait);
return function(v2)
    return v1((v0.Dictionary.join(v2, {
        waitImpl = wait
    })));
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.t);
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v4 = require(l_CorePackages_0.Packages.Promise);
local v5 = v1.interface({
    previousResult = v1.optional(v1.any),
    isResolveConditionMet = v1.callback,
    retryCallback = v1.callback,
    retryCount = v1.number,
    retryTimeMultiplier = v1.number,
    waitImpl = v1.callback
});
local function v6(v7)
    local l_retryCount_0 = v7.retryCount;
    local l_previousResult_0 = v7.previousResult;
    local l_isResolveConditionMet_0 = v7.isResolveConditionMet;
    local l_retryCallback_0 = v7.retryCallback;
    local l_retryTimeMultiplier_0 = v7.retryTimeMultiplier;
    local l_waitImpl_0 = v7.waitImpl;
    if not l_isResolveConditionMet_0(l_previousResult_0) then
        return v4.new(function(v14, _)
            coroutine.wrap(function()
                l_waitImpl_0(l_retryTimeMultiplier_0 * math.pow(2, l_retryCount_0 - 1));
                v14();
            end)();
        end):andThen(function()
            return l_retryCallback_0();
        end):andThen(function(v16)
            if l_retryCount_0 > 1 then
                return v6(v2.Dictionary.join(v7, {
                    retryCount = l_retryCount_0 - 1,
                    previousResult = v16
                }));
            else
                return v4.reject();
            end;
        end);
    else
        return v4.resolve(l_previousResult_0);
    end;
end;
return function(v17)
    v3.assert(v5(v17));
    return v6(v17);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_gql_0 = require(l_CorePackages_0.Packages.ApolloClient).gql;
local l_SetGameIcons_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.SetGameIcons;
local v3 = require(l_CorePackages_0.Packages.Cryo);
local _ = require(l_CorePackages_0.Packages.LuauPolyfill);
local _ = require(l_CorePackages_0.Workspace.Packages.GraphQLServer);
local v6 = require(script.Parent.parseGameIconsFromGraphqlData);
local v7 = l_gql_0("\tquery GetExperienceThumbnails($universeIds: [String) {\n\t\texperienceThumbnails(universeIds: $universeIds) {\n\t\t\tuniverseId\n\t\t\tthumbnails {\n\t\t\t\turl\n\t\t\t}\n\t\t}\n\t}\n");
return function(v8, v9, v10)
    return (v8:query({
        query = v7,
        variables = {
            universeIds = if not v10.Game then {} else v3.Dictionary.keys(v10.Game)
        },
        fetchPolicy = "network-only"
    }):andThen(function(v11)
        v9:dispatch(l_SetGameIcons_0((v6(v11.data.experienceThumbnails or {}))));
    end));
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.ApolloClient);
local _ = v1.gql;
local _ = v1.NULL;
local v4 = require(l_CorePackages_0.Packages.Promise);
local v5 = require(l_CorePackages_0.Workspace.Packages.ApolloLocalState);
local l_reactiveVars_0 = v5.reactiveVars;
local l_omniFeedWithMetadata_0 = v5.queries.omniFeed.omniFeedWithMetadata;
local l_omniSessionId_0 = l_reactiveVars_0.omniSessionId;
local l_nextPageToken_0 = l_reactiveVars_0.nextPageToken;
local l_supportedTreatmentTypes_0 = l_reactiveVars_0.supportedTreatmentTypes;
local v11 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Flags.GetFFlagUseHomeOmniFeedDataLoader);
return function(v12, v13, v14, v15, v16)
    local l_l_omniFeedWithMetadata_0_0 = l_omniFeedWithMetadata_0;
    local v18 = nil;
    local v20 = v12:query({
        query = l_l_omniFeedWithMetadata_0_0,
        variables = {
            pageType = v13,
            sessionId = v14,
            nextPageToken = v15,
            supportedTreatmentTypes = v16
        },
        fetchPolicy = "network-only"
    }):catch(function(v19)
        v18 = v19;
        return nil;
    end):expect();
    if v11() then
        l_omniSessionId_0(v14);
        l_nextPageToken_0(v15);
        l_supportedTreatmentTypes_0(v16);
    end;
    if not v18 then
        return v4.resolve(v20);
    else
        return v4.reject(v18);
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_gql_0 = require(l_CorePackages_0.Packages.ApolloClient).gql;
local l_reactiveVars_0 = require(l_CorePackages_0.Workspace.Packages.ApolloLocalState).reactiveVars;
local v3 = require(l_CorePackages_0.Packages.Cryo);
local l_omniSessionId_0 = l_reactiveVars_0.omniSessionId;
local v5 = require(script.Parent.parseGameIconsFromGraphqlData);
local _ = require(l_CorePackages_0.Workspace.Packages.GraphQLServer);
local _ = require(game:GetService("CoreGui").RobloxGui.Modules.Personalization.DataStoreTypes);
local v8 = l_gql_0("  query OmniFeedItemMetadata($sessionId: String String [OmniFeedRecommendationDescriptor]) {\n    refreshOmniFeedItem(sessionId: $sessionId, topicId: $topicId, recommendations: $recommendations) {\n      metadata {\n        GameJSON\n      }\n      sort {\n        topicId\n        experiences {\n          universeId\n          name\n          placeId\n          playerCount\n          totalDownVotes\n          totalUpVotes\n          under9\n          under13\n          thumbnails {\n            url\n          }\n        }\n      }\n    }\n  }\n");
return function(v9, v10, v11)
    return v9:query({
        query = v8,
        variables = {
            recommendations = v3.List.map(v11, function(v12)
                return {
                    contentType = v12.contentType,
                    contentId = v12.contentId
                };
            end),
            topicId = tostring(v10),
            sessionId = l_omniSessionId_0()
        }
    }):andThen(function(v13)
        local v14 = if not not v13.data and v13.data.refreshOmniFeedItem then v13.data.refreshOmniFeedItem else nil;
        local v15 = if not not v14 and v14.metadata then v14.metadata else {};
        return {
            data = {
                contentMetadata = {
                    Game = v15.GameJSON,
                    CatalogAsset = v15.CatalogAssetJSON,
                    CatalogBundle = v15.CatalogBundleJSON,
                    RecommendedFriend = v15.RecommendedFriendJSON
                },
                icons = v5(if not not v14.sort and v14.sort.experiences then v14.sort.experiences else {})
            }
        };
    end);
end;


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


local _ = require(game:GetService("CorePackages").Workspace.Packages.GraphQLServer);
return function(v1)
    local v2 = {};
    for _, v4 in v1, nil, nil do
        local v5 = if not not v4.thumbnails and #v4.thumbnails > 0 then v4.thumbnails[1].url else nil;
        if v5 then
            v2[v4.universeId] = {
                universeId = v4.universeId,
                state = "Completed",
                url = v5,
                size = "150x150"
            };
        end;
    end;
    return v2;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v1 = require(l_script_FirstAncestor_0.AvatarExperience.Common.Components.RoactNavigation.AppRouterWrapper.NavigateDownToAvatarScreen);
local _ = require(l_script_FirstAncestor_0.LuaApp.AppPage);
local v3 = require(l_script_FirstAncestor_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
return function(v4, v5, _)
    return function(v7)
        v7:dispatch(v1(v3.ItemDetails, v5 .. v4, {
            itemId = v4,
            itemType = v5,
            mountAsFullView = true,
            mountAnimation = false,
            fromProfile = true,
            itemDetailsPeekViewRefs = {}
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4)
    return function(v5)
        v5:dispatch(v2(v1.ConfirmSignOut, {
            continueFunc = v3,
            theme = v4
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3)
    return function(v4)
        v4:dispatch(v2(v1.DiscoverabilityUpsell, v3));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4)
    return function(v5)
        v5:dispatch(v2(v1.ExperienceGuidelinesExplained, {
            universeId = v3,
            hideCloseButton = v4
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4, v5, v6, v7, v8)
    return function(v9)
        v9:dispatch(v2(v1.GameDetailMore, {
            universeId = v3,
            theme = v4,
            menuPosition = v5,
            menuWidth = v6,
            onClose = v7,
            menuAnchorPoint = v8
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4)
    return function(v5)
        v5:dispatch(v2(v1.GameDetailPlay, {
            menuPosition = v3,
            launchGameCallback = v4
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4, v5, v6)
    return function(v7)
        v7:dispatch(v2(v1.GameDetailsPlayWithFriends, {
            universeId = v3,
            theme = v4,
            menuPosition = v5,
            menuWidth = v6
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3)
    return function(v4)
        v4:dispatch(v2(v1.LeaveRobloxAlert, {
            continueFunc = v3
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function()
    return function(v3)
        v3:dispatch(v2(v1.LoginPasswordResetPrompt, {}));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.ArgCheck);
local v2 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v3 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v4)
    return function(v5)
        v1.isType(v4.user, "table", "props.user passed down to OpenCentralOverlayForPeopleList");
        v1.isType(v4.positionIndex, "number", "props.positionIndex passed down to OpenCentralOverlayForPeopleList");
        v1.isType(v4.onOpen, "function", "props.onOpen passed down to OpenCentralOverlayForPeopleList");
        v1.isType(v4.onClose, "function", "props.onClose passed down to OpenCentralOverlayForPeopleList");
        v1.isType(v4.anchorSpaceSize, "Vector2", "props.anchorSpaceSize passed down to OpenCentralOverlayForPeopleList");
        v1.isType(v4.anchorSpacePosition, "Vector2", "props.anchorSpacePosition passed down to OpenCentralOverlayForPeopleList");
        v1.isType(v4.absolutePosition, "number", "props.absolutePosition passed down to OpenCentralOverlayForPeopleList");
        v5:dispatch(v3(v2.PeopleList, v4));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_Modules_0.LuaApp.Util.joinGame);
local v4 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v5 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local _ = require(l_CorePackages_0.Workspace.Packages.PlayerContextualMenu);
return function(v7)
    return function(v8)
        v8:dispatch(v5(v4.PlayerContextualMenu, v2.Dictionary.join({
            joinExperience = function(v9, v10)
                v3:ByUser({
                    id = v9
                }, v10);
            end
        }, v7)));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4, v5, v6)
    return function(v7)
        v7:dispatch(v2(v1.PurchaseGameRobuxShortfall, {
            gameName = v3,
            robuxShortfall = v4,
            theme = v5,
            pageFilter = v6
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4)
    return function(v5)
        v5:dispatch(v2(v1.PurchasePass, {
            pass = v3,
            universeId = v4
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function()
    return function(v3)
        v3:dispatch(v2(v1.PurchasePassInsufficientRobux));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CentralOverlayType_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).CentralOverlayType;
local l_SetCentralOverlay_0 = require(l_CorePackages_0.Workspace.Packages.CentralOverlay).Actions.SetCentralOverlay;
return function()
    return function(v3)
        v3:dispatch(l_SetCentralOverlay_0(l_CentralOverlayType_0.ReportLogsOverlay, {}));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.ArgCheck);
local v2 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v3 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local v4 = require(l_Modules_0.LuaApp.Models.Authentication.Birthday);
return function(v5)
    return function(v6)
        v1.isType(v5.onClose, "function", "props.onClose passed down to OpenCentralOverlayForSignUpBirthdayPicker");
        if v5.initialBirthday then
            v1.assert(v4.is(v5.initialBirthday), "props.initialBirthday passed down to OpenCentralOverlayForSignUpBirthdayPicker");
        end;
        v6:dispatch(v3(v2.SignUpBirthdayPickerOverlay, v5));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3, v4, v5, v6, v7, v8)
    return function(v9)
        v9:dispatch(v2(v1.SurveyPrompt, {
            continueFunc = v3,
            closeFunc = v4,
            titleText = v5,
            bodyText = v6,
            cancelButtonText = v7,
            confirmButtonText = v8
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local _ = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v3 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function()
    return function(v4)
        v4:dispatch(v3({
            name = v1.GenericWebPage,
            detail = "https://en.help.roblox.com/hc/articles/7416652004884",
            extraProps = {
                title = ""
            }
        }, nil));
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v1 = require(l_script_FirstAncestor_0.LuaApp.Actions.SetCentralOverlay);
local v2 = require(l_script_FirstAncestor_0.LuaApp.Enum.OverlayType);
return function(v3)
    return function(v4)
        v4:dispatch(v1(v2.ContactsList, v3));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local function _(v3, v4)
    v3:dispatch(v2(v4));
end;
return function(v6, v7)
    return function(v8)
        v8:dispatch(v2({
            name = v1.ExperienceDetail,
            detail = tostring(v6),
            extraProps = v7
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v3)
    return function(v4)
        v4:dispatch(v2({
            name = v1.ExperienceGuidelinesExplained,
            detail = tostring(v3)
        }));
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v1 = require(l_script_FirstAncestor_0.LuaApp.Actions.SetCentralOverlay);
local v2 = require(l_script_FirstAncestor_0.LuaApp.Enum.OverlayType);
return function(v3)
    return function(v4)
        v4:dispatch(v1(v2.FindFriendsModal, v3));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local l_AppPage_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).AppPage;
local l_PeekViewState_0 = require(l_CorePackages_0.Workspace.Packages.PeekView).PeekViewState;
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local l_NavigateDown_0 = require(l_CorePackages_0.Workspace.Packages.NavigationRodux).Thunks.NavigateDown;
local v6 = require(l_CorePackages_0.Workspace.Packages.GameDetail);
local l_SetGameDetailsPeekViewState_0 = v6.PeekView.SetGameDetailsPeekViewState;
local l_UseGameDetailsPeekView_0 = v6.PeekView.UseGameDetailsPeekView;
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v10 = require(l_Modules_0.LuaApp.Thunks.ResetNavigationHistory);
local v11 = require(l_Modules_0.LuaApp.Util.startNewPeekViewHistory);
local function _(v12, v13)
    local v14 = v11(v12, v13);
    local l_newRoute_0 = v14.newRoute;
    local l_newHistory_0 = v14.newHistory;
    v12:dispatch(l_SetGameDetailsPeekViewState_0(l_PeekViewState_0.Closed));
    v12:dispatch(v10(l_newRoute_0, l_newHistory_0));
end;
local function v20(v18, v19)
    v18:dispatch(l_NavigateDown_0((v1.Dictionary.join(v19, {
        extraProps = v1.Dictionary.join(v19.extraProps or {}, {
            mountAsFullView = true
        })
    }))));
end;
local function _(v21, v22)
    v21:dispatch(l_NavigateDown_0((v1.Dictionary.join(v22, {
        name = l_AppPage_0.ExperienceDetail
    }))));
end;
return function(v24, v25)
    return function(v26)
        local v27 = {
            name = l_AppPage_0.GameDetail,
            detail = tostring(v24),
            extraProps = v25
        };
        local v28 = v26:getState();
        local l_FormFactor_1 = v28.FormFactor;
        local l_viewState_0 = v28.GameDetailsPeekView.viewState;
        if not (l_FormFactor_1 == l_FormFactor_0.COMPACT) or not l_UseGameDetailsPeekView_0() then
            v26:dispatch(l_NavigateDown_0((v1.Dictionary.join(v27, {
                name = l_AppPage_0.ExperienceDetail
            }))));
            return ;
        elseif (l_viewState_0 ~= l_PeekViewState_0.Full and l_viewState_0 ~= l_PeekViewState_0.Extended) and (not v25 or not v25.mountAsFullView) then
            local v31 = v11(v26, v27);
            local l_newRoute_1 = v31.newRoute;
            local l_newHistory_1 = v31.newHistory;
            v26:dispatch(l_SetGameDetailsPeekViewState_0(l_PeekViewState_0.Closed));
            v26:dispatch(v10(l_newRoute_1, l_newHistory_1));
            return ;
        else
            v20(v26, v27);
            return ;
        end;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local l_RunService_0 = game:GetService("RunService");
local l_MarketplaceService_0 = game:GetService("MarketplaceService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v6 = nil;
pcall(function()
    v6 = game:GetService("PlatformService");
end);
local v7 = require(l_Modules_0.LuaApp.AppPage);
local v8 = require(l_Modules_0.LuaApp.Enum.PaymentPlatform);
local v9 = require(l_Modules_0.LuaApp.Enum.NativePurchaseStatus);
local v10 = require(l_Modules_0.LuaApp.Actions.SetNativePurchaseResult);
local _ = require(l_Modules_0.LuaApp.Thunks.NativePurchaseCompleteDEP);
local v12 = require(l_Modules_0.LuaApp.Thunks.NativePurchaseComplete);
local v13 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v14 = require(l_Modules_0.LuaApp.Util.getPaymentPlatform);
local l_getAppFeaturePolicies_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).getAppFeaturePolicies;
local v16 = require(l_Modules_0.LuaApp.Thunks.OpenPurchaseRobuxPage);
local l_GetFFlagOpenVngShopForVngRobuxPurchase_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagOpenVngShopForVngRobuxPurchase;
return function(v18, v19, v20)
    return function(v21)
        v21:dispatch(v10(v19, v9.Pending));
        if not l_RunService_0:IsStudio() then
            local v22 = v14();
            if v22 == v8.Web then
                if not l_GetFFlagOpenVngShopForVngRobuxPurchase_0() or not l_getAppFeaturePolicies_0().getShowVNGAge12Badge() then
                    return v21:dispatch(v13({
                        name = v7.Payment,
                        detail = v20
                    }));
                else
                    return v21:dispatch(v16(function()
                        return v21:dispatch(v12(v18, v19, v9.Polling));
                    end));
                end;
            elseif v22 == v8.Xbox then
                local v23 = nil;
                local v24 = nil;
                local v25 = nil;
                local l_status_0, l_result_0 = pcall(function()
                    v23 = v6:BeginPlatformStorePurchase(v19);
                end);
                v24 = l_status_0;
                v25 = l_result_0;
                l_status_0 = v9.Failed;
                if v24 and v23 == 0 then
                    l_status_0 = v9.Success;
                end;
                return v21:dispatch(v12(v18, v19, l_status_0));
            elseif not game:GetEngineFeature("NativePurchaseWithLocalPlayer") then
                return l_MarketplaceService_0:PromptNativePurchase(l_Players_0.LocalPlayer, v19);
            else
                return l_MarketplaceService_0:PromptNativePurchaseWithLocalPlayer(v19);
            end;
        else
            delay(3, function()
                v21:dispatch(v12(v18, v19, v9.Success));
            end);
            return ;
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local _ = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v3 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v4)
    return function(v5)
        v5:dispatch(v3({
            name = v1.PhoneVerification,
            extraProps = {
                onSuccessCallback = v4.onSuccessCallback,
                closeCallback = v4.closeCallback,
                origin = "contactImport"
            }
        }, nil));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v2 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDown);
local v3 = require(l_script_FirstAncestor_0.LuaApp.AppPage);
local v4 = require(l_CorePackages_0.Packages.Dash);
local v5 = require(l_script_FirstAncestor_0.LuaApp.Thunks.ResetNavigationHistory);
local v6 = require(l_script_FirstAncestor_0.LuaApp.Util.startNewPeekViewHistory);
local l_FFlagProfilePlatformDevFlag_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagProfilePlatformDevFlag;
return function(v8, v9)
    return function(v10)
        if not l_FFlagProfilePlatformDevFlag_0 then
            if not v9 or not v9.resetPeekView then
                v10:dispatch(v2({
                    name = v3.ProfilePeekView,
                    detail = v8,
                    extraProps = v9
                }));
                return ;
            else
                local v11 = v6(v10, {
                    name = v3.ProfilePeekView,
                    detail = v8,
                    extraProps = v4.join(v9, {
                        resetPeekView = v4.None
                    })
                });
                v10:dispatch(v5(v11.newRoute, v11.newHistory));
                return ;
            end;
        else
            v10:dispatch(v2({
                name = v3.ProfilePlatform,
                detail = v8,
                extraProps = v9
            }));
            return ;
        end;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.LuaApp.AppPage);
local v3 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local l_getAppFeaturePolicies_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).getAppFeaturePolicies;
local v5 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForLeaveRobloxAlert);
local v6 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local v7 = require(l_Modules_0.LuaApp.Util.getPaymentPlatform);
local v8 = require(l_Modules_0.LuaApp.Enum.PaymentPlatform);
return function(v9)
    return function(v10)
        local v11 = v7();
        if l_getAppFeaturePolicies_0().getShowVNGAge12Badge() and v11 == v8.Web then
            v10:dispatch(v5(function()
                v10:dispatch(v3({
                    name = v2.GenericWebPage,
                    detail = "https://shop.vnggames.com/global",
                    extraProps = {
                        onClose = v9
                    }
                }));
                v10:dispatch(v6());
            end));
            return ;
        else
            v10:dispatch(v3({
                name = v2.PurchaseRobux
            }));
            return ;
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v3)
    return function(v4)
        v4:dispatch(v2({
            name = v1.ReportDialog,
            reportData = v3
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
return function(v3)
    return function(v4)
        v4:dispatch(v2({
            name = v1.ReportScreen,
            reportData = v3
        }));
    end;
end;


local _ = game:GetService("CorePackages");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Modules");
local v2 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateDown);
local v3 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateFromWebView);
local v4 = require(l_script_FirstAncestor_0.LuaApp.Thunks.NavigateBack);
local v5 = require(l_script_FirstAncestor_0.LuaApp.AppPage);
return function()
    return function(v6)
        local function v7()
            v6:dispatch(v4());
        end;
        v6:dispatch(v2({
            name = v5.VerifiedBadgeModal,
            extraProps = {
                onConfirm = function()
                    v6:dispatch(v3({
                        name = v5.GenericWebPage,
                        detail = "https://en.help.roblox.com/hc/en-us/articles/7997207259156",
                        extraProps = {
                            onClose = v7
                        }
                    }));
                end,
                onClose = v7
            }
        }));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.LuaApp.ArgCheck);
local v3 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
if not require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppUseWithLocalization)() then
    return function(v4, v5)
        assert(type(v4) == "string", string.format("OpenWebview thunk expects url to be a string, was %s", (type(v4))));
        assert(type(v5) == "string", string.format("OpenWebview thunk expects title to be a string, was %s", (type(string))));
        return function(v6)
            v6:dispatch(v3({
                name = v1.GenericWebPage,
                detail = v4,
                extraProps = {
                    title = v5
                }
            }));
        end;
    end;
else
    return function(v7, v8)
        v2.isType(v7, "string", "url");
        v2.isType(v8, "string", "titleKey");
        return function(v9)
            v9:dispatch(v3({
                name = v1.GenericWebPage,
                detail = v7,
                extraProps = {
                    titleKey = v8
                }
            }));
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_HttpService_0 = game:GetService("HttpService");
local v2 = require(l_Modules_0.LuaApp.Enum.NotificationType);
local v3 = require(l_Modules_0.LuaApp.Analytics.Events.openYouTubeVideo);
local _ = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local _ = require(l_Modules_0.LuaApp.AppPage);
local v6 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v7 = require(l_Modules_0.Personalization.Flags.GetFFlagLuaAppYoutubeNoCookie);
local _ = table.concat({
    "autoplay=1",
    "controls=0",
    "modestbranding=1",
    "rel=0",
    "loop=0",
    "cc_load_policy=0",
    "playsinline=0"
}, "&");
local v9 = {
    autoplay = 1,
    controls = 0,
    modestbranding = 1,
    rel = 0,
    loop = 0,
    cc_load_policy = 0,
    playsinline = 0
};
return function(v10, v11, v12, v13, v14, v15, v16)
    return function(_)
        local v18 = v6.new({
            base = not v7() and "https://www.youtube.com" or "https://www.youtube-nocookie.com",
            path = "/embed/{id}",
            query = v9
        })({
            id = v11
        });
        v3(v14, v13, v12, v11, v15, v16);
        v10:BroadcastNotification(l_HttpService_0:JSONEncode({
            url = v18,
            title = v12,
            animated = true
        }), v2.OPEN_YOUTUBE_VIDEO);
    end;
end;


local _ = game:GetService("HttpService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_Modules_0.LuaApp.Promise);
local _ = require(l_CorePackages_0.Workspace.Packages.Http).StatusCodes;
local v5 = require(l_Modules_0.LuaApp.Http.Requests.DevSubsPatchDevSub);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
return {
    Patch = function(v7, v8, v9)
        return l_PerformFetch_0.Single("luaapp.devsubs.cancelsubscription", function(_)
            return v5(v7, v8, v9);
        end);
    end,
    GetPatchingStatus = function(v11)
        return l_PerformFetch_0.GetStatus(v11, "luaapp.devsubs.cancelsubscription");
    end
};


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.LuaApp.Http.Requests.PostRegisterAppPresence);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local function _()
    return "luaapp.presenceapi.register-app-presence";
end;
return function(v5, v6)
    assert(type(v6) == "string", string.format("PostRegisterAppPresence thunk expects locationId to be a string, was %s", (type(v6))));
    return l_PerformFetch_0.Single("luaapp.presenceapi.register-app-presence", function(_)
        return v2(v5, v6);
    end);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v4 = require(l_Modules_0.LuaApp.Http.Requests.UserHeartbeats.PostUserHeartbeatsActionReport);
return function(v5, v6)
    return l_PerformFetch_0.Single("luaapp.userheartbeats.actionreport", function(_)
        return v4(v5, v6);
    end);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v4 = require(l_Modules_0.LuaApp.Http.Requests.UserHeartbeats.PostUserHeartbeatsPulse);
return function(v5, v6, v7)
    return l_PerformFetch_0.Single("luaapp.userheartbeats.pulse", function(_)
        return v4(v5, v6, v7);
    end);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Thunks.Games.ApiFetchSortTokens);
local v2 = require(l_Modules_0.LuaApp.Thunks.Games.ApiFetchGamesData);
local v3 = require(l_Modules_0.LuaApp.Promise);
return function(v4, v5, v6, v7, v8)
    assert(type(v5) == "table");
    assert(#v5 >= 1);
    return function(v9)
        local v10 = {};
        for _, v12 in ipairs(v5) do
            table.insert(v10, v9:dispatch(v1(v4, v12, nil, v8)));
        end;
        return v3.all(v10):andThen(function()
            local v13 = {};
            for _, v15 in ipairs(v5) do
                table.insert(v13, v9:dispatch(v2(v4, v15, v6, v7, nil)));
            end;
            return v3.all(v13);
        end);
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.Thunks.SetNavigationLocked);
local v4 = require(l_CorePackages_0.Cryo);
local v5 = require(l_CorePackages_0.RoactNavigation);
local v6 = require(l_Modules_0.LuaApp.Thunks.RNAdapterThunk);
local v7 = require(l_Modules_0.LuaApp.FlagSettings);
local v8 = require(l_Modules_0.LuaApp.Constants);
local _ = require(l_Modules_0.LuaApp.Reducers.Navigation);
local v10 = require(l_Modules_0.LuaApp.AppPage);
local l_FFlagUnifyNavigationGraph_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagUnifyNavigationGraph;
local function v12()
    return {
        {
            name = v7.GetDefaultAppPage(),
            rnKey = v7.GetDefaultAppPage()
        }
    };
end;
local _, v14 = require(l_Modules_0.LuaApp.GetIABottomBarItems)();
local v15 = {};
for _, v17 in ipairs((require(l_Modules_0.LuaApp.BottomBarItems))) do
    v15[v17.page] = true;
end;
local function v22(v18, v19)
    if v18 == v10.Landing then
        return true;
    elseif not (v19 ~= nil) or v19.routes == nil then
        return false;
    else
        for _, v21 in v19.routes, nil, nil do
            if v21.routeName == v18 then
                return true;
            elseif (v21.routes and #v21.routes > 0) and v21.routes[1].routeName == v18 then
                return true;
            end;
        end;
        return false;
    end;
end;
return function(v23, v24)
    return v6.new("ResetNavigationHistory", function(v25, v26)
        local l_v23_0 = v23;
        if v24 ~= nil then
            l_v23_0 = v24[#v24];
        end;
        if not (l_v23_0 ~= nil) or #l_v23_0 == 0 then
            l_v23_0 = v12();
        end;
        assert(l_v23_0, "not nil");
        if not (not (l_GuiService_0:IsTenFootInterface() and #l_v23_0 == 1) or l_FFlagUnifyNavigationGraph_0) then
            local v28 = l_v23_0[1];
            if v22(v28.name, v25:getState().Navigation.roactNavigationState) then
                v25:dispatch(v3(true));
                v26(v5.Actions.navigate({
                    routeName = v28.name,
                    key = v28.rnKey,
                    params = v4.Dictionary.join(v28, {
                        name = v4.None,
                        rnKey = v4.None
                    })
                }));
                return ;
            end;
        end;
        local v29 = {};
        for _, v31 in ipairs(l_v23_0) do
            local v32 = v5.Actions.navigate({
                routeName = v31.name,
                params = v4.Dictionary.join(v31, {
                    name = v4.None,
                    rnKey = v4.None
                }),
                key = v31.rnKey
            });
            if not if not l_FFlagUnifyNavigationGraph_0 then v15[v31.name] == true else v14[v31.name] ~= nil then
                table.insert(v29, v32);
            else
                table.insert(v29, v5.Actions.navigate({
                    routeName = v8.TempRnSwitchNavigatorName,
                    action = v32,
                    key = v8.TempRnSwitchNavigatorName
                }));
            end;
        end;
        v25:dispatch(v3(true));
        v26(v5.StackActions.reset({
            index = #v29,
            actions = v29
        }));
    end);
end;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Enum.NotificationType);
return function(v1)
    return function(v2)
        local v3 = v2:getState();
        local v4 = v3.Navigation.history[#v3.Navigation.history];
        v1:BroadcastNotification(v4[#v4].name, v0.APP_READY);
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.LuaApp.Promise);
local v3 = require(l_Modules_0.LuaApp.Http.Requests.FollowingsPostFollow);
local v4 = require(l_Modules_0.LuaApp.Http.Requests.FollowingsDeleteFollow);
local _ = require(l_Modules_0.LuaApp.Actions.SetGameFollow);
local v6 = require(l_Modules_0.LuaApp.Thunks.SetNetworkingErrorToast);
local l_PerformFetch_0 = require(l_CorePackages_0.Workspace.Packages.Http).PerformFetch;
local v8 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v9 = require(l_Modules_0.LuaApp.Enum.ToastType);
local v10 = require(l_Modules_0.LuaApp.Actions.SetGameFollow);
local _ = require(l_Modules_0.LuaApp.Hooks.useLocalization);
local l_Localization_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppLocales).Localization;
local l_LocalizationService_0 = game:GetService("LocalizationService");
local v14 = require(l_Modules_0.LuaApp.Actions.Games.SetExperienceNotificationsEnabledCount);
local v15 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppFixNotificationsEnabledLimitReached);
local function _(v16, v17)
    local l_RobloxLocaleId_0 = l_LocalizationService_0.RobloxLocaleId;
    local v19 = l_Localization_0.new(l_RobloxLocaleId_0);
    v19:SetLocale(l_RobloxLocaleId_0);
    return v19:Format(v16, v17);
end;
local function v21(v22, v23, v24, v25, v26, v27)
    if type(v23) ~= "string" then
        error("SendGameFollow thunk expects universeId to be a string");
    end;
    if type(v24) ~= "boolean" then
        error("SendGameFollow thunk expects isFollowed to be a boolean");
    end;
    return l_PerformFetch_0.Single("SendGameFollow" .. v23, function(v28)
        local l_LocalUserId_0 = v28:getState().LocalUserId;
        if v25 then
            if not v15() then
                local v30 = v28:getState().GameFollowings[v23];
                if not (not not v30 and (v30.canFollow or false) or not v24) then
                    v28:dispatch(v8({
                        toastType = v9.GameFollowError,
                        toastMessage = "Feature.GameFollows.TooltipNotificationsLimitReached"
                    }));
                    return v2.resolve();
                end;
            else
                local v31 = v27 or 0;
                local v32 = v26 or 0;
                if not v24 then
                    v28:dispatch(v14(v32 - 1));
                elseif v31 <= v32 then
                    v28:dispatch(v8({
                        toastType = v9.GameFollowError,
                        toastMessage = "Feature.GameFollows.TooltipNotificationsLimitReached"
                    }));
                    return v2.resolve();
                else
                    v28:dispatch(v14(v32 + 1));
                end;
            end;
            v28:dispatch(v10(v23, v24));
        end;
        if not v24 then
            return v4(v22, l_LocalUserId_0, v23):andThen(function(v33)
                if v28:getState().GameFollowings[v23].isFollowed then
                    return v21(v22, v23, true, v25, v26, v27);
                else
                    if v25 then
                        local v34 = v28:getState().Games and v28:getState().Games[v23];
                        local v35 = not not v34 and v34.name or "";
                        local l_v28_0 = v28;
                        local l_v8_0 = v8;
                        local v38 = {
                            toastType = v9.NotificationsTurnedOff
                        };
                        local v39 = {
                            experienceName = v35
                        };
                        local l_RobloxLocaleId_1 = l_LocalizationService_0.RobloxLocaleId;
                        local v41 = l_Localization_0.new(l_RobloxLocaleId_1);
                        v41:SetLocale(l_RobloxLocaleId_1);
                        v38.toastMessage = v41:Format("Feature.GameFollows.TooltipTurnedOffNotifications", v39);
                        v38.isLocalized = true;
                        l_v28_0:dispatch(l_v8_0(v38));
                    end;
                    return v2.resolve(v33);
                end;
            end, function(v42)
                v28:dispatch(v10(v23, true));
                if v15() then
                    v28:dispatch(v14(v26 or 0));
                end;
                v28:dispatch(v6(v42));
                return v2.reject(v42);
            end);
        else
            return v3(v22, l_LocalUserId_0, v23):andThen(function(v43)
                if not v28:getState().GameFollowings[v23].isFollowed then
                    return v21(v22, v23, false, v25, v26, v27);
                else
                    if v25 then
                        local v44 = v28:getState().Games and v28:getState().Games[v23];
                        local v45 = not not v44 and v44.name or "";
                        local l_v28_1 = v28;
                        local l_v8_1 = v8;
                        local v48 = {
                            toastType = v9.NotificationsTurnedOn
                        };
                        local v49 = {
                            experienceName = v45
                        };
                        local l_RobloxLocaleId_2 = l_LocalizationService_0.RobloxLocaleId;
                        local v51 = l_Localization_0.new(l_RobloxLocaleId_2);
                        v51:SetLocale(l_RobloxLocaleId_2);
                        v48.toastMessage = v51:Format("Feature.GameFollows.TooltipTurnedOnNotifications", v49);
                        v48.isLocalized = true;
                        l_v28_1:dispatch(l_v8_1(v48));
                    end;
                    return v2.resolve(v43);
                end;
            end, function(v52)
                v28:dispatch(v10(v23, false));
                if v15() then
                    v28:dispatch(v14(v26 or 0));
                end;
                if v52.StatusCode == 400 then
                    v28:dispatch(v8({
                        toastType = v9.GameFollowError,
                        toastMessage = not v25 and "Feature.GameFollows.TooltipFollowLimitReached" or "Feature.GameFollows.TooltipNotificationsLimitReached"
                    }));
                else
                    v28:dispatch(v6(v52));
                end;
                return v2.reject(v52);
            end);
        end;
    end);
end;
return v21;


local l_receiveUsersPresence_0 = require(game:GetService("CorePackages").Workspace.Packages.UserLib).Utils.receiveUsersPresence;
return function(v1)
    return function(v2)
        l_receiveUsersPresence_0(v1, v2);
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local v3 = require(l_Modules_0.LuaApp.Flags.GetFFlagEnableContactMethodPromptModal);
return function(_, v5)
    return function(v6)
        if v3() then
            v6:dispatch(v2(v1.ContactMethodPromptModalOverlay, v5, {
                DisableBackButtonClose = true
            }));
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v2 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
return function(v3)
    return function(v4)
        v4:dispatch(v2(v1.EmailVerificationUpsellOverlay, v3));
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v3 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local l_CloseCentralOverlay_0 = require(l_CorePackages_0.Workspace.Packages.CentralOverlay).Thunks.CloseCentralOverlay;
local l_NavigateDown_0 = require(l_CorePackages_0.Workspace.Packages.NavigationRodux).Thunks.NavigateDown;
local l_AppPage_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).AppPage;
local v7 = require(l_Modules_0.LuaApp.Enum.TransitionAnimation);
local l_GetFFlagAbstractPhoneUpsellFromCentralOverlay_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagAbstractPhoneUpsellFromCentralOverlay;
local l_GetFFlagAbstractShowWebpagePhoneUpsell_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagAbstractShowWebpagePhoneUpsell;
return function(v10, v11)
    return function(v12)
        if l_GetFFlagAbstractPhoneUpsellFromCentralOverlay_0() then
            v10.closeUpsell = function()
                return v12:dispatch(l_CloseCentralOverlay_0());
            end;
        end;
        if l_GetFFlagAbstractShowWebpagePhoneUpsell_0() then
            v10.showWebpage = function(v13)
                return v12:dispatch(l_NavigateDown_0({
                    name = l_AppPage_0.GenericWebPage,
                    detail = v13,
                    extraProps = {
                        title = "",
                        transitionAnimation = v7.SlideInFromBottom
                    }
                }));
            end;
        end;
        if not v11 then
            v12:dispatch(v3(v2.PhoneVerificationUpsellOverlayWrapper, v10));
            return ;
        else
            v12:dispatch(v3(v2.VoicePhoneVerificationUpsellOverlayWrapper, v10));
            return ;
        end;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v3 = require(l_Modules_0.LuaApp.Thunks.FetchIXPUserInit);
local l_RetrievalStatus_0 = require(l_CorePackages_0.Workspace.Packages.Http).Enum.RetrievalStatus;
local v5 = require(l_Modules_0.LuaApp.Promise);
local l_Logger_0 = require(l_CorePackages_0.Workspace.Packages.Loggers).Logger;
local v7 = game:DefineFastString("LuaAppIXPLayerToLog", "AvatarMarketplace.RecommendationsAndSearch.Mobile");
local v8 = game:DefineFastFlag("LuaAppLogWaitUntilIXPUserInit", false);
return function(v9, v10, v11)
    local function v16(v12)
        if not v8 or v9 == nil then
            return ;
        else
            local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
            l_Logger_0:info("[WaitUntilIXPUserInit] " .. v12 .. " -- LocalPlayer: {}", l_LocalPlayer_0 == nil and "nil" or ((not (l_LocalPlayer_0.UserId ~= 0) or l_LocalPlayer_0.UserId == nil) and "no User ID" or "valid"));
            local l_v9_UserLayerLoadingStatus_0 = v9:GetUserLayerLoadingStatus();
            local l_v9_UserStatusForLayer_0 = v9:GetUserStatusForLayer(v7);
            l_Logger_0:info("[WaitUntilIXPUserInit] UserLayerLoadingStatus: {}", l_v9_UserLayerLoadingStatus_0);
            if l_v9_UserStatusForLayer_0 ~= l_v9_UserLayerLoadingStatus_0 then
                l_Logger_0:info("[WaitUntilIXPUserInit] Status for layer {}: {}", v7, l_v9_UserStatusForLayer_0);
            end;
            return ;
        end;
    end;
    return function(v17)
        local v18 = v3.GetFetchingStatus(v17:getState(), v10, v9);
        if not (v18 ~= l_RetrievalStatus_0.Done) or v18 == l_RetrievalStatus_0.Failed then
            v16("resolve -- fetchStatus: " .. tostring(v18));
            return v5.resolve();
        else
            return v5.new(function(v19, _)
                v17:dispatch(v3.Fetch(v9, v10, v11)):andThen(function()
                    v16("resolve");
                    v19();
                end, function()
                    v16("reject");
                    v19();
                end);
            end);
        end;
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v4 = require(l_Modules_0.LuaApp.Thunks.OpenGameDetails);
local l_SetTabBarVisibleFromChat_0 = require(l_CorePackages_0.Workspace.Packages.AppTabBarRodux).Thunks.SetTabBarVisibleFromChat;
return function(v6, v7)
    return function(v8)
        v8:dispatch(v4(v6, {
            onClose = function()
                if v8:getState().FormFactor == l_FormFactor_0.WIDE then
                    v8:dispatch(l_SetTabBarVisibleFromChat_0(true));
                end;
            end,
            referralSource = v7
        }));
    end;
end;


local v0 = require(game:GetService("CorePackages").Packages.t);
return {
    PurchaseDetail = v0.strictInterface({
        expectedCurrency = v0.optional(v0.integer),
        expectedPrice = v0.optional(v0.integer),
        expectedSellerId = v0.optional(v0.integer),
        expectedPromoId = v0.optional(v0.integer),
        userAssetId = v0.optional(v0.integer),
        saleLocationType = v0.optional(v0.union(v0.literal("Website"), v0.literal("Game")))
    })
};


local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Managers.PageObjectManager);
return {};


return {
    IsPointInRect = function(v0, v1)
        local l_Min_0 = v0.Min;
        local l_Max_0 = v0.Max;
        local v4 = false;
        if l_Min_0.X <= v1.X then
            v4 = false;
            if l_Min_0.Y <= v1.Y then
                v4 = false;
                if v1.X <= l_Max_0.X then
                    v4 = v1.Y <= l_Max_0.Y;
                end;
            end;
        end;
        return v4;
    end
};


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(game:GetService("CorePackages").Packages.LuauPolyfill);
local v2 = require(l_CoreGui_0.RobloxGui.Modules.LuaApp.Enum.Challenge.ErrorKind);
local v3 = {};
v3.__index = v3;
v3.new = function(_, v5, v6)
    local v7 = {};
    setmetatable(v7, v3);
    v7.kind = v5;
    v7.data = v6;
    return v7;
end;
v3.match = function(v8)
    return v1.instanceof(v8, v3);
end;
v3.matchAbandoned = function(v9)
    return v3.match(v9) and v9.kind == v2.Abandoned;
end;
return v3;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local l_TimeUnit_0 = require(l_CorePackages_0.Workspace.Packages.Time).TimeUnit;
local l_DateTime_0 = require(l_CorePackages_0.Workspace.Packages.Time).DateTime;
local v6 = {
    ReasonDateInvalid = {
        IsFutureDate = "IsFutureDate",
        IsInvalidDayOfMonth = "IsInvalidDayOfMonth"
    },
    MonthsLocalizationKeys = {
        "CommonUI.Controls.Label.January",
        "CommonUI.Controls.Label.February",
        "CommonUI.Controls.Label.March",
        "CommonUI.Controls.Label.April",
        "CommonUI.Controls.Label.May",
        "CommonUI.Controls.Label.June",
        "CommonUI.Controls.Label.July",
        "CommonUI.Controls.Label.August",
        "CommonUI.Controls.Label.September",
        "CommonUI.Controls.Label.October",
        "CommonUI.Controls.Label.November",
        "CommonUI.Controls.Label.December"
    },
    DateTypeOrder = setmetatable({
        ["en-us"] = {
            [l_TimeUnit_0.Months] = 1,
            [l_TimeUnit_0.Days] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["es-es"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["fr-fr"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["de-de"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["pt-br"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["zh-cn"] = {
            [l_TimeUnit_0.Years] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Days] = 3
        },
        ["zh-cjv"] = {
            [l_TimeUnit_0.Years] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Days] = 3
        },
        ["zh-tw"] = {
            [l_TimeUnit_0.Years] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Days] = 3
        },
        ["ko-kr"] = {
            [l_TimeUnit_0.Years] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Days] = 3
        },
        ["ja-jp"] = {
            [l_TimeUnit_0.Years] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Days] = 3
        },
        ["it-it"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["ru-ru"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["id-id"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["vi-vn"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["th-th"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        },
        ["tr-tr"] = {
            [l_TimeUnit_0.Days] = 1,
            [l_TimeUnit_0.Months] = 2,
            [l_TimeUnit_0.Years] = 3
        }
    }, {
        __index = function(v4, _)
            return v4["en-us"];
        end
    })
};
local v7 = {
    Prefix = "Prefix",
    Suffix = "Suffix",
    None = "None"
};
v6.DayAffixLocalizationKey = "CommonUI.Controls.Label.Day";
v6.DayAffixType = setmetatable({
    ["zh-cn"] = v7.Suffix,
    ["zh-tw"] = v7.Suffix,
    ["ko-kr"] = v7.Suffix,
    ["ja-jp"] = v7.Suffix
}, {
    __index = function(_, _)
        return v7.None;
    end
});
v6.YearAffixLocalizationKey = "CommonUI.Controls.Label.Year";
v6.YearAffixType = setmetatable({
    ["zh-cn"] = v7.Suffix,
    ["zh-tw"] = v7.Suffix,
    ["ko-kr"] = v7.Suffix,
    ["ja-jp"] = v7.Suffix,
    ["th-th"] = v7.Prefix
}, {
    __index = function(_, _)
        return v7.None;
    end
});
v6.GetFormattedDayString = function(v12, v13, v14, v15)
    return v12:GetFormattedString(l_TimeUnit_0.Days, v13, v14, v15);
end;
v6.GetFormattedYearString = function(v16, v17, v18, v19)
    return v16:GetFormattedString(l_TimeUnit_0.Years, v17, v18, v19);
end;
v6.GetFormattedString = function(v20, v21, v22, v23, v24)
    v1.isNotNil(v21, "timeUnit passed into DateHelper:GetFormattedString");
    v1.isNotNil(v23, "affix passed into DateHelper:GetFormattedString");
    v22 = v1.isType(tostring(v22), "string", "dateValue passed into DateHelper:GetFormattedString");
    local v25 = nil;
    if v21 == l_TimeUnit_0.Days then
        v25 = v20.DayAffixType[v24];
    elseif v21 == l_TimeUnit_0.Years then
        v25 = v20.YearAffixType[v24];
    end;
    if v25 == v7.Prefix then
        return v23 .. v22;
    elseif v25 == v7.Suffix then
        return v22 .. v23;
    else
        return v22;
    end;
end;
v6.GetFormattedFullString = function(v26, v27, v28, v29, v30, v31, v32, v33)
    v27 = v1.isType(v27, "string", "localizedMonthString passed into DateHelper:GetFormattedFullString");
    v32 = v1.isType(v32, "string", "divider passed into DateHelper:GetFormattedFullString");
    v33 = v1.isType(v33, "string", "localeKey passed into DateHelper:GetFormattedFullString");
    local v34 = v26.DateTypeOrder[v33];
    local l_v26_FormattedDayString_0 = v26:GetFormattedDayString(v28, v29, v33);
    local l_v26_FormattedYearString_0 = v26:GetFormattedYearString(v30, v31, v33);
    local v37 = "";
    local v38 = {
        [v34[l_TimeUnit_0.Months]] = v27,
        [v34[l_TimeUnit_0.Days]] = l_v26_FormattedDayString_0,
        [v34[l_TimeUnit_0.Years]] = l_v26_FormattedYearString_0
    };
    for v39, v40 in ipairs(v38) do
        v37 = v37 .. v40;
        if v39 < #v38 then
            v37 = v37 .. v32;
        end;
    end;
    return v37;
end;
local function v42()
    local l_Values_0 = l_DateTime_0.now():GetValues();
    return {
        [l_TimeUnit_0.Months] = v1.isNonNegativeNumber(l_Values_0.Month, "current month in BirthdayPicker"),
        [l_TimeUnit_0.Days] = v1.isNonNegativeNumber(l_Values_0.Day, "current day in BirthdayPicker"),
        [l_TimeUnit_0.Years] = v1.isNonNegativeNumber(l_Values_0.Year, "current year in BirthdayPicker")
    };
end;
local function v45(v43)
    local l_Values_1 = l_DateTime_0.fromUnixTimestamp(l_DateTime_0.now():GetUnixTimestamp() + v43):GetValues();
    return {
        [l_TimeUnit_0.Months] = v1.isNonNegativeNumber(l_Values_1.Month, "current month in BirthdayPicker"),
        [l_TimeUnit_0.Days] = v1.isNonNegativeNumber(l_Values_1.Day, "current day in BirthdayPicker"),
        [l_TimeUnit_0.Years] = v1.isNonNegativeNumber(l_Values_1.Year, "current year in BirthdayPicker")
    };
end;
v6.isLeapYear = function(_, v47)
    local v48 = false;
    if v47 % 4 == 0 then
        v48 = true;
        if v47 % 100 == 0 then
            v48 = v47 % 400 == 0;
        end;
    end;
    return v48;
end;
local v49 = {};
v6._isFutureDate = function(_, v51, v52, v53, v54)
    if v51[l_TimeUnit_0.Years] < v54 then
        return true;
    elseif v54 == v51[l_TimeUnit_0.Years] and v51[l_TimeUnit_0.Months] < v52 then
        return true;
    elseif (v54 == v51[l_TimeUnit_0.Years] and v52 == v51[l_TimeUnit_0.Months]) and v51[l_TimeUnit_0.Days] < v53 then
        return true;
    else
        return false;
    end;
end;
v6.isFutureDate = function(v55, v56, v57, v58)
    return v55:_isFutureDate(v42(), v56, v57, v58);
end;
v6.isRecentOrFutureDate = function(v59, v60, v61, v62)
    return v59:_isFutureDate(v45(-172800), v60, v61, v62);
end;
v6.getLastDayOfTheMonthInYear = function(v63, v64, v65)
    if not v49[v64] or not v49[v64][v65] then
        local v66 = nil;
        v66 = if v64 == 2 then not v63:isLeapYear(v65) and 28 or 29 else (not (not (v64 % 2 == 0) or v64 >= 7) or v64 % 2 == 1 and v64 > 7) and 30 or 31;
        if not v49[v64] then
            v49[v64] = {};
        end;
        v49[v64][v65] = v66;
        return v66;
    else
        return v49[v64][v65];
    end;
end;
v6.isInvalidDayOfTheMonth = function(v67, v68, v69, v70)
    return v67:getLastDayOfTheMonthInYear(v68, v70) < v69;
end;
v6.isValidDate = function(v71, v72, v73, v74)
    if not v71:isRecentOrFutureDate(v72, v73, v74) then
        if not v71:isInvalidDayOfTheMonth(v72, v73, v74) then
            return true, nil;
        else
            return false, v71.ReasonDateInvalid.IsInvalidDayOfMonth;
        end;
    else
        return false, v71.ReasonDateInvalid.IsFutureDate;
    end;
end;
return v6;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_AppStorageService_0 = game:GetService("AppStorageService");
local l_IXPService_0 = game:GetService("IXPService");
local l_HttpService_0 = game:GetService("HttpService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v6 = require(l_Modules_0.LuaApp.Flags.GetFFlagIXPExperimentCache);
local v7 = require(l_Modules_0.LuaApp.Flags.GetFFlagExperimentCacheLogExposure);
local v8 = require(l_Modules_0.LuaApp.Flags.GetFFlagDisableCustomExposureLog);
local v9 = require(l_Modules_0.LuaApp.Flags.GetFFlagEnableExperimentCacheManagerInitFix);
local v10 = require(l_Modules_0.Personalization.Flags.FFlagLuaAppChartsExpCustomExposureLog);
local v11 = require(l_Modules_0.LuaApp.Enum.LocalStorageKey);
local l_EventIngestService_0 = game:GetService("EventIngestService");
local l_EventIngest_0 = require(l_CorePackages_0.Workspace.Packages.Analytics).AnalyticsReporters.EventIngest;
local v14 = require(script.Parent.GetExperimentCacheLayers);
local v15 = require(l_Modules_0.Common.memoize);
local v16 = require(l_Modules_0.LuaApp.mutedError);
local v17 = {};
v17.__index = v17;
v17.new = function(v18, v19, v20)
    local v21 = {
        _ixpService = v18 or l_IXPService_0,
        _eventIngest = v19 or l_EventIngest_0.new(l_EventIngestService_0),
        _cache = {},
        _loadingStatusChanged = nil,
        _layersToCache = v20 or v14(),
        _exposureLoggingTable = {}
    };
    setmetatable(v21, v17);
    return v21;
end;
v17._getCachedVariables = function(_)
    local l_status_0, l_result_0 = pcall(function()
        return l_AppStorageService_0:GetItem(v11.ExperimentCache);
    end);
    if l_status_0 then
        local l_status_1, l_result_1 = pcall(function()
            return l_HttpService_0:JSONDecode(l_result_0);
        end);
        if l_status_1 then
            return l_result_1;
        end;
    end;
    return {};
end;
v17._flushToCache = function(_, v28)
    assert(type(v28) == "table", "expected table type for cache to persist");
    local l_status_2, l_result_2 = pcall(function()
        return l_HttpService_0:JSONEncode(v28);
    end);
    if l_status_2 then
        local l_status_3, l_result_3 = pcall(function()
            l_AppStorageService_0:SetItem(v11.ExperimentCache, l_result_2);
            l_AppStorageService_0:Flush();
        end);
        if not l_status_3 then
            warn(l_result_3);
        end;
    end;
end;
v17._onIXPInitialized = function(v33)
    local l_UserLayerLoadingStatus_0 = v33._ixpService:GetUserLayerLoadingStatus();
    if not (not (l_UserLayerLoadingStatus_0 ~= Enum.IXPLoadingStatus.Pending) or not v33._loadingStatusChanged) then
        v33._loadingStatusChanged:disconnect();
        v33._loadingStatusChanged = nil;
    end;
    if l_UserLayerLoadingStatus_0 == Enum.IXPLoadingStatus.Initialized then
        local v35 = {};
        for _, v37 in ipairs(v33._layersToCache) do
            local v38 = nil;
            do
                local l_v38_0 = v38;
                pcall(function()
                    l_v38_0 = v33._ixpService:GetUserLayerVariables(v37);
                end);
                v35[v37] = l_v38_0;
            end;
        end;
        v33:_flushToCache(v35);
    end;
end;
v17._logCustomExposure = function(v40, v41)
    assert(type(v41) == "string", "expected layerName to be a string");
    v40._eventIngest:setRBXEventStream("experimentCacheManager", "exposureLog", {
        layerName = v41
    });
end;
v17._containsLayer = function(v42, v43)
    return v15(function(v44)
        for _, v46 in ipairs(v42._layersToCache) do
            if v46 == v44 then
                return true;
            end;
        end;
        return false;
    end)(v43);
end;
v17.initialize = function(v47)
    if v6() then
        v47._cache = v47:_getCachedVariables();
        if v47._ixpService:GetUserLayerLoadingStatus() == Enum.IXPLoadingStatus.Initialized then
            v47:_onIXPInitialized();
            return ;
        else
            v47._loadingStatusChanged = v47._ixpService.OnUserLayerLoadingStatusChanged:Connect(function(v48)
                if not v9() then
                    v47:_onIXPInitialized();
                elseif v48 == Enum.IXPLoadingStatus.Initialized then
                    v47:_onIXPInitialized();
                    return ;
                end;
            end);
            return ;
        end;
    else
        return ;
    end;
end;
v17.getLayerVariables = function(v49, v50, v51)
    assert(type(v50) == "string", "expected layerName to be a string");
    if not v49:_containsLayer(v50) then
        v16("Layer " .. v50 .. " has not been configured to be cached, please add layer to `GetExperimentCacheLayers`");
    end;
    if not (v8() or v10 and v51) then
        if not v7() then
            v49:_logCustomExposure(v50);
        elseif v49._exposureLoggingTable[v50] == nil then
            v49:_logCustomExposure(v50);
            v49._exposureLoggingTable[v50] = true;
        end;
    end;
    return v49._cache[v50] or nil;
end;
v17.clearCache = function(v52)
    v52._cache = {};
    if v7() then
        v52._exposureLoggingTable = {};
    end;
    pcall(function()
        l_AppStorageService_0:SetItem(v11.ExperimentCache, "");
        l_AppStorageService_0:Flush();
    end);
end;
if v10 then
    v17.sendCustomExposureLog = function(v53, v54)
        if v53._exposureLoggingTable[v54] == nil then
            v53:_logCustomExposure(v54);
            v53._exposureLoggingTable[v54] = true;
        end;
    end;
end;
v17.default = v17.new();
return v17;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Experiment.getAllAppUserLayers);
local v2 = require(l_CorePackages_0.Packages.Dash);
return function()
    return v2.values((v1()));
end;


return function(v0)
    local v1 = v0:gsub("%D", "");
    if #v1 == 10 then
        return "1", v1;
    elseif #v1 == 11 and string.sub(v1, 1, 1) == "1" then
        return "1", (string.sub(v1, 2));
    else
        return "", v1;
    end;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_CorePackages_0.Workspace.Packages.WebViewProtocol);
local _ = require(l_CorePackages_0.Workspace.Packages.RobloxAppLocales);
local v4 = require(l_Modules_0.LuaApp.AppPageProperties);
local v5 = require(l_Modules_0.LuaApp.WebViewProperties);
local v6 = require(l_Modules_0.LuaApp.Enum.WebViewWindow);
local _ = require(l_Modules_0.LuaApp.Enum.TransitionAnimation);
local _ = require(l_Modules_0.LuaApp.Navigation.NavigationTypes);
local function _(v9)
    return not not v9.detail and v9.name .. ":" .. v9.detail or v9.name;
end;
local function _(v11, v12)
    local l_url_0 = v12.url;
    local l_detail_0 = v11.detail;
    if type(l_url_0) == "function" then
        if type(l_detail_0) == "table" then
            return l_url_0(unpack(l_detail_0));
        else
            return l_url_0(l_detail_0);
        end;
    else
        return l_url_0 or l_detail_0;
    end;
end;
local function _(v16, v17, v18)
    local v19 = v16.titleKey or v17.titleKey;
    local l_title_0 = v16.title;
    if not v19 or l_title_0 then
        return l_title_0;
    else
        return v18:Format(v19);
    end;
end;
local function v29(v22, v23)
    local v24 = v5[v22.name] or {};
    local v25 = v22.extraProps or {};
    local v26 = {};
    local l_url_1 = v24.url;
    local l_detail_1 = v22.detail;
    v26.url = if type(l_url_1) == "function" then if type(l_detail_1) == "table" then l_url_1(unpack(l_detail_1)) else l_url_1(l_detail_1) else l_url_1 or l_detail_1;
    l_url_1 = v25.titleKey or v24.titleKey;
    l_detail_1 = v25.title;
    v26.title = if not l_url_1 then l_detail_1 else l_detail_1 or v23:Format(l_url_1);
    v26.webViewVisible = v25.webViewVisible;
    v26.searchParams = v25.searchParams or v24.searchParams;
    v26.transitionAnimation = v25.transitionAnimation or v24.transitionAnimation;
    v26.windowType = v24.windowType or v6.Default;
    return v26;
end;
local function _(v30, v31)
    local l_name_0 = v30.name;
    if v31 then
        local v33 = v31[l_name_0];
        if v33 then
            return v33.webView or false;
        end;
    end;
    return (v4[l_name_0] or {}).webView or false;
end;
local function _(v35)
    local l_onClose_0 = (v35.extraProps or {}).onClose;
    if l_onClose_0 then
        l_onClose_0();
    end;
end;
return function(v38, v39, v40, v41, v42)
    if (not not v38.detail and v38.name .. ":" .. v38.detail or v38.name) == (not not v39.detail and v39.name .. ":" .. v39.detail or v39.name) then
        return ;
    else
        local l_name_1 = v38.name;
        local v44;
        if v42 then
            local v45 = v42[l_name_1];
            if v45 then
                v44 = v45.webView or false;
                goto label0 --[[  true, true  ]];
            end;
        end;
        v44 = (v4[l_name_1] or {}).webView or false;
        ::label0::;
        if v44 then
            v41:closeWindow();
            l_name_1 = (v38.extraProps or {}).onClose;
            if l_name_1 then
                l_name_1();
            end;
        end;
        l_name_1 = v39.name;
        if v42 then
            local v46 = v42[l_name_1];
            if v46 then
                v44 = v46.webView or false;
                goto label1 --[[  true, true  ]];
            end;
        end;
        v44 = (v4[l_name_1] or {}).webView or false;
        ::label1::;
        if v44 then
            v41:openWindow((v29(v39, v40)));
        end;
        return ;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.LuaApp.Enum.UsernameIssue);
return {
    isLengthTooShortOrTooLong = function(v4)
        v2.isType(v4, "string", "displayName passed into isLengthTooShortOrTooLong");
        local v5 = string.len(v4);
        local v6 = true;
        if v5 >= 3 then
            v6 = v5 > 20;
        end;
        return v6;
    end,
    hasBoundingUnderscore = function(v7)
        v2.isType(v7, "string", "displayName passed into hasBoundingUnderscore");
        local v8 = true;
        if string.sub(v7, 1, 1) ~= "_" then
            v8 = string.sub(v7, -1) == "_";
        end;
        return v8;
    end,
    hasMultipleUnderscores = function(v9)
        v2.isType(v9, "string", "displayName passed into hasMultipleUnderscores");
        local _, v11 = string.gsub(v9, "_", "");
        return v11 > 1;
    end,
    containsInvalidCharacter = function(v12)
        v2.isType(v12, "string", "displayName passed into containsInvalidCharacter");
        return utf8.len(v12) == nil;
    end,
    locallyValidateDisplayName = function(v13, v14)
        v2.isType(v14, "string", "username passed into locallyValidateDisplayName");
        return {
            [v3.LengthTooShortOrTooLong] = v13.isLengthTooShortOrTooLong(v14),
            [v3.BoundingUnderscore] = v13.hasBoundingUnderscore(v14),
            [v3.MultipleUnderscores] = v13.hasMultipleUnderscores(v14),
            [v3.ContainsInvalidCharacter] = v13.containsInvalidCharacter(v14)
        };
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_Modules_0.LuaApp.Enum.UsernameIssue);
return {
    isLengthTooShortOrTooLong = function(v4)
        v2.isType(v4, "string", "username passed into isLengthTooShortOrTooLong");
        local v5 = string.len(v4);
        local v6 = true;
        if v5 >= 3 then
            v6 = v5 > 20;
        end;
        return v6;
    end,
    hasBoundingUnderscore = function(v7)
        v2.isType(v7, "string", "username passed into hasBoundingUnderscore");
        local v8 = true;
        if string.sub(v7, 1, 1) ~= "_" then
            v8 = string.sub(v7, -1) == "_";
        end;
        return v8;
    end,
    hasMultipleUnderscores = function(v9)
        v2.isType(v9, "string", "username passed into hasMultipleUnderscores");
        local _, v11 = string.gsub(v9, "_", "");
        return v11 > 1;
    end,
    containsInvalidCharacter = function(v12)
        v2.isType(v12, "string", "username passed into containsInvalidCharacter");
        return string.match(v12, "[^_%w]") ~= nil;
    end,
    locallyValidateUsername = function(v13, v14)
        v2.isType(v14, "string", "username passed into locallyValidateUsername");
        return {
            [v3.LengthTooShortOrTooLong] = v13.isLengthTooShortOrTooLong(v14),
            [v3.BoundingUnderscore] = v13.hasBoundingUnderscore(v14),
            [v3.MultipleUnderscores] = v13.hasMultipleUnderscores(v14),
            [v3.ContainsInvalidCharacter] = v13.containsInvalidCharacter(v14)
        };
    end
};


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Constants);
local v2 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v3 = require(l_Modules_0.AvatarExperience.Common.Models.ModelsUtils);
local _ = require(l_Modules_0.Personalization.DataStoreTypes);
local v8 = {
    storeForContentType = function(v5, v6)
        if v6 == v1.OmniRecommendationsContentType.Game then
            return v5.Games;
        elseif v6 == v1.OmniRecommendationsContentType.GameCoPlay then
            return v5.GameCoPlay;
        elseif v6 == v1.OmniRecommendationsContentType.CatalogAsset then
            return v5.CatalogAssets;
        elseif v6 == v1.OmniRecommendationsContentType.CatalogBundle then
            return v5.CatalogBundles;
        else
            return nil;
        end;
    end,
    createRestrictionInfo = function(v7)
        return v3.CreateRestrictionInfo(v7);
    end
};
local v9 = {
    [v1.OmniRecommendationsContentType.CatalogAsset] = v2.ItemType.Asset,
    [v1.OmniRecommendationsContentType.CatalogBundle] = v2.ItemType.Bundle
};
v8.contentTypeToCatalogType = function(v10)
    return v9[v10];
end;
v8.getSortDataForTopicId = function(v11, v12)
    for v13 = 1, #v12 do
        if v12[v13].topicId == v11 then
            return v12[v13];
        end;
    end;
    return nil;
end;
return v8;


local l_TextService_0 = game:GetService("TextService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local l_GetUIBloxEnableFontNameMapping_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).UIBlox.GetUIBloxEnableFontNameMapping;
local v4 = game:DefineFastFlag("BuilderSansNavbarLabelsFix2", false);
local v5 = game:DefineFastFlag("BuilderSansNavbarFlagSize", false);
local v6 = game:DefineFastInt("BuilderSansNavBarMinSize", 10.08);
local v7 = game:DefineFastInt("BuilderSansNavBarMaxSize", 13.86);
local v8 = if (not not v4 and v5) and l_GetUIBloxEnableFontNameMapping_0() then v6 else 10.08;
local v9 = if not not v4 and l_GetUIBloxEnableFontNameMapping_0() then if (not not v4 and v5) and l_GetUIBloxEnableFontNameMapping_0() then v7 else 12.6 else 10;
local v10 = if not not v4 and l_GetUIBloxEnableFontNameMapping_0() then v8 else 8;
local v11 = {};
v11.__index = v11;
v11.new = function()
    local v12, v13 = v2.createBinding(v9);
    return (setmetatable({
        _textSize = v12,
        _setTextSize = v13
    }, v11));
end;
v11.getBinding = function(v14)
    return v14._textSize;
end;
v11.getMinTextSize = function(v15, v16, v17, v18)
    local v19 = v15._textSize:getValue();
    local v20 = Vector2.new(2147483647, v18.Y);
    local v21 = Vector2.new(2147483647, v18.Y);
    while v10 < v19 and v18.X < v21.X do
        v21 = l_TextService_0:GetTextSize(v16, v19, v17, v20);
        if v18.X < v21.X then
            v19 = v19 - 1;
        end;
    end;
    if v19 < v15._textSize:getValue() then
        v15._setTextSize(v19);
    end;
    return v19;
end;
v11.default = v11.new();
return v11;


local v0 = require(game:GetService("CorePackages").Logging);
local v1 = {
    TermsOfService = true,
    PrivacyPolicy = true,
    RiderTerms = true,
    ChildrenPrivacyPolicy = true,
    LuobuThirdPartyDataUse = true
};
setmetatable(v1, {
    __index = function(_, v3)
        v0.warn(string.format("Unknown User Agreement Type: %s", (tostring(v3))));
        return false;
    end
});
return {
    CheckAgreementTypeExists = function(v4)
        return v1[v4];
    end
};


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_inspect_0 = require(l_Modules_0.LuaApp.Util.inspect).inspect;
local v2 = require(l_Modules_0.LuaApp.Util.tableDiff);
local function v8(v3, v4, v5, v6)
    if type(v6.thrownValue) ~= "string" then
        return nil;
    else
        local v7 = v6.thrownValue:find("\n");
        if v7 then
            return {
                message = v6.message .. "\n" .. v6.thrownValue:sub(1, v7 - 1),
                stacks = v6.thrownValue:sub(v7 + 1):split("\n\n"),
                annotations = {
                    rodux_actions = v5,
                    rodux_diff = v2(v3, v4) or {}
                }
            };
        else
            return nil;
        end;
    end;
end;
return function(v9)
    return {
        reportReducerError = function(_, v11, v12)
            v9(string.format("%s\n\nAction:\n%s\n\nError contents:\n%s", v12.message, l_inspect_0(v11), (tostring(v12.thrownValue))), (v8({}, {}, {
                v11
            }, v12)));
        end,
        reportUpdateError = function(v13, v14, v15, v16)
            v9(string.format("%s\n\n" .. "Store changes in the last flush:\n%s\n\n" .. "Most recent actions (starting with the oldest):\n%s\n\n" .. "Error contents:\n%s", v16.message, l_inspect_0(v2(v13, v14)), l_inspect_0(v15), (tostring(v16.thrownValue))), (v8(v13, v14, v15, v16)));
        end
    };
end;


local l_HttpService_0 = game:GetService("HttpService");
return function()
    return string.find(l_HttpService_0:GetUserAgent(), "AmazonAppStore") ~= nil;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
return function()
    return l_IsVRAppBuild_0() or l_GuiService_0:IsTenFootInterface();
end;


local l_HttpService_0 = game:GetService("HttpService");
return function()
    return string.find(l_HttpService_0:GetUserAgent(), "OculusQuest3Store") ~= nil;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_UserInputService_0 = game:GetService("UserInputService");
local v2 = require(l_Modules_0.LuaApp.Util.getHasAmazonUserAgent);
local v3 = require(l_Modules_0.LuaApp.Util.getHasQuestUserAgent);
local v4 = require(l_Modules_0.LuaApp.Util.getPaymentFromPlatform);
return function()
    return v4(l_UserInputService_0:GetPlatform(), v2(), (v3()));
end;


local l_HttpService_0 = game:GetService("HttpService");
local v1 = require(script.Parent.isArray);
local v2 = require(script.Parent.objectKeys);
local v3 = nil;
local v4 = nil;
local v5 = nil;
local v6 = nil;
local v7 = nil;
local function _(v8, v9)
    for v10 = 1, #v8 do
        if v8[v10] == v9 then
            return v10;
        end;
    end;
    return nil;
end;
local function v13(v12)
    return v3(v12, {});
end;
v3 = function(v14, v15)
    local v16 = typeof(v14);
    if v16 == "string" then
        return l_HttpService_0:JSONEncode(v14);
    elseif v16 == "number" then
        if v14 ~= v14 then
            return "NaN";
        elseif v14 == math.huge then
            return "Infinity";
        elseif v14 == -math.huge then
            return "-Infinity";
        else
            return (tostring(v14));
        end;
    elseif v16 == "function" then
        return "[function]";
    elseif v16 == "table" then
        return v4(v14, v15);
    else
        return (tostring(v14));
    end;
end;
v4 = function(v17, v18)
    local v19;
    for v20 = 1, #v18 do
        if v18[v20] == v17 then
            v19 = v20;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v19 = nil;
    ::label0::;
    if v19 ~= nil then
        return "[Circular]";
    else
        v19 = {
            unpack(v18)
        };
        table.insert(v19, v17);
        if typeof(v17.toJSON) == "function" then
            local v21 = v17:toJSON(v17);
            if v21 ~= v17 then
                if typeof(v21) == "string" then
                    return v21;
                else
                    return v3(v21, v19);
                end;
            end;
        elseif v1(v17) then
            return v5(v17, v19);
        end;
        return v6(v17, v19);
    end;
end;
v6 = function(v22, v23)
    local v24 = v2(v22);
    if #v24 == 0 then
        return "{}";
    elseif #v23 > 3 then
        return "[" .. v7(v22) .. "]";
    else
        local v25 = {};
        for v26 = 1, #v24 do
            local v27 = v24[v26];
            v25[v26] = v27 .. ": " .. v3(v22[v27], v23);
        end;
        return "{ " .. table.concat(v25, ", ") .. " }";
    end;
end;
v5 = function(v28, v29)
    local v30 = #v28;
    if v30 == 0 then
        return "[]";
    elseif #v29 > 3 then
        return "[Array]";
    else
        local v31 = math.min(3, v30);
        local v32 = v30 - v31;
        local v33 = {};
        for v34 = 1, v31 do
            v33[v34] = v3(v28[v34], v29);
        end;
        if v32 == 1 then
            table.insert(v33, "... 1 more item");
        elseif v32 > 1 then
            table.insert(v33, ("... %s more items"):format(v32));
        end;
        return "[" .. table.concat(v33, ", ") .. "]";
    end;
end;
v7 = function(_)
    return "Object";
end;
return {
    inspect = v13
};


return function(v0)
    if typeof(v0) ~= "table" then
        return false;
    elseif next(v0) == nil then
        return true;
    elseif #v0 == 0 then
        return false;
    else
        local v1 = 0;
        local v2 = 0;
        for v3 in pairs(v0) do
            if typeof(v3) ~= "number" then
                return false;
            elseif not (v3 % 1 == 0) or v3 < 1 then
                return false;
            else
                v1 = v1 + 1;
                v2 = v2 + v3;
            end;
        end;
        return v2 == (v1 * (v1 + 1)) / 2;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.ExperienceService).GameProtocol.default;
local l_GameParams_0 = require(l_CorePackages_0.Workspace.Packages.ExperienceService).GameParams;
local l_ExperienceService_0 = require(l_CorePackages_0.Workspace.Packages.ExperienceService).ExperienceService;
local l_UseExperienceService_0 = require(l_CorePackages_0.Workspace.Packages.ExperienceService).Flags.UseExperienceService;
local v5 = {};
local function _(v6, v7, v8)
    if not l_UseExperienceService_0() then
        l_default_0:launchGame(v6, v7, v8);
        return ;
    else
        l_ExperienceService_0:LaunchExperience(v6, v7, v8);
        return ;
    end;
end;
v5.ByUser = function(_, v11, v12, v13)
    local v14 = nil;
    v14 = l_GameParams_0.fromUserId(v11.id);
    assert(v14.userId ~= nil, "Joining a game by user should always be done by user id");
    local l_v14_0 = v14;
    if not l_UseExperienceService_0() then
        l_default_0:launchGame(l_v14_0, v12, v13);
        return ;
    else
        l_ExperienceService_0:LaunchExperience(l_v14_0, v12, v13);
        return ;
    end;
end;
v5.ByUserAndPlaceId = function(_, v17, v18, v19, v20)
    local v21 = nil;
    v21 = l_GameParams_0.fromUserId(v17.id, v18);
    assert(v21.userId ~= nil, "Joining a game by user and placeId should always contain a user id param");
    assert(v21.placeId ~= nil, "Joining a game by user and placeId should always contain a place id param");
    local l_v21_0 = v21;
    if not l_UseExperienceService_0() then
        l_default_0:launchGame(l_v21_0, v19, v20);
        return ;
    else
        l_ExperienceService_0:LaunchExperience(l_v21_0, v19, v20);
        return ;
    end;
end;
v5.ByGame = function(_, v24, v25, v26)
    local v27 = l_GameParams_0.fromPlaceId(v24);
    if not l_UseExperienceService_0() then
        l_default_0:launchGame(v27, v25, v26);
        return ;
    else
        l_ExperienceService_0:LaunchExperience(v27, v25, v26);
        return ;
    end;
end;
return v5;


local v0 = require(game:GetService("CorePackages").Cryo);
return function(v1, v2)
    return v0.Dictionary.join(v1, v2);
end;


return function(v0)
    if v0 == nil then
        error("cannot extract keys from a nil value");
    end;
    local v1 = typeof(v0);
    local v2 = {};
    if v1 == "table" then
        for v3 in pairs(v0) do
            table.insert(v2, v3);
        end;
        return v2;
    else
        if v1 == "string" then
            for v4 = 1, v0:len() do
                v2[v4] = tostring(v4);
            end;
        end;
        return v2;
    end;
end;


local function v0(v1)
    if v1 then
        if v1.Joint then
            local v2 = v1.Joint.Part0 == v1.Part;
            if not v1.Joint:IsA("Motor6D") then
                if not v2 then
                    v1.Part.CFrame = (v1.Joint.Part0.CFrame * v1.Joint.C0) * v1.Joint.C1:inverse();
                else
                    v1.Part.CFrame = (v1.Joint.Part1.CFrame * v1.Joint.C1) * v1.Joint.C0:inverse();
                end;
            elseif not v2 then
                v1.Part.CFrame = ((v1.Joint.Part0.CFrame * v1.Joint.C0) * v1.Joint.Transform) * v1.Joint.C1:inverse();
            else
                v1.Part.CFrame = ((v1.Joint.Part1.CFrame * v1.Joint.C1) * v1.Joint.Transform) * v1.Joint.C0:inverse();
            end;
        end;
        if v1.Children then
            for _, v4 in pairs(v1.Children) do
                v0(v4);
            end;
        end;
        return ;
    else
        return ;
    end;
end;
local function v25(v5)
    local function v6(v7, v8)
        if not (not v7:IsA("Motor6D") and not v7:IsA("Weld")) then
            table.insert(v8, v7);
        end;
        for _, v10 in pairs(v7:GetChildren()) do
            v6(v10, v8);
        end;
    end;
    local v11 = {};
    v6(v5, v11);
    local v12 = {};
    local function v13(v14)
        v12[v14.Part] = v14;
        local v19, v20 = (function()
            local v15 = {};
            local v16 = {};
            for _, v18 in pairs(v11) do
                if (v18.Part0 == v14.Part and v18.Part1 ~= nil) and v12[v18.Part1] == nil then
                    table.insert(v15, v18.Part1);
                    table.insert(v16, v18);
                elseif (v18.Part1 == v14.Part and v18.Part0 ~= nil) and v12[v18.Part0] == nil then
                    table.insert(v15, v18.Part0);
                    table.insert(v16, v18);
                end;
            end;
            return v15, v16;
        end)();
        for v21, v22 in ipairs(v19) do
            local v23 = {
                Part = v22,
                Name = v22.Name,
                Joint = v20[v21]
            };
            v14.Children = v14.Children or {};
            v14.Children[#v14.Children + 1] = v23;
            v13(v23);
        end;
    end;
    local v24 = {
        Part = v5.HumanoidRootPart,
        Name = v5.HumanoidRootPart.Name
    };
    v13(v24);
    return v24;
end;
return function(v26)
    v0((v25(v26)));
end;