return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1)
    assert(type(v0) == "string", "sourceLanguage must be a string");
    assert(type(v1) == "table", "targetLanguages must be a table");
    return {
        sourceLanguage = v0,
        targetLanguages = v1
    };
end);


local l_StudioService_0 = game:GetService("StudioService");
local l_Parent_0 = script.Parent;
local l_Parent_1 = script.Parent.Parent.Parent;
local v3 = require(l_Parent_1.Packages.Roact);
local v4 = require(l_Parent_1.Packages.RoactRodux);
local v5 = require(l_Parent_1.Packages.Cryo);
local v6 = require(l_Parent_1.Packages.Framework);
local l_ContextServices_0 = v6.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v6.UI;
local l_LinkText_0 = l_UI_0.LinkText;
local l_Pane_0 = l_UI_0.Pane;
local l_SelectInput_0 = l_UI_0.SelectInput;
local l_Separator_0 = l_UI_0.Separator;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local l_ToggleButton_0 = l_UI_0.ToggleButton;
local l_LayoutOrderIterator_0 = v6.Util.LayoutOrderIterator;
local v18 = require(l_Parent_1.Src.Components.SettingsPages.SettingsPage);
local v19 = require(l_Parent_1.Src.Actions.AddChange);
local v20 = require(l_Parent_0.Thunks.ReloadAutoTranslationTargetLanguages);
local l_calculateTextSize_0 = require(l_Parent_1.Src.Util.GameSettingsUtilities).calculateTextSize;
local l_getAutoTranslationAllowed_0 = require(l_Parent_1.Src.Util.GameSettingsUtilities).getAutoTranslationAllowed;
local l_getAutoTranslatedLanguages_0 = require(l_Parent_1.Src.Util.GameSettingsUtilities).getAutoTranslatedLanguages;
local l_OpenLocalizationSettings_0 = require(l_Parent_1.Src.Util.BrowserUtils).OpenLocalizationSettings;
local v25 = v3.PureComponent:extend(script.Name);
local l_Name_0 = script.Name;
local function v32(v27, v28)
    local v29 = {};
    for v30, _ in pairs(v27) do
        table.insert(v29, {
            Id = v30,
            Label = v28[v30]
        });
    end;
    return v29;
end;
local function v46(v33, v34)
    local l_gameId_0 = v33:getState().Metadata.gameId;
    local l_localizationPageController_0 = v34.localizationPageController;
    return {
        function(v37)
            v37.SupportedLanguages = l_localizationPageController_0:getSupportedLanguages();
        end,
        function(v38)
            v38.LanguageCodeToNames = l_localizationPageController_0:getLanguageCodeToNames(l_StudioService_0.StudioLocaleId);
        end,
        function(v39)
            local v40 = l_localizationPageController_0:getSourceLanguage(l_gameId_0);
            v39.SourceLanguage = v40;
            v39.AutoTranslationTargetLanguages = l_getAutoTranslatedLanguages_0()[v40] or l_localizationPageController_0:getAutoTranslationTargetLanguages(v40);
        end,
        function(v41)
            local v42, v43 = l_localizationPageController_0:getAutoLocalizationSettings(l_gameId_0);
            v41.AutoTextCaptureEnabled = v42;
            v41.UseTranslatedContentEnabled = v43;
        end,
        function(v44)
            v44.IsAutomaticTranslationAllowed = l_localizationPageController_0:getAutoTranslationFeatureStatus(l_gameId_0);
        end,
        function(v45)
            v45.AutoTranslationSettings = l_localizationPageController_0:getAutoTranslationSetings(l_gameId_0);
        end
    };
end;
local function v62(v47, v48)
    local v49 = v47:getState();
    local l_gameId_1 = v49.Metadata.gameId;
    local l_localizationPageController_1 = v48.localizationPageController;
    return {
        function()
            local l_SourceLanguage_0 = v49.Settings.Changed.SourceLanguage;
            if l_SourceLanguage_0 ~= nil then
                l_localizationPageController_1:setSourceLanguage(l_gameId_1, l_SourceLanguage_0);
            end;
        end,
        function()
            local l_AutoTextCaptureEnabled_0 = v49.Settings.Changed.AutoTextCaptureEnabled;
            local l_UseTranslatedContentEnabled_0 = v49.Settings.Changed.UseTranslatedContentEnabled;
            if not (l_AutoTextCaptureEnabled_0 == nil) or l_UseTranslatedContentEnabled_0 ~= nil then
                local _ = nil;
                local _ = nil;
                l_localizationPageController_1:setAutoLocalizationSettings(l_gameId_1, if l_AutoTextCaptureEnabled_0 ~= nil then l_AutoTextCaptureEnabled_0 else v49.Settings.Current.AutoTextCaptureEnabled, if l_UseTranslatedContentEnabled_0 ~= nil then l_UseTranslatedContentEnabled_0 else v49.Settings.Current.UseTranslatedContentEnabled);
            end;
        end,
        function()
            local l_AutoTranslationSettings_0 = v49.Settings.Changed.AutoTranslationSettings;
            if l_AutoTranslationSettings_0 ~= nil then
                local v58 = {};
                local l_AutoTranslationSettings_1 = v49.Settings.Current.AutoTranslationSettings;
                for v60, v61 in pairs(l_AutoTranslationSettings_0) do
                    if l_AutoTranslationSettings_1[v60] ~= v61 then
                        v58[v60] = v61;
                    end;
                end;
                l_localizationPageController_1:setAutoTranslationSetings(l_gameId_1, v58);
            end;
        end
    };
end;
local function v70(v63, _)
    local l_AutoTranslationTargetLanguages_0 = v63.AutoTranslationTargetLanguages;
    if l_AutoTranslationTargetLanguages_0 == nil then
        return ;
    else
        if not (not v63.IsAutomaticTranslationAllowed and not l_getAutoTranslationAllowed_0()) then
            local v66 = {};
            local v67 = l_LayoutOrderIterator_0.new();
            for v68, v69 in pairs(l_AutoTranslationTargetLanguages_0) do
                if v69 then
                    v66[v68] = v3.createElement(l_TitledFrame_0, {
                        LayoutOrder = v67:getNextOrder(),
                        Title = v63.LanguageCodeToNames[v68]
                    }, {
                        ToggleButton = v3.createElement(l_ToggleButton_0, {
                            OnClick = v63.AutoTranslationSettingChanged(v63.AutoTranslationSettings, v68),
                            Selected = v63.AutoTranslationSettings[v68] or false
                        })
                    });
                end;
            end;
            if next(v66) ~= nil then
                return v66;
            end;
        end;
        return ;
    end;
end;
local function v84(v71, v72, v73)
    local v74 = l_LayoutOrderIterator_0.new();
    local v75 = v32(v71.SupportedLanguages, v71.LanguageCodeToNames);
    local v76 = v71.IsAutomaticTranslationAllowed or l_getAutoTranslationAllowed_0();
    local v77 = v70(v71, v73);
    local v78 = v77 ~= nil;
    local v79 = v76 and not v78;
    local v80 = not l_getAutoTranslationAllowed_0();
    local l_GameId_0 = v71.GameId;
    local v82 = l_calculateTextSize_0(v72:getText("General", "LocalizationSettingsLinkText"), 14, "SourceSans");
    return {
        SourceLanguage = v3.createElement(l_TitledFrame_0, {
            LayoutOrder = v74:getNextOrder(),
            Title = v72:getText("General", "SourceLanguageTitle")
        }, {
            Layout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, v73.uiListLayout.padding)
            }),
            Selector = v3.createElement(l_SelectInput_0, {
                LayoutOrder = 1,
                Items = v75,
                Enabled = next(v75) ~= nil,
                SelectedId = v71.SourceLanguage,
                OnItemActivated = function(v83)
                    v71.SourceLanguageChanged(v83.Id);
                end
            }),
            Description = v3.createElement("TextLabel", v5.Dictionary.join(v73.fontStyle.Subtext, {
                LayoutOrder = 2,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 0, v73.fontStyle.Subtitle.TextSize),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                Text = v72:getText("General", "SourceLanguageDesc")
            }))
        }),
        Separator1 = v3.createElement(l_Separator_0, {
            LayoutOrder = v74:getNextOrder()
        }),
        AutoTextCapture = v3.createElement(l_TitledFrame_0, {
            LayoutOrder = v74:getNextOrder(),
            Title = v72:getText("General", "AutoTextCaptureTitle")
        }, {
            Layout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, v73.uiListLayout.padding)
            }),
            ToggleButton = v3.createElement(l_ToggleButton_0, {
                Disabled = v71.AutoTextCaptureEnabled == nil,
                LayoutOrder = 1,
                OnClick = v71.AutoTextCaptureEnabledChanged,
                Selected = v71.AutoTextCaptureEnabled
            }),
            Description = v3.createElement("TextLabel", v5.Dictionary.join(v73.fontStyle.Subtext, {
                LayoutOrder = 2,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 0, v73.fontStyle.Subtitle.TextSize),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                Text = v72:getText("General", "AutoTextCaptureDesc")
            }))
        }),
        Separator2 = v3.createElement(l_Separator_0, {
            LayoutOrder = v74:getNextOrder()
        }),
        UseTranslatedContent = v3.createElement(l_TitledFrame_0, {
            LayoutOrder = v74:getNextOrder(),
            Title = v72:getText("General", "UseTranslatedContentTitle")
        }, {
            Layout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, v73.uiListLayout.padding)
            }),
            ToggleButton = v3.createElement(l_ToggleButton_0, {
                Disabled = v71.UseTranslatedContentEnabled == nil,
                LayoutOrder = 1,
                OnClick = v71.UseTranslatedContentEnabledChanged,
                Selected = v71.UseTranslatedContentEnabled
            }),
            Description = v3.createElement("TextLabel", v5.Dictionary.join(v73.fontStyle.Subtext, {
                LayoutOrder = 2,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 0, v73.fontStyle.Subtitle.TextSize),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                Text = v72:getText("General", "UseTranslatedContentDesc")
            }))
        }),
        Separator3 = v3.createElement(l_Separator_0, {
            LayoutOrder = v74:getNextOrder()
        }),
        AutoTranslationTitle = v76 and v3.createElement(l_TitledFrame_0, {
            LayoutOrder = v74:getNextOrder(),
            Title = v72:getText("General", "AutoTranslationTitle")
        }),
        AutoTranslationOptions = v78 and v3.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Vertical,
            LayoutOrder = v74:getNextOrder(),
            AutomaticSize = Enum.AutomaticSize.Y,
            Spacing = UDim.new(0, 10)
        }, v77),
        AutoTranlsationUnavailable = v79 and v3.createElement("TextLabel", v5.Dictionary.join(v73.fontStyle.Subtext, {
            LayoutOrder = v74:getNextOrder(),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 0, v73.fontStyle.Subtitle.TextSize),
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            Text = v72:getText("General", "AutoTranslationOnlyAvailableForEnMessage")
        })),
        Separator4 = v76 and v3.createElement(l_Separator_0, {
            LayoutOrder = v74:getNextOrder()
        }),
        HyperLink = v80 and v3.createElement("Frame", {
            LayoutOrder = v74:getNextOrder(),
            Size = UDim2.new(1, 0, 0, 20),
            BackgroundTransparency = 1
        }, {
            LinkTextLabel = v3.createElement(l_TextLabel_0, {
                Position = UDim2.new(0, v82.X, 0, 0),
                Size = UDim2.new(1, -v82.X, 1, 0),
                Style = "Body",
                Text = v72:getText("General", "LocalizationSettingsNonLinkText"),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top
            }),
            LinkText = v3.createElement(l_LinkText_0, {
                OnClick = l_OpenLocalizationSettings_0(l_GameId_0),
                Size = UDim2.new(0, v82.X, 0, v82.Y),
                Style = "Body",
                Text = v72:getText("General", "LocalizationSettingsLinkText")
            })
        })
    };
