local l_CorePackages_0 = game:GetService("CorePackages");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppLinking_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLinking;
local v8 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v9 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v10 = require(l_CorePackages_0.RoactNavigation);
local l_withNavigation_0 = v10.withNavigation;
local l_LocaleProvider_0 = require(l_CorePackages_0.IAPExperience).Locale.LocaleProvider;
local _ = require(script.Parent.RobuxPackage);
local v14 = require(script.Parent.BuyRobuxOverlay);
local v15 = require(script.Parent.mapStateToProps);
local v16 = require(script.Parent.mapDispatchToProps);
local _ = require(l_Modules_0.LuaApp.Enum.PaymentPlatform);
local _ = require(l_Modules_0.LuaApp.Util.getPaymentPlatform);
local v19 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local v20 = require(script.Parent.Enum.BuyRobuxCounter);
local v21 = v3.PureComponent:extend(script.Name);
local _ = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local l_default_0 = require(l_CorePackages_0.Workspace.Packages.PaymentsProtocol).PaymentsProtocol.default;
local l_GetFFlagUseEnablePremiumUserFeaturesAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagUseEnablePremiumUserFeaturesAppPolicy;
local v25 = require(l_Modules_0.LuaApp.Flags.GetFFlagFixRobuxBalanceUpdateOnBuyRobuxPage);
v21.init = function(v26)
    local _ = v26.props;
    v26.endPurchase = function()
        v26.props.dispatchClearNativePurchaseResult();
    end;
    v26.sendAnalyticEvent = function(v28, v29, v30)
        v26.props.analytics.EventStream:setRBXEventStream(v28, v29, v30);
    end;
    v26.sendCounter = function(v31)
        v26.props.analytics.Diag:reportCounter(v31, 1);
    end;
    v26.dispatchFetchIAPPurchaseWarning = function(v32, v33)
        return v26.props.dispatchFetchIAPPurchaseWarning(v26.props.networking, v32, v33, v26.props.isPremium);
    end;
    v26.dispatchPostAckPurchaseWarning = function(v34)
        return v26.props.dispatchPostAckPurchaseWarning(v26.props.networking, v34);
    end;
    v26.onWillBlur = function()
        l_default_0:isAvailable():andThen(function(v35)
            if v35 then
                l_default_0:sendIAPEvent("BrowseProductEnd");
            end;
        end);
    end;
end;
v21.didMount = function(v36)
    local l_props_1 = v36.props;
    if not (v36.props.iapProductsFetchingStatus ~= v19.NotStarted) or v36.props.iapProductsFetchingStatus == v19.Failed then
        v36.props.dispatchFetchIAPProducts(v36.props.networking);
    end;
    if not (v36.props.nativeProductsFetchingStatus ~= v19.NotStarted) or v36.props.nativeProductsFetchingStatus == v19.Failed then
        v36.props.dispatchFetchNativeIAPProducts();
    end;
    l_default_0:isAvailable():andThen(function(v38)
        if v38 then
            l_default_0:sendIAPEvent("BrowseProductStart");
        end;
    end);
    if v25() then
        l_props_1.dispatchFetchUserBalance(v36.props.networking, (tostring(v36.props.userId)));
    end;
end;
v21.didUpdate = function(v39, v40)
    local l_props_2 = v39.props;
    if l_props_2.iapProductsFetchingStatus ~= v40.iapProductsFetchingStatus and l_props_2.iapProductsFetchingStatus == v19.Failed then
        v39.sendCounter(v20.toRawValue(v20.InvalidProducts));
    end;
    local v42 = false;
    if l_props_2.iapProductsFetchingStatus == v19.Done then
        v42 = l_props_2.nativeProductsFetchingStatus == v19.Done;
    end;
    if v42 and #l_props_2.robuxPackages == 0 then
        l_default_0:isAvailable():andThen(function(v43)
            if v43 then
                l_default_0:sendIAPEvent("ProductNotAvailable");
            end;
        end);
        v39.props.dispatchNavigateBack();
    end;
end;
v21.render = function(v44)
    local _ = v44.props;
    return v3.createElement(l_LocaleProvider_0, {
        locale = l_LocalizationService_0.RobloxLocaleId
    }, {
        navigationEvents = v3.createElement(v10.NavigationEvents, {
            onWillBlur = v44.onWillBlur
        }),
        BuyRobuxOverlay = v3.createElement(v14, {
            screenSize = v44.props.screenSize,
            networking = v44.props.networking,
            robuxBalance = v44.props.robuxBalance,
            robuxPackages = v44.props.robuxPackages,
            iapPurchase = v44.props.iapPurchase,
            iapProductsFetchingStatus = v44.props.iapProductsFetchingStatus,
            nativeProductsFetchingStatus = v44.props.nativeProductsFetchingStatus,
            dispatchFetchIAPPurchaseWarning = v44.dispatchFetchIAPPurchaseWarning,
            dispatchPostAckPurchaseWarning = v44.dispatchPostAckPurchaseWarning,
            dispatchCentralOverlay = v44.props.dispatchCentralOverlay,
            endPurchase = v44.endPurchase,
            promptRobux = v44.props.promptRobux,
            sendAnalyticEvent = v44.sendAnalyticEvent,
            sendCounter = v44.sendCounter,
            eventPrefix = "",
            onPageClose = v44.props.dispatchNavigateBack
        })
    });
end;
v21 = v4.connect(v15, v16)(v21);
if l_GetFFlagUseEnablePremiumUserFeaturesAppPolicy_0() then
    v21 = l_RoactAppPolicy_0.connect(function(v46, _)
        return {
            enablePremiumUserFeatures = v46.getEnablePremiumUserFeatures()
        };
    end)(v21);
end;
return (l_withNavigation_0((l_RoactServices_0.connect({
    networking = v8,
    analytics = v9,
    linking = l_AppLinking_0
})(v21))));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Enum.AccountSecurity.addRawValueMethodToEnum);
local v2 = require(l_CorePackages_0.enumerate);
local v3 = {
    ShowU13PaymentModal = "ShowU13PaymentModal",
    ShowU13MonthlyThreshold1Modal = "ShowU13MonthlyThreshold1Modal",
    ShowU13MonthlyThreshold2Modal = "ShowU13MonthlyThreshold2Modal",
    ShowParentalConsentWarningPaymentModal13To17 = "ShowParentalConsentWarningPaymentModal13To17",
    ConfirmU13PaymentModal = "ConfirmU13PaymentModal",
    ConfirmU13MonthlyThreshold1Modal = "ConfirmU13MonthlyThreshold1Modal",
    ConfirmU13MonthlyThreshold2Modal = "ConfirmU13MonthlyThreshold2Modal",
    ConfirmParentalConsentWarningPaymentModal13To17 = "ConfirmParentalConsentWarningPaymentModal13To17",
    InvalidProducts = "FailedInvalidProducts",
    PurchaseFailed = "PurchaseFailed",
    PurchaseCanceled = "PurchaseCanceled"
};
local v4 = v2(script.Name, v3);
v1(v4, v3);
return v4;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = require(l_Modules_0.LuaApp.Models.PremiumFeaturesApi.IAPProduct);
local _ = require(l_CorePackages_0.Workspace.Packages.PaymentsProtocol).PaymentsProtocol.default;
local v4 = {};
calculateMoreAmount = function(v5)
    if not (v5 ~= nil) or #v5 == 0 then
        return {};
    else
        local v6 = nil;
        for _, v8 in v5, nil, nil do
            if not (v6 ~= nil) or v8.robuxAmount < v6.robuxAmount then
                v6 = v8;
            end;
        end;
        for _, v10 in v5, nil, nil do
            local v11 = v10.robuxAmount - v6.robuxAmount * (v10.price / v6.price);
            if v11 > 0 then
                v10.robuxMoreAmount = math.floor((v11 + 50) / 100) * 100;
            end;
        end;
        return v5;
    end;
end;
v4.formatIapProducts = function(v12)
    local v13 = {};
    for _, v15 in v12, nil, nil do
        table.insert(v13, {
            productId = v15.productId,
            price = v15.price,
            packageId = v15.mobileProductId,
            robuxAmount = v15.robuxAmount,
            currencyAmountStr = v15.currencySymbol .. tostring(v15.price)
        });
    end;
    return calculateMoreAmount(v13);
end;
v4.formatNativeRobuxProducts = function(v16)
    local v17 = {};
    for _, v19 in v16, nil, nil do
        table.insert(v17, {
            productId = v19.productId,
            price = v19.price,
            packageId = v19.nativeProductId,
            robuxAmount = v19.robuxAmount,
            currencyAmountStr = v19.displayPrice
        });
    end;
    return calculateMoreAmount(v17);
end;
return v4;


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


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.Thunks.NavigateBack);
local v2 = require(l_Modules_0.LuaApp.Thunks.ApiFetchIAPProducts);
local v3 = require(l_Modules_0.LuaApp.Actions.ClearNativePurchaseResult);
local v4 = require(l_Modules_0.LuaApp.Thunks.ApiFetchIAPPurchaseWarning);
local v5 = require(l_Modules_0.LuaApp.Thunks.FetchNativeIAPProducts);
local v6 = require(l_Modules_0.LuaApp.Thunks.ApiPostAckPurchaseWarning);
local v7 = require(l_Modules_0.LuaApp.Thunks.OpenNativePurchase);
local v8 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local _ = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v10 = require(l_Modules_0.LuaApp.Thunks.ApiFetchEconomyCurrency);
return function(v11)
    return {
        dispatchClearNativePurchaseResult = function()
            v11(v3());
        end,
        dispatchFetchIAPProducts = function(v12)
            v11(v2.Fetch(v12));
        end,
        dispatchFetchNativeIAPProducts = function()
            v11(v5.Fetch());
        end,
        dispatchFetchIAPPurchaseWarning = function(v13, v14, v15, v16)
            return v11(v4.Fetch(v13, v14, v15, v16));
        end,
        dispatchPostAckPurchaseWarning = function(v17, v18)
            return v11(v6.Post(v17, v18));
        end,
        dispatchFetchUserBalance = function(v19, v20)
            v11(v10(v19, v20, true));
        end,
        promptRobux = function(v21, v22, v23)
            v11(v7(v21, v22, v23));
        end,
        dispatchNavigateBack = function()
            v11(v1());
        end,
        dispatchCentralOverlay = function(v24, v25)
            return v11(v8(v24, v25));
        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.Thunks.ApiFetchIAPProducts);
