local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(script.Parent.QRCodeView);
local v3 = require(l_Parent_0.React);
local v4 = require(l_Parent_0.RoactRodux);
local v5 = require(l_script_FirstAncestor_0.TestHelpers.mockStore);
local v6 = require(l_script_FirstAncestor_0.TestHelpers.mockState);
local v7 = require(l_script_FirstAncestor_0.Common.Constants);
local l_NetworkStatus_0 = require(l_script_FirstAncestor_0.Networking.configuredRoduxNetworking).Enum.NetworkStatus;
return {
    default = function()
        return v3.createElement(v4.StoreProvider, {
            store = v5(v6({
                LocalUserId = "156"
            }))
        }, {
            QRCodeView = v3.createElement(v2, {
                layoutOrder = 1
            })
        });
    end,
    loading = function()
        return v3.createElement(v4.StoreProvider, {
            store = v5(v6({
                LocalUserId = "156",
                [v7.RODUX_KEY] = {
                    Users = {},
                    NetworkStatus = {},
                    ShareUrl = {}
                }
            }))
        }, {
            QRCodeView = v3.createElement(v2, {
                layoutOrder = 1
            })
        });
    end,
    failed = function()
        return v3.createElement(v4.StoreProvider, {
            store = v5(v6({
                LocalUserId = "156",
                [v7.RODUX_KEY] = {
                    Users = {},
                    NetworkStatus = {
                        ["https://apis.roblox.com/sharelinks/v1/get-or-create-link"] = l_NetworkStatus_0.Failed
                    },
                    ShareUrl = {}
                }
            }))
        }, {
            QRCodeView = v3.createElement(v2, {
                layoutOrder = 1
            })
        });
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Analytics.EventNames);
local l_useEffectOnce_0 = require(l_Parent_0.RoactUtils).Hooks.useEffectOnce;
local _ = require(l_script_FirstAncestor_0.Analytics.useAnalytics);
return function(v5, v6)
    l_useEffectOnce_0(function()
        v5.fireEvent(v2.QRPageLoadFailed);
    end, v6);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Analytics.EventNames);
local l_useEffectOnce_0 = require(l_Parent_0.RoactUtils).Hooks.useEffectOnce;
local v4 = require(l_script_FirstAncestor_0.Rodux.useShareLinkId);
local _ = require(l_script_FirstAncestor_0.Analytics.useAnalytics);
return function(v6, v7)
    local v8 = v4();
    l_useEffectOnce_0(function()
        v6.fireEvent(v2.QRPageLoad, {
            shareLinkId = v8
        });
    end, v7);
end;


game:DefineFastString("ProfileQRCodeFriendRequestAlertsExperimentKey", "friend_request_alerts");
return function()
    return game:GetFastString("ProfileQRCodeFriendRequestAlertsExperimentKey");
end;


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


return require(script:FindFirstAncestor("ProfileQRCode").Parent.NetworkingFriends).config({
    roduxNetworking = require(script.Parent.configuredRoduxNetworking)
});


