local v={}v.__index=v local P=require(script:WaitForChild("\083\109\111\111\116\104\068\097\109\112"))function v.new(i,n)assert(typeof(i)=="\086\101\099\116\111\114\051","\105\110\105\116\105\097\108\086\097\108\117\101 \115\104\111\117\108\100 \098\101 \086\101\099\116\111\114\051")assert(typeof(n)=="\110\117\109\098\101\114","\115\109\111\111\116\104\084\105\109\101 \115\104\111\117\108\100 \098\101 \097 \110\117\109\098\101\114")assert(n>=0,"\115\109\111\111\116\104\084\105\109\101 \109\117\115\116 \098\101 \097 \112\111\115\105\116\105\118\101 \110\117\109\098\101\114")local l=setmetatable({Value=i,Goal=i;SmoothTime=n},v)l._smoothDamp=P.new()return l end function v.Update(v,P)if P then v.Goal=P else P=v.Goal end local i=v._smoothDamp:Update(v.Value,P,v.SmoothTime)v.Value=i return i end function v.UpdateAngle(v,P)if P then v.Goal=P else P=v.Goal end local i=v._smoothDamp:UpdateAngle(v.Value,P,v.SmoothTime)v.Value=i return i end function v.SetMaxSpeed(v,P)v._smoothDamp.MaxSpeed=P end function v.GetMaxSpeed(v)return v._smoothDamp.MaxSpeed end return v


local v1 = {};
v1.__index = v1;
local u1 = require(script:WaitForChild("SmoothDamp"));
function v1.new(p1, p2)
	assert(typeof(p1) == "Vector3", "initialValue should be Vector3");
	assert(typeof(p2) == "number", "smoothTime should be a number");
	assert(p2 >= 0, "smoothTime must be a positive number");
	local v2 = setmetatable({
		Value = p1, 
		Goal = p1, 
		SmoothTime = p2
	}, v1);
	v2._smoothDamp = u1.new();
	return v2;
end;
function v1.Update(p3, p4)
	if p4 then
		p3.Goal = p4;
	else
		p4 = p3.Goal;
	end;
	local v3 = p3._smoothDamp:Update(p3.Value, p4, p3.SmoothTime);
	p3.Value = v3;
	return v3;
end;
function v1.UpdateAngle(p5, p6)
	if p6 then
		p5.Goal = p6;
	else
		p6 = p5.Goal;
	end;
	local v4 = p5._smoothDamp:UpdateAngle(p5.Value, p6, p5.SmoothTime);
	p5.Value = v4;
	return v4;
end;
function v1.SetMaxSpeed(p7, p8)
	p7._smoothDamp.MaxSpeed = p8;
end;
function v1.GetMaxSpeed(p9)
	return p9._smoothDamp.MaxSpeed;
end;
return v1;
