local l_CoreGui_0 = game:GetService("CoreGui");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_StarterPlayer_0 = game:GetService("StarterPlayer");
local l_Common_0 = l_CoreGui_0:FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Common");
local l_game_EngineFeature_0 = game:GetEngineFeature("AvatarJointUpgradeFeature");
local l_game_EngineFeature_1 = game:GetEngineFeature("AvatarJointUpgradeDefaultOnFeature");
local function _()
    if not l_game_EngineFeature_0 then
        return false;
    elseif not l_game_EngineFeature_1 then
        return l_StarterPlayer_0.AvatarJointUpgrade == Enum.AvatarJointUpgrade.Enabled;
    else
        return l_StarterPlayer_0.AvatarJointUpgrade ~= Enum.AvatarJointUpgrade.Disabled;
    end;
end;
local l_RagdollRigging_0 = require(l_Common_0:FindFirstChild("RagdollRigging"));
local l_HumanoidReadyUtil_0 = require(l_Common_0:FindFirstChild("HumanoidReadyUtil"));
local v10 = (function()
    if game:GetEngineFeature("PolicyInfoForServerRobloxOnlyAsyncEnabled") then
        local l_DefaultAvatarDeathType_0 = game:GetService("PolicyService"):GetPolicyInfoForServerRobloxOnlyAsync().DefaultAvatarDeathType;
        if l_DefaultAvatarDeathType_0 == nil then
            error("PolicyService did not have death type policy");
        end;
        return l_DefaultAvatarDeathType_0;
    else
        return game:DefineFastString("DeathTypeValue", "Classic");
    end;
end)();
local l_StringValue_0 = Instance.new("StringValue");
l_StringValue_0.Name = "DeathType";
l_StringValue_0.Value = v10;
l_StringValue_0.Parent = l_RobloxReplicatedStorage_0;
if not l_game_EngineFeature_0 and v10 ~= "Ragdoll" then
    return ;
else
    local v12 = {};
    if not l_game_EngineFeature_0 then
        local l_RemoteEvent_0 = Instance.new("RemoteEvent");
        l_RemoteEvent_0.Name = "OnRagdoll";
        l_RemoteEvent_0.OnServerEvent:Connect(function(v14, v15)
            if v15 and v12[v14] == v15 then
                local v16 = v15 and v15.Parent;
                if not (not v16 or not v16:IsA("Model")) then
                    l_RagdollRigging_0.disableMotors(v16, v15.RigType);
                end;
                v12[v14] = nil;
            end;
        end);
        l_RemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
    end;
    l_HumanoidReadyUtil_0.registerHumanoidReady(function(v17, v18, v19)
        if l_game_EngineFeature_0 then
            if not (v19.RigType == Enum.HumanoidRigType.R15) or not (not not l_game_EngineFeature_0 and if l_game_EngineFeature_1 then l_StarterPlayer_0.AvatarJointUpgrade ~= Enum.AvatarJointUpgrade.Disabled else l_StarterPlayer_0.AvatarJointUpgrade == Enum.AvatarJointUpgrade.Enabled) then
                if v10 == "Ragdoll" then
                    l_RagdollRigging_0.createRagdollJoints(v18, v19.RigType, false);
                end;
            else
                l_RagdollRigging_0.createRagdollJoints(v18, v19.RigType, not not l_game_EngineFeature_0 and if l_game_EngineFeature_1 then l_StarterPlayer_0.AvatarJointUpgrade ~= Enum.AvatarJointUpgrade.Disabled else l_StarterPlayer_0.AvatarJointUpgrade == Enum.AvatarJointUpgrade.Enabled);
            end;
        end;
        if v10 ~= "Ragdoll" then
            return ;
        else
            local v20 = nil;
            local function _()
                v20:Disconnect();
                if v12[v17] == v19 then
                    v12[v17] = nil;
                end;
            end;
            v20 = v17.CharacterRemoving:Connect(function(v22)
                if v22 == v18 then
                    v20:Disconnect();
                    if v12[v17] == v19 then
                        v12[v17] = nil;
                    end;
                end;
            end);
            v19.BreakJointsOnDeath = false;
            if not l_game_EngineFeature_0 then
                l_RagdollRigging_0.createRagdollJoints(v18, v19.RigType, not not l_game_EngineFeature_0 and if l_game_EngineFeature_1 then l_StarterPlayer_0.AvatarJointUpgrade ~= Enum.AvatarJointUpgrade.Disabled else l_StarterPlayer_0.AvatarJointUpgrade == Enum.AvatarJointUpgrade.Enabled);
            end;
            v12[v17] = v19;
            if l_game_EngineFeature_0 then
                v19.Died:Connect(function()
                    v12[v17] = nil;
                    local l_Parent_0 = v19.Parent;
                    if not (not l_Parent_0 or not l_Parent_0:IsA("Model")) then
                        l_RagdollRigging_0.disableMotors(l_Parent_0, v19.RigType);
                        if not not l_game_EngineFeature_0 and if l_game_EngineFeature_1 then l_StarterPlayer_0.AvatarJointUpgrade ~= Enum.AvatarJointUpgrade.Disabled else l_StarterPlayer_0.AvatarJointUpgrade == Enum.AvatarJointUpgrade.Enabled then
                            l_RagdollRigging_0.easeNongraphicJointFriction(l_Parent_0, 0.85);
                        end;
                    end;
                end);
            end;
            return ;
        end;
    end);
    return ;
end;


local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_Players_0 = game:GetService("Players");
local v2 = game:GetService("CoreGui"):WaitForChild("RobloxGui", math.huge);
assert(v2 ~= nil, "RobloxGui should exist");
local v3 = require(v2.Modules.Common.Flags.GetFFlagPlayerViewRemoteEnabled);
local v4 = require(v2.Modules.Common.Flags.GetFFlagPlayerViewValidateRequesteeEnabled);
local l_RemoteEvent_0 = Instance.new("RemoteEvent");
l_RemoteEvent_0.Name = "RequestDeviceCameraOrientationCapability";
l_RemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
l_RemoteEvent_0.OnServerEvent:Connect(function(v6, v7)
    local l_OsPlatform_0 = v7.OsPlatform;
    local l_l_RemoteEvent_0_0 = l_RemoteEvent_0;
    local l_v6_0 = v6;
    local l_v7_0 = v7;
    local v12 = true;
    if l_OsPlatform_0 ~= "iOS" then
        v12 = l_OsPlatform_0 == "Android";
    end;
    l_l_RemoteEvent_0_0:FireClient(l_v6_0, l_v7_0, v12);
end);
if v3() then
    local l_RemoteEvent_1 = Instance.new("RemoteEvent");
    l_RemoteEvent_1.Name = "RequestDeviceCameraCFrame";
    l_RemoteEvent_1.Parent = l_RobloxReplicatedStorage_0;
    local l_UnreliableRemoteEvent_0 = Instance.new("UnreliableRemoteEvent");
    l_UnreliableRemoteEvent_0.Name = "ReplicateDeviceCameraCFrame";
    l_UnreliableRemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
    local v15 = {};
    if v4() then
        l_Players_0.PlayerRemoving:Connect(function(v16)
            v15[tostring(v16.UserId)] = nil;
        end);
    end;
    l_RemoteEvent_1.OnServerEvent:Connect(function(v17, v18)
        if not v4() then
            local v19 = tostring(v18);
            if not v15[v19] then
                v15[v19] = {};
            end;
            v15[v19][tostring(v17.UserId)] = os.clock();
            local l_l_Players_0_PlayerByUserId_0 = l_Players_0:GetPlayerByUserId(v18);
            if l_l_Players_0_PlayerByUserId_0 then
                l_RemoteEvent_1:FireClient(l_l_Players_0_PlayerByUserId_0);
            end;
            return ;
        else
            local l_l_Players_0_PlayerByUserId_1 = l_Players_0:GetPlayerByUserId(v18);
            if l_l_Players_0_PlayerByUserId_1 then
                local v22 = tostring(v18);
                if not v15[v22] then
                    v15[v22] = {};
                end;
                v15[v22][tostring(v17.UserId)] = os.clock();
                l_RemoteEvent_1:FireClient(l_l_Players_0_PlayerByUserId_1);
                return ;
            else
                return ;
            end;
        end;
    end);
    l_UnreliableRemoteEvent_0.OnServerEvent:Connect(function(v23, v24, v25)
        local v26 = tostring(v23.UserId);
        if v15[v26] then
            local v27 = {};
            for v28, v29 in v15[v26], nil, nil do
                if os.clock() - v29 > 5 then
                    table.insert(v27, v28);
                else
                    local v30 = tonumber(v28);
                    if v30 then
                        local l_l_Players_0_PlayerByUserId_2 = l_Players_0:GetPlayerByUserId(v30);
                        if l_l_Players_0_PlayerByUserId_2 then
                            l_UnreliableRemoteEvent_0:FireClient(l_l_Players_0_PlayerByUserId_2, v23, v24, v25);
                        end;
                    end;
                end;
            end;
            for _, v33 in v27, nil, nil do
                v15[v26][v33] = nil;
            end;
        end;
    end);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local l_HttpService_0 = game:GetService("HttpService");