return require(script:FindFirstAncestor("ProfileQRCode").Parent.NetworkingUsers).config({
    roduxNetworking = require(script.Parent.configuredRoduxNetworking)
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.LuaSocialLibrariesDeps);
local l_httpRequest_0 = v2.httpRequest;
local l_RODUX_KEY_0 = require(l_script_FirstAncestor_0.Common.Constants).RODUX_KEY;
local v5 = require(l_Parent_0.Lumberyak).Logger.new(nil, "ProfileQRCode"):new("ProfileQRCode Networking");
return (v2.RoduxNetworking.config({
    keyPath = l_RODUX_KEY_0 .. ".NetworkStatus",
    networkImpl = l_httpRequest_0.config({
        requestFunction = function(v6, v7, v8)
            v5:info("Fetching: {}", string.format("[ requestMethod = %q, url = %q ]", v7, v6));
            return l_httpRequest_0.requestFunctions.RequestInternal(v6, v7, v8);
        end,
        postRequestFunction = function(v9, v10)
            v5:debug("Returned: {}", string.format("[ requestMethod = %q, url = %q, statusCode = %s, body = %s ]", v10.requestMethod, v10.url, v9.StatusCode, v9.Body));
        end,
        maxRetryCount = game:DefineFastInt("ProfileQRCodeHttpRetryCount", 3)
    })
}));


local v0 = require(script:FindFirstAncestor("ProfileQRCode").Parent.Http);
local function v2(v1)
    return v1(v0.Url.APIS_URL .. "sharelinks"):path("v1"):path("get-or-create-link"):body({
        linkType = "Profile"
    });
end;
return {
    profileLinkType = "Profile",
    buildUrl = v2,
    setupRequest = function(v3)
        return v3.POST(script, v2);
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local v1 = require(l_script_FirstAncestor_0.Parent.RoactUtils);
local v2 = require(l_script_FirstAncestor_0.Networking.configureRoduxFriends);
local l_useDispatch_0 = v1.Hooks.RoactRodux.useDispatch;
return function()
    local v4 = l_useDispatch_0();
    return function(v5, v6)
        return v4(v2.AcceptFriendRequestFromUserId.API({
            currentUserId = v5,
            targetUserId = v6
        }));
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Networking.createOrGetProfileShareUrl);
local l_useDispatch_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useDispatch;
return function()
    local v4 = l_useDispatch_0();
    return function()
        return v4(v2.API()):catch(function()
        end);
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Networking.configureRoduxUsers);
local l_useDispatch_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useDispatch;
return function()
    local v4 = l_useDispatch_0();
    return function(v5)
        return v4(v2.GetUserV2FromUserId.API(v5));
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_useSelector_0 = require(l_script_FirstAncestor_0.Parent.RoactUtils).Hooks.RoactRodux.useSelector;
local v2 = require(l_script_FirstAncestor_0.Networking.createOrGetProfileShareUrl);
return function()
    return l_useSelector_0(function(v3)
        return v2.getStatus(v3);
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Dev.Roact);
local v3 = require(l_Parent_0.UIBlox);
local v4 = require(l_Parent_0.Dash);
local l_mockLocale_0 = require(l_Parent_0.Dev.SocialTestHelpers).StoryHelpers.mockLocale;
local v6 = require(l_Parent_0.Dev.RobloxAppUIBloxConfig);
local v7 = require(l_script_FirstAncestor_0.Analytics);
v3.init(v6);
local l_AppStyleProvider_0 = v3.App.Style.AppStyleProvider;
v2.setGlobalConfig({
    elementTracing = true
});
local v9 = {
    Default = {
        themeName = "Light",
        fontName = "Gotham"
    },
    Light = {
        themeName = "Light",
        fontName = "Gotham"
    },
    Dark = {
        themeName = "Dark",
        fontName = "Gotham"
    }
};
local v10 = {
    language = "en-us"
};
return {
    name = "ProfileQRCode",
    storyRoot = l_script_FirstAncestor_0,
    roact = v2,
    mapDefinition = function(v11)
        return v4.join(v11, {
            controls = v4.join(v10, v11.controls)
        });
    end,
    mapStory = function(v12)
        return function(v13)
            return v2.createElement(v7.Context.Provider, {
                value = {
                    fireEvent = function()
                    end
                }
            }, {
                Element = v2.createElement(l_AppStyleProvider_0, {
                    style = not not v13 and v9[v13.theme] or v9.Default
                }, {
                    Child = l_mockLocale_0(v12, v13)
                })
            });
        end;
    end
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
return require(l_script_FirstAncestor_0.Parent.LuaSocialLibrariesDeps).RoduxUsers.config({
    keyPath = require(l_script_FirstAncestor_0.Common.Constants).RODUX_KEY .. ".Users"
});


local l_Parent_0 = script:FindFirstAncestor("ProfileQRCode").Parent;
local l_convertActions_0 = require(l_Parent_0.SocialReducerAdaptors).convertActions;
local l_usersActionAdaptor_0 = require(l_Parent_0.SocialReducerAdaptors).usersActionAdaptor;
local v3 = require(script.Parent.RoduxUsers);
local v4 = {
    byUserId = {},
    byUsername = {}
};
local v5 = v3.installReducer();
return function()
    return l_convertActions_0(v5, l_usersActionAdaptor_0(v3), v4);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local v1 = require(l_script_FirstAncestor_0.Parent.Rodux);
local v2 = require(script.Parent.configuredUsers);
local v3 = require(l_script_FirstAncestor_0.Networking.configuredRoduxNetworking);
local v4 = require(script.Parent.ShareUrlReducer);
return function()
    return v1.combineReducers({
        Users = v2(),
        NetworkStatus = v3.installReducer(),
        ShareUrl = v4
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_getDeepValue_0 = require(l_Parent_0.LuaSocialLibrariesDeps).SocialLibraries.config({}).Dictionary.getDeepValue;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local v4 = require(l_script_FirstAncestor_0.Common.Constants);
return function()
    return l_useSelector_0(function(v5)
        return l_getDeepValue_0(v5, v4.RODUX_KEY .. ".ShareUrl.linkId");
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_getDeepValue_0 = require(l_Parent_0.LuaSocialLibrariesDeps).SocialLibraries.config({}).Dictionary.getDeepValue;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local v4 = require(l_script_FirstAncestor_0.Common.Constants);
return function()
    return l_useSelector_0(function(v5)
        return l_getDeepValue_0(v5, v4.RODUX_KEY .. ".ShareUrl.shortUrl");
    end);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_beforeAll_0 = require(l_script_FirstAncestor_0.Parent.Dev.JestGlobals).beforeAll;
local v2 = require(l_script_FirstAncestor_0.Networking.configuredRoduxNetworking);
l_beforeAll_0(function()
    v2.setNetworkImpl(function(v3)
        error(string.format("\240\159\148\165 Should have replaced network implementation for url: %s", (tostring(v3))));
    end);
end);


return function(v0)
    return {
        GetItem = function(_, _)
            if not v0 then
                return "true";
            else
                return v0;
            end;
        end,
        SetItem = function(_, _, _)
        end,
        Flush = function(_)
        end
    };
end;


return function()
    local v0 = {};
    return {
        mockEventReceiver = {
            observeEvent = function(_, v2, v3)
                v0[v2] = v3;
            end
        },
        events = v0
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Dev.JestGlobals);
local l_createTreeWithProviders_0 = require(l_Parent_0.Dev.SocialTestHelpers).TestHelpers.createTreeWithProviders;
local v4 = require(script.Parent.mockAnalytics);
local v5 = require(l_script_FirstAncestor_0.Analytics);
local v6 = require(l_Parent_0.React);
local v7 = require(l_Parent_0.RoactAppExperiment);
local l_MagicMock_0 = require(l_Parent_0.LuaSocialLibrariesDeps).Mock.MagicMock;
local l_mockPolicyProvider_0 = require(l_Parent_0.Dev.UnitTestHelpers).mockPolicyProvider;
return function(v10, v11)
    local v12 = v4({
        uid = "123"
    }, v2.jest);
    return v6.createElement(v5.Context.Provider, {
        value = if not v11.mockAnalytics then v12.value else v11.mockAnalytics
    }, {
        v6.createElement(v7.Provider, {
            value = l_MagicMock_0.new()
        }, {
            Element = l_mockPolicyProvider_0(l_createTreeWithProviders_0(v10, v11), v11.mockPolicy)
        })
    }), v12;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local v1 = require(l_script_FirstAncestor_0.Parent.Dev.SocialTestHelpers);
local l_findElementWithAssert_0 = v1.TestHelpers.findElementWithAssert;
local l_findImageSet_0 = v1.TestHelpers.findImageSet;
local v4 = require(l_script_FirstAncestor_0.Common.TextKeys);
return {
    findQRCodeView = l_findElementWithAssert_0({
        Name = "QRCodeView"
    }),
    findQRCode = l_findElementWithAssert_0({
        Name = "QRCode"
    }),
    findDescription = l_findElementWithAssert_0({
        Text = v4.Description
    }),
    findTopBarTitle = l_findElementWithAssert_0({
        Text = v4.Title
    }),
    findTopBar = l_findElementWithAssert_0({
        Name = "TopBar"
    }),
    findPlayerAvatar = l_findElementWithAssert_0({
        Name = "PlayerAvatar"
    }),
    findCrossButton = l_findElementWithAssert_0(l_findImageSet_0("icons/navigation/close")),
    findBackButton = l_findElementWithAssert_0(l_findImageSet_0("icons/navigation/pushBack")),
    findRetryButton = l_findElementWithAssert_0(l_findImageSet_0("icons/common/refresh")),
    findLoadingElement = l_findElementWithAssert_0({
        Image = "rbxasset://textures/ui/LuaApp/graphic/shimmer.png"
    }),
    findQRCodeIcon = l_findElementWithAssert_0({
        Name = "QRImage"
    }),
    findUsername = l_findElementWithAssert_0({
        Name = "Username"
    }),
    findNotificationDescription = l_findElementWithAssert_0({
        Name = "Description"
    }),
    findCloseButton = l_findElementWithAssert_0({
        Name = "CloseButton"
    }),
    findAcceptButton = l_findElementWithAssert_0({
        Name = "AcceptButton"
    }),
    findAlertView = l_findElementWithAssert_0({
        Name = "FriendsInvite"
    }),
    findToastView = l_findElementWithAssert_0({
        Name = "FriendAcceptToast"
    })
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_TestingAnalytics_0 = require(l_script_FirstAncestor_0.Parent.SocialLuaAnalytics).TestingAnalytics;
local l_mockAnalytics_0 = l_TestingAnalytics_0.mockAnalytics;
local l_mockLogger_0 = l_TestingAnalytics_0.mockLogger;
local l_setupFireEvent_0 = require(l_script_FirstAncestor_0.Analytics).setupFireEvent;
return function(v5, v6)
    local v7 = if not not v5 and v5.uid then v5.uid else "123";
    local v8 = l_mockAnalytics_0(v6);
    return {
        uid = v7,
        value = {
            fireEvent = l_setupFireEvent_0({
                analytics = v8,
                loggerImpl = l_mockLogger_0,
                infoForAllEvents = {
                    uid = v7
                }
            })
        },
        mockLogger = l_mockLogger_0(v6),
        analyticsMock = v8
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Common.Constants);
local v3 = require(l_Parent_0.Dash);
local v4 = require(script.Parent.DefaultTestUserId);
local v5 = require(script.Parent.FirstFriendRequesterUserId);
local v6 = require(script.Parent.SecondFriendRequesterUserId);
return function(v7)
    return v3.join({
        LocalUserId = "123",
        ScreenSize = Vector2.new(1000, 500),
        [v2.RODUX_KEY] = {
            Users = {
                byUserId = {
                    [v4] = {
                        displayName = "bigMalc",
                        username = "malcolmtucker"
                    },
                    [v5] = {
                        displayName = "Apollo",
                        username = "captapollo"
                    },
                    [v6] = {
                        displayName = "Starbuck",
                        username = "ltstarbuck"
                    }
                }
            },
            NetworkStatus = {},
            ShareUrl = {
                shortUrl = "www.bbc.co.uk",
                linkId = "123456"
            }
        }
    }, v7);
end;


local v0 = require(script:FindFirstAncestor("ProfileQRCode").Parent.Rodux);
return function(v1, v2)
    return v0.Store.new(v2 or function(v3)
        return v3;
    end, v1 or {}, {
        v0.thunkMiddleware
    });
end;


local v0 = require(script:FindFirstAncestor("ProfileQRCode").Parent.Dev.ReactRoblox);
local l_act_0 = v0.act;
local v2 = require(script.Parent.createTreeWithProviders);
return function(v3, v4)
    local v5 = nil;
    local function v7(v6)
        v5 = v3(v6);
        return nil;
    end;
    local _ = function(_)
        return (v2(v7, v4 or {}));
    end;
    local v10 = v0.createRoot((Instance.new("Frame")));
    l_act_0(function()
        local l_v10_0 = v10;
        local _ = {};
        l_v10_0:render((v2(v7, v4 or {})));
    end);
    return {
        result = v5,
        rerender = function(v13)
            l_act_0(function()
                local l_v10_1 = v10;
                local _ = v13;
                l_v10_1:render((v2(v7, v4 or {})));
            end);
        end,
        cleanup = function()
            v10:unmount();
        end
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.Analytics.EventStreamActionList);
local v3 = require(l_script_FirstAncestor_0.Analytics.EventNames);
local v4 = require(l_Parent_0.Dash);
return function(v5, v6)
    assert(v3.isEnumValue(v5), "Invalid event name");
    local v7 = v2[v5];
    return v7.context, v7.eventType, v4.join(v7.additionalInfo, {
        btn = if not not v7.additionalInfo and v7.additionalInfo.btn then v7.additionalInfo.btn.rawValue() else nil
    }, v6);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ProfileQRCode");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_getDeepValue_0 = require(l_Parent_0.LuaSocialLibrariesDeps).SocialLibraries.config({}).Dictionary.getDeepValue;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local v4 = require(l_script_FirstAncestor_0.Common.Constants);
return function(v5)
    return l_useSelector_0(function(v6)
        return l_getDeepValue_0(v6, v4.RODUX_KEY .. ".Users.byUserId." .. v5);
    end);
end;


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "ProfileQRCode",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler(),
        script.Parent.TestHelpers.collisionMatcherSetup,
        script.Parent.TestHelpers.NetworkImplHandler
    }
};


return {
    ["jest.config"] = script.Parent["jest.config"],
    installReducer = require(script.Parent.Rodux).installReducer,
    ProfileQRCodeEntryPoint = require(script.Parent.Components.ProfileQRCodeEntryPoint),
    RoduxKey = require(script.Parent.Common.Constants).RODUX_KEY,
    TitleKey = require(script.Parent.Common.TextKeys).Title
};


return {
    EC_LEVEL_1 = "1",
    EC_LEVEL_2 = "2",
    EC_LEVEL_3 = "3",
    EC_LEVEL_4 = "4"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("QRCodeDisplay");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Dash);
local v4 = require(script.Parent.Parent.DisplayQRCodeFromMatrix.DisplayQRCodeFromMatrix);
local _ = require(l_script_FirstAncestor_0.Common.ECLevels);
local v6 = require(script.Parent.useQRCode);
return function(v7)
    return v2.createElement(v4, v3.join(v7, {
        qrCodeMatrix = v6(v7)
    }));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("QRCodeDisplay");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(script.Parent.DisplayQRCode);
local v3 = require(l_Parent_0.React);
local v4 = require(l_script_FirstAncestor_0.Common.ECLevels);
return {
    SimpleMatrix = function()
        return v3.createElement(v2, {
            ecLevel = v4.EC_LEVEL_1,
            sideLength = 100,
            toEncode = "https://www.bbc.com/news"
        });
    end,
    LoadingMatrix = function()
        return v3.createElement(v2, {
            ecLevel = v4.EC_LEVEL_1,
            isLoading = true,
            sideLength = 200,
            toEncode = ""
        });
    end,
    SuperComplexMatrix = function()
        return v3.createElement(v2, {
            ecLevel = v4.EC_LEVEL_4,
            sideLength = 400,
            toEncode = "https://ro.blox.com/Ebh5?pid=share&is_retargeting=true&af_dp=roblox%3A%2F%2Fnavigation%2Fshare_links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fshare-links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite"
        });
    end
};


local _ = require(script:FindFirstAncestor("QRCodeDisplay").Common.ECLevels);
return function(v1)
    return (tonumber(v1));
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("QRCodeDisplay");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.QRCode);
local v4 = require(script.Parent.ecToNumber);
local _ = require(l_script_FirstAncestor_0.Common.ECLevels);
return function(v6)
    return v2.useMemo(function()
        local _, v8 = v3.qrcode(v6.toEncode, v4(v6.ecLevel));
        return v8;
    end, {
        v6.toEncode,
        v6.ecLevel
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("QRCodeDisplay");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Dash);
local v4 = require(script.Parent.drawImage);
local v5 = require(script.Parent.generatePixels);
local v6 = require(l_script_FirstAncestor_0.Flags.FFlagQrCodeDrawToEditableImage);
local v7 = {
    backgroundColor3 = Color3.fromRGB(255, 255, 255),
    backgroundTransparency = 0,
    pixelColor3 = Color3.fromRGB(0, 0, 0),
    pixelTransparency = 0,
    sideLength = 200
};
local function _(v8, v9)
    if v9 then
        assert(type(v9) == "number", "rotation must be a number");
        if v9 % 90 == 0 then
            return v8;
        else
            local v10 = math.rad(v9);
            return (math.round(v8 / (math.sin(v10) + math.cos(v10))));
        end;
    else
        return v8;
    end;
end;
return function(v12)
    local v13 = v3.join(v7, v12);
    local v14 = nil;
    if not v6 then
        v14 = v5(v13);
    else
        local v15 = v2.createRef();
        local l_sideLength_0 = v13.sideLength;
        local l_qrCodeRotation_0 = v13.qrCodeRotation;
        local v18;
        if l_qrCodeRotation_0 then
            assert(type(l_qrCodeRotation_0) == "number", "rotation must be a number");
            if l_qrCodeRotation_0 % 90 == 0 then
                v18 = l_sideLength_0;
            else
                local v19 = math.rad(l_qrCodeRotation_0);
                v18 = math.round(l_sideLength_0 / (math.sin(v19) + math.cos(v19)));
            end;
        else
            v18 = l_sideLength_0;
        end;
        l_sideLength_0 = function(v20)
            v15.current = v20;
            if v20 then
                v4(v20, v18, v13.qrCodeMatrix, v13.pixelColor3, v13.pixelTransparency);
                return ;
            else
                return ;
            end;
        end;
        v2.useEffect(function()
            if v15.current then
                v4(v15.current, v18, v13.qrCodeMatrix, v13.pixelColor3, v13.pixelTransparency);
                return ;
            else
                return ;
            end;
        end, {
            v18,
            v13.qrCodeMatrix,
            v13.pixelColor3,
            v13.pixelTransparency
        });
        v14 = {
            ImageLabel = v2.createElement("ImageLabel", {
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Position = UDim2.fromScale(0.5, 0.5),
                Rotation = v13.qrCodeRotation,
                Size = UDim2.fromOffset(v18, v18)
            }, {
                Image = v2.createElement("EditableImage", {
                    ref = l_sideLength_0,
                    Size = Vector2.new(v18, v18)
                })
            })
        };
    end;
    return v2.createElement("Frame", {
        BackgroundColor3 = v13.backgroundColor3,
        BackgroundTransparency = v13.backgroundTransparency,
        BorderSizePixel = 0,
        Size = UDim2.fromOffset(v13.sideLength, v13.sideLength)
    }, v14);
end;


local l_Parent_0 = script:FindFirstAncestor("QRCodeDisplay").Parent;
local v1 = require(script.Parent.DisplayQRCodeFromMatrix);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.QRCode);
return {
    SimpleMatrix = function()
        return v2.createElement(v1, {
            qrCodeMatrix = {
                {
                    1,
                    0
                },
                {
                    1,
                    0
                }
            },
            sideLength = 100
        });
    end,
    ComplexMatrix = function()
        local _, v5 = v3.qrcode("https://www.bbc.com/news", 4);
        return v2.createElement(v1, {
            qrCodeMatrix = v5,
            sideLength = 200
        });
    end,
    SuperComplexMatrix = function()
        local _, v7 = v3.qrcode("https://ro.blox.com/Ebh5?pid=share&is_retargeting=true&af_dp=roblox%3A%2F%2Fnavigation%2Fshare_links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fshare-links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite", 2);
        return v2.createElement(v1, {
            qrCodeMatrix = v7,
            sideLength = 400
        });
    end,
    CustomisedMatrix = function()
        local _, v9 = v3.qrcode("https://ro.blox.com/Ebh5?pid=share&is_retargeting=true&af_dp=roblox%3A%2F%2Fnavigation%2Fshare_links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fshare-links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite", 4);
        return v2.createElement(v1, {
            qrCodeMatrix = v9,
            sideLength = 200,
            pixelColor3 = Color3.new(1, 0, 1),
            backgroundColor3 = Color3.new(0, 1, 0)
        });
    end,
    ReallySmallSideLength = function()
        local _, v11 = v3.qrcode("https://ro.blox.com/Ebh5?pid=share&is_retargeting=true&af_dp=roblox%3A%2F%2Fnavigation%2Fshare_links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite&af_web_dp=https%3A%2F%2Fwww.roblox.com%2Fshare-links%3Fcode%3D6e5de960f12ec44797d1d974c76605ff%26type%3DFriendInvite", 4);
        return v2.createElement(v1, {
            qrCodeMatrix = v11,
            sideLength = 1
        });
    end
};


return function(v0, v1, v2, v3, v4)
    local l_R_0 = v3.R;
    local l_G_0 = v3.G;
    local l_B_0 = v3.B;
    local v8 = 1 - v4;
    local v9 = table.create((v1 * v1) * 4);
    for v10 = 1, v1 do
        for v11 = 1, v1 do
            if v2[math.floor(((v10 - 1) / v1) * #v2) + 1][math.floor(((v11 - 1) / v1) * #v2) + 1] > 0 then
                table.insert(v9, l_R_0);
                table.insert(v9, l_G_0);
                table.insert(v9, l_B_0);
                table.insert(v9, v8);
            else
                table.insert(v9, 1);
                table.insert(v9, 1);
                table.insert(v9, 1);
                table.insert(v9, 0);
            end;
        end;
    end;
    local v12 = Vector2.new(0, 0);
    local v13 = Vector2.new(v1, v1);
    v0.Size = v13;
    v0:WritePixels(v12, v13, v9);
    return v9;
end;


local l_Parent_0 = script:FindFirstAncestor("QRCodeDisplay").Parent;
local v1 = require(l_Parent_0.React);
local l_Array_0 = require(l_Parent_0.LuauPolyfill).Array;
return function(v3)
    local v4 = math.max(math.floor(v3.sideLength / #v3.qrCodeMatrix), 1);
    local v5 = math.max((v3.sideLength - v4 * #v3.qrCodeMatrix) / 2, 0);
    local function _(v6)
        return (v6 - 1) * v4 + v5;
    end;
    local v8 = {};
    l_Array_0.forEach(v3.qrCodeMatrix, function(v9, v10)
        l_Array_0.forEach(v9, function(v11, v12)
            if v11 > 0 then
                table.insert(v8, v1.createElement("Frame", {
                    BackgroundColor3 = v3.pixelColor3,
                    BackgroundTransparency = v3.pixelTransparency,
                    BorderSizePixel = 0,
                    Position = UDim2.fromOffset((v10 - 1) * v4 + v5, (v12 - 1) * v4 + v5),
                    Size = UDim2.fromOffset(v4, v4)
                }));
            end;
        end);
    end);
    return v8;
end;


return game:DefineFastFlag("QrCodeDrawToEditableImage", false) and game:GetEngineFeature("EditableImageApiEnabled");


return {
    name = "QRCodeDisplay",
    storyRoots = {
        script.Parent
    },
    roact = require(script.Parent.Parent.Dev.Roact)
};


local _ = require(script.DisplayQRCodeFromMatrix);
local _ = require(script.DisplayQRCode);
return require(script.qRCodeDisplayAPI);


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "QRCodeDisplay",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler(),
        script.Parent.TestHelpers.collisionMatcherSetup
    }
};


return {
    ["jest.config"] = script.Parent["jest.config"],
    DisplayQRCode = require(script.Parent.DisplayQRCode),
    ECLevels = require(script.Parent.Common.ECLevels),
    FFlagQrCodeDrawToEditableImage = require(script.Parent.Flags.FFlagQrCodeDrawToEditableImage)
};


local v0 = require(script:FindFirstAncestor("QueryRefetch").Hooks.usePlatformNameQueryRefetch);
return function(v1)
    v0(v1.robloxEventReceiver);
    return nil;
end;


local l_Parent_0 = script:FindFirstAncestor("QueryRefetch").Parent;
local v1 = require(l_Parent_0.React);
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local l_LoginStatus_0 = require(l_Parent_0.RobloxAppEnums).LoginStatus;
local v4 = require(l_Parent_0.UserProfiles);
local l_getFFlagUpdateFriendCarousel10ft_0 = require(l_Parent_0.SharedFlags).getFFlagUpdateFriendCarousel10ft;
local function v7(v6)
    return {
        authenticationStatus = v6.AuthenticationStatus.status
    };
end;
return function(v8)
    local v9 = l_useSelector_0(v7).authenticationStatus == l_LoginStatus_0.LOGGED_IN;
    local v10, v11 = v1.useState({});
    local v12 = v4.Hooks.useUserProfilesFetch({
        userIds = v10,
        query = v4.Queries.userProfilesDisplayUserPlatformNamesByUserIds
    });
    local v13 = nil;
    if l_getFFlagUpdateFriendCarousel10ft_0() then
        v13 = v4.Hooks.useUserProfilesFetch({
            userIds = v10,
            query = v4.Queries.userProfilesCombinedAndPlatformByUserIds
        });
    end;
    v1.useEffect(function()
        local v14 = nil;
        if not (not v9 or not v8) then
            v14 = v8:observeEvent("UserProfileNotifications", function(v15)
                if v15.Type == "PlatformName" then
                    v11({
                        (tostring(v15.VieweeUserId))
                    });
                end;
            end);
        end;
        return function()
            if not (not v14 or not v14.disconnect) then
                v14:disconnect();
            end;
        end;
    end, {
        v9,
        v8
    });
    v1.useEffect(function()
        v12.refetch({
            userIds = v10
        });
        if v13 then
            v13.refetch({
                userIds = v10
            });
        end;
    end, {
        v10,
        v12.refetch,
        if not v13 then nil else v13.refetch
    });
end;


return {
    QueryRefetchManager = require(script.Components.QueryRefetchManager),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "QueryRefetch",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


return {
    ["jest.config"] = script["jest.config"],
    RobloxEventReceiver = require(script.RobloxEventReceiver)
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "RealtimeDelivery",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local v0 = {
    XSmall = "XSmall",
    Small = "Small",
    Medium = "Medium",
    Large = "Large",
    XLarge = "XLarge",
    X2Large = "X2Large",
    Landscape = "Landscape",
    Portrait = "Portrait"
};
local v1 = {
    [v0.XSmall] = {
        Key = v0.XSmall,
        size = v0.XSmall,
        minWidth = 320,
        maxWidth = 360
    },
    [v0.Small] = {
        Key = v0.Small,
        size = v0.Small,
        minWidth = 361,
        maxWidth = 600
    },
    [v0.Medium] = {
        Key = v0.Medium,
        size = v0.Medium,
        minWidth = 601,
        maxWidth = 1140
    },
    [v0.Large] = {
        Key = v0.Large,
        size = v0.Large,
        minWidth = 1141,
        maxWidth = 1520
    },
    [v0.XLarge] = {
        Key = v0.XLarge,
        size = v0.XLarge,
        minWidth = 1521,
        maxWidth = 1920
    },
    [v0.X2Large] = {
        Key = v0.X2Large,
        size = v0.X2Large,
        minWidth = 1920,
        maxWidth = 4096
    }
};
local v2 = {
    [v0.XSmall] = {
        Key = v0.XSmall,
        size = v0.XSmall,
        maxWidth = 360
    },
    [v0.Small] = {
        Key = v0.Small,
        size = v0.Small,
        maxWidth = 600
    },
    [v0.Medium] = {
        Key = v0.Medium,
        size = v0.Medium,
        maxWidth = 1140
    },
    [v0.Large] = {
        Key = v0.Large,
        size = v0.Large,
        maxWidth = 1520
    },
    [v0.XLarge] = {
        Key = v0.XLarge,
        size = v0.XLarge,
        maxWidth = 1920
    },
    [v0.X2Large] = {
        Key = v0.X2Large,
        size = v0.X2Large,
        maxWidth = 4096
    }
};
local v3 = {
    [v0.XSmall] = {
        Key = v0.XSmall,
        size = v0.XSmall,
        minHeight = 320,
        maxHeight = 360
    },
    [v0.Small] = {
        Key = v0.Small,
        size = v0.Small,
        minHeight = 361,
        maxHeight = 600
    },
    [v0.Medium] = {
        Key = v0.Medium,
        size = v0.Medium,
        minHeight = 601,
        maxHeight = 1140
    },
    [v0.Large] = {
        Key = v0.Large,
        size = v0.Large,
        minHeight = 1141,
        maxHeight = 1520
    },
    [v0.XLarge] = {
        Key = v0.XLarge,
        size = v0.XLarge,
        minHeight = 1521,
        maxHeight = 1920
    },
    [v0.X2Large] = {
        Key = v0.X2Large,
        size = v0.X2Large,
        minHeight = 1920,
        maxHeight = 4096
    }
};
local v4 = {
    [v0.XSmall] = {
        Key = v0.XSmall,
        size = v0.XSmall,
        maxHeight = 360
    },
    [v0.Small] = {
        Key = v0.Small,
        size = v0.Small,
        maxHeight = 600
    },
    [v0.Medium] = {
        Key = v0.Medium,
        size = v0.Medium,
        maxHeight = 1140
    },
    [v0.Large] = {
        Key = v0.Large,
        size = v0.Large,
        maxHeight = 1520
    },
    [v0.XLarge] = {
        Key = v0.XLarge,
        size = v0.XLarge,
        maxHeight = 1920
    },
    [v0.X2Large] = {
        Key = v0.X2Large,
        size = v0.X2Large,
        maxHeight = 4096
    }
};
local v5 = {
    {
        Key = v0.Landscape,
        minRatio = 1
    },
    {
        Key = v0.Portrait,
        minRatio = 0
    }
};
local v6 = {
    v2[v0.XSmall],
    v2[v0.Small],
    v2[v0.Medium],
    v2[v0.Large],
    v2[v0.XLarge],
    v2[v0.X2Large]
};
local v7 = {
    v4[v0.XSmall],
    v4[v0.Small],
    v4[v0.Medium],
    v4[v0.Large],
    v4[v0.XLarge],
    v4[v0.X2Large]
};
local v8 = {};
for v9, v10 in v6, nil, nil do
    v8[v10.Key] = v9;
end;
return {
    Enum = v0,
    sizes = v2,
    sizesMinMax = v1,
    sizesY = v4,
    sizesMinMaxY = v3,
    rules = {
        default = v6,
        Y = v7,
        Orientation = v5
    },
    keyIndex = v8,
    getMinWidthFor = function(v11)
        local v12 = v1[v11];
        if v12 == nil then
            return 0;
        else
            return v12.minWidth;
        end;
    end,
    getMinHeightFor = function(v13)
        local v14 = v3[v13];
        if v14 == nil then
            return 0;
        else
            return v14.minHeight;
        end;
    end
};


FindFirstAncestorWithTag = function(v0, v1)
    if v0 == nil then
        return nil;
    elseif not v0:HasTag(v1) then
        return FindFirstAncestorWithTag(v0.Parent, v1);
    else
        return v0;
    end;
end;
return FindFirstAncestorWithTag;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Signal_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Signal;
local v4 = {
    [Enum.Platform.XBoxOne] = true,
    [Enum.Platform.XBox360] = true,
    [Enum.Platform.WiiU] = true,
    [Enum.Platform.PS3] = true,
    [Enum.Platform.PS4] = true,
    [Enum.Platform.PS5] = true,
    [Enum.Platform.Ouya] = true,
    [Enum.Platform.AndroidTV] = true
};
local v5 = false;
local v6 = l_Signal_0.new();
local v7 = nil;
local v8 = nil;
local v9 = {
    left = 0,
    top = 0,
    right = 0,
    bottom = 0
};
diffInsets = function(v10, v11)
    local v12 = true;
    if v10.top == v11.top then
        v12 = true;
        if v10.bottom == v11.bottom then
            v12 = true;
            if v10.left == v11.left then
                v12 = v10.right ~= v11.right;
            end;
        end;
    end;
    return v12;
end;
local v13 = nil;
handleSizeChange = function()
    local v14 = getHardwareSafeAreaInsets();
    if diffInsets(v14, v9) then
        v9 = v14;
        if v13 then
            task.cancel(v13);
        end;
        v13 = task.defer(function()
            v13 = nil;
            v6:fire(v14);
        end);
    end;
end;
init = function()
    if not v5 then
        if not v7 then
            v7 = Instance.new("ScreenGui");
            v7.Name = "_FullscreenTestGui";
            v7.Parent = l_CoreGui_0;
            v7.ScreenInsets = Enum.ScreenInsets.None;
            v7:GetPropertyChangedSignal("AbsoluteSize"):Connect(handleSizeChange);
            v7:GetPropertyChangedSignal("AbsolutePosition"):Connect(handleSizeChange);
        end;
        if not v8 then
            v8 = Instance.new("ScreenGui");
            v8.Name = "_DeviceTestGui";
            v8.Parent = l_CoreGui_0;
            v8.ScreenInsets = Enum.ScreenInsets.DeviceSafeInsets;
            v8:GetPropertyChangedSignal("AbsoluteSize"):Connect(handleSizeChange);
            v8:GetPropertyChangedSignal("AbsolutePosition"):Connect(handleSizeChange);
        end;
        handleSizeChange();
        v5 = true;
        return ;
    else
        return ;
    end;
end;
getHardwareSafeAreaInsets = function()
    local l_AbsolutePosition_0 = v7.AbsolutePosition;
    local l_AbsoluteSize_0 = v7.AbsoluteSize;
    local l_AbsolutePosition_1 = v8.AbsolutePosition;
    local v18 = l_AbsolutePosition_1 - l_AbsolutePosition_0;
    local v19 = (l_AbsolutePosition_0 + v7.AbsoluteSize) - (l_AbsolutePosition_1 + v8.AbsoluteSize);
    if v4[l_UserInputService_0:GetPlatform()] then
        local v20 = l_AbsoluteSize_0 * 0.05;
        v18 = v18 + v20;
        v19 = v19 + v20;
    end;
    return {
        left = math.round(v18.X),
        top = math.round(v18.Y),
        right = math.round(v19.X),
        bottom = math.round(v19.Y)
    };
end;
return {
    connect = function(_, v22)
        init();
        return v6:connect(v22);
    end,
    deviceInsets = function()
        init();
        return v9;
    end,
    diffInsets = diffInsets,
    hasExtraPlatformInset = function()
        return v4[l_UserInputService_0:GetPlatform()];
    end
};


local l_VRService_0 = game:GetService("VRService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Signal_0 = require(game:GetService("CorePackages").Workspace.Packages.AppCommonLib).Signal;
local v3 = {
    Pointer = "Pointer",
    Touch = "Touch",
    Directional = "Directional"
};
local v4 = {
    [Enum.UserInputType.MouseButton1] = v3.Pointer,
    [Enum.UserInputType.MouseButton2] = v3.Pointer,
    [Enum.UserInputType.MouseButton3] = v3.Pointer,
    [Enum.UserInputType.MouseWheel] = v3.Pointer,
    [Enum.UserInputType.MouseMovement] = v3.Pointer,
    [Enum.UserInputType.Keyboard] = v3.Pointer,
    [Enum.UserInputType.TextInput] = v3.Pointer,
    [Enum.UserInputType.Gamepad1] = v3.Directional,
    [Enum.UserInputType.Gamepad2] = v3.Directional,
    [Enum.UserInputType.Gamepad3] = v3.Directional,
    [Enum.UserInputType.Gamepad4] = v3.Directional,
    [Enum.UserInputType.Gamepad5] = v3.Directional,
    [Enum.UserInputType.Gamepad6] = v3.Directional,
    [Enum.UserInputType.Gamepad7] = v3.Directional,
    [Enum.UserInputType.Gamepad8] = v3.Directional,
    [Enum.UserInputType.Touch] = v3.Touch,
    [Enum.UserInputType.None] = v3.Pointer
};
local v5 = l_Signal_0.new();
local v6 = {
    preferred = nil,
    last = nil
};
local v7 = {
    [Enum.Platform.XBoxOne] = true,
    [Enum.Platform.XBox360] = true,
    [Enum.Platform.WiiU] = true,
    [Enum.Platform.PS3] = true,
    [Enum.Platform.PS4] = true,
    [Enum.Platform.PS5] = true,
    [Enum.Platform.Ouya] = true,
    [Enum.Platform.AndroidTV] = true
};
local v8 = {
    [Enum.Platform.IOS] = true,
    [Enum.Platform.Android] = true
};
getPreferredInput = function()
    local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
    local l_VREnabled_0 = l_VRService_0.VREnabled;
    local v11 = v7[l_l_UserInputService_0_Platform_0] or false;
    local v12 = v8[l_l_UserInputService_0_Platform_0] or false;
    if not l_VREnabled_0 then
        if not v11 then
            if not v12 then
                return v3.Pointer;
            else
                return v3.Touch;
            end;
        else
            return v3.Directional;
        end;
    else
        return v3.Pointer;
    end;
end;
updatePreferredInput = function()
    local v13 = getPreferredInput();
    if v13 ~= v6.preferred then
        v6.preferred = v13;
        if v6.last == nil then
            v6.last = v6.preferred;
        end;
        v5:fire();
    end;
end;
updateLastInput = function()
    local v14 = v4[l_UserInputService_0:GetLastInputType()];
    if v14 and v14 ~= v6.last then
        v6.last = v14;
        v5:fire();
    end;
end;
init = function()
    l_UserInputService_0.GamepadConnected:Connect(updatePreferredInput);
    l_UserInputService_0:GetPropertyChangedSignal("KeyboardEnabled"):Connect(updatePreferredInput);
    l_UserInputService_0:GetPropertyChangedSignal("MouseEnabled"):Connect(updatePreferredInput);
    l_UserInputService_0:GetPropertyChangedSignal("TouchEnabled"):Connect(updatePreferredInput);
    l_UserInputService_0:GetPropertyChangedSignal("GamepadEnabled"):Connect(updatePreferredInput);
    l_UserInputService_0.LastInputTypeChanged:Connect(updateLastInput);
    updateLastInput();
    updatePreferredInput();
end;
init();
return {
    Enum = v3,
    preferredInputRules = {
        {
            Key = v3.Directional,
            preferredInput = v3.Directional
        },
        {
            Key = v3.Pointer,
            preferredInput = v3.Pointer
        },
        {
            Key = v3.Touch,
            preferredInput = v3.Touch
        }
    },
    lastInputRules = {
        {
            Key = v3.Directional,
            lastInput = v3.Directional
        },
        {
            Key = v3.Pointer,
            lastInput = v3.Pointer
        },
        {
            Key = v3.Touch,
            lastInput = v3.Touch
        }
    },
    connect = function(v15)
        return v5:connect(v15);
    end,
    preferred = function()
        return v6.preferred;
    end,
    last = function()
        return v6.last;
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local l_VRService_0 = game:GetService("VRService");
local v3 = require(script.Parent.CommonConfigs.StandardBreakpoints);
local v4 = require(script.Parent.InputMode);
local l_Signal_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Signal;
local v6 = require(script.Parent.FindFirstAncestorWithTag);
local v7 = setmetatable({}, {
    __mode = "k"
});
local v8 = {};
v8.__index = v8;
local l_rules_0 = v3.rules;
local v10 = {};
v10.__index = v10;
v10.new = function(v11)
    local v12 = {
        _hasSizeRules = false,
        _hasInputRules = false,
        _config = v11 or {},
        _currentRule = {
            Key = "Default"
        },
        _currentKey = "Default"
    };
    local v13 = false;
    local v14 = false;
    for _, v16 in v11, nil, nil do
        local l_v13_0 = v13;
        if not l_v13_0 then
            l_v13_0 = true;
            if v16.minWidth == nil then
                l_v13_0 = true;
                if v16.maxWidth == nil then
                    l_v13_0 = true;
                    if v16.minHeight == nil then
                        l_v13_0 = true;
                        if v16.maxHeight == nil then
                            l_v13_0 = true;
                            if v16.maxRatio == nil then
                                l_v13_0 = v16.minRatio ~= nil;
                            end;
                        end;
                    end;
                end;
            end;
        end;
        v13 = l_v13_0;
        l_v13_0 = v14;
        if not l_v13_0 then
            l_v13_0 = true;
            if v16.preferredInput == nil then
                l_v13_0 = v16.lastInput ~= nil;
            end;
        end;
        v14 = l_v13_0;
    end;
    v12._hasSizeRules = v13;
    v12._hasInputRules = v14;
    return (setmetatable(v12, v10));
end;
v10.hasSizeRules = function(v18)
    return v18._hasSizeRules;
end;
v10.hasInputRules = function(v19)
    return v19._hasInputRules;
end;
v10.currentRule = function(v20)
    return v20._currentRule;
end;
v10.currentKey = function(v21)
    return v21._currentKey;
end;
v10.resolve = function(v22, v23, v24, v25, v26, v27)
    local v28 = "Default";
    local v29 = {};
    local v30 = v23 / v24;
    for _, v32 in v22._config, nil, nil do
        local v33;
        if v32.minWidth ~= nil then
            v33 = false;
            if not (v32.minWidth <= v23) then
                goto label0;
            end;
        end;
        if v32.maxWidth ~= nil then
            v33 = false;
            if not (v23 <= v32.maxWidth) then
                goto label0;
            end;
        end;
        if v32.minHeight ~= nil then
            v33 = false;
            if not (v32.minHeight <= v24) then
                goto label0;
            end;
        end;
        if v32.maxHeight ~= nil then
            v33 = false;
            if not (v24 <= v32.maxHeight) then
                goto label0;
            end;
        end;
        if v32.minRatio ~= nil then
            v33 = false;
            if not (v32.minRatio <= v30) then
                goto label0;
            end;
        end;
        if v32.maxRatio ~= nil then
            v33 = false;
            if not (v30 <= v32.maxRatio) then
                goto label0;
            end;
        end;
        if v32.preferredInput ~= nil then
            v33 = false;
            if not (v25 == v32.preferredInput) then
                goto label0;
            end;
        end;
        if v32.lastInput ~= nil then
            v33 = false;
            if not (v26 == v32.lastInput) then
                goto label0;
            end;
        end;
        v33 = true;
        if v32.spatial ~= nil then
            v33 = v27 == v32.spatial;
        end;
        ::label0::;
        if v33 then
            v29 = v32;
            v28 = v32.Key;
            break;
        end;
    end;
    if v28 ~= v22._currentKey then
        v22._currentKey = v28;
        v22._currentRule = v29;
        return true;
    else
        return false;
    end;
end;
v8.new = function()
    local v34 = {
        _layerCollectorSizeConnection = nil,
        _inputModeConnection = nil,
        _vrEnabledConnection = nil,
        _vrEnabled = l_VRService_0.VREnabled,
        _changed = l_Signal_0.new(),
        _absoluteSize = Vector2.zero,
        _hasInputRules = false,
        _hasSizeRules = false,
        _refCount = 1,
        _configResolvers = {
            default = {}
        }
    };
    local v35 = setmetatable(v34, v8);
    v34._inputModeConnection = v4.connect(function()
        if v34._hasInputRules then
            v35:resolve();
        end;
    end);
    v34._vrEnabledConnection = l_VRService_0:GetPropertyChangedSignal("VREnabled"):Connect(function()
        v34._vrEnabled = l_VRService_0.VREnabled;
        v35:resolve();
    end);
    return v35;
end;
v8.incRef = function(v36)
    v36._refCount = v36._refCount + 1;
end;
v8.destroy = function(v37)
    if v37._refCount > 1 then
        v37._refCount = v37._refCount - 1;
        return ;
    else
        if v37._layerCollectorSizeConnection then
            v37._layerCollectorSizeConnection:Disconnect();
            v37._layerCollectorSizeConnection = nil;
        end;
        if v37._inputModeConnection then
            v37._inputModeConnection:disconnect();
            v37._inputModeConnection = nil;
        end;
        if v37._vrEnabledConnection then
            v37._vrEnabledConnection:Disconnect();
            v37._vrEnabledConnection = nil;
        end;
        v37._changed = nil;
        for v38, v39 in v7, nil, nil do
            if v39 == v37 then
                v7[v38] = nil;
            end;
        end;
        return ;
    end;
end;
v8.connect = function(v40, v41)
    if v40._changed == nil then
        error("Connecting to dead signal");
    end;
    return v40._changed:connect(v41);
end;
v8.currentRule = function(v42, v43)
    return v42._configResolvers[v43 or "default"]:currentRule();
end;
v8.currentKey = function(v44, v45)
    return v44._configResolvers[v45 or "default"]:currentKey();
end;
v8.updateAbsoluteSize = function(v46, v47)
    local l_AbsoluteSize_0 = v47.AbsoluteSize;
    if v47:isA("LayerCollector") then
        local l_status_0, l_result_0 = pcall(function()
            return v47.IgnoreGuiInset;
        end);
        if not (not l_status_0 or not l_result_0) then
            local l_l_GuiService_0_GuiInset_0, _ = l_GuiService_0:GetGuiInset();
            l_AbsoluteSize_0 = l_AbsoluteSize_0 + l_l_GuiService_0_GuiInset_0;
        end;
    end;
    if not (l_AbsoluteSize_0.X == v46._absoluteSize.X) or l_AbsoluteSize_0.Y ~= v46._absoluteSize.Y then
        v46._absoluteSize = l_AbsoluteSize_0;
        if v46._hasSizeRules then
            v46:resolve();
        end;
    end;
end;
v8.resolve = function(v53)
    if v53._configResolvers then
        local v54 = v53._absoluteSize.X or 1;
        local v55 = v53._absoluteSize.Y or 1;
        local v56 = v4.preferred();
        local v57 = v4.last();
        local l__vrEnabled_0 = v53._vrEnabled;
        local v59 = false;
        for _, v61 in v53._configResolvers, nil, nil do
            if v61:resolve(v54, v55, v56, v57, l__vrEnabled_0) then
                v59 = true;
            end;
        end;
        if v59 then
            v53._changed:fire();
        end;
        return ;
    else
        return ;
    end;
end;
is_array = function(v62)
    local v63 = false;
    if type(v62) == "table" then
        v63 = v62[1] ~= nil;
    end;
    return v63;
end;
v8.setConfig = function(v64, v65)
    if is_array(v65) then
        v65 = {
            default = v65
        };
    end;
    local v66 = false;
    local v67 = false;
    local v68 = {};
    if v65 then
        for v69, v70 in v65, nil, nil do
            v68[v69] = v10.new(v70);
            v66 = v66 or v68[v69]:hasSizeRules();
            v67 = v67 or v68[v69]:hasInputRules();
        end;
    end;
    v64._hasInputRules = v67;
    v64._hasSizeRules = v66;
    v64._configResolvers = v68;
    v64:resolve();
end;
v8.setLocalInstance = function(v71, v72, v73)
    if typeof(v72) ~= "Instance" then
        error("setLocalInstance arg1 expects Instance");
        return ;
    else
        local v74 = nil;
        v74 = if typeof(v73) == "string" then v6(v72, v73) or v72 else if typeof(v73) == "Instance" then v73 else v72:FindFirstAncestorWhichIsA("LayerCollector");
        if v74 == nil then
            v74 = v72;
        end;
        if v71._layerCollectorSizeConnection then
            v71._layerCollectorSizeConnection:Disconnect();
            v71._layerCollectorSizeConnection = nil;
        end;
        if v74 then
            v71._layerCollectorSizeConnection = v74:GetPropertyChangedSignal("AbsoluteSize"):Connect(function()
                v71:updateAbsoluteSize(v74);
            end);
            v71:updateAbsoluteSize(v74);
        end;
        return ;
    end;
end;
return {
    DefaultKey = "Default",
    bindContainer = function(v75, v76)
        local v77 = v7[v75];
        local v78 = v76 == nil;
        if not v78 or not v77 then
            v77 = v8.new();
            v77:setLocalInstance(v75, v75);
            v77:setConfig(v76 or l_rules_0);
            if v78 then
                v7[v75] = v77;
            end;
            return v77;
        else
            v77:incRef();
            return v77;
        end;
    end
};


local l_Element_0 = require(script.Parent.Parent.Rhodium).Element;
return function(v1, v2)
    local v3 = l_Element_0.new(v1);
    if not v2 then
        v3:click();
    else
        v3:clickWithoutValidation();
    end;
    wait(0);
end;


local l_Parent_0 = script.Parent.Parent;
local l_Element_0 = require(l_Parent_0.Rhodium).Element;
local l_findFirstInstance_0 = require(l_Parent_0.TestUtils).findFirstInstance;
return function(v3, v4)
    local v5 = l_findFirstInstance_0(v3, v4);
    if not v5 then
        return nil;
    else
        return l_Element_0.new("game." .. v5:GetFullName());
    end;
end;


return {
    findFirstInstance = require(script.Parent.TestUtils).findFirstInstance,
    testOnActivated = require(script.testOnActivated),
    findFirstElement = require(script.findFirstElement),
    countInstances = require(script.countInstances),
    typeTextIntoElement = require(script.typeTextIntoElement),
    typeTextIntoInstance = require(script.typeTextIntoInstance),
    clickInstance = require(script.clickInstance)
};


local l_CoreGui_0 = game:GetService("CoreGui");
local l_Parent_0 = script.Parent.Parent;
local v2 = require(l_Parent_0.Rhodium);
local v3 = require(l_Parent_0.Roact);
local l_Element_0 = v2.Element;
local l_XPath_0 = v2.XPath;
local l_mockStyle_0 = require(l_Parent_0.UnitTestHelpers).mockStyle;
return function(v7)
    local v8 = false;
    local v9 = v3.mount(l_mockStyle_0((v3.createElement("ScreenGui", {}, {
        buttonElement = v3.createElement(v7, {
            onActivated = function()
                v8 = true;
            end
        })
    }))), l_CoreGui_0, "TestRoot");
    local v10 = l_Element_0.new((l_XPath_0.new("game.CoreGui.TestRoot.buttonElement")));
    assert(v10:getRbxInstance() ~= nil, "button was nil");
    v10:clickWithoutValidation();
    assert(v8 == true, "button was not activated");
    v3.unmount(v9);
end;


local l_Element_0 = require(script.Parent.Parent.Rhodium).Element;
local v1 = require(script.Parent.typeTextIntoElement);
return function(v2, v3)
    v1(l_Element_0.new(v2), v3);
end;


return {
    AppAppLifecycleService = require(script.AppAppLifecycleService),
    AppBrowserService = require(script.AppBrowserService),
    AppContentProvider = require(script.AppContentProvider),
    AppEventIngestService = require(script.AppEventIngestService),
    AppGame = require(script.AppGame),
    AppGuiService = require(script.AppGuiService),
    AppLinking = require(script.AppLinking),
    AppLogging = require(script.AppLogging),
    AppNotificationService = require(script.AppNotificationService),
    AppOmniRecommendationsRequest = require(script.AppOmniRecommendationsRequest),
    AppPermissions = require(script.AppPermissions),
    AppPlatformService = require(script.AppPlatformService),
    AppPrefetch = require(script.AppPrefetch),
    AppRunService = require(script.AppRunService),
    AppSessionService = require(script.AppSessionService),
    AppStartupMessageService = require(script.AppStartupMessageService),
    AppStartupSequenceTag = require(script.AppStartupSequenceTag),
    AppSystemInfo = require(script.AppSystemInfo),
    AppUpdateService = require(script.AppUpdateService),
    AppUserGameSettings = require(script.AppUserGameSettings),
    AppUserInputService = require(script.AppUserInputService),
    RoactAnalytics = require(script.RoactAnalytics),
    RoactAnalyticsCommonGameEvents = require(script.RoactAnalyticsCommonGameEvents),
    RoactNetworking = require(script.RoactNetworking)
};


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Roact);
local l_Immutable_0 = require(l_Parent_0.AppCommonLib).Immutable;
local l_Symbol_0 = require(l_Parent_0.AppCommonLib).Symbol;
local v4 = require(script.Parent.RoactServicesContext);
local _ = require(script.Parent.RoactServicesTypes);
local v6 = v1.PureComponent:extend("ServiceProvider");
local v7 = {
    ServiceProvider = v6
};
v6.init = function(v8, v9)
    local v10 = {};
    if not (not v9 or not v9.services) then
        assert(v9.services, "Expected some services to connect, found none");
        assert(type(v9.services) == "table", "Expected the provided services to be a map");
        for v11, v12 in pairs(v9.services) do
            if type(v11) == "table" then
                v11.set(v10, v12);
            end;
        end;
    end;
    v8:setState({
        services = v10
    });
end;
v6.render = function(v13)
    return v1.createElement(v4.Provider, {
        value = v13.state.services
    }, v1.oneChild(v13.props[v1.Children]));
end;
v7.createService = function(v14)
    assert(type(v14) == "string", "Expected serviceName to be a string");
    local v15 = l_Symbol_0.named(v14);
    return {
        get = function(v16)
            if not v16 then
                return nil;
            else
                return v16[v15];
            end;
        end,
        set = function(v17, v18)
            v17[v15] = v18;
        end
    };
end;
v7.connect = function(v19)
    assert(v19 ~= nil, "Expected some services to connect, found none.");
    return function(v20)
        assert(v20 ~= nil, "Expected a component to connect, found none.");
        local v21 = {};
        local v22 = v1.PureComponent:extend((("Services(%s)"):format((tostring(v20)))));
        v22.init = function(_, v24)
            for v25, v26 in pairs(v19) do
                assert(type(v25) == "string", string.format("serviceMap must be indexed by strings, not %s", (type(v25))));
                assert(type(v26) == "table", "serviceMap must have a service created by createService()");
                assert(type(v26.get) == "function", "serviceMap must have a service created by createService()");
                assert(v24.innerProps[v25] == nil, "Naming conflict with prop : " .. v25);
                v21[v25] = v26.get(v24.services);
            end;
        end;
        v22.render = function(v27)
            return v1.createElement(v20, (l_Immutable_0.JoinDictionaries(v27.props.innerProps, v21)));
        end;
        local v28 = v1.PureComponent:extend("ConnectionWrapper");
        v28.render = function(v29)
            return v1.createElement(v4.Consumer, {
                render = function(v30)
                    return v1.createElement(v22, {
                        innerProps = v29.props,
                        services = v30
                    });
                end
            });
        end;
        return v28;
    end;
end;
return v7;


local v0 = require(script.Parent.Parent.Roact);
local _ = require(script.Parent.RoactServicesTypes);
return (v0.createContext(nil));


local _ = require(script.RoactServicesTypes);
return {
    RoactServices = require(script.RoactServices),
    RoactServicesContext = require(script.RoactServicesContext)
};


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
return function(v1)
    local v2 = v1.providers or {};
    local v3 = {
        PageWrapper = v0.createElement("Folder", {}, v1.children)
    };
    for v4 = #v2, 1, -1 do
        local v5 = v2[v4];
        v3 = {
            ProviderChildren = v0.createElement(v5.class, v5.props, v3)
        };
    end;
    return v0.createElement("Folder", nil, v3);
end;


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
return function(v1)
    return function(v2)
        return v0.createElement(v1(), v2);
    end;
end;


return {
    ProviderContainer = require(script.ProviderContainer),
    createLazyComponent = require(script.createLazyComponent)
};


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local l_GetFFlagMigrateRoactUtilsToReactUtils_0 = require(l_Parent_0.SharedFlags).GetFFlagMigrateRoactUtilsToReactUtils;
local v2 = require(l_Parent_0.ReactUtils);
if not l_GetFFlagMigrateRoactUtilsToReactUtils_0() then
    local v3 = require(l_Parent_0.Roact);
    local v4 = v3.Component:extend("ExternalEventConnection");
    v4.init = function(v5)
        v5.connection = nil;
    end;
    v4.render = function(v6)
        return v3.oneChild(v6.props[v3.Children]);
    end;
    v4.didMount = function(v7)
        v7.connection = v7.props.event:Connect(v7.props.callback);
    end;
    v4.didUpdate = function(v8, v9)
        if not (v8.props.event == v9.event) or v8.props.callback ~= v9.callback then
            v8.connection:Disconnect();
            v8.connection = v8.props.event:Connect(v8.props.callback);
        end;
    end;
    v4.willUnmount = function(v10)
        if v10.connection then
            v10.connection:Disconnect();
            v10.connection = nil;
        end;
    end;
    return v4;
else
    return v2.EventConnection;
end;


return {
    useDispatch = require(script.useDispatch),
    useSelector = require(script.useSelector),
    useStore = require(script.useStore)
};


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.RoactRodux);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.ReactRoblox);
local l_act_0 = v3.act;
return function(v5, v6, v7)
    local v8 = {};
    local function v10(v9)
        v8.current = v6(v9);
        return nil;
    end;
    local function v13(v11)
        local v12 = v2.createElement(v10, v11);
        if v5 ~= nil then
            v12 = v2.createElement(v1.StoreProvider, {
                store = v5
            }, {
                Wrapper = v12
            });
        end;
        return v12;
    end;
    local v14 = v3.createRoot((Instance.new("Frame")));
    l_act_0(function()
        v14:render((v13(v7 or {})));
    end);
    return {
        result = v8,
        rerender = function(v15)
            l_act_0(function()
                v14:render((v13(v15)));
            end);
        end,
        cleanup = function()
            v14:unmount();
        end
    };
end;


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
local v1 = require(script.Parent.useStore);
return function()
    local v2 = v1();
    return (v0.useCallback(function(...)
        return v2:dispatch(...);
    end, {
        v2
    }));
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.ArgCheck);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Dash);
local v4 = require(script.Parent.useStore);
local function v7(v5, v6)
    return v5 == v6;
end;
useSelectorWithStore = function(v8, v9, v10)
    local _, v13 = v2.useReducer(function(v11)
        return v11 + 1;
    end, 0);
    local v14 = v2.useRef(nil);
    local v15 = v2.useRef(nil);
    local v16 = v2.useRef(nil);
    local v17 = v2.useRef(nil);
    local v18 = v10:getState();
    local v19 = nil;
    local l_status_0, l_result_0 = pcall(function()
        if (v8 == v15.current and v18 == v16.current) and not v14.current then
            v19 = v17.current;
            return ;
        else
            local v20 = v8(v18);
            if v17.current ~= nil and v9(v20, v17.current) then
                v19 = v17.current;
                return ;
            else
                v19 = v20;
                return ;
            end;
        end;
    end);
    if not l_status_0 then
        if v14.current then
            l_result_0 = string.format("%s\nThe error may be correlated with this previous error:\n%s\n\n", tostring(l_result_0), (tostring(v14.current)));
        end;
        error(l_result_0);
    end;
    v2.useLayoutEffect(function()
        v15.current = v8;
        v16.current = v18;
        v17.current = v19;
        v14.current = nil;
    end);
    v2.useLayoutEffect(function()
        local v27 = v10.changed:connect(function(v23)
            local l_status_1, l_result_1 = pcall(function()
                if v23 == v16.current then
                    return false;
                else
                    assert(v15.current, "latestSelector");
                    local v24 = v15.current(v23);
                    if not v9(v24, v17.current) then
                        v17.current = v24;
                        v16.current = v23;
                        return true;
                    else
                        return false;
                    end;
                end;
            end);
            if not l_status_1 then
                l_result_1 = l_result_1 or "Error";
                v14.current = l_result_1;
            end;
            if l_result_1 then
                v13(nil);
            end;
        end);
        local v28 = v10:getState();
        local l_status_2, l_result_2 = pcall(function()
            if v28 == v16.current then
                return false;
            else
                assert(v15.current, "latestSelector");
                local v29 = v15.current(v28);
                if not v9(v29, v17.current) then
                    v17.current = v29;
                    v16.current = v28;
                    return true;
                else
                    return false;
                end;
            end;
        end);
        if not l_status_2 then
            l_result_2 = l_result_2 or "Error";
            v14.current = l_result_2;
        end;
        if l_result_2 then
            v13(nil);
        end;
        return function()
            v27:disconnect();
        end;
    end, {
        v10
    });
    return v19;
end;
useSelector = function(v32, v33)
    v1.isNotNil(v32, "selector");
    v1.assert(v3.isCallable(v32), "useSelector expects 'selector' to be callable");
    v1.isTypeOrNil(v33, "function", "equalityFn");
    return (useSelectorWithStore(v32, v33 or v7, (v4())));
end;
return useSelector;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.React);
local l_StoreContext_0 = require(l_Parent_0.RoactRodux).StoreContext;
return function()
    local v3 = v1.useContext(l_StoreContext_0);
    assert(v3, "useDispatch and useSelector can only be called from a descendant of the Rodux Store Provider");
    return v3;
end;


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.AppCommonLib).Symbol.named("NilDependency");
return function(...)
    local v1 = {};
    for v2 = 1, select("#", ...) do
        local v3 = select(v2, ...);
        if v3 == nil then
            v3 = v0;
        end;
        v1[v2] = v3;
    end;
    return v1;
end;


return {
    RoactRodux = require(script.RoactRodux),
    dependencyArray = require(script.dependencyArray),
    useSignal = require(script.useSignal),
    useEffectOnce = require(script.useEffectOnce),
    useProperty = require(script.useProperty),
    useExternalEvent = require(script.useExternalEvent),
    useInputType = require(script.useInputType),
    useIsGamepad = require(script.useIsGamepad),
    useEffectOnMount = require(script.useEffectOnMount),
    useDidUpdate = require(script.useDidUpdate),
    useEarlyIsFocused = require(script.useEarlyIsFocused),
    useNavigation = require(script.useNavigation),
    useNavigationFocus = require(script.useNavigationFocus),
    usePrevious = require(script.usePrevious),
    useRouteName = require(script.useRouteName),
    useSelectedTheme = require(script.useSelectedTheme),
    useThrottledCallback = require(script.useThrottledCallback),
    useSelected = require(script.useSelected),
    useGuiState = require(script.useGuiState),
    useHoverState = require(script.useHoverState),
    usePressState = require(script.usePressState)
};


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
return function(v1)
    local v2 = v0.useRef(false);
    local v3 = v0.useRef(false);
    v0.useEffect(function()
        if v2.current then
            if not v3.current then
                v3.current = true;
            end;
            if v1 then
                v1();
            end;
            return ;
        else
            v2.current = true;
            return ;
        end;
    end);
    return v3;
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.RoactNavigation);
local v3 = require(script.Parent.useNavigation);
return function()
    local v4 = v3();
    local v5, v6 = v1.useState(v4.isFocused());
    v1.useEffect(function()
        v6(v4.isFocused());
        local v7 = v4.addListener(v2.Events.WillFocus, function()
            v6(true);
        end);
        local v8 = v4.addListener(v2.Events.WillBlur, function()
            v6(false);
        end);
        return function()
            v7.remove();
            v8.remove();
        end;
    end, {
        v4
    });
    return v5;
end;


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
return function(v1)
    v0.useEffect(function()
        v1();
    end, {});
end;


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
local v1 = require(script.Parent.dependencyArray);
return function(v2, v3)
    local v4 = v0.useRef(false);
    v0.useEffect(function()
        if not (not v3 or v4.current) then
            v2();
            v4.current = true;
        end;
    end, v1(v3));
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local l_GetFFlagMigrateRoactUtilsToReactUtils_0 = require(l_Parent_0.SharedFlags).GetFFlagMigrateRoactUtilsToReactUtils;
local v2 = require(l_Parent_0.ReactUtils);
if not l_GetFFlagMigrateRoactUtilsToReactUtils_0() then
    local v3 = require(l_Parent_0.React);
    local v4 = require(script.Parent.dependencyArray);
    return function(v5, v6)
        v3.useEffect(function()
            local v7 = v5:Connect(v6);
            return function()
                v7:Disconnect();
            end;
        end, v4(v5, v6));
    end;
else
    return v2.useEventConnection;
end;


local v0 = require(script.Parent.useProperty);
return function(v1)
    return v0(v1, "GuiState");
end;


local v0 = require(script.Parent.useGuiState);
return function(v1)
    return v0(v1) == Enum.GuiState.Hover;
end;


local l_UserInputService_0 = game:GetService("UserInputService");
local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(script.Parent.useExternalEvent);
local l_getInputGroup_0 = require(l_Parent_0.InputType).getInputGroup;
return function(v5)
    local v6 = v5 or l_UserInputService_0;
    local function v7()
        return l_getInputGroup_0((v6:GetLastInputType()));
    end;
    local v8, v9 = v2.useState(v7);
    v3(v6.LastInputTypeChanged, (v2.useCallback(function(v10)
        local v11 = l_getInputGroup_0(v10);
        if v11 ~= nil then
            v9(v11);
        end;
    end)));
    v2.useEffect(function()
        v9(v7());
    end, {});
    return v8;
end;


local l_UserInputService_0 = game:GetService("UserInputService");
local v1 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
local v2 = require(script.Parent.useExternalEvent);
local v3 = require(script.Parent.Parent.isGamepadInput);
return function(v4)
    local v5 = v4 or l_UserInputService_0;
    local function v6()
        return v3((v5:GetLastInputType()));
    end;
    local v7, v8 = v1.useState(v6);
    v2(v5.LastInputTypeChanged, (v1.useCallback(function(v9)
        local v10 = v3(v9);
        if v10 ~= nil then
            v8(v10);
        end;
    end)));
    v1.useEffect(function()
        v8(v6());
    end, {});
    return v7;
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.RoactNavigation);
return function()
    return v1.useContext(v2.Context);
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.RoactNavigation);
local v3 = require(script.Parent.useNavigation);
return function()
    local v4 = v3();
    local v5, v6 = v1.useState(v4.isFocused());
    v1.useEffect(function()
        local v7 = v4.addListener(v2.Events.WillFocus, function()
            v6(true);
        end);
        local v8 = v4.addListener(v2.Events.WillBlur, function()
            v6(false);
        end);
        v6(v4.isFocused());
        return function()
            v7.remove();
            v8.remove();
        end;
    end, {});
    return v5;
