local l_Util_0 = script.Parent.Parent.Parent.Core.Util;
local v1 = require(l_Util_0.convertArrayToTable);
local v2 = require(l_Util_0.AssetConfigConstants);
local v3 = require(l_Util_0.AssetConfigUtil);
local v4 = {};
local l_IsAssetCommentDisabled_0 = game:GetFastFlag("IsAssetCommentDisabled");
local l_UnifyModelPackagePublish3_0 = game:GetFastFlag("UnifyModelPackagePublish3");
v4.keys = v1({
    "SHOW_SALES_TAB",
    "SHOW_VERSIONS_TAB",
    "SHOW_OWNERSHIP",
    "SHOW_GENRE",
    "SHOW_COPY",
    "SHOW_PACKAGE",
    "SHOW_COMMENT",
    "SHOW_ASSET_TYPE",
    "SHOW_OVERRIDE_BUTTON",
    "SHOW_SALE",
    "SHOW_PRICE",
    "SHOW_PERMISSIONS_TAB"
});
local v7 = {
    Marketplace = {},
    Catalog = {}
};
local l_keys_0 = v4.keys;
local v9 = {
    [v2.FLOW_TYPE.DOWNLOAD_FLOW] = {
        [v7.Marketplace] = {
            [l_keys_0.SHOW_COMMENT] = false,
            [l_keys_0.SHOW_COPY] = false,
            [l_keys_0.SHOW_GENRE] = false,
            [l_keys_0.SHOW_OVERRIDE_BUTTON] = false,
            [l_keys_0.SHOW_OWNERSHIP] = false,
            [l_keys_0.SHOW_PRICE] = false,
            [l_keys_0.SHOW_SALE] = false,
            [l_keys_0.SHOW_VERSIONS_TAB] = false
        },
        [v7.Catalog] = {
            [l_keys_0.SHOW_COMMENT] = false,
            [l_keys_0.SHOW_COPY] = false,
            [l_keys_0.SHOW_GENRE] = false,
            [l_keys_0.SHOW_OVERRIDE_BUTTON] = false,
            [l_keys_0.SHOW_OWNERSHIP] = false,
            [l_keys_0.SHOW_PRICE] = false,
            [l_keys_0.SHOW_SALE] = false,
            [l_keys_0.SHOW_VERSIONS_TAB] = false
        }
    },
    [v2.FLOW_TYPE.EDIT_FLOW] = {
        [v7.Marketplace] = {
            [l_keys_0.SHOW_COMMENT] = not l_IsAssetCommentDisabled_0,
            [l_keys_0.SHOW_COPY] = true,
            [l_keys_0.SHOW_GENRE] = true,
            [l_keys_0.SHOW_OWNERSHIP] = true,
            [l_keys_0.SHOW_PRICE] = false,
            [l_keys_0.SHOW_SALE] = false,
            [l_keys_0.SHOW_VERSIONS_TAB] = true
        },
        [v7.Catalog] = {
            [l_keys_0.SHOW_ASSET_TYPE] = true,
            [l_keys_0.SHOW_OWNERSHIP] = true,
            [l_keys_0.SHOW_SALES_TAB] = true
        }
    },
    [v2.FLOW_TYPE.UPLOAD_FLOW] = {
        [v7.Marketplace] = {
            [l_keys_0.SHOW_PACKAGE] = false,
            [l_keys_0.SHOW_COMMENT] = not l_IsAssetCommentDisabled_0,
            [l_keys_0.SHOW_COPY] = true,
            [l_keys_0.SHOW_GENRE] = true,
            [l_keys_0.SHOW_OVERRIDE_BUTTON] = true,
            [l_keys_0.SHOW_OWNERSHIP] = true,
            [l_keys_0.SHOW_PRICE] = false,
            [l_keys_0.SHOW_SALE] = false,
            [l_keys_0.SHOW_VERSIONS_TAB] = false
        },
        [v7.Catalog] = {
            [l_keys_0.SHOW_ASSET_TYPE] = true,
            [l_keys_0.SHOW_OWNERSHIP] = true
        }
    }
};
local v10 = {
    [Enum.AssetType.Plugin] = {
        [v2.FLOW_TYPE.UPLOAD_FLOW] = {
            [l_keys_0.SHOW_ASSET_TYPE] = true,
            [l_keys_0.SHOW_COMMENT] = false,
            [l_keys_0.SHOW_COPY] = true,
            [l_keys_0.SHOW_GENRE] = false,
            [l_keys_0.SHOW_OVERRIDE_BUTTON] = true,
            [l_keys_0.SHOW_PRICE] = false
        },
        [v2.FLOW_TYPE.EDIT_FLOW] = {
            [l_keys_0.SHOW_ASSET_TYPE] = true,
            [l_keys_0.SHOW_COMMENT] = false,
            [l_keys_0.SHOW_COPY] = true,
            [l_keys_0.SHOW_GENRE] = false,
            [l_keys_0.SHOW_OWNERSHIP] = true,
            [l_keys_0.SHOW_PRICE] = false,
            [l_keys_0.SHOW_SALE] = false,
            [l_keys_0.SHOW_VERSIONS_TAB] = true
        }
    },
    [Enum.AssetType.Model] = {
        [v2.FLOW_TYPE.UPLOAD_FLOW] = {
            [l_keys_0.SHOW_PACKAGE] = l_UnifyModelPackagePublish3_0,
            [l_keys_0.SHOW_OVERRIDE_BUTTON] = true
        }
    },
    [Enum.AssetType.Animation] = {
        [v2.FLOW_TYPE.UPLOAD_FLOW] = {
            [l_keys_0.SHOW_OVERRIDE_BUTTON] = true,
            [l_keys_0.SHOW_COMMENT] = false,
            [l_keys_0.SHOW_COPY] = false,
            [l_keys_0.SHOW_GENRE] = false,
            [l_keys_0.SHOW_OWNERSHIP] = true,
            [l_keys_0.SHOW_PRICE] = false,
            [l_keys_0.SHOW_SALE] = false,
            [l_keys_0.SHOW_VERSIONS_TAB] = false,
            [l_keys_0.SHOW_SALES_TAB] = false
        }
    },
    [v2.UGCBundleTypes.Body] = {
        [v2.FLOW_TYPE.UPLOAD_FLOW] = {
            [l_keys_0.SHOW_ASSET_TYPE] = false,
            [l_keys_0.SHOW_OWNERSHIP] = false
        }
    },
    [v2.UGCBundleTypes.DynamicHead] = {
        [v2.FLOW_TYPE.UPLOAD_FLOW] = {
            [l_keys_0.SHOW_ASSET_TYPE] = false,
            [l_keys_0.SHOW_OWNERSHIP] = false
        }
    }
};
local function _(v11)
    if v11 == nil then
        return nil;
    elseif not v3.isCatalogAsset(v11) and not v3.isUGCBundleType(v11) then
        return v7.Marketplace;
    else
        return v7.Catalog;
    end;
end;
v4.queryParam = function(v13, v14, v15)
    local v16 = if v14 == nil then nil else if v3.isCatalogAsset(v14) or v3.isUGCBundleType(v14) then v7.Catalog else v7.Marketplace;
    if v16 == nil then
        return false;
    else
        local v17 = v9[v13][v16][v15] or false;
        if v10[v14] then
            if v10[v14][v13] then
                if v10[v14][v13][v15] == nil then
                    return v17;
                else
                    return v10[v14][v13][v15];
                end;
            else
                return v17;
            end;
        else
            return v17;
        end;
    end;
end;
return v4;


local l_RobloxPluginGuiService_0 = game:GetService("RobloxPluginGuiService");
local l_Promise_0 = require(script.Parent.Parent.Parent.Packages.Framework).Util.Promise;
return function(v2, v3)
    return l_Promise_0.new(function(v4, v5)
        task.spawn(function()
            local l_Folder_0 = Instance.new("Folder");
            l_Folder_0.Name = "TemporaryInstances";
            l_Folder_0.Parent = l_RobloxPluginGuiService_0;
            for _, v8 in pairs(v2) do
                v8.Parent = l_Folder_0;
            end;
            local l_status_0, l_result_0 = pcall(function()
                return v3:DEPRECATED_SerializeInstances(v2);
            end);
            for _, v12 in pairs(v2) do
                v12.Parent = nil;
            end;
            l_Folder_0:Destroy();
            if not l_status_0 then
                v5("SerializeInstances failed: " .. tostring(l_result_0));
                return ;
            else
                v4(l_result_0);
                return ;
            end;
        end);
    end);
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Util.DebugFlags);
local v2 = require(l_Parent_0.Core.Types.Category);
local v3 = require(l_Parent_0.Core.Types.Sort);
local v4 = require(l_Parent_0.Core.Types.LayoutMode);
local v5 = {};
v5.__index = v5;
local l_disableMarketplaceAndRecents_0 = require(l_Parent_0.Core.Util.ToolboxUtilities).disableMarketplaceAndRecents;
local l_showRobloxCreatedAssets_0 = require(l_Parent_0.Core.Util.ToolboxUtilities).showRobloxCreatedAssets;
local v8 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxEnableAssetRows);
local v9 = "Toolbox_" .. "SelectedCategoryName";
local v10 = "Toolbox_" .. "SelectedSearchTerm";
local v11 = "Toolbox_" .. "SelectedSortIndex";
local v12 = "Toolbox_" .. "ShowScriptWarning";
local v13 = "Toolbox_" .. "LastAnnouncementViewedKey";
local v14 = "Toolbox_" .. "LayoutModeKey";
v5.new = function(v15)
    local v16 = {
        _plugin = v15
    };
    setmetatable(v16, v5);
    return v16;
end;
v5._getSetting = function(v17, v18, v19)
    if v17._plugin then
        local l_Setting_0 = v17._plugin:GetSetting(v18);
        if v1.shouldLogSettings() then
            print(("Settings:_getSetting(setting=\"%s\", default=%s) got value = %s"):format(tostring(v18), type(v19) == "string" and "\"" .. tostring(v19) .. "\"" or tostring(v19), type(l_Setting_0) == "string" and "\"" .. tostring(l_Setting_0) .. "\"" or tostring(l_Setting_0)));
        end;
        if not l_Setting_0 then
            l_Setting_0 = v19;
        end;
        return l_Setting_0;
    else
        return v19;
    end;
end;
v5._setSetting = function(v21, v22, v23)
    if v21._plugin then
        if v1.shouldLogSettings() then
            print(("Settings:_setSetting(setting=\"%s\", value=%s)"):format(tostring(v22), type(v23) == "string" and "\"" .. tostring(v23) .. "\"" or tostring(v23)));
        end;
        v21._plugin:SetSetting(v22, v23);
        return ;
    else
        return ;
    end;
end;
v5.getSelectedCategoryName = function(v24)
    return v24:_getSetting(v9, v2.DEFAULT.name);
end;
v5.setSelectedCategoryName = function(v25, v26)
    return v25:_setSetting(v9, v26);
end;
v5.getSelectedSearchTerm = function(v27)
    return v27:_getSetting(v10, "");
end;
v5.setSelectedSearchTerm = function(v28, v29)
    return v28:_setSetting(v10, v29);
end;
v5.getSelectedSortIndex = function(v30)
    return v30:_getSetting(v11, 1);
end;
v5.setSelectedSortIndex = function(v31, v32)
    return v31:_setSetting(v11, v32);
end;
v5.getShowScriptWarning = function(v33)
    return v33:_getSetting(v12, "true") == "true";
end;
v5.setShowScriptWarning = function(v34, v35)
    return v34:_setSetting(v12, (tostring(v35)));
end;
v5.getLastAnnouncementViewedKey = function(v36)
    return v36:_getSetting(v13, "");
end;
v5.setLastAnnouncementViewedKey = function(v37, v38)
    return v37:_setSetting(v13, (tostring(v38)));
end;
if v8() then
    v5.getLayoutMode = function(v39)
        return v39:_getSetting(v14, v4.Grid);
    end;
    v5.setLayoutMode = function(v40, v41)
        return v40:_setSetting(v14, (tostring(v41)));
    end;
end;
v5.updateFromPageInfo = function(v42, v43)
    if v1.shouldLogSettings() then
        print("Settings:updateFromPageInfo()");
    end;
    v42:setSelectedCategoryName(v43.categoryName);
    v42:setSelectedSearchTerm(v43.searchTerm);
    v42:setSelectedSortIndex(v43.sortIndex);
end;
v5.loadInitialSettings = function(v44)
    if v1.shouldLogSettings() then
        print("Settings:loadInitialSettings()");
    end;
    local v45 = {};
    if not l_disableMarketplaceAndRecents_0() then
        v45.categoryName = v44:getSelectedCategoryName();
        if not v2.getCategoryByName(v45.categoryName) then
            v45.categoryName = v2.DEFAULT.name;
        end;
    else
        v45.categoryName = v2.DEFAULT.name;
    end;
    if l_showRobloxCreatedAssets_0() then
        v45.tab = v2.MARKETPLACE_KEY;
        v45.categoryName = v2.DEFAULT.name;
        v45.creator = v2.CREATOR_ROBLOX;
    end;
    v45.searchTerm = v44:getSelectedSearchTerm();
    v45.sortIndex = v44:getSelectedSortIndex();
    if not v3.canSort(v45.searchTerm, v45.categoryName) then
        v45.sortIndex = v3.getDefaultSortForCategory(v45.categoryName);
    end;
    return v45;