local l_Players_0 = game:GetService("Players");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_SocialService_0 = game:GetService("SocialService");
local l_TeleportService_0 = game:GetService("TeleportService");
local v7 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.Common.Url);
local l_RemoteEvent_0 = Instance.new("RemoteEvent");
l_RemoteEvent_0.Name = "ContactListInvokeIrisInvite";
l_RemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
l_RemoteEvent_0.OnServerEvent:Connect(function(v9, v10, v11, v12, v13, v14)
    l_SocialService_0:InvokeIrisInvite(v9, v10, {
        {
            userId = v9.UserId,
            combinedName = v9.DisplayName,
            muted = v13,
            camEnabled = v14
        },
        {
            userId = v11,
            combinedName = v12
        }
    });
end);
local l_RemoteEvent_1 = Instance.new("RemoteEvent");
l_RemoteEvent_1.Name = "ContactListIrisInviteTeleport";
l_RemoteEvent_1.Parent = l_RobloxReplicatedStorage_0;
local v16 = {};
l_Players_0.PlayerRemoving:Connect(function(v17)
    v16[v17.UserId] = nil;
end);
l_RemoteEvent_1.OnServerEvent:Connect(function(v18, v19, v20, v21)
    local v22 = v16[v18.UserId];
    if v22 ~= nil and v22 > 5 then
        return ;
    else
        if v22 == nil then
            v16[v18.UserId] = 1;
        else
            v16[v18.UserId] = v22 + 1;
        end;
        if not ((typeof(v20) == "string" and #v20 <= 1000) and typeof(v21) == "string") or #v21 > 1000 then
            return ;
        else
            local l_TeleportOptions_0 = Instance.new("TeleportOptions");
            if v21 ~= nil then
                l_TeleportOptions_0.ReservedServerAccessCode = v21;
            else
                l_TeleportOptions_0.ServerInstanceId = v20;
            end;
            l_TeleportService_0:TeleportAsync(v19, {
                v18
            }, l_TeleportOptions_0);
            return ;
        end;
    end;
end);
local l_RemoteEvent_2 = Instance.new("RemoteEvent");
l_RemoteEvent_2.Name = "UpdateCurrentCall";
l_RemoteEvent_2.Parent = l_RobloxReplicatedStorage_0;
local v25 = nil;
local v26 = {};
local function v32()
    if v25 ~= nil then
        local v27 = false;
        for _, v29 in pairs(l_Players_0:GetPlayers()) do
            if not (table.find(v25.participants, (tostring(v29.UserId))) ~= nil) then
                v27 = true;
                break;
            end;
        end;
        if v27 then
            for _, v31 in pairs(l_Players_0:GetPlayers()) do
                if table.find(v25.participants, (tostring(v31.UserId))) ~= nil then
                    v31:Kick();
                end;
            end;
            v25 = nil;
        end;
    end;
end;
local _ = function(v33)
    local l_status_0, _ = pcall(function()
        return l_HttpService_0:JSONDecode((l_HttpRbxApiService_0:PostAsyncFullUrl(v7.APIS_URL .. "call/v1/force-terminate-call-rcc", (l_HttpService_0:JSONEncode({
            callId = v33
        })))));
    end);
    return l_status_0;
end;
local function v40(v37)
    if not (typeof(v37) == "table" and v37 ~= nil) or #v37 ~= 2 then
        return false;
    else
        for _, v39 in ipairs(v37) do
            if not (typeof(v39) == "string" and #v39 <= 50) or tonumber(v39) == nil then
                return false;
            end;
        end;
        return true;
    end;
end;
local function v50(v41, v42, v43)
    if (typeof(v42) == "string" and #v42 <= 50) and v40(v43) then
        local l_status_1, _ = pcall(function()
            local v44 = v7.APIS_URL .. "call/v1/verify-valid-call";
            local v45 = {};
            for v46, v47 in ipairs(v43) do
                v45[v46] = tonumber(v47);
            end;
            return l_HttpService_0:JSONDecode((l_HttpRbxApiService_0:PostAsyncFullUrl(v44, (l_HttpService_0:JSONEncode({
                callId = v42,
                userId = v41.UserId,
                instanceId = game.JobId,
                callParticipants = v45
            })))));
        end);
        if not l_status_1 then
            return 400;
        else
            return 200;
        end;
    else
        return 400;
    end;
end;
l_RemoteEvent_2.OnServerEvent:Connect(function(v51, v52)
    if v26[v51.UserId] ~= nil and v26[v51.UserId] > 10 then
        return ;
    else
        if v26[v51.UserId] ~= nil then
            v26[v51.UserId] = v26[v51.UserId] + 1;
        else
            v26[v51.UserId] = 1;
        end;
        local v53 = true;
        if v52 ~= nil then
            v53 = v50(v51, v52.callId, v52.participants) == 200;
        end;
        if v53 then
            if (v25 ~= nil and v52 ~= nil) and v25.callId ~= v52.callId then
                local l_callId_0 = v25.callId;
                local _, _ = pcall(function()
                    return l_HttpService_0:JSONDecode((l_HttpRbxApiService_0:PostAsyncFullUrl(v7.APIS_URL .. "call/v1/force-terminate-call-rcc", (l_HttpService_0:JSONEncode({
                        callId = l_callId_0
                    })))));
                end);
                v32();
            end;
            v25 = v52;
            v32();
            return ;
        else
            v51:Kick();
            return ;
        end;
    end;
end);
l_Players_0.PlayerAdded:Connect(function(_)
    v32();
end);
l_Players_0.PlayerRemoving:Connect(function(v58)
    v26[v58.UserId] = nil;
    if not (not (v25 ~= nil) or not (table.find(v25.participants, (tostring(v58.UserId))) ~= nil)) then
        local l_callId_1 = v25.callId;
        local l_status_3, _ = pcall(function()
            return l_HttpService_0:JSONDecode((l_HttpRbxApiService_0:PostAsyncFullUrl(v7.APIS_URL .. "call/v1/force-terminate-call-rcc", (l_HttpService_0:JSONEncode({
                callId = l_callId_1
            })))));
        end);
        if l_status_3 then
            v25 = nil;
        end;
    end;
end);


local l_Players_0 = game:GetService("Players");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_RemoteEvent_0 = Instance.new("RemoteEvent");
l_RemoteEvent_0.Name = "SetDialogInUse";
l_RemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
local v3 = {};
local function v7(v4, v5, v6)
    if typeof(v5) == "Instance" and v5:IsA("Dialog") then
        if type(v6) ~= "boolean" then
            return ;
        elseif typeof(v4) == "Instance" and v4:IsA("Player") then
            if v5 then
                v5:SetPlayerIsUsing(v4, v6);
                v3[v4] = not not v6 and v5 or nil;
            end;
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
l_Players_0.PlayerRemoving:Connect(function(v8)
    local v9 = v3[v8];
    if v9 then
        v9:SetPlayerIsUsing(v8, false);
        v3[v8] = nil;
    end;
end);
l_RemoteEvent_0.OnServerEvent:Connect(v7);


local v0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui", math.huge).Modules.Common.Constants);
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local v2 = game:DefineFastFlag("GetJoinDataRemoteFunctionEnabled", false);
local l_RemoteFunction_0 = Instance.new("RemoteFunction");
l_RemoteFunction_0.Name = "GetServerType";
l_RemoteFunction_0.Parent = l_RobloxReplicatedStorage_0;
l_RemoteFunction_0.OnServerInvoke = function()
    if game.PrivateServerId ~= "" then
        if game.PrivateServerOwnerId ~= 0 then
            return v0.VIP_SERVER;
        else
            return v0.RESERVED_SERVER;
        end;
    else
        return v0.STANDARD_SERVER;
    end;
end;
if v2 then
    local l_RemoteFunction_1 = Instance.new("RemoteFunction");
    l_RemoteFunction_1.Name = "GetJoinData";
    l_RemoteFunction_1.Parent = l_RobloxReplicatedStorage_0;
    l_RemoteFunction_1.OnServerInvoke = function(v5)
        return v5:GetJoinData();
    end;
end;


local l_HttpService_0 = game:GetService("HttpService");
local l_Players_0 = game:GetService("Players");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local v3 = {};
local v4 = 0;
local l_StringValue_0 = Instance.new("StringValue");
l_StringValue_0.Name = "LeaderstatsOrder";
l_StringValue_0.Parent = l_RobloxReplicatedStorage_0;
updateStats = function()
    l_StringValue_0.Value = l_HttpService_0:JSONEncode(v3);
end;
updateStats();
local function _(v6)
    if not v3[v6] then
        v3[v6] = v4;
        v4 = v4 + 1;
        updateStats();
        return ;
    else
        return ;
    end;
end;
local function v9(v8)
    return ((((v8:IsA("StringValue") or v8:IsA("IntValue")) or v8:IsA("BoolValue")) or v8:IsA("NumberValue")) or v8:IsA("DoubleConstrainedValue")) or v8:IsA("IntConstrainedValue");
end;
local function _(v10)
    return ((v10:IsA("ValueBase") or v10:IsA("Folder")) or v10:IsA("Configuration")) or v10:IsA("Model");
end;
local v12 = {};
local function _(v13, v14)
    if v12[v13] then
        return v12[v13].leaderstats[v14];
    else
        return nil;
    end;
end;
local function v22(v16, v17, v18)
    if v9(v18) then
        local v19 = if v12[v16] then v12[v16].leaderstats[v17] else nil;
        if v19 then
            assert(v19 ~= nil);
            v19.leaderStatNameChanged[v18] = v18:GetPropertyChangedSignal("Name"):Connect(function()
                local l_Name_0 = v18.Name;
                if not v3[l_Name_0] then
                    v3[l_Name_0] = v4;
                    v4 = v4 + 1;
                    updateStats();
                    return ;
                else
                    return ;
                end;
            end);
            local l_Name_1 = v18.Name;
            if not v3[l_Name_1] then
                v3[l_Name_1] = v4;
                v4 = v4 + 1;
                updateStats();
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    else
        return ;
    end;
end;
local function _(v23, v24, v25)
    local v26 = if v12[v23] then v12[v23].leaderstats[v24] else nil;
    if v26 then
        assert(v26 ~= nil);
        if v26.leaderStatNameChanged[v25] then
            v26.leaderStatNameChanged[v25]:Disconnect();
            v26.leaderStatNameChanged[v25] = nil;
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
local function v36(v28, v29)
    if v12[v28] then
        v12[v28].leaderstats[v29] = {
            childAdded = v29.ChildAdded:Connect(function(v30)
                v22(v28, v29, v30);
            end),
            childRemoved = v29.ChildRemoved:Connect(function(v31)
                local l_v28_0 = v28;
                local v33 = if v12[l_v28_0] then v12[l_v28_0].leaderstats[v29] else nil;
                if v33 then
                    assert(v33 ~= nil);
                    if v33.leaderStatNameChanged[v31] then
                        v33.leaderStatNameChanged[v31]:Disconnect();
                        v33.leaderStatNameChanged[v31] = nil;
                        return ;
                    else
                        return ;
                    end;
                else
                    return ;
                end;
            end),
            leaderStatNameChanged = {}
        };
        for _, v35 in v29:GetChildren() do
            v22(v28, v29, v35);
        end;
        return ;
    else
        return ;
    end;
end;
local _ = function(v37)
    for _, v39 in v37, nil, nil do
        v39:Disconnect();
    end;
end;
local _ = function(v41, v42)
    if v12[v41] then
        local v43 = v12[v41].leaderstats[v42];
        if v43 then
            v43.childAdded:Disconnect();
            v43.childRemoved:Disconnect();
            for _, v45 in v43.leaderStatNameChanged, nil, nil do
                v45:Disconnect();
            end;
            v12[v41].leaderstats[v42] = nil;
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
local _ = function(v47, v48)
    if v48.Name == "leaderstats" then
        v36(v47, v48);
        return ;
    elseif v12[v47] then
        local v49 = v12[v47].leaderstats[v48];
        if v49 then
            v49.childAdded:Disconnect();
            v49.childRemoved:Disconnect();
            for _, v51 in v49.leaderStatNameChanged, nil, nil do
                v51:Disconnect();
            end;
            v12[v47].leaderstats[v48] = nil;
            return ;
        else
            return ;
        end;
    else
        return ;
    end;
end;
local function v63(v53, v54)
    if ((v54:IsA("ValueBase") or v54:IsA("Folder")) or v54:IsA("Configuration")) or v54:IsA("Model") then
        if v12[v53] then
            v12[v53].namedChanged[v54] = v54:GetPropertyChangedSignal("Name"):Connect(function()
                local l_v53_0 = v53;
                local l_v54_0 = v54;
                if l_v54_0.Name == "leaderstats" then
                    v36(l_v53_0, l_v54_0);
                    return ;
                elseif v12[l_v53_0] then
                    local v57 = v12[l_v53_0].leaderstats[l_v54_0];
                    if v57 then
                        v57.childAdded:Disconnect();
                        v57.childRemoved:Disconnect();
                        for _, v59 in v57.leaderStatNameChanged, nil, nil do
                            v59:Disconnect();
                        end;
                        v12[l_v53_0].leaderstats[l_v54_0] = nil;
                        return ;
                    else
                        return ;
                    end;
                else
                    return ;
                end;
            end);
            if v54.Name == "leaderstats" then
                v36(v53, v54);
                return ;
            elseif v12[v53] then
                local v60 = v12[v53].leaderstats[v54];
                if v60 then
                    v60.childAdded:Disconnect();
                    v60.childRemoved:Disconnect();
                    for _, v62 in v60.leaderStatNameChanged, nil, nil do
                        v62:Disconnect();
                    end;
                    v12[v53].leaderstats[v54] = nil;
                    return ;
                else
                    return ;
                end;
            else
                return ;
            end;
        else
            return ;
        end;
    else
        return ;
    end;
end;
local _ = function(v64, v65)
    if v12[v64] then
        if v12[v64].namedChanged[v65] then
            v12[v64].namedChanged[v65]:Disconnect();
            v12[v64].namedChanged[v65] = nil;
        end;
        if v65.Name == "leaderstats" then
            if v12[v64] then
                local v66 = v12[v64].leaderstats[v65];
                if v66 then
                    v66.childAdded:Disconnect();
                    v66.childRemoved:Disconnect();
                    for _, v68 in v66.leaderStatNameChanged, nil, nil do
                        v68:Disconnect();
                    end;
                    v12[v64].leaderstats[v65] = nil;
                else
                    return ;
                end;
            else
                return ;
            end;
        end;
        return ;
    else
        return ;
    end;
end;
local function v79(v70)
    v12[v70] = {
        childAdded = v70.ChildAdded:Connect(function(v71)
            v63(v70, v71);
        end),
        childRemoved = v70.ChildRemoved:Connect(function(v72)
            local l_v70_0 = v70;
            if v12[l_v70_0] then
                if v12[l_v70_0].namedChanged[v72] then
                    v12[l_v70_0].namedChanged[v72]:Disconnect();
                    v12[l_v70_0].namedChanged[v72] = nil;
                end;
                if v72.Name == "leaderstats" then
                    if v12[l_v70_0] then
                        local v74 = v12[l_v70_0].leaderstats[v72];
                        if v74 then
                            v74.childAdded:Disconnect();
                            v74.childRemoved:Disconnect();
                            for _, v76 in v74.leaderStatNameChanged, nil, nil do
                                v76:Disconnect();
                            end;
                            v12[l_v70_0].leaderstats[v72] = nil;
                        else
                            return ;
                        end;
                    else
                        return ;
                    end;
                end;
                return ;
            else
                return ;
            end;
        end),
        namedChanged = {},
        leaderstats = {}
    };
    for _, v78 in v70:GetChildren() do
        v63(v70, v78);
    end;
end;
local function v87(v80)
    if v12[v80] then
        v12[v80].childAdded:Disconnect();
        v12[v80].childRemoved:Disconnect();
        for _, v82 in v12[v80].namedChanged, nil, nil do
            v82:Disconnect();
        end;
        for _, v84 in v12[v80].leaderstats, nil, nil do
            v84.childAdded:Disconnect();
            v84.childRemoved:Disconnect();
            for _, v86 in v84.leaderStatNameChanged, nil, nil do
                v86:Disconnect();
            end;
        end;
        v12[v80] = nil;
        return ;
    else
        return ;
    end;
end;
l_Players_0.PlayerAdded:Connect(v79);
l_Players_0.PlayerRemoving:Connect(v87);
for _, v89 in l_Players_0:GetPlayers() do
    v79(v89);
end;


local l_HttpService_0 = game:GetService("HttpService");
local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local l_Players_0 = game:GetService("Players");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local _ = game:GetService("RunService");
local l_Chat_0 = game:GetService("Chat");
local v6 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Common.Url);
game:DefineFastFlag("EnableSetUserBlocklistInitialized", false);
local v7 = {};
local v8 = {
    Admin = {
        GroupId = 1200769
    },
    Intern = {
        GroupId = 2868472,
        GroupRank = 100
    },
    Star = {
        GroupId = 4199740
    },
    SpanishLocalizationExpert = {
        GroupId = 4265462,
        GroupRank = 252
    },
    BrazilianLocalizationExpert = {
        GroupId = 4265456,
        GroupRank = 252
    },
    FrenchLocalizationExpert = {
        GroupId = 4265443,
        GroupRank = 252
    },
    GermanLocalizationExpert = {
        GroupId = 4265449,
        GroupRank = 252
    }
};
if game.CreatorType == Enum.CreatorType.Group then
    v8.PlaceCreator = {
        GroupId = game.CreatorId,
        GroupRank = 255
    };
end;
local v9 = {};
local v10 = {};
game:DefineFastInt("MaxBlockListSize", 500);
local l_RemoteEvent_0 = Instance.new("RemoteEvent");
l_RemoteEvent_0.Name = "CanChatWith";
l_RemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
local l_RemoteEvent_1 = Instance.new("RemoteEvent");
l_RemoteEvent_1.Name = "SetPlayerBlockList";
l_RemoteEvent_1.Parent = l_RobloxReplicatedStorage_0;
local l_RemoteEvent_2 = Instance.new("RemoteEvent");
l_RemoteEvent_2.Name = "UpdatePlayerBlockList";
l_RemoteEvent_2.Parent = l_RobloxReplicatedStorage_0;
local l_RemoteEvent_3 = Instance.new("RemoteEvent");
l_RemoteEvent_3.Name = "NewPlayerGroupDetails";
l_RemoteEvent_3.Parent = l_RobloxReplicatedStorage_0;
local l_RemoteEvent_4 = Instance.new("RemoteEvent");
l_RemoteEvent_4.Name = "NewPlayerCanManageDetails";
l_RemoteEvent_4.Parent = l_RobloxReplicatedStorage_0;
local v16 = {};
local function _(v17)
    return type(v17) == "number";
end;
local function v22(v19)
    if not (#v19 ~= 0) or game:GetFastInt("MaxBlockListSize") < #v19 then
        return false;
    else
        for _, v21 in pairs(v19) do
            if not (type(v21) == "number") then
                return false;
            end;
        end;
        return true;
    end;
end;
local function _(v23)
    l_RemoteEvent_3:FireClient(v23, v9);
end;
local function v34(v25)
    local v26 = {};
    for v27, v28 in pairs(v8) do
        if v28.GroupRank ~= nil then
            local l_status_0, l_result_0 = pcall(function()
                return v28.GroupRank <= v25:GetRankInGroup(v28.GroupId);
            end);
            v26[v27] = l_status_0 and l_result_0;
        else
            local l_status_1, l_result_1 = pcall(function()
                return v25:IsInGroup(v28.GroupId);
            end);
            v26[v27] = l_status_1 and l_result_1;
        end;
    end;
    if v25.Parent then
        local v33 = tostring(v25.UserId);
        v9[v33] = v26;
        l_RemoteEvent_3:FireAllClients({
            [v33] = v26
        });
    end;
end;
local function v41(v35)
    local v36 = {};
    for _, v38 in ipairs(l_Players_0:GetPlayers()) do
        local l_status_2, l_result_2 = pcall(function()
            return l_Chat_0:CanUsersChatAsync(v35.UserId, v38.UserId);
        end);
        v36[v38.userId] = l_status_2 and l_result_2;
        l_RemoteEvent_0:FireClient(v38, {
            [v35.userId] = l_status_2 and l_result_2
        });
    end;
    l_RemoteEvent_0:FireClient(v35, v36);
end;
local function v45(v42)
    for v43, v44 in pairs(v10) do
        l_RemoteEvent_4:FireClient(v42, v43, v44);
    end;
end;
local function v51(v46)
    local v47 = false;
    if v46.UserId > 0 then
        local l_status_3, l_result_3 = pcall(function()
            return l_HttpService_0:JSONDecode((l_HttpRbxApiService_0:PostAsyncFullUrl(string.format(v6.APIS_URL .. "asset-permissions-api/v1/rcc/assets/check-permissions"), (l_HttpService_0:JSONEncode({
                requests = {
                    {
                        subject = {
                            subjectType = "User",
                            subjectId = v46.UserId
                        },
                        action = "Edit",
                        assetId = game.PlaceId
                    }
                }
            })))));
        end);
        if l_status_3 then
            l_result_3 = l_result_3.results[1];
            if l_result_3.value and l_result_3.value.status == "HasPermission" then
                v47 = true;
            end;
        end;
    end;
    if v46.Parent then
        local v50 = tostring(v46.UserId);
        v10[v50] = v47;
        l_RemoteEvent_4:FireAllClients(v50, v47);
    end;
end;
local function v53(v52)
    l_RemoteEvent_3:FireClient(v52, v9);
    if v52.UserId > 0 then
        coroutine.wrap(v34)(v52);
    end;
    v45(v52);
    coroutine.wrap(v51)(v52);
    v41(v52);
end;
l_RemoteEvent_1.OnServerEvent:Connect(function(v54, v55)
    if game:GetFastFlag("EnableSetUserBlocklistInitialized") then
        v54:SetBlockListInitialized();
    end;
    if not (not (type(v55) == "table") or not v22(v55)) then
        v54:AddToBlockList(v55);
    end;
end);
l_RemoteEvent_2.OnServerEvent:Connect(function(v56, v57, v58)
    if not (not (type(v58) == "boolean") or not (type(v57) == "number")) then
        v56:UpdatePlayerBlocked(v57, v58);
    end;
end);
l_Players_0.PlayerAdded:connect(v53);
for _, v60 in pairs(l_Players_0:GetPlayers()) do
    v53(v60);
end;
l_Players_0.PlayerRemoving:connect(function(v61)
    local v62 = tostring(v61.UserId);
    if v7[v62] then
        v7[v62] = nil;
        v16[v62] = nil;
    end;
    if v9[v62] then
        v9[v62] = nil;
    end;
    if v10[v62] ~= nil then
        v10[v62] = nil;
    end;
end);
local function v63()
end;
for _, v65 in ipairs(l_RobloxReplicatedStorage_0:GetChildren()) do
    if v65:IsA("RemoteEvent") then
        v65.OnServerEvent:Connect(v63);
    end;
end;


if game:DefineFastFlag("DebugVersionedFlagTest_RealConsumerCpp", false) then
    print("DebugVersionedFlagTest_RealConsumerCpp is flipped, version ONE (Lua)");
end;
game:DefineFastFlag("DebugVersionedFastFlagTest_RealConsumerLua", false);
if game:GetFastFlag("DebugVersionedFastFlagTest_RealConsumerLua") then
    print("DebugVersionedFastFlagTest_RealConsumerLua is flipped, version ONE (Lua)");
end;


local l_Players_0 = game:GetService("Players");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_VoiceChatService_0 = game:GetService("VoiceChatService");
local l_SoundService_0 = game:GetService("SoundService");
local v4 = game:DefineFastFlag("DebugLogVoiceDefault", false);
local v5 = game:DefineFastFlag("SetNewDeviceToFalse", false);
local v6 = game:DefineFastFlag("FixNewPlayerCheck", false);
local v7 = game:DefineFastFlag("OnlyMakeInputsForVoiceUsers", false);
local v8 = game:DefineFastFlag("SendLikelySpeakingUsers", false);
local v9 = game:DefineFastFlag("VoiceDefaultUseAudioInstanceAdded", false) and game:GetEngineFeature("AudioInstanceAddedApiEnabled");
local function v10(...)
    if v4 then
        print("[VoiceDefault]", ...);
    end;
end;
local v11 = {};
local v12 = {};
local v13 = {};
local function _(v14, v15)
    if v14 == nil then
        return {
            [v15] = true
        };
    else
        v14[v15] = true;
        return v14;
    end;
end;
local function _(v17)
    local l_AudioEmitter_0 = Instance.new("AudioEmitter");
    l_AudioEmitter_0.Parent = v17;
    l_AudioEmitter_0:AddTag("RbxDefaultVoiceEmitter");
    v10("Adding emitter", l_AudioEmitter_0, " to ", v17);
    return l_AudioEmitter_0;
end;
local function _(v20, v21)
    local l_AudioEmitter_1 = Instance.new("AudioEmitter");
    l_AudioEmitter_1.Parent = v20;
    l_AudioEmitter_1:AddTag("RbxDefaultVoiceEmitter");
    v10("Adding emitter", l_AudioEmitter_1, " to ", v20);
    local l_l_AudioEmitter_1_0 = l_AudioEmitter_1;
    v10("Hooking input device to emitter", v20, v21, l_l_AudioEmitter_1_0);
    l_AudioEmitter_1 = Instance.new("Wire");
    l_AudioEmitter_1.Parent = l_l_AudioEmitter_1_0;
    l_AudioEmitter_1.SourceInstance = v21;
    l_AudioEmitter_1.TargetInstance = l_l_AudioEmitter_1_0;
end;
local function _(v25)
    if v25.Player then
        v11[v25.Player][v25] = nil;
    end;
    local v26 = v12[v25];
    if v26 then
        v26.onPlayerChanged:Disconnect();
        v12[v25] = nil;
        return ;
    else
        v10("Attempting to remove connections from untracked AudioDeviceInput");
        return ;
    end;
end;
local function _(v28, v29)
    if v29 then
        local v30 = v11[v29];
        if v30 then
            v30[v28] = nil;
        end;
    end;
    local v31 = v12[v28];
    if v31 then
        v31.onPlayerChanged:Disconnect();
        v12[v28] = nil;
        return ;
    else
        v10("Attempting to remove connections from untracked AudioDeviceInput");
        return ;
    end;
end;
local function v33(v34)
    local l_Player_0 = v34.Player;
    if l_Player_0 then
        local l_v11_0 = v11;
        local v37 = v11[l_Player_0];
        local v38;
        if v37 == nil then
            v38 = {
                [v34] = true
            };
        else
            v37[v34] = true;
            v38 = v37;
        end;
        l_v11_0[l_Player_0] = v38;
    end;
    local v39 = {};
    local l_l_Player_0_0 = l_Player_0;
    v39.onPlayerChanged = v34:GetPropertyChangedSignal("Player"):Connect(function()
        if not v6 then
            local l_v34_0 = v34;
            if l_v34_0.Player then
                v11[l_v34_0.Player][l_v34_0] = nil;
            end;
            local v42 = v12[l_v34_0];
            if v42 then
                v42.onPlayerChanged:Disconnect();
                v12[l_v34_0] = nil;
            else
                v10("Attempting to remove connections from untracked AudioDeviceInput");
            end;
        else
            local l_v34_1 = v34;
            local l_l_l_Player_0_0_0 = l_l_Player_0_0;
            if l_l_l_Player_0_0_0 then
                local v45 = v11[l_l_l_Player_0_0_0];
                if v45 then
                    v45[l_v34_1] = nil;
                end;
            end;
            local v46 = v12[l_v34_1];
            if v46 then
                v46.onPlayerChanged:Disconnect();
                v12[l_v34_1] = nil;
            else
                v10("Attempting to remove connections from untracked AudioDeviceInput");
            end;
        end;
        l_l_Player_0_0 = v34.Player;
        v33(v34);
    end);
    v12[v34] = v39;
end;
local function v58(v47)
    if v7 then
        local l_status_0, l_result_0 = pcall(function()
            return l_VoiceChatService_0:IsVoiceEnabledForUserIdAsync(v47.UserId);
        end);
        if not l_status_0 then
            v10("Error getting voice enabled status: \"", l_result_0, "\"");
        end;
        if not (l_status_0 and l_result_0) then
            return ;
        end;
    end;
    local l_AudioDeviceInput_0 = Instance.new("AudioDeviceInput");
    l_AudioDeviceInput_0.Player = v47;
    l_AudioDeviceInput_0.Parent = v47;
    l_AudioDeviceInput_0.Active = false;
    v33(l_AudioDeviceInput_0);
    if v47.Character then
        local l_Character_0 = v47.Character;
        local l_AudioEmitter_2 = Instance.new("AudioEmitter");
        l_AudioEmitter_2.Parent = l_Character_0;
        l_AudioEmitter_2:AddTag("RbxDefaultVoiceEmitter");
        v10("Adding emitter", l_AudioEmitter_2, " to ", l_Character_0);
        local l_l_AudioEmitter_2_0 = l_AudioEmitter_2;
        v10("Hooking input device to emitter", l_Character_0, l_AudioDeviceInput_0, l_l_AudioEmitter_2_0);
        l_AudioEmitter_2 = Instance.new("Wire");
        l_AudioEmitter_2.Parent = l_l_AudioEmitter_2_0;
        l_AudioEmitter_2.SourceInstance = l_AudioDeviceInput_0;
        l_AudioEmitter_2.TargetInstance = l_l_AudioEmitter_2_0;
    end;
    v13[v47] = v47.CharacterAdded:Connect(function(v54)
        local l_l_AudioDeviceInput_0_0 = l_AudioDeviceInput_0;
        local l_AudioEmitter_3 = Instance.new("AudioEmitter");
        l_AudioEmitter_3.Parent = v54;
        l_AudioEmitter_3:AddTag("RbxDefaultVoiceEmitter");
        v10("Adding emitter", l_AudioEmitter_3, " to ", v54);
        local l_l_AudioEmitter_3_0 = l_AudioEmitter_3;
        v10("Hooking input device to emitter", v54, l_l_AudioDeviceInput_0_0, l_l_AudioEmitter_3_0);
        l_AudioEmitter_3 = Instance.new("Wire");
        l_AudioEmitter_3.Parent = l_l_AudioEmitter_3_0;
        l_AudioEmitter_3.SourceInstance = l_l_AudioDeviceInput_0_0;
        l_AudioEmitter_3.TargetInstance = l_l_AudioEmitter_3_0;
    end);
    v10("Creating device for ", v47.Name);
end;
if l_VoiceChatService_0.UseNewAudioApi then
    v10("Using new Audio API, EnableDefaultVoice: ", l_VoiceChatService_0.EnableDefaultVoice);
    if l_VoiceChatService_0.EnableDefaultVoice then
        local l_Players_1 = game:GetService("Players");
        l_Players_1.PlayerAdded:Connect(v58);
        l_Players_1.PlayerRemoving:Connect(function(v60)
            local v61 = v11[v60];
            local v62 = v13[v60];
            v10(v60.Name, "removed. Deleting instance", v61);
            if v61 then
                v11[v60] = nil;
            end;
            if v62 then
                v62:Disconnect();
            end;
        end);
        for _, v64 in l_Players_1:GetPlayers() do
            v58(v64);
        end;
    end;
    local l_RemoteEvent_0 = Instance.new("RemoteEvent");
    l_RemoteEvent_0.Name = "SetUserActive";
    l_RemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
    if not v9 then
        game.DescendantAdded:Connect(function(v66)
            if v66:IsA("AudioDeviceInput") then
                if v5 then
                    v66.Active = false;
                end;
                v33(v66);
            end;
        end);
    else
        l_SoundService_0.AudioInstanceAdded:Connect(function(v67)
            if v67:IsA("AudioDeviceInput") then
                if v5 then
                    v67.Active = false;
                end;
                v33(v67);
            end;
        end);
    end;
    for _, v69 in game:GetDescendants() do
        if v69:IsA("AudioDeviceInput") then
            if v5 then
                v69.Active = false;
            end;
            v33(v69);
        end;
    end;
    game.DescendantRemoving:Connect(function(v70)
        if v70:IsA("AudioDeviceInput") then
            if not v6 then
                if v70.Player then
                    v11[v70.Player][v70] = nil;
                end;
                local v71 = v12[v70];
                if v71 then
                    v71.onPlayerChanged:Disconnect();
                    v12[v70] = nil;
                else
                    v10("Attempting to remove connections from untracked AudioDeviceInput");
                    return ;
                end;
            else
                local l_Player_1 = v70.Player;
                if l_Player_1 then
                    local v73 = v11[l_Player_1];
                    if v73 then
                        v73[v70] = nil;
                    end;
                end;
                local v74 = v12[v70];
                if v74 then
                    v74.onPlayerChanged:Disconnect();
                    v12[v70] = nil;
                    return ;
                else
                    v10("Attempting to remove connections from untracked AudioDeviceInput");
                    return ;
                end;
            end;
        end;
    end);
    l_RemoteEvent_0.OnServerEvent:Connect(function(v75, v76)
        local v77 = v11[v75];
        if not v77 then
            v10("Attempting to set Active property for user", v75, "without saved AudioDeviceInput");
            return ;
        else
            v10("Setting", v75, "to", v76);
            for v78, _ in v77, nil, nil do
                v78.Active = v76;
            end;
            return ;
        end;
    end);
end;
if v8 then
    local l_UnreliableRemoteEvent_0 = Instance.new("UnreliableRemoteEvent");
    l_UnreliableRemoteEvent_0.Name = "SendLikelySpeakingUsers";
    l_UnreliableRemoteEvent_0.Parent = l_RobloxReplicatedStorage_0;
    local v81 = {};
    v10("Setting up likely speaking users");
    l_Players_0.PlayerAdded:Connect(function(v82)
        local l_status_1, l_result_1 = pcall(function()
            return l_VoiceChatService_0:IsVoiceEnabledForUserIdAsync(v82.UserId);
        end);
        if not l_status_1 or not l_result_1 then
            if not l_status_1 then
                v10("Error getting voice enabled status: ", l_result_1, " for ", v82.Name);
            end;
            return ;
        else
            v10("Sending likely speaking user for ", v82.Name);
            v81[v82.UserId] = true;
            l_UnreliableRemoteEvent_0:FireAllClients(v81);
            return ;
        end;
    end);
    l_Players_0.PlayerRemoving:Connect(function(v85)
        v81[v85.UserId] = nil;
    end);
end;


local l_RunService_0 = game:GetService("RunService");
while not l_RunService_0:IsRunning() do
    wait();
end;
local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxReplicatedStorage_0 = game:GetService("RobloxReplicatedStorage");
local l_ScriptContext_0 = game:GetService("ScriptContext");
local v5 = game:GetService("CoreGui"):WaitForChild("RobloxGui", math.huge);
assert(v5 ~= nil, "RobloxGui should exist");
local v6 = require(v5.Modules.Server.ServerUtil);
if v6.getFFlagServerCoreScriptSourceCode() then
    v6.initSourceCodeFolder();
end;
if game:DefineFastFlag("OpenCloudCoreScriptLuaEnabled", false) then
    l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/OpenCloud/OpenCloudV2", script.Parent);
end;
l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/ServerInGameMenu", script.Parent);
l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/ServerSocialScript", script.Parent);
l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/ServerLeaderstats", script.Parent);
l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/PlayerRagdollRigCreator", script.Parent);
game:DefineFastFlag("DebugFreeCameraForAdmins", true);
local v7 = nil;
local v8 = require(v5.Modules.Common.Flags.FFlagEnableForkedChatAnalytics);
if v8 then
    v7 = require(v5.Modules.Server.SendChatAnalytics);
end;
l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/ServerDialog", script.Parent);
local l_RemoteFunction_0 = Instance.new("RemoteFunction");
l_RemoteFunction_0.Name = "GetServerVersion";
l_RemoteFunction_0.Parent = l_RobloxReplicatedStorage_0;
l_RemoteFunction_0.OnServerInvoke = function()
    local l_l_RunService_0_RobloxVersion_0 = l_RunService_0:GetRobloxVersion();
    local v11 = nil;
    v11 = l_l_RunService_0_RobloxVersion_0 == "?" and "DEBUG_SERVER" or (l_RunService_0:IsStudio() and "ROBLOX Studio" or l_l_RunService_0_RobloxVersion_0);
    if l_RunService_0:IsStudio() then
        return v11;
    else
        return string.format("%s (%.6s)", v11, l_RunService_0.ClientGitHash);
    end;
end;
local v12 = game:DefineFastFlag("EnableTenFootInterfaceCheckForLegacyChat", false);
if not (function()
    if not v12 then
        return game:GetService("Chat").LoadDefaultChat and game:GetService("TextChatService").ChatVersion == Enum.ChatVersion.LegacyChatService;
    else
        local l_LoadDefaultChat_0 = game:GetService("Chat").LoadDefaultChat;
        if l_LoadDefaultChat_0 then
            l_LoadDefaultChat_0 = false;
            if game:GetService("TextChatService").ChatVersion == Enum.ChatVersion.LegacyChatService then
                l_LoadDefaultChat_0 = not game:GetService("GuiService"):IsTenFootInterface();
            end;
        end;
        return l_LoadDefaultChat_0;
    end;
end)() then
    if v8 then
        v7("NoLoadDefaultChat");
    end;
else
    require(game:GetService("CoreGui").RobloxGui.Modules.Server.ClientChat.ChatWindowInstaller)();
    require(game:GetService("CoreGui").RobloxGui.Modules.Server.ServerChat.ChatServiceInstaller)();
end;
if game:GetFastFlag("DebugFreeCameraForAdmins") then
    require(game:GetService("CoreGui").RobloxGui.Modules.Server.FreeCamera.FreeCameraInstaller)();
end;
require(game:GetService("CoreGui").RobloxGui.Modules.Server.ServerSound.SoundDispatcherInstaller)();
if game:GetEngineFeature("AssetServiceUGCValidation") then
    require(game:GetService("CoreGui").RobloxGui.Modules.Server.UGCValidation.UGCValidationFunctionInstaller)();
end;
local l_ChatVersion_0 = game:GetService("TextChatService").ChatVersion;
if l_ChatVersion_0 == Enum.ChatVersion.TextChatService then
    require(l_CorePackages_0.UIBlox).init();
    require(l_CorePackages_0.ExperienceChat).mountServerApp({});
end;
if l_RunService_0:IsStudio() == false then
    l_RbxAnalyticsService_0:ReportCounter(l_ChatVersion_0 == Enum.ChatVersion.TextChatService and "textChatServiceChatVersionTextChatService" or "textChatServiceChatVersionLegacy", 1);
end;
if game:DefineFastFlag("VersionedFlags_Dev", false) then
    l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/VersionedFlagTest", script.Parent);
end;
if require(v5.Modules.Common.Flags.GetFFlagContactListEnabled)() then
    l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/ServerContactList", script.Parent);
end;
l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/PlayerViewCapability", script.Parent);
if require(v5.Modules.Common.Flags.GetFFlagEnableVoiceDefaultServerScript)() then
    l_ScriptContext_0:AddCoreScriptLocal("ServerCoreScripts/VoiceDefault", script.Parent);
end;
local _ = nil;
local l_status_0, l_result_0 = pcall(function()
    return UserSettings():IsUserFeatureEnabled("UserVRAvatarGestures");
end);
if l_status_0 and l_result_0 then
    require(game:GetService("CoreGui").RobloxGui.Modules.Server.VR.VRAvatarGesturesServer).new();
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_ScriptContext_0 = game:GetService("ScriptContext");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_GuiService_0 = game:GetService("GuiService");
local l_VRService_0 = game:GetService("VRService");
local l_Players_0 = game:GetService("Players");
local l_RunService_0 = game:GetService("RunService");
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_Modules_0 = l_RobloxGui_0:WaitForChild("Modules");
local l_game_EngineFeature_0 = game:GetEngineFeature("LoadErrorHandlerFromEngine");
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/CoreScriptErrorReporter", l_RobloxGui_0);
local v10 = require(l_CorePackages_0.Roact);
local l_PolicyService_0 = require(l_Modules_0:WaitForChild("Common"):WaitForChild("PolicyService"));
local l_FFlag_0 = settings():GetFFlag("ConnectionScriptEnabled");
local v13 = require(l_RobloxGui_0.Modules.Flags.FFlagUseRoactGlobalConfigInCoreScripts);
local v14 = require(l_RobloxGui_0.Modules.Flags.FFlagConnectErrorHandlerInLoadingScript);
local v15 = game:DefineFastFlag("DebugAvatarChatVisualization", false);
local v16 = require(l_RobloxGui_0.Modules.Flags.GetFFlagScreenshotHudApi);
local v17 = require(l_RobloxGui_0.Modules.Flags.GetFFlagEnableVoiceDefaultChannel);
local v18 = require(l_RobloxGui_0.Modules.Flags.GetFFlagShareInviteLinkContextMenuABTestEnabled);
local v19 = require(l_RobloxGui_0.Modules.ShareInviteLinkABTestManager);
local v20 = require(l_Modules_0.IsExperienceMenuABTestEnabled);
local v21 = require(l_Modules_0.ExperienceMenuABTestManager);
local v22 = require(l_Modules_0.Flags.GetFFlagEnableNewInviteMenuIXP);
local v23 = require(l_Modules_0.Settings.Pages.ShareGame.NewInviteMenuExperimentManager);
local v24 = require(l_Modules_0.Flags.GetFFlagEnableSoundSessionTelemetry);
local v25 = require(l_Modules_0.Settings.Flags.GetFFlagReportAnythingAnnotationIXP);
local v26 = require(l_RobloxGui_0.Modules.TrustAndSafety.TrustAndSafetyIXPManager);
local v27 = require(l_Modules_0.Experiment.GetCoreScriptsLayers);
local v28 = require(l_RobloxGui_0.Modules.Flags.GetFFlagRtMessaging);
local v29 = require(l_RobloxGui_0.Modules.Common.Flags.GetFFlagContactListClientEnabled);
local v30 = game:DefineFastFlag("AddPublishAssetPrompt6", false);
local l_isCharacterNameHandlerEnabled_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).isCharacterNameHandlerEnabled;
local l_GetFFlagIrisAlwaysOnTopEnabled_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagIrisAlwaysOnTopEnabled;
local l_GetFFlagEnableSocialContextToast_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagEnableSocialContextToast;
local l_GetFFlagLuaAppEnableSquadPage_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLuaAppEnableSquadPage;
local l_GetFFlagEnableAppChatInExperience_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagEnableAppChatInExperience;
local v36 = game:DefineFastFlag("LuaAppEnableToastNotificationsCoreScripts4", false);
local v37 = game:DefineFastFlag("AdPortalTeleportPromptLua", false);
local v38 = require(l_RobloxGui_0.Modules.Flags.GetFFlagVoiceUserAgency3);
local v39 = require(l_RobloxGui_0.Modules.Flags.GetFFlagLuaInExperienceCoreScriptsGameInviteUnification);
local v40 = require(l_RobloxGui_0.Modules.Flags.getFFlagMicrophoneDevicePermissionsPromptLogging);
game:DefineFastFlag("MoodsEmoteFix3", false);
local v41 = game:DefineFastFlag("EnableSendCameraAccessAnalytics", false);
local v42 = game:DefineFastFlag("EnableExperienceNotificationPrompts2", false);
local v43 = game:DefineFastFlag("EnableBulkPurchaseApp3", false);
local v44 = game:DefineFastFlag("EnablePremiumSponsoredExperienceReporting", false);
local v45 = require(l_CorePackages_0.UIBlox);
local v46 = require(l_Modules_0.UIBloxInGameConfig);
v45.init(v46);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
while not l_LocalPlayer_0 do
    l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
    l_LocalPlayer_0 = l_Players_0.LocalPlayer;
end;
local v48 = require(l_RobloxGui_0.Modules.Flags.FFlagAvatarChatCoreScriptSupport);
if not require(l_RobloxGui_0.Modules.Chrome.Enabled)() then
    if v48 then
        require(l_CorePackages_0.ExperienceChat).GlobalFlags.AvatarChatEnabled = true;
    end;
else
    local v49 = require(l_CorePackages_0.ExperienceChat);
    v49.GlobalFlags.AvatarChatEnabled = v48;
    v49.GlobalFlags.ChromeEnabled = true;
end;
if require(l_RobloxGui_0.Modules.Flags.getFFlagDoNotPromptCameraPermissionsOnMount)() then
    require(l_CorePackages_0.ExperienceChat).GlobalFlags.DoNotPromptCameraPermissionsOnMount = true;
end;
if require(l_RobloxGui_0.Modules.Flags.GetFFlagJoinWithoutMicPermissions)() then
    require(l_CorePackages_0.ExperienceChat).GlobalFlags.JoinWithoutMicPermissions = true;
end;
if require(l_RobloxGui_0.Modules.Flags.getFFlagEnableAlwaysAvailableCamera)() then
    require(l_CorePackages_0.ExperienceChat).GlobalFlags.EnableAlwaysAvailableCamera = true;
end;
if require(l_RobloxGui_0.Modules.Flags.GetFFlagConsolidateBubbleChat)() then
    require(l_CorePackages_0.ExperienceChat).GlobalFlags.ConsolidateBubbleChat = true;
end;
if require(l_RobloxGui_0.Modules.Flags.getFFlagRenderVoiceBubbleAfterAsyncInit)() then
    require(l_CorePackages_0.ExperienceChat).GlobalFlags.RenderVoiceBubbleAfterAsyncInit = true;
end;
if not (not v13 or not l_RunService_0:IsStudio()) then
    v10.setGlobalConfig({
        propValidation = true,
        elementTracing = true
    });
end;
local l_UIBlox_0 = require(l_CorePackages_0.InGameMenuDependencies).UIBlox;
if l_UIBlox_0 ~= v45 then
    l_UIBlox_0.init(v46);
end;
local l_Folder_0 = Instance.new("Folder");
l_Folder_0.Name = "Sounds";
l_Folder_0.Parent = l_RobloxGui_0;
local function v55(v52)
    local l_status_0, l_result_0 = pcall(require, v52);
    if not l_status_0 then
        warn("Failure to Start CoreScript module " .. v52.Name .. ".\n" .. l_result_0);
        return ;
    else
        return l_result_0;
    end;
end;
if not (((v14 or l_game_EngineFeature_0) or not l_FFlag_0) or l_GuiService_0:IsTenFootInterface()) then
    l_ScriptContext_0:AddCoreScriptLocal("Connection", l_RobloxGui_0);
end;
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/NotificationScript2", l_RobloxGui_0);
coroutine.wrap(v55)(l_Modules_0.SelfieView);
coroutine.wrap(v55)(l_Modules_0.TopBar);
if game:GetEngineFeature("LuobuModerationStatus") then
    coroutine.wrap(function()
        local l_Watermark_0 = l_Modules_0.Watermark;
        local l_status_1, l_result_1 = pcall(require, l_Watermark_0);
        if not l_status_1 then
            warn("Failure to Start CoreScript module " .. l_Watermark_0.Name .. ".\n" .. l_result_1);
            return ;
        else
            return ;
        end;
    end)();
end;
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/MainBotChatScript2", l_RobloxGui_0);
if game:GetEngineFeature("ProximityPrompts") then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ProximityPrompt", l_RobloxGui_0);
end;
if game:GetEngineFeature("ValidateUGCBodyAPIFeature") then
    require(l_Modules_0.Server.UGCValidation.UGCValidationFunctionInstaller)();
end;
coroutine.wrap(function()
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ScreenTimeInGame", l_RobloxGui_0);
end)();
coroutine.wrap(function()
    if l_PolicyService_0:IsSubjectToChinaPolicies() then
        if not game:IsLoaded() then
            game.Loaded:Wait();
        end;
        local l_LuobuWarningToast_0 = l_Modules_0.LuobuWarningToast;
        local l_status_2, l_result_2 = pcall(require, l_LuobuWarningToast_0);
        if not l_status_2 then
            warn("Failure to Start CoreScript module " .. l_LuobuWarningToast_0.Name .. ".\n" .. l_result_2);
        else
            return ;
        end;
    end;
end)();
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/PerformanceStatsManagerScript", l_RobloxGui_0);
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/PlayerRagdoll", l_RobloxGui_0);
coroutine.wrap(v55)(l_RobloxGui_0.Modules.ChatSelector);
coroutine.wrap(v55)(l_RobloxGui_0.Modules.PlayerList.PlayerListManager);
local v62 = nil;
local l_status_3, l_result_3 = pcall(function()
    return UserSettings():IsUserFeatureEnabled("UserRoactBubbleChatBeta");
end);
v62 = l_status_3 and l_result_3;
if not (not game:GetEngineFeature("EnableBubbleChatFromChatService") and not v62) then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/PlayerBillboards", l_RobloxGui_0);
end;
if l_GetFFlagIrisAlwaysOnTopEnabled_0() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/IrisUpdateBubbleChat", l_RobloxGui_0);
end;
coroutine.wrap(function()
    local l_PurchasePrompt_0 = l_Modules_0.PurchasePrompt;
    local l_status_4, l_result_4 = pcall(require, l_PurchasePrompt_0);
    local v68;
    if not l_status_4 then
        warn("Failure to Start CoreScript module " .. l_PurchasePrompt_0.Name .. ".\n" .. l_result_4);
        v68 = nil;
    else
        v68 = l_result_4;
    end;
    if v68 then
        v68.mountPurchasePrompt();
    end;
end)();
if v30 then
    coroutine.wrap(v55)(l_Modules_0.PublishAssetPrompt);
end;
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/BlockPlayerPrompt", l_RobloxGui_0);
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/FriendPlayerPrompt", l_RobloxGui_0);
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/AvatarContextMenu", l_RobloxGui_0);
coroutine.wrap(v55)(l_RobloxGui_0.Modules.BackpackScript);
coroutine.wrap(v55)(l_RobloxGui_0.Modules.KeyboardUINavigation);
coroutine.wrap(v55)(l_RobloxGui_0.Modules.EmotesMenu.EmotesMenuMaster);
coroutine.wrap(v55)(l_RobloxGui_0.Modules.Screenshots.ScreenshotsApp);
coroutine.wrap(v55)(l_Modules_0.AvatarEditorPrompts);
coroutine.wrap(v55)(l_RobloxGui_0.Modules.VirtualCursor.VirtualCursorMain);
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/VehicleHud", l_RobloxGui_0);
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/InviteToGamePrompt", l_RobloxGui_0);
if l_UserInputService_0.TouchEnabled then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ContextActionTouch", l_RobloxGui_0);
    l_RobloxGui_0:WaitForChild("ControlFrame");
    l_RobloxGui_0.ControlFrame:WaitForChild("BottomLeftControl");
    l_RobloxGui_0.ControlFrame.BottomLeftControl.Visible = false;
end;
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/InspectAndBuy", l_RobloxGui_0);
coroutine.wrap(function()
    if not l_VRService_0.VREnabled then
        l_VRService_0:GetPropertyChangedSignal("VREnabled"):Wait();
    end;
    local l_VRAvatarHeightScaling_0 = l_RobloxGui_0.Modules.VR.VRAvatarHeightScaling;
    local l_status_5, l_result_5 = pcall(require, l_VRAvatarHeightScaling_0);
    if not l_status_5 then
        warn("Failure to Start CoreScript module " .. l_VRAvatarHeightScaling_0.Name .. ".\n" .. l_result_5);
    end;
    l_VRAvatarHeightScaling_0 = l_RobloxGui_0.Modules.VR.VirtualKeyboard;
    l_status_5, l_result_5 = pcall(require, l_VRAvatarHeightScaling_0);
    if not l_status_5 then
        warn("Failure to Start CoreScript module " .. l_VRAvatarHeightScaling_0.Name .. ".\n" .. l_result_5);
    end;
    l_VRAvatarHeightScaling_0 = l_RobloxGui_0.Modules.VR.UserGui;
    l_status_5, l_result_5 = pcall(require, l_VRAvatarHeightScaling_0);
    if not l_status_5 then
        warn("Failure to Start CoreScript module " .. l_VRAvatarHeightScaling_0.Name .. ".\n" .. l_result_5);
        return ;
    else
        return ;
    end;
end)();
l_status_3 = nil;
local v72;
l_result_3, v72 = pcall(function()
    return UserSettings():IsUserFeatureEnabled("UserVRAvatarGestures");
end);
if l_result_3 and v72 then
    coroutine.wrap(v55)(l_RobloxGui_0.Modules.VR.VRAvatarGestures.VRAvatarGesturesClient);
end;
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/NetworkPause", l_RobloxGui_0);
if not (not v16() or l_PolicyService_0:IsSubjectToChinaPolicies()) then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ScreenshotHud", l_RobloxGui_0);
end;
if v40() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/MicrophoneDevicePermissionsLoggingInitializer", l_RobloxGui_0);
end;
if not (not game:GetEngineFeature("VoiceChatSupported") or not v17()) then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/VoiceDefaultChannel", l_RobloxGui_0);
end;
coroutine.wrap(function()
    require(l_Modules_0.Common.IXPServiceWrapper):InitializeAsync(l_LocalPlayer_0.UserId, v27());
    if v20() then
        v21.default:initialize();
    end;
    if v18() then
        v19.default:initialize();
    end;
    if v22() then
        v23.default:initialize();
    end;
    if v25() then
        v26.default:initialize();
    end;
end)();
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ExperienceChatMain", l_RobloxGui_0);
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ChatEmoteUsage", script.Parent);
if v36 then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ToastNotificationGUI", script.Parent);
end;
if v28() then
    game:GetService("RtMessagingService");
end;
if l_GetFFlagLuaAppEnableSquadPage_0() then
    coroutine.wrap(function()
        local l_Squads_0 = l_CorePackages_0.Workspace.Packages.Squads;
        local l_status_6, l_result_6 = pcall(require, l_Squads_0);
        local v76;
        if not l_status_6 then
            warn("Failure to Start CoreScript module " .. l_Squads_0.Name .. ".\n" .. l_result_6);
            v76 = nil;
        else
            v76 = l_result_6;
        end;
        v76.renderCoreScriptSquad.new();
    end)();
end;
if game:GetEngineFeature("FacialAnimationStreaming2") then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/FacialAnimationStreaming", script.Parent);
end;
if v48 then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/FaceChatSelfieView", l_RobloxGui_0);
    if v15 then
        l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/AvatarChatDebugVisualization", script.Parent);
    end;
    if game:GetEngineFeature("TrackerLodControllerDebugUI") then
        l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/TrackerLodControllerDebugUI", script.Parent);
    end;
end;
if not (not game:GetEngineFeature("NewMoodAnimationTypeApiEnabled") or not game:GetFastFlag("MoodsEmoteFix3")) then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/AvatarMood", script.Parent);
end;
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/PortalTeleportGUI", l_RobloxGui_0);
if not (not game:GetEngineFeature("PortalAdPrompt") or not v37) then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/AdTeleportPrompt", l_RobloxGui_0);
end;
if game:GetEngineFeature("EnableAdsEudsaStaticDisclosure") then
    coroutine.wrap(function()
        local l_AdsEudsa_0 = l_CorePackages_0.Workspace.Packages.AdsEudsa;
        local l_status_7, l_result_7 = pcall(require, l_AdsEudsa_0);
        local v80;
        if not l_status_7 then
            warn("Failure to Start CoreScript module " .. l_AdsEudsa_0.Name .. ".\n" .. l_result_7);
            v80 = nil;
        else
            v80 = l_result_7;
        end;
        if not (not v80 or not v80.starterScript) then
            v80.starterScript();
        end;
    end)();
end;
if v44 then
    coroutine.wrap(function()
        local l_PremiumSponsoredExperienceReporting_0 = l_CorePackages_0.Workspace.Packages.PremiumSponsoredExperienceReporting;
        local l_status_8, l_result_8 = pcall(require, l_PremiumSponsoredExperienceReporting_0);
        local v84;
        if not l_status_8 then
            warn("Failure to Start CoreScript module " .. l_PremiumSponsoredExperienceReporting_0.Name .. ".\n" .. l_result_8);
            v84 = nil;
        else
            v84 = l_result_8;
        end;
        if not (not v84 or not v84.starterScript) then
            v84.starterScript();
        end;
    end)();
end;
if game:GetEngineFeature("EnableVoiceAttention") then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/VoiceAttention", script.Parent);
end;
if v24() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/SoundTelemetry", script.Parent);
end;
coroutine.wrap(v55)(l_Modules_0.ApolloClient);
if v29() then
    coroutine.wrap(v55)(l_Modules_0.ContactList);
end;
if l_isCharacterNameHandlerEnabled_0() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/CharacterNameHandler", script.Parent);
end;
if v38() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/VoiceUserAgency", l_RobloxGui_0);
end;
l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/CoreScriptsGlobalEffects", script.Parent);
require(l_CorePackages_0.Workspace.Packages.SoundManager).SoundManager.init();
if l_GetFFlagEnableSocialContextToast_0() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/SocialContextToast", l_RobloxGui_0);
end;
if v39() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/GameInviteModalGUI", script.Parent);
end;
if v42 then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/ExperienceNotifications", script.Parent);
end;
require(l_CorePackages_0.Workspace.Packages.Achievements).InExpAchievementManager.new():startUp();
if require(l_RobloxGui_0.Modules.Common.Flags.GetFFlagPlayerViewRemoteEnabled)() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/PlayerView", l_RobloxGui_0);
end;
if v41 then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/SendCameraAccessAnalytics", l_RobloxGui_0);
end;
if v43 then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/BulkPurchaseApp", l_RobloxGui_0);
end;
if l_GetFFlagEnableAppChatInExperience_0() then
    l_ScriptContext_0:AddCoreScriptLocal("CoreScripts/AppChatMain", l_RobloxGui_0);
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_TweenService_0 = game:GetService("TweenService");
local v3 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.Settings.Utility);
local v4 = Color3.new(0.1, 0, 0);
local v5 = Color3.new(0, 0, 0);
local _ = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut);
local _ = TweenInfo.new(0.15, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut);
local v8 = TweenInfo.new(0.5, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut, 0, true, 0);
local v9 = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.InOut);
local v10 = nil;
local v11 = {};
local v12 = {};
local v13 = {};
local v14 = {};
local v15 = {};
local v16 = {};
local v17 = {};
local v18 = {};
local v19 = true;
local _ = {
    BoundInputType = 3,
    TableHeader = 2,
    BoundAction = 1
};
local function v23(v21, v22)
    return tostring(v12[v21]) < tostring(v12[v22]);
