local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local v3 = require(l_Parent_0.Roact);
local v4 = require(l_Parent_0.UIBlox);
local l_Text_0 = require(l_Parent_0.AppCommonLib).Text;
local l_memoize_0 = require(l_Parent_0.AppCommonLib).memoize;
local l_TextButton_0 = v4.App.Button.TextButton;
local l_Images_0 = v4.App.ImageSet.Images;
local l_IconSize_0 = v4.App.Constant.IconSize;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local l_CallbackInputBox_0 = v2.Components.CallbackInputBox;
local v12 = l_Images_0["icons/common/search"];
local v13 = l_Images_0["icons/actions/edit/clear_small"];
local v14 = {
    Image = l_Images_0["squircles/fill"],
    SliceCenter = Rect.new(8, 8, 9, 9)
};
local v15 = v3.PureComponent:extend("SearchTopBar");
v15.defaultProps = {
    cancelText = "CancelPlaceholder",
    searchPlaceholderText = "PlaceholderText",
    initialInputText = nil,
    captureFocusOnMount = false,
    resetOnMount = function()
    end,
    cancelCallback = nil,
    textChangedCallback = nil,
    LayoutOrder = 1,
    onSelectCallback = function()
    end
};
v15.init = function(v16)
    v16.inputBoxRef = v3.createRef();
    v16.props.onSelectCallback();
    v16.getTextWidth = l_memoize_0(function(v17, v18, v19)
        return l_Text_0.GetTextWidth(v17, v18, v19);
    end);
end;
v15.didMount = function(v20)
    v20.props.resetOnMount();
end;
v15.render = function(v21)
    return v4.Style.withStyle(function(v22)
        local l_cancelText_0 = v21.props.cancelText;
        local l_Header2_0 = v22.Font.Header2;
        local v25 = v21.getTextWidth(l_cancelText_0, l_Header2_0.Font, v22.Font.BaseSize * l_Header2_0.RelativeSize);
        local l_Left_0 = Enum.HorizontalAlignment.Left;
        local v27 = UDim.new(0, 4);
        local v28 = UDim2.new(1, -v25 - 12, 1, 0);
        local l_Body_0 = v22.Font.Body;
        return v3.createElement("Frame", {
            BackgroundTransparency = v22.Theme.BackgroundDefault.Transparency,
            BackgroundColor3 = v22.Theme.BackgroundDefault.Color,
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 1, 0),
            LayoutOrder = v21.props.LayoutOrder
        }, {
            layout = v3.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = l_Left_0,
                FillDirection = Enum.FillDirection.Horizontal,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = v27
            }),
            padding = v3.createElement("UIPadding", {
                PaddingTop = UDim.new(0, 6),
                PaddingBottom = UDim.new(0, 6),
                PaddingLeft = UDim.new(0, 0),
                PaddingRight = UDim.new(0, 0)
            }),
            cancel = v3.createElement(l_TextButton_0, {
                text = l_cancelText_0,
                layoutOrder = 2,
                onActivated = v21.props.cancelCallback
            }),
            filterBoxBackground = v3.createElement(l_ImageSetLabel_0, {
                Size = v28,
                Image = v14.Image,
                ImageColor3 = v22.Theme.BackgroundMuted.Color,
                ImageTransparency = v22.Theme.BackgroundMuted.Transparency,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = v14.SliceCenter,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = 1
            }, {
                layout = v3.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    FillDirection = Enum.FillDirection.Horizontal,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 4)
                }),
                padding = v3.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 12),
                    PaddingRight = UDim.new(0, 12)
                }),
                filterBoxIcon = v3.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(0, l_IconSize_0.Small, 0, l_IconSize_0.Small),
                    Image = v12,
                    ImageColor3 = v22.Theme.IconEmphasis.Color,
                    ImageTransparency = v22.Theme.IconEmphasis.Transparency,
                    LayoutOrder = 1
                }),
                filterBoxContainer = v3.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, -(l_IconSize_0.Small + 4), 1, 0),
                    LayoutOrder = 2
                }, {
                    filterBox = v3.createElement(l_CallbackInputBox_0, {
                        initialInputText = v21.props.initialInputText,
                        inputTextColor3 = v22.Theme.TextEmphasis.Color,
                        inputTextFont = l_Body_0.Font,
                        inputTextSize = v22.Font.BaseSize * l_Body_0.RelativeSize,
                        inputTextTransparency = v22.Theme.TextEmphasis.Transparency,
                        inputTextXAlignment = Enum.TextXAlignment.Left,
                        placeholderText = v21.props.searchPlaceholderText,
                        placeholderTextColor3 = v22.Theme.TextMuted.Color,
                        placeholderTextTransparency = v22.Theme.PlaceHolder.Transparency,
                        captureFocusOnMount = v21.props.captureFocusOnMount,
                        clearIcon = v13,
                        clearIconColor3 = v22.Theme.IconEmphasis.Color,
                        clearIconTransparency = v22.Theme.IconEmphasis.Transparency,
                        clearButtonSize = l_IconSize_0.Small,
                        clearButtonDisabled = false,
                        textChangedCallback = v21.props.textChangedCallback,
                        onSelectCallback = v21.props.onSelectCallback,
                        inputBoxRef = v21.inputBoxRef
                    })
                })
            })
        });
    end);
end;
return v15;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_script_FirstAncestor_0.types);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local v5 = require(l_Parent_0.UIBlox);
local l_useStyle_0 = v5.Core.Style.useStyle;
local l_ButtonStack_0 = v5.App.Button.ButtonStack;
local l_Enum_0 = v5.App.Button.Enum;
local l_IconButton_0 = v5.App.Button.IconButton;
local v10 = v5.App.ImageSet.Images["icons/navigation/close"];
local v11 = {
    titleText = "Placeholder title",
    bodyText = "Placeholder body",
    actionText = "Placeholder action",
    paddingX = 12,
    onActivated = function()
    end,
    onDismissed = function()
    end
};
return function(v12)
    local v13 = v3.Dictionary.join(v11, v12);
    local v14 = v13.style or l_useStyle_0();
    local l_Space_100_0 = v14.Tokens.Global.Space_100;
    local l_Size_500_0 = v14.Tokens.Global.Size_500;
    local l_Medium_0 = v14.Tokens.Semantic.Icon.Size.Medium;
    return v4.createElement("Frame", {
        BackgroundTransparency = 1,
        LayoutOrder = v13.LayoutOrder,
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y
    }, {
        ContentPadding = v4.createElement("UIPadding", {
            PaddingTop = UDim.new(0, l_Space_100_0),
            PaddingBottom = UDim.new(0, l_Space_100_0),
            PaddingLeft = UDim.new(0, v13.paddingX),
            PaddingRight = UDim.new(0, v13.paddingX)
        }),
        Content = v4.createElement("Frame", {
            BackgroundTransparency = v14.Theme.SystemPrimaryContent.Transparency,
            BackgroundColor3 = v14.Theme.SystemPrimaryContent.Color,
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y
        }, {
            Layout = v4.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, l_Space_100_0 * 2)
            }),
            UICorner = v4.createElement("UICorner", {
                CornerRadius = UDim.new(0, v14.Tokens.Semantic.Radius.Medium)
            }),
            UIStroke = v4.createElement("UIStroke", {
                Thickness = v14.Tokens.Global.Stroke_100,
                Color = v14.Theme.Divider.Color,
                Transparency = v14.Theme.Divider.Transparency
            }),
            ContentPadding = v4.createElement("UIPadding", {
                PaddingTop = UDim.new(0, l_Space_100_0),
                PaddingBottom = UDim.new(0, l_Space_100_0),
                PaddingLeft = UDim.new(0, l_Space_100_0),
                PaddingRight = UDim.new(0, l_Space_100_0)
            }),
            IconAndTextFrame = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 1,
                AutomaticSize = Enum.AutomaticSize.Y
            }, {
                HorizontalLayout = v4.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    VerticalAlignment = Enum.VerticalAlignment.Top
                }),
                TextFrame = v4.createElement("Frame", {
                    Size = UDim2.new(1, -l_Medium_0 - l_Space_100_0, 0, 0),
                    BackgroundTransparency = 1,
                    LayoutOrder = 1,
                    AutomaticSize = Enum.AutomaticSize.Y
                }, {
                    Layout = v4.createElement("UIListLayout", {
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        FillDirection = Enum.FillDirection.Vertical,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        Padding = UDim.new(0, l_Space_100_0)
                    }),
                    TitleTextLabel = v4.createElement("TextLabel", {
                        Size = UDim2.new(1, 0, 0, 0),
                        LayoutOrder = 1,
                        Font = v14.Font.Title.Font,
                        BorderSizePixel = 0,
                        Text = v13.titleText,
                        TextColor3 = v14.Theme.TextEmphasis.Color,
                        TextSize = v14.Font.Header2.RelativeSize * v14.Font.BaseSize,
                        TextWrapped = true,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        BackgroundTransparency = 1,
                        AutomaticSize = Enum.AutomaticSize.Y
                    }),
                    BodyTextLabel = v4.createElement("TextLabel", {
                        Size = UDim2.new(1, 0, 0, 0),
                        LayoutOrder = 2,
                        Font = v14.Font.Body.Font,
                        BorderSizePixel = 0,
                        Text = v13.bodyText,
                        TextColor3 = v14.Theme.TextDefault.Color,
                        TextSize = v14.Font.CaptionBody.RelativeSize * v14.Font.BaseSize,
                        TextWrapped = true,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        BackgroundTransparency = 1,
                        AutomaticSize = Enum.AutomaticSize.Y
                    })
                }),
                ImageIcon = v4.createElement(l_IconButton_0, {
                    size = UDim2.new(0, l_Medium_0, 0, l_Medium_0),
                    icon = v10,
                    onActivated = v13.onDismissed,
                    layoutOrder = 2
                })
            }),
            Buttons = v4.createElement("Frame", {
                BackgroundTransparency = 1,
                LayoutOrder = 2,
                Size = UDim2.new(1, 0, 0, l_Size_500_0)
            }, {
                ButtonStack = v4.createElement(l_ButtonStack_0, {
                    forcedFillDirection = Enum.FillDirection.Horizontal,
                    buttons = {
                        {
                            buttonType = l_Enum_0.ButtonType.PrimarySystem,
                            props = {
                                onActivated = v13.onActivated,
                                text = v13.actionText
                            }
                        }
                    }
                })
            })
        })
    });
