function GuiController.getOtherScreenGuis(g)local p=Cryo.List.filter(g.player.PlayerGui:GetDescendants(),function(p)local J=false for g,I in ipairs(g.whitelist)do if I:getValue()==p then J=true break end end return p:IsA("\083\099\114\101\101\110\071\117\105")and(p.Enabled and not J)end)return p end function GuiController.getShownCoreGuis(g)local p=Cryo.List.filter(Enum.CoreGuiType:GetEnumItems(),function(p)if Enum.CoreGuiType.PlayerList==p or Enum.CoreGuiType.All==p then return false end return g.StarterGui:GetCoreGuiEnabled(p)end)return p end return GuiController
-- Returns all screen GUI objects
function GuiController:getOtherScreenGuis()
	local instances = Cryo.List.filter(self.player.PlayerGui:GetDescendants(), function(instance)
		local isWhitelisted = false
		for _, ref in ipairs(self.whitelist) do
			if ref:getValue() == instance then
				isWhitelisted = true
				break
			end
		end

		return instance:IsA("ScreenGui") and instance.Enabled and not isWhitelisted
	end)

	return instances
end

function GuiController:getShownCoreGuis()
	local shownCoreGuis = Cryo.List.filter(Enum.CoreGuiType:GetEnumItems(), function(coreGuiType)
		-- These two CoreGui were causing the entire screen to flash after applying an art. Not sure
		-- what's the underlying reason, but filtering them until we can figure it out.
		if Enum.CoreGuiType.PlayerList == coreGuiType or Enum.CoreGuiType.All == coreGuiType then
			return false
		end
		return self.StarterGui:GetCoreGuiEnabled(coreGuiType)
	end)

	return shownCoreGuis
end

return GuiController