end;


local v0 = require(script.Parent.useGuiState);
return function(v1)
    return v0(v1) == Enum.GuiState.Press;
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local l_GetFFlagMigrateRoactUtilsToReactUtils_0 = require(l_Parent_0.SharedFlags).GetFFlagMigrateRoactUtilsToReactUtils;
local v2 = require(l_Parent_0.ReactUtils);
if not l_GetFFlagMigrateRoactUtilsToReactUtils_0() then
    local v3 = require(l_Parent_0.React);
    return function(v4)
        local v5 = v3.useRef(nil);
        v3.useEffect(function()
            v5.current = v4;
        end);
        return v5.current;
    end;
else
    return v2.usePrevious;
end;


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
local v1 = require(script.Parent.dependencyArray);
return function(v2, v3)
    local l_current_0 = v2.current;
    local v5, v6 = v0.useState(function()
        if not l_current_0 then
            return nil;
        else
            return l_current_0[v3];
        end;
    end);
    local v8 = v0.useCallback(function()
        local l_current_1 = v2.current;
        if l_current_1 then
            v6(l_current_1[v3]);
        end;
    end, v1(v2, v3));
    v0.useEffect(function()
        local v9 = nil;
        local l_current_2 = v2.current;
        if l_current_2 then
            v9 = l_current_2:GetPropertyChangedSignal(v3):Connect(v8);
            v8();
        end;
        return function()
            if v9 then
                v9:Disconnect();
            end;
        end;
    end, v1(l_current_0, v3, v8));
    return v5;