end;
v25.render = function(v85)
    local l_props_0 = v85.props;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    return v3.createElement(v18, {
        SettingsLoadJobs = v46,
        SettingsSaveJobs = v62,
        Title = l_Localization_0:getText("General", "Category" .. l_Name_0),
        PageId = script.Name,
        CreateChildren = function()
            return (v84(l_props_0, l_Localization_0, l_Stylizer_0));
        end
    });
end;
local function v91(v89, v90)
    return {
        SupportedLanguages = v89("SupportedLanguages"),
        LanguageCodeToNames = v89("LanguageCodeToNames"),
        IsAutomaticTranslationAllowed = v89("IsAutomaticTranslationAllowed"),
        AutoTranslationTargetLanguages = v89("AutoTranslationTargetLanguages"),
        SourceLanguage = v89("SourceLanguage"),
        AutoTextCaptureEnabled = v89("AutoTextCaptureEnabled"),
        UseTranslatedContentEnabled = v89("UseTranslatedContentEnabled"),
        AutoTranslationSettings = v89("AutoTranslationSettings"),
        GameId = v90.Metadata.gameId
    };
end;
local function v98(v92, v93)
    return {
        SourceLanguageChanged = function(v94)
            v93(v19("SourceLanguage", v94));
            v93(v20(v94));
        end,
        AutoTextCaptureEnabledChanged = v92("AutoTextCaptureEnabled"),
        UseTranslatedContentEnabledChanged = v92("UseTranslatedContentEnabled"),
        AutoTranslationSettingChanged = function(v95, v96)
            return function(v97)
                v93(v19("AutoTranslationSettings", (v5.Dictionary.join(v95, {
                    [v96] = v97
                }))));
            end;
        end
    };
end;
v25 = l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Mouse = l_ContextServices_0.Mouse,
    Stylizer = l_ContextServices_0.Stylizer
})(v25);
local v99 = require(l_Parent_1.Src.Networking.settingFromState);
v25 = v4.connect(function(v100, _)
    if v100 then
        return (v91(function(v102)
            return v99(v100.Settings, v102);
        end, v100));
    else
        return ;
    end;
end, function(v103)
    return (v98(function(v104)
        return function(v105)
            v103(v19(v104, v105));
        end;
    end, v103));
end)(v25);
v25.LocalizationId = l_Name_0;
return v25;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Cryo);
local l_getAutoTranslatedLanguages_0 = require(l_Parent_0.Src.Util.GameSettingsUtilities).getAutoTranslatedLanguages;
local v3 = require(l_Parent_0.Src.Actions.SetCurrentSettings);
return function(v4)
    return function(v5, v6)
        v5:dispatch(v3((v1.Dictionary.join(v5:getState().Settings.Current, {
            AutoTranslationTargetLanguages = l_getAutoTranslatedLanguages_0()[v4] or v6.localizationPageController:getAutoTranslationTargetLanguages(v4)
        }))));
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = v1.PureComponent:extend(script.Name);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v3.UI;
local l_Button_0 = l_UI_0.Button;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local l_TextService_0 = game:GetService("TextService");
local l_StudioService_0 = game:GetService("StudioService");
local l_GuiService_0 = game:GetService("GuiService");
local v13 = require(l_Parent_0.Src.Components.TableWithMenu);
local l_FitFrameOnAxis_0 = v3.Util.FitFrame.FitFrameOnAxis;
local v15 = require(l_Parent_0.Src.Util.KeyProvider);
local l_getCopyIdKeyName_0 = v15.getCopyIdKeyName;
local l_getConfigureKeyName_0 = v15.getConfigureKeyName;
local l_shouldAllowBadges_0 = require(l_Parent_0.Src.Util.GameSettingsUtilities).shouldAllowBadges;
v2.render = function(v19)
    if l_shouldAllowBadges_0() then
        local l_props_0 = v19.props;
        local l_Stylizer_0 = l_props_0.Stylizer;
        local l_Localization_0 = l_props_0.Localization;
        local l_BadgeList_0 = l_props_0.BadgeList;
        local l_OnLoadMoreBadges_0 = l_props_0.OnLoadMoreBadges;
        local l_RefreshBadges_0 = l_props_0.RefreshBadges;
        local l_LayoutOrder_0 = l_props_0.LayoutOrder;
        local v27 = l_Localization_0:getText("General", "ButtonCreate");
        local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v27, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font, Vector2.new(math.huge, math.huge));
        return v1.createElement(l_FitFrameOnAxis_0, {
            axis = l_FitFrameOnAxis_0.Axis.Vertical,
            minimumSize = UDim2.new(1, 0, 0, 0),
            contentPadding = UDim.new(0, l_Stylizer_0.badges.headerPadding),
            BackgroundTransparency = 1,
            LayoutOrder = l_LayoutOrder_0
        }, {
            BadgesTitle = v1.createElement(l_TitledFrame_0, {
                LayoutOrder = 1,
                Title = l_Localization_0:getText("Monetization", "Badges")
            }, {
                Padding = v1.createElement("UIPadding", {
                    PaddingRight = UDim.new(0, l_Stylizer_0.badges.titlePadding)
                }),
                Layout = v1.createElement("UIListLayout", {
                    HorizontalAlignment = Enum.HorizontalAlignment.Right,
                    VerticalAlignment = Enum.VerticalAlignment.Center
                }),
                CreateButton = v1.createElement(l_Button_0, {
                    Style = "GameSettingsPrimaryButton",
                    Text = v27,
                    Size = UDim2.new(0, l_l_TextService_0_TextSize_0.X + l_Stylizer_0.createButton.PaddingX, 0, l_l_TextService_0_TextSize_0.Y + l_Stylizer_0.createButton.PaddingY),
                    OnClick = function()
                        local l_l_StudioService_0_BadgeUploadUrl_0 = l_StudioService_0:GetBadgeUploadUrl();
                        if l_l_StudioService_0_BadgeUploadUrl_0 and string.len(l_l_StudioService_0_BadgeUploadUrl_0) > 0 then
                            l_GuiService_0:OpenBrowserWindow(l_l_StudioService_0_BadgeUploadUrl_0);
                            return ;
                        else
                            error("Failed to open Badge Creation page");
                            return ;
                        end;
                    end
                }, {
                    v1.createElement(l_HoverArea_0, {
                        Cursor = "PointingHand"
                    })
                })
            }),
            BadgesTable = v1.createElement(v13, {
                Headers = {
                    l_Localization_0:getText("Monetization", "BadgeImage"),
                    l_Localization_0:getText("Monetization", "BadgeName"),
                    l_Localization_0:getText("Monetization", "BadgeDescription")
                },
                Data = l_BadgeList_0,
                TableHeight = l_Stylizer_0.table.height / 2,
                LayoutOrder = 2,
                NextPageFunc = l_OnLoadMoreBadges_0,
                ScrollingFrameNextPageRequestDistance = 200,
                EmptyText = l_Localization_0:getText("Monetization", "NoBadges"),
                ShowTableBackground = true,
                MenuItems = {
                    {
                        Key = l_getCopyIdKeyName_0(),
                        Text = l_Localization_0:getText("General", l_getCopyIdKeyName_0())
                    },
                    {
                        Key = l_getConfigureKeyName_0(),
                        Text = l_Localization_0:getText("General", l_getConfigureKeyName_0())
                    }
                },
                OnItemClicked = function(v30, v31)
                    if v30 == l_getCopyIdKeyName_0() then
                        l_StudioService_0:CopyToClipboard(v31);
                        return ;
                    elseif v30 == l_getConfigureKeyName_0() then
                        local l_l_StudioService_0_BadgeConfigureUrl_0 = l_StudioService_0:GetBadgeConfigureUrl(v31);
                        if l_l_StudioService_0_BadgeConfigureUrl_0 and string.len(l_l_StudioService_0_BadgeConfigureUrl_0) > 0 then
                            l_GuiService_0:OpenBrowserWindow(l_l_StudioService_0_BadgeConfigureUrl_0);
                            return ;
                        else
                            error("Failed to open Badge Configuration page");
                            return ;
                        end;
                    else
                        assert(false);
                        return ;
                    end;
                end,
                HeaderButton = v1.createElement("ImageButton", {
                    BackgroundTransparency = 1,
                    Image = l_Stylizer_0.badges.refreshButton.icon,
                    Size = UDim2.new(0, l_Stylizer_0.badges.refreshButton.size, 0, l_Stylizer_0.badges.refreshButton.size),
                    Position = UDim2.new(0.5, l_Stylizer_0.badges.refreshButton.offset.x, 0.5, 0),
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    [v1.Event.Activated] = l_RefreshBadges_0
                }, {
                    v1.createElement(l_HoverArea_0, {
                        Cursor = "PointingHand"
                    })
                })
            })
        });
    else
        return nil;
    end;
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v2));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Src.Util.KeyProvider);
local l_getCopyIdKeyName_0 = v1.getCopyIdKeyName;
local l_getEditKeyName_0 = v1.getEditKeyName;
local l_StudioService_0 = game:GetService("StudioService");
local v5 = require(l_Parent_0.Packages.Roact);
local v6 = require(l_Parent_0.Packages.Framework);
local l_GetTextSize_0 = v6.Util.GetTextSize;
local l_UI_0 = v6.UI;
local l_Button_0 = l_UI_0.Button;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_Pane_0 = l_UI_0.Pane;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local l_ContextServices_0 = v6.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v15 = require(l_Parent_0.Src.Components.TableWithMenu);
local v16 = v5.PureComponent:extend(script.Name);
v16.render = function(v17)
    local l_props_0 = v17.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local l_ProductList_0 = l_props_0.ProductList;
    local l_ShowTable_0 = l_props_0.ShowTable;
    local l_CreateNewDevProduct_0 = l_props_0.CreateNewDevProduct;
    local l_OnEditDevProductClicked_0 = l_props_0.OnEditDevProductClicked;
    local l_OnLoadMoreDevProducts_0 = l_props_0.OnLoadMoreDevProducts;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local v27 = l_Localization_0:getText("General", "ButtonCreate");
    local v28 = l_GetTextSize_0(v27, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font);
    return v5.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.XY,
        Layout = Enum.FillDirection.Vertical,
        LayoutOrder = l_LayoutOrder_0,
        Spacing = l_Stylizer_0.devProducts.headerPadding
    }, {
        DevProductsTitle = v5.createElement(l_TitledFrame_0, {
            LayoutOrder = 1,
            Title = l_Localization_0:getText("Monetization", "DevProducts")
        }, {
            Padding = v5.createElement("UIPadding", {
                PaddingRight = UDim.new(0, l_Stylizer_0.devProducts.titlePadding)
            }),
            Layout = v5.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Right,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            CreateButton = v5.createElement(l_Button_0, {
                Style = "GameSettingsPrimaryButton",
                Text = v27,
                Size = UDim2.new(0, v28.X + l_Stylizer_0.createButton.PaddingX, 0, v28.Y + l_Stylizer_0.createButton.PaddingY),
                LayoutOrder = 2,
                OnClick = function()
                    l_CreateNewDevProduct_0();
                end
            }, {
                v5.createElement(l_HoverArea_0, {
                    Cursor = "PointingHand"
                })
            })
        }),
        DeveloperProductTable = l_ShowTable_0 and v5.createElement(v15, {
            Headers = {
                l_Localization_0:getText("Monetization", "ProductID"),
                l_Localization_0:getText("Monetization", "ProductName"),
                l_Localization_0:getText("Monetization", "PriceTitle")
            },
            Data = l_ProductList_0,
            MenuItems = {
                {
                    Key = l_getEditKeyName_0(),
                    Text = l_Localization_0:getText("General", "ButtonEdit")
                },
                {
                    Key = l_getCopyIdKeyName_0(),
                    Text = l_Localization_0:getText("General", "CopyIDToClipboard")
                }
            },
            MenuItemsFilterFunc = function(v29, v30)
                if not tonumber(v29.row[1]) then
                    local v31 = nil;
                    for v32, v33 in pairs(v30) do
                        if v33.Key == l_getCopyIdKeyName_0() then
                            v31 = v32;
                            break;
                        end;
                    end;
                    v30[v31] = nil;
                end;
            end or nil,
            OnItemClicked = function(v34, v35)
                if v34 == l_getEditKeyName_0() then
                    l_OnEditDevProductClicked_0(v35);
                    return ;
                elseif v34 == l_getCopyIdKeyName_0() then
                    l_StudioService_0:CopyToClipboard(v35);
                    return ;
                else
                    error("Invalid Key");
                    return ;
                end;
            end,
            LayoutOrder = 2,
            NextPageFunc = l_OnLoadMoreDevProducts_0
        })
    });
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v16));