end;
local function v32(v24, v25)
    local v26 = v14[v24];
    local v27 = v14[v25];
    if not v26 or not v27 then
        return true;
    else
        local v28 = v15[v24];
        local v29 = v15[v25];
        if v28 ~= v29 then
            return tostring(v28) < tostring(v29);
        elseif not v26.isCore or v27.isCore then
            if v26.isCore or not v27.isCore then
                local l_stackOrder_0 = v26.stackOrder;
                local l_stackOrder_1 = v27.stackOrder;
                if not l_stackOrder_0 or not l_stackOrder_1 then
                    return true;
                else
                    return l_stackOrder_1 < l_stackOrder_0;
                end;
            else
                return false;
            end;
        else
            return true;
        end;
    end;
end;
local function v37(v33, v34)
    local v35 = v3:Create("Frame")({
        Name = v33,
        BackgroundTransparency = 1,
        ZIndex = 6,
        Size = UDim2.new(1, 0, 0, v34 or 0)
    });
    local _ = v3:Create("UIListLayout")({
        FillDirection = Enum.FillDirection.Horizontal,
        SortOrder = Enum.SortOrder.LayoutOrder,
        Padding = UDim.new(0, 5),
        Parent = v35
    });
    return v35;
end;
local function v42(v38, v39)
    local v40 = v3:Create("TextButton")({
        Name = v38,
        BackgroundTransparency = 1,
        ZIndex = 6,
        Text = "",
        Size = UDim2.new(1, 0, 0, v39 or 0)
    });
    local _ = v3:Create("UIListLayout")({
        FillDirection = Enum.FillDirection.Horizontal,
        SortOrder = Enum.SortOrder.LayoutOrder,
        Padding = UDim.new(0, 5),
        Parent = v40
    });
    return v40;
