local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Components_0 = l_script_FirstAncestor_0.Src.Components;
local v8 = require(l_Components_0.CharacterConversion.Footer);
local v9 = require(l_Components_0.CharacterConversion.MainView);
local v10 = require(l_script_FirstAncestor_0.Src.Thunks.LoadCharacterMetadata);
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v12 = v2.PureComponent:extend("CharacterConversionPane");
v12.hasCharacters = function(v13)
    local v14 = false;
    if v13.props.characterMetadataLoadedVersion > 0 then
        v14 = true;
        if next(v13.props.characters) == nil then
            v14 = next(v13.props.convertedCharacters) ~= nil;
        end;
    end;
    return v14;
end;
v12.didMount = function(v15)
    if v15.props.characterMetadataLoadedVersion == 0 then
        v15.props.loadCharacterMetadata(v15.props.Analytics);
    end;
end;
v12.render = function(v16)
    local l_props_0 = v16.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local v20 = l_LayoutOrderIterator_0.new();
    if v16:hasCharacters() then
        return v2.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }, {
            MainView = v2.createElement(v9, {
                OnResetPlugin = l_props_0.OnResetPlugin,
                LayoutOrder = v20:getNextOrder(),
                Size = UDim2.new(1, 0, 1, -l_Stylizer_0.FooterHeight)
            }),
            Footer = v2.createElement(v8, {
                LayoutOrder = v20:getNextOrder(),
                Size = UDim2.new(1, 0, 0, l_Stylizer_0.FooterHeight)
            })
        });
    else
        return v2.createElement(l_Pane_0, {}, {
            Label = v2.createElement(l_TextLabel_0, {
                Text = l_Localization_0:getText("CharacterConversion", "NoCharacters")
            })
        });
    end;
end;
return v3.connect(function(v21, _)
    return {
        characterMetadataLoadedVersion = v21.CharacterConversion.characterMetadataLoadedVersion,
        characters = v21.CharacterConversion.characters,
        convertedCharacters = v21.CharacterConversion.convertedCharacters
    };
end, function(v23)
    return {
        loadCharacterMetadata = function(v24)
            v23(v10(v24));
        end
    };
end)((v1.ContextServices.withContext({
    Analytics = v1.ContextServices.Analytics,
    Stylizer = v1.ContextServices.Stylizer,
    Localization = v1.ContextServices.Localization
})(v12)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_UI_0 = v2.UI;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_StyledDialog_0 = l_UI_0.StyledDialog;
local v7 = v1.PureComponent:extend("ConfirmCommitDialog");
v7.render = function(v8)
    local l_props_0 = v8.props;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_OnConfirm_0 = l_props_0.OnConfirm;
    local l_OnClose_0 = l_props_0.OnClose;
    return v1.createElement(l_StyledDialog_0, {
        Style = "AcceptCancel",
        Modal = true,
        Title = l_Localization_0:getText("ScriptConversion", "CommittingScripts"),
        MinContentSize = l_Stylizer_0.MinContentSize,
        Buttons = {
            {
                Key = "Confirm",
                Text = l_Localization_0:getText("ScriptConversion", "Confirm")
            },
            {
                Key = "Cancel",
                Text = l_Localization_0:getText("ScriptConversion", "Cancel")
            }
        },
        OnButtonPressed = function(v14)
            if not (not (v14 == "Confirm") or not l_OnConfirm_0) then
                l_OnConfirm_0();
            end;
            if l_OnClose_0 then
                l_OnClose_0();
            end;
        end,
        OnClose = l_OnClose_0
    }, {
        Contents = v1.createElement(l_TextLabel_0, {
            Text = l_Localization_0:getText("ScriptConversion", "CommitWarning"),
            TextWrapped = true
        })
    });
end;
return (l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v7));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_UI_0 = v2.UI;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_StyledDialog_0 = l_UI_0.StyledDialog;
local v7 = v1.PureComponent:extend("ConfirmRevertDialog");
v7.render = function(v8)
    local l_props_0 = v8.props;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_OnConfirm_0 = l_props_0.OnConfirm;
    local l_OnClose_0 = l_props_0.OnClose;
    return v1.createElement(l_StyledDialog_0, {
        Style = "AcceptCancel",
        Modal = true,
        Title = l_Localization_0:getText("ScriptConversion", "RevertingScripts"),
        MinContentSize = l_Stylizer_0.MinContentSize,
        Buttons = {
            {
                Key = "Confirm",
                Text = l_Localization_0:getText("ScriptConversion", "Confirm")
            },
            {
                Key = "Cancel",
                Text = l_Localization_0:getText("ScriptConversion", "Cancel")
            }
        },
        OnButtonPressed = function(v14)
            if not (not (v14 == "Confirm") or not l_OnConfirm_0) then
                l_OnConfirm_0();
            end;
            if l_OnClose_0 then
                l_OnClose_0();
            end;
        end,
        OnClose = l_OnClose_0
    }, {
        Contents = v1.createElement(l_TextLabel_0, {
            Text = l_Localization_0:getText("ScriptConversion", "RevertWarning"),
            TextWrapped = true
        })
    });
end;
return (l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v7));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_Stylizer_0 = v2.Style.Stylizer;
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local v8 = require(script.Parent.PreviewModelComponent);
local v9 = v1.PureComponent:extend("DisplayAvatarsComponent");
v9.render = function(v10)
    local l_props_0 = v10.props;
    local l_Model1_0 = l_props_0.Model1;
    local l_Model2_0 = l_props_0.Model2;
    local l_Animation1_0 = l_props_0.Animation1;
    local l_Animation2_0 = l_props_0.Animation2;
    local l_Stylizer_1 = l_props_0.Stylizer;
    local l_Loaded_0 = l_props_0.Loaded;
    local l_PreviewWindowSize_0 = l_Stylizer_1.PreviewWindowSize;
    return v1.createElement(l_Pane_0, {}, {
        OriginalPreview = v1.createElement(v8, {
            Size = l_PreviewWindowSize_0,
            Model = l_Model1_0,
            AnimationId = l_Animation1_0,
            Loaded = l_Loaded_0,
            Label = "R6"
        }),
        Arrow = v1.createElement(l_Image_0, {
            Size = l_Stylizer_1.Arrow.Size,
            Position = l_Stylizer_1.Arrow.Position,
            Image = l_Stylizer_1.Arrow.Image,
            ImageRectSize = l_Stylizer_1.Arrow.ImageRectSize,
            ImageRectOffset = l_Stylizer_1.Arrow.Offset,
            ImageColor3 = l_Stylizer_1.Arrow.Color
        }),
        SuggestedPreview = v1.createElement(v8, {
            Size = l_PreviewWindowSize_0,
            Position = l_Stylizer_1.PreviewWindowPosition,
            Model = l_Model2_0,
            AnimationId = l_Animation2_0,
            Loaded = l_Loaded_0,
            Label = "R15"
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_Stylizer_0
})(v9));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_StyleModifier_0 = v1.Util.StyleModifier;
local v9 = v2.PureComponent:extend("IconTab");
v9.init = function(v10)
    v10.state = {
        hovered = false
    };
    v10.hover = function(v11)
        v10:setState({
            hovered = v11
        });
    end;
    v10.onPress = function()
        local l_props_0 = v10.props;
        if not l_props_0.Disabled then
            l_props_0.OnTabSelected(l_props_0.Tab);
        end;
    end;
end;
v9.render = function(v13)
    local l_props_1 = v13.props;
    local l_Stylizer_0 = v13.props.Stylizer;
    local l_Icon_0 = l_props_1.Tab.Icon;
    local l_Tooltip_1 = l_props_1.Tab.Tooltip;
    local l_Selected_0 = l_props_1.Selected;
    local l_Color_0 = l_Stylizer_0.Color;
    local l_Size_0 = l_Stylizer_0.Size;
    local l_hovered_0 = v13.state.hovered;
    local v22 = v2.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.XY,
        Style = "Box",
        LayoutOrder = l_props_1.Index,
        OnPress = v13.onPress,
        [v2.Event.MouseEnter] = function()
            v13.hover(true);
        end,
        [v2.Event.MouseLeave] = function()
            v13.hover(false);
        end,
        StyleModifier = if not l_Selected_0 then if l_hovered_0 then l_StyleModifier_0.Hover else nil else l_StyleModifier_0.Selected,
        BackgroundTransparency = (l_Selected_0 or l_hovered_0) and 0 or 1
    }, {
        Icon = l_Icon_0 and v2.createElement(l_Image_0, {
            Image = l_Icon_0,
            ImageColor3 = l_Color_0,
            Size = UDim2.fromOffset(l_Size_0, l_Size_0),
            LayoutOrder = 1
        })
    });
    if not l_Tooltip_1 then
        return v22;
    else
        return v2.createElement(l_Tooltip_0, {
            Text = l_Tooltip_1,
            Child = v22
        });
    end;
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v9));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_LoadingIndicator_0 = l_UI_0.LoadingIndicator;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local l_Status_0 = require(l_script_FirstAncestor_0.Src.Util.AnimationConversion.constants).Status;
local v11 = v2.PureComponent:extend("LoadingScreen");
v11.init = function(v12)
    local l_StartScan_0 = v12.props.StartScan;
    task.spawn(function()
        wait(1);
        l_StartScan_0();
    end);
end;
v11.render = function(v14)
    local l_props_0 = v14.props;
    local l_status_0 = l_props_0.status;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v19 = "";
    if not (l_status_0 ~= l_Status_0.ScanningScripts and l_status_0 ~= l_Status_0.ScanningWorkspace) or l_status_0 == l_Status_0.ConvertingAnimations then
        v19 = l_Localization_0:getText("AnimationConversion", l_status_0);
    end;
    local v20 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Center,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        Spacing = l_Stylizer_0.Spacing,
        Padding = l_Stylizer_0.Padding
    }, {
        Text = v2.createElement(l_TextLabel_0, {
            Text = v19,
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = v20:getNextOrder()
        }),
        LoadingIndicator = v2.createElement(l_LoadingIndicator_0, {
            LayoutOrder = v20:getNextOrder()
        })
    });
