return function(p,...)assert(type(p)=="\102\117\110\099\116\105\111\110")local W={...}local S=select("\035",...)local a=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")a.Event:Connect(function()p(unpack(W,1,S))end)a:Fire()a:Destroy()end


return function(func, ...)
	assert(type(func) == "function")

	local args = {...}
	local count = select("#", ...)

	local bindable = Instance.new("BindableEvent")
	bindable.Event:Connect(function()
		func(unpack(args, 1, count))
	end)

	bindable:Fire()
	bindable:Destroy()
end