end;


local v0 = require(script.Parent.useNavigation);
return function()
    return v0().state.routeName;
end;


local l_GuiService_0 = game:GetService("GuiService");
local v1 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
local function _(v2)
    if v2.current == nil then
        return false;
    else
        local v3 = true;
        if l_GuiService_0.SelectedCoreObject ~= v2.current then
            v3 = l_GuiService_0.SelectedObject == v2.current;
        end;
        return v3;
    end;
end;
return function(v5)
    local v8, v9 = v1.useState(function()
        local l_v5_0 = v5;
        if l_v5_0.current == nil then
            return false;
        else
            local v7 = true;
            if l_GuiService_0.SelectedCoreObject ~= l_v5_0.current then
                v7 = l_GuiService_0.SelectedObject == l_v5_0.current;
            end;
            return v7;
        end;
    end);
    v1.useEffect(function()
        local l_v9_0 = v9;
        local l_v5_1 = v5;
        local v12;
        if l_v5_1.current == nil then
            v12 = false;
        else
            v12 = true;
            if l_GuiService_0.SelectedCoreObject ~= l_v5_1.current then
                v12 = l_GuiService_0.SelectedObject == l_v5_1.current;
            end;
        end;
        l_v9_0(v12);
    end, {
        v5
    });
    v1.useEffect(function()
        local v13 = {};
        local l_current_0 = v5.current;
        if l_current_0 then
            table.insert(v13, l_current_0.SelectionGained:Connect(function()
                v9(true);
            end));
            table.insert(v13, l_current_0.SelectionLost:Connect(function()
                v9(false);
            end));
        end;
        return function()
            for _, v16 in ipairs(v13) do
                v16:Disconnect();
            end;
        end;
    end, {
        v5
    });
    return v8;