end;
return v3.connect(function(v21, _)
    return {
        status = v21.AnimationConversion.status
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v11)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Tabs_0 = l_UI_0.Tabs;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local l_Actions_0 = l_script_FirstAncestor_0.Src.Actions;
local v10 = require(l_Actions_0.SetSelectedTab);
local v11 = require(l_Actions_0.SetAllTabsData);
local v12 = require(l_script_FirstAncestor_0.Src.Util.TabsData);
local l_Components_0 = l_script_FirstAncestor_0.Src.Components;
local v14 = require(l_Components_0.Summary.SummaryPane);
local v15 = require(l_Components_0.CharacterConversionPane);
local v16 = require(l_Components_0.ScriptConversionPane);
local v17 = require(l_Components_0.ScriptPane);
local v18 = require(l_Components_0.AnimationConversionPane);
local v19 = require(l_Components_0.IconTab);
local l_R15MigScriptsPane_0 = game:GetFastFlag("R15MigScriptsPane");
local v21 = v2.PureComponent:extend("MainTabsView");
v21.init = function(v22)
    local l_props_0 = v22.props;
    v22.onTabSelected = function(v24)
        l_props_0.setSelectedTab(v24.Key);
    end;
end;
v21.didMount = function(v25)
    local l_props_1 = v25.props;
    local l_Localization_0 = l_props_1.Localization;
    local l_isSuccessfullyPublished_0 = l_props_1.isSuccessfullyPublished;
    l_props_1.setAllTabsData((v12.getAllTabsData(l_Localization_0, function(v29)
        if not l_isSuccessfullyPublished_0 then
            return true;
        else
            return v29 == v12.Summary;
        end;
    end)));
    l_props_1.setSelectedTab(v12.Summary);
end;
v21.render = function(v30)
    local l_props_2 = v30.props;
    local l_selectedTab_0 = l_props_2.selectedTab;
    local l_allTabsData_0 = l_props_2.allTabsData;
    local l_Stylizer_0 = v30.props.Stylizer;
    local l_LayoutOrder_0 = v30.props.LayoutOrder;
    local v36 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        LayoutOrder = l_LayoutOrder_0,
        BackgroundColor = l_Stylizer_0.BackgroundColor
    }, {
        Tabs = if not not l_allTabsData_0 and l_selectedTab_0 then v2.createElement(l_Tabs_0, {
            LayoutOrder = v36:getNextOrder(),
            Tabs = l_allTabsData_0,
            SelectedTab = v12.findTabData(l_selectedTab_0, l_allTabsData_0),
            OnTabSelected = v30.onTabSelected,
            FillDirection = Enum.FillDirection.Vertical,
            TabComponent = v19
        }) else nil,
        View = v2.createElement(l_Pane_0, {
            LayoutOrder = v36:getNextOrder(),
            Size = l_Stylizer_0.TabPaneSize,
            BackgroundColor = l_Stylizer_0.ViewBackgroundColor
        }, {
            SummaryPane = if not not l_selectedTab_0 and l_selectedTab_0 == v12.Summary then v2.createElement(v14, {
                OnResetPlugin = l_props_2.OnResetPlugin
            }) else nil,
            ScriptConversionPane = if not not l_selectedTab_0 and l_selectedTab_0 == v12.ScriptConversion then v2.createElement(if not l_R15MigScriptsPane_0 then v16 else v17, {
                OnResetPlugin = l_props_2.OnResetPlugin
            }) else nil,
            ScriptConversionPaneDeprecated = if (not not l_R15MigScriptsPane_0 and l_selectedTab_0) and l_selectedTab_0 == v12.ScriptConversionDeprecated then v2.createElement(v16, {
                OnResetPlugin = l_props_2.OnResetPlugin
            }) else nil,
            CharacterConversion = if not not l_selectedTab_0 and l_selectedTab_0 == v12.CharacterConversion then v2.createElement(v15, {
                OnResetPlugin = l_props_2.OnResetPlugin
            }) else nil,
            AnimationConversionPane = if not not l_selectedTab_0 and l_selectedTab_0 == v12.AnimationConversion then v2.createElement(v18, {
                OnResetPlugin = l_props_2.OnResetPlugin
            }) else nil
        })
    });
end;
return v3.connect(function(v37)
    return {
        selectedTab = v37.PanelSelection.selectedTab,
        allTabsData = v37.PanelSelection.allTabsData,
        isSuccessfullyPublished = v37.ConversionProgress.isSuccessfullyPublished
    };
end, function(v38)
    return {
        setSelectedTab = function(v39)
            v38(v10(v39));
        end,
        setAllTabsData = function(v40)
            v38(v11(v40));
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v21)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_Pane_0 = v1.UI.Pane;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v5 = require(l_script_FirstAncestor_0.Src.Components.MainTabsView);
local v6 = v2.PureComponent:extend("MainView");
v6.render = function(v7)
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        BackgroundTransparency = 1
    }, {
        MainTabs = v2.createElement(v5, {
            OnResetPlugin = v7.props.OnResetPlugin,
            LayoutOrder = l_LayoutOrderIterator_0.new():getNextOrder()
        })
    });
end;
return v6;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v1.ContextServices;
local v3 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_UI_0 = v1.UI;
local l_Button_0 = l_UI_0.Button;
local l_Image_0 = l_UI_0.Image;
local l_Slider_0 = l_UI_0.Slider;
local l_Pane_0 = l_UI_0.Pane;
local l_StyleModifier_0 = v1.Util.StyleModifier;
local v10 = require(l_script_FirstAncestor_0.Src.Resources.Images);
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v12 = v3.PureComponent:extend("MediaPlayerControls");
local function _(v13, v14)
    if v14 then
        if not v13 then
            return v10.PLAY_BUTTON;
        else
            return v10.PAUSE_BUTTON;
        end;
    else
        return v10.LOADING_BUTTON;
    end;
end;
v12.render = function(v16)
    local l_props_0 = v16.props;
    local l_Stylizer_0 = v16.props.Stylizer;
    local l_Position_0 = l_props_0.Position;
    local l_Size_0 = l_props_0.Size;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_CurrentTime_0 = l_props_0.CurrentTime;
    local l_TimeLength_0 = l_props_0.TimeLength;
    local l_IsPlaying_0 = l_props_0.IsPlaying;
    local l_IsLoaded_0 = l_props_0.IsLoaded;
    local l_OnPlay_0 = l_props_0.OnPlay;
    local l_OnPause_0 = l_props_0.OnPause;
    local l_OnScrub_0 = l_props_0.OnScrub;
    local v29 = l_LayoutOrderIterator_0.new();
    return v3.createElement(l_Pane_0, {
        LayoutOrder = l_LayoutOrder_0,
        Position = l_Position_0,
        Size = l_Size_0,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        Layout = Enum.FillDirection.Horizontal,
        Spacing = l_Stylizer_0.Spacing,
        BackgroundColor = l_Stylizer_0.BackgroundColor,
        Style = "RoundBox",
        Padding = l_Stylizer_0.Padding
    }, {
        PlayOrPauseButton = v3.createElement(l_Button_0, {
            Size = l_Stylizer_0.ButtonSize,
            LayoutOrder = v29:getNextOrder(),
            OnClick = if not l_IsPlaying_0 then l_OnPlay_0 else l_OnPause_0,
            Style = "Round",
            StyleModifier = if l_IsLoaded_0 then nil else l_StyleModifier_0.Disabled
        }, {
            Icon = v3.createElement(l_Image_0, {
                Image = if l_IsLoaded_0 then if l_IsPlaying_0 then v10.PAUSE_BUTTON else v10.PLAY_BUTTON else v10.LOADING_BUTTON,
                ImageColor3 = l_Stylizer_0.ImageColor
            })
        }),
        Scrubber = v3.createElement(l_Slider_0, {
            Min = 0,
            Max = l_TimeLength_0,
            Size = l_Stylizer_0.SliderSize,
            Value = math.clamp(l_CurrentTime_0, 0, l_TimeLength_0),
            LayoutOrder = v29:getNextOrder(),
            OnValueChanged = l_OnScrub_0,
            Disabled = not l_IsLoaded_0 or nil
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v12));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_CaptureFocus_0 = l_UI_0.CaptureFocus;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v8 = v2.PureComponent:extend("PopUpFrame");
v8.init = function(v9)
    v9.ref = v2.createRef();
    v9.state = {
        position = UDim2.new(),
        closeHovered = false
    };
    v9.onMouseEnter = function()
        v9:setState({
            closeHovered = true
        });
    end;
    v9.onMouseLeave = function()
        v9:setState({
            closeHovered = false
        });
    end;
    v9.reposition = function()
        if v9.ref.current == nil then
            return ;
        else
            v9:setState({
                position = v9.getPosition()
            });
            return ;
        end;
    end;
    v9.getPosition = function()
        local l_props_0 = v9.props;
        local l_ExpandedHeight_0 = l_props_0.ExpandedHeight;
        local l_Stylizer_0 = l_props_0.Stylizer;
        local l_current_0 = v9.ref.current;
        local v14 = Vector2.new();
        local v15 = Vector2.new();
        if l_current_0 then
            v14 = l_current_0.parent.AbsolutePosition;
            v15 = l_current_0.parent.AbsoluteSize;
        end;
        return UDim2.fromOffset(v14.X, (v14.Y - (l_ExpandedHeight_0 + l_Stylizer_0.TopBarHeight)) + v15.Y);
    end;
    v9.changeTokens = {};
end;
v8.didUpdate = function(v16, v17)
    if v16.props.Hide ~= v17.Hide then
        if not v16.props.Hide then
            v16.reposition();
        end;
        v16:setState({
            closeHovered = false
        });
    end;
end;
v8.didMount = function(v18)
    local l_Parent_0 = v18.ref.current.Parent;
    table.insert(v18.changeTokens, l_Parent_0:GetPropertyChangedSignal("AbsoluteSize"):Connect(v18.reposition));
    table.insert(v18.changeTokens, l_Parent_0:GetPropertyChangedSignal("AbsolutePosition"):Connect(v18.reposition));
end;
v8.willUnmount = function(v20)
    for _, v22 in ipairs(v20.changeTokens) do
        v22:Disconnect();
    end;
end;
v8.renderTopBar = function(v23, v24)
    local l_state_0 = v23.state;
    local l_props_1 = v23.props;
    local l_closeHovered_0 = l_state_0.closeHovered;
    local l_Stylizer_1 = l_props_1.Stylizer;
    local l_Size_0 = l_Stylizer_1.Arrow.Size;
    return v2.createElement(l_Pane_0, {
        BackgroundColor3 = l_Stylizer_1.TopBarColor,
        BorderSizePixel = 0,
        LayoutOrder = v24,
        Size = UDim2.new(1, 0, 0, l_Stylizer_1.TopBarHeight),
        Padding = l_Stylizer_1.TopBarPadding,
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Center
    }, {
        CloseButton = v2.createElement("ImageButton", {
            BackgroundTransparency = 1,
            Size = UDim2.fromOffset(l_Size_0, l_Size_0),
            ImageColor3 = if not l_closeHovered_0 then l_Stylizer_1.Arrow.Color else l_Stylizer_1.Arrow.HoverColor,
            Image = l_Stylizer_1.Arrow.Image,
            ImageRectOffset = l_Stylizer_1.Arrow.Offset,
            ImageRectSize = Vector2.new(l_Size_0, l_Size_0),
            [v2.Event.MouseButton1Click] = l_props_1.OnFocusLost,
            [v2.Event.MouseEnter] = v23.onMouseEnter,
            [v2.Event.MouseLeave] = v23.onMouseLeave
        })
    });
end;
v8.renderFrame = function(v30)
    local l_state_1 = v30.state;
    local l_props_2 = v30.props;
    local l_Stylizer_2 = l_props_2.Stylizer;
    local l_position_0 = l_state_1.position;
    local v35 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Position = l_position_0,
        Size = UDim2.new(1, 0, 0, l_props_2.ExpandedHeight + l_Stylizer_2.TopBarHeight),
        BackgroundColor3 = l_Stylizer_2.BackgroundColor,
        BorderSizePixel = 0,
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top
    }, {
        TopBar = v30:renderTopBar(v35:getNextOrder()),
        Content = l_props_2.RenderContent(v35:getNextOrder())
    });