local _ = require(l_Modules_0.LuaApp.Thunks.FetchNativeIAPProducts);
local v4 = game:GetService("GuiService"):IsTenFootInterface();
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v6 = require(script.Parent.RobuxPackage);
local v7 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local v8 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppEnableNativeRobuxProducts);
local l_GetFFlagUseEnablePremiumUserFeaturesAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagUseEnablePremiumUserFeaturesAppPolicy;
return function(v10, v11)
    local l_LocalUserId_0 = v10.LocalUserId;
    local v13 = ((not v4 and not l_IsVRAppBuild_0()) and v10.Users[l_LocalUserId_0]) and v10.Users[l_LocalUserId_0].membership == Enum.MembershipType.Premium;
    if l_GetFFlagUseEnablePremiumUserFeaturesAppPolicy_0() then
        local v14 = false;
        if v11.enablePremiumUserFeatures ~= nil then
            v14 = (v11.enablePremiumUserFeatures and v10.Users[l_LocalUserId_0]) and v10.Users[l_LocalUserId_0].membership == Enum.MembershipType.Premium;
        end;
        v13 = v14;
    end;
    local v15 = v6.formatIapProducts(if not v13 then v10.IAPProducts.Robux else v10.IAPProducts.PremiumRobux);
    local l_Done_0 = v7.Done;
    if v8() then
        if v10.NativeRobuxProducts.Products ~= nil then
            v15 = v6.formatNativeRobuxProducts(v10.NativeRobuxProducts.Products);
        end;
        l_Done_0 = v10.NativeRobuxProducts.FetchingStatus;
    end;
    return {
        screenSize = v10.ScreenSize,
        iapPurchase = v10.NativePurchase,
        userId = l_LocalUserId_0,
        isPremium = v13,
        robuxBalance = v10.UserRobux[l_LocalUserId_0],
        robuxPackages = v15,
        iapProductsFetchingStatus = v2.GetFetchingStatus(v10),
        nativeProductsFetchingStatus = l_Done_0
    };
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local l_InteractiveAlert_0 = require(l_CorePackages_0.UIBlox).App.Dialog.Alert.InteractiveAlert;
local v6 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v7 = v2.PureComponent:extend("CameraPermissionPrompt");
v7.renderAlertLocalized = function(v8, v9)
    return v2.createElement(l_InteractiveAlert_0, {
        title = v9.titleText,
        bodyText = v9.messageText,
        buttonStackInfo = {
            buttons = {
                {
                    props = {
                        onActivated = v8.props.closePrompt,
                        text = v9.gotItButtonText
                    }
                }
            }
        },
        screenSize = v8.props.screenSize
    });
end;
v7.render = function(v10)
    return l_withLocalization_0({
        titleText = "Feature.AddFriends.Title.CameraPermission",
        messageText = "Feature.AddFriends.Description.CameraPermissionWarning",
        gotItButtonText = "Feature.Avatar.Action.GotIt"
    })(function(v11)
        return v10:renderAlertLocalized(v11);
    end);
end;
return (v3.connect(function(v12, _)
    return {
        screenSize = v12.ScreenSize
    };
end, function(v14)
    return {
        closePrompt = function()
            v14(v6());
        end
    };
end)(v7));


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.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v5 = require(l_CorePackages_0.RoactRodux);
local v6 = require(l_CorePackages_0.Packages.RoactGamepad);
local v7 = require(l_CorePackages_0.Cryo);
local v8 = require(l_Modules_0.Common.Immutable);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v10 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v11 = require(l_Modules_0.LuaApp.Themes.Colors);
local v12 = require(l_Modules_0.LuaApp.Constants);
local v13 = require(l_CorePackages_0.Packages.React);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_getSafeAreaSize_0 = require(l_CorePackages_0.Workspace.Packages.InputUi).getSafeAreaSize;
local v17 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils);
local l_FocusNavigableSurfaceRegistry_0 = v17.FocusNavigableSurfaceRegistry;
local l_useRegisterFocusNavigableSurface_0 = l_FocusNavigableSurfaceRegistry_0.useRegisterFocusNavigableSurface;
local l_useDeRegisterFocusNavigableSurface_0 = l_FocusNavigableSurfaceRegistry_0.useDeRegisterFocusNavigableSurface;
local l_FocusNavigableSurfaceIdentifierEnum_0 = v17.FocusNavigableSurfaceIdentifierEnum;
local v22 = require(l_CorePackages_0.Packages.ReactFocusNavigation);
local l_FocusNavigationEventNameEnum_0 = v17.FocusNavigationEventNameEnum;
local v24 = require(l_Modules_0.LuaApp.Components.ScreenGuiWithBlurControl);
local v25 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v26 = require(l_Modules_0.LuaApp.Components.CrossPlatformCompatibility.VRCentralOverlay);
local v27 = {
    [v10.PlacesList] = true,
    [v10.PeopleList] = true,
    [v10.ExperienceGuidelinesExplained] = true,
    [v10.PurchaseGame] = true,
    [v10.PurchaseGameRobuxShortfall] = true,
    [v10.LeaveRobloxAlert] = true,
    [v10.ReportLogsOverlay] = true,
    [v10.ConfirmSignOut] = true,
    [v10.UpdateRequiredPrompt] = true,
    [v10.AgreeToPhoneNumberVerification] = true,
    [v10.DevSubMore] = true,
    [v10.DevSubConfirmCancel] = true,
    [v10.TencentNoticePopup] = true,
    [v10.SignUpBirthdayPickerOverlay] = true,
    [v10.LoginPasswordResetPrompt] = true,
    [v10.LoginEmailVerificationPrompt] = true,
    [v10.EmailVerificationUpsellOverlay] = true,
    [v10.PhoneVerificationUpsellOverlay] = true,
    [v10.PhoneVerificationUpsellOverlayWrapper] = true,
    [v10.VoicePhoneVerificationUpsellOverlayWrapper] = true,
    [v10.ContactMethodPromptModalOverlay] = true,
    [v10.CrossDeviceCodePrompt] = true,
    [v10.CrossDeviceLoginConfirmation] = true,
    [v10.VerifiedEnableVoice] = true,
    [v10.UserAgreementsUpdatedPopup] = true,
    [v10.VNGUserAgreementsPopup] = true,
    [v10.VerifyPhoneNumber] = true,
    [v10.AccountSecurityPromptOverlay] = true,
    [v10.CameraPermissionPrompt] = true,
    [v10.AccountAuthenticationFailureOverlay] = true,
    [v10.UserAgreementsPrompt] = true,
    [v10.UserAgreementsSecondPrompt] = true,
    [v10.SimpleTextAlertPrompt] = true,
    [v10.FindFriendsModal] = true,
    [v10.ContactsList] = true,
    [v10.PurchasePass] = true,
    [v10.PurchasePassInsufficientRobux] = true,
    [v10.IapExperienceAnimator] = true,
    [v10.DiscoverabilityUpsell] = not not require(l_CorePackages_0.Workspace.Packages.DiscoverabilityModal).Flags.SelfViewProfileDiscoverabilityUpsellIXP.SetupEnabled() or nil,
    [v10.SurveyPrompt] = true,
    [v10.GamepadDisconnected] = true,
    [v10.AccountSelector] = not not require(l_Modules_0.LuaApp.Flags.GetFFlagEnableLoginAccountSelector)() or nil,
    [v10.EmailOtp] = not not require(l_Modules_0.LuaApp.Flags.GetFFlagEnableOtpEmailLogin)() or nil,
    [v10.NewAppAvailableModal] = not not require(l_Modules_0.LuaApp.Flags.GetFFlagEnableVNGNewAppAvailableModal)() or nil,
    [v10.AccountSwitchingErrorOverlay] = not not require(l_Modules_0.LuaApp.Flags.FFlagEnableLuaAccountSwitch) or nil,
    [v10.CloseOnlyInteractiveAlert] = not not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLuaAppSortTooltipEnableVR() or nil,
    [v10.SquadLeavePrompt] = not not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLuaAppEnableSquadPage() or nil,
    [v10.VngContactInfoFormWebviewPopup] = true,
    [v10.VngComplianceLoadingPopup] = not not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagUseUpdatedVNGAgreementsWorkflow() or nil,
    [v10.KISAPopUpAgreements] = not not require(l_Modules_0.LuaApp.Flags.FFlagEnableKoreaKISACompliance) or nil,
    [v10.ItemsReceivedAlert] = not not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagItemsReceivedAlert() or nil,
    [v10.VngAppUpsell] = not not require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagLuaAppHomeVngAppUpsell or nil
};
local l_OverlayComponent_0 = require(l_Modules_0.LuaApp.Components.CentralOverlayUtils).OverlayComponent;
local v29 = v3.PureComponent:extend("CentralOverlay");
v29.defaultProps = {
    hideCentralOverlay = false
};
v29.init = function(v30)
    v30.focusController = v6.createFocusController();
    v30.defaultChildRef = v3.createRef();
end;
v29.render = function(v31)
    local l_displayOrder_0 = v31.props.displayOrder;
    local l_overlayComponent_0 = v31.props.overlayComponent;
    local l_arguments_0 = v31.props.arguments;
    local l_screenSize_0 = v31.props.screenSize;
    local l_globalGuiInset_0 = v31.props.globalGuiInset;
    local l_shouldCreateBackgroundWrapper_0 = v31.props.shouldCreateBackgroundWrapper;
    local l_hideOverlay_0 = v31.props.hideOverlay;
    if not (l_screenSize_0.X > 0) or l_screenSize_0.Y <= 0 then
        return nil;
    elseif not l_hideOverlay_0 then
        local v39 = l_getSafeAreaSize_0(l_screenSize_0, l_globalGuiInset_0);
        return l_withStyle_0(function(v40)
            local l_Black_0 = v11.Black;
            local v42 = 0.3;
            if v40 then
                if v31.props.includeStatusBar then
                    v39 = UDim2.new(0, v39.X.Offset, 0, v39.Y.Offset + v12.BOTTOM_BAR_SIZE);
                end;
                l_Black_0 = v40.Theme.Overlay.Color;
                v42 = v40.Theme.Overlay.Transparency;
            end;
            l_arguments_0 = v7.Dictionary.join(l_arguments_0, {
                defaultChildRef = v31.defaultChildRef,
                focusController = v31.focusController,
                closeCentralOverlayThunk = v25
            });
            return v13.createElement(v3.Portal, {
                target = l_CoreGui_0
            }, {
                PortalUIForOverlay = l_overlayComponent_0 and v13.createElement(v24, {
                    ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                    DisplayOrder = l_displayOrder_0
                }, {
                    WrappingFrame = v13.createElement("Frame", {
                        Size = UDim2.fromScale(1, 1),
                        BackgroundTransparency = 1,
                        ref = v31.props.forwardRef,
                        Selectable = false,
                        SelectionGroup = true,
                        SelectionBehaviorDown = Enum.SelectionBehavior.Stop,
                        SelectionBehaviorUp = Enum.SelectionBehavior.Stop,
                        SelectionBehaviorLeft = Enum.SelectionBehavior.Stop,
                        SelectionBehaviorRight = Enum.SelectionBehavior.Stop
                    }, {
                        OverlayComponent = not not l_shouldCreateBackgroundWrapper_0 and v13.createElement("Frame", {
                            Position = UDim2.fromOffset(-l_globalGuiInset_0.left, -l_globalGuiInset_0.top),
                            Size = UDim2.fromOffset(l_screenSize_0.X, l_screenSize_0.Y),
                            BackgroundColor3 = l_Black_0,
                            BackgroundTransparency = v42,
                            BorderSizePixel = 0,
                            Selectable = false,
                            Active = true
                        }, {
                            SafeAreaFrame = v13.createElement("Frame", {
                                Position = UDim2.fromOffset(l_globalGuiInset_0.left, l_globalGuiInset_0.top),
                                Size = v39,
                                BackgroundTransparency = 1,
                                ClipsDescendants = true,
                                Selectable = false
                            }, {
                                Prompt = if not l_overlayComponent_0 then nil else v13.createElement(l_overlayComponent_0, v8.JoinDictionaries(l_arguments_0, {
                                    containerWidth = v39.X.Offset
                                }))
                            })
                        }) or if l_overlayComponent_0 then v13.createElement(l_overlayComponent_0, l_arguments_0) else nil
                    })
                })
            });
        end);
    else
        return nil;
    end;