local l_StudioService_0 = game:GetService("StudioService");
local l_Parent_0 = script.Parent.Parent;
local l_Parent_1 = script.Parent.Parent.Parent.Parent;
local v3 = require(l_Parent_1.Src.Util.FileUtils);
local v4 = require(l_Parent_1.Src.Util.DEPRECATED_Constants);
local v5 = require(l_Parent_1.Src.Util.DeepMergeTables);
local v6 = require(l_Parent_1.Packages.Cryo);
local v7 = require(l_Parent_1.Packages.RoactRodux);
local v8 = require(l_Parent_1.Packages.Roact);
local v9 = require(l_Parent_1.Src.Components.UploadableIcon.UploadableIconWidget);
local v10 = require(l_Parent_1.Src.Components.Dialog.WarningDialog);
local v11 = require(l_Parent_1.Src.ContextServices.Dialog);
local v12 = require(script.Parent.DevSubListItemText);
local v13 = require(l_Parent_1.Src.Actions.AddChange);
local v14 = require(l_Parent_0.Thunks.AddDevSubKeyChange);
local v15 = require(l_Parent_0.Thunks.DevSubModeration);
local v16 = require(l_Parent_1.Packages.Framework);
local l_ContextServices_0 = v16.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v16.UI;
local l_Button_0 = l_UI_0.Button;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_Image_0 = l_UI_0.Image;
local l_Pane_0 = l_UI_0.Pane;
local l_Separator_0 = l_UI_0.Separator;
local l_SelectInput_0 = l_UI_0.SelectInput;
local l_TextInput_0 = l_UI_0.TextInput;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local l_Util_0 = v16.Util;
local l_GetTextSize_0 = l_Util_0.GetTextSize;
local l_FitFrameOnAxis_0 = l_Util_0.FitFrame.FitFrameOnAxis;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local v32 = v8.Component:extend("DeveloperSubscriptionDetails");
local v33 = game:DefineFastInt("DeveloperSubscriptionsMaxRobuxPrice", 2000);
v32.init = function(v34)
    v34.state = {
        isNameDirty = false
    };
    v34.CheckName = function()
        if v34.state.isNameDirty then
            v34.props.ModerateDevSub(v34.props.DeveloperSubscription);
            return ;
        else
            return ;
        end;
    end;
    v34.onKeyChanged = function(v35, v36)
        local l_DeveloperSubscription_0 = v34.props.DeveloperSubscription;
        v34.props.SetDevSubKey(l_DeveloperSubscription_0.Key, v35, v36);
        l_DeveloperSubscription_0[v35] = v36;
        v34.props.OnDeveloperSubscriptionChanged(l_DeveloperSubscription_0);
    end;
    v34.onNameChanged = function(v38)
        v34.onKeyChanged("Name", v38);
        if not v34.state.isNameDirty then
            v34:setState({
                isNameDirty = true
            });
        end;
    end;
    v34.onNameFocusChanged = function(_)
        v34.CheckName();
    end;
    v34.onPriceChanged = function(v40)
        v34.onKeyChanged("Price", v40);
    end;
    v34.onImageChanged = function(v41)
        v34.onKeyChanged("Image", v41);
    end;
    v34.onPrepaidChanged = function(v42)
        v34.onKeyChanged("Prepaid", v42);
    end;
    v34.onBackButtonActivated = function()
        v34.props.OnEditFinished(false);
    end;
    v34.setImage = function()
        local v43 = v3.PromptForGameIcon(v34, v34.props.Localization);
        if v43 then
            v34.onImageChanged(v43);
        end;
    end;
    v34.onDeleteClicked = function()
        if not v34.props.DeveloperSubscription.IsNew then
            local l_Localization_0 = v34.props.Localization;
            if v34.props.Dialog.showDialog(v10, {
                Title = l_Localization_0:getText("General", "DevSubsDeleteTitle"),
                Header = l_Localization_0:getText("General", "DevSubsDeleteHeader"),
                Description = l_Localization_0:getText("General", "DevSubsDeleteDescription"),
                Buttons = {
                    l_Localization_0:getText("General", "ButtonCancel"),
                    l_Localization_0:getText("General", "DevSubsDeleteConfirm")
                }
            }):await() then
                v34.props.OnDevSubDeleted(v34.props.DeveloperSubscription);
            end;
            return ;
        else
            v34.props.OnDevSubDeleted(v34.props.DeveloperSubscription);
            v34.onBackButtonActivated();
            return ;
        end;
    end;
end;
v32.render = function(v45)
    local l_DeveloperSubscription_1 = v45.props.DeveloperSubscription;
    local l_ModeratedDevSub_0 = v45.props.ModeratedDevSub;
    local l_DevSubErrors_0 = v45.props.DevSubErrors;
    local l_Stylizer_0 = v45.props.Stylizer;
    local l_Localization_1 = v45.props.Localization;
    local v51 = l_DeveloperSubscription_1.IsNew or l_DeveloperSubscription_1.Active;
    local l_IsNew_0 = l_DeveloperSubscription_1.IsNew;
    local v53 = l_LayoutOrderIterator_0.new();
    local v54 = nil;
    local v55 = nil;
    local v56 = nil;
    if v51 then
        if l_DevSubErrors_0.Name then
            if not l_DevSubErrors_0.Name.Empty then
                if not (not l_DevSubErrors_0.Name.Moderated or not l_ModeratedDevSub_0) then
                    v54 = l_Localization_1:getText("General", "ErrorDevSubFiltered", {
                        filteredText = l_ModeratedDevSub_0.filteredName
                    });
                end;
            else
                v54 = l_Localization_1:getText("General", "ErrorNameEmpty");
            end;
        end;
        if not (not l_DeveloperSubscription_1.IsNew or not l_DevSubErrors_0.Price) then
            if not l_DevSubErrors_0.Price.NotANumber then
                if not (not v33 or not l_DevSubErrors_0.Price.AboveMaxRobuxAmount) then
                    v55 = l_Localization_1:getText("General", "ErrorDevSubMaxPrice", {
                        maxRobuxAmount = v33
                    });
                end;
            else
                v55 = l_Localization_1:getText("General", "ErrorDevSubInvalidPrice");
            end;
        end;
        if l_DevSubErrors_0.Image then
            v56 = l_Localization_1:getText("General", "ErrorImageRequired");
        end;
    end;
    local v57 = {
        {
            Id = 6,
            Label = l_Localization_1:getText("General", "DevSubsDuration6Months")
        },
        {
            Id = 12,
            Label = l_Localization_1:getText("General", "DevSubsDuration12Months")
        }
    };
    local v58 = l_GetTextSize_0(l_DeveloperSubscription_1.Id, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font);
    local l_TextSize_0 = l_Stylizer_0.fontStyle.Normal.TextSize;
    return v8.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.Y,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        LayoutOrder = v45.props.LayoutOrder or 1,
        Layout = Enum.FillDirection.Vertical,
        Spacing = UDim.new(0, v4.ELEMENT_PADDING)
    }, {
        HeaderFrame = v8.createElement(l_FitFrameOnAxis_0, {
            LayoutOrder = v53:getNextOrder(),
            BackgroundTransparency = 1,
            axis = l_FitFrameOnAxis_0.Axis.Vertical,
            minimumSize = UDim2.new(1, 0, 0, 0),
            contentPadding = UDim.new(0, l_Stylizer_0.settingsPage.headerPadding)
        }, {
            BackButton = v8.createElement("ImageButton", {
                Size = UDim2.new(0, l_Stylizer_0.backButton.size, 0, l_Stylizer_0.backButton.size),
                LayoutOrder = 0,
                Image = l_Stylizer_0.backButton.image,
                BackgroundTransparency = 1,
                [v8.Event.Activated] = function()
                    v45.onBackButtonActivated();
                end
            }, {
                v8.createElement(l_HoverArea_0, {
                    Cursor = "PointingHand"
                })
            }),
            v8.createElement(l_Separator_0, {
                LayoutOrder = 1
            }),
            Header = v8.createElement("TextLabel", v6.Dictionary.join(l_Stylizer_0.fontStyle.Title, {
                Size = UDim2.new(1, 0, 0, v4.HEADER_HEIGHT),
                Text = not not l_DeveloperSubscription_1.IsNew and l_Localization_1:getText("General", "DevSubsNewHeader") or l_Localization_1:getText("General", "DevSubsEditHeader"),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Center,
                LayoutOrder = 2
            }), {
                Padding = v8.createElement("UIPadding", {
                    PaddingRight = UDim.new(0, 12)
                }),
                Layout = v8.createElement("UIListLayout", {
                    HorizontalAlignment = Enum.HorizontalAlignment.Right,
                    VerticalAlignment = Enum.VerticalAlignment.Bottom
                }),
                Button = v8.createElement(l_Button_0, {
                    Text = l_Localization_1:getText("General", "DevSubsDeleteAction"),
                    OnClick = v45.onDeleteClicked,
                    Style = "Round"
                })
            })
        }),
        IdFrame = not l_IsNew_0 and v8.createElement(l_TitledFrame_0, {
            LayoutOrder = v53:getNextOrder(),
            Title = l_Localization_1:getText("General", "DevSubsId")
        }, {
            Layout = v8.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Top
            }),
            Text = v8.createElement(v12, {
                Text = l_DeveloperSubscription_1.Id,
                Size = UDim2.new(0, v58.X, 0.5, 0),
                Alignment = Enum.TextXAlignment.Left,
                LayoutOrder = 1
            }),
            Button = v8.createElement("ImageButton", {
                BackgroundTransparency = 1,
                Image = l_Stylizer_0.copyButton.image,
                ImageColor3 = l_Stylizer_0.copyButton.imageColor,
                Size = UDim2.new(0, 16, 0, 16),
                SizeConstraint = Enum.SizeConstraint.RelativeYY,
                LayoutOrder = 2,
                [v8.Event.Activated] = function()
                    l_StudioService_0:CopyToClipboard(l_DeveloperSubscription_1.Id);
                end
            })
        }),
        NameFrame = v8.createElement(l_TitledFrame_0, {
            LayoutOrder = v53:getNextOrder(),
            Title = l_Localization_1:getText("General", "DevSubsName")
        }, {
            TextBox = v8.createElement(l_TextInput_0, {
                Disabled = not v51,
                ErrorText = v54,
                MaxLength = 32,
                OnTextChanged = v45.onNameChanged,
                OnFocusLost = v45.onNameFocusChanged,
                Text = l_DeveloperSubscription_1.Name or ""
            })
        }),
        Image = not not v51 and v8.createElement(v9, {
            Title = l_Localization_1:getText("General", "DevSubsImage"),
            Enabled = true,
            Icon = l_DeveloperSubscription_1.Image,
            LayoutOrder = v53:getNextOrder(),
            TutorialEnabled = false,
            ErrorMessage = v56,
            AddIcon = v45.setImage
        }) or v8.createElement(l_TitledFrame_0, {
            LayoutOrder = v53:getNextOrder(),
            Title = l_Localization_1:getText("General", "DevSubsImage")
        }, {
            Image = v8.createElement("ImageLabel", {
                Image = l_DeveloperSubscription_1.Image,
                Size = UDim2.new(0, 150, 0, 150)
            })
        }),
        PriceFrame = v8.createElement(l_TitledFrame_0, {
            LayoutOrder = v53:getNextOrder(),
            Title = l_Localization_1:getText("General", "DevSubsPrice")
        }, {
            Input = v8.createElement(l_TextInput_0, {
                Disabled = not l_DeveloperSubscription_1.IsNew,
                ErrorText = v55,
                MaxLength = 50000,
                OnTextChanged = v45.onPriceChanged,
                Text = tostring(l_DeveloperSubscription_1.Price),
                Size = UDim2.new(0, 200, 0, 32),
                LeadingComponent = l_Image_0,
                LeadingComponentProps = {
                    Size = UDim2.new(0, l_TextSize_0, 0, l_TextSize_0),
                    Image = l_Stylizer_0.robuxFeeBase.icon.image,
                    ImageColor3 = Color3.fromRGB(25, 25, 25)
                }
            })
        }),
        PrepaidFrame = v8.createElement(l_TitledFrame_0, {
            LayoutOrder = v53:getNextOrder(),
            Title = l_Localization_1:getText("General", "DevSubsDuration")
        }, {
            Selector = v8.createElement(l_SelectInput_0, {
                Items = v57,
                Enabled = l_DeveloperSubscription_1.Prepaid ~= nil,
                SelectedId = l_DeveloperSubscription_1.Prepaid,
                OnItemActivated = function(v60)
                    v45.onPrepaidChanged(v60.Id);
                end
            })
        }),
        EarningFrame = not l_IsNew_0 and v8.createElement(l_TitledFrame_0, {
            LayoutOrder = v53:getNextOrder(),
            Title = l_Localization_1:getText("General", "DevSubsPendingEarning")
        }, {
            Text = v8.createElement(v12, {
                Text = tostring(l_DeveloperSubscription_1.PendingEarning),
                Size = UDim2.new(1, 0, 0.5, 0),
                Alignment = Enum.TextXAlignment.Left
            })
        })
    });