end;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.Cryo);
return function(v1)
    return {
        Theme = v0.Dictionary.join(v1.Theme, {
            TextDefault = {
                Color = v1.Theme.TextEmphasis.Color,
                Transparency = v1.Theme.TextEmphasis.Transparency
            }
        }),
        Font = v0.Dictionary.join(v1.Font, {
            Body = {
                Font = v1.Font.Header1.Font,
                RelativeSize = v1.Font.Body.RelativeSize,
                RelativeMinSize = v1.Font.Body.RelativeMinSize
            },
            CaptionBody = {
                Font = v1.Font.Header1.Font,
                RelativeSize = v1.Font.CaptionBody.RelativeSize,
                RelativeMinSize = v1.Font.CaptionBody.RelativeMinSize
            }
        })
    };
end;


return {
    logger = require(script.Parent.Logger),
    screenComponent = require(script.Parent.ChatLandingScreen)
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_RoactPaginator_0 = require(l_script_FirstAncestor_0.SocialLibraries).RoactPaginator;
local v3 = require(l_Parent_0.Promise);
local v4 = require(l_script_FirstAncestor_0.Utils.getDeepValue);
local l_Conversations_0 = script.Parent.Conversations;
local v6 = require(l_script_FirstAncestor_0.Conversations.Thunks.fetchConversationsByPage);
local v7 = require(l_Conversations_0.NetworkRequests.DEPRECATED_getLocalUserConversationsAsync);
local v8 = require(l_script_FirstAncestor_0.Http.NetworkingChat);
local v9 = require(l_script_FirstAncestor_0.Conversations.Thunks.createConversation);
local v10 = require(l_script_FirstAncestor_0.Flags.isAppChatChannelsAPIEnabled);
return function(v11)
    return {
        [l_RoactPaginator_0.fetchInit] = function()
            if not v10() then
                return v3.new(function(v12)
                    coroutine.wrap(function()
                        v11(function(v13)
                            if not v4(v13:getState(), "RoactChat.isActiveChatUser") then
                                v11(v7(1, 30));
                            end;
                        end);
                        v12(nil, 2);
                    end)();
                end);
            else
                return v11(v6());
            end;
        end,
        [l_RoactPaginator_0.fetchWithCursor] = function(v14)
            return v3.new(function(v15)
                coroutine.wrap(function()
                    if not v10() then
                        v11(v7(v14, 30));
                        v15(v14 - 1, v14 + 1);
                        return ;
                    else
                        local v16, v17, v18 = v11(v6(v14)):await();
                        if not v16 then
                            v15(nil, v14);
                            return ;
                        else
                            v15(v17, v18);
                            return ;
                        end;
                    end;
                end)();
            end);
        end,
        startOneToOneConversation = function(v19)
            return v11(v8.StartOneToOneConversation.API(v19));
        end,
        createOneToOneConversation = function(v20)
            return v11(v9("one_to_one", {
                v20
            }));
        end
    };
end;


local v0 = require(script:FindFirstAncestor("AppChat").Logger):new("RoactChat.CreateNewChat");
v0:setContext({
    screen = "CreateNewChat"
});
return v0;


return {
    logger = require(script.Logger),
    screenComponent = require(script.CreateNewChatScreen)
};


local v0 = require(script:FindFirstAncestor("AppChat").Logger):new("RoactChat.EditChatMembers");
v0:setContext({
    screen = "EditChatMembers"
});
return v0;


return {
    logger = require(script.Logger),
    screenComponent = require(script.EditChatMembersScreen)
};


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


local v0 = require(script.Parent.Parent.Parent.Actions.CompleteExternalNavigationIntoChat);
return function(v1)
    return {
        completeExternalNavigation = function(v2)
            v1(v0(v2));
        end
    };
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.UIBlox);
local v3 = v1.PureComponent:extend("Checkbox");
v3.defaultProps = {
    activated = false
};
v3.render = function(v4)
    return v2.Style.withStyle(function(v5)
        local v6 = nil;
        local v7 = nil;
        local v8 = nil;
        if not v4.props.activated then
            v6 = "rbxasset://textures/ui/LuaChatV2/actions_checkbox.png";
            v7 = v5.Theme.IconEmphasis.Color;
            v8 = v5.Theme.IconEmphasis.Transparency;
        else
            v6 = "rbxasset://textures/ui/LuaChat/graphic/ic-checkbox-on.png";
            v7 = Color3.fromRGB(255, 255, 255);
            v8 = 0;
        end;
        return v1.createElement("Frame", {
            Size = UDim2.new(0, 64, 1, 0),
            BackgroundTransparency = 1
        }, {
            layout = v1.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            image = v1.createElement("ImageLabel", {
                Size = UDim2.new(0, 20, 0, 20),
                BackgroundTransparency = 1,
                Image = v6,
                ImageColor3 = v7,
                ImageTransparency = v8
            })
        });
    end);
end;
return v3;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local l_AppFonts_0 = require(l_Parent_0.Style).AppFonts;
local v2 = require(l_Parent_0.Roact);
local v3 = require(l_Parent_0.UIBlox);
local v4 = v2.PureComponent:extend("FriendCountLabel");
v4.defaultProps = {
    currentSize = 0,
    maxSize = 0,
    LayoutOrder = nil
};
v4.render = function(v5)
    return v3.Style.withStyle(function(v6)
        return v2.createElement("Frame", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = UDim2.new(0, 60, 1, 0),
            Position = UDim2.new(0, 0, 0, 10),
            LayoutOrder = v5.props.LayoutOrder
        }, {
            layout = v2.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            iconImage = v2.createElement("ImageLabel", {
                BackgroundTransparency = 1,
                Size = UDim2.new(0, 36, 0, 36),
                Image = "rbxasset://textures/ui/LuaChatV2/ic-add-friends.png",
                ImageColor3 = v6.Theme.IconEmphasis.Color,
                ImageTransparency = v6.Theme.IconEmphasis.Transparency,
                LayoutOrder = 1
            }),
            friendCount = v2.createElement("TextLabel", {
                BackgroundTransparency = 1,
                TextSize = 16,
                TextColor3 = v6.Theme.TextEmphasis.Color,
                TextTransparency = v6.Theme.TextEmphasis.Transparency,
                Size = UDim2.new(1, 0, 0, 20),
                Text = v5.props.currentSize .. "/" .. v5.props.maxSize,
                Font = l_AppFonts_0.default:getDefault(),
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Bottom,
                LayoutOrder = 2
            })
        });
    end);
end;
return v4;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local v3 = require(l_Parent_0.Roact);
local v4 = require(l_Parent_0.UIBlox);
local l_UserModel_0 = require(l_Parent_0.UserLib).Models.UserModel;
local v6 = require(script.Parent.UserCellWithCheckbox);
local l_AvatarCircle_0 = v2.Components.AvatarCircle;
local l_FilteredScrollingList_0 = v2.Components.FilteredScrollingList;
local v9 = require(script.Parent.SelectedMembersBar);
local _ = function(v10, v11)
    for _, v13 in ipairs(v10) do
        if v13.id == v11 then
            return true;
        end;
    end;
    return false;
end;
local v15 = v3.PureComponent:extend("SelectChatMembers");
v15.defaultProps = {
    topBarHeight = 88,
    entryHeight = 48,
    friendEntries = {},
    selectedUsers = {},
    onlinePresenceText = "Online",
    offlinePresenceText = "Offline",
    sortComparator = nil,
    filterPredicate = nil,
    onEntryActivated = nil,
    isDebugEnabled = false,
    LayoutOrder = nil
};
v15.init = function(v16)
    v16.renderSelectedMembersBarEntry = function(v17)
        return v4.Style.withStyle(function(v18)
            return v3.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1
            }, {
                layout = v3.createElement("UIListLayout", {
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    VerticalAlignment = Enum.VerticalAlignment.Top,
                    Padding = UDim.new(0, 2)
                }),
                avatarCircle = v3.createElement(l_AvatarCircle_0, {
                    thumbnails = {
                        v17.thumbnail
                    },
                    onActivated = function()
                        v16.props.onEntryActivated(v17);
                    end,
                    circleColor3 = v18.Theme.BackgroundMuted.Color,
                    circleInteriorBackgroundColor3 = v18.Theme.PlaceHolder.Color,
                    circleInteriorBackgroundTransparency = v18.Theme.PlaceHolder.Transparency,
                    presenceImage = v17.presenceImage,
                    showNewPresenceImage = true,
                    presenceImageColor3 = v18.Theme.OnlineStatus.Color,
                    presenceImageTransparency = v18.Theme.OnlineStatus.Transparency
                }),
                displayName = v3.createElement("TextLabel", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 15),
                    TextSize = v18.Font.Footer.RelativeSize * v18.Font.BaseSize,
                    TextColor3 = v18.Theme.TextEmphasis.Color,
                    TextTransparency = v18.Theme.TextEmphasis.Transparency,
                    Font = v18.Font.Footer.Font,
                    Text = v17.displayName,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextTruncate = Enum.TextTruncate.AtEnd
                })
            });
        end);
    end;
    v16.renderEntry = function(v19)
        local v20 = nil;
        if v19.presence == l_UserModel_0.PresenceType.ONLINE then
            v20 = v16.props.onlinePresenceText;
        elseif v19.presence == l_UserModel_0.PresenceType.OFFLINE then
            v20 = v16.props.offlinePresenceText;
        elseif not (v19.presence ~= l_UserModel_0.PresenceType.IN_GAME) or v19.presence == l_UserModel_0.PresenceType.IN_STUDIO then
            v20 = v19.presenceText;
        end;
        local v21 = nil;
        local l_selectedUsers_0 = v16.props.selectedUsers;
        local l_id_0 = v19.id;
        local v24;
        for _, v26 in ipairs(l_selectedUsers_0) do
            if v26.id == l_id_0 then
                v24 = true;
                goto label0 --[[  true, false  ]];
            end;
        end;
        v24 = false;
        ::label0::;
        v21 = not not v24 or false;
        return v4.Style.withStyle(function(v27)
            return v3.createElement("Folder", nil, {
                userIdValue = v16.props.isDebugEnabled and v3.createElement("StringValue", {
                    Value = v19.id
                }),
                userCell = v3.createElement(v6, {
                    style = v27,
                    user = v19,
                    secondaryTitleText = v19.alias,
                    subTitleText = v20,
                    isCheckboxActivated = v21,
                    onActivated = v16.props.onEntryActivated
                })
            });
        end);
    end;