end;
return v5;


game:DefineFastFlag("AddInsertionNavData", false);
return function()
    return game:GetFastFlag("AddInsertionNavData");
end;


game:DefineFastFlag("AddInsertionNavDataSeeAll", false);
return function()
    return game:GetFastFlag("AddInsertionNavDataSeeAll");
end;


game:DefineFastFlag("AddMoreAudioSwimlaneAnalytics", false);
return function()
    return game:GetFastFlag("AddMoreAudioSwimlaneAnalytics");
end;


game:DefineFastFlag("EnableCreateUGCBundleCreationFeeErrorCodes3", false);
return function()
    return game:GetFastFlag("EnableCreateUGCBundleCreationFeeErrorCodes3");
end;


game:DefineFastFlag("EnableGroupStateChangeCheck", false);
return function()
    return game:GetFastFlag("EnableGroupStateChangeCheck");
end;


game:DefineFastFlag("EnableNewToolboxCreationContextErrors", false);
return function()
    return game:GetFastFlag("EnableNewToolboxCreationContextErrors");
end;


game:DefineFastFlag("EnablePluginHomeview", false);
return function()
    return game:GetFastFlag("EnablePluginHomeview");
end;


game:DefineFastFlag("EnableRobuxStipendPremiumCheck", false);
return function()
    return game:GetFastFlag("EnableRobuxStipendPremiumCheck");
end;


game:DefineFastFlag("EnableUGCAgreedCreationFeeConnection", false);
return function()
    return game:GetFastFlag("EnableUGCAgreedCreationFeeConnection");
end;


game:DefineFastFlag("EnableUGCFixUploadInstances2", false);
return function()
    return game:GetFastFlag("EnableUGCFixUploadInstances2");
end;


game:DefineFastFlag("EnableUGCForAllBundleUploadChecks", false);
return function()
    return game:GetFastFlag("EnableUGCForAllBundleUploadChecks");
end;


game:DefineFastFlag("EnableUGCForAllChecks1", false);
return function()
    return game:GetFastFlag("EnableUGCForAllChecks1");
end;


game:DefineFastFlag("EnableUGCForAllGracePeriodActive", false);
return function()
    return game:GetFastFlag("EnableUGCForAllGracePeriodActive");
end;


game:DefineFastFlag("EnableUGCMissingPartsMessage", false);
return function()
    return game:GetFastFlag("EnableUGCMissingPartsMessage");
end;


game:DefineFastFlag("EnableUGCToolboxFixAccessories2", false);
return function()
    return game:GetFastFlag("EnableUGCToolboxFixAccessories2");
end;


game:DefineFastFlag("EnableUGCUploadFlowAnalytics4", false);
return function()
    return game:GetFastFlag("EnableUGCUploadFlowAnalytics4");
end;


game:DefineFastFlag("EnableUGCUploadingDataSharing2", false);
return function()
    return game:GetFastFlag("EnableUGCUploadingDataSharing2");
end;


game:DefineFastFlag("EnableUnknownErrorCreatorDashboardMessage", false);
return function()
    return game:GetFastFlag("EnableUnknownErrorCreatorDashboardMessage");
end;


game:DefineFastFlag("FixSwimlaneAnalytics", false);
return function()
    return game:GetFastFlag("FixSwimlaneAnalytics");
end;


game:DefineFastFlag("ToolboxAddAutocorrect", false);
return function()
    return game:GetFastFlag("ToolboxAddAutocorrect");
end;


game:DefineFastFlag("ToolboxAddAvatarTagDataIntoMock", false);
return function()
    return game:GetFastFlag("ToolboxAddAvatarTagDataIntoMock");
end;


game:DefineFastFlag("ToolboxAddBuyerStatus3", false);
return function()
    return game:GetFastFlag("ToolboxAddBuyerStatus3");
end;


game:DefineFastFlag("ToolboxAddCreationsFilterToListView", false);
return function()
    return game:GetFastFlag("ToolboxAddCreationsFilterToListView");
end;


game:DefineFastFlag("ToolboxAddRecentSearchesToAutoComplete3", false);
return function()
    return game:GetFastFlag("ToolboxAddRecentSearchesToAutoComplete3");
end;


game:DefineFastFlag("ToolboxAssetConfigOnboardingLink", false);
return function()
    return game:GetFastFlag("ToolboxAssetConfigOnboardingLink");
end;


game:DefineFastFlag("ToolboxCodeUnderstandingSummary3", false);
return function()
    return game:GetFastFlag("ToolboxCodeUnderstandingSummary3");
end;


game:DefineFastFlag("ToolboxContentManagementCombineTabs2", false);
return function()
    return game:GetFastFlag("ToolboxContentManagementCombineTabs2");
end;


game:DefineFastFlag("ToolboxContextualRecommendationsShadowTraffic", false);
return function()
    return game:GetFastFlag("ToolboxContextualRecommendationsShadowTraffic");
end;


game:DefineFastFlag("ToolboxDropdownItemsListHoverFix", false);
return function()
    return game:GetFastFlag("ToolboxDropdownItemsListHoverFix");
end;


game:DefineFastFlag("ToolboxEnableAssetRows6", false);
return function()
    return game:GetFastFlag("ToolboxEnableAssetRows6");
end;


game:DefineFastFlag("ToolboxEnableFiatFully", false);
return function()
    return game:GetFastFlag("ToolboxEnableFiatFully");
end;


game:DefineFastFlag("ToolboxEnableSearchOptionsRefactor4", false);
return function()
    return game:GetFastFlag("ToolboxEnableSearchOptionsRefactor4");
end;


game:DefineFastFlag("ToolboxExcludeGroupCreations", false);
return function()
    return game:GetFastFlag("ToolboxExcludeGroupCreations");
end;


game:DefineFastFlag("ToolboxFixBuyerStatusAnalytics", false);
return function()
    return game:GetFastFlag("ToolboxFixBuyerStatusAnalytics");
end;


game:DefineFastFlag("ToolboxFilterMeshPartsInBundleUpload", false);
return function()
    return game:GetFastFlag("ToolboxFilterMeshPartsInBundleUpload");
end;


game:DefineFastFlag("ToolboxFixAssetConfigResultTranslations", false);
return function()
    return game:GetFastFlag("ToolboxFixAssetConfigResultTranslations");
end;


game:DefineFastFlag("ToolboxFixDefaultTabForCreations", false);
return function()
    return game:GetFastFlag("ToolboxFixDefaultTabForCreations");
end;


game:DefineFastFlag("ToolboxFixGenericDialogSize2", false);
return function()
    return game:GetFastFlag("ToolboxFixGenericDialogSize2");
end;


game:DefineFastFlag("ToolboxFixGroupCreatedAvatarAssetRequest", false);
return function()
    return game:GetFastFlag("ToolboxFixGroupCreatedAvatarAssetRequest");
end;


game:DefineFastFlag("ToolboxFixInventoryCreatorFilter", false);
return function()
    return game:GetFastFlag("ToolboxFixInventoryCreatorFilter");
end;


game:DefineFastFlag("ToolboxFixInventoryGridSearch", false);
local v0 = require(script:FindFirstAncestor("Toolbox").Core.Util.SharedFlags.getFFlagToolboxFixInventoryCreatorFilter);
return function()
    return v0() and game:GetFastFlag("ToolboxFixInventoryGridSearch");
end;


game:DefineFastFlag("ToolboxHideUrlForAnimations", false);
return function()
    return game:GetFastFlag("ToolboxHideUrlForAnimations");
end;


game:DefineFastFlag("ToolboxListviewAnalytics", false);
return function()
    return game:GetFastFlag("ToolboxListviewAnalytics");
end;


game:DefineFastFlag("ToolboxOpenAssetPreviewIfFiatCannotBeInserted", false);
return function()
    return game:GetFastFlag("ToolboxOpenAssetPreviewIfFiatCannotBeInserted");
end;


game:DefineFastFlag("ToolboxPillsForCreators", false);
return function()
    return game:GetFastFlag("ToolboxPillsForCreators");
end;


game:DefineFastFlag("ToolboxRefactorAudioConstantsForItemRow2", false);
return function()
    return game:GetFastFlag("ToolboxRefactorAudioConstantsForItemRow2");
end;


game:DefineFastFlag("ToolboxRemoveRobuxProductEntirely", false);
return function()
    return game:GetFastFlag("ToolboxRemoveRobuxProductEntirely");
end;


game:DefineFastFlag("ToolboxRestrictAssetConfig", false);
return function()
    return game:GetFastFlag("ToolboxRestrictAssetConfig");
end;


game:DefineFastFlag("ToolboxUpdateDisplayedAudioTags", false);
return function()
    return game:GetFastFlag("ToolboxUpdateDisplayedAudioTags");
end;


game:DefineFastFlag("ToolboxVotingUrlToHaveAssetIdInURL", false);
return function()
    return game:GetFastFlag("ToolboxVotingUrlToHaveAssetIdInURL");
end;


game:DefineFastFlag("UGCBundleValidationFullBodyErrors", false);
return function()
    return game:GetFastFlag("UGCBundleValidationFullBodyErrors");
end;


game:DefineFastFlag("UseBindingsForAudioPlayhead", false);
return function()
    return game:GetFastFlag("UseBindingsForAudioPlayhead");
end;


game:DefineFastString("ToolboxFiatMonetizableAssetTypesCSV2", "Plugin");
return function()
    return game:GetFastString("ToolboxFiatMonetizableAssetTypesCSV2");
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Util_0 = l_script_FirstAncestor_0.Core.Util;
local v2 = require(l_Util_0.DebugFlags);
local v3 = require(l_Util_0.getIsIXPVariableEnabled);
local v4 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxCodeUnderstandingSummary);
return function(v5)
    if not ((not v4() or not v2.shouldDebugWarnings()) or v5) then
        warn("ixp was undefined for FFlagToolboxUseIXPForCodeUnderstanding");
    end;
    return v4() and v3(v5, "MarketplaceModelsCodeUnderstanding", "MarketplaceModelsCodeUnderstandingEnabled");
end;