end;
local function v45(v43, v44)
    return (v3:Create("Frame")({
        Name = v44,
        BackgroundColor3 = Color3.new(0, 0, 0),
        BackgroundTransparency = 0.75,
        BorderSizePixel = 0,
        Size = UDim2.new(1, 0, 1, 0),
        ZIndex = 6,
        ClipsDescendants = true,
        Parent = v43
    }));
end;
local function v54(v46, v47, v48, v49, v50)
    local v51 = v45(v46, v47);
    local _ = v3:Create("UIAspectRatioConstraint")({
        AspectRatio = v49 or 1,
        Parent = v51
    });
    local _ = v3:Create("ImageLabel")({
        Name = "ColumnImage",
        BackgroundTransparency = 1,
        Position = UDim2.new(0.5, 0, 0.5, 0),
        Size = UDim2.new(v50 or 1, 0, v50 or 1, 0),
        AnchorPoint = Vector2.new(0.5, 0.5),
        ZIndex = 6,
        Image = v48,
        Parent = v51
    });
    return v51;
end;
local function v60(v55, v56, v57)
    local v58 = v45(v55, v56);
    local _ = v3:Create("TextLabel")({
        Name = "ColumnText",
        BackgroundTransparency = 1,
        Position = UDim2.new(0.5, 0, 0.5, 0),
        Size = UDim2.new(1, -10, 1, -10),
        AnchorPoint = Vector2.new(0.5, 0.5),
        ZIndex = 6,
        Text = v57,
        TextSize = 18,
        TextColor3 = Color3.new(1, 1, 1),
        TextXAlignment = Enum.TextXAlignment.Left,
        Font = Enum.Font.SourceSans,
        Parent = v58
    });
    return v58;