end;
v15.render = function(v28)
    return v4.Style.withStyle(function(v29)
        local l_Theme_0 = v29.Theme;
        local l_Font_0 = v29.Font;
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, -v28.props.topBarHeight),
            BackgroundTransparency = l_Theme_0.BackgroundDefault.Transparency,
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            LayoutOrder = v28.props.LayoutOrder,
            ClipsDescendants = true
        }, {
            layout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 12)
            }),
            selectedMembersBar = v3.createElement(v9, {
                barBackgroundColor3 = l_Theme_0.BackgroundMuted.Color,
                barBackgroundTransparency = l_Theme_0.BackgroundMuted.Transparency,
                selectedUsers = v28.props.selectedUsers,
                maxSize = v28.props.maxSelections,
                LayoutOrder = 1,
                renderEntry = v28.renderSelectedMembersBarEntry
            }),
            friendsListContainer = v3.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, -99),
                BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
                BackgroundTransparency = l_Theme_0.BackgroundDefault.Transparency,
                BorderSizePixel = 0,
                LayoutOrder = 2
            }, {
                friendsList = v3.createElement(l_FilteredScrollingList_0, {
                    searchIconImage = "rbxasset://textures/ui/LuaChatV2/common_search.png",
                    searchIconColor3 = l_Theme_0.IconDefault.Color,
                    searchDividerTransparency = 1,
                    searchDividerHeight = 0,
                    searchBackgroundColor3 = l_Theme_0.BackgroundMuted.Color,
                    searchInputTextColor3 = l_Theme_0.TextDefault.Color,
                    searchInputTextSize = l_Font_0.Body.RelativeSize * l_Font_0.BaseSize,
                    searchInputTextFont = l_Font_0.Body.Font,
                    searchPlaceholderText = v28.props.searchFriendsText,
                    searchPlaceholderTextTransparency = l_Theme_0.TextDefault.Transparency,
                    searchPlaceholderTextColor3 = l_Theme_0.TextDefault.Color,
                    searchClearIconColor3 = l_Theme_0.ContextualPrimaryContent.Color,
                    searchClearIcon = "rbxasset://textures/ui/LuaChat/icons/ic-clear-solid.png",
                    scrollBarImageTransparency = v29.Theme.UIDefault.Transparency,
                    scrollBarImageColor3 = v29.Theme.UIDefault.Color,
                    entries = v28.props.friendEntries,
                    renderEntry = v28.renderEntry,
                    entryHeight = v28.props.entryHeight,
                    sortComparator = v28.props.sortComparator,
                    filterPredicate = v28.props.filterPredicate,
                    extraProps = {
                        selectedUserIds = v28.props.selectedUsers,
                        user = v28.props.user
                    }
                })
            })
        });
    end);
end;
return v15;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.t);
local v2 = require(l_Parent_0.Roact);
local v3 = require(l_Parent_0.UIBlox);
local v4 = require(script.Parent.FriendCountLabel);
local v5 = v2.PureComponent:extend("SelectedMembersBar");
v5.defaultProps = {
    barBackgroundColor3 = Color3.fromRGB(245, 245, 245),
    barBackgroundTransparency = 1,
    maxSize = 0,
    selectedUsers = {},
    LayoutOrder = nil,
    renderEntry = nil
};
local v6 = v1.interface({
    displayName = v1.string,
    id = v1.string,
    thumbnail = v1.string,
    presenceImage = v1.optional(v1.union(v1.table, v1.string))
});
v5.populateBar = function(v7, v8)
    local v9 = {
        layout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 16)
        })
    };
    for v10 = 1, v7.props.maxSize do
        local v11 = v7.props.selectedUsers[v10];
        if not v11 then
            table.insert(v9, (v2.createElement("ImageLabel", {
                Size = UDim2.new(0, 48, 0, 48),
                BackgroundTransparency = 1,
                Image = "rbxasset://textures/ui/LuaChatV2/ic-friend-empty-border.png",
                ImageColor3 = v8.Theme.UIEmphasis.Color,
                ImageTransparency = v8.Theme.UIEmphasis.Transparency,
                LayoutOrder = v10
            })));
        else
            assert(v6(v11));
            table.insert(v9, (v2.createElement("Frame", {
                Size = UDim2.new(0, 48, 0, 48),
                BackgroundTransparency = 1,
                LayoutOrder = v10
            }, {
                avatarContainer = v7.props.renderEntry(v11),
                removeImageContainer = v2.createElement("Frame", {
                    Size = UDim2.new(1, 0, 1, 0),
                    BackgroundTransparency = 1
                }, {
                    layout = v2.createElement("UIListLayout", {
                        HorizontalAlignment = Enum.HorizontalAlignment.Right,
                        VerticalAlignment = Enum.VerticalAlignment.Top
                    }),
                    removeImage = v2.createElement("ImageLabel", {
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        Size = UDim2.new(0, 16, 0, 16),
                        Image = "rbxasset://textures/ui/LuaChat/icons/ic-remove.png"
                    })
                })
            })));
        end;
    end;
    return v9;
end;
v5.render = function(v12)
    return v3.Style.withStyle(function(v13)
        return v2.createElement("Frame", {
            BackgroundColor3 = v12.props.barBackgroundColor3,
            BackgroundTransparency = v12.props.barBackgroundTransparency,
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 0, 88),
            LayoutOrder = v12.props.LayoutOrder
        }, {
            layout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            barContainer = v2.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }, {
                layout = v2.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    VerticalAlignment = Enum.VerticalAlignment.Top
                }),
                padding = v2.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, 10)
                }),
                friendCountLabel = v2.createElement(v4, {
                    currentSize = #v12.props.selectedUsers,
                    maxSize = v12.props.maxSize,
                    LayoutOrder = 1
                }),
                userScrollingBar = v2.createElement("ScrollingFrame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, -60, 0, 88),
                    ScrollBarThickness = 0,
                    ScrollingDirection = Enum.ScrollingDirection.X,
                    ElasticBehavior = Enum.ElasticBehavior.WhenScrollable,
                    CanvasSize = UDim2.new(0, (18 + 64 * v12.props.maxSize) - 16, 1, 0),
                    LayoutOrder = 2
                }, v12:populateBar(v13))
            })
        });
    end);
end;
return v5;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.UIBlox);
local l_Text_0 = require(l_Parent_0.AppCommonLib).Text;
local v4 = v1.PureComponent:extend("SystemButton");
v4.defaultProps = {
    text = "Text",
    enabled = false,
    onActivated = nil
};
v4.render = function(v5)
    return v2.Style.withStyle(function(v6)
        local l_text_0 = v5.props.text;
        local l_Font_0 = v6.Font.Header1.Font;
        local v9 = l_Text_0.GetTextWidth(l_text_0, l_Font_0, 24);
        local _ = nil;
        return v1.createElement("TextButton", {
            BackgroundTransparency = 1,
            Text = "",
            Size = UDim2.new(0, v9 + 8, 1, 0),
            [v1.Event.Activated] = v5.props.onActivated
        }, {
            layout = v1.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            label = v1.createElement("TextLabel", {
                Size = UDim2.new(0, v9, 0, 24),
                BackgroundTransparency = 1,
                Text = l_text_0,
                Font = l_Font_0,
                TextSize = 24,
                TextColor3 = v6.Theme.SystemPrimaryDefault.Color,
                TextTransparency = not v5.props.enabled and 0.7 or 0
            })
        });
    end);
end;
return v4;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local v1 = require(l_script_FirstAncestor_0.Parent.Roact);
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local v3 = if not v2.Flags.getFFlagDeprecatedSocialLibrariesCells() then v2.Components.Cells.UserCell else require(l_script_FirstAncestor_0.Components.Cells.UserCell);
local v4 = require(script.Parent.Checkbox);
return function(v5)
    return v1.createElement(v3, {
        style = v5.style,
        user = v5.user,
        subTitleText = v5.subTitleText,
        secondaryTitleText = v5.secondaryTitleText,
        isCheckboxActivated = v5.isCheckboxActivated,
        onActivated = v5.onActivated,
        childWidth = 64
    }, {
        checkbox = v1.createElement(v4, {
            activated = v5.isCheckboxActivated
        })
    });
end;


return function(v0, v1)
    for _, v3 in pairs(v1.participants) do
        if v0 == v3 then
            return true;
        end;
    end;
    return false;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_UserModel_0 = require(l_Parent_0.UserLib).Models.UserModel;