end;
v29 = v5.connect(function(v43, _)
    local l_OverlayType_0 = v43.CentralOverlay.OverlayType;
    return {
        overlayComponent = l_OverlayComponent_0[l_OverlayType_0],
        hideOverlay = v43.Moderation and v43.Moderation.userModerated,
        shouldCreateBackgroundWrapper = v27[l_OverlayType_0],
        arguments = v43.CentralOverlay.Arguments,
        screenSize = v43.ScreenSize,
        globalGuiInset = v43.GlobalGuiInset
    };
end, function(v46)
    return {
        closePrompt = function()
            v46(v25());
        end
    };
end)(v29);
local v49 = l_RoactAppPolicy_0.connect(function(v47)
    return {
        use3DPanels = v47.getUse3DPanels()
    };
end)(function(v48)
    if not v48.use3DPanels then
        return v13.createElement(v29, v48);
    else
        return v13.createElement(v26, v48);
    end;
end);
local v50 = {
    [Enum.KeyCode.ButtonB] = l_FocusNavigationEventNameEnum_0.NavigateBack,
    [Enum.KeyCode.Escape] = l_FocusNavigationEventNameEnum_0.NavigateBack
};
return function(v51)
    local v53 = l_useSelector_0(function(v52)
        return l_OverlayComponent_0[v52.CentralOverlay.OverlayType] ~= nil;
    end);
    local v54, v55 = v13.useState(nil);
    local v56 = l_useRegisterFocusNavigableSurface_0();
    local v57 = l_useDeRegisterFocusNavigableSurface_0();
    v13.useEffect(function()
        if not v54 or not v53 then
            v57(l_FocusNavigableSurfaceIdentifierEnum_0.CentralOverlay, v54);
            return ;
        else
            v56(l_FocusNavigableSurfaceIdentifierEnum_0.CentralOverlay, v54);
            return ;
        end;
    end, {
        v54,
        v53,
        v56,
        v57
    });
    local v58 = l_useDispatch_0();
    return v13.createElement(v49, v7.Dictionary.join(v51, {
        forwardRef = v22.useEventHandler(l_FocusNavigationEventNameEnum_0.NavigateBack, v13.useCallback(function(v59)
            v58(v25());
            v59:cancel();
        end, {
            v58
        }), nil, (v22.useEventMap(v50, v55)))
    }));
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_Modules_0.LuaApp.Enum.OverlayType);
local v4 = require(l_CorePackages_0.Workspace.Packages.RoactUtils);
local _ = require(l_CorePackages_0.Workspace.Packages.React);
local l_createLazyComponent_0 = v4.Components.createLazyComponent;
return {
    OverlayComponent = {
        [v3.VerifyPhoneNumber] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.VerifyPhoneNumber);
        end),
        [v3.VerifiedEnableVoice] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Verification.IdentityVerification.VerifiedEnableVoiceModal);
        end),
        [v3.UserAgreementsUpdatedPopup] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.UserAgreement.UserAgreementsUpdatedPopup);
        end),
        [v3.VNGUserAgreementsPopup] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.UserAgreement.VNGUserAgreementsPopup);
        end),
        [v3.UserAgreementsSecondPrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.Luobu.Components.Authentication.UserAgreementsSecondPrompt);
        end),
        [v3.UserAgreementsPrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.Luobu.Components.Authentication.UserAgreementsPrompt);
        end),
        [v3.TencentNoticePopup] = l_createLazyComponent_0(function()
            return require(l_Modules_0.Luobu.Components.TencentNoticePopup.TencentNoticePopup);
        end),
        [v3.SimpleTextAlertPrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.Luobu.Components.Authentication.SimpleTextAlertPrompt);
        end),
        [v3.SignUpBirthdayPickerOverlay] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.SignUpBirthdayPickerOverlay);
        end),
        [v3.PurchaseGameRobuxShortfall] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.GameDetails.PurchaseGameRobuxShortfallPrompt);
        end),
        [v3.PurchaseGame] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.GameDetails.PurchaseGamePrompt);
        end),
        [v3.PlacesList] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Home.PlacesListContextualMenu);
        end),
        [v3.PeopleList] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Home.PeopleListContextualMenuFn);
        end),
        [v3.LoginPasswordResetPrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.PasswordResetPrompt);
        end),
        [v3.LoginEmailVerificationPrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.LoginEmailVerificationPrompt);
        end),
        [v3.UpdateRequiredPrompt] = if not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagMoveUpdateCheckToUniversalApp() then nil else l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.UpdateRequiredPrompt);
        end),
        [v3.LeaveRobloxAlert] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.GameDetails.LeaveRobloxAlert);
        end),
        [v3.ReportLogsOverlay] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.More.ReportLogsOverlay);
        end),
        [v3.GameDetailsPlayWithFriends] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.GameDetails.GameDetailsPlayWithFriendsContextualMenu);
        end),
        [v3.GameDetailMore] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.GameDetails.GameDetailMoreContextualMenu);
        end),
        [v3.ExperienceGuidelinesExplained] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.ExperienceGuidelines.ExperienceGuidelinesExplained);
        end),
        [v3.FindFriendsModal] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.ContactImporter.api).FindFriendsModal;
        end),
        [v3.EmailVerificationUpsellOverlay] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.VerificationUpsell.EmailVerificationUpsellOverlay);
        end),
        [v3.PhoneVerificationUpsellOverlay] = l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.PhoneUpsell).PhoneVerificationUpsellOverlay;
        end),
        [v3.PhoneVerificationUpsellOverlayWrapper] = l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.PhoneUpsell).PhoneVerificationUpsellOverlayWrapper;
        end),
        [v3.VoicePhoneVerificationUpsellOverlayWrapper] = l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.PhoneUpsell).VoicePhoneVerificationUpsellOverlayWrapper;
        end),
        [v3.DevSubMore] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.DevSubMoreMenu);
        end),
        [v3.DevSubConfirmCancel] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.DevSubConfirmCancelPrompt);
        end),
        [v3.CrossDeviceLoginConfirmation] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.CrossDeviceLogin.LoginConfirmationPrompt);
        end),
        [v3.CrossDeviceCodePrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.CrossDeviceLogin.LoginCodePrompt);
        end),
        [v3.ContactsList] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.ContactImporter.api).ContactsList;
        end),
        [v3.ContactMethodPromptModalOverlay] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.VerificationUpsell.ContactMethodPromptModalOverlay);
        end),
        [v3.ConfirmSignOut] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.ConfirmSignOut);
        end),
        [v3.CameraPermissionPrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.CameraPermissionPrompt);
        end),
        [v3.AgreeToPhoneNumberVerification] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.AgreeToPhoneNumberVerification);
        end),
        [v3.AccountAuthenticationFailureOverlay] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.AccountAuthenticationFailureOverlay);
        end),
        [v3.PurchasePass] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Passes.PurchasePassPrompt);
        end),
        [v3.PurchasePassInsufficientRobux] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Passes.PurchasePassInsufficientRobuxPrompt);
        end),
        [v3.AccountSecurityPromptOverlay] = if not require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppAccountSecurityPromptEnabled)() then nil else l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.AccountSecurity.PromptOverlay);
        end),
        [v3.DiscoverabilityUpsell] = if not require(l_CorePackages_0.Workspace.Packages.DiscoverabilityModal).Flags.SelfViewProfileDiscoverabilityUpsellIXP.SetupEnabled() then nil else l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.DiscoverabilityModal.api).DiscoverabilityOverlay;
        end),
        [v3.SurveyPrompt] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.EventReceivers.SurveyPrompt);
        end),
        [v3.PlayerContextualMenu] = l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.PlayerContextualMenu).Component;
        end),
        [v3.GamepadDisconnected] = l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.InputUi).Gamepad.GamepadDisconnectedModal;
        end),
        [v3.IapExperienceAnimator] = l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.IAPExperience).Animator;
        end),
        [v3.AccountSelector] = if not require(l_Modules_0.LuaApp.Flags.GetFFlagEnableLoginAccountSelector)() then nil else l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.AccountSelector).AccountSelectorOverlay;
        end),
        [v3.EmailOtp] = if not require(l_Modules_0.LuaApp.Flags.GetFFlagEnableOtpEmailLogin)() then nil else l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.OtpLogin).EmailOtpOverlay;
        end),
        [v3.VngContactInfoFormWebviewPopup] = l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Vng.VngContactInfoFormWebviewPopup);
        end),
        [v3.NewAppAvailableModal] = if not require(l_Modules_0.LuaApp.Flags.GetFFlagEnableVNGNewAppAvailableModal)() then nil else l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Authentication.NewAppAvailableInteractiveAlert);
        end),
        [v3.AccountSwitchingErrorOverlay] = if not require(l_Modules_0.LuaApp.Flags.FFlagEnableLuaAccountSwitch) then nil else l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.AccountSwitching).AccountSwitchingErrorOverlay;
        end),
        [v3.CloseOnlyInteractiveAlert] = if not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLuaAppSortTooltipEnableVR() then nil else l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.AppBlox).CloseOnlyInteractiveAlert;
        end),
        [v3.SquadLeavePrompt] = if not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLuaAppEnableSquadPage() then nil else l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.Squads).SquadLeavePrompt;
        end),
        [v3.VngComplianceLoadingPopup] = if not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagUseUpdatedVNGAgreementsWorkflow() then nil else l_createLazyComponent_0(function()
            return require(l_Modules_0.LuaApp.Components.Vng.VngComplianceLoadingPopup);
        end),
        [v3.KISAPopUpAgreements] = if not require(l_Modules_0.LuaApp.Flags.FFlagEnableKoreaKISACompliance) then nil else l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.AuthCompliance).KISAPopUpAgreements;
        end),
        [v3.ItemsReceivedAlert] = if not require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagItemsReceivedAlert() then nil else l_createLazyComponent_0(function()
            return require(l_CorePackages_0.Workspace.Packages.ItemsReceivedAlert).ItemsReceivedAlert;
        end),
        [v3.VngAppUpsell] = if not require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagLuaAppHomeVngAppUpsell then nil else l_createLazyComponent_0(function()
            return require(l_Modules_0.Personalization.Home.VngAppUpsell.VngAppUpsellOverlay);
        end)
    }
};