end;
v8.render = function(v36)
    local l_props_3 = v36.props;
    local v38 = not l_props_3.Hide;
    return v2.createElement(l_Pane_0, {
        ForwardRef = v36.ref,
        Size = UDim2.fromScale(1, 0)
    }, {
        PortalToRoot = v38 and v2.createElement(l_CaptureFocus_0, {
            OnFocusLost = l_props_3.OnFocusLost
        }, {
            Frame = v38 and v36:renderFrame()
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Stylizer_0 = v2.Style.Stylizer;
local l_ThemeSwitcher_0 = v2.Style.ThemeSwitcher;
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_AssetRenderModel_0 = l_UI_0.AssetRenderModel;
local l_Button_0 = l_UI_0.Button;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Tooltip_0 = l_UI_0.Tooltip;
local v17 = require(l_script_FirstAncestor_0.Src.Resources.Images);
local v18 = Vector3.new(-1, 1, -1);
local v19 = v1.PureComponent:extend("PreviewModelComponent");
local function _()
    local v20 = l_ThemeSwitcher_0.getThemeName();
    if not (v20 ~= "Dark") or v20 == "Default" then
        return v17.RESET_CAM_DARK;
    else
        return v17.RESET_CAM_LIGHT;
    end;
end;
game:GetService("Players"):CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R6).Parent = Instance.new("WorldModel");
local function _(v22)
    if v22 == nil then
        return nil;
    elseif not v22:IsA("WorldModel") then
        local l_WorldModel_0 = Instance.new("WorldModel");
        v22.Parent = l_WorldModel_0;
        return l_WorldModel_0;
    else
        return v22;
    end;
end;
v19.init = function(v25)
    v25.camera = Instance.new("Camera");
    v25.resetCamera = function()
        local l_Model_0 = v25.props.Model;
        local v27;
        if l_Model_0 == nil then
            v27 = nil;
        elseif not l_Model_0:IsA("WorldModel") then
            local l_WorldModel_1 = Instance.new("WorldModel");
            l_Model_0.Parent = l_WorldModel_1;
            v27 = l_WorldModel_1;
        else
            v27 = l_Model_0;
        end;
        local v29 = v27:GetExtentsSize().Magnitude * 0.8;
        local l_Unit_0 = v18.Unit;
        v25.camera.Focus = CFrame.new();
        v25.camera.CFrame = CFrame.new(v29 * l_Unit_0, v25.camera.Focus.Position);
    end;
    v25.clone = false;
    v25.loadAnimation = function(v31)
        local l_AnimationId_0 = v25.props.AnimationId;
        if l_AnimationId_0 then
            local v33 = nil;
            v33 = v31.AncestryChanged:Connect(function(_, v35)
                if not (not v35 or not v35:IsDescendantOf(game)) then
                    v33:Disconnect();
                    local v36 = nil;
                    local l_v31_FirstChildWhichIsA_0 = v31:FindFirstChildWhichIsA("Humanoid", true);
                    if not l_v31_FirstChildWhichIsA_0 then
                        return ;
                    else
                        v36 = l_v31_FirstChildWhichIsA_0;
                        local l_v36_FirstChildWhichIsA_0 = v36:FindFirstChildWhichIsA("Animator", true);
                        if not l_v36_FirstChildWhichIsA_0 then
                            l_v36_FirstChildWhichIsA_0 = Instance.new("Animator");
                            l_v36_FirstChildWhichIsA_0.Parent = v36;
                        end;
                        local l_Animation_0 = Instance.new("Animation");
                        l_Animation_0.AnimationId = l_AnimationId_0;
                        l_Animation_0.Parent = v36;
                        local v40 = l_v36_FirstChildWhichIsA_0:LoadAnimation(l_Animation_0);
                        v40.Looped = true;
                        if v25.props.Loaded then
                            v25.props.Loaded:Fire(true, v40, l_v36_FirstChildWhichIsA_0);
                        end;
                        v31.Destroying:Connect(function()
                            v25.props.Loaded:Fire(false, v40);
                        end);
                    end;
                end;
            end);
            return ;
        else
            return ;
        end;
    end;
end;
v19.getDerivedStateFromProps = function(v41, v42)
    if not (v41.AnimationId == v42.animationId) or v41.Model ~= v42.refModel then
        return {
            animationId = v41.AnimationId,
            refModel = if not v41.Model then v1.None else v41.Model,
            model = if not v41.Model then v1.None else v41.Model:Clone()
        };
    else
        return nil;
    end;
end;
v19.render = function(v43)
    local l_props_0 = v43.props;
    local l_Size_0 = l_props_0.Size;
    local l_Position_0 = l_props_0.Position;
    local v47 = v43.state.model or Instance.new("Model");
    local l_Label_0 = l_props_0.Label;
    local l_AnimationId_1 = l_props_0.AnimationId;
    local l_Stylizer_1 = l_props_0.Stylizer;
    local l_createElement_0 = v1.createElement;
    local l_l_Pane_0_0 = l_Pane_0;
    local v53 = {
        Style = "RoundBox",
        Padding = l_Stylizer_1.Padding,
        Size = l_Size_0,
        Position = l_Position_0,
        BackgroundColor3 = l_Stylizer_1.BackgroundColor
    };
    local v54 = {
        PreviewRender = v1.createElement(l_AssetRenderModel_0, {
            Camera = v43.camera,
            Model = v47,
            FocusDirection = v18,
            OnViewModelLoaded = if not l_AnimationId_1 then nil else v43.loadAnimation
        })
    };
    local l_createElement_1 = v1.createElement;
    local l_l_Button_0_0 = l_Button_0;
    local v57 = {
        OnClick = v43.resetCamera,
        Style = "RoundSubtle",
        Size = l_Stylizer_1.ResetButtonSize,
        AnchorPoint = Vector2.new(1, 0),
        Position = UDim2.fromScale(1, 0)
    };
    local v58 = {};
    local l_createElement_2 = v1.createElement;
    local l_l_Image_0_0 = l_Image_0;
    local v61 = {};
    local v62 = l_ThemeSwitcher_0.getThemeName();
    v61.Image = if not (v62 ~= "Dark") or v62 == "Default" then v17.RESET_CAM_DARK else v17.RESET_CAM_LIGHT;
    v58.Icon = l_createElement_2(l_l_Image_0_0, v61);
    v58.Tooltip = v1.createElement(l_Tooltip_0, {
        Text = "Reset Camera"
    });
    v54.CameraResetButton = l_createElement_1(l_l_Button_0_0, v57, v58);
    v54.Label = v1.createElement(l_TextLabel_0, {
        Text = l_Label_0,
        AutomaticSize = Enum.AutomaticSize.XY
    });
    return l_createElement_0(l_l_Pane_0_0, v53, v54);
end;
return (l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0,
    Plugin = l_Plugin_0
})(v19));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Cryo);
local v3 = require(l_script_FirstAncestor_0.Packages.Dash);
local v4 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_omit_0 = v3.omit;
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v4.UI;
local l_CaptureFocus_0 = l_UI_0.CaptureFocus;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Pane_0 = l_UI_0.Pane;
local l_FakeLoadingBar_0 = l_UI_0.FakeLoadingBar;
local l_LoadingBar_0 = l_UI_0.LoadingBar;
local l_LayoutOrderIterator_0 = v4.Util.LayoutOrderIterator;
local v15 = v1.PureComponent:extend("ProgressBar");
v15.renderFakeLoadingBar = function(v16, v17)
    local l_props_0 = v16.props;
    return v1.createElement(l_FakeLoadingBar_0, (v2.Dictionary.join(l_omit_0(l_props_0.FakeLoadProps, "OnFakeLoadCompleted"), {
        Size = UDim2.new(1, 0, 0, l_props_0.Stylizer.BarHeight),
        LayoutOrder = v17
    })));
end;
v15.renderLoadingBar = function(v19, v20)
    local l_props_1 = v19.props;
    return v1.createElement(l_LoadingBar_0, {
        Size = UDim2.new(1, 0, 0, l_props_1.Stylizer.BarHeight),
        LayoutOrder = v20,
        Progress = l_props_1.Progress
    });
end;
v15.render = function(v22)
    local l_props_2 = v22.props;
    local l_Text_0 = l_props_2.Text;
    local l_FakeLoadProps_0 = l_props_2.FakeLoadProps;
    local l_Stylizer_0 = l_props_2.Stylizer;
    local v27 = l_LayoutOrderIterator_0.new();
    return v1.createElement(l_CaptureFocus_0, {
        OnFocusLost = function()
        end
    }, {
        Pane = v1.createElement(l_Pane_0, {
            BackgroundColor3 = l_Stylizer_0.BackgroundColor,
            BackgroundTransparency = l_Stylizer_0.BackgroundTransparency,
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Padding = l_Stylizer_0.Padding
        }, {
            Text = v1.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                BackgroundTransparency = 1,
                TextSize = l_Stylizer_0.TextSize,
                Text = l_Text_0,
                TextWrapped = true,
                LayoutOrder = v27:getNextOrder()
            }),
            ProgressBar = if not l_FakeLoadProps_0 then v22:renderLoadingBar(v27:getNextOrder()) else v22:renderFakeLoadingBar(v27:getNextOrder())
        })
    });