end;
v32 = l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization,
    Dialog = v11
})(v32);
local v61 = require(l_Parent_1.Src.Networking.settingFromState);
return v7.connect(function(v62, _)
    local l_Errors_0 = v62.Settings.Errors;
    local v65 = (v62.Settings.Current or {}).DeveloperSubscriptions or {};
    local v66 = (v62.Settings.Changed or {}).DeveloperSubscriptions or {};
    local function _(v67)
        return v61(v62.Settings, v67);
    end;
    local v69 = v5.Merge(v65, v66) or {};
    local v70 = v61(v62.Settings, "editedSubscriptionKey");
    return {
        DeveloperSubscription = v69[v70],
        ModeratedDevSubs = v62.DevSubModeration or {},
        DevSubErrors = (l_Errors_0.DeveloperSubscriptions or {})[v70] or {}
    };
end, function(v71)
    return {
        OnEditFinished = function()
            v71(v13("isEditingSubscription", false));
            v71(v13("editedSubscriptionKey", nil));
        end,
        OnDevSubDeleted = function(v72)
            if not v72.IsNew then
                v71(v14(v72.Key, "Active", false));
            end;
        end,
        ModerateDevSub = function(v73)
            v71(v15(v73));
        end
    };
end)(v32);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Framework);
local l_GetTextSize_0 = v4.Util.GetTextSize;
local l_UI_0 = v4.UI;
local l_Button_0 = l_UI_0.Button;
local l_Pane_0 = l_UI_0.Pane;
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v11 = require(script.Parent.DevSubListItem);
local v12 = require(script.Parent.DevSubListHeaderText);
local v13 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v14 = require(l_Parent_0.Src.Util.DeepMergeTables);
local v15 = require(l_Parent_0.Src.Actions.AddChange);
local v16 = v1.Component:extend("DeveloperSubscriptionList");
v16.render = function(v17)
    local l_DeveloperSubscriptions_0 = v17.props.DeveloperSubscriptions;
    local l_OnDeveloperSubscriptionEdited_0 = v17.props.OnDeveloperSubscriptionEdited;
    local l_OnDeveloperSubscriptionCreated_0 = v17.props.OnDeveloperSubscriptionCreated;
    local v21 = v17.props.ListItemHeight or 32;
    local l_Stylizer_0 = v17.props.Stylizer;
    local l_Localization_0 = v17.props.Localization;
    local l_LayoutOrder_0 = v17.props.LayoutOrder;
    local v25 = l_GetTextSize_0(l_Localization_0:getText("General", "DevSubsCreateAction"), l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font);
    local v26 = {
        Header = v1.createElement("TextLabel", v2.Dictionary.join(l_Stylizer_0.fontStyle.Title, {
            Size = UDim2.new(1, 0, 0, v13.HEADER_HEIGHT),
            Text = l_Localization_0:getText("General", "DevSubsListHeader"),
            TextColor3 = Color3.fromRGB(170, 170, 170),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            LayoutOrder = 0
        }), {
            Padding = v1.createElement("UIPadding", {
                PaddingRight = UDim.new(0, 12)
            }),
            Layout = v1.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Right,
                VerticalAlignment = Enum.VerticalAlignment.Bottom
            }),
            CreateButton = v1.createElement(l_Button_0, {
                Style = "GameSettingsPrimaryButton",
                Text = l_Localization_0:getText("General", "DevSubsCreateAction"),
                Size = UDim2.new(0, v25.X + l_Stylizer_0.createButton.PaddingX, 0, v25.Y + l_Stylizer_0.createButton.PaddingY),
                OnClick = l_OnDeveloperSubscriptionCreated_0
            })
        }),
        ListHeader = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v21),
            LayoutOrder = 1
        }, {
            Padding = v1.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 4),
                PaddingRight = UDim.new(0, 24)
            }),
            Layout = v1.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal
            }),
            IdText = v1.createElement(v12, {
                Size = UDim2.new(0.25, 0, 1, 0),
                Text = l_Localization_0:getText("General", "DevSubsPlanID"),
                LayoutOrder = 1,
                Alignment = Enum.TextXAlignment.Left
            }),
            NameText = v1.createElement(v12, {
                Size = UDim2.new(0.25, 0, 1, 0),
                Text = l_Localization_0:getText("General", "DevSubsName"),
                LayoutOrder = 2,
                Alignment = Enum.TextXAlignment.Left
            }),
            SubscribersText = v1.createElement(v12, {
                Size = UDim2.new(0.2, 0, 1, 0),
                Text = l_Localization_0:getText("General", "DevSubsSubscribers"),
                LayoutOrder = 3,
                Alignment = Enum.TextXAlignment.Left
            }),
            CreationDateText = v1.createElement(v12, {
                Size = UDim2.new(0.2, 0, 1, 0),
                Text = l_Localization_0:getText("General", "DevSubsCreationDate"),
                LayoutOrder = 4,
                Alignment = Enum.TextXAlignment.Left
            })
        })
    };
    local v27 = {};
    for _, v29 in pairs(l_DeveloperSubscriptions_0) do
        table.insert(v27, v29);
    end;
    table.sort(v27, function(v30, v31)
        if v30.Active ~= v31.Active then
            if not v30.Active then
                if v31.Active then
                    return false;
                end;
            else
                return true;
            end;
        end;
        return v30.Key:upper() < v31.Key:upper();
    end);
    local v32 = 1;
    for _, v34 in ipairs(v27) do
        v26[v34.Key] = v1.createElement(v11, {
            Name = v34.Name or "",
            Id = v34.Id,
            Subscribers = v34.Subscribers,
            Active = v34.Active,
            LayoutOrder = v32 + 1,
            OnEditButtonActivated = function()
                l_OnDeveloperSubscriptionEdited_0(v34);
            end,
            Height = v21,
            HasError = v17.props.DevSubsErrors[v34.Key] ~= nil,
            CreationDate = v34.CreationDate or ""
        });
        v32 = v32 + 1;
    end;
    v26.Space = v1.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, 0),
        LayoutOrder = v32 + 1
    });
    return v1.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Vertical,
        LayoutOrder = l_LayoutOrder_0,
        AutomaticSize = Enum.AutomaticSize.Y,
        Spacing = UDim.new(0, 10)
    }, v26);