return {
    ChallengeLifecycleEventConstants = {
        ChallengeInitialized = "challengeInitialized",
        ChallengeCompleted = "challengeCompleted",
        ChallengeInvalidated = "challengeInvalidated",
        ChallengeAbandoned = "challengeAbandoned"
    }
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_HttpService_0 = game:GetService("HttpService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_useRoactService_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useRoactService;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v5 = require(l_CorePackages_0.Packages.React);
local l_useState_0 = v5.useState;
local l_useEffect_0 = v5.useEffect;
local v8 = require(l_Modules_0.Common.Roact);
local v9 = require(l_CorePackages_0.RoactNavigation);
local l_AppLogging_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLogging;
local l_LoadingSpinner_0 = require(l_CorePackages_0.UIBlox).App.Loading.LoadingSpinner;
local v12 = require(l_Modules_0.LuaApp.Analytics.RobloxTelemetryConfigs.DeviceAccessChallengeEvent);
local v13 = require(l_Modules_0.LuaApp.Components.Challenge.ChallengeEventConstants);
local v14 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppChallengeMoreTelemetryEnabled);
return function(v15)
    local v16 = l_useRoactService_0(l_AppLogging_0);
    local v17 = nil;
    local v18 = nil;
    local v19 = nil;
    local v20 = nil;
    local v21 = l_HttpService_0:JSONDecode(v15.challengeMetadata);
    if v14() then
        local v22, v23 = l_useState_0(false);
        v17 = v22;
        v18 = v23;
        v22, v23 = l_useState_0(false);
        v19 = v22;
        v20 = v23;
    end;
    l_useEffect_0(function()
        v16:logRobloxTelemetryEvent(v12, {}, {
            context = v13.ChallengeLifecycleEventConstants.ChallengeInitialized,
            challengeId = v15.challengeId,
            tokenType = v21.tokenType
        });
        local l_accountService_0 = v15.accountService;
        local v25 = nil;
        if not (not l_accountService_0 or not l_accountService_0:DeviceAccessTokenAvailable()) then
            local v26 = l_HttpService_0:JSONDecode(l_accountService_0:GetDeviceAccessToken());
            v25 = v26.errorCode;
            if not (v25 ~= nil) or v25 == "" then
                v26.accessToken.tokenType = v21.tokenType;
                if v14() then
                    v18(true);
                end;
                v15.onChallengeCompleted(l_HttpService_0:JSONEncode(v26.accessToken));
                v16:logRobloxTelemetryEvent(v12, {}, {
                    context = v13.ChallengeLifecycleEventConstants.ChallengeCompleted,
                    challengeId = v15.challengeId,
                    tokenType = v21.tokenType
                });
                return ;
            end;
        end;
        if v14() then
            v20(true);
        end;
        v15.onChallengeFailed(v25);
        v16:logRobloxTelemetryEvent(v12, {}, {
            context = v13.ChallengeLifecycleEventConstants.ChallengeInvalidated,
            challengeId = v15.challengeId,
            tokenType = v21.tokenType,
            errorCode = v25
        });
    end, {});
    local v28 = l_useSelector_0(function(v27)
        return {
            screenSize = v27.ScreenSize
        };
    end);
    return v8.createElement("Frame", {
        Size = UDim2.fromOffset(v28.screenSize.X, v28.screenSize.Y),
        BackgroundTransparency = 0.2,
        Active = true
    }, {
        Spinner = v8.createElement(l_LoadingSpinner_0, {
            anchorPoint = Vector2.new(0.5, 0.5),
            position = UDim2.fromScale(0.5, 0.5),
            size = UDim2.fromOffset(48, 48)
        }),
        NavigationEvents = if not v14() then nil else v8.createElement(v9.NavigationEvents, {
            onWillBlur = function()
                if not (v17 or v19) then
                    v16:logRobloxTelemetryEvent(v12, {}, {
                        context = v13.ChallengeLifecycleEventConstants.ChallengeAbandoned,
                        challengeId = v15.challengeId,
                        tokenType = v21.tokenType
                    });
                end;
            end
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_Modules_0.LuaApp.AppPage);
local v6 = require(l_Modules_0.LuaApp.Thunks.NavigateBack);
local v7 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local l_LoadingSpinner_0 = v4.App.Loading.LoadingSpinner;
local v9 = v2.PureComponent:extend(script.Name);
v9.init = function(v10)
    v10:setState({
        challengeDisplayed = false
    });
end;
v9.didMount = function(v11)
    v11.isMounted = true;
    v11.props.navigateToChallengeWebView({
        challengeType = v11.props.challengeType,
        challengeParameters = v11.props.challengeParameters,
        onChallengeAbandoned = v11.props.onChallengeAbandoned,
        onChallengeLoadFailed = v11.props.onChallengeLoadFailed,
        onChallengeDisplayed = function()
            v11:setState({
                challengeDisplayed = true
            });
        end,
        onChallengeUnmounted = function()
            v11.props.navigateBack();
        end,
        forceWebViewVisible = v11.props.forceWebViewVisible
    });
end;
v9.willUnmount = function(v12)
    v12.isMounted = false;
end;
v9.render = function(v13)
    return v2.createElement("Frame", {
        Size = UDim2.fromOffset(v13.props.screenSize.X, v13.props.screenSize.Y),
        BackgroundTransparency = 0.2,
        Active = true
    }, {
        Spinner = v2.createElement(l_LoadingSpinner_0, {
            anchorPoint = Vector2.new(0.5, 0.5),
            position = UDim2.fromScale(0.5, 0.5),
            size = UDim2.fromOffset(48, 48)
        })
    });
end;
return (v3.connect(function(v14, _)
    return {
        screenSize = v14.ScreenSize
    };
end, function(v16)
    return {
        navigateBack = function()
            return v16(v6(true));
        end,
        navigateToChallengeWebView = function(v17)
            return v16(v7({
                name = v5.ChallengeHybridWebView,
                extraProps = v17
            }, true));
        end
    };
end)(v9));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Workspace.Packages.React);
local v2 = require(l_CorePackages_0.Workspace.Packages.RoactUtils);
local l_dependencyArray_0 = v2.Hooks.dependencyArray;
local l_memo_0 = v1.memo;
local l_useEffect_0 = v1.useEffect;
local l_useRef_0 = v1.useRef;
local l_usePrevious_0 = v2.Hooks.usePrevious;
ExternalNavigationHandler = function(v8)
    local function _()
        local v9 = false;
        if v8.requestId ~= v8.completedRequestId then
            v9 = v8.screen;
        end;
        return v9;
    end;
    local v11 = l_useRef_0({});
    local function v15()
        local l_screen_0 = v8.screen;
        local v13 = v8.navigationByScreen[l_screen_0];
        if not v13 then
            assert(v11.current, "Queue for ExternalNavigationHandler can't be nil");
            local v14 = v11.current[l_screen_0] or {};
            table.insert(v14, v8.params);
            v11.current[l_screen_0] = v14;
        else
            v13(v8.params);
        end;
        v8.completeExternalNavigation(v8.requestId);
    end;
    l_useEffect_0(function()
        local v16 = false;
        if v8.requestId ~= v8.completedRequestId then
            v16 = v8.screen;
        end;
        if v16 then
            v15();
        end;
    end, l_dependencyArray_0(v8.requestId, v8.completedRequestId, v8.screen));
    local v17 = l_usePrevious_0(v8.navigationByScreen);
    l_useEffect_0(function()
        assert(v11.current, "Queue for ExternalNavigationHandler can't be nil");
        if v17 == nil then
            return ;
        else
            for v18, v19 in pairs(v11.current) do
                assert(v17, "");
                local v20 = v17[v18];
                local v21 = v8.navigationByScreen[v18];
                if not (not (v20 ~= v21) or not v21) then
                    for _, v23 in ipairs(v19) do
                        v21(v23);
                    end;
                    v11.current[v18] = nil;
                end;
            end;
            return ;
        end;
    end, l_dependencyArray_0(v8.navigationByScreen));
    return nil;
end;
return l_memo_0(ExternalNavigationHandler);


local l_CompleteExternalNavigationIntoChat_0 = require(game:GetService("CorePackages").Workspace.Packages.AppChat).Actions.CompleteExternalNavigationIntoChat;
return function(v1)
    return {
        completeExternalNavigation = function(v2)
            v1(l_CompleteExternalNavigationIntoChat_0(v2));
        end
    };
end;


return function(v0, _)
    return {
        screen = v0.ChatAppReducer.ExternalNavigationRequest.screen,
        params = v0.ChatAppReducer.ExternalNavigationRequest.params,
        requestId = v0.ChatAppReducer.ExternalNavigationRequest.requestId,
        completedRequestId = v0.ChatAppReducer.ExternalNavigationRequest.completedRequestId
    };
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v3 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v4 = v1.PureComponent:extend("CheckBox");
v4.init = function(v5)
    v5.state = {
        hovering = false
    };
    v5.onActivated = function()
        if not (not v5.props.Enabled or not v5.props.OnActivated) then
            v5.props.OnActivated();
        end;
    end;
    v5.onMouseEnter = function(_)
        spawn(function()
            v5:setState({
                hovering = true
            });
        end);
    end;
    v5.onMouseLeave = function(_)
        spawn(function()
            v5:setState({
                hovering = false
            });
        end);
    end;
end;
v4.render = function(v8)
    local l_Enabled_0 = v8.props.Enabled;
    local l_LayoutOrder_0 = v8.props.LayoutOrder;
    local l_Selected_0 = v8.props.Selected;
    local l_Height_0 = v8.props.Height;
    local v13 = nil;
    local _ = nil;
    if not v8.state.hovering then
        if l_Enabled_0 or v8.state.hovering then
            if l_Enabled_0 then
                v13 = "LuaApp/graphic/checkbox_unchecked";
            end;
        else
            v13 = "LuaApp/graphic/checkbox_unchecked_disabled";
        end;
    else
        v13 = "LuaApp/graphic/checkbox_unchecked_hover";
    end;
    return v1.createElement("Frame", {
        Size = UDim2.new(0, l_Height_0, 0, l_Height_0),
        BackgroundTransparency = 1,
        BorderSizePixel = 0
    }, {
        Background = v1.createElement(v2, {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            ImageTransparency = not l_Enabled_0 and 0.4 or 0,
            Image = v13,
            LayoutOrder = l_LayoutOrder_0 or 1,
            AutoButtonColor = false,
            [v1.Event.Activated] = v8.onActivated,
            [v1.Event.MouseEnter] = v8.onMouseEnter,
            [v1.Event.MouseLeave] = v8.onMouseLeave
        }, {
            Selection = v1.createElement(v3, {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 1, 0),
                Visible = l_Selected_0,
                Image = not l_Enabled_0 and "LuaApp/graphic/checkbox_checked_disabled" or "LuaApp/graphic/checkbox_checked"
            })
        })
    });
end;
return v4;


local l_GuiService_0 = game:GetService("GuiService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Packages.React);
local v5 = require(l_CorePackages_0.UIBlox);
local v6 = require(l_CorePackages_0.Cryo);
local v7 = require(l_CorePackages_0.Packages.ReactFocusNavigation);
local v8 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils);
local l_FocusNavigationEventNameEnum_0 = v8.FocusNavigationEventNameEnum;
local l_useEventMap_0 = v7.useEventMap;
local l_GetFFlagEnableAppCommonInputHooks_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagEnableAppCommonInputHooks;
local v12 = nil;
v12 = if not l_GetFFlagEnableAppCommonInputHooks_0() then v7.useLastInputMethod else v8.useLastInputMethod;
local v13 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v14 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v15 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppEnable10ftCloseSignupDropdown);
local v16 = require(l_Modules_0.LuaApp.Flags.GetFFlagLuaAppFix10ftSignUpDropdown);
local v17 = game:DefineFastFlag("LuaAppDropdownMenuFixSelectionOrder", false);
local v18 = require(l_Modules_0.LuaApp.Flags.GetFFlagDisableUADPadNavigationInVR);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local l_DropdownMenu_0 = v5.App.Menu.DropdownMenu;
return function(v21)
    local v22 = v13(v14);
    local v23, v24 = v4.useState(nil);
    local v25, v26 = v4.useState(false);
    local v27, v28 = v4.useState(false);
    local v29 = l_useEventMap_0(v4.useMemo(function()
        if not v25 then
            return {};
        else
            return {
                [Enum.KeyCode.ButtonB] = l_FocusNavigationEventNameEnum_0.NoOpEvent,
                [Enum.KeyCode.Escape] = l_FocusNavigationEventNameEnum_0.NoOpEvent
            };
        end;
    end, {
        v25
    }), v24);
    local v30 = v12();
    local v31;
    if not v18() then
        v31 = true;
        if v30 ~= "Gamepad" then
            v31 = v30 == "Keyboard";
        end;
    else
        if v30 ~= "Gamepad" then
            v31 = false;
            if not (v30 == "Keyboard") then
                goto label0;
            end;
        end;
        v31 = not l_IsVRAppBuild_0();
    end;
    ::label0::;
    local v33 = v4.useCallback(function(v32)
        if v21.analyticsContext then
            v22.EventStream:setRBXEvent(v21.analyticsContext, "DropdownMenuState", {
                menuOpen = v32
            });
        end;
    end, {
        v22,
        v21.analyticsContext
    });
    return v4.createElement("Frame", {
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        Size = UDim2.fromScale(1, 1),
        Selectable = false,
        ref = v29
    }, {
        DropdownMenu = v4.createElement(l_DropdownMenu_0, (v6.Dictionary.join(v21, {
            onMenuOpenChange = v4.useCallback(function(v34)
                v26(v34);
                v33(v34);
                if v15() then
                    v28(false);
                end;
                if not (not v23 or not v21.selectionGroupName) then
                    if not v34 then
                        if v15() then
                            l_ContextActionService_0:UnbindAction("CloseDropdownBind");
                            if v16() then
                                v28(false);
                            end;
                        end;
                        l_GuiService_0:RemoveSelectionGroup(v21.selectionGroupName);
                        if v31 then
                            l_GuiService_0:Select(v23);
                        end;
                    else
                        l_GuiService_0:AddSelectionParent(v21.selectionGroupName, v23);
                        if v15() then
                            l_ContextActionService_0:BindAction("CloseDropdownBind", function()
                                v28(true);
                            end, false, Enum.KeyCode.ButtonB, Enum.KeyCode.Escape);
                        end;
                    end;
                end;
                if v21.onMenuOpenChange then
                    v21.onMenuOpenChange(v34);
                end;
            end, {
                v23,
                v21.selectionGroupName,
                v21.onMenuOpenChange
            }),
            onChange = v4.useCallback(function(v35)
                if v21.analyticsContext then
                    v22.EventStream:setRBXEvent(v21.analyticsContext, "DropdownMenuSelect", {
                        selection = tostring(v35)
                    });
                end;
                return v21.onChange(v35);
            end, {
                v22,
                v21.analyticsContext,
                v21.onChange
            }),
            selectionGroupName = v6.None,
            analyticsContext = v6.None,
            selectionOrder = if not v17 then nil else 1,
            isForcedClosed = if not v15() then nil else v27
        })))
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local v2 = require(game:GetService("CoreGui").RobloxGui.Modules.Common.Roact);
local v3 = require(l_CorePackages_0.Packages.React);
local l_useIsFPSAtTarget_0 = require(l_CorePackages_0.Workspace.Packages.SplashScreenManager).useIsFPSAtTarget;
return v3.memo(function()
    local v5 = l_useIsFPSAtTarget_0();
    local v6 = v3.useRef(nil);
    local v7 = v3.useRef(tick());
    local v8 = v3.useRef(0);
    local v9 = v3.useRef(nil);
    v3.useEffect(function()
        if v5 then
            if v9.current then
                v9.current:Disconnect();
            end;
            return ;
        else
            v9.current = l_RunService_0.RenderStepped:Connect(function(_)
                local v11 = tick();
                v8.current = v8.current + ((v11 - v7.current) * 0.5) * 360;
                if v6.current and v6.current.Rotation ~= nil then
                    v6.current.Rotation = v8.current;
                end;
                v7.current = v11;
            end);
            return ;
        end;
    end, {
        v5
    });
    if v5 then
        return nil;
    else
        return (v2.createElement("ScreenGui", {}, {
            Spinner = v2.createElement("ImageLabel", {
                Size = UDim2.new(0.05, 0, 0.05, 0),
                Position = UDim2.new(0.475, 0, 0.425, 0),
                Image = "rbxasset://textures/ui/LoadingScreen/LoadingSpinner.png",
                BackgroundTransparency = 1,
                ref = v6
            })
        }));
    end;
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_TextService_0 = game:GetService("TextService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v5.Core.Style.withStyle;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local l_Button_0 = v5.App.Button.Button;
local l_ButtonType_0 = v5.App.Button.Enum.ButtonType;
local v10 = require(l_Modules_0.LuaApp.withLocalization);
local l_Images_0 = v5.App.ImageSet.Images;
local l_IconSize_0 = v5.App.Constant.IconSize;
local v13 = l_Images_0["icons/status/oof_xlarge"];
local v14 = l_Images_0["icons/common/refresh"];
local v15 = v3.PureComponent:extend("EmptyState");
v15.validateProps = v4.interface({
    text = v4.string,
    position = v4.optional(v4.UDim2),
    size = v4.optional(v4.UDim2),
    reloadAction = v4.optional(v4.callback)
});
v15.render = function(v16)
    return v10({
        emptyText = v16.props.text
    })(function(v17)
        return l_withStyle_0(function(v18)
            local l_emptyText_0 = v17.emptyText;
            local l_Font_0 = v18.Font.Body.Font;
            local v21 = v18.Font.BaseSize * v18.Font.Body.RelativeSize;
            local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(l_emptyText_0, v21, l_Font_0, Vector2.new(1000, 1000));
            return v3.createElement("Frame", {
                Position = v16.props.position,
                Size = v16.props.size,
                BackgroundTransparency = 1
            }, {
                Layout = v3.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Vertical,
                    Padding = UDim.new(0, 0),
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                EmptyIcon = v3.createElement(l_ImageSetLabel_0, {
                    Size = UDim2.fromOffset(l_IconSize_0.XLarge, l_IconSize_0.XLarge),
                    Image = v13,
                    BackgroundTransparency = 1,
                    ImageColor3 = v18.Theme.IconDefault.Color,
                    ImageTransparency = v18.Theme.IconDefault.Transparency,
                    ScaleType = Enum.ScaleType.Slice,
                    SliceCenter = Rect.new(8, 8, 9, 9),
                    LayoutOrder = 1
                }),
                Padding1 = v3.createElement("Frame", {
                    LayoutOrder = 2,
                    Size = UDim2.new(1, 0, 0, 12),
                    BackgroundTransparency = 1
                }),
                Text = v3.createElement("TextLabel", {
                    Size = UDim2.fromOffset(l_l_TextService_0_TextSize_0.X, l_l_TextService_0_TextSize_0.Y),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Text = l_emptyText_0,
                    Font = l_Font_0,
                    TextSize = v21,
                    TextColor3 = v18.Theme.TextMuted.Color,
                    TextTransparency = v18.Theme.TextMuted.Transparency,
                    TextWrapped = true,
                    LayoutOrder = 3
                }),
                Padding2 = v3.createElement("Frame", {
                    LayoutOrder = 4,
                    Size = UDim2.new(1, 0, 0, 24),
                    BackgroundTransparency = 1
                }),
                ReloadButton = v16.props.reloadAction and v3.createElement(l_Button_0, {
                    buttonType = l_ButtonType_0.Secondary,
                    layoutOrder = 5,
                    size = UDim2.fromOffset(312, 48),
                    icon = v14,
                    onActivated = v16.props.reloadAction
                })
            });
        end);
    end);
end;
return v15;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v4 = require(l_Modules_0.LuaApp.withLocalization);
local v5 = require(l_Modules_0.Common.Text);
local v6 = require(l_CorePackages_0.Workspace.Packages.VerifiedBadges);
local v7 = v2.PureComponent:extend("ItemTileCreatorName");
v7.defaultProps = {
    textYAlignment = Enum.TextYAlignment.Top
};
v7.render = function(v8)
    local l_name_0 = v8.props.name;
    local l_hasVerifiedBadge_0 = v8.props.hasVerifiedBadge;
    local l_textYAlignment_0 = v8.props.textYAlignment;
    return l_withStyle_0(function(v12)
        local l_Theme_0 = v12.Theme;
        local l_Font_0 = v12.Font;
        local v15 = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize;
        return v4({
            creatorByLabel = "Feature.GameDetails.Label.By"
        })(function(v16)
            local l_creatorByLabel_0 = v16.creatorByLabel;
            local v18 = v5.GetTextWidth(l_creatorByLabel_0, l_Font_0.Body.Font, v15);
            local v19 = v2.createElement("TextLabel", {
                Size = if not l_hasVerifiedBadge_0 then UDim2.new(1, -v18, 1, 0) else UDim2.new(0, 0, 1, 0),
                AutomaticSize = if not l_hasVerifiedBadge_0 then Enum.AutomaticSize.None else Enum.AutomaticSize.X,
                LayoutOrder = 2,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                TextSize = v15,
                TextColor3 = l_Theme_0.TextEmphasis.Color,
                TextTransparency = l_Theme_0.TextEmphasis.Transparency,
                Font = l_Font_0.Header2.Font,
                Text = l_name_0,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = l_textYAlignment_0
            });
            return v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                ClipsDescendants = true
            }, {
                v2.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    Padding = UDim.new(0, 6)
                }),
                {
                    Label = v2.createElement("TextLabel", {
                        Size = UDim2.new(0, 0, 1, 0),
                        LayoutOrder = 1,
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        TextSize = v15,
                        TextColor3 = l_Theme_0.TextDefault.Color,
                        TextTransparency = l_Theme_0.TextDefault.Transparency,
                        Font = l_Font_0.Header2.Font,
                        Text = l_creatorByLabel_0,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = l_textYAlignment_0,
                        AutomaticSize = Enum.AutomaticSize.X
                    }),
                    CreatorName = not l_hasVerifiedBadge_0 and v19,
                    VerifiedCreatorName = l_hasVerifiedBadge_0 and v2.createElement(v6.EmojiWrapper, {
                        emoji = v6.emoji.verified,
                        font = l_Font_0.Body.Font,
                        size = UDim2.new(1, -v18, 1, 0),
                        automaticSize = Enum.AutomaticSize.None,
                        horizontalAlignment = Enum.HorizontalAlignment.Left,
                        verticalAlignment = Enum.VerticalAlignment.Center,
                        layoutOrder = 2
                    }, {
                        CreatorName = v19
                    })
                }
            });
        end);
    end);
end;
return v7;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.UIBlox);
local l_LoadableImage_0 = v2.App.Loading.LoadableImage;
local l_withStyle_0 = v2.Style.withStyle;
local l_Images_0 = v2.App.ImageSet.Images;
local l_ImageSetLabel_0 = v2.Core.ImageSet.ImageSetLabel;
local v7 = v1.PureComponent:extend("ItemTileIcon");
v7.defaultProps = {
    hasRoundedCorners = false
};
v7.render = function(v8)
    local l_Image_0 = v8.props.Image;
    local l_hasRoundedCorners_0 = v8.props.hasRoundedCorners;
    return l_withStyle_0(function(v11)
        return v1.createElement("Frame", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 1, 0)
        }, {
            LoadableImage = v1.createElement(l_LoadableImage_0, {
                Size = UDim2.new(1, 0, 1, 0),
                Image = l_Image_0,
                useShimmerAnimationWhileLoading = true
            }),
            RoundedCornersOverlay = l_hasRoundedCorners_0 and v1.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = l_Images_0["component_assets/circle_17_mask"],
                ImageColor3 = v11.Theme.BackgroundDefault.Color,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(8, 8, 9, 9),
                Size = UDim2.new(1, 0, 1, 0),
                ZIndex = 2
            })
        });
    end);