local l_MockUser_0 = require(l_Parent_0.UserLib).Models.MockUser;
local l_PresenceType_0 = require(l_script_FirstAncestor_0.Http.RoduxPresence).Enums.PresenceType;
local v5 = l_MockUser_0.new();
v5.name = "onlineUser";
v5.presence = l_UserModel_0.PresenceType.ONLINE;
v5.lastLocation = "TestLocation";
v5.isFriend = true;
local v6 = l_MockUser_0.new();
v6.name = "ingameUser";
v6.presence = l_UserModel_0.PresenceType.IN_GAME;
v6.lastLocation = "TestGame";
v6.isFriend = true;
local v7 = l_MockUser_0.new();
v7.name = "offlineUser";
v7.isFriend = true;
return {
    Users = {
        [1] = v5,
        [2] = v6,
        [3] = v7
    },
    ChatAppReducer = {
        Presence = {
            byUserId = {
                [v5.id] = {
                    userPresenceType = l_PresenceType_0.Online,
                    lastLocation = "TestLocation"
                },
                [v6.id] = {
                    userPresenceType = l_PresenceType_0.InGame,
                    lastLocation = "TestLocation"
                },
                [v7.id] = {
                    userPresenceType = l_PresenceType_0.Offline,
                    lastLocation = nil
                }
            }
        }
    }
};


return function(v0, v1)
    if not v0 or v0 == "" then
        return true;
    else
        local l_displayName_0 = v1.displayName;
        if v1.alias ~= nil then
            l_displayName_0 = l_displayName_0 .. v1.alias;
        end;
        return string.find(string.lower(l_displayName_0), string.lower(v0), 1, true) ~= nil;
    end;
end;


local v0 = require(script:FindFirstAncestor("AppChat").Users.populateUserWithState);
local v1 = require(script.Parent.isUserInConversation);
return function(v2, v3)
    local l_Users_0 = v2.Users;
    local v5 = {};
    for _, v7 in pairs(l_Users_0) do
        if not ((not (v7.id ~= tostring(v2.LocalUserId)) or not v7.isFriend) or v1(v7.id, v3)) then
            v5[v7.id] = v0(v2, v7);
        end;
    end;
    return v5;
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.ArgCheck);
local v2 = require(l_Parent_0.Roact);
local l_TextButton_0 = require(l_Parent_0.UIBlox).App.Button.TextButton;
return function(v4)
    local l_localizedStrings_0 = v4.localizedStrings;
    local l_isDisabled_0 = v4.isDisabled;
    local l_onActivated_0 = v4.onActivated;
    v1.isNotNil(l_localizedStrings_0, "props.localizedStrings");
    return v2.createElement(l_TextButton_0, {
        text = l_localizedStrings_0.systemButtonText,
        isDisabled = l_isDisabled_0,
        onActivated = function()
            if not l_isDisabled_0 then
                if l_onActivated_0 then
                    l_onActivated_0({
                        networkErrorText = l_localizedStrings_0.networkErrorText
                    });
                end;
                return ;
            else
                return ;
            end;
        end
    });
end;


local v0 = require(script:FindFirstAncestor("AppChat").Logger):new("RoactChat.Toast");
v0:setContext({
    screen = "Toast"
});
return v0;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.EnumScreens);
local v3 = require(l_Parent_0.Roact);
local v4 = require(l_Parent_0.Cryo);
local v5 = require(l_script_FirstAncestor_0.createChatTopBar);
return {
    ChatLanding = function(v6)
        local l_navigation_0 = v6.navigation;
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = Color3.new(1, 1, 0),
            BorderSizePixel = 0
        }, {
            ChatTopBar = v5(v4.Dictionary.join(v6, {
                backButtonDisabled = true,
                barHeight = l_navigation_0.getScreenProps("topBarHeight", 0),
                headerText = "Chat"
            })),
            CreateNewChat = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 90),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "CreateNewChat",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_0.navigate(v2.CreateNewChat);
                end
            }),
            ChatConversation1 = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 150),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "ChatConversation123",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_0.navigate(v2.ChatConversation, {
                        conversationId = 123
                    });
                end
            }),
            ChatConversation2 = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 180),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "ChatConversation456",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_0.navigate(v2.ChatConversation, {
                        conversationId = 456
                    });
                end
            }),
            EmptyConversation = l_navigation_0.getScreenProps("wideMode", false) and v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 220),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Empty Conv",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_0.navigate("EmptyConversation");
                end
            }),
            Toast = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 280),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Show a Toast",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_0.navigate(v2.RoactChatToast, {
                        toastProps = {
                            toastContent = {
                                toastTitle = "This is a toast nagivated to by the ChatLanding screen"
                            }
                        }
                    });
                end
            })
        });
    end,
    CreateNewChat = function(v8)
        local l_navigation_1 = v8.navigation;
        local v10 = l_navigation_1.getScreenProps("wideMode", false);
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = Color3.new(0, 1, 0),
            BorderSizePixel = 0
        }, {
            ChatTopBar = v5(v4.Dictionary.join(v8, {
                barHeight = l_navigation_1.getScreenProps("topBarHeight", 0),
                headerText = "CreateNewChat"
            })),
            ChatConversation = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 120),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "ChatConversation123",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    if not v10 then
                        l_navigation_1.replace(v2.ChatConversation, {
                            conversationId = 123
                        });
                        return ;
                    else
                        l_navigation_1.navigate(v2.ChatConversation, {
                            conversationId = 123
                        });
                        return ;
                    end;
                end
            }),
            Toast = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 250),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Show a Toast",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_1.navigate(v2.RoactChatToast, {
                        toastProps = {
                            toastContent = {
                                toastTitle = "This is a toast nagivated to by the CreateNewChat screen"
                            }
                        }
                    });
                end
            })
        });
    end,
    EmptyConversation = function(v11)
        return v3.createElement("TextLabel", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = Color3.new(1, 0, 0),
            BorderSizePixel = 0,
            Font = Enum.Font.Gotham,
            Text = "Empty Conversation page",
            TextColor3 = Color3.new(0, 0, 0),
            TextSize = 18
        }, {
            ChatTopBar = v5(v4.Dictionary.join(v11, {
                backButtonDisabled = true,
                barHeight = v11.navigation.getScreenProps("topBarHeight", 0),
                headerText = "No Title"
            }))
        });
    end,
    ChatConversation = function(v12)
        local l_navigation_2 = v12.navigation;
        local v14 = l_navigation_2.getParam("conversationId", 0);
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = Color3.new(1, 0, 0),
            BorderSizePixel = 0
        }, {
            ChatTopBar = v5(v4.Dictionary.join(v12, {
                backButtonDisabled = l_navigation_2.getScreenProps("wideMode", false),
                barHeight = l_navigation_2.getScreenProps("topBarHeight", 0),
                headerText = "Conversation" .. tostring(v14)
            })),
            ChatDetails = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 120),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "ChatDetails",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_2.navigate(v2.ChatDetails, {
                        conversationId = v14
                    });
                end
            }),
            Toast = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 180),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Show a Toast",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_2.navigate(v2.RoactChatToast, {
                        toastProps = {
                            toastContent = {
                                toastTitle = "This is a toast nagivated to by the ChatConversation screen"
                            }
                        }
                    });
                end
            })
        });
    end,
    ChatDetails = function(v15)
        local l_navigation_3 = v15.navigation;
        local v17 = l_navigation_3.getParam("conversationId", 0);
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = Color3.new(0, 0, 1),
            BorderSizePixel = 0
        }, {
            ChatTopBar = v5(v4.Dictionary.join(v15, {
                barHeight = l_navigation_3.getScreenProps("topBarHeight", 0),
                headerText = "ChatDetails" .. v17
            })),
            EditChatMembers = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 120),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "EditChatMembers",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_3.push(v2.EditChatMembers, {
                        conversationId = v17
                    });
                end
            }),
            Toast = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 180),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Show a Toast",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_3.navigate(v2.RoactChatToast, {
                        toastProps = {
                            toastContent = {
                                toastTitle = "This is a toast nagivated to by the ChatDetails screen"
                            }
                        }
                    });
                end
            })
        });
    end,
    EditChatMembers = function(v18)
        local l_navigation_4 = v18.navigation;
        local v20 = l_navigation_4.getParam("conversationId", 0);
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundColor3 = Color3.new(0, 1, 1),
            BorderSizePixel = 0
        }, {
            ChatTopBar = v5(v4.Dictionary.join(v18, {
                barHeight = l_navigation_4.getScreenProps("topBarHeight", 0),
                headerText = "EditChatMembers"
            })),
            ChatConversation = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 120),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Back To Conversation",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_4.navigate(v2.ChatConversation, {
                        conversationId = v20
                    });
                end
            }),
            Toast1 = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 180),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Show a Toast",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_4.navigate(v2.RoactChatToast, {
                        toastProps = {
                            toastContent = {
                                toastTitle = "A Toast this is"
                            }
                        }
                    });
                end
            }),
            Toast2 = v3.createElement("TextButton", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundColor3 = Color3.new(1, 1, 1),
                Font = Enum.Font.Gotham,
                Position = UDim2.new(0.5, 0, 0, 210),
                Size = UDim2.new(0, 200, 0, 30),
                Text = "Show a Different Toast",
                TextColor3 = Color3.new(0, 0, 0),
                TextSize = 18,
                [v3.Event.Activated] = function()
                    l_navigation_4.navigate(v2.RoactChatToast, {
                        toastProps = {
                            toastContent = {
                                toastTitle = "This is a different toast"
                            }
                        }
                    });
                end
            })
        });
    end
};


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.UIBlox);
local l_Images_0 = v2.App.ImageSet.Images;
local l_IconSize_0 = v2.App.Constant.IconSize;
local l_Toast_0 = v2.App.Dialog.Toast;
local v6 = require(script.Parent.Logger);
local v7 = v1.PureComponent:extend("ToastScreen");
v7.defaultProps = {
    navigation = nil
};
v7.init = function(v8)
    v8.hasToastChanged = false;
    v8.getToastProps = function(v9)
        local l_toastContent_0 = v9.toastContent;
        return {
            toastContent = {
                toastTitle = l_toastContent_0.toastTitle,
                toastSubtitle = l_toastContent_0.toastSubtitle,
                iconColorStyle = l_toastContent_0.iconColorStyle,
                iconImage = l_toastContent_0.iconImage or l_Images_0["icons/status/alert"],
                iconSize = l_toastContent_0.iconSize or Vector2.new(l_IconSize_0.Regular, l_IconSize_0.Regular),
                swipeUpDismiss = l_toastContent_0.swipeUpDismiss,
                onAppeared = function()
                    if l_toastContent_0.onAppeared then
                        l_toastContent_0.onAppeared();
                    end;
                    v8.hasToastChanged = false;
                end,
                onActivated = l_toastContent_0.onActivated,
                onDismissed = function()
                    if l_toastContent_0.onDismissed then
                        l_toastContent_0.onDismissed();
                    end;
                    if not v8.hasToastChanged then
                        v8.props.navigation.goBack();
                    end;
                end
            },
            anchorPoint = v9.anchorPoint,
            duration = v9.duration or 2,
            layoutOrder = v9.layoutOrder,
            position = v9.position,
            size = v9.size,
            show = v9.show
        };
    end;