end;


local l_NotificationService_0 = game:GetService("NotificationService");
local v1 = require(script:FindFirstAncestor("RoactUtils").Parent.React);
return function()
    local v2, v3 = v1.useState(string.lower(l_NotificationService_0.SelectedTheme));
    v1.useEffect(function()
        local v4 = l_NotificationService_0:GetPropertyChangedSignal("SelectedTheme"):Connect(function()
            v3(string.lower(l_NotificationService_0.SelectedTheme));
        end);
        return function()
            v4:Disconnect();
        end;
    end);
    return v2;
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.React);
local _ = require(l_Parent_0.AppCommonLib);
local v3 = require(script.Parent.dependencyArray);
return function(v4, v5)
    v1.useEffect(function()
        if v4 then
            assert(v4 ~= nil, "signal is not nil");
            local v6 = v4:connect(v5);
            return function()
                v6:disconnect();
            end;
        else
            return ;
        end;
    end, v3(v4, v5));
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.Promise);
return function(v3, v4)
    local v5 = v1.useRef(v3);
    local v6 = v1.useRef(v4);
    v5.current = v3;
    v6.current = v4;
    local v7 = v1.useRef(nil);
    local v8 = v1.useRef(0);
    local v11 = v1.useCallback(function()
        if not v7.current then
            local v9 = (v8.current + (v6.current or 0)) - tick();
            local function v10()
                v5.current();
                v8.current = tick();
                v7.current = nil;
            end;
            if v9 > 0 then
                v7.current = v2.delay(v9):andThen(v10);
                return ;
            else
                v5.current();
                v8.current = tick();
                v7.current = nil;
                return ;
            end;
        else
            return ;
        end;
    end);
    v1.useEffect(function()
        return function()
            local l_current_0 = v7.current;
            if l_current_0 then
                l_current_0:cancel();
                v5.current();
            end;
        end;
    end, {});
    return v11;