end;
return v3.connect(function(v35, _)
    return {
        DeveloperSubscriptions = v14.Merge((v35.Settings.Current or {}).DeveloperSubscriptions or {}, (v35.Settings.Changed or {}).DeveloperSubscriptions or {}) or {},
        ModeratedDevSubs = v35.DevSubModeration or {},
        DevSubsErrors = v35.Settings.Errors.DeveloperSubscriptions or {}
    };
end, function(v37)
    return {
        OnDeveloperSubscriptionEdited = function(v38)
            v37(v15("isEditingSubscription", true));
            v37(v15("editedSubscriptionKey", v38.Key));
        end
    };
end)((l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v16)));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v5 = v1.Component:extend("DeveloperSubscriptionListHeaderText");
v5.render = function(v6)
    return v1.createElement("TextLabel", v2.Dictionary.join(v6.props.Stylizer.fontStyle.Normal, {
        Size = v6.props.Size,
        Text = v6.props.Text,
        LayoutOrder = v6.props.LayoutOrder,
        TextXAlignment = v6.props.Alignment,
        BackgroundTransparency = 1,
        BorderSizePixel = 0
    }));
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v5));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Parent_1 = script.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Cryo);
local v4 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v5 = require(l_Parent_1.Util.numberWithCommas);
local v6 = require(script.Parent.DevSubListItemText);
local v7 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v7.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Util_0 = v7.Util;
local l_FitTextLabel_0 = l_Util_0.FitFrame.FitTextLabel;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local l_HoverArea_0 = v7.UI.HoverArea;
local v14 = v2.Component:extend("DeveloperSubscriptionListItem");
v14.render = function(v15)
    local l_Height_0 = v15.props.Height;
    local l_LayoutOrder_0 = v15.props.LayoutOrder;
    local l_Name_0 = v15.props.Name;
    local l_Subscribers_0 = v15.props.Subscribers;
    local l_Id_0 = v15.props.Id;
    local l_CreationDate_0 = v15.props.CreationDate;
    local l_OnEditButtonActivated_0 = v15.props.OnEditButtonActivated;
    local l_Stylizer_0 = v15.props.Stylizer;
    local l_Localization_0 = v15.props.Localization;
    local v25 = l_LayoutOrderIterator_0.new();
    return v2.createElement("ImageLabel", {
        Size = UDim2.new(1, 0, 0, l_Height_0),
        LayoutOrder = l_LayoutOrder_0,
        BackgroundTransparency = 1,
        Image = v4.ROUNDED_BACKGROUND_IMAGE,
        ImageTransparency = 0,
        ImageColor3 = l_Stylizer_0.table.item.background,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = v4.ROUNDED_FRAME_SLICE
    }, {
        DetailsFrame = v2.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1, 0)
        }, {
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 4),
                PaddingRight = UDim.new(0, 24)
            }),
            Layout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal
            }),
            IdText = v2.createElement(v6, {
                Size = UDim2.new(0.25, 0, 1, 0),
                Text = l_Id_0 ~= -1 and l_Id_0 or l_Localization_0:getText("Monetization", "UnsavedDevProduct"),
                LayoutOrder = v25:getNextOrder(),
                Alignment = Enum.TextXAlignment.Left
            }),
            NameText = v2.createElement(v6, {
                Size = UDim2.new(0.25, 0, 1, 0),
                Text = l_Name_0,
                LayoutOrder = v25:getNextOrder(),
                Alignment = Enum.TextXAlignment.Left
            }),
            SubscribersText = v2.createElement(v6, {
                Size = UDim2.new(0.2, 0, 1, 0),
                Text = v5(l_Subscribers_0),
                LayoutOrder = v25:getNextOrder(),
                Alignment = Enum.TextXAlignment.Left
            }),
            CreationDateText = v2.createElement(v6, {
                Size = UDim2.new(0.2, 0, 1, 0),
                Text = l_CreationDate_0:sub(0, 10),
                LayoutOrder = v25:getNextOrder(),
                Alignment = Enum.TextXAlignment.Left
            }),
            EditFrame = v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(0.1, 0, 1, 0),
                LayoutOrder = v25:getNextOrder()
            }, {
                Button = v2.createElement("ImageButton", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(0, l_Stylizer_0.table.menu.buttonSize, 0, l_Stylizer_0.table.menu.buttonSize),
                    AnchorPoint = Vector2.new(1, 0.5),
                    Position = UDim2.new(1, 0, 0.5, 0),
                    [v2.Event.Activated] = l_OnEditButtonActivated_0
                }, {
                    Dots = v2.createElement(l_FitTextLabel_0, v3.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
                        Position = UDim2.new(0.5, 0, 0.5, 0),
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Text = "...",
                        Font = Enum.Font.SourceSansBold,
                        BackgroundTransparency = 1,
                        width = l_Stylizer_0.table.menu.buttonSize
                    }));
                    v2.createElement(l_HoverArea_0, {
                        Cursor = "PointingHand"
                    })
                })
            })
        }),
        ErrorIcon = v15.props.HasError and v2.createElement("ImageButton", {
            BackgroundTransparency = 1,
            Image = v4.ERROR_IMAGE,
            Size = UDim2.new(0, 16, 0, 16),
            Position = UDim2.new(1, -16, 0, 16),
            AnchorPoint = Vector2.new(0.5, 0.5)
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v14));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v5 = v1.Component:extend("DeveloperSubscriptionListItemText");
v5.render = function(v6)
    return v1.createElement("TextLabel", v2.Dictionary.join(v6.props.Stylizer.fontStyle.Normal, {
        Size = v6.props.Size,
        Text = v6.props.Text,
        LayoutOrder = v6.props.LayoutOrder,
        TextXAlignment = v6.props.Alignment,
        BackgroundTransparency = 1,
        BorderSizePixel = 0
    }));
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v5));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Cryo);
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Framework);
local v4 = require(l_Parent_0.Src.Flags.getFFlagGameSettingsFixMoreLayoutIssues)();
local l_Util_0 = v3.Util;
local l_GetTextSize_0 = l_Util_0.GetTextSize;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local l_UI_0 = v3.UI;
local l_Image_0 = l_UI_0.Image;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_TextInput_0 = l_UI_0.TextInput;
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v15 = v2.PureComponent:extend("RobuxFeeBase");
v15.render = function(v16)
    local l_props_0 = v16.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local v20 = l_LayoutOrderIterator_0.new();
    local v21 = not not l_props_0.TaxRate and l_props_0.TaxRate or 0.9;
    local v22 = type(l_props_0.Price) == "number" and l_props_0.Price or 0;
    local v23 = v22 > 0 and l_props_0.MinimumFee or 0;
    local v24 = string.format("%.f", v22);
    local l_SubText_0 = l_props_0.SubText;
    local l_Enabled_0 = l_props_0.Enabled;
    local l_OnPriceChanged_0 = l_props_0.OnPriceChanged;
    local v28 = l_Localization_0:getText("Monetization", "MarketplaceFee");
    local v29 = l_GetTextSize_0(v28, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font);
    local v30 = l_Localization_0:getText("Monetization", "MarketplaceFeeIs", {
        string.format("%2d", v21 * 100)
    });
    local v31 = if not v4 then l_GetTextSize_0(v30, l_Stylizer_0.fontStyle.Subtext.TextSize, l_Stylizer_0.fontStyle.Subtext.Font, Vector2.new(l_Stylizer_0.robuxFeeBase.subText.width, math.huge)) else nil;
    local v32 = math.max(v23, (math.ceil(v22 * v21)));
    local v33 = string.format("%.f", v32);
    local v34 = l_Localization_0:getText("Monetization", "EarnLabel");
    local v35 = l_GetTextSize_0(v34, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font);
    local v36 = string.format("%.f", v22 - v32 > 0 and v22 - v32 or 0);
    local v37 = not l_SubText_0 or l_props_0.ShowPriceChangeWarning;
    local v38 = not not l_Enabled_0 and l_Stylizer_0.robuxFeeBase.transparency.enabled or l_Stylizer_0.robuxFeeBase.transparency.disabled;
    return v2.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.XY,
        Layout = Enum.FillDirection.Vertical,
        Spacing = if not v4 then nil else l_Stylizer_0.robuxFeeBase.pricePadding,
        HorizontalAlignment = if not v4 then nil else Enum.HorizontalAlignment.Left
    }, {
        TextInput = v2.createElement(l_TextInput_0, {
            BottomText = l_SubText_0,
            Disabled = not l_Enabled_0,
            LayoutOrder = 0,
            LeadingComponent = l_Image_0,
            LeadingComponentProps = {
                ImageColor3 = l_Stylizer_0.robuxFeeBase.icon.imageColor,
                Image = l_Stylizer_0.robuxFeeBase.icon.image,
                Size = UDim2.new(0, l_Stylizer_0.robuxFeeBase.icon.size, 0, l_Stylizer_0.robuxFeeBase.icon.size)
            },
            OnTextChanged = l_OnPriceChanged_0,
            Width = l_Stylizer_0.robuxFeeBase.priceField.width,
            Text = v24
        }),
        FeeFrame = v37 and v2.createElement(not v4 and "Frame" or l_Pane_0, if not v4 then {
            Size = UDim2.new(1, 0, 0, l_Stylizer_0.rowHeight),
            BackgroundTransparency = 1,
            LayoutOrder = v20:getNextOrder()
        } else {
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = v20:getNextOrder(),
            Layout = Enum.FillDirection.Horizontal,
            Spacing = l_Stylizer_0.robuxFeeBase.spacing
        }, {
            HorizontalLayout = if not v4 then v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }) else nil,
            FeeLabel = if not v4 then v2.createElement("TextLabel", v1.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
                Size = UDim2.new(0, v29.X, 1, 0),
                BackgroundTransparency = 1,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextTransparency = v38,
                Text = v28,
                LayoutOrder = 1
            })) else v2.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 1,
                Text = v28
            }),
            RobuxIcon = v2.createElement("ImageLabel", {
                Size = UDim2.new(0, l_Stylizer_0.robuxFeeBase.icon.size, 0, l_Stylizer_0.robuxFeeBase.icon.size),
                ImageColor3 = l_Stylizer_0.robuxFeeBase.icon.imageColor,
                Image = l_Stylizer_0.robuxFeeBase.icon.image,
                ImageTransparency = v38,
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }),
            FeeAmount = if not v4 then v2.createElement("TextLabel", v1.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
                Size = UDim2.new(1, 0, 0, l_Stylizer_0.rowHeight),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextTransparency = v38,
                Text = v33,
                LayoutOrder = 3
            })) else v2.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 3,
                Text = v33
            })
        }),
        FeeSubText = v37 and if v4 then v2.createElement(l_TextLabel_0, {
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = v20:getNextOrder(),
            Style = "Label",
            Text = v30,
            TextWrapped = true
        }) else v2.createElement("TextLabel", v1.Dictionary.join(l_Stylizer_0.fontStyle.Subtext, {
            Size = UDim2.new(0, math.ceil(v31.X), 0, v31.Y),
            BackgroundTransparency = 1,
            Text = v30,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextWrapped = true,
            LayoutOrder = v20:getNextOrder()
        })),
        EarnFrame = v37 and v2.createElement(not v4 and "Frame" or l_Pane_0, if not v4 then {
            Size = UDim2.new(1, 0, 0, l_Stylizer_0.rowHeight),
            BackgroundTransparency = 1,
            LayoutOrder = v20:getNextOrder()
        } else {
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = v20:getNextOrder(),
            Layout = Enum.FillDirection.Horizontal,
            Spacing = l_Stylizer_0.robuxFeeBase.spacing
        }, {
            HorizontalLayout = if not v4 then v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }) else nil,
            EarnLabel = if not v4 then v2.createElement("TextLabel", v1.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
                Size = UDim2.new(0, v35.X, 1, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextTransparency = v38,
                Text = v34,
                LayoutOrder = 1
            })) else v2.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 1,
                Text = v34
            }),
            RobuxIcon = v2.createElement("ImageLabel", {
                Size = UDim2.new(0, l_Stylizer_0.robuxFeeBase.icon.size, 0, l_Stylizer_0.robuxFeeBase.icon.size),
                ImageColor3 = l_Stylizer_0.robuxFeeBase.icon.imageColor,
                Image = l_Stylizer_0.robuxFeeBase.icon.image,
                ImageTransparency = v38,
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }),
            EarnAmount = if not v4 then v2.createElement("TextLabel", v1.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
                Size = UDim2.new(1, 0, 0, l_Stylizer_0.rowHeight),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextTransparency = v38,
                Text = v36,
                LayoutOrder = 3
            })) else v2.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 3,
                Text = v36,
                TextTransparency = v38
            })
        })
    });
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v15));