end;
return v7;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v4 = require(l_Modules_0.LuaApp.Components.LoadingSkeleton);
local v5 = v2.PureComponent:extend("ItemTileName");
v5.defaultProps = {
    textYAlignment = Enum.TextYAlignment.Top
};
local v6 = {
    [1] = {
        Size = UDim2.new(0.8, 0, 0, 16)
    },
    [2] = {
        Size = UDim2.new(0.5, 0, 0, 16)
    }
};
v5.init = function(v7)
    v7.createLoadingSkeletonLayout = function()
        return v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 10)
        });
    end;
end;
v5.render = function(v8)
    local l_name_0 = v8.props.name;
    local l_textYAlignment_0 = v8.props.textYAlignment;
    return l_withStyle_0(function(v11)
        local l_Theme_0 = v11.Theme;
        local l_Font_0 = v11.Font;
        return l_name_0 == nil and v2.createElement(v4, {
            Size = UDim2.new(1, 0, 1, 0),
            createLayout = v8.createLoadingSkeletonLayout,
            panels = v6
        }) or v2.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            TextSize = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize,
            TextColor3 = l_Theme_0.TextEmphasis.Color,
            TextTransparency = l_Theme_0.TextEmphasis.Transparency,
            Font = l_Font_0.Header2.Font,
            Text = l_name_0,
            TextTruncate = Enum.TextTruncate.AtEnd,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = l_textYAlignment_0,
            TextWrapped = true
        });
    end);