end;


return {
    Components = require(script.Components),
    Hooks = require(script.Hooks),
    ExternalEventConnection = require(script.ExternalEventConnection),
    validatePropsWithForwardRef = require(script.validatePropsWithForwardRef),
    isGamepadInput = require(script.isGamepadInput),
    wasLastInputGamepad = require(script.wasLastInputGamepad),
    withIsGamepadInput = require(script.withIsGamepadInput)
};


local l_Parent_0 = script.Parent.Parent;
local l_InputTypeConstants_0 = require(l_Parent_0.InputType).InputTypeConstants;
local l_getInputGroup_0 = require(l_Parent_0.InputType).getInputGroup;
return function(v3)
    return l_getInputGroup_0(v3) == l_InputTypeConstants_0.Gamepad;
end;


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "RoactUtils",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local v0 = require(script:FindFirstAncestor("RoactUtils").Parent.Roact);
return function(v1)
    v1.forwardRef = v1[v0.Ref];
    v1[v0.Ref] = nil;
    return v1;
end;


local l_UserInputService_0 = game:GetService("UserInputService");
local v1 = require(script.Parent.isGamepadInput);
return function()
    return v1((l_UserInputService_0:GetLastInputType()));
end;


local l_Parent_0 = script:FindFirstAncestor("RoactUtils").Parent;
local v1 = require(l_Parent_0.React);
local v2 = require(l_Parent_0.Dash);
local v3 = require(script.Parent.Hooks.useIsGamepad);
return function(v4)
    return function(v5)
        return v1.createElement(v4, v2.join(v5, {
            isGamepadInput = v3()
        }));
    end;