local v0 = game:DefineFastInt("MaxNameLength", 50);
local v1 = game:DefineFastInt("PaidAccessMinPrice", 25);
local v2 = game:DefineFastInt("PaidAccessMaxPrice", 1000);
local v3 = game:DefineFastInt("PrivateServersMinPrice", 10);
local v4 = game:DefineFastInt("DevProductsMinPrice", 1);
local v5 = game:DefineFastInt("DevProductsMaxPrice", 1000000000);
local v6 = game:DefineFastInt("DeveloperSubscriptionsMaxRobuxPrice", 2000);
local l_Parent_0 = script.Parent;
local l_Parent_1 = script.Parent.Parent.Parent;
local v9 = require(l_Parent_1.Packages.Roact);
local v10 = require(l_Parent_1.Packages.RoactRodux);
local v11 = require(l_Parent_1.Packages.Cryo);
local v12 = require(l_Parent_1.Packages.Framework);
local l_Util_0 = v12.Util;
local l_ContextServices_0 = v12.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v16 = require(l_Parent_1.Src.Components.Header);
local v17 = require(l_Parent_0.Components.PaidAccess);
local v18 = require(l_Parent_0.Components.VIPServers);
local v19 = require(l_Parent_0.Components.DevProducts);
local v20 = require(l_Parent_1.Src.Components.SettingsPages.SettingsPage);
local v21 = require(l_Parent_0.Components.DevSubList);
local v22 = require(l_Parent_0.Components.DevSubDetails);
local v23 = require(l_Parent_0.Components.Badges);
local l_UI_0 = v12.UI;
local l_Container_0 = l_UI_0.Container;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_Image_0 = l_UI_0.Image;
local l_LoadingIndicator_0 = l_UI_0.LoadingIndicator;
local l_Separator_0 = l_UI_0.Separator;
local l_TextInput_0 = l_UI_0.TextInput;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local l_FitFrameOnAxis_0 = l_Util_0.FitFrame.FitFrameOnAxis;
local l_GetTextSize_0 = l_Util_0.GetTextSize;
local v35 = require(l_Parent_1.Src.Components.AutoThumbnails.BadgeIconThumbnail);
local v36 = require(l_Parent_1.Src.Actions.AddChange);
local v37 = require(l_Parent_1.Src.Actions.AddErrors);
local v38 = require(l_Parent_1.Src.Actions.DiscardError);
local v39 = require(l_Parent_1.Src.Actions.SetEditDevProductId);
local v40 = require(l_Parent_1.Src.Actions.SetComponentLoadState);
local v41 = require(l_Parent_0.Thunks.LoadDeveloperProducts);
local v42 = require(l_Parent_0.Thunks.LoadBadges);
local v43 = require(l_Parent_0.Thunks.AddDevSubKeyChange);
local v44 = require(l_Parent_0.Thunks.AddDevSubKeyError);
local v45 = require(l_Parent_0.Thunks.AddDevSubChange);
local v46 = require(l_Parent_1.Src.Util.LoadState);
local l_shouldAllowBadges_0 = require(l_Parent_1.Src.Util.GameSettingsUtilities).shouldAllowBadges;
local l_HttpService_0 = game:GetService("HttpService");
local v49 = require(l_Parent_0.FFlagDeveloperSubscriptionsEnabled);
local v50 = v9.PureComponent:extend(script.Name);
local l_Name_0 = script.Name;
local v52 = {
    BelowMin = "ErrorPriceBelowMin",
    AboveMax = "ErrorPriceAboveMax",
    Invalid = "ErrorPriceInvalid"
};
local v53 = {
    Empty = "ErrorNameEmpty"
};
local v54 = "";
local v55 = require(l_Parent_1.Src.Util.KeyProvider);
local l_getIsFriendOnlyKeyName_0 = v55.getIsFriendOnlyKeyName;
local l_getIsActiveKeyName_0 = v55.getIsActiveKeyName;
local l_getIsForSaleKeyName_0 = v55.getIsForSaleKeyName;
local l_getVipServersIsEnabledKeyName_0 = v55.getVipServersIsEnabledKeyName;
local function v86(v60, v61)
    local v62 = v60:getState();
    local l_gameId_0 = v62.Metadata.gameId;
    local l_monetizationController_0 = v61.monetizationController;
    local l_devSubsController_0 = v61.devSubsController;
    local l_gamePermissionsController_0 = v61.gamePermissionsController;
    local v82 = {
        function(v67)
            v67.taxRate = l_monetizationController_0:getTaxRate();
        end,
        function(v68)
            v68.minimumFee = l_monetizationController_0:getMinimumFee();
        end,
        function(v69)
            v69[l_getIsForSaleKeyName_0()] = l_monetizationController_0:getPaidAccessEnabled(l_gameId_0);
        end,
        function(v70)
            v70.price = l_monetizationController_0:getPaidAccessPrice(l_gameId_0);
        end,
        function(v71)
            v71[l_getVipServersIsEnabledKeyName_0()] = l_monetizationController_0:getVIPServersEnabled(l_gameId_0);
        end,
        function(v72)
            local v73 = l_monetizationController_0:getVIPServersPrice(l_gameId_0);
            v72.vipServersPrice = not not v73 and v73 or 0;
        end,
        function(v74)
            v74.vipServersActiveServersCount = l_monetizationController_0:getVIPServersActiveServersCount(l_gameId_0);
        end,
        function(v75)
            v75.vipServersActiveSubscriptionsCount = l_monetizationController_0:getVIPServersActiveSubscriptionsCount(l_gameId_0);
        end,
        function(v76)
            local v77, v78 = l_monetizationController_0:getDeveloperProducts(l_gameId_0);
            v76.developerProducts = v77;
            v76.devProductsCursor = v78;
        end,
        function(v79)
            if v49 then
                v79.DeveloperSubscriptions = l_devSubsController_0:getDevSubs(l_gameId_0, true);
                return ;
            else
                return ;
            end;
        end,
        function(v80)
            if v62.Settings.Current[l_getIsActiveKeyName_0()] == nil then
                v80[l_getIsActiveKeyName_0()] = l_gamePermissionsController_0:isActive(l_gameId_0);
            end;
        end,
        function(v81)
            if v62.Settings.Current[l_getIsFriendOnlyKeyName_0()] == nil then
                v81[l_getIsFriendOnlyKeyName_0()] = l_gamePermissionsController_0:isFriendsOnly(l_gameId_0);
            end;
        end
    };
    table.insert(v82, function(v83)
        if l_shouldAllowBadges_0() then
            local v84, v85 = l_monetizationController_0:getBadges(l_gameId_0);
            v83.badges = v84;
            v83.badgesCursor = v85;
        end;
    end);
    return v82;
end;
local function v108(v87, v88)
    local v89 = v87:getState();
    local l_gameId_1 = v89.Metadata.gameId;
    local l_monetizationController_1 = v88.monetizationController;
    local l_devsubs_0 = v88.devsubs;
    local l_unsavedDevProducts_0 = v89.Settings.Changed.unsavedDevProducts;
    local l_editedDeveloperProducts_0 = v89.Settings.Changed.editedDeveloperProducts;
    local l_DeveloperSubscriptions_0 = v89.Settings.Current.DeveloperSubscriptions;
    local v96 = v89.Settings.Changed.DeveloperSubscriptions or {};
    local v101 = {
        function()
            local l_isForSale_0 = v89.Settings.Changed.isForSale;
            if l_isForSale_0 ~= nil then
                l_monetizationController_1:setPaidAccessEnabled(l_gameId_1, l_isForSale_0);
            end;
        end,
        function()
            local l_price_0 = v89.Settings.Changed.price;
            if l_price_0 ~= nil then
                l_monetizationController_1:setPaidAccessPrice(l_gameId_1, l_price_0);
            end;
        end,
        function()
            local l_vipServersIsEnabled_0 = v89.Settings.Changed.vipServersIsEnabled;
            if l_vipServersIsEnabled_0 ~= nil then
                l_monetizationController_1:setVIPServersEnabled(l_gameId_1, l_vipServersIsEnabled_0);
            end;
        end,
        function()
            local l_vipServersPrice_0 = v89.Settings.Changed.vipServersPrice;
            if l_vipServersPrice_0 ~= nil then
                l_monetizationController_1:setVIPServersPrice(l_gameId_1, l_vipServersPrice_0);
            end;
        end
    };
    if l_unsavedDevProducts_0 ~= nil then
        for _, v103 in pairs(l_unsavedDevProducts_0) do
            table.insert(v101, function()
                l_monetizationController_1:createDevProduct(l_gameId_1, v103);
            end);
        end;
    end;
    if l_editedDeveloperProducts_0 ~= nil then
        for _, v105 in pairs(l_editedDeveloperProducts_0) do
            table.insert(v101, function()
                l_monetizationController_1:updateDevProduct(l_gameId_1, v105);
            end);
        end;
    end;
    if v49 and v96 ~= nil then
        for v106, v107 in pairs(v96) do
            if not v107.IsNew then
                if v107.Active == false then
                    table.insert(v101, function()
                        l_devsubs_0:discontinueDevSub(l_DeveloperSubscriptions_0[v106]);
                    end);
                else
                    table.insert(v101, function()
                        l_devsubs_0:changeDevSub(l_DeveloperSubscriptions_0[v106], v107);
                    end);
                end;
            else
                table.insert(v101, function()
                    l_devsubs_0:createDevSub(l_gameId_1, v107);
                end);
            end;
        end;
    end;
    return v101;
end;
local function v114(v109, v110)
    local l_Errors_0 = v110.Settings.Errors;
    local v112 = false;
    local v113 = v110.Settings.Changed.vipServersIsEnabled == false;
    if v110.Settings.Current.vipServersIsEnabled and v110.Settings.Changed.vipServersPrice ~= nil then
        v112 = true;
    end;
    return {
        TaxRate = v109("taxRate"),
        MinimumFee = v109("minimumFee"),
        PaidAccess = {
            enabled = v109(l_getIsForSaleKeyName_0()),
            price = v109("price"),
            initialPrice = not not v110.Settings.Current.price and v110.Settings.Current.price or 0
        },
        VIPServers = {
            isEnabled = v109(l_getVipServersIsEnabledKeyName_0()),
            price = v109("vipServersPrice"),
            initialPrice = not not v110.Settings.Current.vipServersPrice and v110.Settings.Current.vipServersPrice or 0,
            activeServersCount = v109("vipServersActiveServersCount"),
            activeSubscriptionsCount = v109("vipServersActiveSubscriptionsCount"),
            changed = v112,
            willShutdown = v113
        },
        UnsavedDevProducts = v109("unsavedDevProducts"),
        DevProducts = v110.Settings.Current.developerProducts,
        EditedDevProducts = v110.Settings.Changed.editedDeveloperProducts,
        EditDevProductId = v110.EditAsset.editDevProductId,
        AccessPriceError = l_Errors_0.monetizationPrice,
        DevProductPriceError = l_Errors_0.devProductPrice,
        DevProductNameError = l_Errors_0.devProductName,
        isEditingSubscription = v109("isEditingSubscription"),
        editedSubscriptionKey = v109("editedSubscriptionKey"),
        Badges = v110.Settings.Current.badges,
        BadgeLoadState = v110.ComponentLoadState.Badges,
        isPublic = v109(l_getIsActiveKeyName_0()) and not v109(l_getIsFriendOnlyKeyName_0()),
        isInitiallyEnabled = (not v110.Settings.Current[l_getIsActiveKeyName_0()] or v110.Settings.Current[l_getIsFriendOnlyKeyName_0()]) and (v110.Settings.Current[l_getIsForSaleKeyName_0()] or v110.Settings.Current[l_getVipServersIsEnabledKeyName_0()])
    };
end;
local function v120(v115, v116, v117, v118)
    if v117 == "Name" and (not (v118 ~= "") or v118 == nil) then
        v115(v44(v116, v117, {
            Empty = "Name can't be empty"
        }));
        return ;
    else
        if v117 == "Price" then
            local v119 = tonumber(v118);
            if not v119 or v119 <= 0 then
                v115(v44(v116, v117, {
                    NotANumber = "Price needs to be a valid number"
                }));
                return ;
            elseif v6 and v6 < v119 then
                v115(v44(v116, v117, {
                    AboveMaxRobuxAmount = "Price must be less than a certain amount"
                }));
                return ;
            end;
        elseif v117 == "Image" and (not (v118 ~= nil) or v118 == "None") then
            v115(v44(v116, v117, {
                Empty = "Image can't be empty"
            }));
        end;
        return ;
    end;