end;
return v5;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.LuaApp.Models.User);
return {
    [v0.PresenceType.OFFLINE] = nil,
    [v0.PresenceType.ONLINE] = "component_assets/circle_16",
    [v0.PresenceType.IN_GAME] = "icons/menu/games_small",
    [v0.PresenceType.IN_STUDIO] = "icons/logo/studiologo_small"
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_IXPService_0 = game:GetService("IXPService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_Modules_0.LuaApp.Components.AmpUpsell.OpenAmpWizardContainer);
local v4 = require(l_Modules_0.LuaApp.Thunks.NavigateToRoute);
local v5 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v6 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForDiscoverabilityUpsell);
local v7 = require(l_Modules_0.LuaApp.Thunks.Verification.OpenPhoneUpsellModal);
local v8 = require(l_Modules_0.LuaApp.Thunks.OpenContactImporterLearnMoreLink);
local v9 = require(l_Modules_0.LuaApp.Thunks.OpenProfilePeekView);
local v10 = require(l_CorePackages_0.Packages.React);
local v11 = require(l_CorePackages_0.Packages.Dash);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_ContactImporterManager_0 = require(l_CorePackages_0.Workspace.Packages.ContactImporter).ContactImporterManager;
local v14 = require(l_Modules_0.LuaApp.Actions.SetHomePageUpsellCardVariation);
local v15 = require(l_Modules_0.LuaApp.Thunks.WaitUntilIXPUserInit);
local l_FFlagContactImporterPhoneAndContactsAfterSignupFixes_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagContactImporterPhoneAndContactsAfterSignupFixes;
return function()
    local v17 = l_useDispatch_0();
    return v10.createElement(l_ContactImporterManager_0, {
        openAmpUpsell = function(v18, v19)
            v17(v3(v18, v19));
        end,
        navigate = function(v20, v21)
            v17(v4({
                v11.join({
                    name = v20
                }, v21)
            }));
        end,
        openDiscoverabilityModal = function(v22)
            v17(v6(v22));
        end,
        onCloseDiscoverabilityModal = function()
            v17(v5());
        end,
        openPhoneUpsellModal = v7,
        closeCentralOverlay = v5,
        openContactImporterLearnMoreLink = v8,
        openProfilePeekView = v9,
        hideUpsellCard = if not l_FFlagContactImporterPhoneAndContactsAfterSignupFixes_0 then nil else function()
            v17(v14("", "", ""));
        end,
        waitUntilIXPUserInit = function(v23)
            return v17(v15(l_IXPService_0, v23));
        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.Thunks.OpenProfilePeekView);
local v3 = require(l_Modules_0.LuaApp.Thunks.NavigateBack);
local l_ContactsList_0 = require(l_Modules_0.LuaApp.Components.ContactImporter.api).ContactsList;
local v5 = require(l_Modules_0.LuaApp.Components.AmpUpsell.OpenAmpWizardContainer);
local v6 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_getFFlagDiscoverabilityOverlayAmpUpsellFixEnabled_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFFlagDiscoverabilityOverlayAmpUpsellFixEnabled;
local v9 = require(l_CorePackages_0.Packages.React);
local v10 = require(l_CorePackages_0.Packages.Dash);
local v11 = require(l_Modules_0.LuaApp.Thunks.OpenContactImporterLearnMoreLink);
return function(v12)
    local v13 = l_useDispatch_0();
    return v9.createElement(l_ContactsList_0, v10.join(v12, {
        showToast = if not l_getFFlagDiscoverabilityOverlayAmpUpsellFixEnabled_0() then nil else function(v14)
            v13(v6({
                toastMessage = v14
            }));
        end,
        onClose = function(v15)
            v13(v3(v15));
        end,
        openProfilePeekView = function(v16, v17)
            v13(v2(v16, v17));
        end,
        openAmpUpsell = function(v18, v19)
            v13(v5(v18, v19));
        end,
        openLearnMoreLink = function()
            v13(v11());
        end
    }));
end;


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


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v5 = require(l_Modules_0.LuaApp.Thunks.OpenPhoneVerificationWebview);
local v6 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v7 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local v8 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v9 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v10 = require(l_Modules_0.LuaApp.Thunks.OpenContactImporterLearnMoreLink);
local v11 = require(l_Modules_0.LuaApp.Thunks.OpenProfilePeekView);
local l_EnumScreens_0 = require(l_CorePackages_0.Workspace.Packages.SocialModalsCommon).EnumScreens;
local l_getContactImporterParams_0 = require(l_CorePackages_0.Workspace.Packages.ContactImporter).Utils.getContactImporterParams;
local v14 = require(l_Modules_0.LuaApp.Components.AmpUpsell.OpenAmpWizardContainer);
return function()
    local v15 = l_useSelector_0(l_getContactImporterParams_0);
    local l_isDiscoverabilityUnset_0 = v15.isDiscoverabilityUnset;
    local l_isPhoneVerified_0 = v15.isPhoneVerified;
    local v18 = l_useDispatch_0();
    local function v20(v19)
        v18(v9({
            toastMessage = v19
        }));
    end;
    local function v21()
        v18(v10());
    end;
    local function _(v22)
        v18(v5(v22));
    end;
    local function v26(v24, v25)
        v18(v11(v24, v25));
    end;
    local function v29(v27, v28)
        v18(v14(v27, v28));
    end;
    local v30 = l_useNavigation_0();
    local v31 = v6(v7);
    local v32 = v6(v8);
    return function()
        v30.navigate(l_EnumScreens_0.ContactImporter, {
            showToast = v20,
            openLearnMoreLink = v21,
            isFromAddFriendsPage = false,
            diagService = if not v32 then nil else v32.Diag,
            eventIngestService = v31,
            closeModal = v30.pop,
            isDiscoverabilityUnset = l_isDiscoverabilityUnset_0,
            isPhoneVerified = l_isPhoneVerified_0,
            openProfilePeekView = v26,
            openAmpUpsell = v29
        });
    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_LuaApp_0 = l_Modules_0.LuaApp;
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_CorePackages_0.Workspace.Packages.SharedFlags);
local l_withStyle_0 = v4.Style.withStyle;
local v7 = require(l_Modules_0.LuaApp.Constants);
local v8 = require(l_CorePackages_0.Workspace.Packages.VrCompatibility);
local l_VRReadyWrapper_0 = v8.VRReadyWrapper;
local l_VRConstants_0 = v8.VRConstants;
local v11 = require(l_Modules_0.Common.Roact);
local v12 = require(l_Modules_0.Common.RoactRodux);
local v13 = require(l_LuaApp_0.FitChildren);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local l_getSafeAreaSize_0 = require(l_CorePackages_0.Workspace.Packages.InputUi).getSafeAreaSize;
local v16 = require(l_LuaApp_0.Components.FramePopOut);
local v17 = require(l_LuaApp_0.Components.FramePopup);
local l_GetFFlagAdjustVRFloor_0 = v5.GetFFlagAdjustVRFloor;
local v19 = v11.PureComponent:extend("ContextualListMenu");
v19.defaultProps = {
    menuWidth = v7.DEFAULT_WIDE_CONTEXTUAL_MENU__WIDTH
};
v19.render = function(v20)
    local v21 = v20.props[v11.Children] or {};
    local l_callbackCancel_0 = v20.props.callbackCancel;
    local l_formFactor_0 = v20.props.formFactor;
    local l_screenSize_0 = v20.props.screenSize;
    local l_globalContextMenuInset_0 = v20.props.globalContextMenuInset;
    local l_menuWidth_0 = v20.props.menuWidth;
    local l_screenShape_0 = v20.props.screenShape;
    local v28 = l_formFactor_0 == l_FormFactor_0.WIDE;
    if not (l_screenSize_0.X > 0) or l_screenSize_0.Y <= 0 then
        return nil;
    else
        v21.Layout = v11.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder
        });
        local v29 = v11.createElement(v13.FitFrame, {
            BackgroundTransparency = 1,
            fitAxis = v13.FitAxis.Height,
            Size = UDim2.new(1, 0, 0, 0)
        }, v21);
        local v30 = nil;
        v30 = if not v28 then v11.createElement(v17, {
            onCancel = l_callbackCancel_0
        }, {
            Content = v29
        }) else v11.createElement(v16, {
            itemWidth = l_menuWidth_0,
            onCancel = l_callbackCancel_0,
            parentShape = l_screenShape_0
        }, {
            Content = v29
        });
        local v31 = l_getSafeAreaSize_0(l_screenSize_0, l_globalContextMenuInset_0);
        return l_withStyle_0(function(v32)
            return v11.createElement(v11.Portal, {
                target = l_CoreGui_0
            }, {
                PortalUI = v11.createElement(l_VRReadyWrapper_0, {
                    component = "ScreenGui",
                    props = {
                        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                        DisplayOrder = v7.DisplayOrder.ContextualListMenu
                    },
                    vrProps = {
                        partSize = l_VRConstants_0.MainScreenSize,
                        offset = not not l_GetFFlagAdjustVRFloor_0() and l_VRConstants_0.MainScreenPosition or CFrame.lookAt(l_VRConstants_0.MainScreenPosition, l_VRConstants_0.DefaultCameraPosition),
                        virtualScreenSize = l_VRConstants_0.MainScreenResolution,
                        panelName = "ContextualListMenu",
                        curvature = l_VRConstants_0.MainScreenCurvature
                    }
                }, {
                    Content = v11.createElement("Frame", {
                        Position = UDim2.new(0, -l_globalContextMenuInset_0.left, 0, -l_globalContextMenuInset_0.top),
                        Size = UDim2.new(0, l_screenSize_0.X, 0, l_screenSize_0.Y),
                        BackgroundColor3 = v32.Theme.Overlay.Color,
                        BackgroundTransparency = v32.Theme.Overlay.Transparency,
                        BorderSizePixel = 0,
                        Active = true
                    }, {
                        SafeAreaFrame = v11.createElement("Frame", {
                            Position = UDim2.new(0, l_globalContextMenuInset_0.left, 0, l_globalContextMenuInset_0.top),
                            Size = v31,
                            BackgroundTransparency = 1,
                            ClipsDescendants = true
                        }, {
                            Content = v30
                        })
                    })
                })
            });
        end);
    end;