end;
v7.render = function(v11)
    assert(type(v11.props.navigation) ~= "nil", "ToastScreen should be wrapped with Roact Navigation");
    return v1.createElement(l_Toast_0, (v11.getToastProps(v11.props.navigation.getParam("toastProps", {}))));
end;
v7.didUpdate = function(v12, _, _)
    v12.hasToastChanged = true;
end;
v7.didMount = function(_)
    v6:info("{screen} mounted");
end;
return v7;


return {
    ChatConversation = require(script.ChatConversation),
    EventReceivers = require(script.EventReceivers),
    ExternalNavigationHandlerContainer = if not require(script.Parent.Flags.getFFlagEnableModularExternalNavigationHandler)() then nil else require(script.ExternalNavigationHandler.Container),
    Cells = require(script.Cells)
};


local l_FormFactor_0 = require(script:FindFirstAncestor("AppChat").Parent.FormFactor).Enums.FormFactor;
local v1 = {
    Color = {
        GRAY1 = Color3.fromRGB(25, 25, 25),
        GRAY2 = Color3.fromRGB(117, 117, 117),
        GRAY3 = Color3.fromRGB(184, 184, 184),
        GRAY4 = Color3.fromRGB(227, 227, 227),
        GRAY5 = Color3.fromRGB(242, 242, 242),
        GRAY6 = Color3.fromRGB(245, 245, 245),
        GRAY_PRIMARY = Color3.fromRGB(189, 190, 190),
        WHITE = Color3.fromRGB(255, 255, 255),
        BLACK = Color3.fromRGB(0, 0, 0),
        BLUE_PRIMARY = Color3.fromRGB(0, 162, 255),
        BLUE_HOVER = Color3.fromRGB(50, 181, 255),
        BLUE_PRESSED = Color3.fromRGB(0, 116, 190),
        BLUE_DISABLED = Color3.fromRGB(153, 218, 255),
        GREEN_PRIMARY = Color3.fromRGB(2, 183, 87),
        GREEN_HOVER = Color3.fromRGB(63, 198, 121),
        GREEN_PRESSED = Color3.fromRGB(17, 130, 55),
        GREEN_DISABLED = Color3.fromRGB(163, 226, 189),
        RED_PRIMARY = Color3.fromRGB(226, 35, 26),
        RED_NEGATIVE = Color3.fromRGB(216, 104, 104),
        RED_HOVER = Color3.fromRGB(226, 118, 118),
        RED_PRESSED = Color3.fromRGB(172, 30, 45),
        ORANGE_WARNING = Color3.fromRGB(246, 136, 2),
        ORANGE_FAVORITE = Color3.fromRGB(246, 183, 2),
        BROWN_TIX = Color3.fromRGB(204, 158, 113),
        ALPHA_SHADOW_PRIMARY = 0.5,
        ALPHA_PENDING_CHAT = 0.5,
        ALPHA_SECONDARY = 0.9,
        ALPHA_SHADOW_HOVER = 0.75,
        CONVERSATION_BACKGROUND = Color3.fromRGB(224, 224, 224)
    },
    Font = {
        TITLE = Enum.Font.GothamMedium,
        STANDARD = Enum.Font.Gotham,
        BOLD = Enum.Font.GothamBold,
        FONT_SIZE_12 = 15,
        FONT_SIZE_14 = 17,
        FONT_SIZE_16 = 20,
        FONT_SIZE_18 = 23,
        FONT_SIZE_20 = 23,
        FONT_SIZE_18_POS_OFFSET = -8
    },
    Tween = {
        DEFAULT_TWEEN_TIME = 0.25,
        DEFAULT_TWEEN_STYLE = Enum.EasingStyle.Quad,
        DEFAULT_TWEEN_EASING_DIRECTION = Enum.EasingDirection.Out,
        MESSAGE_TWEEN_TIME = 0.2
    },
    Dialog = {
        TWEEN_TIME = 0.4
    },
    PresenceType = {
        NONE = "NONE",
        ONLINE = "ONLINE",
        IN_GAME = "IN_GAME",
        IN_STUDIO = "IN_STUDIO"
    },
    PresenceIndicatorSize = {
        Size6x6 = "Size6x6",
        Size8x8 = "Size8x8",
        Size10x10 = "Size10x10",
        Size12x12 = "Size12x12",
        Size14x14 = "Size14x14",
        DEFAULT = "DEFAULT"
    },
    ServerState = {
        NONE = "NONE",
        CREATING = "CREATING",
        CREATED = "CREATED"
    },
    ConversationLoadingState = {
        NONE = "NONE",
        LOADING = "LOADING",
        DONE = "DONE"
    },
    PresenceIndicatorImagesBySize = {
        Size6x6 = {
            NONE = nil,
            ONLINE = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-online-6x6.png",
            IN_GAME = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-ingame-6x6.png",
            IN_STUDIO = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-instudio-6x6.png"
        },
        Size8x8 = {
            NONE = nil,
            ONLINE = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-online-8x8.png",
            IN_GAME = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-ingame-8x8.png",
            IN_STUDIO = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-instudio-8x8.png"
        },
        Size10x10 = {
            NONE = nil,
            ONLINE = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-online-10x10.png",
            IN_GAME = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-ingame-10x10.png",
            IN_STUDIO = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-instudio-10x10.png"
        },
        Size12x12 = {
            NONE = nil,
            ONLINE = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-online-12x12.png",
            IN_GAME = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-ingame-12x12.png",
            IN_STUDIO = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-instudio-12x12.png"
        },
        Size14x14 = {
            NONE = nil,
            ONLINE = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-online-14x14.png",
            IN_GAME = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-ingame-14x14.png",
            IN_STUDIO = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-instudio-14x14.png"
        },
        DEFAULT = {
            NONE = nil,
            ONLINE = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-online.png",
            IN_GAME = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-ingame.png",
            IN_STUDIO = "rbxasset://textures/ui/LuaChat/graphic/gr-indicator-instudio.png"
        }
    },
    Text = {
        INPUT_PLACEHOLDER = Color3.fromRGB(189, 189, 189),
        INPUT = Color3.fromRGB(25, 25, 25),
        POST_TYPING_STATUS_INTERVAL = 3
    },
    PageSize = {
        GET_MESSAGES = 30,
        GET_NEW_MESSAGES = 4,
        GET_CONVERSATIONS = 30
    },
    MAX_PARTICIPANT_COUNT = 5,
    MIN_PARTICIPANT_COUNT = 1,
    ModalDialog = {
        CLEARANCE_CORNER_ROUNDING = 5,
        CLEARANCE_DIALOG_SIDE = 48,
        CLEARANCE_DIALOG_BOTTOM = 36,
        BUTTON_HEIGHT = 42
    },
    SharedGamesConfig = {
        SortNames = {
            "Popular",
            "MyRecent",
            "MyFavorite",
            "FriendActivity"
        },
        SortsAttribute = {
            Popular = {
                TILE_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.Popular",
                ERROR_TIP_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.NoPopularGames"
            },
            MyRecent = {
                TILE_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.Recent",
                ERROR_TIP_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.NoRecentGames"
            },
            MyFavorite = {
                TILE_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.Favorites",
                ERROR_TIP_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.NoFavoriteGames"
            },
            FriendActivity = {
                TILE_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.FriendActivity",
                ERROR_TIP_LOCALIZATION_KEY = "Feature.Chat.ShareGameToChat.NoFriendActivity"
            }
        },
        Thumbnail = {
            SHOWN_SIZE = 60,
            FETCHED_SIZE = 150
        }
    },
    GameShareView = {
        WIDE_HORIZONTAL_DIVIDER_HEIGHT = 15,
        WIDE_VIEW_WIDTH = 540
    },
    PerformanceMeasurement = {
        LUA_CHAT_SEND_MESSAGE = "LuaChatSendMessage",
        LUA_CHAT_RECEIVE_MESSAGE = "LuaChatReceiveMessage"
    },
    ToastIDs = {
        TOO_MANY_PEOPLE = "TOO_MANY_PEOPLE",
        GROUP_NAME_MODERATED = "GROUP_NAME_MODERATED",
        MESSAGE_WAS_MODERATED = "MESSAGE_WAS_MODERATED",
        REMOVED_FROM_CONVERSATION = "REMOVED_FROM_CONVERSATION",
        PIN_GAME_FAILED = "PIN_GAME_FAILED",
        PIN_PINNED_GAME = "PIN_PINNED_GAME",
        UNPIN_GAME_FAILED = "UNPIN_GAME_FAILED",
        GAME_NOT_SHAREABLE = "GAME_NOT_SHAREABLE",
        NETWORK_ERROR = "NETWORK_ERROR"
    },
    FormFactor = {
        COMPACT = {
            ASSET_CARD_HORIZONTAL_MARGIN = 108
        },
        WIDE = {
            ASSET_CARD_HORIZONTAL_MARGIN = 224
        }
    },
    Decorators = {
        ICEBREAKER = {
            "icebreaker"
        }
    },
    RobuxIcon = "rbxasset://textures/ui/common/robux.png",
    SmallRobuxIcon = "rbxasset://textures/ui/common/robux_small.png",
    ColorRobuxIcon = "rbxasset://textures/ui/common/robux_color.png"
};
v1.GetFormFactorSpecific = function(_, v3)
    if v3 == l_FormFactor_0.WIDE then
        return v1.FormFactor.WIDE;
    else
        return v1.FormFactor.COMPACT;
    end;