local l_Util_0 = script:FindFirstAncestor("Toolbox").Core.Util;
local v1 = require(l_Util_0.getIsIXPVariableEnabled);
local v2 = require(l_Util_0.SharedFlags.getFFlagToolboxEnableAssetRows);
game:DefineFastFlag("ToolboxListViewEnabledForAll", false);
return function(v3)
    if not game:GetFastFlag("ToolboxListViewEnabledForAll") then
        return (v3 and v2()) and v1(v3, "MarketplaceModelsListView", "MarketplaceModelsListViewEnabled");
    else
        return v2();
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Packages.Cryo);
return {
    getTagsFromItemTags = function(v1)
        local v2 = {};
        for v3 = 1, #v1 do
            v2[v3] = v1[v3].tag;
        end;
        return v2;
    end,
    areSetsDifferent = function(v4, v5)
        local v6 = {};
        for _, v8 in pairs(v4) do
            v6[not not v8.id and v8.tag.tagId or v8.tagId] = true;
        end;
        for _, v10 in pairs(v5) do
            if v6[v10.tagId] then
                v6[v10.tagId] = nil;
            else
                return false;
            end;
        end;
        if not next(v6) then
            return true;
        else
            return false;
        end;
    end,
    areTagsEnabled = function(v11, v12, v13)
        return v11 and v0.List.find(v12, v13.Name) ~= nil;
    end,
    hasTag = function(v14, v15)
        for _, v17 in pairs(v14) do
            if v17.tagId == v15 then
                return true;
            end;
        end;
        return false;
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_CrossPluginCommunication_0 = require(l_script_FirstAncestor_0.Packages.Framework).Util.CrossPluginCommunication;
local v2 = require(l_script_FirstAncestor_0.Core.Actions.SetTutorialLimits);
local v3 = require(l_script_FirstAncestor_0.Core.Actions.UpdateSearchTerm);
local v4 = require(l_script_FirstAncestor_0.Core.Actions.UpdatePageInfo);
local v5 = require(l_script_FirstAncestor_0.Core.Types.Category);
return {
    setup = function(v6, v7)
        if not v6.comms then
            v6.comms = l_CrossPluginCommunication_0.new("Toolbox");
            v6.comms:OnInvoke("SetTutorialLimits", function(v8)
                v7:dispatch(v2(v8.assetIds, v8.positionOverride, v8.scriptWarningOverride));
                if v8.assetIds == nil then
                    v7:dispatch(v3(""));
                    return ;
                else
                    v7:dispatch(v4({
                        categoryName = v5.FREE_MODELS.name,
                        currentTab = v5.MARKETPLACE_KEY
                    }));
                    return ;
                end;
            end);
            return ;
        else
            return ;
        end;
    end,
    fire = function(v9, ...)
        if not (not v9.comms or not v9.comms.Fire) then
            v9.comms:Fire(...);
        end;
    end
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Cryo);
local l_Util_0 = l_Parent_0.Core.Util;
local v3 = require(l_Util_0.Colors);
local v4 = require(l_Util_0.createSignal);
local v5 = require(l_Util_0.wrapStrictTable);
local _ = require(l_Util_0.Images);
local _ = require(l_Util_0.Constants);
local v8 = require(l_Util_0.Test.TestHelpers);
local v9 = {};
v9.__index = v9;
v9.createDummyThemeManager = function()
    return v9.new({
        getTheme = {
            GetColor = function()
                return Color3.new(math.random(), math.random(), math.random());
            end
        },
        studioStyleGuideColor = v8.createMockStudioStyleGuideColor(),
        studioStyleGuideModifier = v8.createMockStudioStyleGuideModifier()
    });
end;
v9.new = function(v10)
    local v11 = {
        _externalThemeGetter = v10.getTheme or nil,
        _isDarkThemeGetter = v10.isDarkerTheme or false,
        _externalThemeChangedSignal = v10.themeChanged or nil,
        _studioStyleGuideColor = v10.studioStyleGuideColor or Enum.StudioStyleGuideColor,
        _studioStyleGuideModifier = v10.studioStyleGuideModifier or Enum.StudioStyleGuideModifier,
        _externalThemeChangedConnection = nil,
        _values = {},
        _UILibraryTheme = {},
        _signal = v4()
    };
    v11.values = v5(v11._values, "theme");
    setmetatable(v11, v9);
    if v11._externalThemeChangedSignal then
        v11._externalThemeChangedConnection = v11._externalThemeChangedSignal:Connect(function()
            v11:_recalculateTheme();
        end);
    end;
    v11:_recalculateTheme();
    return v11;
end;
v9.subscribe = function(v12, ...)
    return v12._signal:subscribe(...);
end;
v9.destroy = function(v13)
    if v13._externalThemeChangedConnection then
        v13._externalThemeChangedConnection:Disconnect();
        v13._externalThemeChangedConnection = nil;
    end;
end;
v9._update = function(v14, v15)
    v14._values = v1.Dictionary.join(v14._values, v15);
    v14.values = v5(v14._values, "theme");
    v14._signal:fire(v14.values, v14._UILibraryTheme);
end;
v9._getExternalTheme = function(v16)
    local l__externalThemeGetter_0 = v16._externalThemeGetter;
    if type(l__externalThemeGetter_0) == "function" then
        return l__externalThemeGetter_0();
    else
        return l__externalThemeGetter_0;
    end;
end;
v9._isDarkerTheme = function(v18)
    local l__isDarkThemeGetter_0 = v18._isDarkThemeGetter;
    if type(l__isDarkThemeGetter_0) == "function" then
        return l__isDarkThemeGetter_0(v18:_getExternalTheme());
    elseif not l__isDarkThemeGetter_0 then
        return false;
    else
        return true;
    end;
end;
v9._recalculateTheme = function(v20)
    local v21 = v20:_getExternalTheme();
    local v22 = v20:_isDarkerTheme();
    local l__studioStyleGuideColor_0 = v20._studioStyleGuideColor;
    local l__studioStyleGuideModifier_0 = v20._studioStyleGuideModifier;
    local function v25(...)
        return v21:GetColor(...);
    end;
    v20:_update({
        isDarkerTheme = v22,
        linkButton = {
            textColor = Color3.fromRGB(0, 162, 255)
        },
        toolbox = {
            backgroundColor = v25(l__studioStyleGuideColor_0.MainBackground)
        },
        loading = {
            text = v25(l__studioStyleGuideColor_0.MainText),
            backgroundBar = v25(l__studioStyleGuideColor_0.Midlight),
            bar = v25(l__studioStyleGuideColor_0.CurrentMarker)
        },
        searchBar = {
            backgroundColor = v25(l__studioStyleGuideColor_0.Dropdown),
            liveBackgroundColor = v25(l__studioStyleGuideColor_0.InputFieldBackground),
            borderColor = v25(l__studioStyleGuideColor_0.Border),
            borderHoveredColor = v25(l__studioStyleGuideColor_0.CurrentMarker),
            borderSelectedColor = v3.BLUE_PRIMARY,
            textColor = v25(l__studioStyleGuideColor_0.MainText),
            placeholderTextColor = v25(l__studioStyleGuideColor_0.DimmedText),
            divideLineColor = v25(l__studioStyleGuideColor_0.Border),
            searchButton = {
                imageColor = Color3.fromRGB(184, 184, 184),
                imageSelectedColor = Color3.fromRGB(0, 162, 255)
            },
            clearButton = {
                imageColor = Color3.fromRGB(184, 184, 184),
                imageSelectedColor = Color3.fromRGB(0, 162, 255)
            }
        },
        asset = {
            icon = {
                borderColor = v25(l__studioStyleGuideColor_0.Item, l__studioStyleGuideModifier_0.Hover)
            },
            progressBarColor = v3.BLUE_PRIMARY
        },
        infoBanner = {
            backgroundColor = v25(l__studioStyleGuideColor_0.Titlebar),
            textColor = v25(l__studioStyleGuideColor_0.SubText)
        },
        tooltip = {
            backgroundColor = v25(l__studioStyleGuideColor_0.MainBackground),
            borderColor = v25(l__studioStyleGuideColor_0.Border),
            textColor = v25(l__studioStyleGuideColor_0.MainText)
        },
        sortComponent = {
            labelTextColor = v25(l__studioStyleGuideColor_0.MainText)
        },
        radioButton = {
            textColor = v25(l__studioStyleGuideColor_0.MainText),
            background = v25(l__studioStyleGuideColor_0.InputFieldBackground)
        }
    });
end;
return v9;


local l_UGCValidationService_0 = game:GetService("UGCValidationService");
local l_AssetConfigCopyHandleCFrame_0 = game:GetFastFlag("AssetConfigCopyHandleCFrame");
local function v4(v2)
    if not (not (v2 and typeof(v2) == "Instance") or not v2:IsA("Accessory")) then
        local l_Handle_0 = v2:FindFirstChild("Handle");
        if not ((not l_Handle_0 or not l_Handle_0:IsA("MeshPart")) or not l_Handle_0:FindFirstChildOfClass("WrapLayer")) then
            return true;
        end;
    end;
    return false;
end;
return function(v5)
    if not v4(v5) then
        local l_Accessory_0 = Instance.new("Accessory");
        l_Accessory_0.Name = v5.Name;
        l_Accessory_0.Parent = v5.Parent;
        local l_Handle_1 = v5.Handle;
        local l_SpecialMesh_0 = l_Handle_1:FindFirstChildOfClass("SpecialMesh");
        local l_MeshPart_0 = Instance.new("MeshPart");
        l_MeshPart_0.Name = "Handle";
        l_MeshPart_0.TextureID = l_SpecialMesh_0.TextureId;
        l_MeshPart_0.Parent = l_Accessory_0;
        l_UGCValidationService_0:SetMeshIdBlocking(l_MeshPart_0, l_SpecialMesh_0.MeshId);
        l_MeshPart_0.Size = l_MeshPart_0.Size * l_SpecialMesh_0.Scale;
        if l_AssetConfigCopyHandleCFrame_0 then
            l_MeshPart_0.CFrame = l_Handle_1.CFrame;
        end;
        for _, v11 in pairs(l_Handle_1:GetChildren()) do
            if not v11:IsA("SpecialMesh") then
                v11:Clone().Parent = l_MeshPart_0;
            end;
        end;
        local l_ThumbnailConfiguration_0 = v5:FindFirstChild("ThumbnailConfiguration");
        if not (not l_ThumbnailConfiguration_0 or not l_ThumbnailConfiguration_0:IsA("Configuration")) then
            local l_ThumbnailCameraTarget_0 = l_ThumbnailConfiguration_0:FindFirstChild("ThumbnailCameraTarget");
            local l_ThumbnailCameraValue_0 = l_ThumbnailConfiguration_0:FindFirstChild("ThumbnailCameraValue");
            if not (((not l_ThumbnailCameraTarget_0 or not l_ThumbnailCameraTarget_0:IsA("ObjectValue")) or not l_ThumbnailCameraValue_0) or not l_ThumbnailCameraValue_0:IsA("CFrameValue")) then
                local v15 = l_ThumbnailConfiguration_0:Clone();
                v15.ThumbnailCameraTarget.Value = l_MeshPart_0;
                v15.Parent = l_Accessory_0;
            end;
        end;
        return l_Accessory_0;
    else
        return v5;
    end;
end;


return {
    from = function(v0, v1, _, v3)
        return {
            id = v0,
            imageId = v0,
            approved = v1 or false,
            isModerated = v3 or false
        };
    end,
    fromDevelop = function(v4)
        local v5 = true;
        if v4.reviewStatus ~= nil then
            v5 = true;
            if v4.reviewStatus ~= "Finished" then
                v5 = v4.reviewStatus == "DoesNotRequire";
            end;
        end;
        return {
            id = v4.id,
            imageId = v4.id,
            approved = v5,
            isModerated = v4.isModerated and v4.reviewStatus ~= "Pending"
        };
    end
};


local v0 = require(script.Parent.Parent.Parent.Core.Util.AssetConfigConstants);
return function(v1)
    local v2 = "";
    for _, v4 in ipairs(v1) do
        v2 = v2 .. "--" .. v0.MULTIPART_FORM_BOUNDARY .. "\r\n";
        if v4.type then
            v2 = v2 .. "Content-Type: " .. v4.type .. "\r\n";
        end;
        if v4.disposition then
            v2 = v2 .. "Content-Disposition: form-data; ";
            local v5 = true;
            for v6, v7 in pairs(v4.disposition) do
                if not v5 then
                    v2 = v2 .. "; ";
                end;
                v5 = false;
                v2 = v2 .. v6 .. "=\"" .. v7 .. "\"";
            end;
            v2 = v2 .. "\r\n";
        end;
        v2 = v2 .. "\r\n" .. v4.value .. "\r\n";
    end;
    return v2 .. "--" .. v0.MULTIPART_FORM_BOUNDARY .. "--" .. "\r\n";
end;


local function _(v0, v1, v2)
    local v3 = {};
    for v4, v5 in pairs(v0) do
        v3[v4] = v5;
    end;
    v3[v1] = v2;
    return v3;
end;
local function _(v7, v8)
    local v9 = {};
    for v10, v11 in pairs(v7) do
        if v10 ~= v8 then
            v9[v10] = v11;
        end;
    end;
    return v9;
end;
return function()
    local v13 = {};
    return {
        subscribe = function(_, v15)
            assert(typeof(v15) == "function", "Can only subscribe to signals with a function.");
            local v16 = {
                callback = v15,
                disconnected = false
            };
            local l_v13_0 = v13;
            local v18 = {};
            for v19, v20 in pairs(l_v13_0) do
                v18[v19] = v20;
            end;
            v18[v15] = v16;
            v13 = v18;
            return function()
                assert(not v16.disconnected, "Listeners can only be disconnected once.");
                v16.disconnected = true;
                local l_v13_1 = v13;
                local l_v15_0 = v15;
                local v23 = {};
                for v24, v25 in pairs(l_v13_1) do
                    if v24 ~= l_v15_0 then
                        v23[v24] = v25;
                    end;
                end;
                v13 = v23;
            end;
        end,
        fire = function(_, ...)
            for v27, v28 in pairs(v13) do
                if not v28.disconnected then
                    v27(...);
                end;
            end;
        end
    };
end;


return function(v0, v1)
    local v2 = nil;
    local v3 = false;
    local v4 = nil;
    return function(...)
        v2 = {
            ...
        };
        if v3 then
            if v4 ~= nil and coroutine.status(v4) == "suspended" then
                task.cancel(v4);
            end;
            v3 = false;
        end;
        if not v3 then
            v3 = true;
            v4 = task.delay(v1, function()
                v3 = false;
                v0(unpack(v2));
            end);
        end;
    end;
end;


return function(v0)
    local l_Parent_0 = v0.Parent;
    while true do
        if not l_Parent_0 then
            return nil;
        elseif l_Parent_0.SourceAssetId > 0 then
            return l_Parent_0;
        else
            l_Parent_0 = l_Parent_0.Parent;
        end;
    end;
end;


local function v0(v1)
    if v1 then
        local l_v1_FirstAncestorWhichIsA_0 = v1:FindFirstAncestorWhichIsA("Model");
        if not l_v1_FirstAncestorWhichIsA_0 then
            return nil;
        else
            local l_SourceAssetId_0 = l_v1_FirstAncestorWhichIsA_0.SourceAssetId;
            if l_SourceAssetId_0 and l_SourceAssetId_0 ~= -1 then
                return l_v1_FirstAncestorWhichIsA_0;
            else
                return v0(l_v1_FirstAncestorWhichIsA_0);
            end;
        end;
    else
        return nil;
    end;
end;
return v0;


local l_UGCValidationService_0 = game:GetService("UGCValidationService");
return function(v1)
    if v1 then
        local l_Handle_0 = v1:FindFirstChild("Handle");
        if not (not l_Handle_0 or not l_Handle_0:IsA("MeshPart")) then
            l_UGCValidationService_0:ResetCollisionFidelity(l_Handle_0);
        end;
    end;
end;


return function(v0)
    local l_v0_Descendants_0 = v0:GetDescendants();
    table.insert(l_v0_Descendants_0, v0);
    for _, v3 in l_v0_Descendants_0, nil, nil do
        if v3.Parent ~= nil and (not ((not v3:IsA("Motor6D") and v3.Name ~= "OriginalSize") and v3.Name ~= "OriginalPosition") or v3:IsA("Weld") and v3.Name == "AccessoryWeld") then
            v3:Destroy();
        else
            if v3:IsA("BasePart") then
                v3.Velocity = Vector3.zero;
                v3.RotVelocity = Vector3.zero;
            end;
            local v4 = not not v3.Parent and v3.Parent:IsA("Accessory");
            if not (not (not (not v3:IsA("MeshPart") or v4) and v3.TextureID == "") or v3:FindFirstChildWhichIsA("SurfaceAppearance")) then
                Instance.new("SurfaceAppearance").Parent = v3;
            end;
        end;
    end;
end;


local v0 = require(script.Parent.Parent.Parent.Core.Util.AssetConfigConstants);
return function(v1)
    local v2 = {};
    if v1 then
        for _, v4 in ipairs(v0.ASSET_TYPE_INFO) do
            if not (not v4.isCatalog or not v4.isUploadable) and v1[v4.type.Name] ~= nil then
                v2[#v2 + 1] = v4.type;
            end;
        end;
    end;
    return v2;
end;


local v0 = require(script:FindFirstAncestor("Toolbox").Core.Util.DebugFlags);
return function(v1, v2, v3)
    if v1 then
        if v1:isReady() then
            local v4 = v1:getVariables()[v2];
            if not v4 or not v4[v3] then
                return false;
            else
                return true;
            end;
        else
            return nil;
        end;
    else
        if v0.shouldDebugWarnings() then
            warn("ixp was undefined");
        end;
        return nil;
    end;
end;


return function(v0, v1, v2)
    if not (v1.X ~= 0) or v1.Y == 0 then
        return false;
    else
        local v3 = false;
        if v2.X <= v0.X then
            v3 = false;
            if v0.X <= v1.X + v2.X then
                v3 = false;
                if v2.Y <= v0.Y then
                    v3 = v0.Y <= v1.Y + v2.Y;
                end;
            end;
        end;
        return v3;
    end;
end;


local v0 = require(script:FindFirstAncestor("Toolbox").Core.Util.DebugFlags);
return function()
    local v1 = -1;
    local l_status_0, l_result_0 = pcall(function()
        v1 = game.PlaceId;
    end);
    if not (l_status_0 or not v0.shouldDebugWarnings()) then
        warn(l_result_0);
    end;
    return v1;
end;


local l_ContentProvider_0 = game:GetService("ContentProvider");
local l_HttpService_0 = game:GetService("HttpService");
local l_Util_0 = script.Parent.Parent.Parent.Core.Util;
local _ = require(l_Util_0.AssetConfigConstants);
local v4 = require(l_Util_0.EnumConvert);
return function(v5, v6)
    local l_BaseUrl_0 = l_ContentProvider_0.BaseUrl;
    local _ = v4.convertAssetTypeValueToEnum(v6);
    return string.format("%s/abusereport/asset?id=%s", l_BaseUrl_0, l_HttpService_0:urlEncode(v5));
end;


local l_Util_0 = script:FindFirstAncestor("Toolbox").Core.Util;
local v1 = require(l_Util_0.Constants);
local v2 = require(l_Util_0.SharedFlags.getFFlagEnableCreateUGCBundleCreationFeeErrorCodes);
local v3 = require(l_Util_0.SharedFlags.getFFlagEnableUnknownErrorCreatorDashboardMessage);
return function(v4, v5, v6)
    assert(v2());
    if v4 > 0 then
        if not v3() or not v6 then
            return "\n" .. v5:getText("AssetConfig", "CreateBundleNoRobuxDeducted");
        else
            return "\n" .. v5:getText("AssetConfig", "SomethingWentWrongMsgWithDashboardLink", {
                creatorDashboardLink = v1.CREATOR_DASHBOARD_LINK_PLACEHOLDER
            });
        end;
    else
        return "";
    end;
end;


local l_StudioService_0 = game:GetService("StudioService");
local v1 = require(script.Parent.isCli);
return function()
    if not v1() then
        return l_StudioService_0:getStartupAssetId();
    else
        return "";
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Core.Types.Category);
local v2 = require(l_Parent_0.Core.Util.DebugFlags);
local v3 = require(l_Parent_0.Core.Util.getAllowedAssetTypeEnums);
local v4 = require(l_Parent_0.Core.Util.Images);
local l_disableMarketplaceAndRecents_0 = require(l_Parent_0.Core.Util.ToolboxUtilities).disableMarketplaceAndRecents;
local l_showRobloxCreatedAssets_0 = require(l_Parent_0.Core.Util.ToolboxUtilities).showRobloxCreatedAssets;
local v7 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagToolboxContentManagementCombineTabs);
local v8 = require(l_Parent_0.Core.Util.SharedFlags.getIsIXPEnabledForListView);
return function(v9, v10, v11)
    if not (not v7() or not v2.shouldDebugWarnings()) and v11 == nil then
        warn("IXP variable was not found for getCategoryIndex");
    end;
    if not v7() or not v8(v11) then
        if not l_disableMarketplaceAndRecents_0() then
            if not l_showRobloxCreatedAssets_0() then
                return {
                    {
                        Key = v1.MARKETPLACE_KEY,
                        Text = v9:getText("General", "TabCreatorStore"),
                        Image = v4.MARKETPLACE_TAB
                    },
                    {
                        Key = v1.INVENTORY_KEY,
                        Text = v9:getText("General", "TabInventory"),
                        Image = v4.INVENTORY_TAB
                    },
                    {
                        Key = v1.RECENT_KEY,
                        Text = v9:getText("General", "TabRecent"),
                        Image = v4.RECENT_TAB
                    },
                    {
                        Key = v1.CREATIONS_KEY,
                        Text = v9:getText("General", "TabCreations"),
                        Image = v4.CREATIONS_TAB
                    }
                };
            else
                return {
                    {
                        Key = v1.MARKETPLACE_KEY,
                        Text = v9:getText("General", "TabCreatorStore"),
                        Image = v4.MARKETPLACE_TAB
                    },
                    {
                        Key = v1.INVENTORY_KEY,
                        Text = v9:getText("General", "TabInventory"),
                        Image = v4.INVENTORY_TAB
                    },
                    {
                        Key = v1.CREATIONS_KEY,
                        Text = v9:getText("General", "TabCreations"),
                        Image = v4.CREATIONS_TAB
                    }
                };
            end;
        else
            return {
                {
                    Key = v1.INVENTORY_KEY,
                    Text = v9:getText("General", "TabInventory"),
                    Image = v4.INVENTORY_TAB
                },
                {
                    Key = v1.CREATIONS_KEY,
                    Text = v9:getText("General", "TabCreations"),
                    Image = v4.CREATIONS_TAB
                }
            };
        end;
    else
        local v12 = {
            {
                Key = v1.MARKETPLACE_KEY,
                Text = v9:getText("General", "TabCreatorStore"),
                Image = v4.MARKETPLACE_TAB
            },
            {
                Key = v1.INVENTORY_KEY,
                Text = v9:getText("General", "TabInventory"),
                Image = v4.INVENTORY_TAB
            },
            {
                Key = v1.RECENT_KEY,
                Text = v9:getText("General", "TabRecent"),
                Image = v4.RECENT_TAB
            }
        };
        if #if not v10 then nil else v3(v10.allowedAssetTypesForRelease) > 0 then
            table.insert(v12, {
                Key = v1.CREATIONS_KEY,
                Text = v9:getText("General", "TabCreations"),
                Image = v4.CREATIONS_TAB
            });
        end;
        return v12;
    end;
