function ServiceBag.GetService(z,a)if typeof(a)=="\073\110\115\116\097\110\099\101"then a=require(a)end assert(type(a)=="\116\097\098\108\101","\066\097\100 \115\101\114\118\105\099\101\084\121\112\101 \100\101\102\105\110\105\116\105\111\110")local d=z._services[a]if d then z:_ensureInitialization(a)return z._services[a]else if z._parentProvider then return z._parentProvider:GetService(a)end z:_addServiceType(a)z:_ensureInitialization(a)return z._services[a]end end

function ServiceBag:GetService(serviceType)
	if typeof(serviceType) == "Instance" then
		serviceType = require(serviceType)
	end

	assert(type(serviceType) == "table", "Bad serviceType definition")

	local service = self._services[serviceType]
	if service then
		self:_ensureInitialization(serviceType)
		return self._services[serviceType]
	else
		if self._parentProvider then
			return self._parentProvider:GetService(serviceType)
		end

		-- Try to add the service if we're still initializing services
		self:_addServiceType(serviceType)
		self:_ensureInitialization(serviceType)
		return self._services[serviceType]
	end
end