end;
local function v69(v61, v62)
    local v63 = 0;
    local v64 = v45(v61, "Inset");
    v64.LayoutOrder = 0;
    v64.BackgroundTransparency = 1;
    v64.Size = UDim2.new(0, 30, 1, 0);
    v63 = (v63 + 30) + 5;
    local v65 = v60(v61, "Priority", "Priority");
    v65.LayoutOrder = 1;
    v65.BackgroundColor3 = v62;
    v65.Size = UDim2.new(0, 80, 1, 0);
    v63 = (v63 + 80) + 5;
    local v66 = v60(v61, "Security", "Security");
    v66.LayoutOrder = 2;
    v66.BackgroundColor3 = v62;
    v66.Size = UDim2.new(0, 80, 1, 0);
    v63 = (v63 + 80) + 5;
    local v67 = v60(v61, "ActionName", "Action Name");
    v67.LayoutOrder = 3;
    v67.BackgroundColor3 = v62;
    v67.Size = UDim2.new(0.25, 0, 1, 0);
    local v68 = v60(v61, "InputTypes", "Input Types");
    v68.LayoutOrder = 4;
    v68.BackgroundColor3 = v62;
    v68.Size = UDim2.new(0.75, -v63 - 5, 1, 0);
    return v64, v65, v66, v67, v68;