end;


return function(v0, v1)
    local v2 = math.floor(v0 / 60);
    local v3 = math.floor(v0 % 60);
    if v1 ~= nil and v3 == 0 then
        v3 = math.max(v3, v1);
    end;
    return string.format("%d:%02d", v2, v3);
end;


local l_StudioService_0 = game:GetService("StudioService");
local _ = require(script.Parent.Parent.Parent.Core.Types.UGCValidationTypes);
return function()
    return {
        {
            creatorType = "User",
            id = l_StudioService_0:GetUserId()
        }
    };
end;


local l_StudioService_0 = game:GetService("StudioService");
local v1 = require(script.Parent.isCli);
return function()
    local v2 = 0;
    if not v1() then
        pcall(function()
            v2 = l_StudioService_0:GetUserId();
        end);
        return v2;
    else
        return 1;
    end;
end;


local l_StudioService_0 = game:GetService("StudioService");
local l_Players_0 = game:GetService("Players");
local v2 = require(script.Parent.isCli);
return function()
    local v3 = "";
    if not v2() then
        pcall(function()
            v3 = l_Players_0:GetNameFromUserIdAsync((l_StudioService_0:GetUserId()));
        end);
        return v3;
    else
        return 1;
    end;
end;


local l_status_0, _ = pcall(function()
    return game:GetService("ProcessService");
end);
return function()
    return l_status_0;
end;


local l_Packages_0 = script:FindFirstAncestor("Toolbox").Packages;
local _ = require(l_Packages_0.Framework);
local v2 = require(l_Packages_0.Dash);
return function(v3, v4, _)
    local v6 = v3:getVariables()[v4];
    if not v6 then
        return false;
    else
        return v2.find(v6, function(v7)
            local l_DomainSearchAlgorithmName_0 = v7.DomainSearchAlgorithmName;
            local v9 = false;
            if l_DomainSearchAlgorithmName_0 ~= nil then
                v9 = string.find(string.lower(l_DomainSearchAlgorithmName_0), "semantic");
            end;
            return v9;
        end) ~= nil;
    end;
end;


return function(v0)
    if not (not (v0 and typeof(v0) == "Instance") or not v0:IsA("Accessory")) then
        local l_Handle_0 = v0:FindFirstChild("Handle");
        if not ((not l_Handle_0 or not l_Handle_0:IsA("MeshPart")) or not l_Handle_0:FindFirstChildOfClass("WrapLayer")) then
            return true;
        end;
    end;
    return false;
end;


return function(v0, v1)
    assert(typeof(v0) == "number", "userId must be a number");
    assert(v0 % 1 == 0, "userId must be an integer");
    assert(typeof(v1) == "number", "rolloutPercentage must be a number");
    assert(v1 % 1 == 0, "rolloutPercentage must be an integer");
    assert(v1 >= 0, "rolloutPercentage must be >= 0");
    assert(v1 <= 100, "rolloutPercentage must be <= 100");
    return v0 % 100 < v1;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local l_Util_0 = l_script_FirstAncestor_0.Core.Util;
local v2 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxAddRecentSearchesToAutoComplete);
local v3 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxEnableAssetRows);
local v4 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxPillsForCreators);
local v5 = require(l_script_FirstAncestor_0.Core.Util.SharedFlags.getFFlagToolboxEnableSearchOptionsRefactor);
local v6 = require(l_Util_0.SharedFlags.getFFlagEnableUGCUploadingDataSharing);
local v7 = require(l_script_FirstAncestor_0.Core.Util.Images);
local l_Packages_0 = l_script_FirstAncestor_0.Packages;
local v9 = require(l_Packages_0.Framework);
local v10 = require(l_Packages_0.Cryo);
local v11 = require(l_Packages_0.Dash);
local v12 = require(l_Util_0.Colors);
local v13 = require(l_Util_0.isCli);
local l_DarkTheme_0 = v9.Style.Themes.DarkTheme;
local l_getRawComponentStyle_0 = v9.Style.getRawComponentStyle;
local l_LightTheme_0 = v9.Style.Themes.LightTheme;
local l_StudioTheme_0 = v9.Style.Themes.StudioTheme;
local l_Colors_0 = v9.Style.Colors;
local l_StyleKey_0 = v9.Style.StyleKey;
local l_ComponentSymbols_0 = v9.Style.ComponentSymbols;
local l_StyleModifier_0 = v9.Util.StyleModifier;
local l_Image_0 = v9.UI.Image;
local function v31(v23, v24, v25, v26, v27, v28)
    local v29 = v28 or l_StyleKey_0.DialogMainButton;
    local v30 = {
        AnchorPoint = Vector2.new(0.5, 0.5),
        Position = v27 or UDim2.new(0.5, 0, 0.5, 0),
        Color = v25 or Color3.fromRGB(184, 184, 184),
        Image = v23,
        Size = v26 or UDim2.new(0.6, 0, 0.6, 0),
        ScaleType = Enum.ScaleType.Fit
    };
    return {
        Foreground = l_Image_0,
        ForegroundStyle = v30,
        [l_StyleModifier_0.Hover] = {
            ForegroundStyle = v10.Dictionary.join(v30, {
                Image = v24,
                Color = v29
            })
        }
    };