end;
v1.GetPresenceIndicatorSizeKey = function(v4, v5)
    local _ = nil;
    if v5 == 6 then
        return v4.PresenceIndicatorSize.Size6x6;
    elseif v5 == 8 then
        return v4.PresenceIndicatorSize.Size8x8;
    elseif v5 == 10 then
        return v4.PresenceIndicatorSize.Size10x10;
    elseif v5 == 12 then
        return v4.PresenceIndicatorSize.Size12x12;
    elseif v5 == 14 then
        return v4.PresenceIndicatorSize.Size14x14;
    else
        return v4.PresenceIndicatorSize.DEFAULT;
    end;
end;
return v1;


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1, v2, v3)
    return {
        conversationId = v0,
        participants = v1,
        title = v2,
        lastUpdated = v3
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        conversationId = v0,
        fetchedOldestMessage = v1
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        conversationId = v0,
        fetchingOlderMessages = v1
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        newConversationId = v0.newConversationId,
        oldFriendConversationId = v0.oldFriendConversationId
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        conversation = v0
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        conversationId = v0,
        messageId = v1
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0)
    return {
        conversationId = v0
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function()
    return {};
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1, v2, v3)
    return {
        conversationId = v0,
        messages = v1,
        shouldMarkConversationUnread = v2,
        exclusiveStartMessageId = v3
    };
end);


local v0 = require(script.Parent.SetUserTyping);
local v1 = 0;
return function(v2, v3)
    return function(v4)
        spawn(function()
            v1 = v1 + 1;
            local l_v1_0 = v1;
            v4:dispatch(v0(v2, v3, true));
            wait(8);
            if v1 == l_v1_0 then
                v4:dispatch(v0(v2, v3, false));
            end;
        end);
    end;
end;


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1, v2, v3)
    return {
        conversationId = v0,
        title = v1,
        isDefaultTitle = v2,
        lastUpdated = v3
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        conversationId = v0,
        message = v1
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        conversationId = v0,
        value = v1
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1, v2)
    return {
        universeId = v0,
        rootPlaceId = v1,
        conversationId = v2
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        id = v0,
        isLeaving = v1
    };
end);


return require(script:FindFirstAncestor("AppChat").Parent.Rodux).makeActionCreator(script.Name, function(v0, v1, v2)
    return {
        conversationId = v0,
        userId = v1,
        value = v2
    };
end);


return {
    MessageFailedToSend = require(script.MessageFailedToSend),
    MessageModerated = require(script.MessageModerated),
    ReceivedMessages = require(script.ReceivedMessages),
    SendingMessage = require(script.SendingMessage),
    SentMessage = require(script.SentMessage),
    ChangedParticipants = require(script.ChangedParticipants),
    FetchedOldestMessage = require(script.FetchedOldestMessage),
    FetchingOlderMessages = require(script.FetchingOlderMessages),
    HasUnreadMessages = require(script.HasUnreadMessages),
    ReadConversation = require(script.ReadConversation),
    ReceivedConversation = require(script.ReceivedConversation),
    ReceivedLatestMessages = require(script.ReceivedLatestMessages),
    ReceivedOldestConversation = require(script.ReceivedOldestConversation),
    ReceivedPageConversations = require(script.ReceivedPageConversations),
    ReceivedUserTyping = require(script.ReceivedUserTyping),
    RemovedConversation = require(script.RemovedConversation),
    RenamedGroupConversation = require(script.RenamedGroupConversation),
    RequestLatestMessages = require(script.RequestLatestMessages),
    RequestPageConversations = require(script.RequestPageConversations),
    SetConversationLoadingStatus = require(script.SetConversationLoadingStatus),
    SetPinnedGameForConversation = require(script.SetPinnedGameForConversation),
    SetUserLeavingConversation = require(script.SetUserLeavingConversation),
    SetUserTyping = require(script.SetUserTyping)
};


local v0 = require(script.Parent.DEPRECATED_refreshChangedConversations);
return function(v1)
    return function(v2)
        local v3 = if not not v1 and v1.DEPRECATED_refreshChangedConversations then v1.DEPRECATED_refreshChangedConversations else v0;
        if v2:getState().ChatAppReducer.Conversations == nil then
            v3(v2);
            return ;
        else
            v3(v2);
            return ;
        end;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Http.RoduxNetworking);
local l_Url_0 = require(l_Parent_0.Http).Url;
return v2.GET(script, function(v4)
    return v4(l_Url_0.CHAT_URL):path("chat-settings");
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local v1 = require(l_script_FirstAncestor_0.Actions.SetAppLoaded);
local v2 = require(l_script_FirstAncestor_0.Conversations.Thunks.FetchChatSettings);
local v3 = require(l_script_FirstAncestor_0.Http.NetworkingUsers);
local v4 = require(l_script_FirstAncestor_0.Flags.isAppChatChannelsAPIEnabled);
return function(v5)
    assert(not v4(), "FetchInitialChatData should not be used when AppChatChannelsAPI is enabled. " .. "Use fetchChatMetadata instead.");
    v5:dispatch(function(v6)
        return v6:dispatch(v3.GetUserV2FromUserId.API(v6:getState().LocalUserId));
    end);
    return v5:dispatch(v2.API()):andThen(function()
        v5:dispatch(v1(true));
    end):catch(function(v7)
        warn("AppChat.Conversations.Thunks.FetchInitialChatData with error: ", (tostring(v7)));
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Actions.NavigateIntoChat);
local l_NavigateToRoute_0 = require(l_Parent_0.NavigationRodux).Thunks.NavigateToRoute;
local l_AppPage_0 = require(l_Parent_0.RobloxAppEnums).AppPage;
local v5 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableStandaloneAppChat);
local v6 = require(l_script_FirstAncestor_0.EnumScreens);
local v7 = {
    {
        name = l_AppPage_0.Chat
    }
};
return function(v8, v9)
    return function(v10)
        v10:dispatch(l_NavigateToRoute_0(v7, v9));
        v10:dispatch(v2({
            screen = if not v5() then v6.RoactChat else v6.ChatConversation,
            params = v8
        }));
    end;
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local l_AppPage_0 = require(l_Parent_0.RobloxAppEnums).AppPage;
local l_NavigateDown_0 = require(l_Parent_0.NavigationRodux).Thunks.NavigateDown;
local v3 = game:DefineFastString("UnfilteredThreadsLearnMoreUrl", "https://en.help.roblox.com/");
return function()
    return function(v4)
        v4:dispatch(l_NavigateDown_0({
            name = l_AppPage_0.GenericWebPage,
            detail = v3,
            extraProps = {
                title = ""
            }
        }, nil));
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local v1 = require(l_script_FirstAncestor_0.Conversations.Actions.ReceivedMessages);
local v2 = require(l_script_FirstAncestor_0.Models.MessageModel);
local v3 = require(l_script_FirstAncestor_0.Utils.reportAnalyticsForNewMessages);
local v4 = require(l_script_FirstAncestor_0.Flags.isAppChatChannelsAPIEnabled);
return function(v5, v6)
    return function(v7)
        local v8 = nil;
        v8 = if not v4() then v2.fromSentWeb(v6, v5) else v2.fromSentChannelsApi(v6, v5);
        if v8 then
            v3(v8, v5);
            local v9 = v7:getState().ChatAppReducer.Conversations[v5];
            if v9.messages:Length() > 0 then
                v8.previousMessageId = v9.messages:Last().id;
            end;
            v7:dispatch(v1(v5, {
                v8
            }));
            return ;
        else
            return ;
        end;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Parent.AppChatNetworking);
local v3 = require(l_script_FirstAncestor_0.Logger):new(script.Name);
local v4 = require(l_script_FirstAncestor_0.Models.MessageModel);
local v5 = require(script.Parent.SendChatMessagePolicy);
local v6 = require(l_Parent_0.HttpRequest);
local v10 = v6.config({
    requestFunction = function(v7, v8, v9)
        v3:info("Fetching: {}", string.format("[ requestMethod = %q, url = %q ]", v8, v7));
        return v6.requestFunctions.HttpRbxApi(v7, v8, v9);
    end
});
local l_DEPRECATED_ChatSendMessage_0 = require(l_Parent_0.Http).Requests.DEPRECATED_ChatSendMessage;
local v12 = require(l_script_FirstAncestor_0.Flags.isAppChatChannelsAPIEnabled);
local v13 = setmetatable({}, v5);
v13.__index = v13;
v13.new = function(v14, v15, v16, v17)
    v3:info("New policy constructed for conversationId: {} messageText: {}", v15, v16);
    local v18 = v5:new(v15);
    setmetatable(v18, v14);
    v18.messageText = v16;
    v18.decorators = v17;
    return v18;
end;
v13.sendMessage = function(v19, _)
    v3:info("sendMessage - conversationId: {} messageText: {}", v19.conversationId, v19.messageText);
    if not v12() then
        return l_DEPRECATED_ChatSendMessage_0(v10, v19.conversationId, v19.messageText, v19.decorators);
    else
        return v2.http.SendChatTextMessage(v19.conversationId, v19.messageText);
    end;
end;
v13.sendingMessagePayload = function(v21)
    return {
        messageType = v4.MessageTypes.PlainText,
        content = v21.messageText
    };
end;
return v13;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.Promise);
local v1 = {};
v1.__index = v1;
v1.onBeforeSendingMessage = function(_, _)
end;
v1.sendMessage = function(_, _)
    return v0.reject("Not implemented");
end;
v1.onSuccess = function(_, _, v8)
    return v8;
end;
v1.onFailure = function(_, _, v11)
    return v11;
end;
return v1;


return {
    SendMessagePolicy = require(script.SendMessagePolicy),
    SendChatMessagePolicy = require(script.SendChatMessagePolicy)
};