end;
local function v84()
    debug.profilebegin("updateContainerCanvas");
    if v19 then
        v19 = false;
        local v70 = 1;
        local v71 = {};
        for _, v73 in pairs(v11) do
            table.insert(v71, v73);
        end;
        table.sort(v71, v23);
        for _, v75 in pairs(v71) do
            local v76 = v12[v75];
            v75.LayoutOrder = v70;
            v70 = v70 + 1;
            local v77 = v17[v76];
            if v77 then
                v77.LayoutOrder = v70;
                v70 = v70 + 1;
            end;
            local v78 = v13[v76];
            if v78 then
                local v79 = {};
                for _, v81 in pairs(v78) do
                    table.insert(v79, v81);
                end;
                table.sort(v79, v32);
                for _, v83 in pairs(v79) do
                    v83.LayoutOrder = v70;
                    v70 = v70 + 1;
                end;
            end;
        end;
    end;
    debug.profileend();
end;
local function v86(v85)
    l_TweenService_0:Create(v10, v9, {
        CanvasPosition = v10.CanvasPosition + Vector2.new(0, v85.AbsolutePosition.Y - v10.AbsolutePosition.Y)
    }):Play();
end;
local v87 = {};
v87.initializeGui = function(v88)
    local v89 = v3:Create("ScrollingFrame")({
        Position = UDim2.new(0.5, 0, 0.5, 0),
        Size = UDim2.new(1, -10, 1, -10),
        AnchorPoint = Vector2.new(0.5, 0.5),
        BorderSizePixel = 0,
        ScrollBarThickness = 4,
        BackgroundTransparency = 1,
        ZIndex = 6,
        Parent = v88
    });
    v10 = v89;
    local v90 = v3:Create("UIListLayout")({
        Padding = UDim.new(0, 5),
        Parent = v89
    });
    v90.SortOrder = Enum.SortOrder.LayoutOrder;
    v90:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
        v10.CanvasSize = UDim2.new(0, 0, 0, v90.AbsoluteContentSize.Y);
    end);
    v87.updateGuis();
    l_ContextActionService_0.BoundActionAdded:connect(function(v91, _, v93, v94)
        v93.isCore = v94;
        v87.updateActionRows(v91, v93);
        v19 = true;
        v84();
    end);
    l_ContextActionService_0.BoundActionRemoved:connect(function(v95, v96, v97)
        v96.isCore = v97;
        v87.removeActionRows(v95, v96);
        v19 = true;
        v84();
    end);
end;
v87.updateBoundInputTypeRow = function(v98)
    if not v11[v98] then
        local v99 = v42("BoundInputType", 30);
        local v100 = v54(v99, "ExpandImage", "rbxasset://textures/ui/ExpandArrowSheet.png", 1, 0.35);
        v100.ColumnImage.ImageRectSize = Vector2.new(21, 21);
        v100.ColumnImage.ImageRectOffset = Vector2.new(0, 0);
        local v101 = v60(v99, "InputType", (tostring(v98)));
        v101.Size = UDim2.new(1, -35, 1, 0);
        v101.ColumnText.Font = Enum.Font.SourceSansBold;
        local v102 = v37("TableHeader", 20);
        v102.Visible = false;
        local _, v104, v105, v106, v107 = v69(v102, v5);
        v104.ColumnText.Font = Enum.Font.SourceSansBold;
        v105.ColumnText.Font = Enum.Font.SourceSansBold;
        v106.ColumnText.Font = Enum.Font.SourceSansBold;
        v107.ColumnText.Font = Enum.Font.SourceSansBold;
        v11[v98] = v99;
        v12[v99] = v98;
        v16[v102] = v98;
        v17[v98] = v102;
        v102.Parent = v10;
        v99.Parent = v10;
        l_TweenService_0:Create(v101, v8, {
            BackgroundColor3 = Color3.new(0.5, 0.5, 0.5)
        }):Play();
        v18[v98] = false;
        v99.MouseButton1Click:connect(function()
            v18[v98] = not v18[v98];
            local v108 = v13[v98];
            if v18[v98] then
                v100.ColumnImage.ImageRectOffset = Vector2.new(21, 0);
                v102.Visible = true;
                if v108 then
                    for _, v110 in pairs(v108) do
                        v110.Visible = true;
                    end;
                end;
            else
                v100.ColumnImage.ImageRectOffset = Vector2.new(0, 0);
                v102.Visible = false;
                if v108 then
                    for _, v112 in pairs(v108) do
                        v112.Visible = false;
                    end;
                end;
            end;
            v84();
            if v18[v98] then
                l_TweenService_0:Create(v101, v8, {
                    BackgroundColor3 = Color3.new(0.5, 0.5, 0.5)
                }):Play();
                v86(v99);
            end;
        end);
    end;
end;
v87.updateActionRowForInputType = function(v113, v114, v115)
    local v116 = v13[v115];
    if not v116 then
        v116 = {};
        v13[v115] = v116;
    end;
    if not v116[v113] then
        local v117 = v37("BoundAction", 20);
        v117.Visible = v18[v115];
        local v118 = {};
        for v119, v120 in pairs(v114.inputTypes) do
            v118[v119] = tostring(v120);
        end;
        local _, v122, v123, v124, v125 = v69(v117, not not v114.isCore and v4 or v5);
        v122.ColumnText.Text = v114.priorityLevel or "Default";
        v123.ColumnText.Text = not v114.isCore and "Developer" or "Core";
        v124.ColumnText.Text = v113;
        v125.ColumnText.Text = table.concat(v118, ", ");
        if v114.isCore then
            v122.ColumnText.Font = Enum.Font.SourceSansItalic;
            v123.ColumnText.Font = Enum.Font.SourceSansItalic;
            v124.ColumnText.Font = Enum.Font.SourceSansItalic;
            v125.ColumnText.Font = Enum.Font.SourceSansItalic;
        end;
        v116[v113] = v117;
        v15[v117] = v115;
        v14[v117] = v114;
        v117.Parent = v10;
        if not v117.Visible then
            local v126 = v11[v115];
            if v126 then
                l_TweenService_0:Create(v126.InputType, v8, {
                    BackgroundColor3 = Color3.new(0.5, 0.5, 0.5)
                }):Play();
            end;
        else
            l_TweenService_0:Create(v124, v8, {
                BackgroundColor3 = Color3.new(0.5, 0.5, 0.5)
            }):Play();
        end;
        local _ = v117;
    end;