end;
local function _(v121, v122)
    v120(v121, v122.Key, "Name", v122.Name);
    v120(v121, v122.Key, "Image", v122.Image);
    v120(v121, v122.Key, "Price", v122.Price);
end;
local function v152(_, v125)
    return {
        PaidAccessToggled = function(v126, v127)
            v125(v36("price", v127));
            v125(v38("monetizationPrice"));
            v125(v36(l_getIsForSaleKeyName_0(), v126));
        end,
        PaidAccessPriceChanged = function(v128)
            local v129 = tonumber(v128);
            v125(v36("price", v129));
            v125(v38("monetizationPrice"));
            if v129 then
                if v129 < v1 then
                    v125(v37({
                        monetizationPrice = "BelowMin"
                    }));
                    return ;
                else
                    if v2 < v129 then
                        v125(v37({
                            monetizationPrice = "AboveMax"
                        }));
                    end;
                    return ;
                end;
            else
                v125(v37({
                    monetizationPrice = "Invalid"
                }));
                return ;
            end;
        end,
        VIPServersToggled = function(v130, v131)
            v125(v36("vipServersPrice", v131));
            v125(v38("monetizationPrice"));
            v125(v36(l_getVipServersIsEnabledKeyName_0(), v130));
        end,
        VIPServersPriceChanged = function(v132)
            local v133 = tonumber(v132);
            v125(v36("vipServersPrice", v133));
            v125(v38("monetizationPrice"));
            if v133 then
                if v133 ~= 0 and v133 < v3 then
                    v125(v37({
                        monetizationPrice = "BelowMin"
                    }));
                end;
                return ;
            else
                v125(v37({
                    monetizationPrice = "Invalid"
                }));
                return ;
            end;
        end,
        SetEditDevProductId = function(v134)
            v125(v39(v134));
        end,
        SetUnsavedDevProducts = function(v135, v136, v137)
            if not v137 then
                if v136 then
                    if type(v136) == "table" then
                        for _, v139 in ipairs(v136) do
                            v125(v38(v139));
                        end;
                    else
                        v125(v38(v136));
                    end;
                end;
            else
                v125(v37({
                    [v136] = v137
                }));
            end;
            v125(v36("unsavedDevProducts", v135));
        end,
        SetDevProducts = function(v140, v141, v142)
            if not v142 then
                if v141 then
                    if type(v141) == "table" then
                        for _, v144 in ipairs(v141) do
                            v125(v38(v144));
                        end;
                    else
                        v125(v38(v141));
                    end;
                end;
            else
                v125(v37({
                    [v141] = v142
                }));
            end;
            v125(v36("editedDeveloperProducts", v140));
        end,
        LoadMoreDevProducts = function()
            v125(v41());
        end,
        LoadMoreBadges = function()
            v125(v42());
        end,
        RefreshBadges = function()
            v125(v40("Badges", v46.Loading));
            v125(v42(true));
            v125(v40("Badges", v46.Loaded));
        end or nil,
        SetDevSubKey = function(v145, v146, v147)
            v125(v43(v145, v146, v147));
            v120(v125, v145, v146, v147);
        end,
        OnDeveloperSubscriptionChanged = function(v148)
            local l_v125_0 = v125;
            v120(l_v125_0, v148.Key, "Name", v148.Name);
            v120(l_v125_0, v148.Key, "Image", v148.Image);
            v120(l_v125_0, v148.Key, "Price", v148.Price);
        end,
        OnDeveloperSubscriptionCreated = function()
            local v150 = {
                IsNew = true,
                Key = "TEMPORARY_" .. l_HttpService_0:GenerateGUID(),
                Price = 0,
                Subscribers = 0,
                Active = false,
                Id = -1,
                Prepaid = 6
            };
            v125(v45(v150.Key, v150));
            local l_v125_1 = v125;
            v120(l_v125_1, v150.Key, "Name", v150.Name);
            v120(l_v125_1, v150.Key, "Image", v150.Image);
            v120(l_v125_1, v150.Key, "Price", v150.Price);
            v125(v36("isEditingSubscription", true));
            v125(v36("editedSubscriptionKey", v150.Key));
        end
    };
end;
local function v157(v153)
    local v154 = {};
    for v155, v156 in pairs(v153) do
        v154[v156.id] = {
            index = v155,
            row = {
                v156.name,
                v156.description
            },
            icon = v9.createElement(v35, {
                Id = v156.iconImageId,
                Size = UDim2.fromScale(1, 1)
            })
        };
    end;
    return v154;
end;
local function v165(v158, v159)
    local v160 = {};
    local v161 = 1;
    for v162, v163 in pairs(v158) do
        local v164 = v163.id ~= nil;
        v160[not not v164 and v163.id or v161] = {
            index = v162,
            row = {
                not not v164 and v163.id or v159:getText("Monetization", "UnsavedDevProduct"),
                v163.name,
                v163.price
            }
        };
        v161 = v161 + 1;
    end;
    return v160, v161 - 1;
end;
local function v177(v166, v167)
    local v168 = {};
    for v169, _ in pairs(v167) do
        table.insert(v168, v169);
    end;
    table.sort(v168);
    local v171 = {};
    local v172 = 1;
    for _, v174 in pairs(v166) do
        table.insert(v171, v172, v174);
        v172 = v172 + 1;
    end;
    for _, v176 in ipairs(v168) do
        table.insert(v171, v172, v167[v176]);
        v172 = v172 + 1;
    end;
    return v171;
end;
local function v184(v178, v179, v180, v181)
    if v178 then
        local v182 = nil;
        if v52[v178] then
            local v183 = nil;
            if v178 == "BelowMin" then
                v183 = if not v179 then if v180 then string.format("%.f", v1) else string.format("%.f", v4) else string.format("%.f", v3);
            elseif v178 == "AboveMax" then
                v183 = if not v180 then string.format("%.f", v5) else string.format("%.f", v2);
            end;
            v182 = v181:getText("Errors", v52[v178], {
                v183
            });
        end;
        return v182;
    else
        return nil;
    end;
end;
local function _(v185, v186)
    if v185 then
        local v187 = nil;
        if v53[v185] and v185 == "Empty" then
            v187 = v186:getText("General", v53[v185]);
        end;
        return v187;
    else
        return nil;
    end;
end;
local function v194(v189, v190)
    local v191 = {};
    local v192 = utf8.len(v189.name);
    local v193 = tonumber(v189.price);
    if not (v192 >= 1) or v0 < v192 then
        v189 = v11.Dictionary.join(v189, {
            name = v190
        });
        table.insert(v191, "devProductName");
    end;
    if not (type(v193) == "number") or v193 < 1 then
        v189 = v11.Dictionary.join(v189, {
            price = 1
        });
        table.insert(v191, "devProductPrice");
    end;
    return v189, v191;
end;
local function v230(v195)
    local l_Localization_0 = v195.Localization;
    local l_Stylizer_0 = v195.Stylizer;
    local l_TaxRate_0 = v195.TaxRate;
    local l_MinimumFee_0 = v195.MinimumFee;
    local l_enabled_0 = v195.PaidAccess.enabled;
    local l_price_1 = v195.PaidAccess.price;
    local l_VIPServers_0 = v195.VIPServers;
    local v203 = not not v195.UnsavedDevProducts and v195.UnsavedDevProducts or {};
    local v204, v205 = v165(v177(v203, (v11.Dictionary.join(not not v195.DevProducts and v195.DevProducts or {}, not not v195.EditedDevProducts and v195.EditedDevProducts or {}))), l_Localization_0);
    local l_PaidAccessToggled_0 = v195.PaidAccessToggled;
    local l_PaidAccessPriceChanged_0 = v195.PaidAccessPriceChanged;
    local l_VIPServersToggled_0 = v195.VIPServersToggled;
    local l_VIPServersPriceChanged_0 = v195.VIPServersPriceChanged;
    local l_SetUnsavedDevProducts_0 = v195.SetUnsavedDevProducts;
    local l_SetEditDevProductId_0 = v195.SetEditDevProductId;
    local l_LoadMoreDevProducts_0 = v195.LoadMoreDevProducts;
    local l_isPublic_0 = v195.isPublic;
    local l_isInitiallyEnabled_0 = v195.isInitiallyEnabled;
    local v215 = nil;
    local v216 = nil;
    local v217 = nil;
    local v218 = nil;
    local v219 = l_shouldAllowBadges_0();
    if v219 then
        v215 = v157(v195.Badges);
        v216 = v195.LoadMoreBadges;
        v217 = v195.RefreshBadges;
        v218 = v195.BadgeLoadState;
    end;
    local l_OnDeveloperSubscriptionCreated_0 = v195.OnDeveloperSubscriptionCreated;
    local v221 = v184(v195.AccessPriceError, l_VIPServers_0.isEnabled, l_enabled_0, l_Localization_0);
    local v222 = l_LayoutOrderIterator_0.new();
    if not l_TaxRate_0 then
        l_enabled_0 = nil;
        l_VIPServers_0.isEnabled = nil;
    end;
    local v223 = {};
    local l_v219_0 = v219;
    if l_v219_0 then
        l_v219_0 = false;
        if v218 == v46.Loading then
            l_v219_0 = v9.createElement(l_Container_0, {
                Size = UDim2.new(1, 0, 0, l_Stylizer_0.table.height / 2)
            }, {
                BadgesLoadingIndicator = v9.createElement(l_LoadingIndicator_0, {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.fromScale(0.5, 0.5)
                })
            });
        end;
    end;
    v223.BadgesLoadingIndicatorContainer = l_v219_0;
    l_v219_0 = v219;
    if l_v219_0 then
        l_v219_0 = false;
        if v218 ~= v46.Loading then
            l_v219_0 = v9.createElement(v23, {
                BadgeList = v215,
                LayoutOrder = v222:getNextOrder(),
                OnLoadMoreBadges = v216,
                RefreshBadges = v217
            });
        end;
    end;
    v223.Badges = l_v219_0;
    v223.Separator = v219 and v9.createElement(l_Separator_0, {
        LayoutOrder = v222:getNextOrder()
    });
    l_v219_0 = v9.createElement;
    local l_v17_0 = v17;
    local v226 = {
        Price = l_price_1,
        TaxRate = l_TaxRate_0,
        MinimumFee = l_MinimumFee_0,
        PriceError = not not l_enabled_0 and v221 or nil,
        LayoutOrder = v222:getNextOrder()
    };
    local v227 = false;
    if l_VIPServers_0.isEnabled == false then
        v227 = not not l_enabled_0 and l_isInitiallyEnabled_0 or l_isPublic_0;
    end;
    v226.Enabled = v227;
    v226.Selected = l_enabled_0;
    v226.OnPaidAccessToggle = function(v228)
        return l_PaidAccessToggled_0(v228, (math.max(v195.PaidAccess.initialPrice, v1)));
    end;
    v226.OnPaidAccessPriceChanged = l_PaidAccessPriceChanged_0;
    v223.PaidAccess = l_v219_0(l_v17_0, v226);
    l_v219_0 = v9.createElement;
    l_v17_0 = v18;
    v226 = {
        VIPServersData = l_VIPServers_0,
        TaxRate = l_TaxRate_0,
        MinimumFee = l_MinimumFee_0,
        PriceError = not not l_VIPServers_0.isEnabled and v221 or nil,
        LayoutOrder = v222:getNextOrder()
    };
    v227 = false;
    if l_enabled_0 == false then
        v227 = not not l_VIPServers_0.isEnabled and l_isInitiallyEnabled_0 or l_isPublic_0;
    end;
    v226.Enabled = v227;
    v226.OnVipServersToggled = function(v229)
        return l_VIPServersToggled_0(v229, (math.max(v195.VIPServers.initialPrice, v3)));
    end;
    v226.OnVipServersPriceChanged = l_VIPServersPriceChanged_0;
    v223.VIPServers = l_v219_0(l_v17_0, v226);
    v223.DevSubsList = v49 and v9.createElement(v21, {
        LayoutOrder = v222:getNextOrder(),
        OnDeveloperSubscriptionCreated = l_OnDeveloperSubscriptionCreated_0
    });
    v223.DevProducts = v9.createElement(v19, {
        ProductList = v204,
        ShowTable = v205 ~= 0,
        LayoutOrder = v222:getNextOrder(),
        CreateNewDevProduct = function()
            v54 = l_Localization_0:getText("Monetization", "UnsavedDevProductName1", {
                (string.format("%d", v205 + 1))
            });
            table.insert(v203, 1, {
                name = v54,
                price = 1,
                iconImageAssetId = "None"
            });
            l_SetUnsavedDevProducts_0(v203, nil, nil);
        end,
        OnLoadMoreDevProducts = l_LoadMoreDevProducts_0,
        OnEditDevProductClicked = l_SetEditDevProductId_0
    });
    return v223;