end;
v15.didUpdate = function(v28, v29, _)
    local l_FakeLoadProps_1 = v29.FakeLoadProps;
    local l_FakeLoadProps_2 = v28.props.FakeLoadProps;
    if l_FakeLoadProps_2 and l_FakeLoadProps_2.Completed then
        if not (not (not l_FakeLoadProps_1 or l_FakeLoadProps_1.Completed ~= l_FakeLoadProps_2.Completed) or not l_FakeLoadProps_2.OnFakeLoadCompleted) then
            l_FakeLoadProps_2.OnFakeLoadCompleted();
        end;
        return ;
    else
        return ;
    end;
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v15));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Button_0 = l_UI_0.Button;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v8 = v2.PureComponent:extend("Buttons");
v8.render = function(v9)
    local l_props_0 = v9.props;
    local l_OnClose_0 = l_props_0.OnClose;
    local l_OnOpen_0 = l_props_0.OnOpen;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v16 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        LayoutOrder = l_LayoutOrder_0,
        AutomaticSize = Enum.AutomaticSize.XY,
        Spacing = l_Stylizer_0.Spacing,
        Padding = l_Stylizer_0.Padding
    }, {
        Close = v2.createElement(l_Button_0, {
            Style = "Round",
            Text = l_Localization_0:getText("PublishingBlockedAction", "Close"),
            Size = l_Stylizer_0.CloseButtonSize,
            OnClick = l_OnClose_0,
            LayoutOrder = v16:getNextOrder()
        }),
        GoTo = v2.createElement(l_Button_0, {
            Style = "RoundPrimary",
            Text = l_Localization_0:getText("PublishingBlockedAction", "GoTo"),
            Size = l_Stylizer_0.GoToButtonSize,
            OnClick = l_OnOpen_0,
            LayoutOrder = v16:getNextOrder()
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v8));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v2.Util.LayoutOrderIterator;
local v9 = require(l_script_FirstAncestor_0.Src.Components.PublishBlocked.Buttons);
local v10 = v1.PureComponent:extend("PublishBlockedDialog");
v10.render = function(v11)
    local l_props_0 = v11.props;
    local l_OnClose_0 = l_props_0.OnClose;
    local l_OnOpen_0 = l_props_0.OnOpen;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v17 = l_LayoutOrderIterator_0.new();
    return v1.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        Spacing = l_Stylizer_0.Spacing,
        Padding = l_Stylizer_0.Padding
    }, {
        Icon = v1.createElement(l_Image_0, {
            Size = UDim2.fromOffset(l_Stylizer_0.ImageSize, l_Stylizer_0.ImageSize),
            Image = l_Stylizer_0.WarningIcon,
            LayoutOrder = v17:getNextOrder()
        }),
        Text = v1.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            VerticalAlignment = Enum.VerticalAlignment.Bottom,
            Size = l_Stylizer_0.TextSize,
            LayoutOrder = v17:getNextOrder(),
            Spacing = l_Stylizer_0.TextSpacing
        }, {
            Warning = v1.createElement(l_TextLabel_0, {
                Text = l_Localization_0:getText("PublishingBlocked", "Warning"),
                AutomaticSize = Enum.AutomaticSize.Y,
                TextXAlignment = Enum.TextXAlignment.Left,
                Size = UDim2.new(1, 0, 0, 0),
                Style = "Semibold"
            }),
            Detail = v1.createElement(l_TextLabel_0, {
                Text = l_Localization_0:getText("PublishingBlocked", "Detail"),
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.new(1, 0, 0, 0),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextWrapped = true,
                LayoutOrder = v17:getNextOrder(),
                Style = "Body"
            }),
            Buttons = v1.createElement(v9, {
                OnClose = l_OnClose_0,
                OnOpen = l_OnOpen_0,
                LayoutOrder = v17:getNextOrder()
            })
        })
    });
end;
return (l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v10));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Button_0 = l_UI_0.Button;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v8 = v2.PureComponent:extend("Buttons");
v8.render = function(v9)
    local l_props_0 = v9.props;
    local l_OnCancel_0 = l_props_0.OnCancel;
    local l_OnContinue_0 = l_props_0.OnContinue;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v16 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        LayoutOrder = l_LayoutOrder_0,
        AutomaticSize = Enum.AutomaticSize.XY,
        Spacing = l_Stylizer_0.Spacing,
        Padding = l_Stylizer_0.Padding
    }, {
        Cancel = v2.createElement(l_Button_0, {
            Style = "Round",
            Text = l_Localization_0:getText("PublishWarningAction", "Cancel"),
            Size = l_Stylizer_0.CancelButtonSize,
            OnClick = l_OnCancel_0,
            LayoutOrder = v16:getNextOrder()
        }),
        Continue = v2.createElement(l_Button_0, {
            Style = "RoundPrimary",
            Text = l_Localization_0:getText("PublishWarningAction", "Continue"),
            Size = l_Stylizer_0.ContinueButtonSize,
            OnClick = l_OnContinue_0,
            LayoutOrder = v16:getNextOrder()
        })
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v8));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v2.Util.LayoutOrderIterator;
local v9 = require(l_script_FirstAncestor_0.Src.Components.PublishWarning.Buttons);
local v10 = v1.PureComponent:extend("PublishWarningDialog");
v10.render = function(v11)
    local l_props_0 = v11.props;
    local l_OnCancel_0 = l_props_0.OnCancel;
    local l_OnContinue_0 = l_props_0.OnContinue;
    local l_Localization_0 = l_props_0.Localization;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local v17 = l_LayoutOrderIterator_0.new();
    return v1.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        Spacing = l_Stylizer_0.Spacing,
        Padding = l_Stylizer_0.Padding
    }, {
        Icon = v1.createElement(l_Image_0, {
            Size = UDim2.fromOffset(l_Stylizer_0.ImageSize, l_Stylizer_0.ImageSize),
            Image = l_Stylizer_0.WarningIcon,
            LayoutOrder = v17:getNextOrder()
        }),
        Text = v1.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            VerticalAlignment = Enum.VerticalAlignment.Bottom,
            Size = l_Stylizer_0.TextSize,
            LayoutOrder = v17:getNextOrder(),
            Spacing = l_Stylizer_0.TextSpacing
        }, {
            Warning = v1.createElement(l_TextLabel_0, {
                Text = l_Localization_0:getText("PublishWarning", "Warning"),
                AutomaticSize = Enum.AutomaticSize.Y,
                TextXAlignment = Enum.TextXAlignment.Left,
                Size = UDim2.new(1, 0, 0, 0),
                Style = "Semibold"
            }),
            Detail = v1.createElement(l_TextLabel_0, {
                Text = l_Localization_0:getText("PublishWarning", "Detail"),
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.new(1, 0, 0, 0),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextWrapped = true,
                LayoutOrder = v17:getNextOrder(),
                Style = "Body"
            }),
            Buttons = v1.createElement(v9, {
                OnCancel = l_OnCancel_0,
                OnContinue = l_OnContinue_0,
                LayoutOrder = v17:getNextOrder()
            })
        })
    });
end;
return (l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v10));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local l_List_0 = v1.UI.List;
local l_deepCopy_0 = v1.Util.deepCopy;
local v7 = require(l_script_FirstAncestor_0.Src.Components.ReplaceOptionItem);
local v8 = require(l_script_FirstAncestor_0.Src.Thunks.ReplaceRules);
local v9 = v2.PureComponent:extend("ReplaceOptionsPane");
v9.init = function(v10, v11)
    v10.state = {
        rules = l_deepCopy_0(v11.replaceRules)
    };
    v10.onRuleUpdated = function(v12, v13, v14, v15)
        local v16 = l_deepCopy_0(v10.state.rules);
        v16[v12] = {
            FromText = v13,
            ToText = v14,
            Enabled = v15
        };
        v10.props.Analytics:getHandler("onScriptRulesUpdate")(v13, v14, v15);
        v10:setState({
            rules = v16
        });
        v10.props.ReplaceRules(l_deepCopy_0(v16));
    end;
    v10.getRowProps = function(v17, _, v19, v20)
        return {
            Key = v17.Key,
            FromText = v17.FromText,
            ToText = v17.ToText,
            Enabled = v17.Enabled,
            Selectable = v17.Selectable,
            UpdateReplaceRules = v10.onRuleUpdated,
            Position = v19,
            Size = v20
        };
    end;
end;
v9.render = function(v21)
    local l_props_0 = v21.props;
    local l_state_0 = v21.state;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_rules_0 = l_state_0.rules;
    local v26 = {};
    for v27, v28 in l_rules_0, nil, nil do
        table.insert(v26, {
            Key = v27,
            FromText = v28.FromText,
            ToText = v28.ToText,
            Enabled = v28.Enabled,
            Selectable = true
        });
    end;
    return v2.createElement(l_List_0, {
        Rows = v26,
        RowComponent = v7,
        RowHeight = l_Stylizer_0.RowHeight,
        GetRowProps = v21.getRowProps,
        Size = UDim2.new(1, 0, 0, l_Stylizer_0.PaneHeight)
    });
end;
v9.willUnmount = function(v29)
    if v29.paneSizeChanged then
        v29.paneSizeChanged:Disconnect();
        v29.paneSizeChanged = nil;
    end;
    if v29.listSizeChanged then
        v29.listSizeChanged:Disconnect();
        v29.listSizeChanged = nil;
    end;
end;
return v3.connect(function(v30, _)
    return {
        replaceRules = v30.ScriptConversion.replaceRules
    };
end, function(v32)
    return {
        ReplaceRules = function(v33)
            v32(v8(v33));
        end
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Analytics = l_ContextServices_0.Analytics
})(v9)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Button_0 = l_UI_0.Button;
local l_Util_0 = v1.Util;
local _ = l_Util_0.StyleModifier;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local l_ContextServices_0 = v1.ContextServices;
local v11 = require(l_script_FirstAncestor_0.Src.Contexts.ScriptConversionContext);
local l_AnimationConversion_0 = l_script_FirstAncestor_0.Src.Util.AnimationConversion;
local _ = require(l_AnimationConversion_0.AnimationConversionManager);
local _ = require(l_AnimationConversion_0.constants).AssetType;
local l_Thunks_0 = l_script_FirstAncestor_0.Src.Thunks;
local v16 = require(l_Thunks_0.ConvertAnimation);
local v17 = require(l_Thunks_0.UploadTestAnimations);
local v18 = require(l_Thunks_0.RevertAnimation);
local v19 = v2.PureComponent:extend("ReplaceRevertButtons");
v19.render = function(v20)
    local l_props_0 = v20.props;
    local _ = l_props_0.selection;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local v25 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Right,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        Spacing = l_Stylizer_0.Spacing,
        AutomaticSize = Enum.AutomaticSize.XY
    }, {
        Revert = v2.createElement(l_Button_0, {
            Style = "Round",
            Text = l_Localization_0:getText("AnimationConversion", "Revert"),
            Size = l_Stylizer_0.ButtonSize,
            OnClick = function()
                v20.props.revertAnimation(l_props_0.ScriptConversionContext);
            end,
            LayoutOrder = v25:getNextOrder()
        }),
        Replace = v2.createElement(l_Button_0, {
            Style = "RoundPrimary",
            Text = l_Localization_0:getText("AnimationConversion", "Replace"),
            Size = l_Stylizer_0.ButtonSize,
            OnClick = function()
                v20.props.convertAnimation(l_props_0.ScriptConversionContext, l_props_0.Analytics);
            end,
            LayoutOrder = v25:getNextOrder()
        })
    });