end;
v87.updateActionRows = function(v128, v129)
    for _, v131 in pairs(v129.inputTypes) do
        v87.updateBoundInputTypeRow(v131);
        v87.updateActionRowForInputType(v128, v129, v131);
    end;
end;
v87.removeActionRows = function(v132, v133)
    for _, v135 in pairs(v133.inputTypes) do
        local v136 = v13[v135];
        if v136 then
            v136[v132]:Destroy();
            v136[v132] = nil;
            local v137 = true;
            for _, _ in pairs(v136) do
                v137 = false;
                break;
            end;
            if v137 then
                local v140 = v11[v135];
                if v140 then
                    v140:Destroy();
                    v11[v135] = nil;
                end;
                local v141 = v17[v135];
                if v141 then
                    v17[v141] = nil;
                    v141:Destroy();
                    v17[v135] = nil;
                end;
            end;
        end;
    end;
    v84();
    v10.UIListLayout:ApplyLayout();
end;
v87.updateGuis = function()
    for v142, v143 in pairs((l_ContextActionService_0:GetAllBoundCoreActionInfo())) do
        v143.isCore = true;
        v87.updateActionRows(v142, v143);
    end;
    for v144, v145 in pairs((l_ContextActionService_0:GetAllBoundActionInfo())) do
        v145.isCore = false;
        v87.updateActionRows(v144, v145);
    end;
    v19 = true;
    v84();
end;
return v87;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_MarketplaceService_0 = game:GetService("MarketplaceService");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_Players_0 = game:GetService("Players");
local l_UserInputService_0 = game:GetService("UserInputService");
local v6 = require(l_RobloxGui_0.Modules.Ads.AdTeleportPromptUI);
local v7 = require(l_CorePackages_0.Roact);
local v8 = require(l_CorePackages_0.UIBlox);
local v9 = require(l_CorePackages_0.Packages.RoactGamepad);
local v10 = {};
v10.__index = v10;
local v11, v12 = v7.createBinding(1);
v10.new = function(v13, v14)
    assert(v13.Parent ~= nil, "Typechecker assurance, guaranteed by engine");
    local v15 = setmetatable({}, v10);
    v15.window = nil;
    v15.portal = v13;
    v15.hasActiveWindow = false;
    v15.destination = v14;
    v15.fadingIn = true;
    v15.movedAway = false;
    local l_Parent_0 = v13.Parent;
    v15.maxDistance = (l_Parent_0.Size.X / 2 + l_Parent_0.Size.Z) + 2;
    v15.createTime = -1;
    v15.focusController = v9.createFocusController();
    return v15;
end;
v10.acceptPrompt = function(v17)
    v17.portal:TeleportConfirmed(v17.destination, l_Players_0.LocalPlayer);
    v17:closeWindow();
end;
v10.rejectButton = function(v18)
    v18:rejectPrompt(true, false);
end;
v10.rejectPrompt = function(v19, v20, v21)
    v19.portal:TeleportRejected(v20, v21);
    v19:closeWindow();
end;
local function _(v22, v23)
    local v24 = 1 - (1 - v22 / v23) ^ 3;
    if v24 > 1 then
        v24 = 1;
    end;
    return v24;
end;
v10.onHeartbeat = function(v26)
    assert(l_Players_0.LocalPlayer ~= nil, "Typechecker assurance");
    assert(v26.portal.Parent ~= nil, "Typechecker assurance, guaranteed on engine side.");
    if not ((l_Players_0.LocalPlayer.Character ~= nil and l_Players_0.LocalPlayer.Character.PrimaryPart ~= nil) and v26.portal ~= nil) or v26.portal.Parent.CFrame == nil then
        v26:rejectPrompt(false, false);
        return ;
    else
        if v26.fadingIn then
            local v27 = DateTime.now().UnixTimestampMillis - v26.createTime;
            local v28 = v27 > 450;
            local l_v12_0 = v12;
            local v30 = 1 - (1 - (450 - v27) / 450) ^ 3;
            if v30 > 1 then
                v30 = 1;
            end;
            l_v12_0(v30);
            if v28 then
                v26.fadingIn = false;
                v12(0);
            end;
        end;
        assert(l_Players_0.LocalPlayer.Character ~= nil, "Typechecker assurance, guaranteed above.");
        assert(l_Players_0.LocalPlayer.Character.PrimaryPart ~= nil, "Typechecker assurance guaranteed above.");
        if not (not (v26.maxDistance < (l_Players_0.LocalPlayer.Character.PrimaryPart.Position - v26.portal.Parent.Position).Magnitude) or v26.movedAway) then
            v26.createTime = DateTime.now().UnixTimestampMillis;
            v26.movedAway = true;
            v26.fadingIn = false;
        end;
        if v26.movedAway then
            local v31 = DateTime.now().UnixTimestampMillis - v26.createTime;
            local v32 = v31 > 450;
            local l_v12_1 = v12;
            local v34 = 1 - (1 - v31 / 450) ^ 3;
            if v34 > 1 then
                v34 = 1;
            end;
            l_v12_1(v34);
            if v32 then
                v26:rejectPrompt(false, true);
            end;
        end;
        return ;
    end;
end;
local function _(v35)
    return v35.Name:match("^Gamepad*") ~= nil;
end;
v10.focusIfGamepad = function(v37)
    if l_UserInputService_0:GetLastInputType().Name:match("^Gamepad*") ~= nil then
        v37.focusController:captureFocus();
    end;
end;
v10.instantiatePrompt = function(v38, v39, v40)
    local l_AppStyleProvider_0 = v8.App.Style.AppStyleProvider;
    local l_Constants_0 = v8.App.Style.Constants;
    local v43 = {
        Dark = {
            themeName = l_Constants_0.ThemeName.Dark,
            fontName = l_Constants_0.FontName.Gotham
        }
    };
    local v44, v45 = v7.createBinding(UDim2.fromOffset(0, 0));
    v38.window = v7.mount(v7.createElement("ScreenGui", {
        ResetOnSpawn = false,
        IgnoreGuiInset = true,
        DisplayOrder = 1,
        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
        AutoLocalize = false
    }, v7.createElement(l_AppStyleProvider_0, {
        style = v43.Dark
    }, {
        CanvasGroup = v7.createElement(v9.Focusable.CanvasGroup, {
            focusController = v38.focusController,
            Selectable = false,
            GroupTransparency = v11,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = v44,
            Position = UDim2.fromScale(0.5, 0.5),
            AnchorPoint = Vector2.new(0.5, 0.5)
        }, {
            Prompt = v7.createElement(v6, {
                shouldRenderCancelButton = v40,
                experienceName = v39,
                handler = v38,
                onAbsoluteSizeChanged = function(v46)
                    v45(UDim2.fromOffset(v46.AbsoluteSize.X, v46.AbsoluteSize.Y));
                end
            })
        })
    })), l_CoreGui_0, "AdTeleportPrompt");
    v38.hasActiveWindow = true;
    v38:focusIfGamepad();
end;
local function _(v47)
    return l_MarketplaceService_0:GetProductInfo(v47).Name;
end;
v10.fetchTitle = function(v49)
    local l_Name_0 = l_MarketplaceService_0:GetProductInfo(v49.destination).Name;
    if l_Name_0 == "Grey Adidas Shoes" then
        error("Name not found.");
        return ;
    else
        return l_Name_0;
    end;
end;
v10.closeWindow = function(v51)
    assert(v51.hasActiveWindow == true, "Only way unmounting makes sense is if window is active.");
    v7.unmount(v51.window);
    v51.hasActiveWindow = false;
end;
v10.updateCreateTime = function(v52)
    v52.createTime = DateTime.now().UnixTimestampMillis;
end;
return v10;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.UIBlox);
local v6 = require(l_RobloxGui_0.Modules.RobloxTranslator);
local l_ButtonType_0 = v5.App.Button.Enum.ButtonType;
local l_ExternalEventConnection_0 = v5.Utility.ExternalEventConnection;
local l_InteractiveAlert_0 = v5.App.Dialog.Alert.InteractiveAlert;
local l_withStyle_0 = v5.Core.Style.withStyle;
local l_UserInputService_0 = game:GetService("UserInputService");
local v12 = v4.Component:extend("InteractiveAlert");
v12.init = function(v13)
    v13.state = {
        screenSize = game.Workspace.CurrentCamera.ViewportSize
    };
    v13.updateViewport = function()
        v13:setState({
            screenSize = game.Workspace.CurrentCamera.ViewportSize
        });
    end;
end;
v12.renderWithStyle = function(v14, _)
    assert(game.Workspace.CurrentCamera ~= nil, "Appeasing the type checking");
    return v4.createFragment({
        InteractiveAlert = v4.createElement(l_InteractiveAlert_0, {
            screenSize = v14.state.screenSize,
            title = v14:generateTitle(),
            bodyText = v14:shouldGenerateBody(),
            buttonStackInfo = {
                buttons = v14:generateButtons()
            },
            onAbsoluteSizeChanged = v14.props.onAbsoluteSizeChanged
        }),
        HeartbeatConnection = v4.createElement(l_ExternalEventConnection_0, {
            event = l_RunService_0.Heartbeat,
            callback = function()
                v14.props.handler:onHeartbeat();
            end
        }),
        GamepadFocusConnection = v4.createElement(l_ExternalEventConnection_0, {
            event = l_UserInputService_0.LastInputTypeChanged,
            callback = function()
                v14.props.handler:focusIfGamepad();
            end
        }),
        viewportSizeListener = v4.createElement(l_ExternalEventConnection_0, {
            event = game.Workspace.CurrentCamera:GetPropertyChangedSignal("ViewportSize"),
            callback = v14.updateViewport
        })
    });
end;
v12.render = function(v16)
    return l_withStyle_0(function(v17)
        return v16:renderWithStyle(v17);
    end);
end;
v12.generateButtons = function(v18)
    local v19 = v6:FormatByKey("CoreScripts.Ads.Action.PortalPromptAccept");
    local v20 = v6:FormatByKey("CoreScripts.Ads.Action.PortalPromptCancel");
    local v21 = {
        buttonType = l_ButtonType_0.PrimarySystem,
        props = {
            onActivated = function()
                v18.props.handler:acceptPrompt();
            end,
            text = v19
        },
        isDefaultChild = true
    };
    local v22 = {
        props = {
            onActivated = function()
                v18.props.handler:rejectButton();
            end,
            text = v20
        }
    };
    if not v18.props.shouldRenderCancelButton then
        return {
            v21
        };
    else
        return {
            v22,
            v21
        };
    end;
end;
v12.shouldGenerateBody = function(v23)
    if not v23.props.shouldRenderCancelButton then
        return v6:FormatByKey("CoreScripts.Ads.Label.PortalPromptDismissWalkAway");
    else
        return nil;
    end;
end;
v12.generateTitle = function(v24)
    if not v24.props.experienceName then
        return v6:FormatByKey("CoreScripts.Ads.Label.PortalPromptTeleportToWithoutName");
    else
        return v6:FormatByKey("CoreScripts.Ads.Label.PortalPromptTeleportToWithName", {
            RBX_NAME = v24.props.experienceName
        });
    end;
end;
return v12;


local v0 = {};
v0.__index = v0;
v0.new = function()
    local v1 = {};
    setmetatable(v1, v0);
    return v1;
end;
local function _(v2)
    return v2:find("rbxassetid://");
end;
v0.addPlay = function(v4, v5, v6, v7)
    if v5:find("rbxassetid://") then
        v5 = v5:sub(14);
        if v4[v5] == nil then
            v4[v5] = {
                playtime = v6,
                loopcount = v7
            };
            return ;
        else
            local v8 = v4[v5];
            v8.playtime = v8.playtime + v6;
            v8 = v4[v5];
            v8.loopcount = v8.loopcount + v7;
            return ;
        end;
    else
        return ;
    end;
end;
return v0;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_GuiService_0 = game:GetService("GuiService");
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local l_Modules_0 = l_RobloxGui_0:WaitForChild("Modules");
local l_Settings_0 = l_Modules_0:WaitForChild("Settings");
local l_AvatarContextMenu_0 = l_Modules_0:WaitForChild("AvatarContextMenu");
local v6 = nil;
local l_BindableEvent_0 = Instance.new("BindableEvent");
local _ = require(l_AvatarContextMenu_0:WaitForChild("ContextMenuUtil"));
local _ = require(l_Settings_0:WaitForChild("Utility"));
local v10 = {};
v10.__index = v10;
v10.CreateContextMenuHolder = function(_, _)
    local l_Frame_0 = Instance.new("Frame");
    l_Frame_0.Name = "AvatarContextMenu";
    l_Frame_0.Position = UDim2.new(0, 0, 0, 0);
    l_Frame_0.Size = UDim2.new(1, 0, 1, 0);
    l_Frame_0.BackgroundTransparency = 1;
    l_Frame_0.Parent = l_RobloxGui_0;
    l_Frame_0.AutoLocalize = false;
    return l_Frame_0;