local v0 = require(script.Parent.SendMessageUsingPolicy);
local v1 = require(script.Parent.SendPolicies.SendChatTextMessagePolicy);
return function(v2, v3, v4)
    return v0((v1:new(v2, v3, v4)));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local v1 = require(l_script_FirstAncestor_0.Logger):new(script.Name);
local v2 = require(script.Parent.createConversation);
local v3 = require(l_script_FirstAncestor_0.Conversations.getOtherParticipants);
local _ = require(l_script_FirstAncestor_0.Models.ConversationChannels);
local v5 = require(l_script_FirstAncestor_0.Conversations.Actions.FriendConversationCreated);
return function(v6, v7)
    return function(v8)
        local v9 = v8:getState();
        local v10 = v9.ChatAppReducer.Conversations[v6];
        if v10 then
            local v11 = v3(v10, v9.LocalUserId);
            if #v11 > 1 then
                v1:error("friendConversationId {} has more than 2 participants. Unable to create one-to-one conversation.", v6);
                return ;
            else
                return v8:dispatch(v2("one_to_one", {
                    (tostring(v11[1]))
                }, v7, "userSentMessageToFriendPlaceholder")):tap(function(v12)
                    v8:dispatch(v5({
                        newConversationId = v12.id,
                        oldFriendConversationId = v6
                    }));
                end);
            end;
        else
            v1:error("Could not find friendConversationId {} in store state. Unable to create converstation.", v6);
            return ;
        end;
    end;
end;


local v0 = require(script:FindFirstAncestor("AppChat").Http.NetworkingPresence);
return function()
    return function(v1)
        local l_Users_0 = v1:getState().Users;
        local v3 = {};
        for v4, _ in pairs(l_Users_0) do
            if v4 ~= "-1" then
                table.insert(v3, v4);
            end;
        end;
        v1:dispatch(v0.GetPresencesFromUserIds.API(v3)):catch(function(v6)
            warn("NetworkingPresence failure in getAllUserPresences, Status: " .. tostring(v6));
        end);
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.AppChatNetworking);
local v3 = require(l_script_FirstAncestor_0.Logger):new(script.Name);
local v4 = require(l_Parent_0.Promise);
return function()
    return function(v5)
        return v4.all({
            v5:dispatch(v2.rodux.GetUnfilteredThreadEligibility.API()):catch(function(v6)
                v3:warning("Error in GetUnfilteredThreadsEligibility request. Error: {}", (tostring(v6)));
            end),
            v5:dispatch(v2.rodux.GetUnfilteredThreadsFtuxModal.API()):catch(function(v7)
                v3:warning("Error in GetUnfilteredThreadsFtuxModal request. Error: {}", (tostring(v7)));
            end)
        }):andThen(function(v8)
            return {
                GetUnfilteredThreadsEligibility = v8[1],
                GetUnfilteredThreadsFtuxModal = v8[2]
            };
        end);
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Http.NetworkingChat);
local v3 = require(l_script_FirstAncestor_0.Http.NetworkingPresence);
local l_llama_0 = require(l_Parent_0.LuaSocialLibrariesDeps).llama;
local l_UserModel_0 = require(l_Parent_0.UserLib).Models.UserModel;
local l_AddUsers_0 = require(l_Parent_0.UserLib).Actions.AddUsers;
local v7 = require(l_script_FirstAncestor_0.Flags.isAppChatChannelsAPIEnabled);
local function v22(v8, v9)
    local v10 = {};
    local v11 = {};
    for _, v13 in v8, nil, nil do
        table.insert(v10, v13.id);
        if not v7() or not v13.participant_user_ids then
            for _, v15 in ipairs(v13.participants) do
                if not v11[tostring(v15.targetId)] then
                    local v16 = v9[tostring(v15.targetId)] or l_UserModel_0.fromDataTable({
                        id = v15.targetId,
                        name = v15.name,
                        displayName = v15.displayName,
                        isFriend = false
                    });
                    v11[v16.id] = v16;
                end;
            end;
        else
            for _, v18 in v13.participant_user_ids, nil, nil do
                v18 = tostring(v18);
                if not v11[v18] then
                    local l_user_data_0 = v13.user_data;
                    if l_user_data_0 then
                        local v20 = l_user_data_0[v18];
                        if v20 then
                            local v21 = v9[v18] or l_UserModel_0.fromDataTable({
                                id = v20.id,
                                name = v20.name,
                                displayName = v20.display_name,
                                isFriend = false
                            });
                            v11[v21.id] = v21;
                        end;
                    end;
                end;
            end;
        end;
    end;
    return v10, v11, (l_llama_0.Dictionary.keys(v11));
end;
return function(v23)
    return function(v24)
        if v23 then
            local v25, v26, v27 = v22(v23, v24:getState().Users or {});
            v24:dispatch(l_AddUsers_0(v26));
            if not v7() then
                v24:dispatch(v2.GetLatestMessages.API(v25, 1)):catch(function(v28)
                    warn("NetworkingChat failure in processConversations, Status: " .. tostring(v28));
                end);
            end;
            v24:dispatch(v3.GetPresencesFromUserIds.API(v27)):catch(function(v29)
                warn("NetworkingPresence failure in processConversations, Status: " .. tostring(v29));
            end);
            return ;
        else
            return ;
        end;
    end;
end;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.Cryo);
return function(v1)
    local v2 = {};
    v0.List.map(v1, function(v3)
        v0.List.map(v3.otherParticipants, function(v4)
            v2[v4] = true;
        end);
    end);
    return v0.Dictionary.keys(v2);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local v1 = require(l_script_FirstAncestor_0.Parent.Cryo);