end;
local function v258(v231)
    local l_Stylizer_1 = v231.Stylizer;
    local l_Localization_1 = v231.Localization;
    local v234 = l_LayoutOrderIterator_0.new();
    local l_EditDevProductId_0 = v231.EditDevProductId;
    local v236 = not not v231.UnsavedDevProducts and v231.UnsavedDevProducts or {};
    local v237 = not not v231.DevProducts and v231.DevProducts or {};
    local v238 = nil;
    if not v237[l_EditDevProductId_0] then
        if v236[l_EditDevProductId_0] then
            v238 = v54;
        end;
    else
        v238 = v237[l_EditDevProductId_0].name;
    end;
    local v239 = not not v231.EditedDevProducts and v231.EditedDevProducts or {};
    local v240 = v11.Dictionary.join(v236, (v11.Dictionary.join(v237, v239)))[l_EditDevProductId_0] or {};
    if not v238 then
        v238 = v240.name;
    end;
    local l_name_0 = v240.name;
    local l_price_2 = v240.price;
    local l_SetEditDevProductId_1 = v231.SetEditDevProductId;
    local l_SetDevProducts_0 = v231.SetDevProducts;
    local v245 = v184(v231.DevProductPriceError, nil, nil, l_Localization_1);
    local v246 = nil;
    v246 = if not v245 then {} else l_GetTextSize_0(v245, l_Stylizer_1.fontStyle.SmallError.TextSize, l_Stylizer_1.fontStyle.SmallError.Font);
    local l_DevProductNameError_0 = v231.DevProductNameError;
    local v248;
    if l_DevProductNameError_0 then
        local v249 = nil;
        if v53[l_DevProductNameError_0] and l_DevProductNameError_0 == "Empty" then
            v249 = l_Localization_1:getText("General", v53[l_DevProductNameError_0]);
        end;
        v248 = v249;
    else
        v248 = nil;
    end;
    l_DevProductNameError_0 = v231.SetUnsavedDevProducts;
    return {
        HeaderFrame = v9.createElement(l_FitFrameOnAxis_0, {
            LayoutOrder = v234:getNextOrder(),
            BackgroundTransparency = 1,
            axis = l_FitFrameOnAxis_0.Axis.Vertical,
            minimumSize = UDim2.new(1, 0, 0, 0),
            contentPadding = UDim.new(0, l_Stylizer_1.settingsPage.headerPadding)
        }, {
            BackButton = v9.createElement("ImageButton", {
                Size = UDim2.new(0, l_Stylizer_1.backButton.size, 0, l_Stylizer_1.backButton.size),
                LayoutOrder = 0,
                Image = l_Stylizer_1.backButton.image,
                BackgroundTransparency = 1,
                [v9.Event.Activated] = function()
                    local v250, v251 = v194(v240, v238);
                    if not v250.id then
                        v236 = v11.Dictionary.join(v236, {
                            [l_EditDevProductId_0] = v250
                        });
                        l_DevProductNameError_0(v236, v251);
                    else
                        v239 = v11.Dictionary.join(v239, {
                            [l_EditDevProductId_0] = v250
                        });
                        l_SetDevProducts_0(v239, v251);
                    end;
                    l_SetEditDevProductId_1(nil);
                end
            }, {
                v9.createElement(l_HoverArea_0, {
                    Cursor = "PointingHand"
                })
            }),
            v9.createElement(l_Separator_0, {
                LayoutOrder = 1
            }),
            Header = v9.createElement(v16, {
                Title = l_Localization_1:getText("Monetization", "EditDeveloperProduct"),
                LayoutOrder = 2
            })
        }),
        Name = v9.createElement(l_TitledFrame_0, {
            LayoutOrder = v234:getNextOrder(),
            Title = l_Localization_1:getText("General", "TitleName")
        }, {
            TextBox = v9.createElement(l_TextInput_0, {
                ErrorText = v248,
                MaxLength = v0,
                OnTextChanged = function(v252)
                    local v253 = utf8.len(v252);
                    local v254 = nil;
                    if v253 == 0 then
                        v254 = "Empty";
                    end;
                    v240 = v11.Dictionary.join(v240, {
                        name = tostring(v252)
                    });
                    if not v240.id then
                        v236 = v11.Dictionary.join(v236, {
                            [l_EditDevProductId_0] = v240
                        });
                        l_DevProductNameError_0(v236, "devProductName", v254);
                        return ;
                    else
                        v239 = v11.Dictionary.join(v239, {
                            [l_EditDevProductId_0] = v240
                        });
                        l_SetDevProducts_0(v239, "devProductName", v254);
                        return ;
                    end;
                end,
                Text = l_name_0
            })
        }),
        Price = v9.createElement(l_TitledFrame_0, {
            LayoutOrder = v234:getNextOrder(),
            Title = l_Localization_1:getText("Monetization", "PriceTitle")
        }, {
            VerticalLayout = v9.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical
            }),
            PriceFrame = v9.createElement(l_TextInput_0, {
                OnTextChanged = function(v255)
                    local v256 = tonumber(v255);
                    local v257 = nil;
                    if v256 then
                        if v256 < v4 then
                            v257 = "BelowMin";
                        elseif v5 < v256 then
                            v257 = "AboveMax";
                        end;
                    else
                        v257 = "Invalid";
                    end;
                    v240 = v11.Dictionary.join(v240, {
                        price = tostring(v255)
                    });
                    if not v240.id then
                        v236 = v11.Dictionary.join(v236, {
                            [l_EditDevProductId_0] = v240
                        });
                        l_DevProductNameError_0(v236, "devProductPrice", v257);
                        return ;
                    else
                        v239 = v11.Dictionary.join(v239, {
                            [l_EditDevProductId_0] = v240
                        });
                        l_SetDevProducts_0(v239, "devProductPrice", v257);
                        return ;
                    end;
                end,
                Size = UDim2.new(0, 200, 0, 32),
                Text = l_price_2,
                LeadingComponent = l_Image_0,
                LeadingComponentProps = {
                    Size = UDim2.new(0, l_Stylizer_1.robuxFeeBase.icon.size, 0, l_Stylizer_1.robuxFeeBase.icon.size),
                    ImageColor3 = l_Stylizer_1.robuxFeeBase.icon.imageColor,
                    Image = l_Stylizer_1.robuxFeeBase.icon.image
                }
            }),
            ErrorMessage = v245 and v9.createElement("TextLabel", v11.Dictionary.join(l_Stylizer_1.fontStyle.SmallError, {
                AutomaticSize = Enum.AutomaticSize.XY,
                BackgroundTransparency = 1,
                Text = v245,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextWrapped = true,
                LayoutOrder = 2
            }))
        })
    };
end;
local function v260(v259)
    return {
        v9.createElement(v22, {
            SetDevSubKey = v259.SetDevSubKey,
            OnDeveloperSubscriptionChanged = v259.OnDeveloperSubscriptionChanged
        })
    };
end;
v50.render = function(v261)
    local l_props_0 = v261.props;
    local l_Localization_2 = l_props_0.Localization;
    local l_EditDevProductId_1 = l_props_0.EditDevProductId;
    local l_isEditingSubscription_0 = l_props_0.isEditingSubscription;
    local v266 = nil;
    local v267 = l_EditDevProductId_1 == 0;
    if not l_isEditingSubscription_0 then
        if l_EditDevProductId_1 == nil then
            v267 = true;
            v266 = function()
                return (v230(l_props_0));
            end;
        elseif type(l_EditDevProductId_1) == "number" then
            v267 = false;
            v266 = function()
                return (v258(l_props_0));
            end;
        end;
    else
        v266 = function()
            return (v260(l_props_0));
        end;
    end;
    return v9.createElement(v20, {
        SettingsLoadJobs = v86,
        SettingsSaveJobs = v108,
        Title = l_Localization_2:getText("General", "Category" .. l_Name_0),
        PageId = l_Name_0,
        CreateChildren = v266,
        ShowHeader = v267
    });
end;
v50 = l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v50);
local v268 = require(l_Parent_1.Src.Networking.settingFromState);
v50 = v10.connect(function(v269, _)
    if v269 then
        return (v114(function(v271)
            return v268(v269.Settings, v271);
        end, v269));
    else
        return ;
    end;
end, function(v272)
    return (v152(function(v273)
        return function(v274)
            v272(v36(v273, v274));
        end;
    end, v272));
end)(v50);
v50.LocalizationId = l_Name_0;
return v50;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_deepJoin_0 = require(l_Parent_0.Packages.Framework).Util.deepJoin;
local v2 = require(l_Parent_0.Src.Actions.AddChange);
return function(v3, v4)
    return function(v5, _)
        local v7 = v5:getState();
        v5:dispatch(v2("DeveloperSubscriptions", (l_deepJoin_0(v7.Settings.Changed.DeveloperSubscriptions or v7.Settings.Current.DeveloperSubscriptions, {
            [v3] = v4
        }))));
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_deepJoin_0 = require(l_Parent_0.Packages.Framework).Util.deepJoin;
local v2 = require(l_Parent_0.Src.Actions.AddChange);
return function(v3, v4, v5)
    return function(v6, _)
        local v8 = v6:getState();
        v6:dispatch(v2("DeveloperSubscriptions", (l_deepJoin_0(v8.Settings.Changed.DeveloperSubscriptions or v8.Settings.Current.DeveloperSubscriptions, {
            [v3] = {
                [v4] = v5
            }
        }))));
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_deepJoin_0 = require(l_Parent_0.Packages.Framework).Util.deepJoin;
local v2 = require(l_Parent_0.Src.Actions.AddErrors);
return function(v3, v4, v5)
    return function(v6, _)
        v6:dispatch(v2({
            DeveloperSubscriptions = l_deepJoin_0(v6:getState().Settings.Errors.DeveloperSubscriptions or {}, {
                [v3] = {
                    [v4] = v5
                }
            })
        }));
    end;
end;