end;
v10.CreateLeaveMenuButton = function(v14, v15, v16)
    local function v17()
        v14.CloseMenuFunc();
    end;
    local l_ImageButton_0 = Instance.new("ImageButton");
    l_ImageButton_0.Name = "CloseMenuButton";
    l_ImageButton_0.BackgroundTransparency = 1;
    l_ImageButton_0.AnchorPoint = Vector2.new(1, 0);
    l_ImageButton_0.Position = UDim2.new(1, -10, 0, 10);
    l_ImageButton_0.Size = UDim2.new(0.05, 0, 0.1, 0);
    l_ImageButton_0.Image = v16.LeaveMenuImage;
    l_ImageButton_0.Selectable = false;
    l_ImageButton_0.Activated:Connect(v17);
    local l_UIAspectRatioConstraint_0 = Instance.new("UIAspectRatioConstraint");
    l_UIAspectRatioConstraint_0.AspectType = Enum.AspectType.FitWithinMaxSize;
    l_UIAspectRatioConstraint_0.DominantAxis = Enum.DominantAxis.Height;
    l_UIAspectRatioConstraint_0.AspectRatio = 1;
    l_UIAspectRatioConstraint_0.Parent = l_ImageButton_0;
    l_ImageButton_0.Parent = v15;
    return l_ImageButton_0;
end;
local function _(v20)
    if v20 == nil then
        return ;
    else
        local v21 = nil;
        workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
            local l_CurrentCamera_0 = workspace.CurrentCamera;
            if v21 then
                v21:Disconnect();
            end;
            v21 = l_CurrentCamera_0:GetPropertyChangedSignal("ViewportSize"):Connect(v20);
            v20();
        end);
        local l_CurrentCamera_1 = workspace.CurrentCamera;
        if v21 then
            v21:Disconnect();
        end;
        v21 = l_CurrentCamera_1:GetPropertyChangedSignal("ViewportSize"):Connect(v20);
        v20();
        return ;
    end;
end;
v10.CreateMenuFrame = function(v25, v26)
    local l_v25_ContextMenuHolder_0 = v25:CreateContextMenuHolder();
    local l_ImageButton_1 = Instance.new("ImageButton");
    l_ImageButton_1.Name = "Menu";
    l_ImageButton_1.AnchorPoint = v26.AnchorPoint;
    l_ImageButton_1.Size = v26.Size;
    l_ImageButton_1.Position = v26.OnScreenPosition;
    l_ImageButton_1.BackgroundTransparency = v26.BackgroundTransparency;
    l_ImageButton_1.BackgroundColor3 = v26.BackgroundColor;
    l_ImageButton_1.Image = v26.BackgroundImage;
    l_ImageButton_1.ScaleType = v26.BackgroundImageScaleType;
    l_ImageButton_1.SliceCenter = v26.BackgroundImageSliceCenter;
    l_ImageButton_1.AutoButtonColor = false;
    l_ImageButton_1.BorderSizePixel = 0;
    l_ImageButton_1.Selectable = false;
    l_ImageButton_1.Visible = false;
    l_ImageButton_1.Active = true;
    l_ImageButton_1.ClipsDescendants = true;
    l_ImageButton_1.Modal = true;
    l_GuiService_0:AddSelectionParent("AvatarContextMenuGroup", l_ImageButton_1);
    local l_UIAspectRatioConstraint_1 = Instance.new("UIAspectRatioConstraint");
    l_UIAspectRatioConstraint_1.AspectType = Enum.AspectType.ScaleWithParentSize;
    l_UIAspectRatioConstraint_1.DominantAxis = Enum.DominantAxis.Height;
    l_UIAspectRatioConstraint_1.Name = "MenuAspectRatio";
    l_UIAspectRatioConstraint_1.AspectRatio = v26.AspectRatio;
    l_UIAspectRatioConstraint_1.Parent = l_ImageButton_1;
    local function v31()
        local l_ViewportSize_0 = workspace.CurrentCamera.ViewportSize;
        if l_ViewportSize_0.x < l_ViewportSize_0.y then
            l_UIAspectRatioConstraint_1.DominantAxis = Enum.DominantAxis.Width;
            return ;
        else
            l_UIAspectRatioConstraint_1.DominantAxis = Enum.DominantAxis.Height;
            return ;
        end;
    end;
    if not (v31 == nil) then
        local v32 = nil;
        do
            local l_v32_0 = v32;
            workspace:GetPropertyChangedSignal("CurrentCamera"):Connect(function()
                local l_CurrentCamera_2 = workspace.CurrentCamera;
                if l_v32_0 then
                    l_v32_0:Disconnect();
                end;
                l_v32_0 = l_CurrentCamera_2:GetPropertyChangedSignal("ViewportSize"):Connect(v31);
                v31();
            end);
            local l_CurrentCamera_3 = workspace.CurrentCamera;
            if l_v32_0 then
                l_v32_0:Disconnect();
            end;
            l_v32_0 = l_CurrentCamera_3:GetPropertyChangedSignal("ViewportSize"):Connect(v31);
            v31();
        end;
    end;
    local l_UISizeConstraint_0 = Instance.new("UISizeConstraint");
    l_UISizeConstraint_0.Name = "MenuSizeConstraint";
    l_UISizeConstraint_0.MaxSize = v26.MaxSize;
    l_UISizeConstraint_0.MinSize = v26.MinSize;
    l_UISizeConstraint_0.Parent = l_ImageButton_1;
    local l_Frame_1 = Instance.new("Frame");
    l_Frame_1.Name = "Content";
    l_Frame_1.Size = UDim2.new(1, 0, 1, 0);
    l_Frame_1.BackgroundTransparency = 1;
    l_Frame_1.Parent = l_ImageButton_1;
    local l_UIListLayout_0 = Instance.new("UIListLayout");
    l_UIListLayout_0.HorizontalAlignment = Enum.HorizontalAlignment.Center;
    l_UIListLayout_0.VerticalAlignment = Enum.VerticalAlignment.Top;
    l_UIListLayout_0.SortOrder = Enum.SortOrder.LayoutOrder;
    l_UIListLayout_0.Parent = l_Frame_1;
    local l_ScrollingFrame_0 = Instance.new("ScrollingFrame");
    l_ScrollingFrame_0.Name = "ContextActionList";
    l_ScrollingFrame_0.AnchorPoint = Vector2.new(0.5, 1);
    l_ScrollingFrame_0.BackgroundColor3 = v26.ButtonFrameColor;
    l_ScrollingFrame_0.BackgroundTransparency = v26.ButtonFrameTransparency;
    l_ScrollingFrame_0.BorderSizePixel = 0;
    l_ScrollingFrame_0.LayoutOrder = 2;
    l_ScrollingFrame_0.Size = UDim2.new(1, -12, 0.54, 0);
    l_ScrollingFrame_0.CanvasSize = UDim2.new(0, 0, 0, 208);
    l_ScrollingFrame_0.ScrollBarThickness = 4;
    l_ScrollingFrame_0.Selectable = false;
    l_ScrollingFrame_0.Parent = l_Frame_1;
    local l_UIListLayout_1 = Instance.new("UIListLayout");
    l_UIListLayout_1.HorizontalAlignment = Enum.HorizontalAlignment.Center;
    l_UIListLayout_1.SortOrder = Enum.SortOrder.LayoutOrder;
    l_UIListLayout_1.VerticalAlignment = Enum.VerticalAlignment.Top;
    l_UIListLayout_1:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
        l_ScrollingFrame_0.CanvasSize = UDim2.new(0, 0, 0, l_UIListLayout_1.AbsoluteContentSize.Y);
    end);
    l_UIListLayout_1.Parent = l_ScrollingFrame_0;
    local l_TextButton_0 = Instance.new("TextButton");
    l_TextButton_0.Name = "NameTag";
    l_TextButton_0.AnchorPoint = Vector2.new(0.5, 1);
    l_TextButton_0.BackgroundColor3 = v26.NameTagColor;
    l_TextButton_0.AutoButtonColor = false;
    l_TextButton_0.BorderSizePixel = 0;
    l_TextButton_0.LayoutOrder = 1;
    l_TextButton_0.Size = UDim2.new(1, -12, 0.16, 0);
    l_TextButton_0.Font = v26.Font;
    l_TextButton_0.TextColor3 = v26.TextColor;
    l_TextButton_0.TextSize = 24 * v26.TextScale;
    l_TextButton_0.Text = "";
    l_TextButton_0.TextXAlignment = Enum.TextXAlignment.Center;
    l_TextButton_0.TextYAlignment = Enum.TextYAlignment.Center;
    l_TextButton_0.Selectable = false;
    l_TextButton_0.Parent = l_Frame_1;
    local l_Frame_2 = Instance.new("Frame");
    l_Frame_2.Name = "Underline";
    l_Frame_2.BackgroundColor3 = v26.NameUnderlineColor;
    l_Frame_2.AnchorPoint = Vector2.new(0, 1);
    l_Frame_2.BorderSizePixel = 0;
    l_Frame_2.Position = UDim2.new(0, 0, 1, 0);
    l_Frame_2.Size = UDim2.new(1, 0, 0, 2);
    l_Frame_2.Parent = l_TextButton_0;
    v25:CreateLeaveMenuButton(l_ImageButton_1, v26);
    l_ImageButton_1.Parent = l_v25_ContextMenuHolder_0;
    v25.ContextMenuFrame = l_ImageButton_1;
    return l_ImageButton_1;
end;
v10.UpdateGuiTheme = function(v43, v44)
    v43.ContextMenuFrame.Size = v44.Size;
    v43.ContextMenuFrame.AnchorPoint = v44.AnchorPoint;
    v43.ContextMenuFrame.BackgroundTransparency = v44.BackgroundTransparency;
    v43.ContextMenuFrame.BackgroundColor3 = v44.BackgroundColor;
    v43.ContextMenuFrame.Image = v44.BackgroundImage;
    v43.ContextMenuFrame.ScaleType = v44.BackgroundImageScaleType;
    v43.ContextMenuFrame.SliceCenter = v44.BackgroundImageSliceCenter;
    v43.ContextMenuFrame.CloseMenuButton.Image = v44.LeaveMenuImage;
    v43.ContextMenuFrame.MenuSizeConstraint.MaxSize = v44.MaxSize;
    v43.ContextMenuFrame.MenuSizeConstraint.MinSize = v44.MinSize;
    v43.ContextMenuFrame.MenuAspectRatio.AspectRatio = v44.AspectRatio;
    local l_Content_0 = v43.ContextMenuFrame.Content;
    l_Content_0.ContextActionList.BackgroundColor3 = v44.ButtonFrameColor;
    l_Content_0.ContextActionList.BackgroundTransparency = v44.ButtonFrameTransparency;
    l_Content_0.NameTag.BackgroundColor3 = v44.NameTagColor;
    l_Content_0.NameTag.Font = v44.Font;
    l_Content_0.NameTag.TextColor3 = v44.TextColor;
    l_Content_0.NameTag.TextSize = 24 * v44.TextScale;
    l_Content_0.NameTag.Underline.BackgroundColor3 = v44.NameUnderlineColor;
    if v6 then
        v6:UpdateGuiTheme(v44);
    end;
end;
v10.BuildPlayerCarousel = function(v46, v47, v48)
    if not v6 then
        v6 = require(l_AvatarContextMenu_0.PlayerCarousel).new(v48);
        v6.rbxGui.Parent = v46.ContextMenuFrame.Content;
    end;
    v6:ClearPlayerEntries();
    if v46.PlayerChangedConnection then
        v46.PlayerChangedConnection:Disconnect();
    end;
    v46.PlayerChangedConnection = v6.PlayerChanged:Connect(function(v49)
        if not v49 then
            v46.ContextMenuFrame.Content.NameTag.Text = "";
        else
            v46.ContextMenuFrame.Content.NameTag.Text = v49.Name;
        end;
        l_BindableEvent_0:Fire(v49);
    end);
    for v50 = 1, #v47 do
        v6:CreatePlayerEntry(v47[v50][1], v47[v50][2]);
    end;
    v6:FadeTowardsEdges();
    v6:AddCarouselDivider();
end;
v10.RemovePlayerEntry = function(_, v52)
    if v6 then
        v6:RemovePlayerEntry(v52);
        return ;
    else
        return ;
    end;
end;
v10.GetBottomScreenPaddingConstant = function(_)
    return 0.02;
end;
v10.SetCloseMenuFunc = function(v54, v55)
    v54.CloseMenuFunc = v55;
end;
v10.SwitchToPlayerEntry = function(_, v57, v58)
    if v6 then
        v6:SwitchToPlayerEntry(v57, v58);
        return ;
    else
        return ;
    end;
end;
v10.OffsetPlayerEntry = function(_, v60)
    if v6 then
        v6:OffsetPlayerEntry(v60);
        return ;
    else
        return ;
    end;
end;
v10.GetSelectedPlayer = function(_)
    if v6 then
        return v6:GetSelectedPlayer();
    else
        return nil;
    end;
end;
v10.new = function()
    local v62 = setmetatable({}, v10);
    v62.CloseMenuFunc = nil;
    v62.ContextMenuFrame = nil;
    v62.LastSetPlayerIcon = nil;
    v62.PlayerChangedConnection = nil;
    v62.SelectedPlayerChanged = l_BindableEvent_0.Event;
    return v62;
end;
return v10.new();