local l_getConversationDisplayTitle_0 = require(l_script_FirstAncestor_0.SocialLibraries).Conversation.getConversationDisplayTitle;
return function(v3, v4, v5)
    if not v3 or not v3.isDefaultTitle then
        return l_getConversationDisplayTitle_0(v3);
    elseif v4 then
        if not v1.isEmpty(v4) then
            return table.concat(v1.List.map(v1.List.sort(v4, function(v6, v7)
                return string.lower(v6.names.combinedName) < string.lower(v7.names.combinedName);
            end), function(v8)
                return v8.names.combinedName;
            end), ", ");
        else
            return v5;
        end;
    else
        return "";
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Utils.getDeepValue);
local l_Url_0 = require(l_Parent_0.Http).Url;
local v4 = require(l_script_FirstAncestor_0.Components.ChatConversation.EnumMessageTypes);
return function(v5)
    local v6 = v2(v5, "messages.keys");
    local v7 = v2(v5, "messages.values");
    if not (not v6 or not v7) then
        local v8 = v7[v6[#v6]];
        if v8 then
            if v8.messageType == v4.Link then
                return l_Url_0.WWW_URL .. "games/" .. v8.gameLink.universeId;
            else
                return (tostring(v8.content));
            end;
        end;
    end;
    return nil;
end;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.Cryo);
return function(v1, v2)
    if not v1 or not v1.participants then
        return {};
    else
        return v0.List.filter(v1.participants, function(v3)
            return tostring(v3) ~= tostring(v2);
        end);
    end;
end;


local v0 = require(script.Parent.hasSameParticipants);
return function(v1)
    if v1.existing then
        if not (not v1.new.lastUpdated or not v1.existing.lastUpdated) and math.floor((v1.existing.lastUpdated:GetUnixTimestamp())) ~= math.floor((v1.new.lastUpdated:GetUnixTimestamp())) then
            return true;
        elseif v1.existing.title ~= v1.new.title then
            return true;
        elseif v0({
            existing = v1.existing.participants,
            new = v1.new.participants
        }) then
            if not v1.new.hasUnreadMessages or v1.existing.hasUnreadMessages then
                return false;
            else
                return true;
            end;
        else
            return true;
        end;
    else
        return true;
    end;
end;


local l_llama_0 = require(script:FindFirstAncestor("AppChat").Parent.LuaSocialLibrariesDeps).llama;
return function(v1)
    if #v1.existing ~= #v1.new then
        return false;
    else
        return l_llama_0.List.equals(l_llama_0.List.sort(v1.existing), (l_llama_0.List.sort(v1.new)));
    end;
end;


return {
    Actions = require(script.Actions),
    Thunks = require(script.Thunks),
    hasSameParticipants = require(script.hasSameParticipants)
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local v1 = require(l_script_FirstAncestor_0.Parent.Cryo);
local l_Conversation_0 = require(l_script_FirstAncestor_0.SocialLibraries).Conversation;
local l_getConversationDisplayTitle_0 = l_Conversation_0.getConversationDisplayTitle;
local l_getOtherParticipant_0 = l_Conversation_0.getOtherParticipant;
local l_getConversationGameId_0 = l_Conversation_0.getConversationGameId;
local v6 = require(script.Parent.populateUserIdsWithState);
local v7 = require(l_script_FirstAncestor_0.Users.getThumbnailsForUserIds);
local v8 = require(script.Parent.getLastMessageContent);
local v9 = require(l_script_FirstAncestor_0.Http.RoduxPresence);
local v10 = require(l_script_FirstAncestor_0.Users.userPresenceUtils);
local v11 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableUnfilteredThreadsUI);
return function(v12, v13)
    local v14 = v13.participants or {};
    local v16 = v1.List.filter(v14, function(v15)
        return v15 ~= v12.LocalUserId;
    end);
    local v17 = nil;
    if v13.conversationType == "OneToOneConversation" then
        v17 = v10.getUserDisplayPresence((v9.Selectors.getUserPresenceByUserId(v12, (l_getOtherParticipant_0(v12, v13.participants)))));
    end;
    local v18 = {};
    local l_Users_0 = v12.Users;
    for _, v21 in pairs(v14) do
        v18[v21] = l_Users_0[v21];
    end;
    return v1.Dictionary.join({
        id = v13.id,
        title = l_getConversationDisplayTitle_0(v13),
        participants = v6(v12, v14),
        otherParticipants = v16,
        isDefaultTitle = v13.isDefaultTitle,
        lastMessageContent = v8(v13) or "",
        hasUnreadMessages = v13.hasUnreadMessages or false,
        thumbnails = v7(v16),
        presenceText = v17 and v17.text,
        presenceImage = v17 and v17.image,
        gameId = l_getConversationGameId_0(v13, v12.LocalUserId, v18),
        serverState = v13.serverState,
        moderationType = if not v11() then nil else v13.moderationType,
        userPendingStatus = if not v11() then nil else v13.userPendingStatus,
        participantMetadata = if not v11() then nil else v13.participantMetadata,
        conversationType = if not v11() then nil else v13.conversationType
    }, {
        shortRelativeTime = v13.lastUpdated and v13.lastUpdated:GetShortRelativeTime(),
        longRelativeTime = v13.lastUpdated and v13.lastUpdated:GetLongRelativeTime(),
        unixTime = v13.lastUpdated and v13.lastUpdated:GetUnixTimestamp()
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Users.getThumbnailsForUserIds);
local v3 = require(l_script_FirstAncestor_0.Models.Conversation);
local v4 = require(l_script_FirstAncestor_0.Models.MessageModel);
local v5 = require(l_Parent_0.Cryo);
local v6 = require(l_script_FirstAncestor_0.Logger):new(script.Name);
local v7 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableChatSystemMessages);
return function(v8, v9, v10, v11, v12, v13)
    local v14 = v9.senderTargetId ~= tostring(v8.LocalUserId);
    local v15 = nil;
    local v16 = nil;
    local v17 = not v12 and v11.fetchedOldestMessage == true;
    local v18 = false;
    if ((v12 and v9.sent) and v12.sent) ~= nil then
        v18 = v9.sent:GetUnixTimestamp() - v12.sent:GetUnixTimestamp() > 300;
    end;
    v15 = v17 or v18;
    v16 = (v15 or not v12) or v12.senderTargetId ~= v9.senderTargetId;
    local l_Users_0 = v8.Users;
    local v20 = {};
    if (not v14 or not v16) or not v9.senderTargetId then
        if not (not (v7() and v9.senderType == v4.SenderTypes.User) or v9.senderTargetId) then
            v6:warning((("User message with no senderTargetId: %*"):format(v9.id)));
        end;
    else
        v20 = {
            id = v9.senderTargetId,
            thumbnail = not not l_Users_0[v9.senderTargetId] and v2({
                v9.senderTargetId
            })[1] or "",
            shouldShowName = v11.conversationType == v3.Type.MULTI_USER_CONVERSATION
        };
    end;
    return v5.Dictionary.join(v9, {
        messageId = v10,
        position = not not v12 and v12.position + 1 or 1,
        isIncoming = v14,
        isNewSender = v16,
        sender = v20,
        isSending = v13 or false,
        showDateTime = v15,
        additionalProps = {
            placeId = v9.placeId,
            universeId = v9.gameLink and v9.gameLink.universeId,
            senderUserId = not not v14 and v9.senderTargetId or nil
        }
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_populateListFromIds_0 = require(l_script_FirstAncestor_0.SocialLibraries).populate.populateListFromIds;
local v2 = require(l_script_FirstAncestor_0.Utils.getDeepValue);
return function(v3, v4)
    return l_populateListFromIds_0(v4, v2(v3, "Users") or {});
end;


return {
    RoactChat = "RoactChat",
    ChatConversation = "ChatConversation",
    ChatDetails = "ChatDetails",
    ChatLanding = "ChatLanding",
    CreateNewChat = "CreateNewChat",
    EditChatMembers = "EditChatMembers",
    EmptyConversation = "EmptyConversation",
    RoactChatToast = "RoactChatToast",
    GameDetail = "GameDetail",
    Notifications = "Notifications",
    PrivacySettings = "PrivacySettings",
    ReportAbuse = "ReportAbuse",
    ViewUserProfile = "ViewUserProfile",
    SquadLobby = "SquadLobby",
    Groups = "Groups",
    UnfilteredThreadsLearnMore = "UnfilteredThreadsLearnMore",
    FriendsLanding = "FriendsLanding"
};


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


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


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


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


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


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


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


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


local l_default_0 = require(script:FindFirstAncestor("AppChat").Parent.SocialCommon).Experiments.NewChatTabExperimentation.default;
game:DefineFastFlag("EnableAppChatTabBarVisibilityPrevention", false);
return function()
    return (game:GetFastFlag("EnableAppChatTabBarVisibilityPrevention") and l_default_0.isEnabled()) and l_default_0:getConnectTabLeadsToChatTab();
end;


local v0 = require(script.Parent.isAppChatChannelsAPIEnabled);
game:DefineFastFlag("EnableChatSystemMessages", false);
return function()
    return game:GetFastFlag("EnableChatSystemMessages") and v0();
end;


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


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


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_default_0 = require(l_script_FirstAncestor_0.Parent.SocialCommon).Experiments.NewChatTabExperimentation.default;
local v2 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableAppChatTabBarVisibilityPrevention);
game:DefineFastFlag("EnableNewChatTabExperimentAndroidBackButtonFix", false);
return function()
    return ((game:GetFastFlag("EnableNewChatTabExperimentAndroidBackButtonFix") and v2()) and l_default_0.isEnabled()) and l_default_0:getConnectTabLeadsToChatTab();
end;


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


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


local v0 = require(script.Parent.isAppChatChannelsAPIEnabled);
game:DefineFastFlag("EnableUnfilteredThreadsUI", false);
return function()
    return game:GetFastFlag("EnableUnfilteredThreadsUI") and v0();
end;


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


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


game:DefineFastFlag("HideNotificationIconForVR", false);
return function()
    return game:GetFastFlag("HideNotificationIconForVR") or game:GetEngineFeature("EnableMaquettesSupport");
end;


game:DefineFastInt("MessageListMountingBuffer", 200);
return function()
    return game:GetFastInt("MessageListMountingBuffer");
end;


return {
    getFFlagEnableModularExternalNavigationHandler = require(script.getFFlagEnableModularExternalNavigationHandler),
    getFFlagEnableStandaloneAppChat = require(script.getFFlagEnableStandaloneAppChat),
    getFFlagEnableAppChatTabBarVisibilityPrevention = require(script.getFFlagEnableAppChatTabBarVisibilityPrevention),
    getFFlagEnableNewChatTabExperimentAndroidBackButtonFix = require(script.getFFlagEnableNewChatTabExperimentAndroidBackButtonFix),
    getFFlagChatTabHideGroupsLinkOnVR = require(script.getFFlagChatTabHideGroupsLinkOnVR),
    isAppChatChannelsAPIEnabled = require(script.isAppChatChannelsAPIEnabled)
};


local l_Players_0 = game:GetService("Players");
game:DefineFastInt("AppChatChannelsAPIRolloutPercentRC1", 0);
game:DefineFastFlag("AppChatChannelsAPIRolloutRC1", false);
game:DefineFastFlag("AppChatChannelsAPIForAllRC1", false);
local function _()
    return game:GetFastFlag("AppChatChannelsAPIForAllRC1");
end;
local function _()
    if game:GetFastFlag("AppChatChannelsAPIRolloutRC1") then
        local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
        if not l_LocalPlayer_0 then
            return false;
        else
            return l_LocalPlayer_0.UserId % 100 < game:GetFastInt("AppChatChannelsAPIRolloutPercentRC1");
        end;
    else
        return false;
    end;
end;
return function()
    local l_AppChatChannelsAPIForAllRC1_0 = game:GetFastFlag("AppChatChannelsAPIForAllRC1");
    if not l_AppChatChannelsAPIForAllRC1_0 then
        if game:GetFastFlag("AppChatChannelsAPIRolloutRC1") then
            local l_LocalPlayer_1 = l_Players_0.LocalPlayer;
            if not l_LocalPlayer_1 then
                l_AppChatChannelsAPIForAllRC1_0 = false;
            else
                return l_LocalPlayer_1.UserId % 100 < game:GetFastInt("AppChatChannelsAPIRolloutPercentRC1");
            end;
        else
            return false;
        end;
    end;
    return l_AppChatChannelsAPIForAllRC1_0;
end;


local v0 = require(script.Parent.isAppChatChannelsAPIEnabled);
game:DefineFastFlag("AppChatFriendsSourceEnabled", false);
return function()
    return v0() and game:GetFastFlag("AppChatFriendsSourceEnabled");
end;


game:DefineFastString("UnfilteredMessageLightHexColor", "335FFF");
game:DefineFastString("UnfilteredMessageDarkHexColor", "335FFF");
game:DefineFastInt("UnfilteredMessageTransparencyHundredths", 0);
return {
    UnfilteredMessageLightColor3 = Color3.fromHex(game:GetFastString("UnfilteredMessageLightHexColor")),
    UnfilteredMessageDarkColor3 = Color3.fromHex(game:GetFastString("UnfilteredMessageDarkHexColor")),
    UnfilteredMessageTransparency = game:GetFastInt("UnfilteredMessageTransparencyHundredths") / 100
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local v3 = require(l_script_FirstAncestor_0.Utils.getDeepValue);
local v4 = require(l_script_FirstAncestor_0.Http.NetworkingChat);
local v5 = require(l_script_FirstAncestor_0.Http.RoduxNetworking);
local v6 = require(l_script_FirstAncestor_0.Flags.isAppChatChannelsAPIEnabled);
local v7 = require(l_Parent_0.AppChatNetworking);
local v8 = game:DefineFastFlag("EnableAreConversationsFetchingFix", false);
return function()
    return l_useSelector_0(function(v9)
        if not v8 then
            return v3(v9, "ChatAppReducer.ConversationsAsync.pageConversationsIsFetching");
        elseif not v6() then
            return v4.GetUserConversations.getStatus(v9, 1) == v5.Enum.NetworkStatus.Fetching;
        else
            return v7.rodux.GetUserConversations.getStatus(v9, 1) == v5.Enum.NetworkStatus.Fetching;
        end;
    end);
end;