end;
return (v12.connect(function(v33, _)
    return {
        formFactor = v33.FormFactor,
        screenSize = v33.ScreenSize,
        globalGuiInset = v33.GlobalGuiInset,
        globalContextMenuInset = v33.GlobalContextMenuInset
    };
end)(v19));


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_LuaApp_0 = l_Modules_0.LuaApp;
local v4 = require(l_Modules_0.Common.Roact);
local v5 = require(l_Modules_0.Common.RoactRodux);
local v6 = require(l_LuaApp_0.Constants);
local v7 = require(l_LuaApp_0.Components.ContextualListMenu);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v9 = require(l_Modules_0.LuaApp.Components.ListPicker);
local v10 = v4.PureComponent:extend("ContextualMenu");
local l_DEFAULT_WIDE_CONTEXTUAL_MENU__WIDTH_0 = v6.DEFAULT_WIDE_CONTEXTUAL_MENU__WIDTH;
v10.render = function(v12)
    local l_callbackCancel_0 = v12.props.callbackCancel;
    local l_callbackSelect_0 = v12.props.callbackSelect;
    local v15 = v12.props.menuItems or {};
    local l_screenShape_0 = v12.props.screenShape;
    local l_formFactor_0 = v12.props.formFactor;
    local v18 = l_formFactor_0 == l_FormFactor_0.WIDE;
    for v19, v20 in ipairs(v15) do
        v15[v19].onSelect = function()
            l_callbackSelect_0(v20, v19);
        end;
        v15[v19].text = v20.displayName;
    end;
    return v4.createElement(v7, {
        callbackCancel = l_callbackCancel_0,
        screenShape = l_screenShape_0
    }, {
        ListPicker = v4.createElement(v9, {
            layoutOrder = 2,
            items = v15,
            formFactor = l_formFactor_0,
            width = not not v18 and l_DEFAULT_WIDE_CONTEXTUAL_MENU__WIDTH_0 or l_screenShape_0.parentWidth
        })
    });
end;
return (v5.connect(function(v21, _)
    return {
        formFactor = v21.FormFactor
    };
end)(v10));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_Modules_0.Common.Roact);
local _ = require(l_CorePackages_0.Packages.React);
local l_PointerOverlay_0 = v2.Core.VR.PointerOverlay;
local v6 = require(l_Modules_0.VR.VRControllerModel);
local v7 = require(l_Modules_0.VR.LaserPointer);
local l_useIsFPSAtTarget_0 = require(l_CorePackages_0.Workspace.Packages.SplashScreenManager).useIsFPSAtTarget;
return function()
    if not l_useIsFPSAtTarget_0() then
        return nil;
    else
        return (v3.createElement(l_PointerOverlay_0, {
            LaserPointer = v7,
            VRControllerModel = v6
        }));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Packages.Roact);
local v4 = require(l_CorePackages_0.UIBlox);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_AppPanel3D_0 = require(l_CorePackages_0.Workspace.Packages.VrCompatibility).AppPanel3D;
local l_Panel3D_0 = v4.Core.VR.Panel3D;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_Object_0 = require(l_CorePackages_0.Packages.LuauPolyfill).Object;
local l_GetFFlagAdjustVRFloor_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagAdjustVRFloor;
local l_VRConstants_0 = require(l_CorePackages_0.Workspace.Packages.VrCompatibility).VRConstants;
local l_OverlayComponent_0 = require(l_Modules_0.LuaApp.Components.CentralOverlayUtils).OverlayComponent;
local v14 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v15 = if not l_GetFFlagAdjustVRFloor_0() then l_Panel3D_0 else l_AppPanel3D_0;
local v16 = {
    hideCentralOverlay = false
};
local function v18(v17)
    return v17.CentralOverlay.OverlayType;
end;
local function v20(v19)
    return v19.CentralOverlay.Arguments;
end;
local function v22(v21)
    return v21.ScreenSize;
end;
return function(v23)
    local v24 = l_Object_0.assign({}, v16, v23);
    local v25 = l_useSelector_0(v18);
    local v26 = l_OverlayComponent_0[v25];
    local v27 = l_useSelector_0(v20);
    local v28 = l_useSelector_0(v22);
    local v29 = l_useDispatch_0();
    local v30 = v2.useCallback(function()
        v29(v14());
    end);
    v2.useEffect(function()
        if not v25 then
            v30();
        end;
    end, {
        v25 or false
    });
    local v31 = v2.createElement(v26, l_Object_0.assign({}, v27, {
        containerWidth = v28.X
    }));
    if v24.hideCentralOverlay or not v26 then
        return nil;
    else
        return v2.createElement(v3.Portal, {
            target = l_CoreGui_0
        }, {
            VRCentralOverlay = v2.createElement(v15, {
                partSize = Vector2.new(l_VRConstants_0.MainScreenSize.X * 1.2, l_VRConstants_0.MainScreenSize.Y),
                offset = if not l_GetFFlagAdjustVRFloor_0() then CFrame.lookAt(l_VRConstants_0.CentralOverlayPosition, l_VRConstants_0.DefaultCameraPosition) else l_VRConstants_0.CentralOverlayPosition,
                virtualScreenSize = Vector2.new(v28.X * 1.2, v28.Y),
                panelName = "CentralOverlay",
                curvature = l_VRConstants_0.MainScreenCurvature
            }, {
                TextButtonWrapper = v2.createElement("TextButton", {
                    Size = UDim2.new(1, 0, 1, 0),
                    BackgroundTransparency = 1,
                    Text = "",
                    Selectable = false
                }, {
                    OverlayComponent = v31
                })
            })
        });
    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.Common.Roact);
local v4 = require(l_Modules_0.Common.Immutable);
local l_GetImageSetData_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppAssets).GetImageSetData;
local v6 = require(l_CorePackages_0.Cryo);
local v7 = v3.PureComponent:extend("ImageSetButton");
v7.render = function(v8)
    local v9, v10 = l_GetImageSetData_0(l_GuiService_0:GetResolutionScale());
    local v11 = v9[v8.props.Image];
    if v11 then
        local l_forwardRef_0 = v8.props.forwardRef;
        local v13 = v4.RemoveFromDictionary(v8.props, "Image", "ImageRectOffset", "ImageRectSize", "SliceCenter", "forwardRef");
        v13[v3.Ref] = l_forwardRef_0;
        if v8.props.Image then
            v13.Image = "rbxasset://textures/ui/ImageSet/" .. v11.ImageSet .. ".png";
        end;
        if not v8.props.ImageRectOffset then
            v13.ImageRectOffset = v11.ImageRectOffset;
        else
            v13.ImageRectOffset = Vector2.new(v11.ImageRectOffset.X + v8.props.ImageRectOffset.X * v10, v11.ImageRectOffset.Y + v8.props.ImageRectOffset.Y * v10);
        end;
        if not v8.props.ImageRectSize then
            v13.ImageRectSize = v11.ImageRectSize;
        else
            v13.ImageRectSize = Vector2.new(v8.props.ImageRectSize.X * v10, v8.props.ImageRectSize.Y * v10);
        end;
        if v8.props.SliceCenter then
            v13.SliceCenter = Rect.new(v8.props.SliceCenter.Min.X * v10, v8.props.SliceCenter.Min.Y * v10, v8.props.SliceCenter.Max.X * v10, v8.props.SliceCenter.Max.Y * v10);
            if not v8.props.SliceScale then
                v13.SliceScale = 1 / v10;
            else
                v13.SliceScale = v8.props.SliceScale / v10;
            end;
        end;
        return v3.createElement("ImageButton", v13);
    else
        local l_forwardRef_1 = v8.props.forwardRef;
        local v15 = v4.RemoveFromDictionary(v8.props, "forwardRef");
        v15[v3.Ref] = l_forwardRef_1;
        return v3.createElement("ImageButton", v15);
    end;