end;
return v3.connect(function(v26, _)
    return {
        selection = v26.AnimationConversion.selection
    };
end, function(v28)
    return {
        convertAnimation = function(v29, v30)
            v28(v16(v29, v30));
        end,
        revertAnimation = function(v31)
            v28(v18(v31));
        end,
        uploadTestAnimations = function(v32)
            v28(v17(v32));
        end
    };
end)((l_ContextServices_0.withContext({
    Analytics = l_ContextServices_0.Analytics,
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization,
    ScriptConversionContext = v11
})(v19)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local l_SimpleExpandablePane_0 = v1.UI.SimpleExpandablePane;
local v4 = require(l_script_FirstAncestor_0.Src.Components.ReplaceOptionsPane);
local v5 = v2.PureComponent:extend("ReplacementRulesExpandablePane");
v5.render = function(v6)
    local l_props_0 = v6.props;
    return v2.createElement(l_SimpleExpandablePane_0, {
        Size = l_props_0.Size,
        Style = "Section",
        LayoutOrder = l_props_0.LayoutOrder,
        Text = "Replacement Rules",
        Expanded = true
    }, {
        ReplaceOptionsPane = v2.createElement(v4)
    });
end;
return v5;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local v5 = require(l_script_FirstAncestor_0.Src.Components.ScriptIconView);
local v6 = require(l_script_FirstAncestor_0.Src.Components.PopUpFrame);
local v7 = require(l_script_FirstAncestor_0.Src.Util.ScriptStatusUtil);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_List_0 = l_UI_0.List;
local v11 = v2.PureComponent:extend("ScriptConversionConsole");
v11.init = function(v12)
    v12.state = {
        arrowHovered = false,
        hideConsole = true,
        rows = {}
    };
    v12.onMouseEnter = function()
        v12:setState({
            arrowHovered = true
        });
    end;
    v12.onMouseLeave = function()
        v12:setState({
            arrowHovered = false
        });
    end;
    v12.closeConsole = function()
        v12:setState({
            hideConsole = true
        });
    end;
    v12.openConsole = function()
        v12:setState({
            hideConsole = false,
            arrowHovered = false
        });
    end;
    v12.renderConsoleContent = function(v13)
        local l_state_0 = v12.state;
        local l_props_0 = v12.props;
        local l_rows_0 = l_state_0.rows;
        if l_rows_0 then
            return v2.createElement(l_List_0, {
                Rows = l_rows_0,
                LayoutOrder = v13,
                RowHeight = l_props_0.Stylizer.RowHeight
            });
        else
            return ;
        end;
    end;
end;
v11.buildRows = function(v17)
    local l_props_1 = v17.props;
    local l_processResult_0 = l_props_1.processResult;
    local l_Localization_0 = l_props_1.Localization;
    local l_Stylizer_0 = l_props_1.Stylizer;
    local l_v7_StatusMessages_0 = v7:GetStatusMessages(l_processResult_0, l_Localization_0);
    local v23 = {};
    for v24, v25 in l_v7_StatusMessages_0, nil, nil do
        table.insert(v23, {
            text = v25,
            icon = {
                Image = l_Stylizer_0.StatusIcons[v24],
                Size = l_Stylizer_0.IconSize
            }
        });
    end;
    v17:setState({
        rows = v23
    });
end;
v11.didMount = function(v26)
    if v26.props.processResult then
        v26:buildRows();
    end;
end;
v11.didUpdate = function(v27, v28)
    if v27.props.processResult ~= v28.processResult then
        v27:buildRows();
    end;
end;
v11.render = function(v29)
    local l_props_2 = v29.props;
    local l_state_1 = v29.state;
    local l_LayoutOrder_0 = l_props_2.LayoutOrder;
    local l_Stylizer_1 = l_props_2.Stylizer;
    local l_processResult_1 = l_props_2.processResult;
    local l_Size_0 = l_Stylizer_1.Arrow.Size;
    local l_hideConsole_0 = l_state_1.hideConsole;
    local l_arrowHovered_0 = l_state_1.arrowHovered;
    local v38 = next(l_processResult_1) ~= nil;
    return v2.createElement(l_Pane_0, {
        BackgroundColor3 = l_Stylizer_1.BackgroundColor,
        BorderSizePixel = 0,
        LayoutOrder = l_LayoutOrder_0,
        Size = UDim2.new(1, 0, 0, l_Stylizer_1.RowHeight),
        Padding = l_Stylizer_1.Padding
    }, {
        StatusPane = v2.createElement(v5, {
            Size = UDim2.fromScale(1, 1),
            ShowCounts = true,
            Statuses = v7:GetStatusCounts(l_processResult_1),
            AllowTooltips = false
        }),
        PopUpFrame = v38 and v2.createElement(v6, {
            Hide = l_hideConsole_0,
            OnFocusLost = v29.closeConsole,
            RenderContent = v29.renderConsoleContent,
            ExpandedHeight = l_Stylizer_1.ConsoleHeight
        }),
        ExpandButton = v38 and v2.createElement("ImageButton", {
            Position = UDim2.fromScale(1, 0.5),
            AnchorPoint = Vector2.new(1, 0.5),
            BackgroundTransparency = 1,
            Size = UDim2.fromOffset(l_Size_0, l_Size_0),
            ImageColor3 = if not l_arrowHovered_0 then l_Stylizer_1.Arrow.Color else l_Stylizer_1.Arrow.HoverColor,
            Image = l_Stylizer_1.Arrow.Image,
            ImageRectOffset = l_Stylizer_1.Arrow.Offset,
            ImageRectSize = Vector2.new(l_Size_0, l_Size_0),
            [v2.Event.MouseButton1Click] = v29.openConsole,
            [v2.Event.MouseEnter] = v29.onMouseEnter,
            [v2.Event.MouseLeave] = v29.onMouseLeave
        })
    });
end;
return v3.connect(function(v39, _)
    return {
        processResult = v39.ScriptConversion.processResult
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v11)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local v4 = require(l_script_FirstAncestor_0.Packages.Dash);
local l_join_0 = v4.join;
local l_keys_0 = v4.keys;
local l_ContextServices_0 = v1.ContextServices;
local l_UI_0 = v1.UI;
local l_SimpleExpandablePane_0 = l_UI_0.SimpleExpandablePane;
local l_Pane_0 = l_UI_0.Pane;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = v1.Util.LayoutOrderIterator;
local v13 = require(l_script_FirstAncestor_0.Src.Components.ScriptIssueTreeView);
local v14 = require(l_script_FirstAncestor_0.Src.Components.ScriptConversionPaneHeader);
local v15 = require(l_script_FirstAncestor_0.Src.Components.ScriptConversionPaneFooter);
local v16 = v2.PureComponent:extend("ScriptConversionExpandablePane");
v16.init = function(v17)
    v17.customHeader = function(v18)
        local l_props_0 = v17.props;
        local l_Localization_0 = l_props_0.Localization;
        local l_initialIssueCounts_0 = l_props_0.initialIssueCounts;
        local v22 = #l_keys_0(l_initialIssueCounts_0);
        local v23 = 0;
        for _, v25 in l_initialIssueCounts_0, nil, nil do
            v23 = v23 + v25;
        end;
        return v2.createElement(l_Pane_0, l_join_0({
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            Layout = Enum.FillDirection.Horizontal
        }, v18), {
            MessageText = v2.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                Text = l_Localization_0:getText("ScriptConversion", "HeaderMessage", {
                    scriptCount = string.format("%d", v22),
                    issueCount = string.format("%d", v23)
                })
            })
        });
    end;
end;
v16.render = function(v26)
    local l_props_1 = v26.props;
    local l_Stylizer_0 = l_props_1.Stylizer;
    local l_LayoutOrder_0 = l_props_1.LayoutOrder;
    local l_HeaderSize_0 = l_props_1.HeaderSize;
    local l_ContentSize_0 = l_props_1.ContentSize;
    local v32 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_SimpleExpandablePane_0, {
        HeaderComponent = v26.customHeader,
        Size = l_HeaderSize_0,
        Style = "Section",
        LayoutOrder = l_LayoutOrder_0,
        Text = "Scripts",
        Expanded = true,
        ContentPadding = 0,
        ContentSpacing = 0
    }, {
        Container = v2.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            Size = l_ContentSize_0
        }, {
            ScriptConversionPaneHeader = v2.createElement(v14, {
                LayoutOrder = v32:getNextOrder(),
                Size = UDim2.new(1, 0, 0, l_Stylizer_0.HeaderHeight)
            }),
            ScriptIssueTreeView = v2.createElement(v13, {
                LayoutOrder = v32:getNextOrder(),
                Size = UDim2.new(1, 0, 1, -l_Stylizer_0.HeaderHeight - l_Stylizer_0.FooterHeight),
                OnResetPlugin = l_props_1.OnResetPlugin
            }),
            ScriptConversionPaneFooter = v2.createElement(v15, {
                LayoutOrder = v32:getNextOrder(),
                Size = UDim2.new(1, 0, 0, l_Stylizer_0.FooterHeight)
            })
        })
    });