end;
local v32 = if not v2() then nil else v9.Util.StyleModifier;
return function(v33, v34)
    v34 = v34 or l_StudioTheme_0;
    local v35 = nil;
    local v36 = v10.Dictionary.join(l_DarkTheme_0, {
        [l_StyleKey_0.Toolbox_PublishAssetBackground] = l_Colors_0.Slate,
        [l_StyleKey_0.Toolbox_AssetOutlineBackground] = Color3.fromHex("#3B3B3B"),
        [l_StyleKey_0.Toolbox_AssetOutlineBoarderColor] = Color3.fromHex("#121212"),
        [l_StyleKey_0.Toolbox_AssetOutlineTransparency] = 0,
        [l_StyleKey_0.Toolbox_AssetOutlineVerifiedBackground] = Color3.fromRGB(12, 43, 89),
        [l_StyleKey_0.Toolbox_AssetDropdownSize] = 8,
        [l_StyleKey_0.Toolbox_AssetBorderSize] = 0,
        [l_StyleKey_0.Toolbox_AssetBackgroundColor] = Color3.fromRGB(41, 41, 41),
        [l_StyleKey_0.Toolbox_AssetBackgroundImage] = "",
        [l_StyleKey_0.Toolbox_AssetNameColor] = Color3.fromRGB(60, 180, 255),
        [l_StyleKey_0.Toolbox_AssetIconColor] = Color3.fromRGB(178, 178, 178),
        [l_StyleKey_0.Toolbox_AssetWarningIcon] = Color3.fromHex("#F8A544"),
        [l_StyleKey_0.Toolbox_CreatorLabelTextColor] = if not v4() then nil else Color3.fromHex("#FAFAFA"),
        [l_StyleKey_0.Toolbox_CreatorLabelThumbnailBackgroundColor] = if not v4() then nil else Color3.fromHex("#D9D9D9"),
        [l_StyleKey_0.Toolbox_CreatorPillBackgroundColor] = if not v4() then nil else Color3.fromHex("#3B3B3B"),
        [l_StyleKey_0.Toolbox_DialogErrorIcon] = "rbxasset://studio_svg_textures/Lua/Toolbox/Dark/Large/DialogError.png",
        [l_StyleKey_0.Toolbox_ItemRowBackgroundColorEven] = Color3.fromHex("#222222"),
        [l_StyleKey_0.Toolbox_ItemRowBackgroundColorOdd] = Color3.fromHex("#2C2C2C"),
        [l_StyleKey_0.Toolbox_ItemRowBorderColor] = Color3.fromHex("#024897"),
        [l_StyleKey_0.Toolbox_ItemRowHeaderTextColor] = Color3.fromHex("#989898"),
        [l_StyleKey_0.Toolbox_ItemRowTitleTextColor] = Color3.fromHex("#52ADF4"),
        [l_StyleKey_0.Toolbox_ItemRowTextColor] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_AudioPlayerBackgroundColor] = Color3.fromHex("#171717"),
        [l_StyleKey_0.Toolbox_AudioPlayerProgressBarColor] = Color3.fromHex("#0077D6"),
        [l_StyleKey_0.Toolbox_AudioPlayerIndicatorColor] = Color3.fromHex("#555555"),
        [l_StyleKey_0.Toolbox_AudioPlayerIndicatorBorderColor] = Color3.fromHex("#555555"),
        [l_StyleKey_0.Toolbox_AudioTabSelectedTextColor] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_DeleteIconColor] = Color3.fromRGB(136, 136, 136),
        [l_StyleKey_0.Toolbox_DropdownItemSelectedColor] = l_Colors_0.Blue_Dark,
        [l_StyleKey_0.Toolbox_DropdownIconColor] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_FontTileBackgroundColor] = Color3.fromHex("#292929"),
        [l_StyleKey_0.Toolbox_FontTileHoveredBackgroundColor] = Color3.fromHex("#3B3B3B"),
        [l_StyleKey_0.Toolbox_FontTileTextFillColor] = Color3.fromHex("#FFFFFF"),
        [l_StyleKey_0.Toolbox_HorizontalLineColor] = Color3.fromRGB(34, 34, 34),
        [l_StyleKey_0.Toolbox_NavigationLinkTextColor] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_NavigationLinkTextColorHover] = Color3.fromHex("#AAAAAA"),
        [l_StyleKey_0.Toolbox_PackageBackgroundColor] = l_Colors_0.Black,
        [l_StyleKey_0.Toolbox_PackageBackgroundTransparency] = 0.5,
        [l_StyleKey_0.Toolbox_PackageImage] = v7.PACKAGE_DARK,
        [l_StyleKey_0.ScrollingFrameBackgroundColor] = Color3.fromRGB(41, 41, 41),
        [l_StyleKey_0.ScrollingFrameImageColor] = Color3.fromRGB(85, 85, 85),
        [l_StyleKey_0.Toolbox_SearchTagBackgroundColor] = Color3.fromRGB(56, 56, 56),
        [l_StyleKey_0.Toolbox_SearchPillTextColor] = Color3.fromHex("#FAFAFA"),
        [l_StyleKey_0.Toolbox_SearchPillBackgroundColor] = Color3.fromHex("#3B3B3B"),
        [l_StyleKey_0.Toolbox_SearchPillBackgroundColorHovered] = Color3.fromHex("#565656"),
        [l_StyleKey_0.Toolbox_TabTopBorderColor] = l_Colors_0.Blue,
        [l_StyleKey_0.Toolbox_TabSelectedColor] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_IconTileGradientColor] = l_Colors_0.Black,
        [l_StyleKey_0.Toolbox_HomeviewBackgroundColor] = l_Colors_0.Slate,
        [l_StyleKey_0.Toolbox_SearchOptionButtonHover] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_RateTextColor] = Color3.fromHex("#BDBEBE"),
        [l_StyleKey_0.Toolbox_VoteCountColor] = Color3.fromHex("#AAAAAA"),
        [l_StyleKey_0.Toolbox_LowConfidencePercentageColor] = Color3.fromHex("#CCCCCC"),
        [l_StyleKey_0.Toolbox_VotingButtonsBackgroundBoxColor] = Color3.fromHex("#FFFFFF"),
        [l_StyleKey_0.Toolbox_VotingButtonImage] = v7.THUMB_UP_WHITE,
        [l_StyleKey_0.Toolbox_SearchIconColor] = Color3.fromRGB(225, 225, 225),
        [l_StyleKey_0.Toolbox_ClearButtonColor] = l_StyleKey_0.SecondaryMain.Dark,
        [l_StyleKey_0.AssetConfig_DividerHorizontalLineColor] = l_Colors_0.Carbon,
        [l_StyleKey_0.AssetConfig_PreviewSelectedColor] = l_Colors_0.White,
        [l_StyleKey_0.AssetConfig_SidetabSelectedBarColor] = Color3.fromRGB(11, 90, 175),
        [l_StyleKey_0.AssetConfig_SidetabSelectedBarTransparency] = 0,
        [l_StyleKey_0.AssetConfig_SidetabSelectedBarZIndex] = -1,
        [l_StyleKey_0.AssetConfig_SidetabSelectedIndicatorZindex] = 1,
        [l_StyleKey_0.AssetConfig_UploadResultButtonColor] = Color3.fromRGB(136, 136, 136),
        [l_StyleKey_0.AssetConfig_SubjectThumbnailDefaultImageColor] = Color3.fromRGB(102, 102, 102),
        [l_StyleKey_0.AssetConfig_DistributionQuotaTextColor] = l_Colors_0.White
    });
    local v37 = v10.Dictionary.join(l_LightTheme_0, {
        [l_StyleKey_0.Toolbox_PublishAssetBackground] = l_Colors_0.Slate,
        [l_StyleKey_0.Toolbox_AssetOutlineBackground] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_AssetOutlineBoarderColor] = Color3.fromHex("#989898"),
        [l_StyleKey_0.Toolbox_AssetOutlineTransparency] = 0.08,
        [l_StyleKey_0.Toolbox_AssetOutlineVerifiedBackground] = Color3.fromRGB(229, 243, 255),
        [l_StyleKey_0.Toolbox_AssetDropdownSize] = 0,
        [l_StyleKey_0.Toolbox_AssetBorderSize] = 0,
        [l_StyleKey_0.Toolbox_AssetBackgroundColor] = Color3.fromRGB(225, 225, 225),
        [l_StyleKey_0.Toolbox_AssetBackgroundImage] = v7.NO_BACKGROUND_ICON,
        [l_StyleKey_0.Toolbox_AssetNameColor] = Color3.fromHex("#0B5AAF"),
        [l_StyleKey_0.Toolbox_AssetIconColor] = Color3.fromRGB(170, 170, 170),
        [l_StyleKey_0.Toolbox_AssetWarningIcon] = Color3.fromHex("#BC6600"),
        [l_StyleKey_0.Toolbox_AudioPlayerBackgroundColor] = Color3.fromHex("#E1E1E1"),
        [l_StyleKey_0.Toolbox_AudioPlayerProgressBarColor] = Color3.fromHex("#0077D6"),
        [l_StyleKey_0.Toolbox_AudioPlayerIndicatorColor] = Color3.fromHex("#CBCBCB"),
        [l_StyleKey_0.Toolbox_AudioPlayerIndicatorBorderColor] = Color3.fromHex("#222222"),
        [l_StyleKey_0.Toolbox_DialogErrorIcon] = "rbxasset://studio_svg_textures/Lua/Toolbox/Light/Large/DialogError.png",
        [l_StyleKey_0.Toolbox_CreatorLabelTextColor] = if not v4() then nil else Color3.fromHex("#191919"),
        [l_StyleKey_0.Toolbox_CreatorLabelThumbnailBackgroundColor] = if not v4() then nil else Color3.fromHex("#CBCBCB"),
        [l_StyleKey_0.Toolbox_CreatorPillBackgroundColor] = if not v4() then nil else Color3.fromHex("#E1E1E1"),
        [l_StyleKey_0.Toolbox_ItemRowBackgroundColorEven] = Color3.fromHex("#EDEDED"),
        [l_StyleKey_0.Toolbox_ItemRowBackgroundColorOdd] = Color3.fromHex("#FAFAFA"),
        [l_StyleKey_0.Toolbox_ItemRowBorderColor] = Color3.fromHex("#3DB3FF"),
        [l_StyleKey_0.Toolbox_ItemRowHeaderTextColor] = Color3.fromHex("#3B3B3B"),
        [l_StyleKey_0.Toolbox_ItemRowTitleTextColor] = Color3.fromHex("#0055AC"),
        [l_StyleKey_0.Toolbox_ItemRowTextColor] = Color3.fromHex("#171717"),
        [l_StyleKey_0.Toolbox_AudioTabSelectedTextColor] = Color3.fromHex("#FAFAFA"),
        [l_StyleKey_0.Toolbox_DeleteIconColor] = Color3.fromRGB(184, 184, 184),
        [l_StyleKey_0.Toolbox_DropdownItemSelectedColor] = l_Colors_0.Blue_Light,
        [l_StyleKey_0.Toolbox_DropdownIconColor] = Color3.fromRGB(25, 25, 25),
        [l_StyleKey_0.Toolbox_FontTileBackgroundColor] = Color3.fromHex("#FFFFFF"),
        [l_StyleKey_0.Toolbox_FontTileHoveredBackgroundColor] = Color3.fromHex("#E3F0FB"),
        [l_StyleKey_0.Toolbox_FontTileTextFillColor] = Color3.fromHex("#393B3D"),
        [l_StyleKey_0.Toolbox_HorizontalLineColor] = Color3.fromRGB(227, 227, 227),
        [l_StyleKey_0.Toolbox_NavigationLinkTextColor] = Color3.fromHex("#121212"),
        [l_StyleKey_0.Toolbox_NavigationLinkTextColorHover] = Color3.fromHex("#666666"),
        [l_StyleKey_0.Toolbox_PackageBackgroundColor] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_PackageBackgroundTransparency] = 0.25,
        [l_StyleKey_0.Toolbox_PackageImage] = v7.PACKAGE_LIGHT,
        [l_StyleKey_0.ScrollingFrameBackgroundColor] = Color3.fromRGB(245, 245, 245),
        [l_StyleKey_0.ScrollingFrameImageColor] = Color3.fromRGB(245, 245, 245),
        [l_StyleKey_0.Toolbox_SearchTagBackgroundColor] = l_Colors_0.Gray_Lighter,
        [l_StyleKey_0.Toolbox_SearchPillTextColor] = Color3.fromHex("#191919"),
        [l_StyleKey_0.Toolbox_SearchPillBackgroundColor] = Color3.fromHex("#E1E1E1"),
        [l_StyleKey_0.Toolbox_SearchPillBackgroundColorHovered] = Color3.fromHex("#CBCBCB"),
        [l_StyleKey_0.Toolbox_TabTopBorderColor] = Color3.fromRGB(182, 182, 182),
        [l_StyleKey_0.Toolbox_TabSelectedColor] = l_Colors_0.Blue,
        [l_StyleKey_0.Toolbox_IconTileGradientColor] = l_Colors_0.Gray_Light,
        [l_StyleKey_0.Toolbox_HomeviewBackgroundColor] = l_Colors_0.White,
        [l_StyleKey_0.Toolbox_SearchOptionButtonHover] = l_Colors_0.Black,
        [l_StyleKey_0.Toolbox_RateTextColor] = Color3.fromHex("#3B3B3B"),
        [l_StyleKey_0.Toolbox_VoteCountColor] = Color3.fromHex("#666666"),
        [l_StyleKey_0.Toolbox_LowConfidencePercentageColor] = Color3.fromHex("#666666"),
        [l_StyleKey_0.Toolbox_VotingButtonsBackgroundBoxColor] = Color3.fromHex("#000000"),
        [l_StyleKey_0.Toolbox_VotingButtonImage] = v7.THUMB_UP_DARK_GRAY,
        [l_StyleKey_0.Toolbox_SearchIconColor] = Color3.fromRGB(94, 94, 94),
        [l_StyleKey_0.Toolbox_ClearButtonColor] = l_StyleKey_0.SecondaryMain.Light,
        [l_StyleKey_0.AssetConfig_DividerHorizontalLineColor] = Color3.fromRGB(227, 227, 227),
        [l_StyleKey_0.AssetConfig_PreviewSelectedColor] = l_Colors_0.Blue,
        [l_StyleKey_0.AssetConfig_SidetabSelectedBarColor] = v12.GRAY_1,
        [l_StyleKey_0.AssetConfig_SidetabSelectedBarTransparency] = 0.9,
        [l_StyleKey_0.AssetConfig_SidetabSelectedBarZIndex] = 0,
        [l_StyleKey_0.AssetConfig_SidetabSelectedIndicatorZindex] = 0,
        [l_StyleKey_0.AssetConfig_UploadResultButtonColor] = l_Colors_0.Black,
        [l_StyleKey_0.AssetConfig_SubjectThumbnailDefaultImageColor] = Color3.fromRGB(151, 151, 151),
        [l_StyleKey_0.AssetConfig_DistributionQuotaTextColor] = l_Colors_0.Black
    });
    v35 = if not v13() then v34.new(v36, v37) else l_StudioTheme_0.mock(v36, v37);
    v35:extend({
        backgroundColor = l_StyleKey_0.InputFieldBackground,
        progressBarColor = v12.BLUE_PRIMARY,
        horizontalLineColor = l_StyleKey_0.Toolbox_HorizontalLineColor,
        link = l_StyleKey_0.LinkText,
        redText = Color3.fromRGB(255, 68, 68),
        spacingUnit = 10,
        announcementDialog = {
            backgroundColor = l_StyleKey_0.MainBackground,
            closeIconColor = l_Colors_0.White,
            descriptionColor = l_StyleKey_0.TextPrimary,
            headerTextColor = l_StyleKey_0.BrightText,
            overlayColor = l_Colors_0.Black,
            overlayTransparency = 0.4
        },
        asset = {
            assetName = {
                textColor = l_StyleKey_0.Toolbox_AssetNameColor
            },
            background = {
                color = l_StyleKey_0.Toolbox_AssetBackgroundColor,
                borderSize = l_StyleKey_0.Toolbox_AssetBorderSize,
                image = l_StyleKey_0.Toolbox_AssetBackgroundImage
            },
            dropShadowSize = l_StyleKey_0.Toolbox_AssetDropdownSize,
            icon = {
                borderColor = l_StyleKey_0.ItemHovered,
                buttonColor = l_StyleKey_0.Toolbox_AssetIconColor,
                warningColor = l_StyleKey_0.Toolbox_AssetWarningIcon
            },
            outline = {
                backgroundColor = l_StyleKey_0.Toolbox_AssetOutlineBackground,
                verifiedBackgroundColor = l_StyleKey_0.Toolbox_AssetOutlineVerifiedBackground,
                borderColor = l_StyleKey_0.Toolbox_AssetOutlineBoarderColor,
                transparency = l_StyleKey_0.Toolbox_AssetOutlineTransparency
            },
            textColor = l_StyleKey_0.MainText,
            strokeThickness = 3,
            strokeColor = v12.BLUE_PRIMARY,
            voting = {
                downVotes = Color3.fromRGB(206, 100, 91),
                upVotes = Color3.fromRGB(82, 168, 70),
                textColor = l_StyleKey_0.SubText,
                votedDownThumb = Color3.fromRGB(216, 104, 104),
                votedUpThumb = Color3.fromRGB(0, 178, 89),
                voteThumb = Color3.fromRGB(117, 117, 117),
                rateTextColor = l_StyleKey_0.Toolbox_RateTextColor,
                voteCountColor = l_StyleKey_0.Toolbox_VoteCountColor,
                lowConfidencePercentageColor = l_StyleKey_0.Toolbox_LowConfidencePercentageColor,
                votingButtonsBackgroundBoxColor = l_StyleKey_0.Toolbox_VotingButtonsBackgroundBoxColor,
                votingButtonImage = l_StyleKey_0.Toolbox_VotingButtonImage
            },
            packages = {
                backgroundColor = l_StyleKey_0.Toolbox_PackageBackgroundColor,
                backgroundTransparency = l_StyleKey_0.Toolbox_PackageBackgroundTransparency,
                packageImage = l_StyleKey_0.Toolbox_PackageImage
            }
        },
        assetConfig = {
            labelTextColor = l_StyleKey_0.DimmedText
        },
        audioPlayer = {
            backgroundColor = l_StyleKey_0.Toolbox_AudioPlayerBackgroundColor,
            progressBarColor = l_StyleKey_0.Toolbox_AudioPlayerProgressBarColor,
            indicatorColor = l_StyleKey_0.Toolbox_AudioPlayerIndicatorColor,
            indicatorBorderColor = l_StyleKey_0.Toolbox_AudioPlayerIndicatorBorderColor
        },
        audioTabs = {
            backgroundButtonColor = l_StyleKey_0.Toolbox_AudioPlayerBackgroundColor,
            selectedButtonColor = Color3.fromHex("#0077D6"),
            selectedTextColor = l_StyleKey_0.Toolbox_AudioTabSelectedTextColor,
            textColor = l_StyleKey_0.TextSecondary
        },
        creatorLabel = if not v4() then nil else {
            spacingUnit = 10,
            textSize = 18,
            font = Enum.Font.SourceSans,
            thumbnailBackgroundColor = l_StyleKey_0.Toolbox_CreatorLabelThumbnailBackgroundColor,
            textColor = l_StyleKey_0.Toolbox_CreatorLabelTextColor
        },
        creatorPill = if not v4() then nil else {
            spacingUnit = 10,
            backgroundColor = l_StyleKey_0.Toolbox_CreatorPillBackgroundColor
        },
        creatorName = {
            textColor = l_StyleKey_0.SubText
        },
        dialog = {
            errorIcon = l_StyleKey_0.Toolbox_DialogErrorIcon
        },
        dropdownMenu = {
            dropdownIconColor = l_StyleKey_0.Toolbox_DropdownIconColor,
            currentSelection = {
                backgroundColor = l_StyleKey_0.Dropdown,
                backgroundSelectedColor = l_StyleKey_0.CurrentMarker,
                backgroundDisabledColor = l_StyleKey_0.Border,
                borderColor = l_StyleKey_0.Border,
                borderSelectedColor = l_StyleKey_0.CurrentMarker,
                textColor = l_StyleKey_0.MainText,
                textSelectedColor = l_StyleKey_0.MainTextSelected
            },
            item = {
                backgroundColor = l_StyleKey_0.Item,
                backgroundSelectedColor = l_StyleKey_0.Toolbox_DropdownItemSelectedColor,
                selectedBarColor = l_StyleKey_0.CurrentMarker,
                textColor = l_StyleKey_0.MainText,
                labelTextColor = l_StyleKey_0.DimmedText
            },
            dropdownFrame = {
                borderColor = l_StyleKey_0.Border
            }
        },
        fontTile = {
            backgroundColor = l_StyleKey_0.Toolbox_FontTileBackgroundColor,
            hoveredBackgroundColor = l_StyleKey_0.Toolbox_FontTileHoveredBackgroundColor,
            textFillColor = l_StyleKey_0.Toolbox_FontTileTextFillColor
        },
        footer = {
            backgroundColor = l_StyleKey_0.Titlebar,
            borderColor = l_StyleKey_0.Border,
            labelTextColor = l_StyleKey_0.MainText,
            button = {
                backgroundColor = l_StyleKey_0.Dropdown,
                backgroundSelectedColor = l_StyleKey_0.CurrentMarker,
                borderColor = l_StyleKey_0.Border,
                borderSelectedColor = l_StyleKey_0.CurrentMarker,
                textColor = l_StyleKey_0.MainText,
                textSelectedColor = l_StyleKey_0.MainTextSelected
            }
        },
        header = {
            backgroundColor = l_StyleKey_0.Titlebar,
            borderColor = l_StyleKey_0.Border,
            iconColor = if not v3() then nil else v12.GRAY_2
        },
        homeView = {
            backgroundColor = l_StyleKey_0.Toolbox_HomeviewBackgroundColor
        },
        iconTile = {
            font = Enum.Font.SourceSansBold,
            gradientColor = l_StyleKey_0.Toolbox_IconTileGradientColor,
            overlayColor = Color3.fromHex("#000"),
            overlayTransparency = 0.88,
            padding = 8,
            spacing = 16,
            textColor = Color3.fromHex("#E1E1E1"),
            textColorHovered = nil,
            textSize = 16
        },
        infoBanner = {
            backgroundColor = l_StyleKey_0.Titlebar,
            textColor = l_StyleKey_0.SubText
        },
        itemRow = {
            backgroundColorEven = l_StyleKey_0.Toolbox_ItemRowBackgroundColorEven,
            backgroundColorOdd = l_StyleKey_0.Toolbox_ItemRowBackgroundColorOdd,
            borderColor = l_StyleKey_0.Toolbox_ItemRowBorderColor,
            headerTextColor = l_StyleKey_0.Toolbox_ItemRowHeaderTextColor,
            titleTextColor = l_StyleKey_0.Toolbox_ItemRowTitleTextColor,
            primaryIconColor = Color3.fromHex("#DF9251"),
            textColor = l_StyleKey_0.SubText,
            textSize = 16,
            playButtonColor = v12.BLACK,
            pauseButtonColor = v12.BLUE_PRIMARY,
            insertButtonColor = Color3.fromHex("#0077D6"),
            insertButtonTextColor = v12.WHITE
        },
        linkButton = {
            textColor = Color3.fromRGB(0, 162, 255)
        },
        messageBox = {
            backgroundColor = l_StyleKey_0.MainBackground,
            textColor = l_StyleKey_0.MainText,
            informativeTextColor = l_StyleKey_0.SubText,
            button = {
                textColor = l_StyleKey_0.MainText,
                textSelectedColor = l_StyleKey_0.MainTextSelected,
                backgroundColor = l_StyleKey_0.MainBackground,
                backgroundSelectedColor = l_StyleKey_0.CurrentMarker,
                borderColor = l_StyleKey_0.Border,
                borderSelectedColor = l_StyleKey_0.CurrentMarker
            }
        },
        purchaseDialog = {
            promptText = l_StyleKey_0.MainText,
            balanceText = l_StyleKey_0.DimmedText
        },
        publishAsset = {
            backgroundColor = l_StyleKey_0.Toolbox_PublishAssetBackground,
            distributionQuotaTextColor = l_StyleKey_0.AssetConfig_DistributionQuotaTextColor,
            titleTextColor = l_StyleKey_0.SubText,
            textColor = l_StyleKey_0.MainText,
            quotaTextColor = l_StyleKey_0.BrightText,
            verifyTextColor = l_StyleKey_0.TextSecondary,
            warningIconColor = Color3.fromHex("#FFAA21"),
            additionalImagesThumbnailSize = UDim2.new(0, 185, 0, 104)
        },
        searchBar = {
            backgroundColor = l_StyleKey_0.Dropdown,
            liveBackgroundColor = l_StyleKey_0.InputFieldBackground,
            borderColor = l_StyleKey_0.Border,
            borderHoveredColor = l_StyleKey_0.CurrentMarker,
            borderSelectedColor = v12.BLUE_PRIMARY,
            textColor = l_StyleKey_0.MainText,
            placeholderTextColor = l_StyleKey_0.DimmedText,
            divideLineColor = l_StyleKey_0.Border,
            searchButton = {
                imageColor = Color3.fromRGB(184, 184, 184),
                imageSelectedColor = Color3.fromRGB(0, 162, 255)
            },
            clearButton = {
                imageColor = Color3.fromRGB(184, 184, 184),
                imageSelectedColor = Color3.fromRGB(0, 162, 255)
            }
        },
        scrollingFrame = {
            scrollbarBackgroundColor = l_StyleKey_0.ScrollingFrameBackgroundColor,
            scrollbarImageColor = l_StyleKey_0.ScrollingFrameImageColor
        },
        suggestionsComponent = {
            labelTextColor = l_StyleKey_0.MainText,
            textColor = l_StyleKey_0.SubText,
            textHoveredColor = l_StyleKey_0.LinkText,
            underlineColor = l_StyleKey_0.LinkText
        },
        searchOptions = {
            background = l_StyleKey_0.MainBackground,
            border = l_StyleKey_0.Border,
            headerTextColor = l_StyleKey_0.MainText,
            imageColor = v12.GRAY_2,
            imageHoveredColor = l_StyleKey_0.Toolbox_SearchOptionButtonHover,
            imageSelectedColor = v12.BLUE_PRIMARY,
            warningIconColor = l_StyleKey_0.Toolbox_AssetWarningIcon,
            audioSearch = {
                textColor = l_StyleKey_0.MainText
            },
            timeTextBox = {
                borderColor = l_StyleKey_0.Border,
                backgroundColor = l_StyleKey_0.InputFieldBackground,
                selectedBorderColor = v12.BLUE_PRIMARY,
                textColor = l_StyleKey_0.MainText,
                placeholderTextColor = l_StyleKey_0.DimmedText
            },
            applyButton = if v5() then nil else {
                textColor = v12.WHITE,
                backgroundColor = v12.BLUE_PRIMARY,
                borderColor = l_StyleKey_0.MainBackground
            },
            cancelButton = if v5() then nil else {
                textColor = l_StyleKey_0.MainText,
                backgroundColor = l_StyleKey_0.Button,
                borderColor = l_StyleKey_0.Border
            }
        },
        searchList = {
            buttonSpacing = 3
        },
        searchPill = {
            backgroundColor = l_StyleKey_0.Toolbox_SearchPillBackgroundColor,
            backgroundColorHovered = l_StyleKey_0.Toolbox_SearchPillBackgroundColorHovered,
            font = Enum.Font.SourceSans,
            padding = {
                top = 4,
                bottom = 6,
                left = 10,
                right = 10
            },
            textSize = 18,
            textColor = l_StyleKey_0.Toolbox_SearchPillTextColor
        },
        searchTag = {
            backgroundColor = l_StyleKey_0.Toolbox_SearchTagBackgroundColor,
            borderColor = l_StyleKey_0.Border,
            textColor = l_StyleKey_0.BrightText,
            clearAllText = l_StyleKey_0.LinkText
        },
        sectionHeader = {
            textColor = l_StyleKey_0.Toolbox_NavigationLinkTextColor,
            font = Enum.Font.SourceSansBold,
            textSize = 18
        },
        sectionHeaderNavLink = {
            textColor = l_StyleKey_0.Toolbox_NavigationLinkTextColor,
            hoverTextColor = l_StyleKey_0.Toolbox_NavigationLinkTextColorHover,
            font = Enum.Font.SourceSans,
            textSize = 16
        },
        tabSet = {
            backgroundColor = l_StyleKey_0.MainBackground,
            borderColor = l_StyleKey_0.Border,
            topBorderColor = l_StyleKey_0.Toolbox_TabTopBorderColor,
            tabBackground = l_StyleKey_0.Titlebar,
            disabledColor = l_StyleKey_0.Border,
            contentColor = l_StyleKey_0.TitlebarText,
            selectedColor = l_StyleKey_0.Toolbox_TabSelectedColor
        },
        toggle = if not v6() then nil else {
            buttonHeight = 24,
            buttonWidth = 40,
            verticalTextSpacing = 4,
            verticalListPadding = 16
        },
        [l_ComponentSymbols_0.LinkText] = v11.join(l_getRawComponentStyle_0("LinkText"), {
            ["&ToolboxItemRowLink"] = {
                TextSize = 16,
                TextColor = l_StyleKey_0.SubText,
                ShowUnderline = true
            },
            ["&ToolboxItemRowInnerLink"] = {
                TextColor = l_StyleKey_0.Toolbox_ItemRowTextColor,
                ShowUnderline = true
            },
            ["&ToolboxItemRowTitle"] = {
                TextSize = 16,
                TextColor = l_StyleKey_0.Toolbox_ItemRowTitleTextColor,
                ShowUnderline = true
            }
        }),
        [l_ComponentSymbols_0.SearchBar] = v10.Dictionary.join(l_getRawComponentStyle_0("SearchBar"), {
            ["&ToolboxSearchBar"] = {
                Padding = {
                    Top = -1,
                    Left = 0,
                    Bottom = 0,
                    Right = 0
                },
                SearchIcon = "rbxasset://textures/StudioSharedUI/search-v2.png",
                IconColor = l_StyleKey_0.Toolbox_SearchIconColor,
                IconWidth = 16,
                IconOffset = 8,
                Buttons = {
                    Clear = v31("rbxasset://textures/StudioSharedUI/clear.png", "rbxasset://textures/StudioSharedUI/clear-hover.png", l_StyleKey_0.SecondaryMain, UDim2.fromOffset(11, 11), nil, l_StyleKey_0.SecondaryContrast),
                    Filter = v31("rbxasset://textures/StudioSharedUI/Filter.png", nil, l_StyleKey_0.Toolbox_SearchIconColor, UDim2.fromOffset(16, 16)),
                    FilterHighlighted = v31("rbxasset://textures/StudioSharedUI/Filter.png", nil, Color3.fromRGB(0, 162, 255), UDim2.fromOffset(16, 16))
                }
            }
        }),
        recentSearchesCloseButton = if not v2() then nil else {
            backgroundColor = l_StyleKey_0.SecondaryMain,
            hoverColor = l_StyleKey_0.SecondaryContrast
        },
        [l_ComponentSymbols_0.Button] = if not v2() then nil else v10.Dictionary.join(l_getRawComponentStyle_0("Button"), {
            ["&ToolboxRecentSearchesButton"] = {
                BackgroundStyle = {
                    Color = l_StyleKey_0.ForegroundMain
                },
                [v32.Hover] = {
                    BackgroundStyle = {
                        Color = l_StyleKey_0.ActionHover
                    }
                }
            }
        }),
        [l_ComponentSymbols_0.TextLabel] = v11.join(l_getRawComponentStyle_0("TextLabel"), {
            ["&ToolboxItemRowText"] = {
                TextColor = l_StyleKey_0.SubText,
                TextSize = 16
            },
            ["&ToolboxItemRowHeader"] = {
                TextColor = l_StyleKey_0.Toolbox_ItemRowHeaderTextColor,
                TextSize = 14
            }
        }),
        [l_ComponentSymbols_0.TextLabelWithRobloxLinks] = v11.join(l_getRawComponentStyle_0("TextLabelWithRobloxLinks"), {
            ["&ToolboxItemRowInnerText"] = {
                TextColor = l_StyleKey_0.Toolbox_ItemRowTextColor
            }
        })
    });
    if v33 then
        v35:extend(v33);
    end;
    v35:extend({
        [l_ComponentSymbols_0.DropdownMenu] = v10.Dictionary.join(l_getRawComponentStyle_0("DropdownMenu"), {
            ["&ToolboxSearchBarDropdown"] = {
                Offset = Vector2.new(0, 4)
            }
        })
    });
    return v35;