end;


return {
    initializeApolloClient = require(script.initializeApolloClient),
    ["jest.config"] = script["jest.config"]
};


local l_Parent_0 = script:FindFirstAncestor("RobloxApolloClient").Parent;
local v1 = require(l_Parent_0.ApolloClient);
local v2 = require(l_Parent_0.ApolloLocalState);
local l_GraphQLServer_0 = require(l_Parent_0.GraphQLServer).GraphQLServer;
local l_ApolloClient_0 = v1.ApolloClient;
local l_HttpLink_0 = v1.HttpLink;
local l_InMemoryCache_0 = v1.InMemoryCache;
local l_typePolicies_0 = v2.typePolicies;
initalizeApolloClient = function(v8)
    local v9 = l_GraphQLServer_0.new(v8);
    return (l_ApolloClient_0.new({
        link = l_HttpLink_0.new({
            uri = "/api",
            fetch = function(_, v11)
                return v9:fetchLocal(v11);
            end
        }),
        cache = l_InMemoryCache_0.new({
            typePolicies = l_typePolicies_0
        })
    }));
end;
return initalizeApolloClient;


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "RobloxApolloClient",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local l_GuiService_0 = game:GetService("GuiService");
local v1 = require(script.Parent.GetImageSetData);
local v2 = require(script.Parent.GetImageSetPathPattern);
local _ = require(script.Parent.types);
return function(v4, v5)
    local v6 = v1(v5 or l_GuiService_0:GetResolutionScale())[v4];
    if v6 == nil then
        return nil;
    else
        return {
            Image = v2(v6.ImageSet),
            ImageRectSize = v6.ImageRectSize,
            ImageRectOffset = v6.ImageRectOffset
        };
    end;
end;