end;
return v3.forwardRef(function(v16, v17)
    return v3.createElement(v7, v6.Dictionary.join(v16, {
        forwardRef = v17
    }));
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.Common.Roact);
local v4 = require(l_Modules_0.Common.Immutable);
local l_GetImageSetData_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppAssets).GetImageSetData;
local l_GetImageSetPathPattern_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppAssets).GetImageSetPathPattern;
local v7 = require(l_CorePackages_0.Cryo);
local v8 = v3.PureComponent:extend("ImageSetLabel");
v8.render = function(v9)
    local v10, v11 = l_GetImageSetData_0(l_GuiService_0:GetResolutionScale());
    local v12 = v10[v9.props.Image];
    if v12 then
        local l_forwardRef_0 = v9.props.forwardRef;
        local v14 = v4.RemoveFromDictionary(v9.props, "Image", "ImageRectOffset", "ImageRectSize", "SliceCenter", "forwardRef");
        v14[v3.Ref] = l_forwardRef_0;
        if v9.props.Image then
            v14.Image = l_GetImageSetPathPattern_0(v12.ImageSet);
        end;
        if not v9.props.ImageRectOffset then
            v14.ImageRectOffset = v12.ImageRectOffset;
        else
            v14.ImageRectOffset = Vector2.new(v12.ImageRectOffset.X + v9.props.ImageRectOffset.X * v11, v12.ImageRectOffset.Y + v9.props.ImageRectOffset.Y * v11);
        end;
        if not v9.props.ImageRectSize then
            v14.ImageRectSize = v12.ImageRectSize;
        else
            v14.ImageRectSize = Vector2.new(v9.props.ImageRectSize.X * v11, v9.props.ImageRectSize.Y * v11);
        end;
        if v9.props.SliceCenter then
            v14.SliceCenter = Rect.new(v9.props.SliceCenter.Min.X * v11, v9.props.SliceCenter.Min.Y * v11, v9.props.SliceCenter.Max.X * v11, v9.props.SliceCenter.Max.Y * v11);
            if not v9.props.SliceScale then
                v14.SliceScale = 1 / v11;
            else
                v14.SliceScale = v9.props.SliceScale / v11;
            end;
        end;
        return v3.createElement("ImageLabel", v14);
    else
        local l_forwardRef_1 = v9.props.forwardRef;
        local v16 = v4.RemoveFromDictionary(v9.props, "forwardRef");
        v16[v3.Ref] = l_forwardRef_1;
        return v3.createElement("ImageLabel", v16);
    end;
end;
return v3.forwardRef(function(v17, v18)
    return v3.createElement(v8, v7.Dictionary.join(v17, {
        forwardRef = v18
    }));
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(l_Modules_0.LuaApp.FlagSettings);
local v6 = require(l_Modules_0.LuaApp.Components.AlertWindow);
local v7 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v8 = require(l_Modules_0.LuaApp.Thunks.PatchDevSub);
local v9 = require(l_Modules_0.LuaApp.Actions.SetDevSub);
local v10 = require(l_CorePackages_0.Cryo);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v12 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v13 = v1.PureComponent:extend("DevSubConfirmCancelPrompt");
local v14 = require(l_Modules_0.LuaApp.withLocalization);
local l_withStyle_0 = v2.Style.withStyle;
v13.render = function(v16)
    local l_containerWidth_0 = v16.props.containerWidth;
    local l_onConfirm_0 = v16.props.onConfirm;
    local l_onBack_0 = v16.props.onBack;
    local l_networking_0 = v16.props.networking;
    local l_devSub_0 = v16.props.devSub;
    return v14({
        titleText = "Feature.DevSubs.Action.CancelSubscription",
        messageText = "Feature.DevSubs.Message.ConfirmCancellation",
        confirmButtonText = "CommonUI.Controls.Action.Confirm",
        cancelButtonText = "CommonUI.Controls.Action.Back"
    })(function(v22)
        return l_withStyle_0(function(v23)
            return v1.createElement(v6, {
                containerWidth = l_containerWidth_0,
                titleText = v22.titleText,
                titleFont = v23.Font.Title.Font,
                titleTextSize = 22,
                messageText = v22.messageText,
                messageFont = v23.Font.Body.Font,
                buttonFont = v23.Font.Header1.Font,
                confirmButtonText = v22.confirmButtonText,
                onConfirm = function()
                    l_onConfirm_0(l_networking_0, l_devSub_0);
                end,
                hasCancelButton = true,
                cancelButtonText = v22.cancelButtonText,
                onCancel = l_onBack_0
            });
        end);
    end);
end;
return l_RoactServices_0.connect({
    networking = v12
})((v3.connect(nil, function(v24)
    return {
        onBack = function()
            v24(v7());
        end,
        onConfirm = function(v25, v26)
            v24(v7());
            v24(v8.Patch(v25, v26.id, false));
            v24(v9(v10.Dictionary.join(v26, {
                isAutoRenewing = false
            })));
        end
    };
end)(v13)));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Common.RoactRodux);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v5 = require(l_Modules_0.LuaApp.Services.RoactLocalization);
local v6 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v7 = require(l_CorePackages_0.Cryo);
local v8 = require(l_Modules_0.LuaApp.Constants);
local v9 = require(l_Modules_0.LuaApp.FitChildren);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v11 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v12 = require(l_Modules_0.LuaApp.Thunks.PatchDevSub);
local v13 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local v14 = require(l_Modules_0.LuaApp.Actions.SetDevSub);
local v15 = require(l_Modules_0.LuaApp.Components.ListPicker);
local v16 = require(l_Modules_0.LuaApp.Components.FormBasedContextualMenu);
local v17 = require(l_Modules_0.LuaApp.Enum.DevSubStatus);
local v18 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v19 = v2.PureComponent:extend("DevSubMoreMenu");
local l_DEFAULT_WIDE_CONTEXTUAL_MENU__WIDTH_0 = v8.DEFAULT_WIDE_CONTEXTUAL_MENU__WIDTH;
v19.render = function(v21)
    local l_localization_0 = v21.props.localization;
    local l_screenSize_0 = v21.props.screenSize;
    local l_formFactor_0 = v21.props.formFactor;
    local l_onCancelSubscription_0 = v21.props.onCancelSubscription;
    local l_onRenewSubscription_0 = v21.props.onRenewSubscription;
    local l_devSub_0 = v21.props.devSub;
    local l_anchorSpaceSize_0 = v21.props.anchorSpaceSize;
    local l_anchorSpacePosition_0 = v21.props.anchorSpacePosition;
    local v30 = not not (l_formFactor_0 == l_FormFactor_0.COMPACT) and l_screenSize_0.X or l_DEFAULT_WIDE_CONTEXTUAL_MENU__WIDTH_0;
    local l_networking_0 = v21.props.networking;
    local v32 = {};
    if l_devSub_0.isAutoRenewing then
        table.insert(v32, {
            text = l_localization_0:Format("Feature.DevSubs.Action.CancelSubscription"),
            onSelect = function()
                l_onCancelSubscription_0(l_devSub_0);
            end
        });
    end;
    if not l_devSub_0.isAutoRenewing and l_devSub_0.status == v17.Active then
        table.insert(v32, {
            text = l_localization_0:Format("Feature.DevSubs.Action.RenewSubscription"),
            onSelect = function()
                l_onRenewSubscription_0(l_networking_0, l_devSub_0);
            end
        });
    end;
    return v2.createElement(v16, {
        anchorSpaceSize = l_anchorSpaceSize_0,
        anchorSpacePosition = l_anchorSpacePosition_0,
        itemWidth = v30,
        enablePopUpCancelButton = false
    }, {
        Content = v2.createElement(v9.FitFrame, {
            BackgroundTransparency = 1,
            fitAxis = v9.FitAxis.Height,
            Size = UDim2.new(1, 0, 0, 0)
        }, {
            ListPicker = v2.createElement(v15, {
                formFactor = l_formFactor_0,
                items = v32,
                layoutOrder = 1,
                width = v30,
                maxHeight = 162
            })
        })
    });
end;
return (l_RoactServices_0.connect({
    localization = v5,
    networking = v6
})((v3.connect(function(v33, _)
    return {
        formFactor = v33.FormFactor,
        screenSize = v33.ScreenSize
    };
end, function(v35)
    return {
        onCancelSubscription = function(v36)
            v35(v11());
            v35(v13(v18.DevSubConfirmCancel, {
                devSub = v36
            }));
        end,
        onRenewSubscription = function(v37, v38)
            v35(v11());
            v35(v12.Patch(v37, v38.id, true));
            v35(v14(v7.Dictionary.join(v38, {
                isAutoRenewing = true
            })));
        end
    };
end)(v19))));


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local v4 = require(l_CorePackages_0.Workspace.Packages.React);
local v5 = require(l_CorePackages_0.Promise);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v7 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v8 = require(l_Modules_0.LuaApp.Thunks.OpenContactImporterLearnMoreLink);
local l_dependencies_0 = require(l_CorePackages_0.Workspace.Packages.DiscoverabilityModal).dependencies;
local l_getContactImporterParams_0 = require(l_CorePackages_0.Workspace.Packages.ContactImporter).Utils.getContactImporterParams;
local l_EnumScreens_0 = require(l_CorePackages_0.Workspace.Packages.SocialModalsCommon).EnumScreens;
return function()
    local v12 = l_useSelector_0(l_getContactImporterParams_0);
    local l_isDiscoverabilityUnset_0 = v12.isDiscoverabilityUnset;
    local l_isPhoneVerified_0 = v12.isPhoneVerified;
    local v15 = l_useDispatch_0();
    local v16 = l_useNavigation_0();
    local function v18(v17)
        v15(v7({
            toastMessage = v17
        }));
    end;
    local function v19()
        v15(v8());
    end;
    local function _()
        return v15(l_dependencies_0.NetworkingUserSettings.GetUserSettingsMetadata.API());
    end;
    v4.useEffect(function()
        v15(l_dependencies_0.NetworkingUserSettings.GetUserSettingsMetadata.API()):catch(function()
            v5.reject();
        end);
    end, {});
    return function(v21)
        if not l_isDiscoverabilityUnset_0 or not l_isPhoneVerified_0 then
            v21.navigateOnActivated();
            return ;
        else
            v16.navigate(l_EnumScreens_0.DiscoverabilityOverlay, {
                showToast = v18,
                openLearnMoreLink = v19,
                isStandaloneDiscoverabilityModal = v21.isStandaloneDiscoverabilityModal,
                navigateOnActivated = v21.navigateOnActivated,
                entryPoint = v21.entryPoint
            });
            return ;
        end;
    end;
end;