end;


local v0 = {};
local function v5(v1, v2)
    if utf8.len(v1) == string.len(v1) then
        return v2(v1);
    else
        for _, v4 in utf8.codes(v1) do
            if string.len((utf8.char(v4))) == 1 then
                return v2(utf8.nfdnormalize(v1));
            end;
        end;
        return v1;
    end;
end;
v0.upper = function(v6)
    return v5(v6, string.upper);
end;
v0.lower = function(v7)
    return v5(v7, string.lower);
end;
return v0;


return function(v0)
    return v0:gsub(".", function(v1)
        if v1 == "<" then
            return "<";
        elseif v1 == ">" then
            return ">";
        elseif v1 == "\"" then
            return """;
        elseif v1 == "'" then
            return "'";
        elseif v1 == "&" then
            return "&";
        else
            return v1;
        end;
    end);
end;


local v0 = game:getFastFlag("ToolboxRemoveApiProxy");
local l_game_EngineFeature_0 = game:GetEngineFeature("ToolboxSampleProductMUS418");
local l_HttpService_0 = game:GetService("HttpService");
local l_ContentProvider_0 = game:GetService("ContentProvider");
local v9, v10, v11 = (function()
    local l_BaseUrl_0 = l_ContentProvider_0.BaseUrl;
    if l_BaseUrl_0:sub(#l_BaseUrl_0) ~= "/" then
        l_BaseUrl_0 = l_BaseUrl_0 .. "/";
    end;
    local _, v6 = l_BaseUrl_0:find("://");
    local v7, v8 = l_BaseUrl_0:find("%.", v6 + 1);
    return l_BaseUrl_0, l_BaseUrl_0:sub(v6 + 1, v7 - 1), (l_BaseUrl_0:sub(v8 + 1));
end)();
local v13 = {
    DOMAIN = v11,
    PREFIX = v10,
    BASE_URL = v9,
    API_URL = if not v0 then if not v0 then string.format("https://api.%s", v11) else nil else nil,
    APIS_URL = string.format("https://apis.%s", v11),
    AUTH_URL = string.format("https://auth.%s", v11),
    CREATE_URL = string.format("https://create.%s", v11),
    GAME_URL = string.format("https://games.%s", v11),
    GAME_ASSET_URL = string.format("https://assetgame.%s", v11),
    CHAT_URL = string.format("https://chat.%sv2", v11),
    NOTIFICATION_URL = string.format("https://notifications.%s", v11),
    REALTIME_URL = string.format("https://realtime.%s", v11),
    WEB_URL = string.format("https://web.%s", v11),
    CATALOG_URL = string.format("https://catalog.%s", v11),
    DEVELOP_URL = string.format("https://develop.%s", v11),
    ITEM_CONFIGURATION_URL = string.format("https://itemconfiguration.%s", v11),
    PUBLISH_URL = string.format("https://publish.%s", v11),
    DATA_URL = string.format("https://data.%s", v11),
    GROUP_URL = string.format("https://groups.%s", v11),
    THUMBNAIL_URL = string.format("https://thumbnails.%s", v11),
    ECONOMY_URL = string.format("https://economy.%s", v11),
    FRIENDS_URL = string.format("https://friends.%s", v11),
    USERS_URL = if not v0 then nil else if not v0 then nil else string.format("https://users.%s", v11),
    INVENTORY_URL = if not l_game_EngineFeature_0 then nil else if not l_game_EngineFeature_0 then nil else string.format("https://inventory.%s", v11),
    isVanitySite = function(v12)
        return v12.PREFIX ~= "www";
    end
};
isMap = function(v14)
    local v15 = false;
    if typeof(v14) == "table" then
        v15 = #v14 == 0;
    end;
    return v15;
end;
addArrayToParams = function(v16, v17, v18, v19)
    if v18 ~= nil and #v18 > 0 then
        if not v19 then
            local v20 = l_HttpService_0:UrlEncode(v18[1]);
            for v21 = 2, #v18 do
                v20 = v20 .. "&" .. l_HttpService_0:UrlEncode(v17) .. "=" .. l_HttpService_0:UrlEncode(v18[v21]);
            end;
            v16[l_HttpService_0:UrlEncode(v17)] = v20;
        else
            v16[l_HttpService_0:UrlEncode(v17)] = l_HttpService_0:UrlEncode(table.concat(v18, ","));
            return ;
        end;
    end;
end;
addNonMapValueToParams = function(v22, v23, v24, v25)
    if not (not (v24 ~= nil) or isMap(v24)) then
        if type(v24) == "table" then
            addArrayToParams(v22, v23, v24, v25);
            return ;
        else
            v22[l_HttpService_0:UrlEncode(v23)] = l_HttpService_0:UrlEncode((tostring(v24)));
        end;
    end;
end;
v13.makeQueryString = function(v26, v27, v28)
    local v29 = {};
    for v30, v31 in pairs(v26) do
        local v32 = isMap(v31);
        if v32 then
            if not (not v32 or not v27) then
                for v33, v34 in pairs(v31) do
                    assert(not isMap(v34), "Nested maps are not currently supported");
                    addNonMapValueToParams(v29, v33, v34, v28);
                end;
            end;
        else
            addNonMapValueToParams(v29, v30, v31, v28);
        end;
    end;
    local v35 = {};
    for v36, v37 in pairs(v29) do
        table.insert(v35, v36 .. "=" .. v37);
    end;
    return table.concat(v35, "&");
end;
return v13;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Core.Components.TabSet);
local v3 = v1.PureComponent:extend("TabTestWrapper");
v3.init = function(v4)
    v4.state = {
        currentTab = "Marketplace"
    };
    v4.changeTab = function(v5)
        v4:setState(function()
            return {
                currentTab = v5
            };
        end);
    end;
end;
v3.render = function(v6, _)
    return v1.createElement(v2, {
        Size = UDim2.new(1, 0, 1, 0),
        Position = UDim2.new(),
        CurrentWidth = 565.5,
        CurrentTab = v6.state.currentTab,
        Tabs = {
            [1] = {
                Image = "rbxasset://textures/StudioToolbox/Tabs/Shop.png",
                Key = "Marketplace",
                Text = "Marketplace"
            },
            [2] = {
                Image = "rbxasset://textures/StudioToolbox/Tabs/Shop.png",
                Key = "Inventory",
                Text = "Inventory"
            }
        },
        onTabSelected = v6.changeTab
    });
end;
return v3;


local l_Workspace_0 = game:GetService("Workspace");
local l_Parent_0 = script.Parent.Parent.Parent;
local l_Packages_0 = l_Parent_0.Packages;
local v3 = require(l_Packages_0.Cryo);
local v4 = require(l_Packages_0.Framework);
local v5 = require(l_Packages_0.Roact);
local v6 = require(l_Packages_0.Rodux);
local v7 = require(l_Packages_0.ReactRoblox);
local l_ContextServices_0 = v4.ContextServices;
local l_MockPlugin_0 = v4.TestHelpers.Instances.MockPlugin;
local v10 = require(l_Parent_0.Core.Reducers.ToolboxReducer);
local v11 = require(l_Parent_0.Core.Components.Asset.Asset);
local v12 = require(l_Parent_0.Core.Components.Asset.Preview.AssetPreviewWrapper);
local v13 = require(l_Parent_0.Core.Util.MockWrapper);
local v14 = require(l_Parent_0.TestUtils.MockItems);
local v15 = require(script.Parent.TabTestWrapper);
local v16 = require(script.Parent.ToolboxTestWrapper);
local l_Element_0 = require(l_Parent_0.Packages.Dev.Rhodium).Element;
local v18 = require(l_Parent_0.Core.Util.SharedFlags.getFFlagEnableUGCMissingPartsMessage);
local l_EnableUGCBundleUnknownMeshPartFiltering_0 = game:GetFastFlag("EnableUGCBundleUnknownMeshPartFiltering");
local v46 = {
    getPathInTestToolbox = function(v20)
        return string.format("game.CoreGui.ScreenGui.%s.%s", "ToolboxComponent", v20);
    end,
    cleanupCategoryVerification = function()
        for _, v22 in ipairs(game.CoreGui:GetChildren()) do
            if v22.Name == "CategoryVerification" then
                v22:Destroy();
            end;
        end;
    end,
    createTestAsset = function(v23, v24, v25, v26)
        local v27 = v25 or v14.getSimpleAsset(12345);
        local l_Id_0 = v27.Asset.Id;
        return v5.mount(v5.createElement(v13, v3.Dictionary.join(v26 or {}, {
            store = v6.Store.new(v10, {
                assets = {
                    idToAssetMap = {
                        [l_Id_0] = v27
                    }
                }
            }, {
                v6.thunkMiddleware
            })
        }) or {}, {
            Asset = v5.createElement(v11, {
                assetId = l_Id_0,
                assetData = v27,
                LayoutOrder = 1,
                Selected = false
            })
        }), v23 or nil, v24 or "");
    end,
    createTestTab = function(v29, v30, _, v32)
        return v5.mount(v5.createElement("ScreenGui", {
            ZIndexBehavior = Enum.ZIndexBehavior.Sibling
        }, {
            Root = v5.createElement("Frame", {
                Size = UDim2.new(0.5, 0, 0.5, 0),
                Position = UDim2.new(0, 0, 0, 0)
            }, {
                Components = v5.createElement(v13, v32 or {}, {
                    Tab = v5.createElement(v15, {})
                })
            })
        }), v29 or nil, v30 or "");
    end,
    createTestToolbox = function(v33, _, _, v36)
        v33.ZIndexBehavior = Enum.ZIndexBehavior.Sibling;
        return v5.mount(v5.createElement("Frame", {
            Size = UDim2.new(0.8, 0, 0.8, 0),
            Position = UDim2.new(0, 0, 0, 0)
        }, {
            Components = v5.createElement(v13, v36 or {
                pluginGui = v33
            }, {
                Toolbox = v5.createElement(v16, {})
            })
        }), v33 or nil, "ToolboxComponent");
    end,
    cleanupTestToolbox = function()
        for _, v38 in ipairs(game.CoreGui:GetChildren()) do
            for _, v40 in ipairs(v38:GetChildren()) do
                if v40.Name == "ToolboxComponent" then
                    v38:Destroy();
                    break;
                end;
            end;
        end;
    end,
    createPreviewAsset = function(v41, v42, _, _)
        return v5.mount(v5.createElement(v13, {}, {
            AssetPreviewWrapper = v5.createElement(v12, {
                assetData = v14.getPreviewAsset(112312321312),
                previewFuncs = {}
            })
        }), v41 or nil, v42 or "");
    end,
    getDescendants = function(v45)
        return v45:GetDescendants();
    end
};
v46.getDescendant = function(v47, v48)
    local v49 = v46.getDescendants(v47);
    local v50 = nil;
    for _, v52 in pairs(v49) do
        if v52 == v48 then
            v50 = v52;
        end;
    end;
    return v50;
end;
v46.delay = function(v53)
    task.wait(v53 or 0.2);
end;
v46.clickInstanceWithXPath = function(v54)
    local v55 = l_Element_0.new(v54);
    v7.act(function()
        v55:clickWithoutValidation();
    end);
    v46.delay();
    return v55;
end;
v46.typeInstanceWithXPath = function(v56, v57)
    local v58 = l_Element_0.new(v56);
    v7.act(function()
        v58:sendText(v57);
    end);
    v46.delay();
    return v58;
end;
v46.clickInstance = function(v59)
    local v60 = l_Element_0.new(v59);
    v7.act(function()
        v60:clickWithoutValidation();
    end);
    v46.delay();
    return v60;
end;
v46.mockMouse = function(v61)
    if not v61 then
        v61 = l_MockPlugin_0.new();
    end;
    return l_ContextServices_0.Mouse.new(v61:GetMouse());
end;
if v18() then
    v46.getMockUGCBody = function()
        return l_Workspace_0.UGCTestBody:Clone();
    end;
end;
if l_EnableUGCBundleUnknownMeshPartFiltering_0 then
    v46.getMockBodyWithUnknown = function()
        local v62 = l_Workspace_0.UGCTestBody:Clone();
        local l_MeshPart_0 = Instance.new("MeshPart");
        l_MeshPart_0.Name = "unknownPart";
        l_MeshPart_0.Parent = v62;
        return v62;
    end;
end;
return v46;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Core.Util.makeTheme);
local v3 = require(l_Parent_0.Core.Components.Toolbox);
local v4 = require(l_Parent_0.Core.Types.Suggestion);
local v5 = require(l_Parent_0.Core.Types.Background);
local v6 = v1.PureComponent:extend("ToolboxTestWrapper");
v6.init = function(v7)
    v7.state = {
        theme = v2()
    };
end;
v6.render = function(v8, _)
    local _ = v8.state.theme;
    return v1.createElement(v3, {
        backgrounds = v5.BACKGROUNDS,
        suggestions = v4.SUGGESTIONS,
        Size = UDim2.new(0, 400, 0, 400)
    });
end;
return v6;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Core.Components.Asset.Asset);
local v3 = require(l_Parent_0.Stories.ToolboxStoryWrapper);
local v4 = require(l_Parent_0.TestUtils.MockItems);
local v5 = require(l_Parent_0.Core.Actions.GetAssets);
local function v9(v6)
    local l_fakeAsset_0 = v6.fakeAsset;
    v6.storeSetup = function(v8)
        v8:dispatch(v5({
            l_fakeAsset_0
        }, 1));
    end;
    return v1.createElement(v3, v6);
end;
local v10 = v4.getSimpleAsset(123456);
return {
    name = "Asset",
    summary = "An asset used in the grid view.",
    stories = {
        {
            name = "Asset",
            story = function()
                v1.createElement(v9, {
                    fakeAsset = v10
                }, {
                    Asset = v1.createElement(v2, {
                        asset = v10,
                        assetData = v10,
                        assetId = 123456,
                        LayoutOrder = 1
                    })
                });
            end
        },
        {
            name = "Asset hovered",
            story = function()
                v1.createElement(v9, {
                    fakeAsset = v10
                }, {
                    v1.createElement("Frame", {
                        Size = UDim2.new(1, 0, 0, 250),
                        BackgroundTransparency = 1
                    }, {
                        Layout = v1.createElement("UIListLayout", {
                            VerticalAlignment = Enum.VerticalAlignment.Center,
                            HorizontalAlignment = Enum.HorizontalAlignment.Center
                        }),
                        Asset = v1.createElement(v2, {
                            asset = v10,
                            assetData = v10,
                            assetId = 123456,
                            isHovered = true,
                            LayoutOrder = 1
                        })
                    })
                });
            end
        }
    }
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local v1 = require(l_script_FirstAncestor_0.Core.Components.AssetRow.AssetRow);
local v2 = require(l_script_FirstAncestor_0.TestUtils.MockItems);
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local v4 = require(l_script_FirstAncestor_0.Stories.ToolboxStoryWrapper);
local v5 = v2.getSimpleAsset(11322590111, "Asset Row");
local v6 = v3.PureComponent:extend("MockAssetRowInteractiveWrapper");
v6.init = function(v7)
    v7.state = {
        isExpanded = false
    };
    v7.updateExpanded = function()
        v7:setState(function(v8)
            return {
                isExpanded = not v8.isExpanded
            };
        end);
    end;
end;
v6.render = function(v9)
    return v3.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, 0)
    }, {
        AssetRow = v3.createElement(v1, {
            AssetInfo = v5,
            CanInsertAsset = function()
                return true;
            end,
            InsertAsset = function()
                print("Insert Asset");
            end,
            IsExpanded = v9.state.isExpanded,
            OnExpanded = v9.updateExpanded,
            LayoutOrder = 1,
            OnAssetPreviewButtonClicked = function()
                print("Asset Preview Clicked");
            end,
            ParentAbsoluteSize = UDim2.fromOffset(500, 500),
            TryOpenAssetConfig = function()
                print("Try Open Asset Config");
            end
        })
    });
end;
return {
    summary = "AssetRow",
    stories = {
        {
            name = "Interactive AssetRow",
            summary = "Never expanding row (IsExpanded = false)",
            story = function()
                return v3.createElement(v4, {}, {
                    v3.createElement(v6)
                });
            end
        },
        {
            name = "Unexpanded AssetRow",
            summary = "Never expanding row (IsExpanded = false)",
            story = function()
                return v3.createElement(v4, {}, {
                    Frame = v3.createElement("Frame", {
                        AutomaticSize = Enum.AutomaticSize.Y,
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 0, 0)
                    }, {
                        AssetRow = v3.createElement(v1, {
                            AssetInfo = v5,
                            CanInsertAsset = function()
                                return true;
                            end,
                            InsertAsset = function()
                                print("Insert Asset");
                            end,
                            IsExpanded = false,
                            OnExpanded = function(v10)
                                print("On Expanded id:", v10);
                            end,
                            LayoutOrder = 1,
                            OnAssetPreviewButtonClicked = function()
                                print("Asset Preview Clicked");
                            end,
                            ParentAbsoluteSize = UDim2.fromOffset(500, 500),
                            TryOpenAssetConfig = function()
                                print("Try Open Asset Config");
                            end
                        })
                    })
                });
            end
        },
        {
            name = "Expanded AssetRow",
            summary = "Always expanded Row (IsExpanded = true)",
            story = function()
                return v3.createElement(v4, {}, {
                    Frame = v3.createElement("Frame", {
                        AutomaticSize = Enum.AutomaticSize.Y,
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 0, 0)
                    }, {
                        AssetRow = v3.createElement(v1, {
                            AssetInfo = v5,
                            CanInsertAsset = function()
                                return true;
                            end,
                            InsertAsset = function()
                                print("Insert Asset");
                            end,
                            IsExpanded = true,
                            OnExpanded = function()
                                print("On Expanded");
                            end,
                            LayoutOrder = 1,
                            OnAssetPreviewButtonClicked = function()
                                print("Asset Preview Clicked");
                            end,
                            ParentAbsoluteSize = UDim2.fromOffset(500, 500),
                            TryOpenAssetConfig = function()
                                print("Try Open Asset Config");
                            end
                        })
                    })
                });
            end
        }
    }
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local v1 = require(l_script_FirstAncestor_0.Core.Components.AssetRow.AssetRowExpandedContent);
local v2 = require(l_script_FirstAncestor_0.TestUtils.MockItems);
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local v4 = require(l_script_FirstAncestor_0.Stories.ToolboxStoryWrapper);
local v5 = v2.getSimpleAsset(11322590111, "Roboto");
return {
    summary = "AssetRowExpandedContent",
    stories = {
        {
            name = "AssetRowExpandedContent",
            story = function()
                return v3.createElement(v4, {}, {
                    Frame = v3.createElement("Frame", {
                        AutomaticSize = Enum.AutomaticSize.Y,
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 0, 0)
                    }, {
                        List = v3.createElement(v1, {
                            AssetInfo = v5,
                            OnAssetPreviewButtonClicked = function()
                                print("Asset Preview Clicked");
                            end,
                            OnInsertClicked = function()
                                print("On Insert Clicked");
                            end
                        })
                    })
                });
            end
        }
    }
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Toolbox");
local v1 = require(l_script_FirstAncestor_0.Core.Components.AssetTable.AssetTable);
local v2 = require(l_script_FirstAncestor_0.TestUtils.MockItems);
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local v4 = require(l_script_FirstAncestor_0.Stories.ToolboxStoryWrapper);
local v5 = v2.getSimpleAsset(1, "Asset Row 1");
local v6 = v2.getSimpleAsset(2, "Asset Row 2");
local v7 = v2.getSimpleAsset(3, "Asset Row 3");
return {
    summary = "AssetTable",
    stories = {
        {
            name = "AssetTable",
            story = function()
                return v3.createElement(v4, {}, {
                    Frame = v3.createElement("Frame", {
                        AutomaticSize = Enum.AutomaticSize.Y,
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 0, 0)
                    }, {
                        List = v3.createElement(v1, {
                            Assets = {
                                v5,
                                v6,
                                v7
                            },
                            CanInsertAsset = function()
                                return true;
                            end,
                            LayoutOrder = 1,
                            OnAssetPreviewButtonClicked = function()
                                print("Asset Preview Clicked");
                            end,
                            ParentAbsoluteSize = UDim2.fromOffset(500, 500),
                            TryOpenAssetConfig = function()
                                print("Try Open Asset Config");
                            end
                        })
                    })
                });
            end
        },
        {
            name = "Empty table",
            story = function()
                return v3.createElement(v4, {}, {
                    Frame = v3.createElement("Frame", {
                        AutomaticSize = Enum.AutomaticSize.Y,
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 0, 0)
                    }, {
                        List = v3.createElement(v1, {
                            Assets = {},
                            CanInsertAsset = function()
                                return true;
                            end,
                            LayoutOrder = 1,
                            OnAssetPreviewButtonClicked = function()
                                print("Asset Preview Clicked");
                            end,
                            ParentAbsoluteSize = UDim2.fromOffset(500, 500),
                            TryOpenAssetConfig = function()
                                print("Try Open Asset Config");
                            end
                        })
                    })
                });
            end
        }
    }
};