end;
return v3.connect(function(v33, _)
    return {
        initialIssueCounts = v33.ScriptConversion.initialIssueCounts
    };
end)((l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v16)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local v5 = require(l_script_FirstAncestor_0.Src.Thunks.ReplaceWithRules);
local v6 = require(l_script_FirstAncestor_0.Src.Thunks.RevertScripts);
local v7 = require(l_script_FirstAncestor_0.Src.Components.ConfirmRevertDialog);
local v8 = require(l_script_FirstAncestor_0.Src.Components.ScriptConversionConsole);
local v9 = require(l_script_FirstAncestor_0.Src.Contexts.ScriptConversionContext);
local v10 = require(l_script_FirstAncestor_0.Src.Util.showDialog);
local v11 = require(l_script_FirstAncestor_0.Src.Util.ScriptHistory.selectionHasScriptBackups);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Button_0 = l_UI_0.Button;
local l_Util_0 = v1.Util;
local l_StyleModifier_0 = l_Util_0.StyleModifier;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local v18 = v2.PureComponent:extend("ScriptConversionPaneFooter");
v18.init = function(v19)
    v19.onRevertClicked = function()
        local l_props_0 = v19.props;
        l_props_0.RevertScripts(l_props_0.ScriptConversionContext, l_props_0.Localization, l_props_0.Analytics);
    end;
    v19.openDialog = function()
        local l_props_1 = v19.props;
        v10(l_props_1.Plugin, l_props_1.Localization, v7, {
            OnConfirm = v19.onRevertClicked
        });
    end;
    v19.onConvertClicked = function()
        local l_props_2 = v19.props;
        l_props_2.ReplaceWithRules(l_props_2.ScriptConversionContext, l_props_2.Localization, true, l_props_2.Analytics);
    end;
    v19.revertEnabled = function()
        local l_props_3 = v19.props;
        return v11(l_props_3.selection, l_props_3.ScriptConversionContext);
    end;
end;
v18.render = function(v24)
    local l_props_4 = v24.props;
    local l_Localization_0 = l_props_4.Localization;
    local l_LayoutOrder_0 = l_props_4.LayoutOrder;
    local l_Stylizer_0 = l_props_4.Stylizer;
    local l_Size_0 = l_props_4.Size;
    local v30 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        BackgroundColor = l_Stylizer_0.BackgroundColor,
        LayoutOrder = l_LayoutOrder_0,
        Size = l_Size_0,
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        Spacing = l_Stylizer_0.Spacing,
        Padding = l_Stylizer_0.ButtonPadding
    }, {
        ScriptConversionConsole = v2.createElement(v8, {
            LayoutOrder = v30:getNextOrder()
        }),
        FooterButtons = v2.createElement(l_Pane_0, {
            LayoutOrder = v30:getNextOrder(),
            Size = UDim2.fromScale(1, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            Layout = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            Spacing = l_Stylizer_0.ButtonSpacing
        }, {
            RevertButton = v2.createElement(l_Button_0, {
                Size = l_Stylizer_0.RevertButtonSize,
                Text = l_Localization_0:getText("ScriptConversion", "Revert"),
                OnClick = v24.openDialog,
                StyleModifier = if v24.revertEnabled() then nil else l_StyleModifier_0.Disabled,
                LayoutOrder = v30:getNextOrder()
            }),
            ConvertButton = v2.createElement(l_Button_0, {
                Style = "RoundPrimary",
                Size = l_Stylizer_0.ReplaceButtonSize,
                Text = l_Localization_0:getText("ScriptConversion", "Replace"),
                OnClick = v24.onConvertClicked,
                LayoutOrder = v30:getNextOrder()
            })
        })
    });
end;
return v3.connect(function(v31, _)
    return {
        selection = v31.ScriptConversion.selection
    };
end, function(v33)
    return {
        ReplaceWithRules = function(v34, v35, v36, v37)
            v33(v5(v34, v35, v36, v37));
        end,
        RevertScripts = function(v38, v39, v40)
            v33(v6(v38, v39, v40));
        end
    };
end)((l_ContextServices_0.withContext({
    Analytics = l_ContextServices_0.Analytics,
    Plugin = l_ContextServices_0.Plugin,
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer,
    ScriptConversionContext = v9
})(v18)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.Cryo);
local v4 = require(l_script_FirstAncestor_0.Packages.RoactRodux);
local l_ContextServices_0 = v1.ContextServices;
local v6 = require(l_script_FirstAncestor_0.Src.Actions.SetFilter);
local l_UI_0 = v1.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_SelectInput_0 = l_UI_0.SelectInput;
local l_Button_0 = l_UI_0.Button;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Util_0 = v1.Util;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local l_StyleModifier_0 = l_Util_0.StyleModifier;
local v15 = v2.PureComponent:extend("ScriptConversionPaneHeader");
v15.buildItems = function(v16)
    local l_props_0 = v16.props;
    local l_Localization_0 = l_props_0.Localization;
    local l_diagnostics_0 = l_props_0.diagnostics;
    local v20 = {};
    for _, v22 in l_diagnostics_0, nil, nil do
        for _, v24 in v22:Get() do
            v20[v24.instanceName] = true;
        end;
    end;
    local v25 = v3.Dictionary.keys(v20);
    table.sort(v25);
    return v3.List.join({
        l_Localization_0:getText("ScriptConversion", "FilterNone")
    }, v25);
end;
v15.getFilterIndex = function(v26, v27, v28)
    if not v28 then
        v28 = v26.state.items;
    end;
    for v29, v30 in v28, nil, nil do
        if v30 == v27 then
            return v29;
        end;
    end;
    return nil;
end;
v15.init = function(v31)
    v31.state = {
        items = {}
    };
    v31.onFilterSelected = function(v32)
        v31.props.SetFilter(v32);
    end;
    v31.onRenderItem = function(v33, v34, v35, v36)
        local l_Stylizer_0 = v31.props.Stylizer;
        return v2.createElement(l_Button_0, {
            LayoutOrder = v34,
            OnClick = v35,
            Size = UDim2.new(1, 0, 0, l_Stylizer_0.ItemHeight),
            StyleModifier = if not v36 then nil else l_StyleModifier_0.Hover
        }, {
            Label = v2.createElement(l_TextLabel_0, {
                Size = UDim2.new(1, 0, 1, 0),
                Text = v33,
                TextSize = l_Stylizer_0.ListItemTextSize,
                TextXAlignment = Enum.TextXAlignment.Left
            }, {
                Padding = v2.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, l_Stylizer_0.ListItemPadding)
                })
            })
        });
    end;
end;
v15.didMount = function(v38)
    v38:setState({
        items = v38:buildItems()
    });
end;
v15.didUpdate = function(v39, v40, _)
    local l_props_1 = v39.props;
    local l_filter_0 = l_props_1.filter;
    local l_Localization_1 = l_props_1.Localization;
    if l_props_1.diagnostics ~= v40.diagnostics then
        local v45 = v39:buildItems();
        v39:setState({
            items = v45
        });
        if not v39:getFilterIndex(l_filter_0, v45) then
            v39.props.SetFilter(l_Localization_1:getText("ScriptConversion", "FilterNone"));
        end;
    end;
end;
v15.render = function(v46)
    local l_props_2 = v46.props;
    local l_items_0 = v46.state.items;
    local l_Localization_2 = l_props_2.Localization;
    local l_LayoutOrder_0 = l_props_2.LayoutOrder;
    local l_Stylizer_1 = l_props_2.Stylizer;
    local l_Size_0 = l_props_2.Size;
    local l_filter_1 = l_props_2.filter;
    local v54 = l_LayoutOrderIterator_0.new();
    return v2.createElement(l_Pane_0, {
        LayoutOrder = l_LayoutOrder_0,
        Size = l_Size_0,
        Layout = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        Padding = l_Stylizer_1.Padding,
        Spacing = l_Stylizer_1.Spacing
    }, {
        FilterContainer = v2.createElement(l_Pane_0, {
            Size = UDim2.new(1, 0, 0, l_Stylizer_1.FilterHeight),
            LayoutOrder = v54:getNextOrder()
        }, {
            FilterLabel = v2.createElement(l_TextLabel_0, {
                Text = l_Localization_2:getText("ScriptConversion", "Filter"),
                Position = UDim2.fromScale(0, 0.5),
                AnchorPoint = Vector2.new(0, 0.5),
                AutomaticSize = Enum.AutomaticSize.XY
            }),
            Filter = v2.createElement(l_SelectInput_0, {
                AnchorPoint = Vector2.new(1, 0),
                PlaceholderText = l_Localization_2:getText("ScriptConversion", "Filter"),
                SelectedIndex = v46:getFilterIndex(l_filter_1),
                Items = l_items_0,
                OnItemActivated = v46.onFilterSelected,
                OnRenderItem = v46.onRenderItem,
                Size = UDim2.fromOffset(l_Stylizer_1.FilterWidth, l_Stylizer_1.FilterHeight),
                Position = UDim2.fromScale(1, 0),
                LayoutOrder = v54:getNextOrder()
            })
        })
    });
end;
return v4.connect(function(v55, _)
    return {
        diagnostics = v55.ScriptConversion.diagnostics,
        filter = v55.ScriptConversion.filter
    };
end, function(v57)
    return {
        SetFilter = function(v58)
            v57(v6(v58));
        end
    };
end)((l_ContextServices_0.withContext({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v15)));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Framework);
local v2 = require(l_script_FirstAncestor_0.Src.Components.ConfirmRevertDialog);
local v3 = require(l_script_FirstAncestor_0.Src.Util.showDialog);
local v4 = require(l_script_FirstAncestor_0.Src.Util.ScriptReplacement);
local v5 = require(l_script_FirstAncestor_0.Src.Util.ScriptHistory.selectionHasScriptBackups);
local v6 = require(l_script_FirstAncestor_0.Src.Util.ScriptHistory.ChunkUtil);
local l_showContextMenu_0 = v1.UI.showContextMenu;
local v8 = {};
local function _(v9)
    return v9.selectedScriptItems and #v9.selectedScriptItems == 1;
end;
local function _(v11)
    return v11.selectedRangeItems and #v11.selectedRangeItems == 1;
end;
local function _(v13)
    return not v13.selectedRangeItems or #v13.selectedRangeItems == 0;
end;
local function _(v15)
    return not v15.selectedScriptItems or #v15.selectedScriptItems == 0;
end;
v8.promptRevertScripts = function(_, v18)
    v3(v18.Plugin, v18.Localization, v2, {
        OnConfirm = function()
            v18.RevertScripts(v18.ScriptConversionContext, v18.Localization, v18.Analytics);
            v18.onScriptsReverted();
        end
    });
end;
v8.addGoToScriptItem = function(_, v20, v21)
    table.insert(v21, {
        Text = v20.Localization:getText("ScriptConversion", "GoToScript"),
        OnItemClicked = function()
            local l_v20_0 = v20;
            if l_v20_0.selectedRangeItems and #l_v20_0.selectedRangeItems == 1 then
                l_v20_0 = v20;
                if not l_v20_0.selectedScriptItems or #l_v20_0.selectedScriptItems == 0 then
                    local v23 = v20.selectedRangeItems[1];
                    v4.goToScript(v23.scriptId, v23.range, v20.ScriptConversionContext);
                    return ;
                end;
            end;
            v4.goToScript(v20.selectedScriptItems[1].scriptId, nil, v20.ScriptConversionContext);
        end
    });
end;
v8.addSeparator = function(_, v25)
    table.insert(v25, {
        ShowSeparator = true
    });
end;
v8.addSuggestionItems = function(_, v27, v28)
    local v29 = v27.selectedRangeItems[1];
    for _, v31 in v29.suggestions, nil, nil do
        table.insert(v28, {
            Text = v27.Localization:getText("ScriptConversion", "ReplaceWith", {
                part = v31
            }),
            OnItemClicked = function()
                v27.ReplaceWithSuggestion(v29.scriptId, v29.range, v27.ScriptConversionContext, v31, v27.Localization, v29.instanceName, v27.Analytics);
                v27.onSuggestionApplied();
                v27.Analytics:getHandler("onScriptSuggestionApplied")();
            end
        });
    end;
end;
v8.addUndoRevertItem = function(_, v33, v34)
    table.insert(v34, {
        Text = v33.Localization:getText("ScriptConversion", "UndoRevert"),
        OnItemClicked = function()
            v33.UndoRevert(v33.ScriptConversionContext, v33.Localization, v33.Analytics);
        end
    });
end;
v8.addRevertScriptItem = function(v35, v36, v37)
    local l_Localization_0 = v36.Localization;
    table.insert(v37, {
        Text = if not (v36.selectedScriptItems and #v36.selectedScriptItems == 1) then l_Localization_0:getText("ScriptConversion", "RevertScripts") else l_Localization_0:getText("ScriptConversion", "RevertScript"),
        OnItemClicked = function()
            v35:promptRevertScripts(v36);
        end
    });
end;
v8.addReplaceSelectedItem = function(_, v40, v41)
    table.insert(v41, {
        Text = v40.Localization:getText("ScriptConversion", "ReplaceWithRules"),
        OnItemClicked = function()
            v40.ReplaceWithRules(v40.ScriptConversionContext, v40.Localization, v40.Analytics);
        end
    });
end;
v8.addDiffScriptItem = function(_, v43, v44)
    table.insert(v44, {
        Text = v43.Localization:getText("ScriptConversion", "DiffScripts"),
        OnItemClicked = function()
            v4.diffScripts(v43.selectedScriptItems, v43.ScriptConversionContext);
        end
    });
end;
local function _(v45)
    if not v45.selectedScriptItems or #v45.selectedScriptItems == 0 then
        if v45.selectedRangeItems and #v45.selectedRangeItems == 1 then
            local v46 = v45.selectedRangeItems[1];
            if not v46.suggestions or #v46.suggestions == 0 then
                return false;
            else
                return true;
            end;
        else
            return false;
        end;
    else
        return false;
    end;
end;
local function _(v48)
    return v5(v48.selectedScriptItems, v48.ScriptConversionContext);
end;
local _ = function(v50)
    for _, v52 in v50.selectedScriptItems, nil, nil do
        if not v50.revertedScripts[v52.scriptId] then
            return false;
        end;
    end;
    return true;
end;
local _ = function(v54)
    for _, v56 in v54.selectedScriptItems, nil, nil do
        if v54.completedScripts[v56.scriptId] then
            return false;
        end;
    end;
    return true;
end;
local _ = function(v58, _)
    if not ((not v58.selectedScriptItems or #v58.selectedScriptItems == 0) and (v58.selectedRangeItems and #v58.selectedRangeItems == 1)) and (not (v58.selectedScriptItems and #v58.selectedScriptItems == 1) or not (not v58.selectedRangeItems or #v58.selectedRangeItems == 0)) then
        return false;
    else
        return true;
    end;
end;
local function v66(v61)
    for _, v63 in v61.selectedScriptItems, nil, nil do
        local v64 = v61.ScriptConversionContext:getScriptInstanceFromGUID(v63.scriptId);
        local l_v6_ScriptBackupChunks_0 = v6:GetScriptBackupChunks(v64);
        if l_v6_ScriptBackupChunks_0 then
            if not v6:DidSourceChange(v64, l_v6_ScriptBackupChunks_0) then
                return false;
            end;
        else
            return false;
        end;
    end;
    return true;
end;
v8.show = function(v67, v68)
    local v69 = v68.Plugin:get();
    local _ = v68.Suggestions;
    local _ = v68.ScriptIds;
    local v72 = {};
    if (not not (not v68.selectedScriptItems or #v68.selectedScriptItems == 0) and (v68.selectedRangeItems and #v68.selectedRangeItems == 1) or (v68.selectedScriptItems and #v68.selectedScriptItems == 1) and (not v68.selectedRangeItems or #v68.selectedRangeItems == 0)) and true or false then
        v67:addGoToScriptItem(v68, v72);
    end;
    local v73;
    if not v68.selectedScriptItems or #v68.selectedScriptItems == 0 then
        if v68.selectedRangeItems and #v68.selectedRangeItems == 1 then
            local v74 = v68.selectedRangeItems[1];
            v73 = not not v74.suggestions and #v74.suggestions ~= 0;
        else
            v73 = false;
        end;
    else
        v73 = false;
    end;
    if not v73 then
        if not (not v68.selectedScriptItems or #v68.selectedScriptItems == 0) then
            for _, v76 in v68.selectedScriptItems, nil, nil do
                if not v68.revertedScripts[v76.scriptId] then
                    v73 = false;
                    goto label1 --[[  true, false  ]];
                end;
            end;
            v73 = true;
            ::label1::;
            if not v73 then
                if v5(v68.selectedScriptItems, v68.ScriptConversionContext) then
                    v67:addSeparator(v72);
                    v67:addRevertScriptItem(v68, v72);
                end;
            else
                v67:addSeparator(v72);
                v67:addUndoRevertItem(v68, v72);
            end;
        end;
    else
        v67:addSeparator(v72);
        v67:addSuggestionItems(v68, v72);
    end;
    for _, v78 in v68.selectedScriptItems, nil, nil do
        if v68.completedScripts[v78.scriptId] then
            v73 = false;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v73 = true;
    ::label0::;
    if v73 then
        v67:addSeparator(v72);
        v67:addReplaceSelectedItem(v68, v72);
    end;
    if v66(v68) then
        v67:addSeparator(v72);
        v67:addDiffScriptItem(v68, v72);
    end;
    l_showContextMenu_0(v69, v72);
end;
return v8;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Dash_0 = v2.Dash;
local l_append_0 = l_Dash_0.append;
local _ = l_Dash_0.join;
local l_map_0 = l_Dash_0.map;
local l_UI_0 = v2.UI;
local l_IconButton_0 = l_UI_0.IconButton;
local l_showContextMenu_0 = l_UI_0.showContextMenu;
local _ = l_script_FirstAncestor_0.Src.Actions;
local _ = l_script_FirstAncestor_0.Src.Components;
local _ = require(l_script_FirstAncestor_0.Src.Util.ScriptReplacement);
local _ = require(l_script_FirstAncestor_0.Src.Types);
local _ = l_script_FirstAncestor_0.Src.Util;
local v17 = v1.PureComponent:extend("ScriptFilterButton");
local function v23(v18, v19, v20, v21, v22)
    return {
        Text = v22 or v18 .. " " .. v19,
        Checked = v20[v18] and v20[v18][v19],
        Data = {
            RigType = v18,
            InstanceName = v19
        },
        OnItemClicked = v21
    };
end;
v17.init = function(v24)
    v24.showMenu = function()
        local l_props_0 = v24.props;
        local l_Localization_0 = l_props_0.Localization;
        l_showContextMenu_0(l_props_0.Plugin:get(), (l_append_0(l_map_0(l_props_0.InstanceNames, function(v27)
            return (v23("R6", v27, l_props_0.Filters, l_props_0.OnFilterSelected));
        end), {
            {
                ShowSeparator = true
            },
            v23("R15", "Unassigned", l_props_0.Filters, l_props_0.OnFilterSelected, "R15 " .. l_Localization_0:getText("ScriptPane", "Unassigned")),
            (v23("R15", "Assigned", l_props_0.Filters, l_props_0.OnFilterSelected, "R15 " .. l_Localization_0:getText("ScriptPane", "Assigned")))
        })));
    end;
end;
v17.render = function(v28)
    local _ = v28.state;
    local l_props_1 = v28.props;
    return v1.createElement(l_IconButton_0, {
        LayoutOrder = l_props_1.LayoutOrder,
        Size = l_props_1.Size,
        LeftIcon = "rbxasset://textures/StudioSharedUI/Filter.png",
        OnClick = v28.showMenu
    });
end;
return (l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = v2.Style.Stylizer,
    Plugin = l_ContextServices_0.Plugin
})(v17));


local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v1 = require(l_script_FirstAncestor_0.Packages.Roact);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local v4 = require(l_script_FirstAncestor_0.Src.Util.ScriptAnalysis.Constants);
local l_UI_0 = v2.UI;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_Pane_0 = l_UI_0.Pane;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_LayoutOrderIterator_0 = v2.Util.LayoutOrderIterator;
local v11 = v1.PureComponent:extend("ScriptIconView");
v11.defaultProps = {
    AllowTooltips = true
};
local function _(v12)
    return v12[v4.ScriptStatus.Reverted] or 0;
end;
local function _(v14)
    return v14[v4.ScriptStatus.Complete] or 0;
end;
local function _(v16)
    return v16[v4.ScriptStatus.Error] or 0;
end;
local function _(v18)
    return v18[v4.ScriptStatus.VariableError] or 0;
end;
local function _(v20)
    return v20[v4.ScriptStatus.Warning] or 0;
end;
v11.renderIcon = function(v22, v23, v24, v25, v26)
    local l_props_0 = v22.props;
    return v1.createElement(l_Image_0, {
        Image = v23,
        ImageColor3 = v24,
        Size = l_props_0.Stylizer.StatusImageSize,
        LayoutOrder = v26
    }, {
        Tooltip = if not l_props_0.AllowTooltips then nil else v1.createElement(l_Tooltip_0, {
            Text = l_props_0.Localization:getText("ScriptStatus", v25)
        })
    });
end;
v11.renderCount = function(v28, v29, v30)
    return v1.createElement(l_TextLabel_0, {
        Text = tostring(v29),
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = v30,
        TextSize = v28.props.Stylizer.CountTextSize
    });
end;
v11.render = function(v31)
    local l_props_1 = v31.props;
    local l_Size_0 = l_props_1.Size;
    local l_Statuses_0 = l_props_1.Statuses;
    local l_ShowCounts_0 = l_props_1.ShowCounts;
    local l_Stylizer_0 = l_props_1.Stylizer;
    local v37 = l_Statuses_0[v4.ScriptStatus.Error] or 0;
    local v38 = l_Statuses_0[v4.ScriptStatus.VariableError] or 0;
    local v39 = l_Statuses_0[v4.ScriptStatus.Warning] or 0;
    local v40 = l_Statuses_0[v4.ScriptStatus.Complete] or 0;
    local v41 = l_Statuses_0[v4.ScriptStatus.Reverted] or 0;
    local v42 = l_LayoutOrderIterator_0.new();
    return v1.createElement(l_Pane_0, {
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        Spacing = l_Stylizer_0.Spacing,
        Size = l_Size_0
    }, {
        CompleteIcon = if v40 > 0 then v31:renderIcon(l_Stylizer_0.StatusIcons.Complete, nil, v4.ScriptStatus.Complete, v42:getNextOrder()) else nil,
        CompleteCount = if not not l_ShowCounts_0 and v40 > 1 then v31:renderCount(v40, v42:getNextOrder()) else nil,
        ErrorIcon = if v37 > 0 then v31:renderIcon(l_Stylizer_0.StatusIcons.Error, nil, v4.ScriptStatus.Error, v42:getNextOrder()) else nil,
        ErrorCount = if not not l_ShowCounts_0 and v37 > 0 then v31:renderCount(v37, v42:getNextOrder()) else nil,
        VarErrorIcon = if v38 > 0 then v31:renderIcon(l_Stylizer_0.StatusIcons.VariableError, nil, v4.ScriptStatus.VariableError, v42:getNextOrder()) else nil,
        VarErrorCount = if not not l_ShowCounts_0 and v38 > 0 then v31:renderCount(v38, v42:getNextOrder()) else nil,
        WarningIcon = if v39 > 0 then v31:renderIcon(l_Stylizer_0.StatusIcons.Warning, nil, v4.ScriptStatus.Warning, v42:getNextOrder()) else nil,
        WarningCount = if not not l_ShowCounts_0 and v39 > 0 then v31:renderCount(v39, v42:getNextOrder()) else nil,
        RevertedIcon = if v41 > 0 then v31:renderIcon(l_Stylizer_0.StatusIcons.Reverted, l_Stylizer_0.RevertedIconColor, v4.ScriptStatus.Reverted, v42:getNextOrder()) else nil,
        RevertedCount = if not not l_ShowCounts_0 and v41 > 1 then v31:renderCount(v41, v42:getNextOrder()) else nil
    });
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v11));


local l_GuiService_0 = game:GetService("GuiService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("R15Migrator");
local v2 = require(l_script_FirstAncestor_0.Packages.Roact);
local v3 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local _ = require(l_script_FirstAncestor_0.Src.Util.ScriptAnalysis.Constants);
local l_UI_0 = v3.UI;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LinkText_0 = l_UI_0.LinkText;
local l_Pane_0 = l_UI_0.Pane;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_Checkbox_0 = l_UI_0.Checkbox;
local v12 = require(l_script_FirstAncestor_0.Src.Components.ScriptIconView);
local l_LayoutOrderIterator_0 = v3.Util.LayoutOrderIterator;
local v14 = v2.PureComponent:extend("ScriptIssueRow");
local l_R15MigShowLinkedText_0 = game:GetFastFlag("R15MigShowLinkedText");
v14.isDoubleClick = function(v16)
    local v17 = tick();
    local v18 = v17 < v16.lastClickTime + 0.5;
    v16.lastClickTime = v17;
    return v18;
end;
v14.init = function(v19)
    v19.state = {
        maxLabelSizeX = 0
    };
    v19.rowContainerRef = v2.createRef();
    v19.lastClickTime = 0;
    v19.onToggle = function()
        local l_props_0 = v19.props;
        l_props_0.OnToggle(l_props_0.Row);
    end;
    v19.onClick = function()
        local l_props_1 = v19.props;
        l_props_1.OnClick(l_props_1.Row);
    end;
    v19.onDoubleClick = function()
        local l_props_2 = v19.props;
        if v19:isDoubleClick() then
            l_props_2.OnDoubleClick(l_props_2.Row);
        end;
    end;
    v19.onRightClick = function()
        local l_props_3 = v19.props;
        l_props_3.OnRightClick(l_props_3.Row);
    end;
    v19.onLinkClick = function()
        local l_props_4 = v19.props;
        print((("Row %*"):format((game.HttpService:JSONEncode(l_props_4.Row)))));
        l_GuiService_0:OpenBrowserWindow(l_props_4.Row.item.url);
    end;
    v19.onAbsoluteSizeChanged = function(v25)
        if v25 then
            local v26 = 0;
            for _, v28 in v25:GetChildren() do
                if not (not (v28.Name ~= "Label") or not v28:IsA("GuiObject")) then
                    v26 = v26 + v28.AbsoluteSize.X;
                end;
            end;
            v19:setState({
                maxLabelSizeX = (v25.AbsoluteSize.X - v26) - v19:calculateIndent()
            });
            return ;
        else
            return ;
        end;
    end;
end;
local function _(v29)
    return "(" .. v29.startLine .. "," .. v29.startCharacter .. ")";
end;
v14.calculateIndent = function(v31)
    local l_props_5 = v31.props;
    return l_props_5.Row.depth * l_props_5.Stylizer.Indent;
end;
v14.didUpdate = function(v33, v34)
    if v33.props.Row ~= v34.Row then
        v33.onAbsoluteSizeChanged(v33.rowContainerRef.current);
    end;
end;
local function v39(v35, v36, v37, v38)
    if not l_R15MigShowLinkedText_0 then
        return v2.createElement(l_TextLabel_0, {
            Text = ("<font color = \"rgb(43, 177, 255)\"> %* </font>"):format(v35.codeText),
            TextSize = v37.TextSize,
            LayoutOrder = v36:getNextOrder(),
            RichText = true,
            AutomaticSize = Enum.AutomaticSize.XY
        });
    else
        return v2.createElement(l_LinkText_0, {
            Text = v35.codeText,
            TextSize = v37.TextSize,
            LayoutOrder = v36:getNextOrder(),
            OnClick = v38,
            Disabled = true
        });
    end;
end;
v14.render = function(v40)
    local l_state_0 = v40.state;
    local l_props_6 = v40.props;
    local l_Stylizer_0 = l_props_6.Stylizer;
    local l_Size_0 = l_props_6.Size;
    local l_item_0 = l_props_6.Row.item;
    local l_Expanded_0 = l_props_6.Expanded;
    local l_Selected_0 = l_props_6.Selected;
    local v48 = l_item_0.children and #l_item_0.children > 0;
    local v49 = v40:calculateIndent();
    local l_Size_1 = l_Stylizer_0.Arrow.Size;
    local v51 = l_item_0.codeText ~= nil;
    local l_initialIssueCount_0 = l_item_0.initialIssueCount;
    local l_maxLabelSizeX_0 = l_state_0.maxLabelSizeX;
    local v54 = l_LayoutOrderIterator_0.new();
    local l_createElement_0 = v2.createElement;
    local l_l_Pane_0_0 = l_Pane_0;
    local v57 = {
        Style = "Box",
        BorderSizePixel = 0,
        Size = l_Size_0,
        Position = l_props_6.Position,
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Center
    };
    local v58 = {};
    local l_createElement_1 = v2.createElement;
    local l_l_Pane_0_1 = l_Pane_0;
    local v61 = {
        LayoutOrder = v54:getNextOrder(),
        Size = UDim2.new(1, -l_Stylizer_0.IconViewSize.X.Offset - l_Stylizer_0.Spacing, 1, 0),
        Layout = Enum.FillDirection.Horizontal,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        OnClick = v40.onDoubleClick,
        OnRightClick = v40.onRightClick,
        Padding = {
            Left = v49
        },
        ForwardRef = v40.rowContainerRef,
        [v2.Change.AbsoluteSize] = v40.onAbsoluteSizeChanged
    };
    local v62 = {
        Checkbox = v2.createElement(l_Checkbox_0, {
            LayoutOrder = v54:getNextOrder(),
            Checked = l_Selected_0,
            OnClick = v40.onClick
        }),
        Arrow = v48 and v2.createElement("ImageButton", {
            LayoutOrder = v54:getNextOrder(),
            Size = UDim2.new(0, l_Size_1, 0, l_Size_1),
            BackgroundTransparency = 1,
            Image = l_Stylizer_0.Arrow.Image,
            ImageColor3 = l_Stylizer_0.Arrow.Color,
            ImageRectSize = Vector2.new(l_Size_1, l_Size_1),
            ImageRectOffset = if not l_Expanded_0 then l_Stylizer_0.Arrow.CollapsedOffset else l_Stylizer_0.Arrow.ExpandedOffset,
            [v2.Event.Activated] = v40.onToggle
        }),
        ArrowPadding = v2.createElement(l_Pane_0, {
            Size = UDim2.fromOffset(l_Stylizer_0.Arrow.Padding, 0),
            LayoutOrder = v54:getNextOrder()
        }),
        WarningLink = v51 and v39(l_item_0, v54, l_Stylizer_0, v40.onLinkClick)
    };
    local l_v51_0 = v51;
    if l_v51_0 then
        l_v51_0 = v2.createElement;
        local l_l_TextLabel_0_0 = l_TextLabel_0;
        local v65 = {};
        local l_range_0 = l_item_0.range;
        v65.Text = "(" .. l_range_0.startLine .. "," .. l_range_0.startCharacter .. ")";
        v65.TextSize = l_Stylizer_0.TextSize;
        v65.AutomaticSize = Enum.AutomaticSize.XY;
        v65.LayoutOrder = v54:getNextOrder();
        l_v51_0 = l_v51_0(l_l_TextLabel_0_0, v65);
    end;
    v62.RangeLabel = l_v51_0;
    v62.Separator = v51 and v2.createElement(l_TextLabel_0, {
        Text = ": ",
        TextSize = l_Stylizer_0.TextSize,
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = v54:getNextOrder()
    });
    v62.Label = v2.createElement(l_TextLabel_0, {
        Text = l_item_0.text,
        TextSize = l_Stylizer_0.TextSize,
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = v54:getNextOrder(),
        TextTruncate = Enum.TextTruncate.AtEnd,
        TextXAlignment = Enum.TextXAlignment.Left
    }, {
        SizeConstraint = v2.createElement("UISizeConstraint", {
            MaxSize = Vector2.new(l_maxLabelSizeX_0, l_Size_0.Y.Offset)
        }),
        Tooltip = v2.createElement(l_Tooltip_0, {
            Text = l_item_0.text
        })
    });
    l_v51_0 = false;
    if l_initialIssueCount_0 ~= nil then
        l_v51_0 = v2.createElement(l_TextLabel_0, {
            Text = "(" .. l_initialIssueCount_0 .. ")",
            Style = "Label",
            TextSize = l_Stylizer_0.TextSize,
            AutomaticSize = Enum.AutomaticSize.XY,
            LayoutOrder = v54:getNextOrder()
        });
    end;
    v62.IssueCount = l_v51_0;
    v58.RowContainer = l_createElement_1(l_l_Pane_0_1, v61, v62);
    v58.IconContainer = if not l_item_0.statuses then nil else v2.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.XY,
        LayoutOrder = v54:getNextOrder()
    }, {
        ScriptIconView = v2.createElement(v12, {
            Size = l_Stylizer_0.IconViewSize,
            Statuses = l_item_0.statuses,
            ShowCounts = not v51
        })
    });
    return l_createElement_0(l_l_Pane_0_0, v57, v58);
end;
return (l_ContextServices_0.withContext({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v14));