if game:GetService("RunService"):IsStudio() then
do
owner = game.Players:GetPlayerFromCharacter(script.Parent)
script.Parent = workspace
NLS = function(src, par)
local ls = script.LocalScript:Clone()
ls.src.Value = src
ls.Parent = par
ls.Enabled = true
return ls
end
end
end
game:GetService("PhysicsService"):RegisterCollisionGroup("NoCol")
-- actual script below
local useAlternativeParts = false
function make()
local tries = {"SpawnLocation","FlagStand","Seat","VehicleSeat"}
local pie
for i,v in pairs(tries) do
pcall(function()
pie = Instance.new(v)
end)
if pie then
if pie:IsA("Seat") or pie:IsA("VehicleSeat") then
pie.Disabled = true
elseif pie:IsA("SpawnLocation") then
pie.Enabled = false
end
return pie
end
end
end
local function DecodeUnion(Values,Flags,Parse,data)
local m = Instance.new("Folder")
m.Name = "UnionCache ["..tostring(math.random(1,9999)).."]"
m.Archivable = false
m.Parent = game:GetService("ServerStorage")
local Union,Subtract = {},{}
if not data then
data = Parse('B')
end
local ByteLength = (data % 4) + 1
local Length = Parse('I'..ByteLength)
local ValueFMT = ('I'..Flags[1])
local iscylinder = false
for i = 1,Length do
local data = Parse('B')
local part
local isNegate = bit32.band(data,0b10000000) > 0
local isUnion = bit32.band(data,0b01000000) > 0
if isUnion then
part = DecodeUnion(Values,Flags,Parse,data)
else
local isMesh = data % 2 == 1
local ClassName = Values[Parse(ValueFMT)]
part = Instance.new(ClassName)
part.Size = Values[Parse(ValueFMT)]
part.Position = Values[Parse(ValueFMT)]
part.Orientation = Values[Parse(ValueFMT)]
if isMesh then
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Values[Parse(ValueFMT)]
if mesh.MeshType == Enum.MeshType.Cylinder then
mesh:Destroy()
mesh = Instance.new("CylinderMesh")
end
mesh.Scale = Values[Parse(ValueFMT)]
mesh.Offset = Values[Parse(ValueFMT)]
mesh.Parent = part
end
end
part.Parent = m
table.insert(isNegate and Subtract or Union,part)
end
local first = table.remove(Union,1)
if #Union>0 then
first = first:UnionAsync(Union)
end
if #Subtract>0 then
first = first:SubtractAsync(Subtract)
end
m:Destroy()
return first
end
local function Decode(str)
local StringLength = #str
-- Base64 decoding
do
local decoder = {}
for b64code, char in pairs(('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='):split('')) do
decoder[char:byte()] = b64code-1
end
local n = StringLength
local t,k = table.create(math.floor(n/4)+1),1
local padding = str:sub(-2) == '==' and 2 or str:sub(-1) == '=' and 1 or 0
for i = 1, padding > 0 and n-4 or n, 4 do
local a, b, c, d = str:byte(i,i+3)
local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40 + decoder[d]
t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8),bit32.extract(v,0,8))
k = k + 1
end
if padding == 1 then
local a, b, c = str:byte(n-3,n-1)
local v = decoder[a]*0x40000 + decoder[b]*0x1000 + decoder[c]*0x40
t[k] = string.char(bit32.extract(v,16,8),bit32.extract(v,8,8))
elseif padding == 2 then
local a, b = str:byte(n-3,n-2)
local v = decoder[a]*0x40000 + decoder[b]*0x1000
t[k] = string.char(bit32.extract(v,16,8))
end
str = table.concat(t)
end
local Position = 1
local function Parse(fmt)
local Values = {string.unpack(fmt,str,Position)}
Position = table.remove(Values)
return table.unpack(Values)
end
local Settings = Parse('B')
local Flags = Parse('B')
Flags = {
--[[ValueIndexByteLength]] bit32.extract(Flags,6,2)+1,
--[[InstanceIndexByteLength]] bit32.extract(Flags,4,2)+1,
--[[ConnectionsIndexByteLength]] bit32.extract(Flags,2,2)+1,
--[[MaxPropertiesLengthByteLength]] bit32.extract(Flags,0,2)+1,
--[[Use Double instead of Float]] bit32.band(Settings,0b1) > 0
}
local ValueFMT = ('I'..Flags[1])
local InstanceFMT = ('I'..Flags[2])
local ConnectionFMT = ('I'..Flags[3])
local PropertyLengthFMT = ('I'..Flags[4])
local ValuesLength = Parse(ValueFMT)
local Values = table.create(ValuesLength)
local CFrameIndexes = {}
local ValueDecoders = {
--!!Start
[1] = function(Modifier)
return Parse('s'..Modifier)
end,
--!!Split
[2] = function(Modifier)
return Modifier ~= 0
end,
--!!Split
[3] = function()
return Parse('d')
end,
--!!Split
[4] = function(_,Index)
table.insert(CFrameIndexes,{Index,Parse(('I'..Flags[1]):rep(3))})
end,
--!!Split
[5] = {CFrame.new,Flags[5] and 'dddddddddddd' or 'ffffffffffff'},
--!!Split
[6] = {Color3.fromRGB,'BBB'},
--!!Split
[7] = {BrickColor.new,'I2'},
--!!Split
[8] = function(Modifier)
local len = Parse('I'..Modifier)
local kpts = table.create(len)
for i = 1,len do
kpts[i] = ColorSequenceKeypoint.new(Parse('f'),Color3.fromRGB(Parse('BBB')))
end
return ColorSequence.new(kpts)
end,
--!!Split
[9] = function(Modifier)
local len = Parse('I'..Modifier)
local kpts = table.create(len)
for i = 1,len do
kpts[i] = NumberSequenceKeypoint.new(Parse(Flags[5] and 'ddd' or 'fff'))
end
return NumberSequence.new(kpts)
end,
--!!Split
[10] = {Vector3.new,Flags[5] and 'ddd' or 'fff'},
--!!Split
[11] = {Vector2.new,Flags[5] and 'dd' or 'ff'},
--!!Split
[12] = {UDim2.new,Flags[5] and 'di2di2' or 'fi2fi2'},
--!!Split
[13] = {Rect.new,Flags[5] and 'dddd' or 'ffff'},
--!!Split
[14] = function()
local flags = Parse('B')
local ids = {"Top","Bottom","Left","Right","Front","Back"}
local t = {}
for i = 0,5 do
if bit32.extract(flags,i,1)==1 then
table.insert(t,Enum.NormalId[ids[i+1]])
end
end
return Axes.new(unpack(t))
end,
--!!Split
[15] = function()
local flags = Parse('B')
local ids = {"Top","Bottom","Left","Right","Front","Back"}
local t = {}
for i = 0,5 do
if bit32.extract(flags,i,1)==1 then
table.insert(t,Enum.NormalId[ids[i+1]])
end
end
return Faces.new(unpack(t))
end,
--!!Split
[16] = {PhysicalProperties.new,Flags[5] and 'ddddd' or 'fffff'},
--!!Split
[17] = {NumberRange.new,Flags[5] and 'dd' or 'ff'},
--!!Split
[18] = {UDim.new,Flags[5] and 'di2' or 'fi2'},
--!!Split
[19] = function()
return Ray.new(Vector3.new(Parse(Flags[5] and 'ddd' or 'fff')),Vector3.new(Parse(Flags[5] and 'ddd' or 'fff')))
end
--!!End
}
for i = 1,ValuesLength do
local TypeAndModifier = Parse('B')
local Type = bit32.band(TypeAndModifier,0b11111)
local Modifier = (TypeAndModifier - Type) / 0b100000
local Decoder = ValueDecoders[Type]
if type(Decoder)=='function' then
Values[i] = Decoder(Modifier,i)
else
Values[i] = Decoder[1](Parse(Decoder[2]))
end
end
for i,t in pairs(CFrameIndexes) do
Values[t[1]] = CFrame.fromMatrix(Values[t[2]],Values[t[3]],Values[t[4]])
end
local InstancesLength = Parse(InstanceFMT)
local Instances = {}
local NoParent = {}
for i = 1,InstancesLength do
local ClassName = Values[Parse(ValueFMT)]
local obj
local MeshPartMesh,MeshPartScale
if ClassName == "UnionOperation" then
obj = DecodeUnion(Values,Flags,Parse)
obj.UsePartColor = true
elseif ClassName:find("Script") then
obj = Instance.new("Folder")
Script(obj,ClassName=='ModuleScript')
elseif ClassName == "MeshPart" then
obj = useAlternativeParts and make() or Instance.new("Part")
obj.Name = "Part"
MeshPartMesh = Instance.new("SpecialMesh")
MeshPartMesh.MeshType = Enum.MeshType.FileMesh
MeshPartMesh.Parent = obj
elseif ClassName == "Part" and useAlternativeParts then
obj = make()
obj.Name = "Part"
elseif ClassName == "TextLabel" then
obj = Instance.new("TextBox")
obj.Interactable = false
obj.TextEditable = false
obj.ClearTextOnFocus = false
obj.Name = "TextLabel"
else
obj = Instance.new(ClassName)
end
local Parent = Instances[Parse(InstanceFMT)]
local PropertiesLength = Parse(PropertyLengthFMT)
local AttributesLength = Parse(PropertyLengthFMT)
Instances[i] = obj
for i = 1,PropertiesLength do
local Prop,Value = Values[Parse(ValueFMT)],Values[Parse(ValueFMT)]
-- ok this looks awful
if MeshPartMesh then
if Prop == "MeshId" then
MeshPartMesh.MeshId = Value
continue
elseif Prop == "TextureID" then
MeshPartMesh.TextureId = Value
continue
elseif Prop == "Size" then
if not MeshPartScale then
MeshPartScale = Value
else
MeshPartMesh.Scale = Value / MeshPartScale
end
elseif Prop == "MeshSize" then
if not MeshPartScale then
MeshPartScale = Value
MeshPartMesh.Scale = obj.Size / Value
else
MeshPartMesh.Scale = MeshPartScale / Value
end
continue
end
end
obj[Prop] = Value
end
if MeshPartMesh then
if MeshPartMesh.MeshId=='' then
if MeshPartMesh.TextureId=='' then
MeshPartMesh.TextureId = 'rbxasset://textures/meshPartFallback.png'
end
MeshPartMesh.Scale = obj.Size
end
end
for i = 1,AttributesLength do
obj:SetAttribute(Values[Parse(ValueFMT)],Values[Parse(ValueFMT)])
end
if not Parent then
table.insert(NoParent,obj)
else
obj.Parent = Parent
end
end
local ConnectionsLength = Parse(ConnectionFMT)
for i = 1,ConnectionsLength do
local a,b,c = Parse(InstanceFMT),Parse(ValueFMT),Parse(InstanceFMT)
Instances[a][Values[b]] = Instances[c]
end
return NoParent
end
local build = 'AEBZASEFTW9kZWwhBE5hbWUhE3Y4N192aXNfdXZjb3JyZWN0ZWQhCldvcmxkUGl2b3QETAFNAU4BIQZGb2xkZXIhA3RycyENU3Bhd25Mb2NhdGlvbiEHamV0cGFjayEIQW5jaG9yZWQiIQZDRnJhbWUEEQBNAU4BIQpDYW5Db2xsaWRlAiEIUG9zaXRpb24K6EiJv1ju'
..'80AcW/lBIQRTaXplCg4EkkBard4/uRWePyEHRW5hYmxlZCELU3BlY2lhbE1lc2ghBVNjYWxlCi5Zyjw4Wco8P1nKPCEGTWVzaElkIRdyYnhhc3NldGlkOi8vMTEyMDg5OTUzMCEJVGV4dHVyZUlkIRdyYnhhc3NldGlkOi8vMTEyOTYzMTAyNyEITWVzaFR5cGUDAAAA'
..'AAAAFEAhCkF0dGFjaG1lbnQhBWdhc3RBBCEATQFOAQoEuQnAIF/vvoC+8j0hBWdhc3REBCQATQFOAQpeuglAsp3vvka28z0hBVRyYWlsIQZUcmFpbEEhC0F0dGFjaG1lbnQwIQtBdHRhY2htZW50MSEKRmFjZUNhbWVyYSEITGlmZXRpbWUDAAAAAAAA8D8hBWdhc3RC'
..'BC4ATQFOAQo+Le6/IF/vvoC+8j0hBWdhc3RDBDEATQFOAQo/Ne4/sp3vvka28z0hBlRyYWlsQiEHYm9vc3RlcgQ1AE0BTgEKCFiJv6vv00AcWvlBCvlqpz9BaVQ/fmgbPwox7EY8LOxGPCbsRjwhF3JieGFzc2V0aWQ6Ly8xMTIwOTE3Nzg4IRdyYnhhc3NldGlkOi8v'
..'MTEyMDkxNzc5NSEEUGFydCEGc2hhZG93IQ1Cb3R0b21TdXJmYWNlAwAAAAAAAAAAIQpCcmlja0NvbG9yB+oDBEUATQFOASEFQ29sb3IGzc3NIQhNYXRlcmlhbAMAAAAAAICUQAocBE5AcI1vQGq82UEKzcxMPQAAgD/NzEw9IQpUb3BTdXJmYWNlIQxUcmFuc3BhcmVu'
..'Y3khBURlY2FsIQRGYWNlIQdUZXh0dXJlIRdyYnhhc3NldGlkOi8vMTEyOTYzMDE0OSEDYnQxBFIATwFQAQMAAAAAAECUQCELT3JpZW50YXRpb24KAAAAAAAAtELhehzBCmTlSEBsvPhAikHbQSEIUm90YXRpb24K4XocwQAAtEIAAAAACs3MzD7NzMw+zczMPgoK16M7'
..'CtejOwrXozshF3JieGFzc2V0aWQ6Ly8xMTAzNjMzMTIxIRdyYnhhc3NldGlkOi8vMTEyOTY0MjI0MCEDYnQ0BFsATwFQAQo8iVlAbLz4QIpB20EhA2J0MgReAE8BUAEKZOVIQPx+7kDwp9tBIQNidDMEYQBPAVABCjyJWUD8fu5A8KfbQSEFYm9hcmQEZABNAU4BChwE'
..'TkCAIt5AarzZQQoFpMM/foPMPoSGjUAKhWt6PIdrejyFa3o8IRdyYnhhc3NldGlkOi8vMTE0MTk1MDIzOCEXcmJ4YXNzZXRpZDovLzExNDE5NTAyNDEhAncyBGsATQFOAQr8U05ATj7RQNzd40EKdZe9P1Ugyz7KjOo+CodrejyHa3o8h2t6PCEXcmJ4YXNzZXRpZDov'
..'LzExNDE5NTAzOTYhAncxBHEATQFOAQoUVE5AXz7RQPaaz0EhCE1lc2hQYXJ0IQxmbGFtZXRocm93ZXIEdgBNAU4BAwAAAAAAAHFAChCNC7/ibRxBeuz2QQoZgZc/CF8kQCqFj0AhF3JieGFzc2V0aWQ6Ly8xODgxNDg4NDQ0IQhNZXNoU2l6ZQrXs90/9IdwQOYE0kAh'
..'CVRleHR1cmVJRCEXcmJ4YXNzZXRpZDovLzEzOTkwODgxNDchDFZlY3RvcjNWYWx1ZSECT1MhBVZhbHVlClCNlz8dWiRAH4WPQCEDcGNsBIMATQFOAQoAAAAAYH45vuZcTMAhD1BhcnRpY2xlRW1pdHRlciEBcCERRW1pc3Npb25EaXJlY3Rpb24RAABAPwAAQD8hDUxp'
..'Z2h0RW1pc3Npb24hDkxpZ2h0SW5mbHVlbmNlIQhSb3RTcGVlZBEAAJbDAACWQxEAADTDAAA0QykCAAAAAAAAgD/0/78+AACAPwAAcEAIAHA/IQVTcGVlZBEAAHBBAABwQSELU3ByZWFkQW5nbGULAAAgQQAAIEEhF3JieGFzc2V0aWQ6Ly8xMjEwMDkyMzQzKQIAAAAA'
..'AAAAAAAAAAAAAIA/AACAPwAAAAAhBHBhY2sElwBRAVIBCilcpcIAADRDAAAAAApMN1FAS9wpQZaV3UEK16PCwgAAAAAAADRDCsP1KD/NzEw+PQpXPwMAAAAAAAAIQCEXcmJ4YXNzZXRpZDovLzEzNzIyMTIwNzUK8P//PwnJcz7ycSZAIRdyYnhhc3NldGlkOi8vMTIx'
..'ODk3NzgzMyEEaGVhZAcCBASiAE0BTgEGkaH/Ckw3UUDufBVBarzZQQoAAABAZ2bmPwAAAEAKCtcjPArXIzwK1yM8IQtWZXJ0ZXhDb2xvcgr8qRE/N4khPwAAgD8hGHJieGFzc2V0aWQ6Ly8xMDYzNDc4NTc3NiEXcmJ4YXNzZXRpZDovLzEyMTkwMzgwMDYEqgBNAU4B'
..'CgAAAADNzEw/AAAAACEMQmlsbGJvYXJkR3VpDAAAoEAAAM3MzD4AACELU3R1ZHNPZmZzZXQKAAAAAAAAQEAAAAAAIQdUZXh0Qm94IQlUZXh0TGFiZWwhEEJhY2tncm91bmRDb2xvcjMG////IRZCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5DAAAgD8AAAAAgD8AACEGWklu'
..'ZGV4AwAAAAAAAABAIRBDbGVhclRleHRPbkZvY3VzIQRGb250AwAAAAAAACpAIQRUZXh0IRRQUkFJU0VCRUVUT1RIRUJVQkJMRSEKVGV4dENvbG9yMyEMVGV4dEVkaXRhYmxlIQpUZXh0U2NhbGVkIQhUZXh0U2l6ZQMAAAAAAAAsQCEQVGV4dFN0cm9rZUNvbG9yMwal'
..'paUhFlRleHRTdHJva2VUcmFuc3BhcmVuY3kDAAAAoJmZ6T8hC1RleHRXcmFwcGVkIQtDRnJhbWVWYWx1ZSEDZGNmIQRCZWFtKAIAAAAAAAAAAACAPwAAACkCAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAIQZXaWR0aDADAAAAoJmZyT8hBldpZHRoMSEDZG90B0MBBNIA'
..'TQFOAQZ8/4EKTDdRQOh8LUFqvNlBCkw3KT8+syw/RIssPwpxq0Q8ZA5dPPKlRDwhF3JieGFzc2V0aWQ6Ly8xMTAxODE2NjExBNcATQFOAQoA7b88AAAAAAD2TjwhC1ZlY3RvckZvcmNlIQdWaXNpYmxlIQVGb3JjZQoAAAAAAABQQQAAAAAhClJlbGF0aXZlVG8hDlJv'
..'cGVDb25zdHJhaW50B+sDIQZMZW5ndGghCVRoaWNrbmVzcyEKUG9pbnRMaWdodCECTDEhBVJhbmdlAwAAAAAAADBAIQJMMgMAAAAAAAAkQCEIQm9keUd5cm8hAUQhCU1heFRvcnF1ZQoAACBBAAAgQQAAIEEhAVAhBGFybUEE7wBTAVQBCgAAtEIAALRCAAAAAAoOy4tA'
..'g7EAQVy82UEKAAC0QgAAAAAAALTCCs3MDD/NzIw/zcwMPyEXcmJ4YXNzZXRpZDovLzEyMTg5Nzg1OTYK1sxMPxgLmz/YzEw/IQRhcm1CBPcAVQFWAQoAALRCAAC0wgAAAAAKfPwNQIOxAEFcvNlBCgAAtEIAAAAAAAC0QiEEYXJtQwT7AFcBWAEK1peoQIOxAEFcvNlB'
..'IRdyYnhhc3NldGlkOi8vMTIxODk3OTA5MAqk7Ic/L9sSQKnshz8hBGFybUQEAQFZAU0BCgAAAAAAAAAAAAC0wgqYkpU/g7EAQVy82UEhBGxlZ0EEBAFNAU4BCkzJakCm/MpAkO/YQQqiRVY/8tKdP/p+mj8hF3JieGFzc2V0aWQ6Ly8xMjE4OTc4MjM5CsEehT+HRMQ/'
..'6B3APyEEbGVnQgQKAU0BTgEKDJY3QKD8ykCQ79hBCsEehT+HRMQ/5x3APyEFdG9yc28EDgFNAU4BCqwvUUANY/FAXLzZQQqWQ9s/arzUPxsvjT8hF3JieGFzc2V0aWQ6Ly8xMjE4OTc3ODI3CrNw6D8TlOE/PKWVPyEFU291bmQhBXNtYWNrIQdTb3VuZElkIRdyYnhh'
..'c3NldGlkOi8vMTE1ODg4NzM5NiEGVm9sdW1lIQtOdW1iZXJWYWx1ZSEDdm9sAwAAAAAAAPg/IQRkaXZlIRdyYnhhc3NldGlkOi8vMTExMTAyNjk3OCEFZGp1bXAhF3JieGFzc2V0aWQ6Ly8xMTExMDM3ODE1IQRmbGlwIRdyYnhhc3NldGlkOi8vMTExMTAyNzA5NgMA'
..'AAAAAADgPyEEanVtcCEXcmJ4YXNzZXRpZDovLzExMTEwMjY3MTAhBWp1bXAyIRdyYnhhc3NldGlkOi8vMTExMTAyNzAzNyEEbGFuZCEXcmJ4YXNzZXRpZDovLzExMTEwMjY4MjIhA3NhMSEXcmJ4YXNzZXRpZDovLzExMTEwMjcyMTAhA3NhMiEXcmJ4YXNzZXRpZDov'
..'LzExMTEwMjcyNjghA3NhMyEXcmJ4YXNzZXRpZDovLzExMTEwMjczMzghA3NhNCEXcmJ4YXNzZXRpZDovLzExMTEwMjc0NzAhA3NhNSEXcmJ4YXNzZXRpZDovLzExMTEwMjc1NTYhA3NiMSEXcmJ4YXNzZXRpZDovLzExMTEwMzc4ODghA3NiMiEXcmJ4YXNzZXRpZDov'
..'LzExMTEwMjc2ODIhA3NiMyEXcmJ4YXNzZXRpZDovLzExMTEwMjc3NDchA3NiNCEXcmJ4YXNzZXRpZDovLzExMTEwMjgxMzAhA3NiNSEXcmJ4YXNzZXRpZDovLzExMTEwMjgyMDMhBXNsaWRlIQZMb29wZWQhF3JieGFzc2V0aWQ6Ly8xMTExMDI2ODk2IQdwb3dlcnVw'
..'IRdyYnhhc3NldGlkOi8vMTE0NjQ3MjA0NiEEcG9sZSEXcmJ4YXNzZXRpZDovLzExNDYzMDYyNTUhBmRhbWFnZSEXcmJ4YXNzZXRpZDovLzExNDY0NzE5NjghBHNwaW4hF3JieGFzc2V0aWQ6Ly8xMTU4ODc2ODI5IQZzcGxhc2ghDEFjY2VsZXJhdGlvbhHNzMw+AACA'
..'PykCAAAAAM3MTD7NzEw9AACAP83MTD7NzEw9EQAAAEAAAABAIRdyYnhhc3NldGlkOi8vMTE4NTg5NTkxMwpMN1FAQmDxQGq82UEKAACAPwAAAAAAAAAACgAAAAAAAIA/AAAAAAouvTuzOfEtvpVHfL8KAAAAAJVHfD858S2+CgAAgL8bXD+yezW6swouvbuz+ncCPuLp'
..'fT8KLr07sy69OzMAAIC/CgAAgD/trQknLr07swouvTuzLr07swAAgD8KAACAv+2tCScuvTuzCgAAAAAAAAAAAACAPwoAAIC/AAAAAAAAAAAKAAAAAAAAgL8AAAAAWgEAAAIAAgADAAQABQAGAAEBAAIABwAIAAIHAAIACQAKAAsADAANAA4ADwAQABEAEgATABQADwAV'
..'AAMEABYAFwAYABkAGgAbABwAHQAeAAMDAAIAHwAMACAAEAAhAB4AAwMAAgAiAAwAIwAQACQAJQADBAACACYAFAAPACkACwAqACsAHgADAwACACwADAAtABAALgAeAAMDAAIALwAMADAAEAAxACUAAwQAAgAyABQADwApAAsAKgArAAgAAwcAAgAzAAoACwAMADQADgAP'
..'ABAANQASADYAFAAPABUACwQAFgA3ABgAOAAaADkAHAAdADoAAgwAAgA7AAoACwA8AD0APgA/AAwAQAAOAA8AQQBCAEMARAAQAEUAEgBGAEcAPQBIACsASQANAgBKACsASwBMADoAAgkAAgBNAAoACwAMAE4ADgAPAEMATwBQAFEAEABSAFMAVAASAFUAFQAPBAAWAFYA'
..'GABXABoAWAAcAB0AOgACCQACAFkACgALAAwAWgAOAA8AQwBPAFAAUQAQAFsAUwBUABIAVQAVABEEABYAVgAYAFcAGgBYABwAHQA6AAIJAAIAXAAKAAsADABdAA4ADwBDAE8AUABRABAAXgBTAFQAEgBVABUAEwQAFgBWABgAVwAaAFgAHAAdADoAAgkAAgBfAAoACwAM'
..'AGAADgAPAEMATwBQAFEAEABhAFMAVAASAFUAFQAVBAAWAFYAGABXABoAWAAcAB0ACAACCAACAGIACgALAAwAYwAOAA8AQwBPABAAZAASAGUAFAAPABUAFwQAFgBmABgAZwAaAGgAHAAdAAgAFwgAAgBpAAoACwAMAGoADgAPAEMATwAQAGsAEgBsABQADwAVABkEABYA'
..'bQAYAG4AGgBoABwAHQAIABcIAAIAbwAKAAsADABwAA4ADwBDAE8AEABxABIAbAAUAA8AFQAbBAAWAG0AGABuABoAaAAcAB0AcgACCgACAHMACgALAAwAdAAOAA8AQwB1ABAAdgASAHcAGAB4AHkAegB7AHwAfQAdAgACAH4AfwCAAB4AHQMAAgCBAAwAggAQAIMAhAAf'
..'DQACAIUAhgAdABQADwAqAIcAiAArAIkAKwCKAIsAUwCMABIAjQCOAI8AkACRAEsAkgBIAJMAcgACDQACAJQACgALAAwAlQAOAA8AQwBPAFAAlgAQAJcAUwCYABIAmQBHAJoAGACbAHkAnAB7AJ0AfQAhAgACAH4AfwCZADoAAQkAAgCeAAoACwA+AJ8ADACgAA4ADwBB'
..'AKEAQwBPABAAogASAKMAFQAjBQAWAKQApQCmABgApwAaAKgAHAAdAB4AIwIADACpABAAqgCrACMCABIArACtAK4ArwAmDwACALAAsQCyALMAKwASALQAtQC2ALcADwC4ALkAugC7ALwAsgC9AA8AvgALAL8AwADBAMIAwwDEAMUACwDGACMBAAIAxwDIACMFAEEAyQAp'
..'AAsASADKAMsAzADNAMwAOgABBwACAM4APgDPAAwA0AAOAA8AQQDRABAA0gASANMAFQAqAwAWANQAGADVABwAHQAeACoCAAwA1gAQANcA2AAqAwDZAAsA2gDbANwAtgDdACoFAEEA3gAUAA8A2QALAN8AKwDgAMwA4QAqAwACAOIAFAAPAOMA5ADhACoDAAIA5QAUAA8A'
..'4wDmAOcAKgMA6ACaAOkA6gDrAOYAcgABDQACAOwACgALAAwA7QAOAA8AQwBPAFAA7gAQAO8AUwDwABIA8QBHAJoAGADyAHkA8wB7AJ0AfQAyAgACAH4AfwDxAHIAAQ0AAgD0AAoACwAMAPUADgAPAEMATwBQAPYAEAD3AFMA+AASAPEARwCaABgA8gB5APMAewCdAH0A'
..'NAIAAgB+AH8A8QByAAENAAIA+QAKAAsADAD6AA4ADwBDAE8AUAD2ABAA+wBTAPgAEgDxAEcAmgAYAPwAeQD9AHsAnQB9ADYCAAIAfgB/APEAcgABDQACAP4ACgALAAwA/wAOAA8AQwBPAFAAAAEQAAEBUwAAARIA8QBHAJoAGAD8AHkA/QB7AJ0AfQA4AgACAH4AfwDx'
..'AHIAAQsAAgACAQoACwAMAAMBDgAPAEMATwAQAAQBEgAFAUcAmgAYAAYBeQAHAXsAnQB9ADoCAAIAfgB/AAUBcgABCwACAAgBCgALAAwACQEOAA8AQwBPABAACgESAAUBRwCaABgABgF5AAsBewCdAH0APAIAAgB+AH8ABQFyAAELAAIADAEKAAsADAANAQ4ADwBDAE8A'
..'EAAOARIADwFHAJoAGAAQAXkAEQF7AJ0AEgE+AwACABMBFAEVARYBKwAXAT8CAAIAGAF/ABkBEgE+AwACABoBFAEbARYBKwASAT4DAAIAHAEUAR0BFgErABIBPgMAAgAeARQBHwEWASsAFwFDAgACABgBfwAgARIBPgMAAgAhARQBIgEWASsAEgE+AwACACMBFAEkARYB'
..'KwASAT4DAAIAJQEUASYBFgErABIBPgMAAgAnARQBKAEWASsAEgE+AwACACkBFAEqARYBKwASAT4DAAIAKwEUASwBFgErABIBPgMAAgAtARQBLgEWASsAEgE+AwACAC8BFAEwARYBKwASAT4DAAIAMQEUATIBFgErABIBPgMAAgAzARQBNAEWASsAEgE+AwACADUBFAE2'
..'ARYBKwASAT4DAAIANwEUATgBFgErABIBPgMAAgA5ARQBOgEWASsAEgE+BAACADsBPAELABQBPQEWAT0AEgE+AwACAD4BFAE/ARYBKwASAT4DAAIAQAEUAUEBFgHEABcBVAIAAgAYAX8AIAESAT4DAAIAQgEUAUMBFgErABIBPgMAAgBEARQBRQEWASsAFwFXAgACABgB'
..'fwAgAYQAPgkAAgBGAUcBrgCGALYAFAAPACoASAGJACsAEgBJAY4ASgFLAEsBfQA+AgACAH4AfwAPAQkHJwAFBygACAonAAkKKAAGKScALCkoACUtJwAsLicALC4oACU='
local Objects = Decode(build)
for _,obj in pairs(Objects) do
obj.Parent = script or workspace
end
--
local plam = Decode('AAAkIQZGb2xkZXIhBE5hbWUhBHBsYW0hC0NGcmFtZVZhbHVlIQNtcHMhAWwhC051bWJlclZhbHVlIQh3YWxrdGljayEId2Fsa2xlcnAhB3dhbGxlcnAhB2ZhbGxlcnAhB3NsaWRlcnAhBmJvdGFuZCEGcm90YW5kIQZwb3RhbmQhB2xvbmdlcnAhBnJvcGVycCEHaG9s'
..'ZGVycCEJY3JvdWNoZXJwIQZsZWRlcnAhBnBvbGVycCEJQm9vbFZhbHVlIQZoYXNmbHkhB3N3aW1lcnAhCEludFZhbHVlIQZoZWFsdGghC1N0cmluZ1ZhbHVlIQNtYXAhB3NrYXRlcnAhCGhhc2JvYXJkIQNoYXQhBWF0ZXJwIQdkYW5jZXJwIQZnb3RpY2UhDFZlY3Rv'
..'cjNWYWx1ZSEFc2NhbGUuAQABAAIDBAEBAAIFBAIBAAIGBwEBAAIIBwQBAAIGBwEBAAIJBwYBAAIGBwEBAAIKBwgBAAIGBwEBAAILBwoBAAIGBwEBAAIMBwwBAAIGBwEBAAINBw4BAAIGBwEBAAIOBxABAAIGBwEBAAIPBxIBAAIGBwEBAAIQBxQBAAIGBwEBAAIRBxYB'
..'AAIGBwEBAAISBxgBAAIGBwEBAAITBxoBAAIGBwEBAAIUBxwBAAIGBwEBAAIVBx4BAAIGFgEBAAIXBwEBAAIYByEBAAIGGQEBAAIaGwEBAAIcBwEBAAIdByUBAAIGFgEBAAIeGQEBAAIfBwEBAAIgBykBAAIGBwEBAAIhBysBAAIGFgEBAAIiIwEBAAIkAA==')
plam = plam[1]
local NewNametag = Decode('AAAdIQxCaWxsYm9hcmRHdWkhBFNpemUMAAAAQQAAAACAPwAAIQtTdHVkc09mZnNldAoAAAAAAABAQAAAAAAhCVRleHRMYWJlbCEQQmFja2dyb3VuZENvbG9yMwb///8hFkJhY2tncm91bmRUcmFuc3BhcmVuY3kDAAAAAAAA8D8hDEJvcmRlckNvbG9yMwYbKjUMAACA'
..'PwAAAACAPwAAIQZaSW5kZXgDAAAAAAAAAEAhBEZvbnQDAAAAAAAAEEAhBFRleHQhFFBSQUlTRUJFRVRPVEhFQlVCQkxFIQpUZXh0Q29sb3IzIQpUZXh0U2NhbGVkIiEIVGV4dFNpemUDAAAAAAAALEAhEFRleHRTdHJva2VDb2xvcjMGpaWlIRZUZXh0U3Ryb2tlVHJh'
..'bnNwYXJlbmN5AwAAAKCZmek/IQtUZXh0V3JhcHBlZAIBAAIAAgMEBQYBDQAHCAkKCwwCDQ4PEBESExQIFRYXGBkaGxwdFgA=')
NewNametag = NewNametag[1]
--
local rf = Decode('AFB7BCENVmlld3BvcnRGcmFtZSEQQmFja2dyb3VuZENvbG9yMwb///8hDEJvcmRlckNvbG9yMwYAAAAhD0JvcmRlclNpemVQaXhlbAMAAAAAAAAAACEEU2l6ZQwAAAAAZAAAAAAAZAAhBFBhcnQhBE5hbWUhB3RleHRib3ghCEFuY2hvcmVkIiENQm90dG9tU3VyZmFjZSEGQ0ZyYW1lBBUAHgQfBCEKQ2FuQ29sbGlkZQIhCFBvc2l0aW'
..'9uCgD//z8E15NApHAPQQoAAABBAAAwQAAAgD8hClRvcFN1cmZhY2UhDFRyYW5zcGFyZW5jeQMAAAAAAADwPyEKU3VyZmFjZUd1aSELQWx3YXlzT25Ub3AhCkNhbnZhc1NpemULAABhRAAAjEMhBEZhY2UDAAAAAAAAAEAhCkltYWdlTGFiZWwhAmJnIRZCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5BhsqNQwAAAAAAAAAAAAAMgAMAACAPwAA'
..'AACAP87/IQZaSW5kZXghBUltYWdlIRdyYnhhc3NldGlkOi8vMTQ0MjEyNzA1NyENSW1hZ2VSZWN0U2l6ZQsAgO1DAAAAQyEEc3BpbgwAAIA/uv8AAIA/xP8MAAAAACMAAAAAACQAIRdyYnhhc3NldGlkOi8vMTQ0MjEyNjcwNiEJVGV4dExhYmVsIQZwZXJzb24MAAAAABQAAAAAAAAADAAAAD/Y/83MTD4AAAMAAAAAAAAIQCEERm9udA'
..'MAAAAAAAAQQCEEVGV4dCEMTG9uZ05hbWVNR2VlIQpUZXh0Q29sb3IzIQhUZXh0U2l6ZQMAAAAAAABJQCELVGV4dFdyYXBwZWQhDlRleHRYQWxpZ25tZW50IQ5UZXh0WUFsaWdubWVudCEHb3V0bGluZQwAAAAAAAAK16M8AAAMAACAPwAAAACAPwAAIRBUZXh0VHJhbnNwYXJlbmN5AwAAAKCZmek/IQViZWVibwwAAIA/7P8AAAAAAAAM'
..'AAAAvwAAzcxMPgAAIQVCZWVibyEFRnJhbWUhA3RidAb4+PgMAAAAABQAAAAAAFAAIQZGb2xkZXIhBWZhY2VzIQhNZXNoUGFydCEJcGl4ZWxhdGVkBFIAIAQhBCELT3JpZW50YXRpb24KAAC0wqTwTsIAAAAACkORvD+gmatBGfRlQyEIUm90YXRpb24KAAC0wgAAAACk8E7CCvHHLkAUKYE/N22PQCEGTWVzaElkIRdyYnhhc3NldGlkOi'
..'8vMTM3MjE3MTU2MiEITWVzaFNpemUK+gTqQtLvLELHCUBDIQlUZXh0dXJlSUQhF3JieGFzc2V0aWQ6Ly8xMjE4OTc3ODMzIQhJbnRWYWx1ZSECaWQhBVZhbHVlIQRpY29uA8BUDEPgZN1CIQdkZWZhdWx0AwAAwE1kKtJBIQ9QYXJ0aWNsZUVtaXR0ZXIhBXN0ZWFtIQREcmFnEQAAtEMAALRDKQIAAAAAAACAQAAAwD8AAIA/AACAQAAA'
..'wD8hBVNwZWVkEQAAQEAAAEBAIQtTcHJlYWRBbmdsZQsAAMhCAADIQiEHVGV4dHVyZSEXcmJ4YXNzZXRpZDovLzEyMTMxMjY4NjQpBAAAAAAAAIA/AAAAAM3MTD7NzMw+AAAAADMzMz/NzEw+AAAAAAAAgD8AAIA/AAAAACEJdW5sb2NrcGNsIQxBY2NlbGVyYXRpb24KAAAAAAAAoMEAAAAAIQVDb2xvcigCAAAAAKz+/wAAgD+s/v8hB0'
..'VuYWJsZWQhCExpZmV0aW1lEc3MzD4zM7M/IQ1MaWdodEVtaXNzaW9uAwAAAKCZmck/IQ5MaWdodEluZmx1ZW5jZSEIUm90U3BlZWQRAADIwwAAyEMRAAA0wwAANEMpAgAAAAAAAIA/mpkZPwAAgD8CAFA/KDOzPhEAAIhBAACIQQsAADRDAAA0QyEXcmJ4YXNzZXRpZDovLzEzNzI0MDI0ODUpBAAAAAAAAIA/AAAAAEgUDT0AAAAAAAAA'
..'ABcnTT8AAAAAAAAAAAAAgD8AAIA/AAAAACEFTW9kZWwhBWljZWJnIQtQcmltYXJ5UGFydCEKV29ybGRQaXZvdAQiAiIEIwQhBVBhcnQyBCICJAQlBAoAAAAAAAAAAAAANMIKAACAPwAAgD8AAIA/IQpBdHRhY2htZW50IQZjZW50ZXIEIgImBCcECo+D9quVEig3mhIoNwSRACQEJQQKAAAAgAAAAIAAADTCCgAAyMEAAAAAAAAAACEEQm'
..'VhbSELQXR0YWNobWVudDAhC0F0dGFjaG1lbnQxKAIAAAAAAAAAAACAP////yEKQ3VydmVTaXplMAMAAAAAAAAkQCkCAAAAAM3MzD4AAAAAAACAP83MzD4AAAAAIQZXaWR0aDAhBldpZHRoMQSdACgEKQQKAAAAAAAAAAABADRCCgAAAAD//8fBAAAAAASfACQEJQQKAADIQQAAADYAAAAAAwAAAAAAACTABKIAKAQpBAoAAAA2AQDIQQAA'
..'AAAhB2NlbnRlcjIEIgIqBCsECpQSKLc6EhqsAQC0QiEFUGFydDEhBHBvc2UELAQtBC4EIQV0b3JzbwQiAi0ELgQhCE1hdGVyaWFsAwAAAAAAQJRACpqZmT/MzMw/AACAPyELU3BlY2lhbE1lc2ghBVNjYWxlCmZmZj9mZmY/ZmZmPyEXcmJ4YXNzZXRpZDovLzExMjU5NjY3ODMhCVRleHR1cmVJZCEXcmJ4YXNzZXRpZDovLzExMjk2Mz'
..'EyNzEhCE1lc2hUeXBlAwAAAAAAABRAIQRoZWFkIQpCcmlja0NvbG9yBwIEBLwALwQwBAaRof8K9iheQZqZqT+amTFACgCQkrr5x9A/AAAAAAo/NV5BarykP30/HUAKAAAAQGdm5j8AAABACgAAgD4AAIA+AACAPiEXcmJ4YXNzZXRpZDovLzExMjYxMDg1OTYhBURlY2FsIRdyYnhhc3NldGlkOi8vMTE2NDkyNzQ2MSEEbGVnQQTGADEE'
..'MgQKw3UzQtnOhz/VeIdBCrCGFT8wFGa/4XoUvwrhejNCEoNAP+F6gUEKmpkZP/3/fz8AAIA/CjMzMz/NzEw/MzMzPyEXcmJ4YXNzZXRpZDovLzExMjU5OTUyNTUhBGxlZ0IEzgAzBDQECs3MtMEj29FAdZMgwQqABuW+buOSvylcDz4KL921wS2ywUAnMfDAIQRhcm1EBNMANQQ2BApKDJ5BpLDjwocWM0MKFJClv6iFsz9bj8K+CsthCk'
..'PFoG3CqEYZwgqamRk/l5kZP5qZmT8hF3JieGFzc2V0aWQ6Ly8xMTI1OTg0MTE3IQRhcm1CBNoANwQ4BAoILDpCUvjkwjm0KD8KgBpjv/kONT9cj0K+Ckjh3kISAxvCJYb1QgqamRk/mJmZP5qZGT8KKVyPPQrXoz0pXI89IRdyYnhhc3NldGlkOi8vMTEyNTk3NzAxMyEEYXJtQQTiADkEOgQKuklKQpbD1UJI4SLACiANZz84Okg/7FE4'
..'vgop3M5CObQVQu7848IhBGFybUME5wA7BDwECrbzHUHNjLJCVOMvQwocbaU/6rC8Pylcj74Kka2rQrYzoELVOLRCIQVwb3NlMgQ9BB4EHwQE7QA+BD8ECmKQVkIAAAAAfyozQwoiAEA/xYR4Ptxixr4KzcwMP83MjD/NzAw/IRdyYnhhc3NldGlkOi8vMTIxODk3ODU5NgrWzEw/GAubP9jMTD8E8wBABEEECm1nlUJvEoO6WHkpwwoiMz'
..'O/limGPqkX5L4KbWeVQgAAAAAXeSnDBPcAQgRDBApikFZCAAAAALoJicIKBvaoPgGH8L0ShVK/IRdyYnhhc3NldGlkOi8vMTIxODk3OTA5MAqk7Ic/L9sSQKnshz8E/ABEBEUECtv5ckFg5SxDcb23wgqKzEy+4FsoPsdoTb8KtrMkQylc20AAALRCBAABHgRGBAqF6zTCAAAAAAAAAAAKAAAAAC7CtT8+Cle/CtvMDEAMAABADAAAQCEX'
..'cmJ4YXNzZXRpZDovLzEyMTg5ODAxNDQK0cwMQQMAAEEDAABBIQZDb2xvcjMhFHJieGFzc2V0aWQ6Ly8yMTE0NDczISdodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTIxMTQ0NzMhBGZhY2UhF3JieGFzc2V0aWQ6Ly8xMjE5MDM4MDA2BAsBHgRHBAoj2xNBAAAAAAAAAAAKEM3MPkfI9b4BAAC/CqJFVj/y0p0/+n6aPyEXcm'
..'J4YXNzZXRpZDovLzEyMTg5NzgyMzkKwR6FP4dExD/oHcA/BBEBHgRIBArXo9RAAAAAAAAAAAAKzczMvlfuEb9cjwK/CsEehT+HRMQ/5x3APwqWQ9s/arzUPxsvjT8hF3JieGFzc2V0aWQ6Ly8xMjE4OTc3ODI3CrNw6D8TlOE/PKWVPyEFU291bmQhBXNtYWNrIQdTb3VuZElkIRdyYnhhc3NldGlkOi8vMTE1ODg4NzM5NiEGVm9sdW1l'
..'IQtOdW1iZXJWYWx1ZSEDdm9sAwAAAAAAAPg/IQRkaXZlIRdyYnhhc3NldGlkOi8vMTExMTAyNjk3OCEFZGp1bXAhF3JieGFzc2V0aWQ6Ly8xMTExMDM3ODE1IQRmbGlwIRdyYnhhc3NldGlkOi8vMTExMTAyNzA5NgMAAAAAAADgPyEEanVtcCEXcmJ4YXNzZXRpZDovLzExMTEwMjY3MTAhBWp1bXAyIRdyYnhhc3NldGlkOi8vMTExMT'
..'AyNzAzNyEEbGFuZCEXcmJ4YXNzZXRpZDovLzExMTEwMjY4MjIhA3NhMSEXcmJ4YXNzZXRpZDovLzExMTEwMjcyMTAhA3NhMiEXcmJ4YXNzZXRpZDovLzExMTEwMjcyNjghA3NhMyEXcmJ4YXNzZXRpZDovLzExMTEwMjczMzghA3NhNCEXcmJ4YXNzZXRpZDovLzExMTEwMjc0NzAhA3NhNSEXcmJ4YXNzZXRpZDovLzExMTEwMjc1NTYh'
..'A3NiMSEXcmJ4YXNzZXRpZDovLzExMTEwMzc4ODghA3NiMiEXcmJ4YXNzZXRpZDovLzExMTEwMjc2ODIhA3NiMyEXcmJ4YXNzZXRpZDovLzExMTEwMjc3NDchA3NiNCEXcmJ4YXNzZXRpZDovLzExMTEwMjgxMzAhA3NiNSEXcmJ4YXNzZXRpZDovLzExMTEwMjgyMDMhBXNsaWRlIQZMb29wZWQhF3JieGFzc2V0aWQ6Ly8xMTExMDI2OD'
..'k2IQdwb3dlcnVwIRdyYnhhc3NldGlkOi8vMTE0NjQ3MjA0NiEEcG9sZSEXcmJ4YXNzZXRpZDovLzExNDYzMDYyNTUhBmRhbWFnZSEXcmJ4YXNzZXRpZDovLzExNDY0NzE5NjghF3JieGFzc2V0aWQ6Ly8xMTU4ODc2ODI5IQVwb3NlMwRJBEoESwQETQFMBE0ECnc+D8JkuytCDAITwAqOsA0/rnlEv4PMET8K7FEywrgeBkKsHNJBBFEB'
..'TgRPBAp3Pg9C5RAJw2KQMcIKU5WJP+5+tL8+2EE/CkRrB0O4HgbCEBjWQgRVAVAEUQQKtvPPQfypNcI7X4XCCojyUj9WMLm/SmxfvwrXIwtCUjgfwhfZKsIEWQFSBFMECrBym0LJdnhCDm2XQgqKkm491OCXv8SSvb8KxWCoQt9PLUFOYmJBBF0BVARVBArBykE/UjjdwoGVwcIKyjVMvz6oFr+e6q2/CtvZMUMGwYrC3WSiQgRhAVYEVw'
..'QKWiSPwlL47MIGgbzBCmQmNL+mywG/lmwVvwpcD8bCVg6BwbxUD8MEZQFYBFkECmZmy0HTTVbC3SSAwQrICq099INhv1gbNb4KWLkaQrByOsKcxGJBBGkBSgRLBAqcxAhAJQbQwQAAAAAKHAC1vBD5ND+M1Hk+CsUgGEAv3c/BQmCFPyEFcG9zZTQEWgRbBFwEBG8BXQReBArTTY7CUC0Zw9W4/sIK4LeFP3B5HD+EP0O8CtHi1cKsHAbB'
..'CGycQgRzAV8EYAQKGYStwn3/M0NmZijBCmx7L7+aPus+v/IIvwrne7rCAAAAABd5KUMEdwFhBGIECtNNGkDpJinBicHEQgpdLfc/7gZFP+txTz4Kke0cQAwCKcHwp8VCBHsBRARjBAp3vnFBEsMqw2Alr8IKRptiviQ81j7ZnIG/CrazJEPwpw7BAAC0QgR/AVsEXAQKy6EgwnE9ZkFcjypACvtX1jz/PMc/W7ImvwpxPSTCGy8vQcP1QE'
..'EhBXBvc2U1BGQEZQRmBASFAWcEaAQK4XqhwnE9KUNmZrbACvp+Sj8IrNw+dZM4vwozM8bCf2rcP1CtI0MEiQFpBGoECmR7ocI1PinDNV62QArrjkq/lrTcPnaQOL8KsDLGwrpJ3L9WriPDBI0BawRsBArNzBzAmtkCQ6RwqkIKarwUP1g5tD6PwsW/CstBMMMjW0RCUjjDwgSRAWUEZgQK9P0cwJrZAsOeb6rCCqS+FL/tebQ+qsfFvwoG'
..'QTDDI1tEwuE6w0IhB2JhdHRlcnkElgEeBB8EAwAAAAAAAHFACgAAAAAAADJCAAAAAAoyMyNAmplZQDIzI0AhF3JieGFzc2V0aWQ6Ly8xMTAzNjMzMTIxCgAASELUzIlCBQBIQiEXcmJ4YXNzZXRpZDovLzExMjk2NDIyNDAhA3BjbCEFY2FuZHkRzcxMPs3MTD4hBFJhdGUpAgAAAAA54Zk/AAAAAAAAgD+KUmNAAAAAABEAAAAAAAAAAC'
..'EXcmJ4YXNzZXRpZDovLzExNDQzODQ3ODEpAwAAAAAAAAAAAAAAAAAAAD8AAIA+AAAAAAAAgD8AAIA/AAAAACEMVmVjdG9yM1ZhbHVlIQNwb3MhB2J1dHRvbjIEqQEeBG0EAwAAAAAAgJRACgAAtMIAAAAAAAAAAAqMDXhBzQY6QPLS7UEKThvoP5RDCz9OG+g/IRdyYnhhc3NldGlkOi8vMTExMTI5MjEzOQqnqiZDAABIQqeqJkMhF3Ji'
..'eGFzc2V0aWQ6Ly8xMTk0NTUzMjk2IQNlZ2cEsQEeBB8EAwAAAAAAgJBACgAACELFCzNDAABcwgooXwlAUPQqQOJwEEAhF3JieGFzc2V0aWQ6Ly8xMjExOTMzMzc1ClIrmEGKXr1B/P+fQSEXcmJ4YXNzZXRpZDovLzEyMTE5MzMzNzghBmZsb3dlcgS5AW4EbwQKAADMQHNoyEGYbmLACmll+kF3XiPDXNgOQgr0/eBAhxbHQbpJ0MAKUR'
..'gfQOA9SkBRGB9AIRdyYnhhc3NldGlkOi8vMTE3MDk1NTE3NgoAAEhCeD1+QgAASEIhF3JieGFzc2V0aWQ6Ly8xMTcwOTU1MTg0IQZoY2FuZHkH6QMEwwEeBB8EAwAAAAAAgJhACgAAOMEAAIBAAACQQAq6GTFAQB/BPz8tvz8hF3JieGFzc2V0aWQ6Ly8xMTQ0MzQ0MTc2CihGuUL6CEpCAABIQiEJaWNlZGNyZWFtBMoBHgQfBAMAAAAA'
..'AECQQAoEAJBAPBOWQwAAAAAKmLPFP4+dTEA3SeQ/IRdyYnhhc3NldGlkOi8vMTM3NDE1ODk1MAoAAEhCh/7OQqjwZkIhF3JieGFzc2V0aWQ6Ly8xMzc0MTU4OTU3IQtTdHJpbmdWYWx1ZSEEZGVzYyEEb29wcyECcDERAAAAPwAAAD8hDExvY2tlZFRvUGFydCkCAAAAAAzW0T8AAAAAAACAP6DiEkAAAAAAIQJwMhEAAPDBAADwQSkCAA'
..'AAAODYwz4AAAAAAACAPyRYR0AAAAAAIRdyYnhhc3NldGlkOi8vMTE2NDg3NDc1NSEHWk9mZnNldAMAAAAAAAAUwCEEbG9nbwTgAXAEHwQDAAAAAACAiEAKAAAAAAAANEMAAAAACgAAAAAAAADAAAAAAAoAADRDAAAAAAAANEMK9JQuQr55yUFroTtAIRdyYnhhc3NldGlkOi8vMTEyOTc3MDA1MgrEkAtEphChQzb/FUIhF3JieGFzc2V0'
..'aWQ6Ly8xMTI5NzcwMDYwIQhub3RjcmVhbQeMAATqAR4EHwQGJzlPCgQAkEA3BsJDAADAwCEEbm90ZQfsAwTvAR4EHwQG/wAAClTNjcKCkQRCKNIHPwoQGAZAf7OMQN5sZUAhF3JieGFzc2V0aWQ6Ly8xMjM2Njg3MjUzChw/i0GPGxJCpT3uQSEDbWF4IQRzdXJmBPYBHgQfBArA4V5AwEN9QNb3YkMKRi3dP4DR1UDOcpQ/IRdyYnhhc3'
..'NldGlkOi8vMTM3MTc3OTUxNQoJ/pRCRleLQwEASEIhF3JieGFzc2V0aWQ6Ly8xMTI5NjMxMTMxIQdUZWxlTWFwBP4BHgQfBAMAAAAAAAByQAoAAAAAuL6LQ9ajiMMKAAAAQAAAAEAAAABAIQJ0byEEdGVtcCEFd2hlcmUKAAAAAAAAAEEAAADBIQRiZWVzBAYCHgQfBApAM1NAsCgWQf/iXz8hBXNwZWVkIQJycyEoaHR0cDovL3d3dy5y'
..'b2Jsb3guY29tL2Fzc2V0Lz9pZD00ODQ5NTc1NyEoaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD00ODQ5NTc0MyEGc2hyaW5rIQNib3gEDgIeBB8ECgCAgEMAAATCAACAPyEGYnV0dG9uBBECHgQfBAoAAAAAAADwQQAAAAAKj8J1PI/CdTyPwnU8IRdyYnhhc3NldGlkOi8vMTEyOTYzMDg1MAoAAIBAAACAQAAAgEAhBVNoYX'
..'BlCo/C9TyPwvU8j8L1PCEXcmJ4YXNzZXRpZDovLzExNDQzNDQxODUhBGNoYXIEHAIeBB8EIRhDdXN0b21QaHlzaWNhbFByb3BlcnRpZXMQKVyPPQAAAAAAAAAAAADIQgAAyEIKAAAAAAAAoEEAAKBBCgAAQEAAAEBAAABAQCEGQ2VudGVyIQtWZWN0b3JGb3JjZSEHVmlzaWJsZSEFRm9yY2UKAAAAAAAAAAAAAAAAIQpSZWxhdGl2ZVRv'
..'IQhCb2R5R3lybyEBRAMAAAAAAMByQCEJTWF4VG9ycXVlCgBAnEUAQJxFAECcRSEFY2xvdWQKzcxMPc3MTD3NzEw9IRdyYnhhc3NldGlkOi8vMTEwMzUzNTA4MiEJZmFrZWNhbmR5BC8CcQRyBAqamTnAj8J1PCGwAsEK/BWeQ6/aFkJuzHRCCpqZOcCPwnU8CKwCwSEHc25hcGNhbQQ1Ah4EHwQhEENvbGxpc2lvbkdyb3VwSWQQMzMzPw'
..'AAAAAAAAAAAADIQgAAyEIKhXuUxEMAAD8AANZBIQlCb2R5Rm9yY2UhBWZvcmNlIQRoYXRzIQRoYXQzBDwCHgQfBAMAAAAAAACLQAoAAEDBZmbSQWbmUUMKpHCVQJqZ2T+kcJVAIRdyYnhhc3NldGlkOi8vMTIyMzcwMzI4NQpsjaJBG4cJQWyNokEhF3JieGFzc2V0aWQ6Ly8xMjIzNzAzMjkxIQNvZmYERAIeBHMECn77j0EAAAAAAAAA'
..'AAoAAAAAZmamP83MzD4hQUNsYXNzaWMgc29tYnJlcm8sIGNhbiBvbmx5IGdldCBiZXR0ZXIgZnJvbSBoZXJlIGlmIHlvdSB3ZWFyIHRoaXMuIQNoYXQhCFNvbWJyZXJvIQVwcmljZQMAAAAAAABpQCEDZG90AwAA4PMQCONBIQRoYXQ0BE8CHgQfBAMAAAAAAACJQAoAAIDBZmbSQQCAUUMKLsXePwuUiT99Lug/IRdyYnhhc3NldGlkOi'
..'8vMTIxOTEyOTM3MgoUqHNBK3oWQUjzfUEhF3JieGFzc2V0aWQ6Ly8xMjE5MTI5Mzg3IUVJdCdzIGp1c3QgYSBub3JtYWwgcm9jay4gQnV0IGhleSwgaXQgYWxzbyBjb3VudHMgYXMgYSBjb29sIGhhdCByaWdodD8hBFJvY2sEVwIeBB8ECgAAAABmZqY/AAAAAAMAAAAtOgjjQSEEaGF0MgRbAh4EHwQKAAAAwRKs1kEAgFFDChOTCkAI'
..'lvg/E5MKQCEXcmJ4YXNzZXRpZDovLzEyMjUxMzIxOTcK2DCOQcESf0HYMI5BIRdyYnhhc3NldGlkOi8vMTIyNTEzMjIwMiE1R290IHRoaXMgb25lIG9uIHRoZSB0cmFpbi4gSSB3b25kZXIgd2hvIHdhcyB1c2luZyBpdD8hDlB1cnBsZSBUb3AgSGF0BGMCHgQfBAoAAAAAmpnZPwAAAAADAAAAOhEI40EhBGhhdDUEZwIeBB8ECgAAgM'
..'AAAMhBqMZMQwrE8w9AwP4uP9q5fT8hF3JieGFzc2V0aWQ6Ly8xMjI1MTc0Nzg1CgULHkHjH0BAqaFyQCEXcmJ4YXNzZXRpZDovLzEyMjUxNzQ3OTQEbQIeBB8ECgAAAAAAAAAAEFg5vyFWVGhlcmUncyBub3RoaW5nIG1vcmUgY29vbCB0aGFuIHJvY2tpbmcgc29tZSB3aWNrZWQgc2hhZGVzLiBBIHJvYm90IGNhbiBoYXZlIHN0eWxl'
..'IHRvbyEhBlNoYWRlcwMAAEDbEAjjQSEEaGF0NwR0Ah4EdAQKUI2gQQAAAAAAAAAACgAAQMFgXNJBrvNNQwosFxJASi3qP5PdC0AhF3JieGFzc2V0aWQ6Ly8xMjI1MjA1NDUzCgdPEEEKqpdA2igKQSFVTm90IHN1cmUgd2hhdCB0aGUgcHVycG9zZSBvZiB0aGlzIGlzLCBpdCBkb2Vzbid0IGV2ZW4gbGV0IHlvdSBmbHkuIExvb2tzIG'
..'Nvb2wgdGhvdWdoLiEQUHJvcGVsbGVyIEJlYW5pZQR8Ah4EdQQKSP2fQQAAAAAAAAAACgAAAACPwqU/i2znPgMAAAAAAMBiQAMAACALEQjjQQMAAAAAAAAcQASBAh4EHwQKAACAwFyPyUG4XlFDCib9IkBSuL4/i1w8QCEXcmJ4YXNzZXRpZDovLzE0MjI3Mjk2MjkKZOuqQgAASELbhsVCIRdyYnhhc3NldGlkOi8vMTQyMjcyOTY0NyFP'
..'U2VlbXMgbGlrZSB0aGlzIG9uZSB3YXMgbWFkZSB0byBhdm9pZCBjb3B5cmlnaHQuIEl0IGNoYW5nZXMgY29sb3Igd2l0aCB5b3UgdG9vISELQmVlYm8ncyBDYXAEiQIeBB8ECgAAAAAOLXI/zcxMvgMAAAAAAECPQCEEc2tpbgMAAOBDEAjjQSEEaGF0OASPAh4EHwQKAACAwYGV0kEAgE1DCivDZEC9k+g/JcNkQCEXcmJ4YXNzZXRpZD'
..'ovLzE2MDYwMTY1ODEKDe53QXMQ/EAK7ndBIRdyYnhhc3NldGlkOi8vMTYwNjAxNjU5NyFJVGhpcyBzbWVsbHMgbGlrZSBnYXJiYWdlLiBJIGd1ZXNzIHRoYXQgaXNuJ3QgYSBwcm9ibGVtIGlmIHlvdSdyZSBhIHJvYm90LiEOR3JlZW4gTXVzaHJvb20ElwIeBB8ECgAAAAAQWKk/AAAAAAMAAMBVEQjjQQMAAAAAAAAgQCEFaGF0MTgE'
..'ngIeBHYEAwAAAAAAAJFACtv5JEEAAAAAAAAAAAoAAODBXjHHQVfPUEMKBgY/QIyLbUB1+XhAIRdyYnhhc3NldGlkOi8vMTEwNzk5NjcwMAoAAEhCC7V4QjxWgkIhF3JieGFzc2V0aWQ6Ly8xMTA3OTk2NzEwAwAAoEQlCONBIQdTY29vYmlzAwAAAAAAADJABKgCHgR2BAre+iRBAAAAAAAAAAAKAAAAABfZzr3XozC/AwAAAAAAAERAIQ'
..'RoYXQ5BKwCHgQfBAr4bXvAvtrIQbxWREMKsEscQG8cF0BELI5AIRdyYnhhc3NldGlkOi8vMTYwNjAzNTg2NiEXcmJ4YXNzZXRpZDovLzE2MDYwMzU5NjEhB01haWxib3gEsgIeBB8ECnNokT3RIts9ppuUvwMAACCZEAjjQQMAAAAAAAAiQCEFaGF0MTAEtwIeBB8ECgAAAMHbpdJBvLNFQwpDohpAxYcgQE7xEUAhF3JieGFzc2V0aWQ6'
..'Ly8xNjA2MDQxMjA5IRdyYnhhc3NldGlkOi8vMTYwNjA0MTIzMyEKV2l6YXJkIGNhcAS9Ah4EHwQKAAAAADVeqj8X2U4+AwAAoGoRCONBIQVoYXQxMQc2AQTDAh4EHwQGW5pMCghtQMFKHdNBAIBFQwqufX8/C6d5P3mAJj8hF3JieGFzc2V0aWQ6Ly8xNjA2MDc0MjQyIQZMZWF2ZXMEyAIeBB8ECgAAAADByrE/AAAAAAMAAEAlEQjjQQ'
..'MAAAAAAAAmQCEFaGF0MTIEzQIeBB8ECgAAgMFZ9M5B9bVFQwqKGDBA9CyEQKkVEUAhF3JieGFzc2V0aWQ6Ly8xNjA2MDc4NDg2IQlCdW5ueSBIYXQE0gIeBB8ECgAAAIDJdl4/YhBYPgMAAOCvEAjjQQMAAAAAAAAoQCEFaGF0MTMHOQEE2QIeBB8EBgClGwro/3/AlArKQQCAQUMKVqUmQMg1CEC46BpAIRdyYnhhc3NldGlkOi8vMTYw'
..'NjA4MTQ4NCELQXJteSBIZWxtZXQE3gIeBB8ECgAAAABcj4I+AAAAAAMAAED8LgjjQQMAAAAAAAAqQCEFaGF0MTQHbAEE5QIeBB8EBkxMTAroHgDBJPnJQR4pQUMKqhAcQHHf1j/3WZw/IRdyYnhhc3NldGlkOi8vMTYwNjA4NDM4MSEQR2FtZXIgSGVhZHBob25lcwTqAh4EHwQKbxIDvJHtfD5oka2+AwAAwFoQCONBAwAAAAAAACxAIQ'
..'VoYXQxNQfxAwTxAh4EHwQG/9kACtj/P8GMBtNBAIBBQwqNlLo/YJkCPpSUuj8hF3JieGFzc2V0aWQ6Ly8xNjA2MDkxMDM1IQRIYWxvBPYCHgQfBAoAAAAAAAAAQAAAAAADAADgcBAI40EDAAAAAAAALkAhBWhhdDE2BPsCHgQfBAooskbBTHzKQQCAQUMKV/2GQFyZvT+ZFUE/IRdyYnhhc3NldGlkOi8vMTYwNjA5MjkxMiEXcmJ4YXNz'
..'ZXRpZDovLzEyMTE4MzAyNjEhD0Fycm93IFByYW5rc3RlcgQBAx4EHwQKnu+nPWQ7nz4AAAAAAwAAYCoQCONBAwAAAAAAADBAIQVoYXQxNwf1AwQIAx4EHwQGOsH/CgAAwME/nMJB7H1QQwpHJAZAgcaJPwB0MT8hF3JieGFzc2V0aWQ6Ly8xNjA2MDk3OTU2IQxXSE8gRElEIFRISVMhCTEwMCUgTE1BTwQOAx4EHwQKAAAAAESLLL8lBo'
..'G/AwAA4IQQCONBAwAAAAAAADFAIQRoYXQ2BBMDHgQfBAoAAADBSuTIQX6eTUMKXjN9QPlthUBRrjNAIShodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTE3MjIzMTIxCmSvH0CYTChAL6PiPyEVcmJ4YXNzZXRpZDovLzE3MjIzMTE3AwAAYGglCONBIRlQcmFpc2UgYmVlIHRvIHRoZSBidWJibGUuIQ5CdWJibGUgQmVlIE1h'
..'bgMAAAAAAAAYQAQdAx4EHwQKAAAAAPhT4z1GtvM9IQVoYXQxOQQgAx4EHwQKAADCuF0iykGjK1lDCsENYEC/UAFAfF04QCEXcmJ4YXNzZXRpZDovLzI1NTQ0Mzc3NDIhF3JieGFzc2V0aWQ6Ly8yNTU0NDM3NzY2ISpJdCB3YXMgaGlzIGhhdCwgZHVuY2FuISBIZSB3YXMgbnVtYmVyIHR3byEhBiMyIEhhdAMAACDGEAjjQQMAAAAAAA'
..'AzQAQpAx4EHwQKAAAAAFyPgj6amZm+IQVoYXQyMAQsAx4EdgQKAADgwV4xx0GKQkZDIRdyYnhhc3NldGlkOi8vNTAxMzc3OTMxOQr+//8/AAAAQPr//z8hF3JieGFzc2V0aWQ6Ly81MDEzNzc5Mzg3AwAA4AyrDvNBIQtrZWJlYnUgbG9hbiEJTWluaS1Nb29uAwAAAAAAADRABCICHgR2BCEFaGF0MjEENwMeBB8ECrQehb4AAMhBqMZM'
..'QwpITxRATDg0PzB6xz0hF3JieGFzc2V0aWQ6Ly81MTE4NDQ2NTEyISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTg3MTk0NDIEPAMeBB8ECgAAAAAAAAAAv8qBvyERdGhlIGNvb2xlciBkYW5pZWwhC1ZhcG9yU2hhZGVzAwAAwHHdEfNBAwAAAAAAADVAIQRoYXQwIQVibGFtbwREA3cEHwQKAACgQFyPyUG4XlFDCn'
..'V7HUBE2rY/4kAgQCEXcmJ4YXNzZXRpZDovLzUxMjg4MDY5NzMKqK5AQKpA/T8VdENAIRdyYnhhc3NldGlkOi8vNTEyODgwNjk5MSEKb29nYSBib29nYSEMQmxhbW8gQmVhbmllBE0DeAR5BAoAAKBB//8zwwAAAAAKAAAAAD0KVz8fhWs+AwAAsIHKLvNBAwAAAAAAADZAIQVza2lucyEFc2VwaWEEUgB6BHsECgAAtMKw8k7CAAAAAAr0'
..'/bPCbxIDu7DyTsIhF3JieGFzc2V0aWQ6Ly81MDk4OTkzMzk4IQtDb2xvcjNWYWx1ZQbSyb8hBVNlcGlhAwAAAFbJ/vJBIQRwaW5rIRdyYnhhc3NldGlkOi8vMTM3MjE4NDk5MQZqAP8hBFBpbmsDAADg8YoC40EhBG1vbm8hF3JieGFzc2V0aWQ6Ly8xMzcyMTg3NTc0BsnJySEKTW9ub2Nocm9tZQMAAAABiwLjQSEEbm9pZCEXcmJ4YX'
..'NzZXRpZDovLzE0NTA5NzgwOTkG/0xPIQpZbyEgQmVlYm8hAwAAYA2LAuNBIQZiYWNrdXAhB0RlZmF1bHQDAAAg3YoC40EhBnR1cnRsZSEXcmJ4YXNzZXRpZDovLzE2MDkwNzI3MTAGs//8IQtUdXJ0bGUgVG9wcwMAAKBZiwLjQSEGa25vZGR5IRdyYnhhc3NldGlkOi8vMTYwOTA3Mjk1Mwb6uVMhD0tub2RkeSdzIFJlc29ydAMAAMBr'
..'iwLjQSEFYmxvb20HAQQG/8j0ISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTgxNzM1ODQDAAAAAAAAO0AhCEJsb29taW5nAwAA4HNAEfNBIRdyYnhhc3NldGlkOi8vMTYwOTA3MzUzOCEOQ2FuZHkgQXF1YXJpdW0DAADgYowC40EhA3JlZCEXcmJ4YXNzZXRpZDovLzE2MDkyODkzODQhCE5lb24gUmVkAwAAQHuMAu'
..'NBIQRjeWFuIRdyYnhhc3NldGlkOi8vMTYwOTA3Mzk2MAYA//8hCU5lb24gQ3lhbgMAAOCJjALjQSEGc2lsdmVyIQtSZWZsZWN0YW5jZSEER29sZAMAAJCZw/7yQSEEZmlyZSEXcmJ4YXNzZXRpZDovLzI1NTE0ODYxNTUG/0VFIQdGbGFtaW4nAwAAQLqMAuNBIQdtYWdlbnRhISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lk'
..'PTUwOTgxMDI2NTgG/wD/IQxOZW9uIE1hZ2VudGEDAAAw+Wf+8kEhBWdyZWVuISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUwOTgxNjYyNDYGAP8AIQpOZW9uIEdyZWVuAwAA0LJz/vJBIQRnb2xkBv+3AAMAAECcjALjQSEGYmFuYW5hISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUwOTkwNjgwMjYG/3'
..'z6IQZCYW5hbmEDAADAL9r+8kEhB3BhdHJpb3QhKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTEwODM5MTgzMQYAW/8DAADQ59EH80EhCVBhdHJpb3RpYyEDbmlsISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMDg1MTUzMzUhR2F0dGVtcHQgdG8gaW5kZXggbmlsIHZhbHVlIOKAnHNraW7igJ0gYXQg'
..'bGluZSAyMzcwIGluIGZ1bmN0aW9uIHRvc2tpbigpAwAAAKTdB/NBIQVmdW5ueSEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTE4MDcwMjc4BkwjDQMAAAAAAAA5QCENRnVubnkgTW9tZW50cwMAAGALIhHzQSEDaWNlISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTU4MzE5NzQGmdnqIQxTbm96b2'
..'5lIENhdmUDAADgT+EO80EhBGJ1enohKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTExNTk0OTI3OQbUchAhDEJ1enogRmFjdG9yeQMAAGAp/A7zQSEEbGVhZiEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTE2MDI5NjM0BiKxTCEFTGVhZnkDAACQ+w8P80EhKmh0dHA6Ly93d3cucm9ibG94LmNvbS9h'
..'c3NldC8/aWQ9NTExNzk5NDc0NwYp/y8DAAAAAAAAOEAhDENsb3NlIEVub3VnaAMAAGBF2BHzQSEDb2RkISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTc5NTc5NTkG0N//AwAAAAAAADdAIQNPZGQDAAAArxAR80EhBWR3ZWViISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxNDkxNDIzMjUGj5mLAw'
..'AAAAAAAD1AIQhEd2VlYm9pZAMAAGC3mi7zQSEGcGFzdGVsISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTgxMjU3MjQG+/+/AwAAAAAAADpAIQZQYXN0ZWwDAACgD2gR80EhCWhlY2tsYW5kcyEXcmJ4YXNzZXRpZDovLzE2MDkwNzMyODgGIEFmIQlIZWNrbGFuZHMDAADgeIsC40EhKmh0dHA6Ly93d3cucm9ibG94'
..'LmNvbS9hc3NldC8/aWQ9NTExODE3NDQxMwa+6PUDAAAAAAAAPEAhCUZsb3dlcmluZwMAANBsZxHzQSEDYmFkISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxMTg2MTUwNTQGS8n/AwAAAAAAAD5AIQhCYWQgVGltZQMAALAv2xHzQQZ8/4EhBG5vb2IhKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTExOT'
..'AxNTg2NAakvUcDAAAAAAAAP0AhBE5vb2IDAACw6d8R80EhBGVnZ3khKmh0dHA6Ly93d3cucm9ibG94LmNvbS9hc3NldC8/aWQ9NTExOTA1NTY3NQbsSuUDAAAAAAAAQEAhB0VnZ3NoaXADAAAwWOkR80EhA2JlZSEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTE5MjI2Mjc0Bv/rbgMAAAAAAIBAQCEDQmVlAwAA4NMS'
..'EvNBIQRnb29kIRdyYnhhc3NldGlkOi8vNTE0OTA1ODE2OAZtbW0DAAAAAAAAQUAhBEdvb2QDAADgcYYu80EhBWdyZXN0ISpodHRwOi8vd3d3LnJvYmxveC5jb20vYXNzZXQvP2lkPTUxNDkzNjMxODMGI8E8AwAAAAAAAENAIQ1HcmlsbGVkIEdyZXN0AwAA8AXPLvNBIQVsZW1vbiEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz'
..'9pZD01MTQ5MDk0NzEwBrb/AAMAAAAAAIBBQCEFTGVtb24DAACAE48u80EhA25lbyEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTQ5MTIwOTkyBlcAfwMAAAAAAABCQCELTmV3IE5lb2NpdHkDAACQhJQu80EhBnJvYmxveCEqaHR0cDovL3d3dy5yb2Jsb3guY29tL2Fzc2V0Lz9pZD01MTQ5MTc5MjU1BtArHgMAAAAA'
..'AIBCQCEUUG93ZXJpbmcgSW1hZ2luYXRpb24DAAAA1aIu80EhBXRha2VuAwAAAAAAgENAIRwoeW91IGFscmVhZHkgaGF2ZSB0aGlzIHNraW4pAwAA0IJ+PvlBCgAAgD8AAAAAAAAAAAoAAAAAAACAPwAAAAAK1YoePwAAAACU/0g/CpT/SD8AAAAA1YoevwoBAIA/AAAAAAAAAAAKAAAAAAEAgD8AAAAACvQENT/0BDW/AAAAAAr0BDU/9A'
..'Q1PwAAAAAKAACAPy69OzQovTu0Ci69O7QAAIA/AAAAAAryBDU/9AQ1PwAAAAAK9AQ1v/IENT8AAAAACnisarQAAIA/J707tAoAAIC/eKxqtJTeLZ4Kb9E2vc2+8j5gMoe9Cv//fz8AAIAxAAAAAAoAAIAx//9/PwAAAAAKQrN/P/R9QD2IQDy8Ci6GL72KOng/jYR2PgoZ1XU/NGVTPu05QD4KXbSOvj+ULT/LHC4/Ci1kfD8TvyS+byg8'
..'vQoqBgU+7LloP+Cqyr4K3HDMPlpOdTzPrGq/CqKQoT7O5nC/7gX6PQpFE9i+lq8BPLwTaD8KaeInv38RMD8jYp++CqZXpb64/ea8Iy1yvwoeuzk/gm0iP+t8iL4KCdCuuX+wkD1GXH8/CmAIML5aj3u/HWuOPQoAAAAAnH1KPz8KV78KEPl/v0RYDTxABUA8Cs9ubrzYwBe/ciNOvwoLsXu/R2tFvQdzNL4KvxM7PhPQhL7xxXK/CqJ9uz'
..'4aOg2/KNc/vwrPN24/s05ePib9lj4KAAAAANTtdr8NFoc+Co4rfr+H+wC9osXrvQoAAAAAUko0P9S+Nb8KAAAAAHCtfD92cSQ+CgAAAADJR34/aPrsPQpl/Zk+TAORvggup74K8BVmPwAAAAAUeOA+Cvjlhbxw0n8/qz8JPQqnXj8/ECYFvRjWKb8K69y8vhdwTz8gI+m+CuY8er5eOhG/z1JJPworBky/q1kUPwZ3Lj4KMoEQP9pQU7/m'
..'pyq6CtdmBT+5IrY+npxGPwqiz3M/JvxSPnUhZj4KSNl1vtDoVj0uJng/CoDLXD1iLn6/iEHZvQr0NbK+vDDyvTYTbj8KHUBFvytoAb5M8R8/CszcEj+hXJQ+vR9EPwrfgCo//zJ/vt77Mz8KND0svqM6Xj/1Ie8+CoVdDD9Q9og/jfscvwrxynU/AIoRPXr5jb4KpA1SvgBxQz+JyBy/CmH6Tj7NeIO+4PFxvwpE7He/UcFIviGMHb4KC7'
..'F7v15DKbwUxzq+CrYTO74kw2M950l7PwoXfBq+Pwt9P6RGaDwKQK54vwURFb4MDEC+CiXofL/2fCc9NBQZPgqguGA9tFTRPvc9Zr8KVryxvQvgfr9sDhA9CsErJr+7lKo9a5FBPwoHknW/v+yCvA1skL4KZtWPvlD2Iz5PP3I/Ck+Tdb9L5II8WmOQPgrMzI8+VvIjPsFAcj8KHJ6xvV7gfj8YDhC9Ci8sJj/ygKo9UZFBPwoAAAAALr07'
..'swAAgL8KkrtmPwU2e733j9u+ClOa0j2d7n0/iRmYPQoWAIC/AAAAAAAAAAAKT2d9P6ZMEb578+I7Ct94ET4fFH0/c0ZNvQoAAAAAOHlzP7Aynj4KAAAAAKp0cD+Fsa8+CgAAAAA3kHA/aRqvPgoAAAAAl917P45KNz4KAACAvwAAAAAAAAAACgAAgL8AAAAALr27MwrJawCzso9wP0Qdr74KwogePwDABrg2AUk/CjYBST8AAIs4wYgevz'
..'4CAQAAAAQAAgADAAQABQAGAAcACAAJAAoAAQAJAAsADAANAA4ADwAHABAAEQASABMAFAAVAAgAFgAXAAcAGAAZABoAAgADABsADgAcAB0AHgAfACAAAwAJAAsAIQACAAMAIgAZAAQAIwAUACQACAAlACYAHwAnACgAKQAqACAAAwAIAAsAKwACAAMAIgAZAAQAIwAUACwACAAtACYAHwAnAC4ALwADAA4ACwAwAAIAAwAiABkABAAjABQA'
..'MQAIADIAJgAzADQANQA2ADcAOAADADkAOgA7AA4APAAHAD0ABwAvAAYADgALAD4AAgADACIAGQAEACMAFAA/AAgAQAAmAB8ANAA1ADYANwA4AAUAOQA6AEEAQgA7AA4APAAHAC8AAwAOAAsAQwACAAMAIgAZAAQAIwAUAEQACABFACYAMwA0ADUANgBGADgAAwA5ADoAOwAOADwAGQA9AAcALwAIAA4ACwA+AAIAAwAiABkABAAjABQAPw'
..'AIAEAAJgAfADQANQA2AEYAOAAFADkAOgBBAEIAOwAOADwAGQBHAAMABgALAEgAAgBJACIAGQAEACMAFABKACYAMwBLAAEAAQALAEwATQALAAsACwBOAA0ADgAQAE8AEgATAFAAUQAUAFIAUwBUAAgAVQBWAFcAWABZAFoAWwBcAAwAAgALAF0AXgAZAFwADAACAAsAXwBeAGAATQALAAsACwBhAA0ADgAQAE8AEgATAFAAUQAUAFIAUwBU'
..'AAgAVQBWAFcAWABZAFoAWwBcAA8AAQALAF0AXAAPAAIACwBfAF4AYgBjAAEACAALAGQAZQAZAFMAZgAIAGcAaABpAGoAawBsAG0AGABuAGMAAQAOAAsAbwBwAHEAcgBzAHQAEwB1AHYAdwB4AHkAGQB6AHsAUwB8AAgAfQBoAH4AagB/AGwAgAAYAIEAggABAAIACwCDAIUAhgAKABQACgALAIcADQAOAA8ABwAQAIgAEgATAFAAiQBTAI'
..'kACACKABcABwAYABkAiwAVAAMACwCMABAAjQBQAI4AiwAVAAMAEACPAFAAkAAUAJEAkgAXAAYAcgCVAJYAlwB3ABkAGACYAJkAlwCaAAcAiwAVAAMAEACbAFAAnAAUAJ0AkgAZAAYAcgCVAJYAlwB3ABkAGACYAJkAlwCaAAcAiwAVAAMAEACeAFAAkAAUAJ8AkgAbAAYAcgCVAJYAoAB3ABkAGACYAJkAlwCaAAcAiwAVAAMAEAChAFAA'
..'nAAUAKIAkgAdAAYAcgCVAJYAoAB3ABkAGACYAJkAlwCaAAcAiwAVAAMACwCjABAApABQAKUACgAUAAgACwCmAA0ADgAPAAcAEACGABIAEwAIAIoAFwAHABgAGQCLACAAAwALAIwAEACNAFAAjgCLACAAAwAQAI8AUACQABQAkQCSACIABgByAJUAlgCXAHcAGQAYAJgAmQCXAJoABwCLACAAAwAQAJsAUACcABQAnQCSACQABgByAJUAlg'
..'CXAHcAGQAYAJgAmQCXAJoABwCLACAAAwAQAJ4AUACQABQAnwCSACYABgByAJUAlgCgAHcAGQAYAJgAmQCXAJoABwCLACAAAwAQAKEAUACcABQAogCSACgABgByAJUAlgCgAHcAGQAYAJgAmQCXAJoABwCLACAAAwALAKMAEACkAFAApQCCAAEAAgALAKcAhQCoAAoAKwAGAAsAqQANAA4AEACqABIAEwCrAKwACACtAK4ALAAEAK8AsABW'
..'ALEAsgCzALQAtQAKACsACwALALYADQAOALcAuAAQALkAEgATAHIAugCrAKwAUAC7ABQAvABTAL0ACAC+AK4ALgADAK8AvwBWAMAAtAC1AMEALgABAGwAwgAKACsACQALAMMADQAOABAAxAASABMAqwCsAFAAxQAUAMYAUwDHAAgAyACuADEABACvAMkAVgDKALIAswC0ALUACgArAAkACwDLAA0ADgAQAMwAEgATAKsArABQAM0AFADOAF'
..'MAzwAIAMgArgAzAAQArwDJAFYAygCyALMAtAC1AAoAKwALAAsA0AANAA4AtwC4ABAA0QASABMAcgC6AKsArABQANIAFADTAFMA1AAIANUArgA1AAIAVgDWALQAtQAKACsACQALANcADQAOABAA2AASABMAqwCsAFAA2QAUANoAUwDbAAgA3ACuADcABACvAN0AVgDeALIAswC0ALUACgArAAkACwDfAA0ADgAQAOAAEgATAKsArABQAOEA'
..'FADiAFMA4wAIANwArgA5AAQArwDdAFYA3gCyALMAtAC1AAoAKwALAAsA5AANAA4AtwC4ABAA5QASABMAcgC6AKsArABQAOYAFADnAFMA6AAIANUArgA7AAIAVgDWALQAtQCCAAEAAgALAOkAhQDqAE0APQANAAsA3wANAA4AEADrABIAEwCrAKwAUADsABQA7QBTAOwACADuABcAMwBWAO8AWADwAFoAWwBNAD0ADQALANcADQAOABAA8Q'
..'ASABMAqwCsAFAA8gAUAPMAUwD0AAgA7gAXADMAVgDvAFgA8ABaAFsATQA9AA0ACwDkAA0ADgAQAPUAEgATAKsArABQAPYAFAD3AFMA9gAIAO4AFwAzAFYA+ABYAPkAWgBbAE0APQANAAsA0AANAA4AEAD6ABIAEwCrAKwAUAD7ABQA/ABTAP0ACADuABcAMwBWAPgAWAD5AFoAWwBNAD0ADwALALYADQAOALcAuAAQAP4AEgATAHIAugCr'
..'AKwAUAD/ABQAAAFTAP8ACAABARcAMwAYABkAVgACAVgAAwHBAEIAAwAeAB8ABAG6AGwABQHBAEIAAwAeADUABAG6AGwABgHBAEIAAwAeAAcABAG6AGwABgHBAEIAAwALAAcBBAG6AGwACAHBAEIAAwAeABkABAG6AGwABgHBAEIAAwAeADMABAG6AGwABgFNAD0ADQALAMMADQAOABAACQESABMAqwCsAFAACgEUAAsBUwAKAQgADAEXAD'
..'MAVgANAVgADgFaAFsATQA9AA0ACwDLAA0ADgAQAA8BEgATAKsArABQABABFAARAVMAEAEIAAwBFwAzAFYADQFYABIBWgBbAE0APQAJAAsAqQANAA4AEgATAKsArAAIABMBFwAzAFYAFAFYABUBWgBbABYBSwADAAsAFwEYARkBGgEZABsBTAACAAsAHAFeAB0BFgFLAAMACwAeARgBHwEaARkAFgFLAAMACwAgARgBIQEaARkAFgFLAAMA'
..'CwAiARgBIwEaARkAGwFQAAIACwAcAV4AJAEWAUsAAwALACUBGAEmARoBGQAWAUsAAwALACcBGAEoARoBGQAWAUsAAwALACkBGAEqARoBGQAWAUsAAwALACsBGAEsARoBGQAWAUsAAwALAC0BGAEuARoBGQAWAUsAAwALAC8BGAEwARoBGQAWAUsAAwALADEBGAEyARoBGQAWAUsAAwALADMBGAE0ARoBGQAWAUsAAwALADUBGAE2ARoBGQ'
..'AWAUsAAwALADcBGAE4ARoBGQAWAUsAAwALADkBGAE6ARoBGQAWAUsAAwALADsBGAE8ARoBGQAWAUsAAwALAD0BGAE+ARoBGQAWAUsABAALAD8BQAEOABgBQQEaAQcAFgFLAAMACwBCARgBQwEaARkAFgFLAAMACwBEARgBRQEaAUIAGwFhAAIACwAcAV4AJAEWAUsAAwALAEYBGAFHARoBGQAWAUsAAwALACsAGAFIARoBGQAbAWQAAgAL'
..'ABwBXgAkAYIAAQACAAsASQGFAEoBTQBmAA0ACwDfAA0ADgAQAEsBEgATAKsArABQAEwBFABNAVMATgEIAO4AFwAzAFYA7wBYAPAAWgBbAE0AZgANAAsA5AANAA4AEABPARIAEwCrAKwAUABQARQAUQFTAFIBCADuABcAMwBWAPgAWAD5AFoAWwBNAGYADQALAMMADQAOABAAUwESABMAqwCsAFAAVAEUAFUBUwBWAQgADAEXADMAVgANAV'
..'gADgFaAFsATQBmAA0ACwDLAA0ADgAQAFcBEgATAKsArABQAFgBFABZAVMAWgEIAAwBFwAzAFYADQFYABIBWgBbAE0AZgANAAsA0AANAA4AEABbARIAEwCrAKwAUABcARQAXQFTAF4BCADuABcAMwBWAPgAWAD5AFoAWwBNAGYADQALANcADQAOABAAXwESABMAqwCsAFAAYAEUAGEBUwBiAQgA7gAXADMAVgDvAFgA8ABaAFsATQBmAA0A'
..'CwCpAA0ADgAQAGMBEgATAKsArABQAGQBFABlAVMAZgEIABMBFwAzAFYAFAFYABUBWgBbAE0AZgAPAAsAtgANAA4AtwC4ABAAZwESABMAcgC6AKsArABQAGgBFABpAVMAagEIAAEBFwAzABgAGQBWAAIBWAADAcEAbgADAB4AHwAEAboAbAAFAcEAbgADAB4ANQAEAboAbAAGAcEAbgADAB4AMwAEAboAbAAGAcEAbgADAB4ABwAEAboAbA'
..'AGAcEAbgADAAsABwEEAboAbAAIAcEAbgADAB4AGQAEAboAbAAGAYIAAQACAAsAawGFAGwBTQB1AA0ACwDfAA0ADgAQAG0BEgATAKsArABQAG4BFABvAVMAcAEIAO4AFwAzAFYA7wBYAPAAWgBbAE0AdQANAAsA1wANAA4AEABxARIAEwCrAKwAUAByARQAcwFTAHQBCADuABcAMwBWAO8AWADwAFoAWwBNAHUADQALAOQADQAOABAAdQES'
..'ABMAqwCsAFAAdgEUAHcBUwB4AQgA7gAXADMAVgD4AFgA+QBaAFsATQB1AA0ACwDQAA0ADgAQAHkBEgATAKsArABQAHoBFAB7AVMAfAEIAO4AFwAzAFYA+ABYAPkAWgBbAE0AdQAPAAsAtgANAA4AtwC4ABAAfQESABMAcgC6AKsArABQAH4BFAB/AVMAgAEIAAEBFwAzABgAGQBWAAIBWAADAcEAegADAB4AHwAEAboAbAAFAcEAegADAB'
..'4ANQAEAboAbAAGAcEAegADAB4ABwAEAboAbAAGAcEAegADAAsABwEEAboAbAAIAcEAegADAB4AGQAEAboAbAAGAcEAegADAB4AMwAEAboAbAAGAYIAAQACAAsAgQGFAIIBTQCBAA0ACwDfAA0ADgAQAIMBEgATAKsArABQAIQBFACFAVMAhgEIAO4AFwAzAFYA7wBYAPAAWgBbAE0AgQANAAsA1wANAA4AEACHARIAEwCrAKwAUACIARQA'
..'iQFTAIoBCADuABcAMwBWAO8AWADwAFoAWwBNAIEADQALAOQADQAOABAAiwESABMAqwCsAFAAjAEUAI0BUwCOAQgA7gAXADMAVgD4AFgA+QBaAFsATQCBAA0ACwDQAA0ADgAQAI8BEgATAKsArABQAJABFACRAVMAkgEIAO4AFwAzAFYA+ABYAPkAWgBbAE0AAQALAAsAkwENAA4AEACUARIAEwCrAJUBFACWAQgAlwEXADMAVgCYAVgAmQ'
..'FaAJoBiwCGAAEACwCbAWMAhwAJAAsAnAF0ABMAdQCdAXcAGQCeARkACACfAWgAoAFsAKEBGACiAaMBhgABAAsApAFNAAEADAALAKUBDQAOABAApgESABMAqwCnAVAAqAEUAKkBUwCoAQgAqgFWAKsBWACsAVoArQFNAAEACgALAK4BDQAOABAArwESABMAqwCwARQAsQEIALIBVgCzAVgAtAFaALUBiwCLAAEACwCbAWMAjAAJAAsAnAF0'
..'ABMAdQCdAXcAGQCeARkACACfAWgAoAFsAKEBGACiAaMBiwABAAsApAFNAAEACwALALYBDQAOABAAtwESABMAUAC4ARQAuQFTALoBCAC7AVYAvAFYAL0BWgC+AU0AAQAMAAsAvwENAA4AtwDAARAAwQESABMAcgADAKsAwgEUAMMBCADEARgAQgBWAMUBWADGAYsAkAABAAsAmwFjAJEACQALAJwBdAATAHUAnQF3ABkAngEZAAgAnwFoAK'
..'ABbAChARgAogGjAZAAAQALAKQBTQABAAoACwDHAQ0ADgAQAMgBEgATAKsAyQEUAMoBCADLAVYAzAFYAM0BWgDOAc8BlAACAAsA0AFeANEBXACUAAEACwBdAIsAlAABAAsAmwFjAJcACAALANIBdQDTAdQBDgCeAbUACADVAWgAoAFsAKEBGACiAWMAlwALAAsA1gF1ANMBdwB4ANQBDgB6ANcBUwB8AAgA2AFoAKABbADZARgAogHaAdsB'
..'owGUAAEACwCkAU0AAQALAAsA3AENAA4AEADdAasA3gFQAN8BFADgAVMA4QEIAOIBVgDjAVgA5AFaAOUBTQABAAwACwDmAQ0ADgC3AOcBEADoARIAEwByAOkBqwCVARQA6gEIAMsBGAAkAVYAzAFYAM0BzwGcAAIACwDQAV4A0QFcAJwAAQALAF0AowGcAAEACwCkAYsAnAABAAsAmwFjAKAACQALANIBdQDTAdQBDgCeAR8ACADVAWgAoA'
..'FsAKEBGACiAdoB2wFNAAEACwALAOsBDQAOALcA7AEQAO0BEgATAHIA7gGrAMIBFADvAQgA8AFWAPEBWADyAVwAogACAAsA6wFeABkAowGiAAEACwCkAVwAogACAAsA8wFeABkATQABAAcACwD0ARAA9QEUAPYBCAD3AVYA+AFYAPkBWgD6AQoAAQAKAAsA+wENAA4ADwAHABAA/AESABMAqwD9ARQA/gEIAP8BFwAHABgAGQDPAacAAgAL'
..'AAACXgABAqMBpwACAAsAAgJeAAMCCgABAAkACwAEAg0ADgAPAAcAtwDAARAABQISABMAcgADABQABgIIAIoAowGqAAEACwAHAqMBqgABAAsACAKuAKoAAwBWAAkCsgAKArQAtQAbAaoAAgALAAsCXgAZAAoAAQAIAAsADAINAA4ADwAHABAADQISABMAFAAOAggA/wEXAAcACgABAAgACwAPAg0ADgAPAAcAEAAQAhIAEwAUABECCACKAB'
..'cABwCuALAABACvABICVgCrAbIAEwK0ALUACgABAAkACwCcAQ0ADgAPAAcAEADBARIAEwAUAMMBCAAUAhcABwAVAgcArgCyAAQArwAWAlYAxQGyABcCtAC1AIsAsgABAAsAmwFjALQACQALAJwBdAATAHUAnQF3ABkAngEZAAgAnwFoAKABbAChARgAogGjAbIAAQALAKQBCgABAAkACwAYAg0ADgAPAAcAEAAZAhoCGwIUABwCCAAdAhgA'
..'GQAVAgcAiwC3AAEACwAeAh8CtwADACACDgAhAiICIwIfACQCtwACACUCJgInAigCCgABAAkACwApAg0ADgAPAAcAtwDAARAABQISABMAcgADABQABgIIAIoArgC7AAMArwAqAlYAKwK0ALUAowG7AAEACwAHAqMBuwABAAsACAIbAbsAAgALAAsCXgAZAAoAAQAKAAsALAINAA4ADwAHABAALQISABMAUAAuAhQALwJTADACCAD/ARcABw'
..'AKAAEACgALADECDwAHABAAMgIzAjMAGgI0AhQANQIIAB0CFwAHABgAGQAVAgcAiwDBAAAANgLBAAIACwA3AiECIgJLAAEAAQALADgCTQDEAAoACwA5Ag0ADgAQADoCEgATAKsAOwIUADwCCAA9AlYAPgJYAD8CWgBAAosAxQAEAAsAQQIQAEICUABDAhQARALPAcUAAgALANABXgBFAs8BxQACAAsARgJeAEcCXADFAAIACwBIAl4ASQJL'
..'AMUAAQALAEoCXADFAAIACwBfAF4ASwJcAMUAAgALAF0AXgAzAE0AxAAKAAsATAINAA4AEABNAhIAEwCrAE4CFABPAggAUAJWAFECWABSAloAUwLPAc0AAgALANABXgBUAs8BzQACAAsARgJeAFUCiwDNAAMACwBBAhAAVgIUAFcCXADNAAIACwBIAl4AOgBLAM0AAQALAEoCXADNAAIACwBfAF4AWAJcAM0AAgALAF0AXgA1AE0AxAAJAA'
..'sAWQINAA4AEABaAhIAEwAUAFsCCABcAlYAXQJYAF4CWgBfAs8B1QACAAsA0AFeAGACzwHVAAIACwBGAl4AYQJcANUAAgALAEgCXgBJAosA1QADAAsAQQIQAGICFABjAksA1QABAAsASgJcANUAAgALAF8AXgBkAlwA1QACAAsAXQBeAB8ATQDEAAkACwBlAg0ADgAQAGYCEgATABQAZwIIAGgCVgBpAlgAagJaAGsCiwDdAAMACwBBAhAA'
..'bAIUAG0CzwHdAAIACwDQAV4AbgLPAd0AAgALAEYCXgBvAlwA3QACAAsASAJeAE4CXADdAAIACwBfAF4AcAJcAN0AAgALAF0AXgC1AE0AxAAMAAsAcQINAA4AEAByAhIAEwCrAE4CUABzAhQAdAJTAHMCCAB1AlYAdgJYAHcCWgC1Ac8B5AACAAsA0AFeAHgCzwHkAAIACwBGAl4AeQKLAOQABAALAEECEAB6AlAAewIUAHwCXADkAAIACw'
..'BIAl4AfQJLAOQAAQALAEoCXADkAAIACwBfAF4AfgJcAOQAAgALAF0AXgB/Ak0AxAAJAAsAQwANAA4AEACAAhIAEwAUAIECCACCAlYAgwJYAIQCWgCFAksA7AABAAsASgLPAewAAgALANABXgCGAs8B7AACAAsARgJeAIcCiwDsAAMACwBBAhAAiAIUAIkCXADsAAIACwBIAl4AigJLAOwAAQALAIsCXADsAAIACwBfAF4AjAJcAOwAAgAL'
..'AF0AXgAZAE0AxAAKAAsAjQINAA4AEACOAhIAEwCrAE4CFACPAggAkAJWAJECWACSAloAkwLPAfUAAgALANABXgCUAs8B9QACAAsARgJeAJUCiwD1AAMACwBBAhAAlgIUAJcCXAD1AAIACwBIAl4AfQJLAPUAAQALAEoCXAD1AAIACwBfAF4AmAJcAPUAAgALAF0AXgCZAk0AxAAMAAsAmgINAA4AEACbAhIAEwCrAJwCUACdAhQAngJTAJ'
..'0CCACfAlYAoAJYAKECWgCiAksA/QABAAsASgJcAP0AAgALAF8AXgCjAs8B/QACAAsA0AFeAKQCzwH9AAIACwBGAl4ApAJcAP0AAgALAF0AXgClAosA/QAEAAsAQQIQAKYCUACnAhQAqAJcAP0AAgALAEgCXgCpAk0AxAAKAAsAqgINAA4AEACrAhIAEwCrAE4CFACsAggArQJWAK4CWACtAloArwLPAQUBAQALANABzwEFAQIACwBGAl4A'
..'sAKLAAUBAwALAEECEACxAhQAsgJcAAUBAgALAEgCXgCpAlwABQECAAsAXwBeALMCXAAFAQIACwBdAF4AtAJNAMQACgALALUCDQAOABAAtgISABMAqwBOAhQAtwIIALgCVgC5AlgAuAJaALoCzwEMAQEACwDQAc8BDAECAAsARgJeALsCiwAMAQMACwBBAhAAvAIUAL0CXAAMAQIACwBIAl4AqQJLAAwBAQALAEoCXAAMAQIACwBfAF4Avg'
..'JcAAwBAgALAF0AXgCXAE0AxAALAAsAvwINAA4AtwDAAhAAwQISABMAcgDCAqsAlQEUAMMCCADEAlYAxQJYAMQCzwEUAQEACwDQAc8BFAECAAsARgJeAMYCiwAUAQMACwBBAhAAxwIUAMgCXAAUAQIACwBIAl4AqQJLABQBAQALAEoCXAAUAQIACwBfAF4AyQJcABQBAgALAF0AXgDKAk0AxAAKAAsAywINAA4AEADMAhIAEwCrAE4CFADN'
..'AggAzgJWAM8CWADOAloAhQLPARwBAQALANABzwEcAQIACwBGAl4A0AKLABwBAwALAEECEADRAhQA0gJcABwBAgALAEgCXgCpAksAHAEBAAsASgJcABwBAgALAF8AXgDTAlwAHAECAAsAXQBeANQCSwAcAQEACwCLAk0AxAALAAsA1QINAA4AtwDWAhAA1wISABMAcgDYAqsAlQEUANkCCADaAlYA2wJYANoCzwElAQEACwDQAc8BJQECAA'
..'sARgJeANwCiwAlAQMACwBBAhAA3QIUAN4CXAAlAQIACwBIAl4AqQJcACUBAgALAF8AXgDfAlwAJQECAAsAXQBeAOACTQDEAAwACwDhAg0ADgC3AOICEADjAhIAEwByAOQCqwCsABQA5QIIAOYCVgDnAlgA5gJaAEACzwEsAQEACwDQAc8BLAECAAsARgJeAOgCiwAsAQMACwBBAhAA6QIUAOoCXAAsAQIACwBIAl4AqQJcACwBAgALAF8A'
..'XgDrAlwALAECAAsAXQBeAOwCTQDEAAsACwDtAg0ADgC3AO4CEADvAhIAEwByAPACqwCVARQA8QIIAPICVgDzAlgA8gLPATMBAQALANABzwEzAQIACwBGAl4A9AKLADMBAwALAEECEAD1AhQA9gJcADMBAgALAEgCXgCpAlwAMwECAAsAXwBeAPcCXAAzAQIACwBdAF4A+AJNAMQACgALAPkCDQAOABAA+gISABMAqwBOAhQA+wIIAPwCVg'
..'D9AlgA/AJaAP4CzwE6AQEACwDQAc8BOgECAAsARgJeAP8CiwA6AQMACwBBAhAAAAMUAAEDXAA6AQIACwBIAl4AqQJcADoBAgALAF8AXgACA1wAOgECAAsAXQBeAAMDTQDEAAsACwAEAw0ADgC3AAUDEAAGAxIAEwByAAcDqwCVARQACAMIAAkDVgAKA1gACQPPAUEBAgALANABXgALA88BQQECAAsARgJeAAwDiwBBAQMACwBBAhAADQMU'
..'AA4DXABBAQIACwBIAl4AqQJcAEEBAgALAF8AXgAPA1wAQQECAAsAXQBeABADTQDEAAoACwARAw0ADgAQABIDEgATAKsATgIUABMDCAAUA1YAFQNYABYDWgAXA0sASAEBAAsASgJcAEgBAgALAF8AXgAYA88BSAECAAsA0AFeABkDzwFIAQIACwBGAl4AGgNcAEgBAgALAF0AXgAbA4sASAEDAAsAQQIQABwDFAAdA1wASAECAAsASAJeAE'
..'kCTQDEAAoACwAeAw0ADgAQAB8DEgATAKsArAAUACADCAAhA1YAIgNYACEDWgAjA88BUAECAAsA0AFeACQDzwFQAQIACwBGAl4AJQNcAFABAgALAF8AXgAmA1wAUAECAAsAXQBeACcDiwBQAQMACwBBAhAAKAMUACkDXABQAQIACwBIAl4AqQJNAMQADAALACoDDQAOABAAKwMSABMAqwCcAlAAnQIUACwDUwCdAggAHQJWAC0DWAAuA1oA'
..'LwNLAFcBAQALAEoCXABXAQIACwBfAF4AMAPPAVcBAgALANABXgAxA88BVwECAAsARgJeADIDXABXAQIACwBdAF4AMwOLAFcBAwALAEECEAA0A1AApwJcAFcBAgALAEgCXgCpAk0AxAAJAAsANQMNAA4AEAA2AxIAEwAUADcDCAA4A1YAOQNYADgDWgA6A4sAXwEDAAsAQQIQADsDFAA8A88BXwECAAsA0AFeAD0DzwFfAQIACwBGAl4APg'
..'NcAF8BAgALAEgCXgBOAlwAXwECAAsAXwBeAD8DXABfAQIACwBdAF4AQANNAMQACQALAEEDDQAOABAAgAISABMAFACBAggAggJWAIMCWACEAloAhQJLAGYBAQALAEoCzwFmAQIACwDQAV4AhgLPAWYBAgALAEYCXgCHAosAZgEDAAsAQQIQAIgCFACJAlwAZgECAAsASAJeAIoCSwBmAQEACwCLAlwAZgECAAsAXwBeAIwCXABmAQEACwBd'
..'AE0AxAALAAsAQgMNAA4AEABDAxIAEwBQAN8BFABEA1MA4QEIAEUDVgBGA1gARwNaAEgDzwFvAQIACwDQAV4ASQPPAW8BAgALAEYCXgBKA4sAbwEEAAsAQQIQAEsDUABMAxQATQNcAG8BAgALAEgCXgCKAlwAbwECAAsAXwBeAE4DXABvAQIACwBdAF4ATwNLAAEAAQALAFADTQB2AQsACwBRAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAw'
..'gAVQBWAFcAWABZAFoAVQNWA3cBAgALAEoCXgBXA1wAdwECAAsAXQBeAAMDzwF3AQIACwCLAl4AWANcAHcBAgALAF8AXgBZA00AdgELAAsAWgMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAFsDVgN8AQIACwBKAl4AXANcAHwBAgALAF0AXgAfAM8BfAECAAsAiwJeAF0DXAB8AQIACwBfAF4AXgNNAHYBCwALAF8D'
..'DQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgBgA1YDgQECAAsASgJeAGEDXACBAQIACwBdAF4AMwDPAYEBAgALAIsCXgBiA1wAgQECAAsAXwBeAGMDTQB2AQsACwBkAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAZQNWA4YBAgALAEoCXgBmA1wAhgECAAsAXQBeADUAzwGGAQIACwCLAl4AZw'
..'NcAIYBAgALAF8AXgBoA00AdgELAAsAaQMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAFsAVgOLAQIACwBKAl4A7gFcAIsBAQALAF0AzwGLAQIACwCLAl4AagNcAIsBAgALAF8AXgBrA00AdgELAAsAbAMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAG0DVgOQAQIACwBKAl4AbgNcAJABAgAL'
..'AF0AXgC1AM8BkAECAAsAiwJeAG8DXACQAQIACwBfAF4AcANNAHYBCwALAHEDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgByA1YDlQECAAsASgJeAHMDXACVAQIACwBdAF4AGwPPAZUBAgALAIsCXgB0A1wAlQECAAsAXwBeAHUDTQB2AQ0ACwB2Aw0ADgC3AHcDEABSAxIAEwByAHgDUABTAxQAUgBTAFQDCABVAF'
..'YAVwBYAFkAWgB5A1YDmgECAAsASgJeAHgDXACaAQIACwBdAF4AegPPAZoBAgALAIsCXgB7A1wAmgECAAsAXwBeAHwDTQB2AQsACwCcAQ0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAfQNWA58BAgALAEoCXgADAFwAnwECAAsAXQBeAJkCzwGfAQIACwCLAl4AfgNcAJ8BAgALAF8AXgB/A00AdgELAAsAgAMNAA4A'
..'EABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAIEDVgOkAQIACwBKAl4A7gFcAKQBAgALAF0AXgC0As8BpAECAAsAiwJeAIIDXACkAQIACwBfAF4AgwNNAHYBCwALAIQDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgCFA1YDqQECAAsASgJeAIYDXACpAQIACwBdAF4AlwDPAakBAgALAIsCXgCHA1wAqQ'
..'ECAAsAXwBeAIgDTQB2AQsACwCJAw0ADgAQAFIDEgATAFAAUwMUAFIAigMZAFMAVAMIAFUAVgBXAFgAWQBWA64BAgALAEoCXgADAFwArgECAAsAXQBeAPgCzwGuAQIACwCLAl4AiwNcAK4BAgALAF8AXgCMA00AdgELAAsAjQMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAI4DVgOzAQIACwBKAl4AjwNcALMBAgAL'
..'AF0AXgDUAs8BswECAAsAiwJeAJADXACzAQIACwBfAF4AkQNNAHYBCwALAJIDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgCTA1YDuAECAAsASgJeAJQDXAC4AQIACwBdAF4A4ALPAbgBAgALAIsCXgCVA1wAuAECAAsAXwBeAJYDTQB2AQsACwCXAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAF'
..'oAmANWA70BAgALAEoCXgCZA1wAvQECAAsAXQBeAOwCzwG9AQIACwCLAl4AmgNcAL0BAgALAF8AXgCbA00AdgEKAAsAnAMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBWA8IBAgALAEoCXgCdA1wAwgECAAsAXQBeAMoCzwHCAQIACwCLAl4AiwNcAMIBAgALAF8AXgCeA00AdgELAAsAnwMNAA4AEABSAxIAEwBQAFMD'
..'FABSAFMAVAMIAFUAVgBXAFgAWQBaAKADVgPHAQIACwBKAl4AoQNcAMcBAgALAF0AXgAQA88BxwECAAsAiwJeAKIDXADHAQIACwBfAF4AowNNAHYBCwALAKQDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgClA1YDzAECAAsASgJeAKYDXADMAQIACwBdAF4ApQJcAMwBAgALAF8AXgCnA88BzAECAAsAiwJeAKgDTQ'
..'B2AQsACwCpAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAqgNWA9EBAQALAEoCXADRAQIACwBdAF4AJwPPAdEBAgALAIsCXgCrA1wA0QECAAsAXwBeAKwDTQB2AQsACwCtAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoArgNWA9YBAgALAEoCXgCvA1wA1gECAAsAXQBeALADzwHWAQIACwCL'
..'Al4AsQNcANYBAgALAF8AXgCyA00AdgELAAsAswMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaALQDVgPbAQIACwBKAl4AtQNcANsBAgALAF0AXgAzA88B2wECAAsAiwJeALYDXADbAQIACwBfAF4AtwNNAHYBCwALALgDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgC5A1YD4AECAAsASgJeAL'
..'oDXADgAQIACwBdAF4AQAPPAeABAgALAIsCXgC7A1wA4AECAAsAXwBeALwDTQB2AQsACwC9Aw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAvgNWA+UBAgALAEoCXgC/A1wA5QECAAsAXQBeAE8DzwHlAQIACwCLAl4AwANcAOUBAgALAF8AXgDBA00AdgELAAsAQQINAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUA'
..'VgBXAFgAWQBaAMIDVgPqAQIACwBKAl4AwwNcAOoBAgALAF0AXgDEA88B6gECAAsAiwJeAMUDXADqAQIACwBfAF4AxgNNAHYBCwALAMcDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDIA1YD7wECAAsASgJeAMkDXADvAQIACwBdAF4AygPPAe8BAgALAIsCXgDLA1wA7wECAAsAXwBeAMwDTQB2AQsACwDNAw0ADg'
..'AQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAzgNWA/QBAgALAEoCXgDPA1wA9AECAAsAXQBeANADzwH0AQIACwCLAl4A0QNcAPQBAgALAF8AXgDSA00AdgELAAsA0wMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaANQDVgP5AQIACwBKAl4A1QNcAPkBAgALAF0AXgDWA88B+QECAAsAiwJeANcDXAD5'
..'AQIACwBfAF4A2ANNAHYBCwALANkDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDaA1YD/gECAAsASgJeANsDXAD+AQIACwBdAF4AfwLPAf4BAgALAIsCXgDcA1wA/gECAAsAXwBeAN0DTQB2AQ0ACwC2AQ0ADgC3AHcDEABSAxIAEwByAHgDUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDeA1YDAwICAAsASgJeAN'
..'8DXAADAgIACwBdAF4A4APPAQMCAgALAIsCXgDhA1wAAwICAAsAXwBeAOIDTQB2AQsACwDjAw0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoA5ANWAwgCAgALAEoCXgDlA1wACAICAAsAXQBeAOYDzwEIAgIACwCLAl4A5wNcAAgCAgALAF8AXgDoA00AdgELAAsAYQANAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUA'
..'VgBXAFgAWQBaAFsAVgMNAgIACwBKAl4A6QNcAA0CAgALAF0AXgAZAM8BDQICAAsAiwJeAGoDXAANAgIACwBfAF4AawNNAHYBCwALAOoDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgDrA1YDEgICAAsASgJeAOwDXAASAgIACwBdAF4A7QPPARICAgALAIsCXgDuA1wAEgICAAsAXwBeAO8DTQB2AQsACwDwAw0ADg'
..'AQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoA8QNWAxcCAgALAEoCXgDyA1wAFwICAAsAXQBeAPMDzwEXAgIACwCLAl4A9ANcABcCAgALAF8AXgD1A00AdgELAAsA9gMNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAPcDVgMcAgIACwBKAl4A+ANcABwCAgALAF0AXgD5A88BHAICAAsAiwJeAPoDXAAc'
..'AgIACwBfAF4A+wNNAHYBCwALAPwDDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkAWgD9A1YDIQICAAsASgJeAP4DXAAhAgIACwBdAF4A/wPPASECAgALAIsCXgAABFwAIQICAAsAXwBeAAEETQB2AQsACwACBA0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAAwRWAyYCAgALAEoCXgAEBFwAJgICAA'
..'sAXQBeAAUEzwEmAgIACwCLAl4ABgRcACYCAgALAF8AXgAHBE0AdgELAAsACAQNAA4AEABSAxIAEwBQAFMDFABSAFMAVAMIAFUAVgBXAFgAWQBaAAkEVgMrAgIACwBKAl4ACgRcACsCAgALAF0AXgALBM8BKwICAAsAiwJeAAwEXAArAgIACwBfAF4ADQRNAHYBCwALAA4EDQAOABAAUgMSABMAUABTAxQAUgBTAFQDCABVAFYAVwBYAFkA'
..'WgAPBFYDMAICAAsASgJeABAEXAAwAgIACwBdAF4AEQTPATACAgALAIsCXgASBFwAMAICAAsAXwBeABMETQB2AQsACwAUBA0ADgAQAFIDEgATAFAAUwMUAFIAUwBUAwgAVQBWAFcAWABZAFoAFQRWAzUCAgALAEoCXgAWBFwANQICAAsAXQBeABcEzwE1AgIACwCLAl4AGARcADUCAgALAF8AXgAZBE0AdgENAAsAGgQNAA4AtwDnARAAUg'
..'MSABMAcgDpAVAAUwMUAFIAUwBUAwgAVQAYACQBVgBXAFgAWQBWAzoCAgALAEoCXgDpAVwAOgICAAsAXQBeABsEzwE6AgIACwCLAl4AHARcADoCAgALAF8AXgAdBBQUAIQAIAAYAJMAFwAYAJQAFgAaAJMAGQAaAJQAHwAcAJMAGwAcAJQAFgAeAJMAHQAeAJQAHwAjAJMAIgAjAJQAIQAlAJMAJAAlAJQAKgAnAJMAJgAnAJQAIQApAJMA'
..'KAApAJQAKgArAIQALAA9AIQASwC5AJMAuAA=')
rf = rf[1]
rf.Name = "rf"
local wm = Instance.new('WorldModel', Objects[1])
rf.Parent = wm
wm.Name = "rf"
--
local UI = Decode('AERYASEJU2NyZWVuR3VpIQROYW1lIQZVSV9tb2QhDFJlc2V0T25TcGF3bgIhCVRleHRMYWJlbCEEdGltZSEQQmFja2dyb3VuZENvbG9yMwb///8hFkJhY2tncm91bmRUcmFuc3BhcmVuY3kDAAAAAAAA8D8hDEJvcmRlckNvbG9yMwYbKjUhCFBvc2l0aW9uDM3MzD4A'
..'AM3MTD4AACEEU2l6ZQzNzEw+AADNzMw9AAAhB1Zpc2libGUhBlpJbmRleAMAAAAAAAAQQCEERm9udCEEVGV4dCECNjAhClRleHRDb2xvcjMhClRleHRTY2FsZWQiIQhUZXh0U2l6ZQMAAAAAAAAsQCELVGV4dFdyYXBwZWQhB291dGxpbmUMAAAAAAAAzcxMPQAADAAA'
..'gD8AAAAAgD8AAAYAAAAhEFRleHRUcmFuc3BhcmVuY3kDAAAAoJmZ6T8hBUZyYW1lIQJVSSELQW5jaG9yUG9pbnQLAACAPwAAAAAMAACAP1b/AAAAAAAADB+Faz4yAB+Faz4yACEOU2l6ZUNvbnN0cmFpbnQDAAAAAAAAAEAhBXRpbWVyDHE9ij4AAM3MTD8AAAz2KNw+'
..'AAAK16M9AAADAAAAAAAAFEAhAAMAAAAAAAA0QCEOVGV4dFhBbGlnbm1lbnQDAAAAAAAAAAAhBHNhdmUMMzMzPwAAzcxMPwAADJqZmT4AAArXoz0AACEJU2F2aW5nLi4uIQtJbWFnZUJ1dHRvbiEFcGF1c2UhBkFjdGl2ZQb4+PgMzczMPQAAlkOLPQAAIQpTZWxlY3Rh'
..'YmxlDAAAgD4AAAAAgD4AACEFSW1hZ2UhF3JieGFzc2V0aWQ6Ly8xNDQ3MzcwMDAzIQ9JbWFnZVJlY3RPZmZzZXQLAADAQwAAgEMhDUltYWdlUmVjdFNpemULAAAAQwAAAEMhCkltYWdlTGFiZWwhA2JvZwsAAAA/AAAAPwwAAAA/AAAAAAA/AAAMZmamPwAAZmamPwAA'
..'IRdyYnhhc3NldGlkOi8vMTM4MzAyMzQ3NCELSW1hZ2VDb2xvcjMGioqKIQlpY2VkY3JlYW0MzczMPgAAAAAAAAAADJqZGT8AAM3MTD4AACEXcmJ4YXNzZXRpZDovLzE0NjM5MDY5OTchA2ltZwzsUTg9AADNzMw9AAAMzcxMPwAAzcxMPwAAIRdyYnhhc3NldGlkOi8v'
..'MTM3NDE3OTYzMSECdHgMG+i0PgAAj8J1PQAADMkvFj8AAM3MTD8AACEFY2FuZHkhF3JieGFzc2V0aWQ6Ly8xMTQ0NDU0NjMxIQNlZ2cMzczMPgAAmpkZPwAAIRdyYnhhc3NldGlkOi8vMTIxODc2ODUyMCEDOC84IQRqdW1wDM3MzD4AACPbeT8AACEJSnVtcGxlc3Mh'
..'BlWq/yEIdGltZXJSVEEM98FiPgAA+VNjPwAADG0F9T4AAArXoz0AACEGbW9iaWxlIQNzdDEMzcxMPQAAMzNzPwAADI/CdT4AAI/Cdb4AACEXcmJ4YXNzZXRpZDovLzEzODMwMjMzNTgMmpmZPgAAmpmZPgAADM3MzD4AAM3MzD4AACEBQQwAAEA/AAAzM3M/AAAMzczM'
..'PQAAzczMvQAAIRdyYnhhc3NldGlkOi8vMTM4MDE4NDE1MgsAAAAAAACAQwsAAIBDAACAQyEBWAyuR4G/AAAzMzO/AAAhF3JieGFzc2V0aWQ6Ly8xMzgwMTg0MzYwIQFCDK5HgT8AADMzM78AACECUlQMAAAAAAAAAACAvwAAIQRsb2FkCwAAgD8AAIA/DAAAgD/s/wAA'
..'gD/s/wzNzMw9AADNzMw9AAAhF3JieGFzc2V0aWQ6Ly8xMjAyOTcxNjEwIQJCVAwAAAAAAACamZm+AAAMAACAPwAAmpmZPgAAAwAAAAAAABhAIQdMb2FkaW5nDAAAAAAAAArXIz0AACEEbG9vcCEPQm9yZGVyU2l6ZVBpeGVsDAAAAAAAAAAAAADc/wwAAIA/AAAAAIA/'
..'JAADAAAAAAAACEAhBmNlbnRlciEXcmJ4YXNzZXRpZDovLzExODYyMzQ0OTchAWwMAAAAPwAAAACAPwAAIQFyDAAAgD8AAAAAAAAAAAwAAAC/AAAAAIA/AAAhAXUMAACAPwAAAAAAPwAAIQFkDAAAAAAAAAAAgD8AAAwAAIA/AAAAAAC/AAAMAAAAAAAAMzMzPwAADAAA'
..'gD8AAArXoz0AACESWU9VIEdPVCBJQ0UgQ1JFQU0hIQNzdWIMAACAPwAAmpkZPwAAIRpXYXRjaCBmb3Igcm9sbGluZyByb2NrcyAweCEKVGV4dEJ1dHRvbiEEc2tpcAyPwvU9AAAK1yM9AAAhBFNraXAhAmJ0IRdyYnhhc3NldGlkOi8vMTMwNDMwNjMwOQsAAJBDAAAA'
..'AAsAAABCAAAAQiEGY3Vyc29yDAAAAACAAAAAAACAAAMAAAAAAAAkQCEXcmJ4YXNzZXRpZDovLzE0NTA5NzMxMDchBnBsYXliZyEXcmJ4YXNzZXRpZDovLzEzMzkxOTg1MTkhCVNjYWxlVHlwZSEIVGlsZVNpemUMAAAAAAABAAAAAAABIQVsb2FkMgwAAAAAAABmZmY/'
..'AAAMAACAPwAAzcxMPQAABhEREQMAAABgZmbmPwwAAAAAAADNzMy9AAAMAACAPwAAzcyMPwAAIQFzIQRzcGluAwAAAAAAABxAIRdyYnhhc3NldGlkOi8vMTQ0NzM5NTMyNSELTnVtYmVyVmFsdWUhA3BvcyEFVmFsdWUDmpmZmZmZyT8hBHBvc1ghF1VJQXNwZWN0UmF0'
..'aW9Db25zdHJhaW50IQxEb21pbmFudEF4aXMhAmJnDAAAgD8AADMzcz8AACEXcmJ4YXNzZXRpZDovLzE0NDI5Nzg5MTkhBWNsb3NlIRFOZXh0U2VsZWN0aW9uRG93biEPTmV4dFNlbGVjdGlvblVwDAAAAAAAAI/CdT4AAAwAAIA/AADsUbg9AAAhBlJlc3VtZSEEaWNv'
..'bgzNzEw/AAAAAAAAAAALAAAAQwAAAAAhA2h1YgwAAAAAAACkcD0/AAAhC0JhY2sgdG8gSHViCwAAgEMAAAAAIQRxdWl0DAAAAAAAAD0KVz8AACENUXVpdCB0byBUaXRsZQsAAIBDAAAAQyEIaWNlY3JlYW0MAAAAAAAAexSuPgAAIQlJY2VjcmVhbXMhBXRpdGxlDAAA'
..'AAAAABKDQD0AAAwAAIA/AACPwvU9AAAhBlBhdXNlZCEIY2xvdGhpbmcMAAAAAAAAcT0KPwAAIQhDbG90aGluZwsAAMBDAAAAACEEc25hcAwAAAAAAACuR+E+AAAhDVNuYXBzaG90IE1vZGULAADAQwAAAEMhBmNhbWVyYQwAAAAAAAAK1yM/AAAhDUZvbGxvdyBDYW1l'
..'cmELAAAAAAAAAEMhDUFyZSB5b3Ugc3VyZT8hBGh1YjIhAm5vIQZDYW5jZWwhBXF1aXQyDAAAAAAAAArXozwAAAwAAIA/AADNzMw9AAAhD0tub2RkeSdzIFJlc29ydCEDYnQxDJqZGT4AAG9zbD4AAAwzMzM/AAApXI89AAAhIlJhY2luZyB0byB0aGUgVG9wIG9mIHRo'
..'ZSBIZWNrbGFuZHMMzczMvQAAAAAAAAAAIQNidDIMmpkZPgAAWsWkPgAAIQ1zb3JyeSBub3RoaW5nIQNidDMMmpkZPgAA/VDTPgAAIQNidDQMmpkZPgAAUO4APwAAIQNidDUMmpkZPgAAIjQYPwAAIQNidDYMmpkZPgAA83kvPwAAIQNidDcMmpkZPgAAxL9GPwAAIQRw'
..'YWdlDAAAAAAAAI/C9T0AAAwAAIA/AACPwnU9AAAhCFBhZ2UgMS84IQdQUmlnaHQxIRFOZXh0U2VsZWN0aW9uTGVmdCESTmV4dFNlbGVjdGlvblJpZ2h0DJqZ2T4AAOF6VD8AAAyamRk+AACamRk+AAALAAAAQwAAgEMhBlBMZWZ0MQzNzIw+AADhelQ/AAAMMzMTPwAA'
..'4XpUPwAAIQhJbnRWYWx1ZSEFcGFnZWUhBkZvbGRlciECMkIhB3dlYXJpbmcM7FE4PwAA16MwPwAAIQNub2IhBlBMZWZ0NCEHUFJpZ2h0NAzNzMw9AACPwnU+AAAMzcxMPwAAmpkZPwAAIRdyYnhhc3NldGlkOi8vMTQ0NzY4ODE3MSEEaGF0bSELU3RyaW5nVmFsdWUh'
..'BGl0ZW0hATEMAACAPgAAj8J1PgAAIQEyDM3MzD4AAI/CdT4AACEBMwzNzAw/AACPwnU+AAAhATQMzczMPQAAFK7HPgAAIQE1DAAAgD4AABSuxz4AACEBNgzNzMw+AAAUrsc+AAAhATcMzcwMPwAAFK7HPgAAAwAAAAAAACBAIQE4DM3MzD0AAHE9Cj8AAAMAAAAAAAAi'
..'QCEBOQwAAIA+AABxPQo/AAAhAjEwDM3MzD4AAHE9Cj8AAAMAAAAAAAAmQCECMTEMzcwMPwAAcT0KPwAAAwAAAAAAAChAIQIxMgzNzMw9AADXozA/AAADAAAAAAAAKkAhAjEzDAAAgD4AANejMD8AACECMTQMzczMPgAA16MwPwAAAwAAAAAAAC5AIQIxNQzNzAw/AADX'
..'ozA/AAADAAAAAAAAMEAhAjE2DOxROD8AAI/CdT4AAAzsUTg/AAAUrsc+AAAM7FE4PwAAcT0KPwAAAwAAAAAAAOA/IQZzcGlubnkMzcxMPgAAzcxMPgAAIQlVSVBhZGRpbmchDVBhZGRpbmdCb3R0b20SzczMPQAAIQtQYWRkaW5nTGVmdBLNzEw9AAAhDFBhZGRpbmdS'
..'aWdodCEKUGFkZGluZ1RvcCEEaGF3ayEFdHJpY2sMAAAAAAAAzcxMPwAADAAAgD8AAArXIz0AACELNTAtNTAgR3JpbmQhA3B0cyEHNTMyIHggMiEFc2NvcmUMzcxMPQAAzcxMPgAADJqZGT8AAArXIz0AACEQU2NvcmU6IDk5OTk5OTk5OdIBAAACAAIAAwAEAAUABgAB'
..'DgACAAcACAAJAAoACwAMAA0ADgAPABAAEQASAAUAEwAUABUAFAAWABcAGAAJABkAGgAbABwAHQAaAAYAAg0AAgAeAAgACQAKAAsADAANAA4AHwAQACAAFQAUABYAFwAYACEAGQAaABsAHAAiACMAHQAaACQAAQkAAgAlACYAJwAIAAkACgALAAwADQAOACgAEAApACoA'
..'KwATABQABgAEDgACACwACAAJAAoACwAMAA0ADgAtABAALgATAC8AFQAUABYAMAAYAAkAGQAaABsAMQAdABoAMgAzAAYABRAAAgAeAAgACQAKAAsADAANAA4AHwAQACAAEgAFABMAFAAVABQAFgAwABgAIQAZABoAGwAxACIAIwAdABoAMgAzAAYABA8AAgA0AAgACQAK'
..'AAsADAANAA4ANQAQADYAEgAFABMALwAVABQAFgA3ABgACQAZABoAGwAcAB0AGgAyAAsABgAHDwACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATABQAFQAUABYANwAYACEAGQAaABsAHAAiACMAHQAaADIACwA4AAQMAAIAOQA6AAUACAA7AAoACwAMAA0ADgA8AD0ABQAQ'
..'AD4AEwArAD8AQABBAEIAQwBEAEUACQkAAgBGACYARwAIAAkACgALAAwADQAOAEgAEABJAD8ASgBLAEwARQAECAACAE0ACAAJAAoACwAMAA0ADgBOABAATwATABQAPwBQAEUACwkAAgBRAAgACQAKAAsADAANAA4AUgAQAFMAKgArABMALwA/AFQABgALDgACAFUACAAJ'
..'AAoACwAMAA0ADgBWABAAVwATAC8AFQAUABYAMAAYAAkAGQAaABsAHAAdABoAMgAzAAYADQ8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAUABUAFAAWADAAGAAhABkAGgAbABwAIgAjAB0AGgAyADMARQAECAACAFgACAAJAAoACwAMAA0ADgAPABAATwATABQAPwBQ'
..'AAYADw4AAgBVAAgACQAKAAsADAANAA4AVgAQAFcAEwAvABUAFAAWADAAGAAJABkAGgAbABwAHQAaADIAMwAGABAPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMAFAAVABQAFgAwABgAIQAZABoAGwAcACIAIwAdABoAMgAzAEUADwkAAgBRAAgACQAKAAsADAANAA4A'
..'UgAQAFMAKgArABMALwA/AFkARQAECQACAFoACAAJAAoACwAMAA0ADgBbABAATwASAAUAEwAUAD8AUABFABMJAAIAUQAIAAkACgALAAwADQAOAFIAEABTACoAKwATAC8APwBcAAYAEw4AAgBVAAgACQAKAAsADAANAA4AVgAQAFcAEwAvABUAFAAWAF0AGAAJABkAGgAb'
..'ABwAHQAaADIAMwAGABUPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMAFAAVABQAFgBdABgAIQAZABoAGwAcACIAIwAdABoAMgAzAAYABA8AAgBeAAgACQAKAAsADAANAA4AXwAQADYAEgAFABMALwAVABQAFgBgABgAYQAZABoAGwAcAB0AGgAyADMABgAXDwACAB4A'
..'CAAJAAoACwAMAA0ADgAfABAAIAATABQAFQAUABYAMAAYACEAGQAaABsAHAAiACMAHQAaADIAMwAGAAQOAAIAYgAIAAkACgALAAwADQAOAGMAEABkABMALwAVABQAFgAwABgACQAZABoAGwAxAB0AGgAyADMABgAZEAACAB4ACAAJAAoACwAMAA0ADgAfABAAIAASAAUA'
..'EwAUABUAFAAWADAAGAAhABkAGgAbADEAIgAjAB0AGgAyADMAJAABBwACAGUACAAJAAoACwAMAA0AEAAgABIABQATABQAOAAbCgACAGYACAAJAAoACwAMAA0ADgBnAD0ABQAQAGgAKgALABMAKwA/AGkARQAcCAACAEYACAAJAAoACwAMAA0ADgBqABAAawATACsAPwBK'
..'ADgAGwsAAgBsAAgACQAKAAsADAANAA4AbQA9AAUAEABuACoACwA/AG8AQQBwAEMAcQA4AB4KAAIAcgAIAAkACgALAAwADQAOAHMAPQAFABAAIAAqAAsAPwB0AEMAcQA4AB4KAAIAdQAIAAkACgALAAwADQAOAHYAPQAFABAAIAAqAAsAPwBvAEMAcQA4AB4LAAIAdwAI'
..'AAkACgALAAwADQAOAHgAPQAFABAAIAAqAAsAPwB0AEEAcABDAHEARQABCwACAHkAJgB6AAgACQAKAAsADAANAA4AewAQAHwAKgArABIABQATAC8APwB9AAYAIg0AAgB+AAgACQAKAAsADAANAA4AfwAQAIAAEwCBABUAFAAWAIIAGAAJABkAGgAbABwAHQAaAAYAIw4A'
..'AgAeAAgACQAKAAsADAANAA4AgwAQACAAEwAvABUAFAAWAIIAGAAhABkAGgAbABwAIgAjAB0AGgAkAAEJAAIAhAAIACEACgALAAwADQCFADMADgCGABAAhwASAAUAEwCIAEUAJQcAAgCJAAgACQAKAAsADAANAA4ASAATAIgAPwCKACQAJQYAAgCLAAgAIQAMAA0AhQAz'
..'ABAAjAATAIgAJAAlBwACAI0ACAAhAAwADQCFADMADgCOABAAjwATAIgAJAAlBgACAJAACAAhAAwADQCFADMAEACRABMAiAAkACUHAAIAkgAIACEADAANAIUAMwAOAJMAEACUABMAiAAGAAEOAAIAfgAIAAkACgALAAwADQAOAJUAEACWABIABQATACsAFQAUABYAlwAY'
..'AAkAGQAaABsAHAAdABoABgArDQACAJgACAAJAAoACwAMAA0ADgCTABAAmQATACsAFQAUABYAmgAYAAkAGQAaABsAHAAdABoABgAsDQACAB4ACAAJAAoACwAMAA0ADgAfABAAIAAVABQAFgCaABgAIQAZABoAGwAcACIAIwAdABoABgArDQACAB4ACAAJAAoACwAMAA0A'
..'DgCDABAAIAAVABQAFgCXABgAIQAZABoAGwAcACIAIwAdABoAmwABEgACAJwAJgAnAAgACQAKAAsADAANAA4AKAA9AAUAEACdACoAKwASAAUAEwArABUAFAAWAJ4AGAAJABkAGgAbABwAHQAaADIACwBFAC8JAAIAnwAIAAkACgALAAwADQAQACAAKgArAD8AoABBAKEA'
..'QwCiAAYALw4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAFQAUABYAngAYACEAGQAaABsAHAAiACMAHQAaADIACwBFAAEKAAIAowAmAEcACAAJAAoACwAMAA0AEACkACoAKwASAAUAEwClAD8ApgBFAAELAAIApwAIAAkACgALAAwADQAOAIYAEACHABIABQATABQAPwCo'
..'AKkAKwCqAKsABgABDgACAKwACAAJAAoACwAMAA0ADgCtABAArgASAAUAEwArABUAFAAWADAAGAAJABkAGgAbABwAHQAaACQAAQkAAgA5AAgArwAKALAADAANAIUAMwAOALEAEACyABIABQATAC8AJAA1CQACALMAJgBHAAgAOwAKAAsADAANAIUAMwAOAEgAEAAgABMA'
..'LwBFADYIAAIAtAAIAAkACgALAAwADQAQAHwAKgArABMAtQA/ALYAtwA3AgACALgAuQC6ALcANwIAAgC7ALkAugC8ADYBAL0ACwBFADULAAIAvgAmAEcACAAJAAoACwAMAA0AhQAzAA4ASAAQAL8AEgAFABMALwA/AMAAJAA7BwACADkACAAJAAoACwAMAA0AEAAgABIA'
..'BQATAIEAmwA8DwACAMEAOgAFAAgACQAKAAsADAANAA4AxAA9AAUAEADFABMAgQAVABQAFgDGABgAOwAZABoAGwAcAB0AGgAGAD0OAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDGABgAIQAZABoAGwAcACIAIwAdABoARQA9CwACAMcACAAJAAoACwAM'
..'AA0ADgDIABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAJsAPA8AAgDKADoABQAIAAkACgALAAwADQAOAMsAPQAFABAAxQATAIEAFQAUABYAzAAYADsAGQAaABsAHAAdABoABgBADgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYAzAAYACEAGQAaABsAHAAi'
..'ACMAHQAaAEUAQAsAAgDHAAgACQAKAAsADAANAA4AyAAQACAAKgArABMAgQA/AEAAQQDNAEMARACbADwPAAIAzgA6AAUACAAJAAoACwAMAA0ADgDPAD0ABQAQAMUAEwCBABUAFAAWANAAGAA7ABkAGgAbABwAHQAaAAYAQw4AAgAeAAgACQAKAAsADAANAA4AHwAQACAA'
..'EwAvABUAFAAWANAAGAAhABkAGgAbABwAIgAjAB0AGgBFAEMLAAIAxwAIAAkACgALAAwADQAOAMgAEAAgACoAKwATAIEAPwBAAEEA0QBDAEQAmwA8DwACANIAOgAFAAgACQAKAAsADAANAA4A0wA9AAUAEADFABMAgQAVABQAFgDUABgAOwAZABoAGwAcAB0AGgAGAEYO'
..'AAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDUABgAIQAZABoAGwAcACIAIwAdABoARQBGCwACAMcACAAJAAoACwAMAA0ADgDIABAAIAAqACsAEwCBAD8AQABBAHEAQwBEAAYAPA0AAgDVAAgACQAKAAsADAANAA4A1gAQANcAEwCBABUAFAAWANgAGAAJ'
..'ABkAGgAbABwAHQAaAAYASQ4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWANgAGAAhABkAGgAbABwAIgAjAB0AGgCbADwPAAIA2QA6AAUACAAJAAoACwAMAA0ADgDaAD0ABQAQAMUAEwCBABUAFAAWANsAGAA7ABkAGgAbABwAHQAaAAYASw4AAgAeAAgA'
..'CQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWANsAGAAhABkAGgAbABwAIgAjAB0AGgBFAEsLAAIAxwAIAAkACgALAAwADQAOAMgAEAAgACoAKwATAIEAPwBAAEEA3ABDAEQAmwA8DwACAN0AOgAFAAgACQAKAAsADAANAA4A3gA9AAUAEADFABMAgQAVABQAFgDfABgA'
..'OwAZABoAGwAcAB0AGgAGAE4OAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDfABgAIQAZABoAGwAcACIAIwAdABoARQBOCwACAMcACAAJAAoACwAMAA0ADgDIABAAIAAqACsAEwCBAD8AQABBAOAAQwBEAJsAPA8AAgDhADoABQAIAAkACgALAAwADQAO'
..'AOIAPQAFABAAxQATAIEAFQAUABYA4wAYADsAGQAaABsAHAAdABoABgBRDgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA4wAYACEAGQAaABsAHAAiACMAHQAaAEUAUQsAAgDHAAgACQAKAAsADAANAA4AyAAQACAAKgArABMAgQA/AEAAQQDkAEMARAAk'
..'ADsHAAIAygAIAAkACgALAAwADQAQACAAEgAFABMAgQAGAFQNAAIA1QAIAAkACgALAAwADQAOANYAEADXABMAgQAVABQAFgDlABgACQAZABoAGwAcAB0AGgAGAFUOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDlABgAIQAZABoAGwAcACIAIwAdABoA'
..'mwBUDwACAOYAOgAFAAgACQAKAAsADAANAA4AxAA9AAUAEADFABMAgQAVABQAFgDMABgAOwAZABoAGwAcAB0AGgAGAFcOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDMABgAIQAZABoAGwAcACIAIwAdABoARQBXCwACAMcACAAJAAoACwAMAA0ADgDI'
..'ABAAIAAqACsAEwCBAD8AQABBAM0AQwBEAJsAVA8AAgDnADoABQAIAAkACgALAAwADQAOANMAPQAFABAAxQATAIEAFQAUABYA6AAYADsAGQAaABsAHAAdABoABgBaDgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA6AAYACEAGQAaABsAHAAiACMAHQAa'
..'AEUAWgsAAgDHAAgACQAKAAsADAANAA4AyAAQACAAKgArABMAgQA/AEAAQQDJAEMARAAkADsHAAIAzgAIAAkACgALAAwADQAQACAAEgAFABMAgQCbAF0PAAIA6QA6AAUACAAJAAoACwAMAA0ADgDEAD0ABQAQAMUAEwCBABUAFAAWANAAGAA7ABkAGgAbABwAHQAaAAYA'
..'Xg4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWANAAGAAhABkAGgAbABwAIgAjAB0AGgBFAF4LAAIAxwAIAAkACgALAAwADQAOAMgAEAAgACoAKwATAIEAPwBAAEEA0QBDAEQAmwBdDwACAOcAOgAFAAgACQAKAAsADAANAA4A0wA9AAUAEADFABMAgQAV'
..'ABQAFgDoABgAOwAZABoAGwAcAB0AGgAGAGEOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDoABgAIQAZABoAGwAcACIAIwAdABoARQBhCwACAMcACAAJAAoACwAMAA0ADgDIABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAXQ0AAgDVAAgACQAKAAsA'
..'DAANAA4A1gAQANcAEwCBABUAFAAWAOUAGAAJABkAGgAbABwAHQAaAAYAZA4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAOUAGAAhABkAGgAbABwAIgAjAB0AGgAkADsHAAIA0gAIAAkACgALAAwADQAQACAAEgAFABMAgQAGAGYNAAIA1QAIAAkACgAL'
..'AAwADQAOAOoAEADrABMAgQAVABQAFgDsABgACQAZABoAGwAcAB0AGgAGAGcOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgDsABgAIQAZABoAGwAcACIAIwAdABoABgBmDgACAO0ACAA7AAoACwAMAA0ADgDuABAA7wATAIEAFQAUABYA8AAYADsAGQAa'
..'ABsAHAAdABoAMgAzAAYAaQ8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAPAAGAAhABkAGgAbABwAIgAjAB0AGgAyADMARQBpCwACAMcACAAJAAoACwAMAA0ADgDxABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAZg4AAgDyAAgAOwAKAAsADAANAA4A'
..'8wAQAO8AEwCBABUAFAAWAPQAGAA7ABkAGgAbABwAHQAaADIAMwAGAGwPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQAFgD0ABgAIQAZABoAGwAcACIAIwAdABoAMgAzAEUAbAsAAgDHAAgACQAKAAsADAANAA4A8QAQACAAKgArABMAgQA/AEAAQQDJAEMA'
..'RAAGAGYOAAIA9QAIADsACgALAAwADQAOAPYAEADvABMAgQAVABQAFgD0ABgAOwAZABoAGwAcAB0AGgAyADMABgBvDwACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA9AAYACEAGQAaABsAHAAiACMAHQAaADIAMwBFAG8LAAIAxwAIAAkACgALAAwADQAO'
..'APEAEAAgACoAKwATAIEAPwBAAEEAyQBDAEQABgBmDgACAPcACAA7AAoACwAMAA0ADgD4ABAA7wATAIEAFQAUABYA9AAYADsAGQAaABsAHAAdABoAMgAzAAYAcg8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAPQAGAAhABkAGgAbABwAIgAjAB0AGgAy'
..'ADMARQByCwACAMcACAAJAAoACwAMAA0ADgDxABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAZg4AAgD5AAgAOwAKAAsADAANAA4A+gAQAO8AEwCBABUAFAAWAPQAGAA7ABkAGgAbABwAHQAaADIAMwAGAHUPAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQA'
..'FgD0ABgAIQAZABoAGwAcACIAIwAdABoAMgAzAEUAdQsAAgDHAAgACQAKAAsADAANAA4A8QAQACAAKgArABMAgQA/AEAAQQDJAEMARAAGAGYOAAIA+wAIADsACgALAAwADQAOAPwAEADvABMAgQAVABQAFgD0ABgAOwAZABoAGwAcAB0AGgAyADMABgB4DwACAB4ACAAJ'
..'AAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYA9AAYACEAGQAaABsAHAAiACMAHQAaADIAMwBFAHgLAAIAxwAIAAkACgALAAwADQAOAPEAEAAgACoAKwATAIEAPwBAAEEAyQBDAEQABgBmDgACAP0ACAA7AAoACwAMAA0ADgD+ABAA7wATAIEAFQAUABYA9AAYADsAGQAa'
..'ABsAHAAdABoAMgAzAAYAew8AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAPQAGAAhABkAGgAbABwAIgAjAB0AGgAyADMARQB7CwACAMcACAAJAAoACwAMAA0ADgDxABAAIAAqACsAEwCBAD8AQABBAMkAQwBEAAYAZg0AAgD/AAgACQAKAAsADAANAA4A'
..'AAEQAAEBEwCBABUAFAAWAAIBGAAJABkAGgAbABwAHQAaAAYAfg4AAgAeAAgACQAKAAsADAANAA4AHwAQACAAEwAvABUAFAAWAAIBGAAhABkAGgAbABwAIgAjAB0AGgA4AGYLAAIAAwEIAAkACgALAAwADQAOAAYBPQAFABAABwETAIEAPwBAAEEACAFDAEQAOABmCwAC'
..'AAkBCAAJAAoACwAMAA0ADgAKAT0ABQAQAAcBEwCBAD8AQABBAHAAQwBEADgAZgsAAgDnAAgACQAKAAsADAANAA4ACwE9AAUAEAAHARMAgQA/AEAAQQDJAEMARAAMAWYCAAIADQG5AAsADgFmAQACAA8BvAA7AQC9AAsAJAA7BgACANkACAAJAAoACwAMAA0AEAAgABMA'
..'gQA4AIYJAAIAEAEIAAkACgALAAwADQAOABEBPQAFABAABwETAIEAPwBAAAwBhwIAAgASAbkAFAAGAIYNAAIA1QAIAAkACgALAAwADQAOAOoAEADrABMAgQAVABQAFgDbABgACQAZABoAGwAcAB0AGgAGAIkOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABMALwAVABQA'
..'FgDbABgAIQAZABoAGwAcACIAIwAdABoABgCGDQACAP8ACAAJAAoACwAMAA0ADgAAARAAAQETAIEAFQAUABYAAgEYAAkAGQAaABsAHAAdABoABgCLDgACAB4ACAAJAAoACwAMAA0ADgAfABAAIAATAC8AFQAUABYAAgEYACEAGQAaABsAHAAiACMAHQAaADgAhgsAAgDn'
..'AAgACQAKAAsADAANAA4ACwE9AAUAEAAHARMAgQA/AEAAQQDJAEMARAA4AIYLAAIAEwEIAAkACgALAAwADQAOAAoBPQAFABAABwETAIEAPwBAAEEAcABDAEQAOACGCwACABQBCAAJAAoACwAMAA0ADgAGAT0ABQAQAAcBEwCBAD8AQABBAAgBQwBEAEUAhgcACAAJAAoA'
..'CwAMAA0ADgAVARAAFgETAC8APwAXATgAhgkAAgAYAQgACQAKAAsADAANAA4AFQE9AAUAEAAHARMAgQA/AEAADAGRAgACABIBuQALABkBkQIAAgAaAbkAGwE4AIYJAAIAGAEIAAkACgALAAwADQAOABwBPQAFABAABwETAIEAPwBAAAwBlAIAAgASAbkAKwAZAZQCAAIA'
..'GgG5AB0BOACGCQACABgBCAAJAAoACwAMAA0ADgAeAT0ABQAQAAcBEwCBAD8AQAAMAZcCAAIAEgG5AIgAGQGXAgACABoBuQAfATgAhgkAAgAYAQgACQAKAAsADAANAA4AIAE9AAUAEAAHARMAgQA/AEAADAGaAgACABIBuQAUABkBmgIAAgAaAbkAIQE4AIYJAAIAGAEI'
..'AAkACgALAAwADQAOACIBPQAFABAABwETAIEAPwBAAAwBnQIAAgASAbkALwAZAZ0CAAIAGgG5ACMBOACGCQACABgBCAAJAAoACwAMAA0ADgAkAT0ABQAQAAcBEwCBAD8AQAAMAaACAAIAEgG5AIEAGQGgAgACABoBuQAlATgAhgkAAgAYAQgACQAKAAsADAANAA4AJgE9'
..'AAUAEAAHARMAgQA/AEAADAGjAgACABIBuQC1ABkBowIAAgAaAbkAJwE4AIYJAAIAGAEIAAkACgALAAwADQAOACgBPQAFABAABwETAIEAPwBAAAwBpgIAAgASAbkAKQEZAaYCAAIAGgG5ACoBOACGCQACABgBCAAJAAoACwAMAA0ADgArAT0ABQAQAAcBEwCBAD8AQAAM'
..'AakCAAIAEgG5ACwBGQGpAgACABoBuQAtATgAhgkAAgAYAQgACQAKAAsADAANAA4ALgE9AAUAEAAHARMAgQA/AEAADAGsAgACABIBuQClABkBrAIAAgAaAbkALwE4AIYJAAIAGAEIAAkACgALAAwADQAOADABPQAFABAABwETAIEAPwBAAAwBrwIAAgASAbkAMQEZAa8C'
..'AAIAGgG5ADIBOACGCQACABgBCAAJAAoACwAMAA0ADgAzAT0ABQAQAAcBEwCBAD8AQAAMAbICAAIAEgG5ADQBGQGyAgACABoBuQA1ATgAhgkAAgAYAQgACQAKAAsADAANAA4ANgE9AAUAEAAHARMAgQA/AEAADAG1AgACABIBuQA3ARkBtQIAAgAaAbkAOAE4AIYJAAIA'
..'GAEIAAkACgALAAwADQAOADkBPQAFABAABwETAIEAPwBAAAwBuAIAAgASAbkAHAAZAbgCAAIAGgG5ADoBOACGCQACABgBCAAJAAoACwAMAA0ADgA7AT0ABQAQAAcBEwCBAD8AQAAMAbsCAAIAEgG5ADwBGQG7AgACABoBuQA9ATgAhgkAAgAYAQgACQAKAAsADAANAA4A'
..'PgE9AAUAEAAHARMAgQA/AEAADAG+AgACABIBuQA/ARkBvgIAAgAaAbkAQAE4AIYJAAIAEAEIAAkACgALAAwADQAOAEEBPQAFABAABwETAIEAPwBAAAwBwQIAAgASAbkACwA4AIYJAAIAEAEIAAkACgALAAwADQAOAEIBPQAFABAABwETAIEAPwBAAAwBwwIAAgASAbkA'
..'KwA4AIYJAAIAEAEIAAkACgALAAwADQAOAEMBPQAFABAABwETAIEAPwBAAAwBxQIAAgASAbkAiAAkAIYIAAIAeQAIACEACgBEAQwADQAOABUBEAAWARIABQATAIEARQDHCgACAEUBJgBHAAgACQAKAAsADAANAA4ASAAQAEYBKgArABMAgQA/AH0ADgGGAQACAA8BDAGG'
..'AgACAA0BuQALAEcBNQQASAFJAUoBSwFMAUsBTQFJASQAAQcAAgBOAQgACQAKAAsADAANAA4AhgAQAIcAEgAFAAYAzA0AAgBPAQgACQAKAAsADAANAA4AUAEQAFEBEwArABUAFAAWAFIBGAAJABkAGgAbABwAHQAaAAYAzQ0AAgAeAAgACQAKAAsADAANAA4AHwAQACAA'
..'FQAUABYAUgEYACEAGQAaABsAHAAiACMAHQAaAAYAzA0AAgBTAQgACQAKAAsADAANAA4AzwAQAAEBEwArABUAFAAWAFQBGAAJABkAGgAbABwAHQAaAAYAzw0AAgAeAAgACQAKAAsADAANAA4AHwAQACAAFQAUABYAVAEYACEAGQAaABsAHAAiACMAHQAaAAYAzA4AAgBV'
..'AQgACQAKAAsADAANAA4AVgEQAFcBEwArABUAFAAWAFgBGAAJABkAGgAbABwAHQAaADIAMwAGANEOAAIAHgAIAAkACgALAAwADQAOAB8AEAAgABUAFAAWAFgBGAAhABkAGgAbABwAIgAjAB0AGgAyADMAZwA9wgBGPcMAQ0DCAENAwwBRQ8IAPUPDAEBGwgBORsMAPUvC'
..'AFFLwwBOTsIAS07DAEZRwgBAUcMAS1fCAFpawwBXXsIAYWHDAF6ABAGBgAUBgoEFAYCCBAGAh8IAjYcEAb6HwwDFjQQBj40FAYeNwwC+jgQBuI4FAY+OwwC4jwQBjo8FAY2PwwC7kcIAnZEEAY+RBQGUlMIAoJQEAZGUBQGXl8IAo5cEAZSXBQGamsIAppoEAZeaBQHB'
..'ncIAqZ0EAY+dBQGgncMAkaDCAKygBAGdoAUBo6DDAJSjwgCvowQBoKMFAaajwwCXpsIAsqYEAaOmBQHDpsMAmqnCALWpBAGPqQUBrKnDAJ2swgC4rAQBqawFAa+swwCgr8IAu68EAayvBQGyr8MAo7LCAL6yBAGvsgUBxbLDAKa1wgCOtQQBj7UFAbi1wwCpuMIAjrgE'
..'AbW4BQG7uMMArLvCAI+7BAG4uwUBvrvDAK++wgCNvgQBu74FAYe+wwCywcIAw8EEAZrDwgDFwwQBpsPDAMHFwgCHxQQBssXDAMPOwwDS')
for _,obj in pairs(UI) do
obj.Parent = owner.PlayerGui
end
UI = UI[1]
UI.Name = "UI"
UI.hawk.Interactable = false
--
plam.Parent = Objects[1]
--
for i, v in Objects[1]:GetDescendants() do
if v:IsA("BasePart") then
v.Anchored = true
end
end
--
function createjoint(p0,p1)
local o = Instance.new("Weld")
o.Parent = p0
o.Part0 = p0
o.Part1 = p1
return o
end
--
local char = Instance.new("Part")
char.Name = "char"
char.Anchored = true
char.Transparency = 1
char.Size = Vector3.new(3, 3, 3)
char.CFrame = CFrame.new(0, 20, 20)
char.CustomPhysicalProperties = PhysicalProperties.new(0.07, 0, 0, 100, 100)
char.Shape = Enum.PartType.Ball
local Center = Instance.new("Attachment")
Center.Name = "Center"
Center.WorldPosition = Vector3.new(0, 20, 20)
Center.WorldCFrame = CFrame.new(0, 20, 20)
Center.Parent = char
local VectorForce = Instance.new("VectorForce")
VectorForce.Visible = true
VectorForce.RelativeTo = Enum.ActuatorRelativeTo.World
VectorForce.Force = Vector3.new(0, 0, 0)
VectorForce.Parent = char
local BodyGyro = Instance.new("BodyGyro")
BodyGyro.MaxTorque = Vector3.new(5000, 5000, 5000)
BodyGyro.D = 300
BodyGyro.Parent = char
VectorForce.Attachment0 = Center
--
local vis = Objects[1]
--
if owner.Character then
char:PivotTo(owner.Character:GetPivot())
end
local hed = Objects[1].head
local trs = Objects[1].torso
local arma = Objects[1].armA
local armb = Objects[1].armB
local armc = Objects[1].armC
local armd = Objects[1].armD
local lega = Objects[1].legA
local legb = Objects[1].legB
local trs1 = Objects[1].trs
local dot = Objects[1].dot
dot.Anchored = true
--
NewNametag.Parent = hed
NewNametag.TextLabel.Text = owner.DisplayName
NewNametag.PlayerToHideFrom = owner
hed.BillboardGui.Enabled = false
--
local skin = rf.pose2.head:Clone()
skin.face:Destroy()
skin.Parent = hed
skin.Name = "skin"
skin.Transparency = 0
skin.Mesh.MeshId = "rbxassetid://1451153549"
skin.Mesh.TextureId = "rbxassetid://1218977833"
for _, v in skin:GetChildren() do
if v:isA("Decal") then
v:Destroy()
end
end
hed.Transparency = 1
--
local OW = false
local localscript
--
local kartenabled = false
if kartenabled then
local kart = Instance.new("Part")
kart.Name = "kart"
kart.Anchored = true
kart.CanCollide = false
kart.Size = Vector3.new(4.42852258682251, 2.7383298873901367, 6.79925537109375)
kart.CFrame = CFrame.new(25.885732650756836, 1.3691649436950684, -1.9003663063049316)
local Mesh = Instance.new("SpecialMesh")
Mesh.Scale = Vector3.new(5.086712837219238, 5.086712837219238, 5.08671236038208)
Mesh.MeshId = "rbxassetid://967857469"
Mesh.TextureId = "rbxassetid://967857782"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = kart
kart.Parent = trs1
end
--
local christmas = os.date("%B") == "December"
local halloween = os.date("%B") == "October"
local dontChange = christmas or halloween
if os.date("%m %d") == "01 01" then
local hat = Instance.new("Part")
hat.Name = "party"
hat.Anchored = true
hat.Size = Vector3.new(1, 1.600000023841858, 1)
hat.CFrame = CFrame.new(2, 7.800000190734863, 42.79999923706055, 6.715435461046582e-07, 0.000001267060497411876, -1, -0.17364884912967682, 0.9848077297210693, 0.0000011311980188111193, 0.9848077297210693, 0.17364884912967682, 8.813647127681179e-07)
local Mesh = Instance.new("SpecialMesh")
Mesh.MeshId = "http://www.roblox.com/asset/?id=1778999"
Mesh.TextureId = "http://www.roblox.com/asset/?id=1778994"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = hat
hat.Parent = Objects[1]
end
if christmas then
local sleeveB = Instance.new("Part")
sleeveB.Name = "sleeveB"
sleeveB.Anchored = true
sleeveB.CanCollide = false
sleeveB.Color = Color3.fromRGB(248, 248, 248)
sleeveB.Material = Enum.Material.Sand
sleeveB.Size = Vector3.new(0.7200000882148743, 0.39999985694885254, 0.7200000882148743)
sleeveB.CFrame = CFrame.new(18.000001907348633, 4.799992561340332, 42.5, 0, -1, 0, 0, 0, -1, 1, 0, 0)
local Mesh = Instance.new("SpecialMesh")
Mesh.Scale = Vector3.new(0.08400000631809235, 0.026666663587093353, 0.08400000631809235)
Mesh.MeshId = "rbxassetid://1125977013"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = sleeveB
local sleevea = sleeveB:Clone()
sleevea.Parent = Objects[1]
sleevea.Name = "sleeveA"
local hat = Instance.new("Part",Objects[1])
hat.Name = "santa"
hat.Anchored = true
hat.CanCollide = false
hat.Material = Enum.Material.Sand
hat.Size = Vector3.new(1, 1, 1)
hat.CFrame = CFrame.new(19.39999771118164, 6.419995307922363, 42.61998748779297, 0.9999982118606567, 5.329070518200751e-15, 2.980227264970381e-08, 7.713390814956256e-09, 0.9659233093261719, -0.2588186264038086, -2.8786798722535423e-08, 0.25881847739219666, 0.9659249186515808)
local Mesh = Instance.new("SpecialMesh")
Mesh.Offset = Vector3.new(0, 1, 0.5)
Mesh.Scale = Vector3.new(1.600000023841858, 1.600000023841858, 1.600000023841858)
Mesh.MeshId = "rbxassetid://11528636460"
Mesh.TextureId = "http://www.roblox.com/asset/?id=19744384"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = hat
sleeveB.Parent = Objects[1]
trs.BrickColor = BrickColor.new('Bright red')
lega.BrickColor = BrickColor.Black()
legb.BrickColor = BrickColor.Black()
arma.BrickColor = BrickColor.new('Bright red')
armb.BrickColor = BrickColor.new('Bright red')
trs1.pack.BrickColor = BrickColor.new('Bright red')
trs1.pack.Mesh.TextureId = ""
trs.Mesh.TextureId = ""
lega.Mesh.TextureId = ""
legb.Mesh.TextureId = ""
arma.Mesh.TextureId = ""
armb.Mesh.TextureId = ""
end
if halloween then
local neck = Instance.new("Part")
neck.Name = "neck"
neck.BottomSurface = Enum.SurfaceType.Smooth
neck.CanCollide = false
neck.Anchored = true
neck.TopSurface = Enum.SurfaceType.Smooth
neck.Size = Vector3.new(1.399999976158142, 0.6000000238418579, 1.399999976158142)
neck.CFrame = CFrame.new(32.5, 5.400000095367432, 43.099998474121094, 1, -1.427462109570422e-22, 1.0417863216900885e-21, 1.427462109570422e-22, 1, -1.859592666603547e-22, -1.0417863216900885e-21, 1.859592666603547e-22, 1)
neck.formFactor = Enum.FormFactor.Symmetric
local Mesh = Instance.new("SpecialMesh")
Mesh.Scale = Vector3.new(1.5399999618530273, 0.6000000238418579, 1.4000000953674316)
Mesh.MeshId = "http://www.roblox.com/asset/?id=63717022"
Mesh.TextureId = "http://www.roblox.com/asset/?id=63717032"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = neck
local cape = Instance.new("Part")
cape.Name = "cape"
cape.BottomSurface = Enum.SurfaceType.Smooth
cape.CanCollide = false
cape.Anchored = true
cape.TopSurface = Enum.SurfaceType.Smooth
cape.Color = Color3.fromRGB(196, 40, 28)
cape.Size = Vector3.new(2, 0.5, 1)
cape.CFrame = CFrame.new(32.514442443847656, 5.1243977546691895, 42.67546081542969, 1.0000004768371582, -0.00026456991326995194, 0.000011909061868209392, 0.0002648376685101539, 0.9989884495735168, -0.04496722295880318, -4.797207076023824e-11, 0.04496726766228676, 0.9989889860153198)
cape.formFactor = Enum.FormFactor.Custom
local Mesh = Instance.new("SpecialMesh")
Mesh.Offset = Vector3.new(0, -1.2000000476837158, 0.20000000298023224)
Mesh.VertexColor = Vector3.new(0.30000001192092896, 0.30000001192092896, 1)
Mesh.Scale = Vector3.new(1.0499999523162842, 1.3499999046325684, 1.0499999523162842)
Mesh.MeshId = "http://www.roblox.com/asset/?id=114046169"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = cape
neck.Parent = Objects[1]
cape.Parent = Objects[1]
trs.BrickColor = BrickColor.Black()
lega.BrickColor = BrickColor.Black()
legb.BrickColor = BrickColor.Black()
arma.BrickColor = BrickColor.Black()
armb.BrickColor = BrickColor.Black()
trs1.pack.BrickColor = BrickColor.Black()
trs1.pack.Mesh.TextureId = ""
trs.Mesh.TextureId = ""
lega.Mesh.TextureId = ""
legb.Mesh.TextureId = ""
arma.Mesh.TextureId = ""
armb.Mesh.TextureId = ""
end
local g = Instance.new("Part")
g.Name = "Head"
g.Transparency = 0
g.Size = Vector3.new(3,3,3)
g.Size = Vector3.zero
g.CFrame = hed.CFrame
local h = Instance.new("Humanoid")
local m = Instance.new('Model')
m.Name = "Beebo"
h.RequiresNeck =false
local w = Instance.new("Weld")
w.Parent = g
w.Part0 = hed
w.Part1 = g
local g2 = g:Clone()
g2.Name = "HumanoidRootPart"
g2.Parent = m
g2.Weld.Part0 = char
g2.Weld.Part1 = g2
local lh,rh,trs12 = g2:Clone(),g2:Clone(),g2:Clone()
trs12.Name = "Torso"
trs12.Weld.Part0 = trs
trs12.Weld.Part1 = trs12
trs12.Size = trs.Size
trs12.Parent = m
trs12.Transparency = 1
Instance.new("SpecialMesh", trs12).Scale = Vector3.zero
local fake = Instance.new("Motor6D")
local nek = fake:Clone()
nek.Name = "Neck"
nek.Part0 = trs12
nek.Part1 = g
nek.Enabled = false
nek.Parent = trs12
fake.Name = "Right Shoulder"
fake.Part0 = trs12
fake.Part1 = rh
fake.Enabled = false
fake.Parent = trs12
lh.Weld.Part0 = armd
rh.Weld.Part0 = armc
lh.Name = "Left Arm"
rh.Name = "Right Arm"
lh.Parent = m
rh.Parent = m
rh.Weld.C0 = CFrame.new(0,.5,0)
g.Parent = m
h.Parent = m
h.DisplayName = ' '
h.BreakJointsOnDeath = false
local mes = Instance.new("Motor6D",trs)
local m2e = Instance.new("Motor6D",trs)
mes.Part0 = trs
m2e.Part0 = trs
mes.Enabled = false
m2e.Enabled = false
mes.Name ="Left Hip"
m2e.Name = "Right Hip"
local ll,rl = lh:Clone(),rh:Clone()
ll.Weld.Part0 = legb
rl.Weld.Part1 = lega
ll.Name = "Left Leg"
rl.Name = "Right Leg"
rl.Size = lega.Size
ll.Size = legb.Size
mes.Part1 = ll
m2e.Part1 = rl
char.Parent = m
owner.Character = m
m.Parent = workspace
local madel = m
for _,obj in pairs(Objects) do
obj.Parent = madel
end
Objects[1].Name = "charmodel"
char.Anchored = false
for i,v in pairs(Objects[1]:children()) do
v.Parent = m
end
--
hed.Mesh.TextureId = ""
hed.Color = Color3.fromRGB(145, 161, 255)
local eyes = Instance.new("Decal", hed)
local mouth = Instance.new("Decal", hed)
local faceDir = {
default = {
mouth = {
neutral = "rbxassetid://111364951276066",
dancing = "rbxassetid://106826508241099",
happy = "",
sad = "rbxassetid://84256655538240"
},
eyes = {
neutral = "rbxassetid://100334613993099",
blink1 = "rbxassetid://114179274718020",
blink2 = "rbxassetid://81886010705674",
ouch = "rbxassetid://136847520389335"
},
jetpack = trs1.jetpack.Mesh.TextureId,
battery = trs1.bt1.Mesh.TextureId,
palette = "rbxassetid://1218977833"
},
pixelated = {
mouth = {
neutral = "rbxassetid://122790102523421",
dancing = "rbxassetid://96926986253475",
happy = "",
sad = "rbxassetid://103951522731525"
},
eyes = {
neutral = "rbxassetid://99372263057188",
blink1 = "rbxassetid://90139144818318",
blink2 = "rbxassetid://117594740891597",
ouch = "rbxassetid://118516205303454"
},
jetpack = "rbxassetid://1120917795",
battery = "rbxassetid://1103633127",
palette = "rbxassetid://138736714683672"
}
}
local textable = {
[0] = "default",
[1] = "pixelated"
}
local chosenTexture = "default"
--
function updateHat()
local vis = madel
if vis.trs:FindFirstChild'hat' then
if vis.trs.hat:FindFirstChild("skin")then
vis.trs.hat.Mesh.TextureId = vis.torso.Mesh.TextureId
vis.trs.hat.Material = vis.torso.Material
vis.trs.hat.Reflectance = vis.torso.Reflectance
end
end
end
function toskin(id, vs)
if not vs then
vs = vis
skin = id
end
local obt
for _, v in pairs(rf.skins:GetChildren())do
if v.id.Value == id then
obt = v
break
end
end
if not obt then obt = rf.skins.backup end
for _,v in pairs(vs:GetDescendants())do
if v.ClassName == "Part" and v.Name ~= "cloud" and (v.Parent==vs or v.Name == "pack") and v~=vs.dot then
if v:FindFirstChild("Mesh") then
v.Mesh.TextureId = obt.Mesh.TextureId
end
if v:FindFirstChild("skin") then
v.skin.Mesh.TextureId = obt.Mesh.TextureId
end
v.Reflectance = obt.Reflectance
v.BrickColor = BrickColor.Gray()
end
end
print(obt)
vs.dot.Mesh.TextureId = ""
vs.dot.Reflectance = obt.Reflectance
vs.dot.Color = obt.dot.Value
vs.dot.L1.Color = obt.dot.Value
updateHat()
end
--
function updateTex()
if faceDir[chosenTexture].jetpack then
trs1.jetpack.Mesh.TextureId = faceDir[chosenTexture].jetpack
end
if not dontChange and faceDir[chosenTexture].palette then
trs.Mesh.TextureId = faceDir[chosenTexture].palette
lega.Mesh.TextureId = trs.Mesh.TextureId
legb.Mesh.TextureId = trs.Mesh.TextureId
arma.Mesh.TextureId = trs.Mesh.TextureId
armb.Mesh.TextureId = trs.Mesh.TextureId
armc.Mesh.TextureId = trs.Mesh.TextureId
armd.Mesh.TextureId = trs.Mesh.TextureId
hed.Mesh.TextureId = faceDir[chosenTexture].palette
end
if faceDir[chosenTexture].battery then
for i = 1, 4 do
trs1[`bt{i}`].Mesh.TextureId = faceDir[chosenTexture].battery
end
end
hed.Mesh.VertexColor = Vector3.one
updateHat()
end
function setitem(v)
local t = string.sub(v,1,1)
local nm = tonumber(string.sub(v,2,-1))
if t == "F" then
chosenTexture = textable[nm]
updateTex()
end
end
updateTex()
--
local hatFalloff = false
--
function ragdoll(vel)
dot.RopeConstraint.Enabled = true
for _, v in m:GetChildren() do
if v:IsA("BasePart") then
v.Massless = false
v.CustomPhysicalProperties = PhysicalProperties.new(Enum.Material.Plastic)
end
end
if trs1:FindFirstChild("hat") then
if not hatFalloff then
local weldc = Instance.new("WeldConstraint")
weldc.Parent = m
weldc.Part0 = trs1.hat
weldc.Part1 = m.head
else
trs1.hat.Anchored = false
end
trs1.hat.Parent = m
end
trs.Size = Vector3.new(1.2, 1.6, 1)
lega.Size = Vector3.new(0.6, 1, 1)
legb.Size = Vector3.new(0.6, 1, 1)
arma.Size = Vector3.new(0.6, 1.2, 0.6)
armb.Size = Vector3.new(0.6, 1.2, 0.6)
armc.Size = Vector3.new(0.6, 1.2, 0.6)
armd.Size = Vector3.new(0.6, 1.2, 0.6)
hed.Size = Vector3.new(2, 1.8, 2)
trs12.Size = Vector3.zero
local weldc = Instance.new("WeldConstraint")
weldc.Parent = m
weldc.Part0 = skin
weldc.Part1 = hed
local torso = trs
local nk = Instance.new("Attachment")
nk.Name = "nk"
nk.CFrame = CFrame.new(0, 0.7999997138977051, 0)
nk.WorldPosition = Vector3.new(2, 5.099992275238037, -37.5)
nk.WorldCFrame = CFrame.new(2, 5.099992275238037, -37.5)
nk.Position = Vector3.new(0, 0.7999997138977051, 0)
nk.Parent = torso
local BallSocketConstraint = Instance.new("BallSocketConstraint")
BallSocketConstraint.TwistLimitsEnabled = true
BallSocketConstraint.LimitsEnabled = true
BallSocketConstraint.Parent = nk
local rs = Instance.new("Attachment")
rs.Name = "rs"
rs.CFrame = CFrame.new(0.5999999046325684, 0.5, 0)
rs.WorldPosition = Vector3.new(2.5999999046325684, 4.799992561340332, -37.5)
rs.WorldCFrame = CFrame.new(2.5999999046325684, 4.799992561340332, -37.5)
rs.Position = Vector3.new(0.5999999046325684, 0.5, 0)
rs.Parent = torso
local BallSocketConstraint1 = Instance.new("BallSocketConstraint")
BallSocketConstraint1.Parent = rs
local ls = Instance.new("Attachment")
ls.Name = "ls"
ls.CFrame = CFrame.new(-0.6000001430511475, 0.5, 0)
ls.WorldPosition = Vector3.new(1.3999998569488525, 4.799992561340332, -37.5)
ls.WorldCFrame = CFrame.new(1.3999998569488525, 4.799992561340332, -37.5)
ls.Position = Vector3.new(-0.6000001430511475, 0.5, 0)
ls.Parent = torso
local BallSocketConstraint2 = Instance.new("BallSocketConstraint")
BallSocketConstraint2.Parent = ls
local lh = Instance.new("Attachment")
lh.Name = "lh"
lh.CFrame = CFrame.new(-0.3999999761581421, -0.6999926567077637, -0.09999847412109375)
lh.WorldPosition = Vector3.new(1.600000023841858, 3.5999999046325684, -37.599998474121094)
lh.WorldCFrame = CFrame.new(1.600000023841858, 3.5999999046325684, -37.599998474121094)
lh.Position = Vector3.new(-0.3999999761581421, -0.6999926567077637, -0.09999847412109375)
lh.Parent = torso
local BallSocketConstraint3 = Instance.new("BallSocketConstraint")
BallSocketConstraint3.Parent = lh
local rh = Instance.new("Attachment")
rh.Name = "rh"
rh.CFrame = CFrame.new(0.40000009536743164, -0.6999926567077637, -0.09999847412109375)
rh.WorldPosition = Vector3.new(2.4000000953674316, 3.5999999046325684, -37.599998474121094)
rh.WorldCFrame = CFrame.new(2.4000000953674316, 3.5999999046325684, -37.599998474121094)
rh.Position = Vector3.new(0.40000009536743164, -0.6999926567077637, -0.09999847412109375)
rh.Parent = torso
local BallSocketConstraint4 = Instance.new("BallSocketConstraint")
BallSocketConstraint4.Parent = rh
local head = hed
local hnk = Instance.new("Attachment")
hnk.Name = "hnk"
hnk.CFrame = CFrame.new(0, -1, 0)
hnk.WorldPosition = Vector3.new(2, 5.099992752075195, -37.5)
hnk.WorldCFrame = CFrame.new(2, 5.099992752075195, -37.5)
hnk.Position = Vector3.new(0, -1, 0)
hnk.Parent = head
local legA = lega
local Attachment = Instance.new("Attachment")
Attachment.CFrame = CFrame.new(0, 0.5000002384185791, 0)
Attachment.WorldPosition = Vector3.new(2.4000015258789062, 3.5999979972839355, -37.599998474121094)
Attachment.WorldCFrame = CFrame.new(2.4000015258789062, 3.5999979972839355, -37.599998474121094)
Attachment.Position = Vector3.new(0, 0.5000002384185791, 0)
Attachment.Parent = legA
local legB = legb
local Attachment1 = Instance.new("Attachment")
Attachment1.CFrame = CFrame.new(0, 0.5000002384185791, 0)
Attachment1.WorldPosition = Vector3.new(1.5999984741210938, 3.5999979972839355, -37.599998474121094)
Attachment1.WorldCFrame = CFrame.new(1.5999984741210938, 3.5999979972839355, -37.599998474121094)
Attachment1.Position = Vector3.new(0, 0.5000002384185791, 0)
Attachment1.Parent = legB
local armD = armd
local de = Instance.new("Attachment")
de.Name = "de"
de.WorldSecondaryAxis = Vector3.new(0, 0, 1)
de.WorldOrientation = Vector3.new(-0, -90, -90)
de.CFrame = CFrame.new(0, -9.5367431640625e-07, 0.5499992370605469, 0, -1, -0, -1, 0, -0, 0, 0, -1)
de.WorldPosition = Vector3.new(0.4500007629394531, 4.799991607666016, -37.5)
de.Axis = Vector3.new(0, -1, 0)
de.Rotation = Vector3.new(180, -0, 90)
de.WorldCFrame = CFrame.new(0.4500007629394531, 4.799991607666016, -37.5, 0, 0, -1, -1, 0, -0, 0, 1, 0)
de.SecondaryAxis = Vector3.new(-1, 0, 0)
de.WorldAxis = Vector3.new(0, -1, 0)
de.Orientation = Vector3.new()
de.Position = Vector3.new(0,0.55,0)
de.Parent = armD
local armB = armb
local bs = Instance.new("Attachment")
bs.Name = "bs"
bs.WorldSecondaryAxis = Vector3.new(-1, 0, 0)
bs.WorldOrientation = Vector3.new(90, -90, 0)
bs.CFrame = CFrame.new(0, -0.39999985694885254, 0)
bs.WorldPosition = Vector3.new(1.3000013828277588, 4.799992561340332, -37.5)
bs.WorldCFrame = CFrame.new(1.3000013828277588, 4.799992561340332, -37.5, 0, -1, 0, 0, 0, -1, 1, 0, 0)
bs.Position = Vector3.new(0, -0.39999985694885254, 0)
bs.WorldAxis = Vector3.new(0, 0, 1)
bs.Parent = armB
local be = Instance.new("Attachment")
be.Name = "be"
be.WorldSecondaryAxis = Vector3.new(-7.450580596923828e-08, -2.2351741790771484e-08, 1)
be.WorldOrientation = Vector3.new(-9.54166352049382e-14, -90, -90)
be.CFrame = CFrame.new(0.000003814697265625, 0.40000152587890625, 9.5367431640625e-07, -2.2351741790771484e-08, 1, -7.450580596923828e-08, -0, 7.450580596923828e-08, 1, 1, 2.2351741790771484e-08, -1.6653345369377348e-15)
be.WorldPosition = Vector3.new(0.5, 4.799991607666016, -37.499996185302734)
be.Axis = Vector3.new(-2.2351741790771484e-08, -0, 1)
be.Rotation = Vector3.new(-90, -0.00000426886799687054, -90)
be.WorldCFrame = CFrame.new(0.5, 4.799991607666016, -37.499996185302734, 0, -7.450580596923828e-08, -1, -1, -2.2351741790771484e-08, 1.6653345369377348e-15, -2.2351741790771484e-08, 1, -7.450580596923828e-08)
be.SecondaryAxis = Vector3.new(1, 7.450580596923828e-08, 2.2351741790771484e-08)
be.Position = Vector3.new(0.000003814697265625, 0.40000152587890625, 9.5367431640625e-07)
be.Orientation = Vector3.new()
be.WorldAxis = Vector3.new(0, -1, -2.2351741790771484e-08)
be.Parent = armB
local HingeConstraint = Instance.new("HingeConstraint")
HingeConstraint.Parent = be
local armA = arma
local ae = Instance.new("Attachment")
ae.Name = "ae"
ae.WorldSecondaryAxis = Vector3.new(-4.371138828673793e-08, -4.371138828673793e-08, -1)
ae.WorldOrientation = Vector3.new(1.0947421083800507e-13, 90, -90)
ae.CFrame = CFrame.new(0, 0.40000009536743164, 0, -4.371138828673793e-08, 1, 4.371138828673793e-08, 0, -4.371138828673793e-08, 1, 1, 4.371138828673793e-08, 1.910685465164705e-15)
ae.WorldPosition = Vector3.new(3.500002384185791, 4.799992561340332, -37.5)
ae.Axis = Vector3.new(-4.371138828673793e-08, 0, 1)
ae.Rotation = Vector3.new(-90, 0.000002504477834008867, -90)
ae.WorldCFrame = CFrame.new(3.500002384185791, 4.799992561340332, -37.5, 0, -4.371138828673793e-08, 1, -1, -4.371138828673793e-08, -1.910685465164705e-15, 4.371138828673793e-08, -1, -4.371138828673793e-08)
ae.SecondaryAxis = Vector3.new(1, -4.371138828673793e-08, 4.371138828673793e-08)
ae.Position = Vector3.new(0, 0.40000009536743164, 0)
ae.Orientation = Vector3.new()
ae.WorldAxis = Vector3.new(0, -1, 4.371138828673793e-08)
ae.Parent = armA
local HingeConstraint1 = Instance.new("HingeConstraint")
HingeConstraint1.Parent = ae
local as = Instance.new("Attachment")
as.Name = "as"
as.WorldSecondaryAxis = Vector3.new(1, 0, 0)
as.WorldOrientation = Vector3.new(90, 90, 0)
as.CFrame = CFrame.new(0, -0.39999985694885254, 0)
as.WorldPosition = Vector3.new(2.700002431869507, 4.799992561340332, -37.5)
as.WorldCFrame = CFrame.new(2.700002431869507, 4.799992561340332, -37.5, 0, 1, 0, 0, 0, -1, -1, 0, 0)
as.Position = Vector3.new(0, -0.39999985694885254, 0)
as.WorldAxis = Vector3.new(0, 0, -1)
as.Parent = armA
local armC = armc
local ce = Instance.new("Attachment")
ce.Name = "ce"
ce.WorldSecondaryAxis = Vector3.new(0, 0, -1)
ce.WorldOrientation = Vector3.new(-0, 90, -90)
ce.CFrame = CFrame.new(0, -9.5367431640625e-07, 0.5499992370605469, 0, -1, -0, -1, 0, -0, 0, 0, -1)
ce.WorldPosition = Vector3.new(3.450000762939453, 4.799991607666016, -37.5)
ce.Axis = Vector3.new(0, -1, 0)
ce.Rotation = Vector3.new(180, -0, 90)
ce.WorldCFrame = CFrame.new(3.450000762939453, 4.799991607666016, -37.5, 0, 0, 1, -1, 0, -0, 0, -1, -0)
ce.SecondaryAxis = Vector3.new(-1, 0, 0)
ce.WorldAxis = Vector3.new(0, -1, 0)
ce.Orientation = Vector3.new()
ce.Position = Vector3.new(0,0.55,0)
ce.Parent = armC
BallSocketConstraint.Attachment0 = nk
BallSocketConstraint.Attachment1 = hnk
BallSocketConstraint1.Attachment0 = rs
BallSocketConstraint1.Attachment1 = as
BallSocketConstraint2.Attachment0 = ls
BallSocketConstraint2.Attachment1 = bs
BallSocketConstraint3.Attachment0 = lh
BallSocketConstraint3.Attachment1 = Attachment1
BallSocketConstraint4.Attachment0 = rh
BallSocketConstraint4.Attachment1 = Attachment
HingeConstraint.Attachment0 = be
HingeConstraint.Attachment1 = de
HingeConstraint.LimitsEnabled = true
HingeConstraint.LowerAngle = -145
HingeConstraint.UpperAngle = 0
HingeConstraint1.Attachment0 = ae
HingeConstraint1.Attachment1 = ce
HingeConstraint1.LimitsEnabled = true
HingeConstraint1.LowerAngle = -145
HingeConstraint1.UpperAngle = 0
for i,v in madel:GetDescendants() do
if v:isA("BasePart") then
v.Anchored = false
v.Velocity = vel
end
if v:IsA("BasePart") and v:CanSetNetworkOwnership() then
v.CanCollide = true
v:SetNetworkOwner(nil)
end
end
dot.VectorForce:Destroy()
dot.BodyGyro:Destroy()
eyes.Texture = faceDir[chosenTexture].eyes.ouch
mouth.Texture = faceDir[chosenTexture].mouth.sad
trs1:Destroy()
end
--
local f = Instance.new("Decal")
f.Name = "face"
f.Parent = g
f.Transparency = 1
for i,v in pairs(madel:GetDescendants()) do
if v ~= char and v:IsA("BasePart") and v ~= dot then
v.CustomPhysicalProperties = PhysicalProperties.new(0,0,0,0,0)
v.CanCollide = false
end
end
--
Part = trs
local RightCollarAttachment = Instance.new("Attachment")
RightCollarAttachment.Name = "RightCollarAttachment"
RightCollarAttachment.CFrame = CFrame.new(0.6000003814697266, 0.7000002861022949, 0)
RightCollarAttachment.WorldPosition = Vector3.new(29.600000381469727, 1.2000043392181396, 152)
RightCollarAttachment.WorldCFrame = CFrame.new(29.600000381469727, 1.2000043392181396, 152)
RightCollarAttachment.Position = Vector3.new(0.6000003814697266, 0.7000002861022949, 0)
RightCollarAttachment.Parent = Part
local WaistBackAttachment = Instance.new("Attachment")
WaistBackAttachment.Name = "WaistBackAttachment"
WaistBackAttachment.CFrame = CFrame.new(0, -0.7000000476837158, 0.5)
WaistBackAttachment.WorldPosition = Vector3.new(29, -0.19999605417251587, 152.5)
WaistBackAttachment.WorldCFrame = CFrame.new(29, -0.19999605417251587, 152.5)
WaistBackAttachment.Position = Vector3.new(0, -0.7000000476837158, 0.5)
WaistBackAttachment.Parent = Part
local WaistCenterAttachment = Instance.new("Attachment")
WaistCenterAttachment.Name = "WaistCenterAttachment"
WaistCenterAttachment.CFrame = CFrame.new(0, -0.7000000476837158, 0)
WaistCenterAttachment.WorldPosition = Vector3.new(29, -0.19999605417251587, 152)
WaistCenterAttachment.WorldCFrame = CFrame.new(29, -0.19999605417251587, 152)
WaistCenterAttachment.Position = Vector3.new(0, -0.7000000476837158, 0)
WaistCenterAttachment.Parent = Part
local WaistFrontAttachment = Instance.new("Attachment")
WaistFrontAttachment.Name = "WaistFrontAttachment"
WaistFrontAttachment.CFrame = CFrame.new(0, -0.7000000476837158, -0.5)
WaistFrontAttachment.WorldPosition = Vector3.new(29, -0.19999605417251587, 151.5)
WaistFrontAttachment.WorldCFrame = CFrame.new(29, -0.19999605417251587, 151.5)
WaistFrontAttachment.Position = Vector3.new(0, -0.7000000476837158, -0.5)
WaistFrontAttachment.Parent = Part
local NeckAttachment = Instance.new("Attachment")
NeckAttachment.Name = "NeckAttachment"
NeckAttachment.CFrame = CFrame.new(0, 0.8000001907348633, 0)
NeckAttachment.WorldPosition = Vector3.new(29, 1.300004243850708, 152)
NeckAttachment.WorldCFrame = CFrame.new(29, 1.300004243850708, 152)
NeckAttachment.Position = Vector3.new(0, 0.8000001907348633, 0)
NeckAttachment.Parent = Part
local BodyFrontAttachment = Instance.new("Attachment")
BodyFrontAttachment.Name = "BodyFrontAttachment"
BodyFrontAttachment.CFrame = CFrame.new(0, 0, -0.5)
BodyFrontAttachment.WorldPosition = Vector3.new(29, 0.5000039935112, 151.5)
BodyFrontAttachment.WorldCFrame = CFrame.new(29, 0.5000039935112, 151.5)
BodyFrontAttachment.Position = Vector3.new(0, 0, -0.5)
BodyFrontAttachment.Parent = Part
local LeftCollarAttachment = Instance.new("Attachment")
LeftCollarAttachment.Name = "LeftCollarAttachment"
LeftCollarAttachment.CFrame = CFrame.new(-0.5, 0.6999998092651367, 0)
LeftCollarAttachment.WorldPosition = Vector3.new(28.5, 1.2000038623809814, 152)
LeftCollarAttachment.WorldCFrame = CFrame.new(28.5, 1.2000038623809814, 152)
LeftCollarAttachment.Position = Vector3.new(-0.5, 0.6999998092651367, 0)
LeftCollarAttachment.Parent = Part
local BodyBackAttachment = Instance.new("Attachment")
BodyBackAttachment.Name = "BodyBackAttachment"
BodyBackAttachment.CFrame = CFrame.new(0, 0, 0.5)
BodyBackAttachment.WorldPosition = Vector3.new(29, 0.5000039935112, 152.5)
BodyBackAttachment.WorldCFrame = CFrame.new(29, 0.5000039935112, 152.5)
BodyBackAttachment.Position = Vector3.new(0, 0, 0.5)
BodyBackAttachment.Parent = Part
--
local FaceCenterAttachment = Instance.new("Attachment",g)
FaceCenterAttachment.Name = "FaceCenterAttachment"
FaceCenterAttachment.CFrame = CFrame.new(0, 0, -1)
FaceCenterAttachment.WorldPosition = Vector3.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceCenterAttachment.WorldCFrame = CFrame.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceCenterAttachment.Position = Vector3.new(0, 0, -1)
local FaceFrontAttachment = Instance.new("Attachment",g)
FaceFrontAttachment.Name = "FaceFrontAttachment"
FaceFrontAttachment.CFrame = CFrame.new(0, 0, -1)
FaceFrontAttachment.WorldPosition = Vector3.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceFrontAttachment.WorldCFrame = CFrame.new(23.699996948242188, 6.099992752075195, 23.10000228881836)
FaceFrontAttachment.Position = Vector3.new(0, 0, -1)
local HairAttachment = Instance.new("Attachment",g)
HairAttachment.Name = "HairAttachment"
HairAttachment.WorldPosition = Vector3.new(23.699996948242188, 6.099992752075195, 24.10000228881836)
HairAttachment.WorldCFrame = CFrame.new(23.699996948242188, 6.099992752075195, 24.10000228881836)
local HatAttachment = Instance.new("Attachment",g)
HatAttachment.Name = "HatAttachment"
HatAttachment.CFrame = CFrame.new(0, 1, 0)
HatAttachment.WorldPosition = Vector3.new(23.699996948242188, 7.099992752075195, 24.10000228881836)
HatAttachment.WorldCFrame = CFrame.new(23.699996948242188, 7.099992752075195, 24.10000228881836)
HatAttachment.Position = Vector3.new(0, 1, 0)
--
madel.PrimaryPart = g2
--
local pack = trs1.pack
local dmg = trs.damage
local m = hed.Mesh
local frame = 0
local lastblink = 0
local mrnd = math.random
local blinkswitch = -mrnd(7,17)
local damagetick = 0
local dancing = false
local dmgblink = 0
local chartrans = 0
local gc = workspace.GetChildren
local gd = workspace.GetDescendants
local health = 4
local dmgcd = 0
local lastframe = frame
local lastdmgblink = frame
local bts = {
['1'] = trs1.bt1,
['2'] = trs1.bt2,
['3'] = trs1.bt3,
['4'] = trs1.bt4,
}
--
local tpc = 0
local dmgtick = -50
--
rf.hats.hat0.Name = "hat1"
rf.hats.hat1.id.Value = 1
--
function updatehealth()
h.Health = (100 / 4) * health
madel:SetAttribute("health", health)
end
function damage(dmgpoints)
if tick()-dmgcd < 2 then return end
dmgcd = tick()
dmg:Play()
damagetick = tick()
dmgtick = tick()
for i = 1, dmgpoints or 1 do
vdamage(health, true)
health = health - 1
end
updatehealth()
if health <= 0 then
died()
end
end
function vdamage(batteries, only)
if health >= 4 then
pop(trs1.pack)
end
for i = (only and batteries) or 1, batteries do
pop(trs1['bt'..i])
end
end
function pop(inst)
local b = inst:Clone()
local point = char.CFrame
b.Parent, b.CFrame, b.Anchored, b.CanCollide = script, trs1.pack.CFrame, false, true
b.Velocity, b.RotVelocity = -point.lookVector*10 + Vector3.new(0,20), point.rightVector*10
task.delay(15, function()
b:Destroy()
end)
end
--
tscale = Vector3.new()
local animcf = {
torso = {
CFrame = CFrame.new()
},
armA = {
CFrame = CFrame.new()
},
armB = {
CFrame = CFrame.new()
},
armC = {
CFrame = CFrame.new()
},
armD = {
CFrame = CFrame.new()
},
legA = {
CFrame = CFrame.new()
},
legB = {
CFrame = CFrame.new()
},
head = {
CFrame = CFrame.new()
},
}
local lerps = {}
--
localscript = NLS([[local runService = game:GetService("RunService")
local players = game:GetService("Players")
local uis = game:GetService("UserInputService")
local localPlayer = players.LocalPlayer
local _debug = false
function log(...)
if not _debug then
return
end
print(...)
end
local UI = localPlayer.PlayerGui:WaitForChild("UI")
local characterModel = script.Parent
local char = characterModel:WaitForChild("char")
local vis = characterModel
local hum = characterModel:WaitForChild("Humanoid")
hum.AutoRotate = false
local dot = vis.dot:Clone()
local fdot = vis.dot
fdot.Name = "fdot"
fdot:ClearAllChildren()
dot.Parent = vis
fdot.Transparency = 1
fdot:GetPropertyChangedSignal("Color"):Connect(function()
dot.Color = fdot.Color
end)
local rf = vis:WaitForChild("rf"):WaitForChild("rf")
local p34 = vis
local charTRS = characterModel.trs
local board = charTRS.board
local w1 = board.w1
local w2 = board.w2
local jetpack = charTRS.jetpack
local booster = jetpack.booster
do
local v = Instance.new("Vector3Value", vis.dot)
v.Name = "vel"
end
local torso = characterModel.Torso
local head = characterModel.Head
local root = characterModel.HumanoidRootPart
local rem = script:WaitForChild("RemoteEvent").Value
local died = false
function server_damage()
task.delay(0.001, function()
rem:FireServer("damage")
end)
end
function OW(b)
died = true
workspace.CurrentCamera.CameraType = "Custom"
workspace.CurrentCamera.CameraSubject = head
game:GetService("UserInputService").MouseBehavior = Enum.MouseBehavior.Default
if not b then
rem:FireServer("died",char.Velocity)
end
for i,v in pairs(dot:GetChildren()) do
v.Parent = fdot
end
fdot.Transparency = 0
fdot.Anchored = false
dot:Destroy()
end
hum.Died:Connect(OW)
rem.OnClientEvent:Connect(function(t,v)
if t == "died" then
OW(true)
elseif t == "hp" then
health = v
end
end)
local plam = workspace:FindFirstChild("plam")
if not runService:IsStudio() then
plam = characterModel:WaitForChild("plam")
end
textsel = UI.pause.bg.pause.close
lockhats = {}
lockskin = {
}
for i, v in pairs(rf.skins:GetChildren()) do
lockskin[v.id.Value] = true
end
for i, v in pairs(rf.hats:GetChildren()) do
if v.Name:find("hat") then
lockhats[v.id.Value] = true
end
end
lockfaces = {
[0] = true,
[1] = true
}
texface = 0
local pst = Vector3.zero
function hatpage()
local list = {}
local item = {}
for i, v in pairs(lockhats)do
if v then
list[#list+1] = "rbxassetid://"..rf.hats["hat"..i].icon.Value
item[#item+1] = "H"..i
end
end
for i, v in pairs(lockskin)do
if v then
local obt
for _, v in pairs(rf.skins:GetChildren())do if v.id.Value == i then obt = v break end end
list[#list+1] = "rbxassetid://"..obt.icon.Value
item[#item+1] = "S"..i
end
end
for i, v in pairs(lockfaces)do
if v then
local obt
for _, v in pairs(rf.faces:GetChildren())do if v.id.Value == i then obt = v break end end
list[#list+1] = "rbxassetid://"..obt.icon.Value
item[#item+1] = "F"..i
end
end
out(UI.pause.bg.clothing.page,"Page "..UI.pause.bg.clothing.pagee.Value.."/4")
UI.pause.bg.clothing.load.Visible = true
UI.pause.bg.clothing.load.Visible = false
local numb=0
for _, v in pairs(UI.pause.bg.clothing:GetChildren())do
if v.Name == "hatm" then
numb = v.nob.Value+(UI.pause.bg.clothing.pagee.Value-1)*16
v.Image = list[numb] or ""
v.item.Value = item[numb] or ""
elseif v.Name == "wearing"then
if v.nob.Value == 1 then
v.Image = hat~=0 and "rbxassetid://"..rf.hats["hat"..hat].icon.Value or "rbxassetid://2554418665"
elseif v.nob.Value == 2 then
v.Image = ""
for _,y in pairs(rf.skins:GetChildren())do
if y.id.Value == skin then
v.Image = "rbxassetid://"..y.icon.Value
break
end
end
elseif v.nob.Value == 3 then
v.Image = ""
for _,y in pairs(rf.faces:GetChildren())do
if y.id.Value == texface then
v.Image = "rbxassetid://"..y.icon.Value
break
end
end
else
v.Image = ""
end
end
end
end
function toskin(id, vs)
if true then
rem:FireServer("toskin", id)
return
end
if not vs then
vs = vis
skin = id
end
local obt
for _, v in pairs(rf.skins:GetChildren())do
if v.id.Value == id then
obt = v
break
end
end
if not obt then obt = rf.skins.backup end
for _,v in pairs(vs:GetDescendants())do
if v.ClassName == "Part" and v.Name ~= "cloud" and (v.Parent==vs or v.Name == "pack") and v~=vs.dot then
if v:FindFirstChild("Mesh") then
v.Mesh.TextureId = obt.Mesh.TextureId
end
if v:FindFirstChild("skin") then
v.skin.Mesh.TextureId = obt.Mesh.TextureId
end
v.Reflectance = 0
v.BrickColor = BrickColor.Gray()
end
end
print(obt)
vs.dot.Mesh.TextureId = ""
vs.dot.Reflectance = 0
vs.dot.Color = obt.dot.Value
vs.dot.L1.Color = obt.dot.Value
end
textbuttons = {
close = function()
pause()
end,
icecream = function()
end,
snap = function()
UI.UI.Visible = false
UI.pause.Visible = false
textsel = nil
game.StarterGui:SetCore("TopbarEnabled", false)
UI.skip.Visible = true
out(UI.skip, "Close")
end,
clothing = function()
hatpage()
textsel = UI.pause.bg.clothing.PLeft4
UI.pause.bg.pause.Visible = false
UI.pause.bg.clothing.Visible = true
end,
camera = function()
stillcam = not stillcam
UI.pause.bg.pause.camera.icon.ImageRectOffset = Vector2.new(stillcam and 128 or 0, 128)
end,
hub2 = function()
end,
quit2 = function()
end,
hub = function()
textsel = UI.pause.bg.hub.no
UI.pause.bg.pause.Visible = false
UI.pause.bg.hub.Visible = true
end,
quit = function()
textsel = UI.pause.bg.quit.no
UI.pause.bg.pause.Visible = false
UI.pause.bg.quit.Visible = true
end,
PLeft1 = function()
end,
PRight1 = function()
end,
no = function()
textsel = UI.pause.bg.pause.close
UI.pause.bg.pause.Visible = true
UI.pause.bg.hub.Visible = false
UI.pause.bg.quit.Visible = false
UI.pause.bg.icecream.Visible = false
UI.pause.bg.clothing.Visible = false
end,
hatm = function()
if string.sub(textsel.item.Value,1,1) == "H" then
local nm = tonumber(string.sub(textsel.item.Value,2,-1))
hat = hat==nm and 0 or nm
elseif string.sub(textsel.item.Value,1,1) == "S" then
local nm = tonumber(string.sub(textsel.item.Value,2,-1))
skin = nm
toskin(skin, vis)
elseif string.sub(textsel.item.Value,1,1) == "F" then
local nm = tonumber(string.sub(textsel.item.Value,2,-1))
texface = nm
end
rem:FireServer("change", textsel.item.Value)
hatpage()
end,
PLeft4 = function()
UI.pause.bg.clothing.pagee.Value = math.max(1, UI.pause.bg.clothing.pagee.Value-1)
hatpage()
end,
PRight4 = function()
UI.pause.bg.clothing.pagee.Value = math.min(4, UI.pause.bg.clothing.pagee.Value+1)
hatpage()
end,
wearing = function()
if textsel.nob.Value == 1 then
hat=0
textsel.Image = hat~=0 and "rbxassetid://"..rf.hats["hat"..hat].icon.Value or "rbxassetid://2554418665"
end
end,
TextBox = function()
textsel:CaptureFocus()
end,
}
--
local enablePhysWhilePaused = true
local allowPauseWhenNoCanMove = true
--
function pause(tr, playlevel, user)
if tick() then
if user and UI.loop.Visible then
print(UI.loop.Visible)
return
end
if not debounce and not talkto and (canmove or allowPauseWhenNoCanMove) and not anicam and not gotice then
if tr then
button.Parent = rf
textsel = UI.pause.bg.pause.close
snapshotcam.Parent = script
snapshotcam.CFrame = CFrame.new(vcf.p)
snapshotcam.Velocity = Vector3.new()
tojump, todive = 0, 0
UI.pause.bg.pause.Visible = true
UI.pause.bg.icecream.Visible = false
UI.pause.bg.clothing.Visible = false
UI.pause.bg.hub.Visible = false
UI.pause.bg.quit.Visible = false
vis.head.Beam.Enabled = true
dir = Vector3.new()
MouseBehavior = Enum.MouseBehavior.Default
else
UI.skip.Visible = false
textsel = nil
pzom = 0
snapshotcam.Parent = rf
UI.UI.Visible = true
game.StarterGui:SetCore("TopbarEnabled", true)
end
if enablePhysWhilePaused then
canmove = not tr
else
char.Anchored = tr
end
paused = tr
for _,v in pairs(enemies)do
v[2].col.Anchored = tr
end
UI.pause.bg.Visible = true
UI.pause.Visible = tr
end
end
end
local lst = UI.pause:GetDescendants()
for _,v in pairs(lst)do
if v.Name == "outline" then
v.Active = false
v.Interactable = false
end
if v.ClassName == "TextButton" or v.ClassName == "ImageButton" then
if textbuttons[v.Name] then
v.MouseButton1Click:connect(textbuttons[v.Name])
end
v.InputChanged:connect(function()console = false textsel = v end)
v.InputBegan:connect(function()console = false textsel = v end)
elseif v.ClassName == "TextBox" then
v.InputChanged:connect(function()console = false textsel = v end)
v.InputBegan:connect(function()console = false textsel = v end)
end
end
UI.UI.pause.MouseButton1Down:connect(function()
pause(not paused,nil,true)
end)
typing = false
sitdebounce = 0
capecf = CFrame.identity
lp = game.Players.LocalPlayer
ms = lp:GetMouse()
mps = CFrame.identity
fastmode = 1
kartlerp = 0
siterp = 0
forcesit = false
sitting= false
skin = 1
hat = 1
toskin(skin, vis)
deadzone = .3
shrink = false
watertick = 0
swiperp = 0
rollerp = 0
flamerp = 0
hasboard = false
swip = false
didjump = false
hasflame = false
flameon = false
rolling = false
trsing = false
trsdeb = false
earlystart = false
mapswitching = false
skatestat = {nil,0,0,false,0}
rg3 = {}
spinCF = {}
enemies = {}
button = rf.button
btnadn = nil
btntick = 0
textbox = rf.textbox
icebg = rf.icebg
snapshotcam = rf.snapcam
songplay = "bgm"
faceid = 0
flamecf = CFrame.identity
boarderp = Vector3.new()
lockcam = false
istitle = false
scale = Vector3.new(1,1,1)
point = CFrame.new()
talking = false
w, a, s, d = 0,0,0,0
tticket = 0
dUP, dDN, dLF, dRT = 0,0,0,0
tojump, todive = 0,0
snapcam = 0
snapto = Vector3.new()
z1, z2 = 0,0
st1, st2 = Vector3.new(), Vector3.new()
ms2 = Vector3.new()
mslock = false
zoom = 2
pzom = 2
rotand = 0
botand = 0
potand = 0
flipo = 0
crouch = false
fcrouch = false
croucherp = 0
crouchtick = tick()
djump = false
jumping = false
fallerp = 0
fallvr = 1
longjump = false
longerp = 0
ground = nil
pheight = nil
timeland = 0
camcf = CFrame.new()
vcf = CFrame.new()
campitch = 0
sliding = false
sliderp = 0
walktick = 0
walklerp = 0
attack = false
aterp = 0
onrope = nil
roperp = 0
ropetick = 0
debounce = false
wallrun = nil
wallnorm = Vector3.new()
wallerp = 0
walkfx = 1
ledgegrab = nil
ledgepoint = Vector3.new()
lederp = 0
studder = false
paused = false
speed = 1
particles = {}
hold = nil
holderp = 0
neargrab = nil
sticko = 0
pound = false
talkto = nil
talktn = 1
console = false
bforce = Vector3.new()
bdamp = Vector3.new()
pole = nil
polerp = 0
candrop = true
hasfly = false
flying = false
flyerp = 0
flypitch = 0
flyspeed = 0
swimming = false
swimerp = 0
stillcam = false
health = 4
hpdeb = false
infwater = false
smoothing = 1
lookat = CFrame.new()*CFrame.Angles(0,2,0)
lookerp = 0
trdo = 1
safecf = CFrame.new(0, 50, 0)
safetick = tick()
skate = false
skaterp = 0
candy = 0
scandy = 0
eggs = 0
gotice = false
icedcream = 0
walkto = nil
canmove = true
rendist = 60
camtand = Vector3.new()
dancing = false
dancerp = 0
indoors = false
firstperson = false
scale = Vector3.new(1,1,1)
anicam = nil
attacktick = tick()
textgo = false
ignore = {}
tscale = Vector3.new()
uis.InputBegan:connect(function(k, i)
if i then
return
end
if not typing then
local t = k
k = k.KeyCode.Name
if k == "C" then
stillcam = not stillcam
print("Follow camera "..(stillcam and "disabled" or "enabled"))
end
if k == "R" then
hasfly = not hasfly
if hasboard then
hasboard = false
end
if hasflame then
hasflame = false
end
end
if k == "T" then
hasboard = not hasboard
if hasfly then
hasfly = false
end
if hasflame then
hasflame = false
end
end
if k == "Y" then
hasflame = not hasflame
if hasboard then
hasboard = false
end
if hasfly then
hasfly = false
end
end
if k == "W" then w = 1
elseif k == "A" then a = 1
elseif k == "S" then s = 1
elseif k == "D" then d = 1
elseif k == "Up" then dUP = 1
elseif k == "Down" then dDN = 1
elseif k == "Left" then dLF = 1
elseif k == "Right" then dRT = 1
elseif k == "ButtonA" or k == "Space" then
if talkto then
carry(neargrab, not hold)
else
jump()
end
elseif k == "ButtonX" or k == "E" then dive()
elseif k == "ButtonB" or k == "RightShift" or t.UserInputType.Name == "MouseButton1" and not mobile and not i and not istitle then toattack()
elseif k == "ButtonR2" or k == "LeftShift"then tocrouch()
elseif k == "ButtonR1" or k == "ButtonL1" or k == "Q"or t.UserInputType.Name == "MouseButton3" then
if point then
local p = point.lookVector:Dot(camcf.lookVector)<-.9 and point*CFrame.Angles(0,.1,0) or point
snapcam, snapto = snapcam+1, -p.rightVector end
elseif k == "DPadUp"then z1 = 1
if zoom == .5 then firstperson=true end
elseif k == "DPadDown"then z2 = 1
firstperson = false
elseif k == "DPadLeft" or k == "LeftControl" then todance()
elseif (k == "ButtonSelect" or k == "P" or k == "Backquote") then pause(not paused,nil,true)
end
end
end)
local mapint = 1
uis.InputEnded:connect(function(k)
local t = k
k = k.KeyCode.Name
if k == "W" then w = 0
elseif k == "A" then a = 0
elseif k == "S" then s = 0
elseif k == "D" then d = 0
elseif k == "Up" then dUP = 0
elseif k == "Down" then dDN = 0
elseif k == "Left" then dLF = 0
elseif k == "Right" then dRT = 0
elseif k == "ButtonR2" or k == "LeftShift"then if not char.Anchored or pound or pause then todive=0 fcrouch = false end
elseif k == "DPadUp"then z1 = 0
elseif k == "DPadDown"then z2 = 0
elseif k == "ButtonA" or k == "Space" then tojump=0
elseif t.UserInputType.Name == "Touch"and mobile then
if ms.X > UI.AbsoluteSize.X/2 then
if not char.Anchored or pound or paused then todive=0 fcrouch = false end
tojump = 0
UI.mobile.A.ImageRectOffset = Vector2.new(0,256)
UI.mobile.A.B.ImageRectOffset = Vector2.new(0,0)
UI.mobile.A.X.ImageRectOffset = Vector2.new(0,0)
UI.mobile.A.RT.ImageRectOffset = Vector2.new(0,256)
else st1 = Vector3.new()UI.mobile.st1.bog.Position = UDim2.new(.3,0,.3,0)
end
end
end)
uis.InputChanged:connect(function(k)
local t = k
k = k.KeyCode.Name
end)
local ipCam, ipSt1
UI.mobile.A.InputBegan:connect(function()if not ipCam then
UI.mobile.A.ImageRectOffset = Vector2.new(256,256)
task.wait()
jump()
if talkto then carry(neargrab, not hold)
end
end end)
UI.mobile.A.X.InputBegan:connect(function()if not ipCam then UI.mobile.A.X.ImageRectOffset = Vector2.new(256,0) task.wait() dive()end end)
UI.mobile.A.B.InputBegan:connect(function()if not ipCam then UI.mobile.A.B.ImageRectOffset = Vector2.new(256,0) task.wait() toattack()end end)
UI.mobile.A.RT.InputBegan:connect(function()if not ipCam then UI.mobile.A.RT.ImageRectOffset = Vector2.new(256,256) task.wait() tocrouch()end end)
uis.InputChanged:connect(function(k)
if k.KeyCode.Name == "Thumbstick1"then
if k.Position.Magnitude > deadzone then
st1 = k.Position.Unit * math.min(1, k.Position.Magnitude)
console = true
else
st1 = Vector3.new()
end
elseif k.KeyCode.Name == "Thumbstick2"then
if k.Position.Magnitude > deadzone then
st2 = k.Position.Unit * math.min(1, k.Position.Magnitude)
else
st2 = Vector3.new()
end
end
end)
uis.InputEnded:connect(function(k)
if k.KeyCode.Name == "Thumbstick1"then
st1 = Vector3.new()
elseif k.KeyCode.Name == "Thumbstick2"then
st2 = Vector3.new()
end
end)
uis.TextBoxFocused:connect(function()typing = true end)
uis.TextBoxFocusReleased:connect(function()typing = false end)
function mobst(ip)
local ap = UI.mobile.st1.AbsolutePosition
local as = UI.mobile.st1.AbsoluteSize
if ip == false then
ip = Vector2.new(ap.X+as.X/2,ap.Y+as.Y/2)
end
local jm = (Vector2.new((ip.X-ap.X), (ip.Y-ap.Y)-as.Y)/as.Y + Vector2.new(.5,.5))*4
if jm.Magnitude > 1 then jm = jm.Unit
elseif jm.Magnitude<deadzone then jm = Vector3.new()
else end
UI.mobile.st1.bog.Position = UDim2.new(.3-jm.X/4,0,.3-jm.Y/4,0)
st1 = Vector3.new(-jm.X,jm.Y)
end
UI.mobile.st1.InputBegan:connect(function(ip)
if ip~=ipCam then
ipSt1 = ip
end
end)
uis.TouchStarted:connect(function(ip, rbx)
if not rbx and ip~=ipSt1 then
ipCam = ip
end
end)
zoom=2
MouseBehavior = Enum.MouseBehavior.Default
ms.WheelForward:connect(function()zoom = math.max(.5, math.min(5, zoom-.5)) if zoom == .5 then firstperson=true end end)
ms.WheelBackward:connect(function()zoom = math.max(.5, math.min(5, zoom+.5)) firstperson = false end)
ms.Button2Down:connect(function()if not UI.pause.Visible then MouseBehavior = Enum.MouseBehavior.LockCurrentPosition end end)
ms.Button2Up:connect(function()MouseBehavior = Enum.MouseBehavior.Default end)
deadzone = .3
trulyconsole = game:GetService("GuiService"):IsTenFootInterface()
local function conswait()
if trulyconsole then
task.wait()
end
end
game:GetService("UserInputService").InputChanged:connect(function(k)
if k.KeyCode.Name == "Thumbstick1"then
if k.Position.Magnitude > deadzone then
st1 = k.Position.Unit * math.min(1, k.Position.Magnitude)
console = true
else
st1 = Vector3.new()
end
elseif k.KeyCode.Name == "Thumbstick2"then
if k.Position.Magnitude > deadzone then
st2 = k.Position.Unit * math.min(1, k.Position.Magnitude)
else
st2 = Vector3.new()
end
end
end)
game:GetService("UserInputService").TextBoxFocused:connect(function()typing = true end)
game:GetService("UserInputService").TextBoxFocusReleased:connect(function()typing = false end)
function MouseMove(name,state,inputObject)
local sen=10
ms2 = Vector3.new(inputObject.Delta.x/sen, -inputObject.Delta.y/sen)
wait()
ms2 = Vector3.new()
end
game:GetService'ContextActionService':BindActionToInputTypes("MouseMove",MouseMove,false,Enum.UserInputType.MouseMovement)
function jump(auto)
conswait()
if paused then tojump = 1 end
if not paused and not talkto then
if sitting and hum.SeatPart then
sitdebounce = tick()
hum.Sit = false
rem:FireServer("sit", nil)
canmove = true
end
end
if not paused and not talkto and canmove then
if auto~=1 then tojump=1 end
dancing = false
if swimming then
elseif swip then
log('swip')
didjump = true
jumping = true
rolling = true
longjump = true
point = swip*CFrame.Angles(0,math.pi,0)
char.CFrame = point+char.Position
swip = false
potand = math.pi
botand = math.pi*4
djump = true
cvt( point.lookVector*10 + Vector3.new(0,60) )
wait(.5)
jumping = false
rolling = false
elseif ledgegrab then
if not debounce then
psound(vis.torso, "jump2")
debounce, jumping, wallrun, ledgegrab = true, true, nil, nil
if dir:Dot(point.lookVector)<-.5 then
cvt( v2(char.Velocity, 20)-point.lookVector*50 )
botand = -math.pi*2
wait(.2)
debounce, jumping = false, false
else
cvt( Vector3.new(0, 30, 0)+point.rightVector*10 )
rotand = rotand + 1
wait(.2)
cvt( Vector3.new(0, char.Velocity.Y, 0)-wallnorm*10-point.rightVector*7 )
wait(.2)
djump = false
debounce, jumping = false, false
end
end
elseif wallrun then
if not jumping then
skatestat = {"Wall jump", skatestat[2]+100, skatestat[3]+1, false, skatestat[5]}
psound(vis.torso, "jump2")
jumping = true
cvt( v2(char.Velocity, 30)+wallnorm*30 )
point = CFrame.new(Vector3.new(),-2 * point.lookVector:Dot(wallnorm) * wallnorm + point.lookVector)
djump = true
wait(.2)
jumping = false
end
elseif skate then
if ground and not jumping and ground.Name~="Slide" then
didjump = true
skatestat = {"Ollie", skatestat[2]+5, skatestat[3], false, skatestat[5]}
psound(vis.torso, "jump")
jumping = true
cvt( v2(char.Velocity, 40+math.max(0,botand*40)) )
wait(.3)
jumping = false
elseif onrope then
didjump = true
jumping = true
cvt( v2(char.Velocity, 50) )
torope(true, onrope)
wait(.3)
jumping = false
end
elseif pole then
psound(vis.torso, "jump2")
debounce = true
cvt( Vector3.new(0,30)-point.lookVector*30 )
point = point*CFrame.Angles(0,math.pi,0)
pole = nil
djump = false
wait(.2)
debounce = false
elseif sliding then
if ground and not jumping and ground.Name~="Slide" then
log('slide')
psound(vis.torso, "jump2")
rolling = true
jumping = true
cvt( v2(char.Velocity, 20) )
djump = false
botand = math.pi*2
wait(.2)
sliding = false
jumping = false
wait(.1)
rolling = false
end
elseif onrope then
didjump = true
djump = false
jumping = true
cvt( v2(char.Velocity, 50) )
torope(true, onrope)
wait(.3)
jumping = false
elseif ground and not jumping then
particle("cloud", 1)
if crouch then
if dir.Magnitude>.8 then
didjump = true
psound(vis.torso, "jump")
jumping = true
longjump = true
djump = true
botand = math.pi*4
if char.Velocity.Y < 0 and char.Velocity.Y > -10 then
cvt(point.lookVector*30 + Vector3.new(0,40) + Vector3.new(0,3.5,0))
else
cvt(point.lookVector*30 + Vector3.new(0,40))
end
wait(.3)
jumping = false
else
log('dirmag < .8')
didjump = true
psound(vis.torso, "jump2")
jumping = true
rolling = true
longjump = true
djump = true
botand = -math.pi*4
if char.Velocity.Y < 0 and char.Velocity.Y > -10 then
cvt(-point.lookVector*10 + Vector3.new(0,60) + Vector3.new(0,3.5,0))
else
cvt(-point.lookVector*10 + Vector3.new(0,60))
end
wait(.5)
jumping = false
rolling = false
end
else
didjump = true
if shrink then
botand = math.pi*4
rolling = true
end
psound(vis.torso, "jump")
fallvr = -fallvr
jumping = true
cvt( v2(char.Velocity, 40) )
wait(.3)
jumping = false
end
elseif not ground and not djump then
didjump = true
psound(vis.torso, "djump")
particle("cloud", 1, true)
djump = true
cvt( v2(char.Velocity, 40) )
botand = botand-2
fallvr = -fallvr
delay(.15,function()
for x = 1, 3 do
if ground or wallrun or onrope or sliding then break end
fallvr = -fallvr
particle("cloud", 1, true)
wait(.15)
end
end)
if dir.Magnitude > .2 then
point = CFrame.new(Vector3.new(), dir)
end
end
end
end
function toattack()
conswait()
local gtick = tick()
log('toattack')
if vis:FindFirstChildWhichIsA("Tool") and not vis:FindFirstChildWhichIsA("Tool"):FindFirstChildWhichIsA("TouchTransmitter", true) then
return
end
if not paused and canmove and carry(neargrab, not hold)
and not talkto and not jumping and not attack and not pole and not onrope and not wallrun and not ledgegrab and not pound
and (ground and ground.Name~="Slide"or not ground) and not istitle then
jumping = true
attack = true
psound(vis.torso, "smack")
djump, sliding, longjump, flying, dancing = true, false, false, false, false
attacktick = gtick
potand = potand + math.pi*2
if swimming then
cvt(char.Velocity/2)
else
cvt(v2(char.Velocity/2, 20))
end
if skate then
skatestat = {"The Iron Man", skatestat[2]+50, skatestat[3]+1, true, skatestat[5]}
end
wait(.2)
jumping = false
end
end
function dive()
conswait()
if not paused and not talkto and canmove then
dancing = false
if hasboard and not crouch and not onrope and not pole and not swimming and not pound then
if not skate then
longjump = false
skate = true
potand = math.pi*2
elseif not ground and boarderp.Z>-.2 then
skatestat = {"Kickflip", skatestat[2]+100, skatestat[3]+1, false, skatestat[5]}
boarderp = boarderp+Vector3.new(0,0,-math.pi*2)
end
elseif hasflame then
flameon = not flameon
elseif ledgegrab and not debounce then
psound(vis.torso, "jump2")
debounce, jumping, wallrun, ledgegrab = true, true, nil, nil
cvt( Vector3.new(0, 30, 0)+point.rightVector*10 )
rotand = rotand + 1
wait(.2)
cvt( Vector3.new(0, char.Velocity.Y, 0)-wallnorm*10-point.rightVector*7 )
wait(.2)
djump = false
debounce, jumping = false, false
elseif wallrun then
if not jumping then
skatestat = {"Wall jump", skatestat[2]+100, skatestat[3]+1, false, skatestat[5]}
psound(vis.torso, "jump2")
jumping = true
cvt( v2(char.Velocity, 30)+wallnorm*30 )
point = CFrame.new(Vector3.new(),-2 * point.lookVector:Dot(wallnorm) * wallnorm + point.lookVector)
djump = true
wait(.2)
jumping = false
end
elseif swimming then
elseif not sliding and not pole and not onrope and not wallrun and not ledgegrab and not attack and not pound then
psound(vis.torso, "dive")
longjump, pound, rolling = false, false, false
char.Anchored = false
jumping = true
sliding = true
if hasfly and not djump then
djump = true
flying = true
flypitch = .5
flyspeed = 2
cvt( point.lookVector*50 + Vector3.new(0,ground and 40 or 20) )
potand = math.pi*2*fallvr
else
cvt( point.lookVector*40 + Vector3.new(0,ground and 30 or 20) )
end
wait(.3)
jumping = false
elseif ground and not jumping and ground.Name~="Slide" then
psound(vis.torso, "jump2")
rolling = true
jumping = true
cvt( v2(char.Velocity, 20) )
djump = false
botand = math.pi*2
wait(.2)
sliding = false
jumping = false
wait(.1)
rolling = false
elseif flying and not debounce then
debounce = true
potand = potand+math.pi*2*fallvr
wait(.5)
debounce = false
end
end
if paused and UI.pause.bg.pause.Visible then
UI.UI.Visible = true
UI.pause.Visible = true
textsel = UI.pause.bg.pause.close
game.StarterGui:SetCore("TopbarEnabled", true)
UI.skip.Visible = false
MouseBehavior = Enum.MouseBehavior.Default
end
end
function tocrouch()
conswait()
local gtick = tick()
if todive==0 then
if paused then todive = 1 end
if not paused and not talkto and canmove then
todive=1
crouch, crouchtick = true, gtick
fcrouch = true
skate = false
if not ground or ground.Name~="Slide"then sliding = false end
if ledgegrab and not debounce then
psound(vis.torso, "jump2")
debounce, jumping, wallrun, ledgegrab = true, true, nil, nil
cvt( v2(char.Velocity, 20)-point.lookVector*50 )
botand = -math.pi*2
wait(.2)
debounce, jumping = false, false
elseif not ground and not wallrun and not onrope and not attack and not sliding and not pound and not swimming and not pole or flying then
pound = true
rolling = true
botand = math.pi*2
djump = true
sliding = false
flying = false
char.Anchored = true
longjump = true
wait(.4)
if not paused then
char.Anchored = false
if pound then cvt( Vector3.new(0,-40) )end
end
end
end
end
end
function hitenemy(e)
jumping = true
e.Mesh.Scale = v2(e.Mesh.Scale, e.Mesh.Scale.Y/4)
e.Mesh.Offset = Vector3.new(0,-1)
cvt( v2(char.Velocity, 40) )
delay(.3,function()jumping = false
wait(2)e:Destroy() end)
end
function torope(canc, rope)
if canc then
rope.Mid.Size = Vector3.new(2,2,(rope.PartA.Position-rope.PartB.Position).Magnitude)
rope.Mid.CFrame = CFrame.new((rope.PartA.Position+rope.PartB.Position)/2,rope.PartB.Position)
onrope = nil
debounce = true
delay(.1, function()debounce = false end)
else
onrope = rope
ropetick = tick() + (char.Velocity.Y>0 and -3 or char.Velocity.Y>-30 and -1.4 or 0)
flying = false
sliding = false
pound = false
rolling = false
longjump = false
attack = false
end
end
maj = {1,3,5,6,8,10,12,13}
min = {1,3,4,6,8,9,11,13}
function showbis(text, mute, beebo, silent)
tticket = tticket + 1
local tt = tticket
textbox.SurfaceGui.tbt:ClearAllChildren()
local pos = Vector2.new(0,0)
local hl = false
local effect, shake = false, false
local x, most = 1, #text
while x<=most do
local ad = 0
for nx = x, #text do
local b = string.sub(text,nx,nx)
if b==" "or nx==#text then
if pos.X+ad>830 then
pos = Vector2.new(0, pos.Y+50)
end
break
else
script.tx.Text = b
ad=ad+script.tx.TextBounds.X
end
end
if string.sub(text,x,x)==">"then
hl = true
if string.sub(text,x,x+1)==">a"then
text = string.sub(text,1,x).."attack ="..(console and"0"or"4").. string.sub(text,x+2,-1)
elseif string.sub(text,x,x+1)==">j"then
text = string.sub(text,1,x).."jump ="..(console and"1"or"5=6").. string.sub(text,x+2,-1)
elseif string.sub(text,x,x+1)==">c"then
text = string.sub(text,1,x).."crouch ="..(console and"2"or"7=8").. string.sub(text,x+2,-1)
elseif string.sub(text,x,x+1)==">d"then
text = string.sub(text,1,x).."dive ="..(console and"3"or"9").. string.sub(text,x+2,-1)
elseif string.sub(text,x,x+1)==">F"then
text = string.sub(text,1,x)..(console and"forward"or"W").. string.sub(text,x+2,-1)
elseif string.sub(text,x,x+1)==">B"then
text = string.sub(text,1,x)..(console and"backward"or"S").. string.sub(text,x+2,-1)
end
most=#text
elseif string.sub(text,x,x)=="+"then
hl = true
elseif string.sub(text,x,x)=="#"then
effect = not effect
elseif string.sub(text,x,x)=="$"then
shake = not shake
elseif string.sub(text,x,x)=="="then
local im = script.im:Clone()
im.ImageRectOffset = Vector2.new(tonumber(string.sub(text,x+1,x+1)), 0)*32
im.Parent = textbox.SurfaceGui.tbt
im.Position = UDim2.new(0,pos.X,0,pos.Y)
pos=pos+Vector2.new(50,0)
x=x+1
else
local tx = script.tx:Clone()
tx.Text = string.sub(text,x,x)
tx.Parent = textbox.SurfaceGui.tbt
tx.Position = UDim2.new(0,pos.X,0,pos.Y)
tx.pos.Value = Vector3.new(pos.X,pos.Y)
tx.TextColor3 = silent and Color3.new(.5,.5,.5) or hl and Color3.new(.2,.5,1)or Color3.new(0,0,0)
if beebo then Instance.new("Folder", tx).Name = "beebo"end
if effect then
Instance.new("Folder", tx).Name = "effect"
local t = Instance.new("IntValue")
t.Parent = tx.effect
t.Name = "var"
elseif shake then
Instance.new("Folder", tx).Name = "shake"
end
pos=pos+Vector2.new(tx.TextBounds.X,0)
if pos.X>830 then pos = Vector2.new(0, pos.Y+50)end
local t = string.sub(text, x, x)
local ispc = t=="."or t==","or t=="!"or t=="?"
if hl and ispc or t==" "then hl = false end
if not textgo and tt == tticket then
wait()
if ispc then
for x=1,5 do
if not textgo and tt == tticket then
wait(.3/5)
end
end
end
if (x+4)%5==0 and not ispc and not mute then
local scl = maj
local t = beebo and script.text or script.text2
t.Volume = silent and .2 or .5
t.PlaybackSpeed = 2^(scl[math.random(#scl)]/12)
t:Play()
end
end
end
x=x+1
end
end
function totext(tx, o)
textgo = false
local notbeebo = not tx:FindFirstChild'beebo'
talking = true
textbox.SurfaceGui.beebo.Visible = not notbeebo
textbox.SurfaceGui.person.Visible = notbeebo
out(textbox.SurfaceGui.person, o.Name)
textbox.SurfaceGui.bg.Image = notbeebo and "rbxassetid://1442126894" or "rbxassetid://1442127057"
if tx.Value~="SKIP"then
showbis(tx.Value, nil, not notbeebo, tx:FindFirstChild'silent')
talking = nil
textgo = false
if tx:FindFirstChild("ignore")then wait(.1)textgo=true end
repeat wait()until textgo
end
if tx:FindFirstChild'tx'then
totext(tx.tx, o)
else
talkto.sz:Destroy()
talkto.cf:Destroy()
talkto = nil
end
end
function carry(item, to)
log('carry')
local gtick = tick()
if talkto then
textgo = true
elseif item and item:FindFirstChild'tx'then
talkto = item
char.Velocity = Vector3.new()
skate, flying = false, false
local s = Instance.new("Vector3Value")
s.Parent = item
s.Name = "sz"
s.Value = item.Size
local s = Instance.new("CFrameValue")
s.Parent = item
s.Name = "cf"
s.Value = item.CFrame
talktn = math.sign(v2(camcf.lookVector):Dot(v2(CFrame.new(mps.p, item.Position).rightVector) ) )
totext(item.tx, item)
elseif to and item then
hold = item
hold.Anchored = true
hold.CanCollide = false
elseif not to then
local i2 = {hold}
for _,v in pairs(ignore)do i2[#i2+1] = v end
local at = workspace:FindPartOnRayWithIgnoreList(Ray.new(char.Position, point.lookVector*5), i2)
if not at then
hold.Anchored = false
hold.CanCollide = true
hold.Velocity = hold.Velocity+ (dir.Magnitude>.9 and point.lookVector*50 or Vector3.new())
local bt = workspace:FindPartOnRay(Ray.new(hold.Position+Vector3.new(0,1), Vector3.new(0,-3)), hold)
hold = nil
attacktick = gtick
rolling = false
else
script.cancel:Play()
end
else
return true
end
end
function todance()
if ground and dir.Magnitude<deadzone and not swimming and not onrope and not pole and not sliding and not crouch and not attack and not skate then
dancing = true
end
end
lp.Chatted:connect(function(msg)
if string.sub(msg,1,8)=="/e dance"then
todance()
end
end)
function psound(tso, nm)
local volume = 1
tso[nm].Volume = tso[nm]:FindFirstChild'vol' and volume*tso[nm].vol.Value or 1
tso[nm]:Play()
end
function damage(from)
if true then
return
end
if not hpdeb then
hpdeb = true
psound(vis.torso, "damage")
if health==4 then
local b = game.Lighting.vis.trs.pack:Clone()
b.Parent, b.CFrame, b.Anchored, b.CanCollide = workspace.debris, vis.trs.pack.CFrame, false, true
b.Velocity, b.RotVelocity = -point.lookVector*10 + Vector3.new(0,20), point.rightVector*10
game.Debris:AddItem(b, 10)
end
local b = game.Lighting.vis.trs.bt1:Clone()
b.Parent, b.CFrame, b.Anchored, b.CanCollide = workspace.debris, vis.trs.pack.CFrame, false, true
b.Velocity, b.RotVelocity = -point.lookVector*10 + Vector3.new(0,20), point.rightVector * 10
game.Debris:AddItem(b, 10)
health = health - 1
if health == 0 then
health = 4
end
if hasfly then
hasfly = false
particle("cloud", 8, true, vis.torso.CFrame)
flying = false
end
wait(2)
hpdeb = false
end
end
function particle(name, qty, dovel, pos, size)
if not pos then pos = mps-Vector3.new(0,1.5) end
local a = math.random()*3.14
for x = 1, qty do
local c = characterModel.cloud:Clone()
c.Parent = script
local angle = qty==1 and Vector3.new(math.random(-30,30),math.random(-30,30),math.random(-30,30))/80 or CFrame.Angles(0,x/qty*math.pi*2+a,0).lookVector
c.CFrame = pos+angle
c.speed.Value = angle*4+ Vector3.new(0,2)
+(not dovel and char.Velocity/2 or Vector3.new())
c.rs.Value = Vector3.new(math.random(-30,30)/20,math.random(-30,30)/20,math.random(-30,30)/20)
c.Mesh.Scale = c.Mesh.Scale*(size or 1)
particles[#particles+1]=c
end
end
function ag(cf)
return cf-cf.p
end
function cfro(x,y,z)
if not y then x,y,z = x.X, x.Y, x.Z end
return CFrame.new(x*tscale.X,y*tscale.Y,z*tscale.Z)
end
function transition(to,mswitch,forced)
if not to and forced then
earlystart = false
trsing = false
if mswitch then
mapswitching = false
end
end
if not trsdeb then
trsdeb = true
local l = UI.loop
trdo = to and 0 or 1
if to then
script.load1:Play()
l.Visible = true
else
earlystart = false
trsing = false
if mswitch then
mapswitching = false
end
if health > 0 then
char.Anchored = false
end
script.load2:Play()
l.BackgroundTransparency = 1
end
local t = tick()
while tick()-t < .4 do
local xbase = UI.AbsoluteSize.X>UI.AbsoluteSize.Y
if xbase then
l.SizeConstraint = Enum.SizeConstraint.RelativeXX
l.Position = UDim2.new(0,0,0,-36+(UI.AbsoluteSize.Y-UI.AbsoluteSize.X)/2)
else
l.SizeConstraint = Enum.SizeConstraint.RelativeYY
l.Position = UDim2.new(0,(UI.AbsoluteSize.X-UI.AbsoluteSize.Y)/2,0,-36)
end
local x = to and 1-(tick()-t)/.4 or (tick()-t)/.4
x=x*2
l.center.Size = UDim2.new(x,0,x,0)
l.center.Position = UDim2.new(.5-x/2, 0, .5-x/2,0)
l.l.Size = UDim2.new(.5-x/2,1,1,1)
l.r.Size = UDim2.new(-.5+x/2,-1,1,-1)
l.u.Size = UDim2.new(1,1,.5-x/2,1)
l.d.Size = UDim2.new(1,-1,-.5+x/2,-1)
game:GetService("RunService").RenderStepped:wait()
end
game:GetService("RunService").RenderStepped:wait()
if to then
l.BackgroundTransparency = 0
trsing = true
if mswitch then
mapswitching = true
end
else
l.Visible = false
if not anicam then UI.UI.Visible = true end
end
trsdeb = false
end
end
function limit(v3, n)
if v3.Magnitude > n then
return v3.Unit * n
end
return v3
end
function v2(v3, b)
return Vector3.new(v3.X, b or 0, v3.Z)
end
function out(ins,tx)
ins.Text = tx
ins.outline.Text = tx
end
function cvt(vel)
char.Velocity = vel
delay(0,function()
game:GetService("RunService").RenderStepped:wait()
if char.Velocity:Dot(vel) < .3 then
char.Velocity = vel
end
end)
end
function cast(ray)
local f1, f2, f3 = workspace:FindPartOnRayWithIgnoreList(ray, ignore)
if f1 and not f1.CanCollide and f1.Name~="door" or (f1 and f1.Name=="pole") then
ignore[#ignore+1] = f1
return cast(ray)
else
return f1, f2, f3
end
end
function extraAddon()
if p34:FindFirstChild("neck") then
p34:FindFirstChild("neck").CFrame = p34.torso.CFrame*CFrame.new(0, 1.0999999046325684, 0.5999984741210938)
end
if p34:FindFirstChild("sleeveB") then
p34:FindFirstChild("sleeveB").CFrame = p34.armB.CFrame*CFrame.new(0, -0.2999992370605469, 0)
end
if p34:FindFirstChild("sleeveA") then
p34:FindFirstChild("sleeveA").CFrame = p34.armA.CFrame*CFrame.new(0, -0.2999992370605469, 0)
end
if p34:FindFirstChild("santa") then
p34:FindFirstChild("santa").CFrame = p34.head.CFrame*CFrame.new(0, 0.32000017166137695, 0.11999893188476562)*CFrame.Angles(math.rad(15),0,0)
end
if p34:FindFirstChild("party") then
p34:FindFirstChild("party").CFrame = p34.head.CFrame*CFrame.new(0, 1.700000286102295, 0.2999992370605469)*CFrame.Angles(math.rad(15),0,0)
end
if p34:FindFirstChild("cape") then
local vel = char.Velocity.Magnitude/15
if skate or flying then
vel = char.Velocity.Magnitude/30
end
capecf = capecf:Lerp(CFrame.Angles(math.rad(math.clamp(vel*-35,-115,0)),0,math.rad(0)),.2)
p34:FindFirstChild("cape").CFrame = vis.torso.CFrame*CFrame.new(0.01399993896484375, 0.8239998817443848, 0.17499923706054688)*capecf
end
end
function trsCF(vis, health, tpc, hasfly, hasboard, hat, grn, bees,hasflame,hastoy)
local gtick = tick()
local vishealth = characterModel:GetAttribute("health") or health
vis.trs.pack.CFrame = vis.torso.CFrame * cfro(0,.12,.48) * CFrame.Angles(1.44,math.pi,0)
vis.trs.bt1.CFrame = vis.torso.CFrame * cfro(-.13,.23,.19) * CFrame.Angles(0,math.pi/2,-.1)
vis.trs.bt2.CFrame = vis.torso.CFrame * cfro(-.13,-.09,.24) * CFrame.Angles(0,math.pi/2,-.1)
vis.trs.bt3.CFrame = vis.torso.CFrame * cfro(.13,-.09,.24) * CFrame.Angles(0,math.pi/2,-.1)
vis.trs.bt4.CFrame = vis.torso.CFrame * cfro(.13,.23,.19) * CFrame.Angles(0,math.pi/2,-.1)
vis.trs.pack.Transparency = vishealth>=4 and (skin == 39 and tpc+0.5 or tpc) or 1
vis.trs.bt4.Transparency = vishealth>=4 and tpc or 1
vis.trs.bt3.Transparency = vishealth>=3 and tpc or 1
vis.trs.bt2.Transparency = vishealth>=2 and tpc or 1
vis.trs.bt1.Transparency = vishealth>=1 and tpc or 1
if hasfly then
vis.trs.jetpack.CFrame = vis.torso.CFrame * cfro(0,.2,1)
vis.trs.jetpack.booster.Size = Vector3.new(1.308, .83, .607)*(1+math.random()/10)
vis.trs.jetpack.booster.CFrame = vis.torso.CFrame * cfro(0,-.6,1)
vis.trs.jetpack.Transparency = tpc
vis.trs.jetpack.booster.Transparency = tpc
else
vis.trs.jetpack.Transparency = 1
vis.trs.jetpack.booster.Transparency = 1
end
if hasboard then
vis.trs.board.Transparency = tpc
vis.trs.board.w1.Transparency = tpc
vis.trs.board.w2.Transparency = tpc
vis.trs.board.w1.CFrame = vis.trs.board.CFrame * cfro(0,-.4,-1.2)*CFrame.Angles(-gtick*10*skaterp,0,0)
vis.trs.board.w2.CFrame = vis.trs.board.CFrame * cfro(0,-.4,1.2)*CFrame.Angles(-gtick*10*skaterp,0,0)
else
vis.trs.board.Transparency = 1
vis.trs.board.w1.Transparency = 1
vis.trs.board.w2.Transparency = 1
end
if hasflame then
local c = vis.torso.CFrame
if not ground then
c = char.CFrame*CFrame.Angles(-math.pi/2 - dir:Dot(char.CFrame.lookVector)*math.pi/2,dir:Dot(char.CFrame.rightVector)*math.pi/2,0)
else
end
flamecf = flamecf:Lerp(c,math.min(1,dt*10))
vis.trs.flamethrower.Transparency = tpc
vis.trs.flamethrower.CFrame = ((flamecf-flamecf.p)
+(vis.armC.Position - vis.armC.CFrame.upVector/2))
*CFrame.new(0,1,-.9)
vis.trs.flamethrower.pcl.p.Enabled = flameon
if flameon then
local mb = workspace:FindPartOnRayWithIgnoreList(
Ray.new(vis.trs.flamethrower.Position-flamecf.lookVector*2, flamecf.lookVector*17),
{char,vis})
if mb and (mb.Name == "col" or mb.Parent.Name == "vis" and mb.Parent.Parent:FindFirstChild("col")) then
if mb.Parent.Name == "vis"then mb = mb.Parent.Parent.col end
local gog = mb.CFrame
local rep, msg, vel = enemies[mb.tag.Value][2].touch(mb.CFrame+Vector3.new(0,1), true)
if rep == "remove" then
enemies[msg] = nil
delay(1,function()
particle("cloud",1,Vector3.new(),gog)
end)
end
end
end
else
vis.trs.flamethrower.Transparency = 1
vis.trs.flamethrower.pcl.p.Enabled = false
end
if hat~=0 then
if vis.trs:FindFirstChild'hat' and vis.trs.hat.id.Value == hat then
vis.trs.hat.CFrame = vis.head.CFrame * cfro(vis.trs.hat.off.Position)
*CFrame.Angles(math.rad(vis.trs.hat.off.Orientation.X), math.rad(vis.trs.hat.off.Orientation.Y),math.rad(vis.trs.hat.off.Orientation.Z))
if vis.trs.hat:FindFirstChild("skin")then
vis.trs.hat.Mesh.TextureId = vis.torso.Mesh.TextureId
vis.trs.hat.Material = vis.torso.Material
vis.trs.hat.Reflectance = vis.torso.Reflectance
end
elseif vis.trs:FindFirstChild'hat'then
rem:FireServer("loadhat", hat)
else
rem:FireServer("loadhat", hat)
end
elseif vis.trs:FindFirstChild'hat'then
vis.trs.hat:Destroy()
end
end
function anim(vis, me, tpc)
if not tpc then tpc = 0 end
tscale = scale
local grn = 0
local gtick = tick()
if gotice then
for _,v in pairs(vis:GetChildren())do
if rf.pose:FindFirstChild(v.Name)then
v.CFrame = mps*rf.pose[v.Name].CFrame
end
end
vis.head.dcf.Value = vis.head.CFrame
else
grn = 1-math.abs(fallerp)
local nrm = (1-holderp)*(1-croucherp)*(1-lederp)*(1-polerp)*(1-aterp)*(1-dancerp)
local wtk = math.sin(walktick*14)*walklerp
local wallslide = (1-walklerp)*wallerp*(1-lederp)*(1-skaterp)
local sin = math.abs(wtk) * (.8*grn)/(roperp+1)*(1-swimerp)
local sin2 = wtk*-1.2*grn/(roperp+1)/(polerp+1) + fallerp*(1-sliderp)*(1-longerp)*(1-aterp)
+math.sin(gtick*6)*dancerp
local ag = Vector3.new(sliderp*2-longerp+croucherp+(-swimerp*1-walklerp*swimerp-(skaterp+rotand*skaterp)*.4)*nrm+polerp+sin2*polerp/2+wallslide
, sin2*nrm*(1-swimerp)+holderp+sin2*dancerp/2*(1-holderp)
,.6+(walklerp*.7*grn*nrm*(1-swimerp)+math.abs(fallerp)*nrm)*(1-roperp)+roperp*.7+holderp/2+aterp*(1-holderp)-(math.abs(sin2)*dancerp-dancerp)*(1-holderp))
local bg = Vector3.new(sliderp/2+(skaterp+rotand*skaterp)*.4+wallslide, 0,fallerp*.8*(1-longerp))*nrm
-Vector3.new(-holderp/2-croucherp*(1-holderp)-polerp*(1-holderp)-(math.sin(gtick*3)*dancerp/4+dancerp/2)*(1-holderp))
local hip = grn*1.4-sliderp*1.4-croucherp-wallerp
vis.torso.CFrame = mps
*CFrame.new(0,-1*siterp,0)
*cfro(0,-hip+swimerp*1.4+skaterp*.4+math.abs(-sin2)*dancerp/9+wallerp-sliderp*1.4,0)
* CFrame.Angles(0,0,rotand+wtk*croucherp/5+wtk*polerp/12)
* CFrame.Angles(botand+math.abs(rotand)/2*wallerp, potand+math.sin(walktick*7)*swimerp*.1-skaterp*1.5+sin2*dancerp/8,0)
* cfro(0,(wallrun and sin/2 or sin)/(polerp*3+1)+hip,croucherp*.5)
local sitlerp = math.clamp(siterp-dancerp,0,1)
local vehiclelerp = (0*siterp)
local toolerp1 = vis:FindFirstChildWhichIsA("Tool")and not vis:FindFirstChildWhichIsA("Tool"):FindFirstChildWhichIsA("TouchTransmitter", true) and 1 or 0
local toolerp = math.clamp(toolerp1 - dancerp, 0, 1)
vis.head.CFrame = vis.torso.CFrame * cfro(0,.8,0) * CFrame.Angles(sliderp-longerp+croucherp*.8+polerp/2,skaterp-wallslide,rotand*.2+sin2*dancerp/4)*cfro(0,.8,0)
vis.legA.CFrame = vis.torso.CFrame * cfro(.35,-.5+wtk*croucherp/3+croucherp/2,-.15-croucherp/3)
* CFrame.new(0,0.2*siterp,-0.5*siterp)
* CFrame.Angles(((math.pi/12)*siterp), 0, 0)
* CFrame.Angles(-sin2*(1-math.clamp(dancerp+siterp,0,1)*.8)*(1-swimerp/2)*(1-croucherp/2)*(1-polerp)+polerp/2+sin2*polerp/4+longerp-sliderp/2+lederp-rotand*skaterp/4+wallslide
,0,roperp*-.3-polerp*.3+aterp/4 +.1+skaterp/4+math.min(0,sin2*dancerp/2))* cfro(0,-.7,0)
vis.legB.CFrame = vis.torso.CFrame * cfro(-.35,-.5-wtk*croucherp/3+croucherp/2,-.15-croucherp/3)
* CFrame.new(0,0.2*siterp,-0.5*siterp)
* CFrame.Angles(((math.pi/12)*siterp), 0, 0)
* CFrame.Angles(sin2*(1-math.clamp(dancerp+siterp,0,1)*.8)*(1-swimerp/2)*(1-croucherp/2)*(1-polerp)+polerp/2-sin2*polerp/4+longerp-sliderp/2+lederp-rotand*skaterp/2+wallslide
,0,roperp*.3+polerp*.3-aterp/4-.1-skaterp/4+math.max(0,sin2*dancerp/2))* cfro(0,-.7,0)
vis.armA.CFrame = vis.torso.CFrame
* cfro(.5,.6,0)
*CFrame.Angles(0,(math.pi/4)*math.clamp(sitlerp-toolerp,0,1),0)
*CFrame.new(0*toolerp,0,0)
*CFrame.Angles((math.pi/2)*toolerp,0,0)
*CFrame.Angles((-math.pi/3)*sitlerp,(math.pi/4)*vehiclelerp,0)
*CFrame.Angles((math.pi/3.5)*sitlerp,0,0)
*CFrame.Angles(ag.X+lederp * (1-toolerp),ag.Y * (1-toolerp),ag.Z * (1-toolerp))
* cfro(0,-.4,0)
vis.armB.CFrame = vis.torso.CFrame
* cfro(-.5,.6,0)
*CFrame.Angles(0,(-math.pi/4)*sitlerp,0)
*CFrame.Angles((-math.pi/3)*sitlerp,(-math.pi/4)*vehiclelerp,0)
*CFrame.Angles((math.pi/3.5)*sitlerp,0,0)
*CFrame.Angles(ag.X+lederp,ag.Y*(-holderp*2+1),-ag.Z)
* cfro(0,-.4,0)
vis.armC.CFrame = vis.armA.CFrame
* cfro(0,-.3-math.abs(sin2*dancerp/8),0)
*CFrame.Angles((math.pi/3)*math.clamp(sitlerp-toolerp,0,1),0,0)
*CFrame.Angles(bg.X+math.max(0,sin2)*(1-swimerp)*(1-holderp)+lederp/2*(1-holderp),bg.Y+polerp,bg.Z)
* cfro(0,-.4,0)
vis.armD.CFrame = vis.armB.CFrame
* cfro(0,-.3-math.abs(sin2*dancerp/8),0)
*CFrame.Angles((math.pi/3)*sitlerp,0,0)
*CFrame.Angles(bg.X+math.max(0,-sin2)*(1-swimerp)*(1-holderp)+lederp/2*(1-holderp),bg.Y-polerp,bg.Z)
* cfro(0,-.4,0)
if swiperp>.01 then
for _,v in pairs(vis:GetChildren())do
if rf.pose3:FindFirstChild(v.Name)then
local e = rf.pose3[v.Name].CFrame
if shrink then e = e-e.p + e.p*tscale end
v.CFrame = v.CFrame:Lerp(mps*e, swiperp)
end
end
elseif rollerp>.01 then
for _,v in pairs(vis:GetChildren())do
if rf.pose2:FindFirstChild(v.Name)then
local e = rf.pose2[v.Name].CFrame
if shrink then e = e-e.p + e.p*tscale end
v.CFrame = v.CFrame:Lerp(vis.torso.CFrame*e, rollerp)
end
end
elseif flamerp>.01 then
for _,v in pairs(vis:GetChildren())do
if rf.pose5:FindFirstChild(v.Name)then
local e = rf.pose5[v.Name].CFrame
if shrink then e = e-e.p + e.p*tscale end
v.CFrame = v.CFrame:Lerp(vis.torso.CFrame*e, flamerp)
end
end
end
vis.head.dcf.Value = vis.head.CFrame
end
local boardcf = vis.torso.CFrame * cfro(0,-1.7,0)*CFrame.Angles(0,1.5,-rotand*(1-wallerp)*grn)
vis.trs.board.CFrame = boardcf:Lerp(vis.torso.CFrame*cfro(0,0,1)*CFrame.Angles(1.5,1,0) , 1-skaterp)
*CFrame.Angles(boarderp.X*skaterp,boarderp.Y*skaterp,boarderp.Z*skaterp)
trsCF(vis, health, tpc, hasfly, hasboard, hat, grn, false, hasflame, false)
extraAddon()
end
function animDot()
local hed = vis.head.Position+vis.head.CFrame.upVector*tscale.Y*2
local t = (hed-vis.dot.Position)
vis.dot.Anchored = true
vis.dot.vel.Value = vis.dot.vel.Value +t*dt*8 -vis.dot.vel.Value*math.min(1,dt*5)
if vis.dot.Position.Y < vis.head.Position.Y+vis.head.CFrame.upVector.Y*1.5 then
vis.dot.CFrame = vis.dot.CFrame-vis.dot.Position+v2(vis.dot.Position,vis.head.Position.Y+vis.head.CFrame.upVector.Y*1.5)
end
if (vis.dot.Position-hed).Magnitude>2*tscale.Y then
local lv = CFrame.new(hed, vis.dot.Position).lookVector*1.9*tscale.Y
vis.dot.CFrame = vis.dot.CFrame-vis.dot.CFrame.p+hed + lv
vis.dot.vel.Value = Vector3.new()
else
vis.dot.CFrame = vis.dot.CFrame+vis.dot.vel.Value*dt*10
end
end
local t = 0
function cf2buf(cf)
local buf = buffer.create(12 + 6)
local pos = cf.Position
local oX, oY, oZ = cf:ToOrientation()
buffer.writef32(buf, 0, pos.X)
buffer.writef32(buf, 4, pos.Y)
buffer.writef32(buf, 8, pos.Z)
buffer.writei16(buf, 12, math.round(oX * 100))
buffer.writei16(buf, 14, math.round(oY * 100))
buffer.writei16(buf, 16, math.round(oZ * 100))
return buf
end
runService.RenderStepped:Connect(function()
if tick()-t > 1 / 15 and (not paused or allowPauseWhenNoCanMove) then
t = tick()
local list = {
c = {},
p = {},
d = dancing,
hb = hasboard,
hf = hasfly,
hfl = hasflame,
fid = faceid
}
for i,v in pairs(characterModel:GetChildren()) do
if v:IsA("BasePart") and v ~= fdot and v ~= char and v ~= head and v ~= root and v ~= torso and v.Name ~= "cloud" then
table.insert(list.p,v.Name == "dot" and v.Name or v)
table.insert(list.c,cf2buf(v.CFrame))
end
end
table.insert(list.p,vis.head.skin)
table.insert(list.c,cf2buf(vis.head.skin.CFrame))
for _, v in pairs(vis.trs:GetDescendants()) do
if v:IsA("BasePart") and (v.Transparency < 1 or v == vis.trs.shadow) then
table.insert(list.p,v)
table.insert(list.c,cf2buf(v.CFrame))
end
end
rem:FireServer(list, vis.trs.shadow.Size)
end
if hum and not hum.SeatPart then
hum.PlatformStand = true
end
end)
frame = 0
spawn(function()
transition()
local bus = 0
while wait(.06) do
if not paused then
if gotice or dancing then
faceid = 2
else
faceid = 0
end
if swip then
particle("cloud", 1)
elseif sliding and ground then
particle("cloud", 1)
elseif flying then
if bus%2==0 then particle("cloud", 1, nil, vis.trs.jetpack.CFrame*CFrame.new(-.3,-.9,-.2), .4)
else particle("cloud", 1, nil, vis.trs.jetpack.CFrame*CFrame.new(.3,-.9,-.2), .4)
end
elseif (1-walklerp)*wallerp*(1-lederp)*(1-skaterp)>.6 then
particle("cloud", 1, nil, vis.torso.CFrame*CFrame.new(0,0,-1))
end
if skate and not gotice then
if skatestat[4]then skatestat[2]=skatestat[2]+1 end
UI.hawk.Visible = true
UI.hawk.trick.TextColor3 = skatestat[6] and Color3.new(0,.7,1)or Color3.new(1,1,1)
out(UI.hawk.trick, skatestat[1] or "")
out(UI.hawk.pts, skatestat[2]~=0 and skatestat[2].." x "..skatestat[3] or "")
out(UI.hawk.score, "Score: "..skatestat[5])
else
UI.hawk.Visible = false
skatestat = {nil,0,0,false,UI.time.Visible and skatestat[5] or 0}
end
end
end
end)
function touched(h, rg)
local gtick = tick()
if h.Parent and h.Parent~=vis and h.Parent.Name~="trs" and not paused then
if h.Name == "Mid" and not debounce and not swimming and not pole then
if onrope and h.Parent==onrope then return
elseif onrope then
torope(true, onrope)
local a = CFrame.new(v2(char.Position), v2(h.Position))
char.CFrame=char.CFrame+a.lookVector*2
char.Velocity = a.lookVector*v2(char.Velocity).Magnitude
point = a
else
skatestat = {"50-50 Grind", skatestat[2]+50, skatestat[3]+1, true, skatestat[5]}
end
torope(nil, h.Parent)
elseif h.Name == "pole" and not pole and not debounce and not swimming and not hold and not onrope and not wallrun then
pole = h
if (v2(char.Position)-v2(pole.Position)).Magnitude>.1 then
point = CFrame.new(v2(char.Position), v2(pole.Position))-char.Position
end
if h:FindFirstChild("finished")then
h.finished.Value = true
end
sliding, longjump, flying, skate, attack, rolling = false, false, false, false, false, false
elseif h.Name == "jetpack" and not debounce then
debounce = true
hasfly = not hasfly
particle("cloud", 8, true, vis.torso.CFrame)
health, flying, skate, hasboard, hasflame = 4,false,false,false,false
if hasfly then psound(vis.torso, "powerup") end
wait(1)
debounce = false
elseif h.Name == "skateboard" and not debounce then
debounce = true
hasboard = not hasboard
particle("cloud", 8, true, vis.torso.CFrame)
health, flying, skate, hasfly, hasflame = 4,false,false,false,false
if hasboard then psound(vis.torso, "powerup") end
wait(1)
debounce = false
elseif h.Name == "flamethrower"and not debounce then
debounce = true
hasflame = not hasflame
particle("cloud", 8, true, vis.torso.CFrame)
health, flying, skate, hasboard, hasfly = 4,false,false,false, false
if hasflame then psound(vis.torso, "powerup") end
wait(1)
debounce = false
elseif (h.Name == "candy" or h.Name=="hcandy") and rg then
h.Transparency = 1
h.Name = "not candy"
h.pcl.candy:Emit(1)
candy = candy + 1
delay(.3,function()
h:Destroy()
end)
elseif h.Name == "egg" and rg then
h.Transparency = 1
h.Name = "not egg"
h.pcl.candy:Emit(1)
script.egg.PlaybackSpeed = 2^(maj[eggs]/12)
script.egg:Play()
delay(.3,function()
h:Destroy()
end)
elseif h.Name == "battery" and health<4 then
h.Transparency = 1
h.Name = "not battery"
h.pcl.candy:Emit(1)
script.heal:Play()
health = math.min(4, health+1)
rem:FireServer("battery", h)
delay(.3,function()
h:Destroy()
end)
elseif h.Name == "door" and not debounce and not skate and not sliding and not swimming and ground and not crouch and not swip and swiperp<.1 then
debounce = true
canmove = false
h.CanCollide = false
h.open:Play()
char.Velocity = Vector3.new()
local t = tick()
local cf = h.CFrame
local side = math.sign(CFrame.new(mps.p, cf.p).lookVector:Dot(cf.lookVector))
while tick()-t < .3 do
local t = (tick()-t)/.3
h.CFrame = cf * CFrame.new(-1.8,0,0)*CFrame.Angles(0,t*2*side,0)*CFrame.new(1.8,0,0)
char.Velocity = char.Velocity + v2(cf.p+cf.lookVector*-2*side-char.Position)*2
wait()
end
h.CFrame = cf * CFrame.new(-1.8,0,0)*CFrame.Angles(0,2*side,0)*CFrame.new(1.8,0,0)
walkto = cf.lookVector*side
wait(.3)
walkto = nil
wait(.3)
local t = tick()
while tick()-t < .3 do
local t = 1-(tick()-t)/.3
h.CFrame = cf * CFrame.new(-1.8,0,0)*CFrame.Angles(0,t*2*side,0)*CFrame.new(1.8,0,0)
char.Velocity = char.Velocity + v2(cf.p+cf.lookVector*5.5*side-char.Position)*2
wait()
end
h.CFrame = cf
h.close:Play()
h.CanCollide = true
canmove = true
char.CFrame = char.CFrame-v2(char.Position) + v2(h.Position+cf.lookVector*side*5.5)
wait(.6)
debounce = false
elseif h.Name == "icedcream" then
script.iced:Play()
gotice = true
point = CFrame.new(Vector3.new(),v2(-vcf.lookVector))
char.CFrame = point+char.Position
UI.BT.Visible = true
UI.BT.TextTransparency, UI.BT.outline.TextTransparency = 0, .8
UI.BT.sub.TextTransparency, UI.BT.sub.outline.TextTransparency = 0, .8
out(UI.BT, "YOU GOT ICE CREAM!")
out(UI.BT.sub, h.desc.Value)
canmove = false
char.Anchored = true
h.CFrame = char.CFrame * CFrame.Angles(0,0,math.random(4)*math.pi/2) + Vector3.new(0,4)
wait(2)
health = 4
rem:FireServer("icedcream", h)
wait(1)
UI.BT.Visible = false
char.Velocity = Vector3.new()
char.Anchored = false
canmove = true
gotice = false
elseif h.Name == "notcream"then
candy = candy + 10
health = 4
h:Destroy()
elseif h:FindFirstChild'tx'then
if not ground then
char.Velocity = v2(char.Velocity, 30)
if h:FindFirstChild'stomp'then
h.stomp:Play()
end
end
elseif string.sub(h.Name, 1,3)=="TPa"then
local diff = h.Parent["TPb".. string.sub(h.Name,4,-1)].Position - char.Position
char.CFrame = char.CFrame + diff
pheight = pheight and pheight+diff.Y
camcf = camcf + v2(diff)
mps = mps + diff
elseif h.Name=="lava" and not rg and not skate then
server_damage()
elseif h.Name == "breakable" and (gtick-attacktick<.2 or pound) then
h.Name = "not breakable"
h.CanCollide = false
h.Sound:Play()
h.Transparency = 1
for _,v in pairs(h:GetChildren())do if v.Name=="Decal"then v:Destroy() end end
h.pcl:Emit(20)
game.Debris:AddItem(h, 2)
end
end
end
characterModel.legA.CanTouch = true
char.Touched:Connect(touched)
spawn(function()
while wait() do
if not paused or enablePhysWhilePaused then
char.VectorForce.Force = bforce
char.Velocity = char.Velocity*bdamp
if hold then
hold.Velocity = hold.Velocity * .2
end
end
if paused and snapshotcam.Parent == script then
snapshotcam.Velocity = snapshotcam.Velocity*.9
snapshotcam.force.Force = Vector3.new(0,snapshotcam:GetMass()*workspace.Gravity)+dir*700
local kpg = (snapshotcam.Position - char.Position)
if kpg.Magnitude > 65 - 10 then
snapshotcam.force.Force = snapshotcam.force.Force - (kpg.Unit*(kpg.Magnitude-65+10)*60)
end
if kpg.Magnitude > 65 then
snapshotcam.CFrame = CFrame.new(char.Position + kpg.Unit*65)
end
end
end
end)
workspace.Gravity = 80
game:GetService("RunService").Stepped:Connect(function(tim,dt)
torso.CanCollide = false
root.CanCollide = false
end)
--
vis.head.Beam.Attachment0 = vis.dot.Attachment
vis.head.Beam.Attachment1 = vis.head.Attachment
--
while true do
frame = frame+1
dt = game:GetService("RunService").RenderStepped:wait()
local gtick = tick()
--local _, Y = char.CFrame:ToOrientation()
--local charCF = CFrame.new(char.Position) * CFrame.fromOrientation(0, Y, 0)
--char.CFrame = charCF
mobile = uis.TouchEnabled
UI.mobile.Visible = mobile
if mobile then console = true end
mps = char.CFrame-Vector3.new(0,1)
zoom = math.max(.5, math.min(5, zoom - (z1-z2)/10))
local stk = math.abs(dUP-dDN)+math.abs(dRT-dLF)>0 and Vector3.new(dRT-dLF,dUP-dDN,0).Unit or st2
yim = (stk.Magnitude<.2 and ms2/25 or Vector3.new(stk.X*1.3,stk.Y)*dt*2.5) * (gotice and 0 or 1)
if not gotice and ipCam then
if ipCam.UserInputState == Enum.UserInputState.Change then
yim = Vector2.new(ipCam.Delta.X/200,-ipCam.Delta.Y/200)
elseif ipCam.UserInputState == Enum.UserInputState.End then
ipCam = nil
end
end
local freecam
if paused and not UI.pause.Visible then
dir = Vector3.new(st1.X, 0, -st1.Y)*fastmode
if math.abs(a-d)+math.abs(w-s)>0 then dir, console = Vector3.new(d-a,0,s-w).Unit*fastmode, false end
if dir.magnitude > deadzone then
local ang = v2(vcf.lookVector).Unit
dir = (CFrame.new(Vector3.new(),-dir)*CFrame.Angles(0,math.atan2(ang.X,ang.Z),0)).lookVector
* dir.magnitude
end
dir = dir + Vector3.new(0,tojump - todive,0)
if dir.Magnitude>1 then dir = dir.Unit end
freecam = mps-mps.p + snapshotcam.Position - Vector3.new(0,2)
end
local bs = (tick()-attacktick)<.2 and 2.5 or 1
local touch=workspace:FindPartsInRegion3WithIgnoreList(Region3.new(mps.p-Vector3.new(1,1,1)*bs, mps.p+Vector3.new(1,2,1)*bs),{
char,
characterModel,
button
})
local inwatr
for _,v in pairs(touch)do
spawn(function()touched(v, true)end)
if v.Name == "Light" then
vis.dot.Material = "Neon"
vis.dot.L1.Enabled = true
vis.dot.L2.Enabled = true
elseif v.Name == "water" and mps.Y<v.Position.Y+v.Size.Y/2 then
inwatr = v
elseif v:FindFirstChild'tx' and not talkto and not paused and not gotice then
char.Velocity = char.Velocity + v2(char.Position-v.Position)
elseif v.Name == "silent"then
songplay = "nothing"
elseif v.Name == "wind" and not talkto and not paused and not gotice then
char.Velocity = char.Velocity + v.force.Value*dt*150
end
end
touchcam = nil
if not gotice and ipSt1 then
if ipSt1.UserInputState == Enum.UserInputState.Change or ipSt1.UserInputState == Enum.UserInputState.Begin then
mobst(ipSt1.Position)
elseif ipSt1.UserInputState == Enum.UserInputState.End then
mobst(false)
end
end
vis.dot.Anchored = true
vis.dot.Material = "SmoothPlastic"
vis.dot.L1.Enabled = false
vis.dot.L2.Enabled = false
songplay =
(gotice or trdo==0 or anicam) and "nothing"
or flying and "bgmA"
or swimming and "bgmW" or "bgm"
if infwater then
inwatr = not inwatr and workspace or nil
end
if not swimming and inwatr then
swimming = true
watertick = gtick
sliding, pound, longjump, wallrun, ledgegrab, flying, skate, rolling = false,false,false,false,false,false,false,false
elseif swimming and not inwatr then
swimming = false
watertick = gtick
sliding = true
if char.Velocity.Y > 0 then
char.Velocity = v2(char.Velocity, char.Velocity.Y*1.5)
end
end
if not touchcam and not talkto and not UI.pause.Visible then
campitch = math.max(-1.5,math.min(1.5, campitch + yim.Y))
if snapcam>0 then
yim = Vector3.new(camcf.lookVector:Dot(snapto)/5, yim.Y)
if math.abs(camcf.lookVector:Dot(snapto))<.01 then snapcam = 0 end
end
if yim.Magnitude>.0001 or stillcam or paused or firstperson then
camcf =
(camcf-camcf.p+(freecam or mps).p+ Vector3.new(0,2))
*CFrame.Angles(0,-yim.X,0)
*CFrame.new(0,0,zoom*10)
else
camcf = CFrame.new(v2(camcf.p), v2((freecam or mps).p))
* CFrame.new(0,0,-(v2(camcf.p)-v2((freecam or mps).p)).magnitude+10*zoom)
+ Vector3.new(0,(freecam or mps).Y+2)
end
if yim.Magnitude>.2 or stillcam or paused or firstperson then
else
if flying then
campitch = campitch + (flypitch-.3 -campitch)*dt
elseif swimming then
campitch = campitch + (botand+1 -campitch)*dt
elseif gtick-watertick<3 then
campitch = campitch + (-.4 -campitch)*dt
end
end
elseif talkto then
firstperson = false
local p1, p2 = mps.p, talkto.Position
local c = CFrame.new(v2(p1), v2(p2))
campitch = campitch + ( -campitch)*dt*8
p1 = p1+c.lookVector-c.rightVector*8*talktn
p2 = p2-c.lookVector*1+c.upVector*2
camcf = camcf:Lerp(CFrame.new(p1, p2+Vector3.new(0,-p2.Y+p1.Y)) , dt*5)
textbox.Parent = script
textbox.SurfaceGui.spin.Visible = not talking
textbox.SurfaceGui.spin.Rotation = (gtick-btntick)*80
for x,v in pairs(textbox.SurfaceGui.tbt:GetChildren())do
if v:FindFirstChild("beebo")then
if math.random(200)==1 then
v.Position = UDim2.new(0,v.pos.Value.X+math.random(-1,1),0,v.pos.Value.Y+math.random(-3,3))
else
v.Position = UDim2.new(0,v.pos.Value.X,0,v.pos.Value.Y)
end
elseif v:FindFirstChild("effect")then
v.Position = UDim2.new(0,v.pos.Value.X,0,v.pos.Value.Y+math.sin(x/2-gtick*10)*4)
v.Rotation = math.cos(x/2-gtick*10)*10
v.effect.var.Value = v.effect.var.Value+4
if v.effect.var.Value>255 then v.effect.var.Value = 0 end
v.TextColor3 = Color3.fromHSV(v.effect.var.Value/255,1,1)
elseif v:FindFirstChild("shake")then
v.Position = UDim2.new(0,v.pos.Value.X+math.random(-2,2),0,v.pos.Value.Y+math.random(-2,2))
v.Rotation = math.random(-6,6)
end
end
end
if not talkto then
textbox.Parent = rf
end
if not lockcam and not UI.pause.Visible then
vcf = camcf*CFrame.new(0,0,-zoom*10)*CFrame.Angles(campitch,0,0)*CFrame.new(0,0,zoom*10)
elseif lockcam and anicam then
vcf = vcf:Lerp(anicam, dt*1)
else
firstperson = false
pzom = 0
end
local c1,c2,c3 = cast(Ray.new(mps.p+Vector3.new(0,2), -vcf.lookVector*zoom*10-vcf.lookVector))
if lockcam or talkto then c1, pzom, firstperson = nil, 0, false end--unsure if correct
if c1 then
if math.abs(c3.Y) < .3 then camtand = camtand + v2(c3).Unit*dt*zoom/4 end
pzom = (vcf.p-vcf.lookVector-c2).Magnitude
else
pzom = math.max(0, pzom- dt*14)
end
if firstperson then
pzom = zoom*10
end
if not lockcam and not paused then vcf = vcf * CFrame.new(0,0,-pzom)
elseif paused and not UI.pause.Visible then vcf = vcf * CFrame.new(0,0,-zoom*10) end
camtand = camtand-camtand*dt*8
camcf = camcf+camtand*dt*800
if gotice then
vcf = mps * CFrame.new(0,3,-20)*CFrame.Angles(0,math.pi,0)
end
tpc = vcf+vcf.lookVector*rendist
local fov = workspace.CurrentCamera.FieldOfView
workspace.CurrentCamera.FieldOfView = fov + ((flying and 70+flyspeed*3 or 70) -fov)*dt
if not paused or enablePhysWhilePaused then
dir = Vector3.new(st1.X, 0, -st1.Y)
if math.abs(a-d)+math.abs(w-s)>0 then dir, console = Vector3.new(d-a,0,s-w).Unit, false end
if dir.magnitude > deadzone then
local ang = v2(vcf.lookVector).Unit
if ang == ang then
dir = (CFrame.new(Vector3.new(),-dir)*CFrame.Angles(0,math.atan2(ang.X,ang.Z),0)).lookVector
* dir.magnitude
end
end
if talkto then
dir = Vector3.new()
point = point:Lerp(CFrame.new(v2(char.Position), v2(talkto.Position))-v2(char.Position), dt*4)
end
if not canmove then dir = Vector3.new()end
if walkto then dir = walkto end
ropeh = 0
if onrope and onrope:FindFirstChild("PartA") then
local ray = Ray.new(onrope.PartA.Position, (onrope.PartB.Position-onrope.PartA.Position).Unit)
local div = math.max(0, 1-(onrope.PartA.Position-mps.p).Magnitude/10)
div = math.min(1, div + math.max(0, 1-(onrope.PartB.Position-mps.p).Magnitude/10))
local tense = (onrope:FindFirstChild("tense") and 0 or 1)*(skate and 0 or 1)
ropeh = math.sin((gtick-ropetick-.2)*8)*5*(1-div) *math.max(0,1-(gtick-ropetick)/2)*tense*(onrope:FindFirstChild("tense") and 0 or 1)
local offset = (onrope.PartB.Position-onrope.PartA.Position).Magnitude/10* (1-div)*tense
onrope.Mid.CFrame = CFrame.new(ray:ClosestPoint(mps.p+Vector3.new(0,offset-1.7-ropeh)))+Vector3.new(0,-offset+ropeh)
local diff = (onrope.Mid.Position-(mps.p-Vector3.new(0,1.7)))
char.CFrame = char.CFrame + diff
if not lockcam then vcf = vcf+diff end
mps = mps+diff
dir = ray.Direction.Unit* dir:Dot(ray.Direction.Unit)
dir = Vector3.new(dir.X,0,dir.Z)
if skate then
dir = v2(ray.Direction.Unit*math.sign(point.lookVector:Dot(ray.Direction)))
point = CFrame.new(Vector3.new(),dir)
end
if CFrame.new(onrope.PartB.Position, onrope.PartA.Position).lookVector
:Dot(CFrame.new(onrope.PartB.Position, mps.p).lookVector) < 0 then
char.CFrame = char.CFrame-char.Position + onrope.PartB.Position+Vector3.new(0,2.2)
end
elseif swip and not walkto then
point = swip
dir = Vector3.new()
elseif ground and not swimming and not skate and not debounce and
dir.Magnitude > deadzone and dir:Dot(char.CFrame.lookVector)<=-.5 and v2(char.Velocity).Magnitude>10 and walklerp>.7 then
swip = char.CFrame-char.Position
delay(.3, function()
if swip then
debounce = false
swip = false
wait(0.2)
debounce =false
end
end)
end
local f1, f2, f3 = nil,Vector3.new(),Vector3.new()
if not jumping then
local dn = -Vector3.new(0,ground and 2.5+v2(char.Velocity).Magnitude/30 or 2.5)
f1, f2, f3 = cast(Ray.new(mps.p, dn))
if f1 and f1.Name~="Slide"and f1.Parent.Name~="moving" and f1.Name~="soap" and f1.Name~="bounds" then
delay(2,function()
if tick()-safetick < .02 then
safecf = char.CFrame
end
end)
safetick = tick()
end
if not f1 then f1, f2, f3 = cast(Ray.new(mps.p+mps.lookVector*.9, dn))end
if not f1 then f1, f2, f3 = cast(Ray.new(mps.p-mps.lookVector*.9, dn))end
if not f1 then f1, f2, f3 = cast(Ray.new(mps.p+mps.rightVector*.9, dn))end
if not f1 then f1, f2, f3 = cast(Ray.new(mps.p-mps.rightVector*.9, dn))end
if (onrope or pole or swimming)or f3.Y < .3 then
elseif f1 and not ground then pheight = f2.Y+(mps.Y - f2.Y-2) end
if not sitting and pheight and f1 and f3.Y>=.3 and f1.Parent.Name~="moving" then
local h = f2.Y - pheight
char.CFrame = char.CFrame + Vector3.new(0,h,0)
mps=mps + Vector3.new(0,h,0)
if not lockcam then vcf=vcf+Vector3.new(0,h,0)
workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame+ Vector3.new(0,h,0)
end
end
end
if (onrope or pole or swimming)or f3.Y < .6 or f1.Name == "door" then
if ground and sliding and botand+1.3>0 and not rolling then
char.Velocity = v2(char.Velocity, v2(char.Velocity).Magnitude/2)
end
ground, f1 = nil
elseif not ground and f1 and not jumping then
char.Velocity = v2(char.Velocity,0)
psound(vis.torso, "land")
particle("cloud", pound and 8 or 3, true)
ground = f1
walklerp = 0
spawn(function()touched(f1)end)
rolling = false
pound = false
flying = false
djump = false
wallrun, ledgegrab = nil
timeland = longjump and gtick or gtick-.2
if crouch then
crouchtick = gtick
if sliding and ground.Name~="Slide"then
sliding = false
end
end
elseif ground and f1 and not jumping then
ground = f1
else ground, f1 = nil
end
if ground and not jumping then
longjump = false
attack = false
pheight = f2.Y
if gtick-timeland > .5 then
skatestat[5]=skatestat[5]+skatestat[2]*skatestat[3]
skatestat = {nil, 0,0,false,skatestat[5]}
end
else
pheight = nil
end
if not f1 then swip = false end
if f1 then
if (f1:IsA("Seat") or f1:IsA("VehicleSeat")) and not sitting and tick() - sitdebounce > 3 then
canmove = false
rem:FireServer("sit", f1)
end
end
if f1 and f1.Name == "Slide" and not skate then
sliding = true
djump = true
elseif f1 and f1.Name == "lava" then
server_damage()
cvt(Vector3.new(0,40))
elseif f1 and f1.Name == "soap" then
if not f1.pe.Enabled and f1.pe.Archivable then
spawn(function()
f1.pe.Archivable = false
f1.pe:Emit(10)
local t = tick()
local cf = f1.CFrame
while tick()-t < 1 do
local t = (tick()-t)
f1.Size = Vector3.new(11,5-t*5,16)
f1.CFrame = cf * CFrame.new(0,t*2.5,0)
wait()
end
f1.Size = Vector3.new(0, 0, 0)
f1.CFrame = CFrame.new()
wait(3)
repeat
wait(.2)
until (mps.p-cf.p).Magnitude > 10--equals
f1.Size = Vector3.new(11,5,16)
f1.CFrame = cf
f1.pe.Archivable = true
end)
end
end
if not ground and not pole then
local w1, w2, w3 = cast(Ray.new(mps.p, point.lookVector*3))
local side, pass = point.lookVector*3, nil
if not w1 and not touchcam then w1, w2, w3 = cast(Ray.new(mps.p, point.rightVector*2))side = point.rightVector*2 end
if not w1 and not touchcam then w1, w2, w3 = cast(Ray.new(mps.p, -point.rightVector*2))side = -point.rightVector*2 end
local canwall =w1 and (w1.Name~="nowall"and w1.Name~="pole"and w1.Name~="door"and w1.Name~="breakable"and not w1:FindFirstChild"nowall")
if not ground and canwall and not onrope and not swimming and not debounce and math.abs(w3.Y)<.2 and point.lookVector:Dot(w3)<.3 then
if not wallrun and v2(char.Velocity):Dot(point.lookVector)>0 and dir.Magnitude>.5 then
local force = CFrame.new(Vector3.new(),w3).rightVector*-w3:Dot(point.rightVector)
+ point.upVector*-w3:Dot(point.lookVector)
char.Velocity = v2(char.Velocity, 10+force.Unit.Y*30)
end
longjump, pound, flying, attack, rolling = false, false, false, false, false
pass=true
if not wallrun then
skatestat = {"Wallride", skatestat[2]+100, skatestat[3]+1, true, skatestat[5]}
end
wallrun = w2
wallnorm = w3
local init = cast(Ray.new(mps.p+Vector3.new(0,2), side))
local b1, b2, b3 = cast(Ray.new(mps.p+Vector3.new(0,2)+side, Vector3.new(0,-2)))
if not init and b1 and b3.Y>.8 and not debounce and not skate and (vis.torso.Position.Y - vis.trs.shadow.Position.Y > 5) then
if not ledgegrab then
char.Velocity = Vector3.new()
ledgegrab = w1
ledgepoint = Vector3.new(w2.X, b2.Y-1.4, w2.Z)+w3
end
else
ledgegrab = nil
end
end
if not pass and wallrun then
wallrun = nil
ledgegrab = nil
end
end
if jumping then f1 = nil end
cvu = char.Velocity.Magnitude>.2 and char.Velocity.Unit or Vector3.new()
if sliding then
if v2(char.Velocity).Magnitude>.2 then
if point.lookVector:Dot(char.Velocity.Unit) < 0 then
point = point:Lerp(CFrame.new(Vector3.new(), dir*2-v2(char.Velocity)), dt*4)
else
point = point:Lerp(CFrame.new(Vector3.new(), dir*2+v2(char.Velocity)), dt*4)
end
end
elseif skate then
if dir.Magnitude>.2 and ground then
point = point:Lerp(CFrame.new(Vector3.new(), dir), dt*3)
end
elseif swimming then
if dir.Magnitude>.2 then
point = point:Lerp(CFrame.new(Vector3.new(), dir), dt*3)
end
attack = false
elseif pole then
elseif ledgegrab then
point = CFrame.new(Vector3.new(), -wallnorm)
elseif crouch and dir.Magnitude > .2 and (ground and tick() - timeland > .2 or onrope)then
point = point:Lerp(CFrame.new(Vector3.new(), dir), dt*5)
elseif dir.Magnitude > .2 and (ground and tick() - timeland >.2 or onrope)then
point = CFrame.new(Vector3.new(), dir)
dancing = false
end
char.BodyGyro.CFrame = point*CFrame.Angles(0,point.lookVector:Dot(char.CFrame.lookVector)<-.96 and fallvr or 0,0)
if v2(char.Velocity).Magnitude>.3 then sticko = v2(cvu):Dot(f3)*1.2 end
rotand = rotand +((
onrope and math.sin(gtick)/4
or wallrun and math.max(-1.5,math.min(1.5,-wallnorm:Dot(point.rightVector)*6))
or ground and math.max(-.8, math.min(.8, mps.lookVector:Dot(point.rightVector)*dir.Magnitude*1.5))-f3:Dot(point.rightVector)
or 0
)- rotand) * dt*6
botand = botand + ((
(ledgegrab or onrope) and 0
or (pole or attack) and 0
or skate and math.max(-.8,math.min(.8,ground and -point.lookVector:Dot(f3) or char.Velocity.Y/40))
or swimming and -1.4+math.max(-.8,math.min(.8,char.Velocity.Y/20))
or flying and flypitch-1.4
or wallrun and (1.5-math.abs(rotand))*math.max(0, cvu:Dot(Vector3.new(0,1)) )
or sliding and -1.3+math.max(-.8,math.min(.8,ground and -point.lookVector:Dot(f3) or char.Velocity.Y/40))
or ground and -dir.Magnitude/5/fastmode- f3:Dot(point.lookVector) - (crouch and 1.2 or 0)
or rolling and 0
or math.max(-1, math.min(1,char.Velocity.Y/40))
)-botand)*dt*(longjump and not pound and 3 or 6)
if math.floor(botand/(math.pi*2)+.5)~= flipo and not gotice then
flipo = math.floor(botand/(math.pi*2)+.5)
psound(vis.torso, "flip")
end
if attack and not gotice then
potand = potand - dt*(20+todive*10)
if potand<0 then potand = potand+math.pi*2 psound(vis.torso, "spin") end
else
potand = potand +((
flying and math.max(-1, math.min(1, -mps.lookVector:Dot(point.rightVector)*dir.Magnitude*8))
or 0
)-potand)*dt*((skate or flying) and 3 or 8)
end
sliderp = sliderp + (((sliding or swimming) and 1 or 0) - sliderp)*dt*10
wallerp = wallerp + ((wallrun and 1 or 0) - wallerp)*dt*10
fallerp = fallerp + (((ground or onrope or wallrun or sliding or pole or swimming or skate) and 0 or fallvr) - fallerp)*dt*10
longerp = longerp + ((longjump and 1 or 0) - longerp)*dt*10
roperp = roperp + ((onrope and 1 or 0)- roperp)*dt*10
holderp = holderp + ((hold and 1 or 0)- holderp)*dt*10
croucherp = croucherp + ((crouch and ground and not sliding and 1 or 0)- croucherp)*dt*10
lederp = lederp + ((ledgegrab and 1 or 0) - lederp)*dt*10
polerp = polerp + ((pole and 1 or 0) - polerp)*dt*10
swimerp = swimerp + ((swimming and 1 or 0) - swimerp)*dt*10
skaterp = skaterp + ((skate and 1 or 0) - skaterp)*dt*10
flamerp = flamerp + ((flameon and 1 or 0) - flamerp)*dt*10
rollerp = rollerp + ((rolling and 1 or 0) - rollerp)*dt*10
boarderp = boarderp + (Vector3.new(0,0,-f3:Dot(point.rightVector)) - boarderp)*dt*6
aterp = aterp + ((attack and 1 or 0) - aterp)*dt*10
dancerp = dancerp + ((dancing and 1 or 0) - dancerp)*dt*10
swiperp = swiperp + ((swip and 1 or 0) - swiperp)*dt*10
siterp = siterp + ((sitting and 1 or 0) - siterp)*dt*10
local force = dir*600
local damp = Vector3.new(.75,1,.75)
speedy = 1
if crouch and not fcrouch then--unsure about crouch
local g1 = cast(Ray.new(mps.p, Vector3.new(0,4)))
if not g1 then
crouch = false
end
end
if sliding then
force = dir*300*math.max(.3,1-math.abs(dir:Dot(point.lookVector)))*(char.Velocity.Magnitude/100)+ v2(f3)*200
damp = Vector3.new(.994,1,.994)
speedy = 0
if f3.Y>.99 and ground then
damp = Vector3.new(.97,1,.97)
if char.Velocity.Magnitude < 10 then sliding = false end
end
elseif onrope then speedy = .8
elseif pole then speedy = 1
elseif attack then speedy, damp = 0, Vector3.new(.75,jumping and 1 or .9,.75)
force = force - Vector3.new(0,jumping and 0 or todive*600)
elseif swimming then speedy = 1
elseif longjump then force, damp = dir*150, Vector3.new(.98,1,.98)
elseif wallrun and not skate then speedy = math.max(0,math.min(1,vis.torso.CFrame.lookVector:Dot(char.Velocity)/10))
elseif crouch then force, speedy = dir*300, .5 skate, dancing = false, false
elseif dancing then speedy = 1
elseif skate then speedy = 0
elseif not ground then force, damp = dir*200, Vector3.new(.9,1,.9)
end
if not hum.SeatPart and sitting then
canmove = true
elseif hum.SeatPart and sitting then
canmove = false
end
sitting = hum.SeatPart ~= nil
if sitting then
skate = false
end
char.CanCollide = not sitting
if hum.SeatPart and sitting then
botand = 0
rotand = 0
potand = 0
--char.Velocity = Vector3.zero
--char.CFrame = hum.SeatPart.CFrame * CFrame.new(0,3,0)
mps = char.CFrame
end
speedy = (wallrun and 1 or swimming and math.min(1,dir.magnitude+math.abs(tojump-todive))*1.4 or dir.Magnitude)*speedy
walklerp = walklerp + (speedy -walklerp)*dt*4
walktick = walktick + dt * speedy*(1-math.abs(fallerp))
anim(vis, plam, ((zoom*10-pzom>2 or gotice) and (characterModel:GetAttribute("tpc") or 0) or 1) )
local lt = (vis.head.CFrame-vis.head.Position):Lerp(lookat, lookerp)
vis.head.CFrame = lt*CFrame.new(0,1,0)-vis.head.dcf.Value.upVector + vis.head.Position
if hat~=0 and (zoom*10-pzom>2 or gotice) and vis.trs:FindFirstChild'hat'then
vis.trs.hat.Transparency = 0
vis.trs.hat.CFrame = vis.head.CFrame * cfro(vis.trs.hat.off.Position)
*CFrame.Angles(math.rad(vis.trs.hat.off.Orientation.X), math.rad(vis.trs.hat.off.Orientation.Y),math.rad(vis.trs.hat.off.Orientation.Z))
if vis.trs.hat:FindFirstChild("skin")then
vis.trs.hat.Mesh.TextureId = vis.torso.Mesh.TextureId
vis.trs.hat.Material = vis.torso.Material
vis.trs.hat.Reflectance = vis.torso.Reflectance
vis.trs.hat.Transparency = vis.torso.Transparency
vis.trs.hat.Color = vis.torso.Color
end
elseif vis.trs:FindFirstChild'hat'then
vis.trs.hat.Transparency = 1
end
animDot()
local tr = (not hpdeb and 0 or math.sin(gtick*40)>0 and 1 or 0) + ((zoom*10-pzom>2 or gotice) and 0 or 1)
for _,v in pairs(vis:GetChildren())do
if v.Name~="trs" and v ~= char and v ~= fdot and v:IsA("BasePart") then
v.Transparency = tr
for _, v in pairs(v:GetChildren()) do
if v:IsA("Decal") or v:IsA("Texture") then
v.Transparency = tr
end
if v:IsA("Beam") then
v.Transparency = NumberSequence.new(tr)
end
end
end
end
vis.head.skin.CFrame = vis.head.CFrame
vis.head.skin.Transparency = vis.head.Transparency
vis.head.Transparency = 1
local b1, b2, b3 = cast(Ray.new(mps.p, Vector3.new(0,-30)))
if b1 then
local p = Vector3.new(vis.torso.Position.X, b2.Y, vis.torso.Position.Z)
local s = ((b2.Y - vis.torso.Position.Y)/10 + 3)*(scale.X+scale.Z)/2
vis.trs.shadow.Size = Vector3.new(s,1,s)
vis.trs.shadow.CFrame = CFrame.new(p,p+b3)*CFrame.Angles(-math.pi/2,0,0)*CFrame.new(0,-.4,0)
else
vis.trs.shadow.CFrame = CFrame.new()
end
if not vis.torso.slide.Playing then
vis.torso.slide:Play()
end
vis.torso.slide.Volume = sliderp*(1-swimerp)*math.min(1,b2.Y-vis.torso.Position.Y+2.6)
local tr = (not hpdeb and 0 or math.sin(tick()*40)>0 and 1 or 0) + ((zoom*10-pzom>2 or gotice) and 0 or 1)
if math.sign(math.sin(walktick*14))~=walkfx and (not djump and not swimming or wallrun or pole) then
walkfx=math.sign(math.sin(walktick*14))
if pole then
psound(vis.torso,"pole")
else
psound(vis.torso,"s".. (ground and ground:FindFirstChild'step'and'b'or ground and ground.Name=="step"and'b'or'a') .. math.random(5))
end
end
if talkto and talking then
if textbox.SurfaceGui.bg.Image == "rbxassetid://1442127057" then
if math.sin(gtick*50)>.5 then
faceid = 2
else
faceid = 0
end
else
talkto.Size = talkto.sz.Value+Vector3.new(math.sin(gtick*20),math.cos(gtick*20),math.sin(gtick*20))/8
talkto.CFrame = talkto.cf.Value+Vector3.new(0,math.cos(gtick*20))/16
end
elseif talkto then
talkto.Size = talkto.sz.Value
talkto.CFrame = talkto.cf.Value
end
vis.trs.jetpack.TrailA.Enabled, vis.trs.jetpack.TrailB.Enabled = false, false
if swimming then
bforce = dir*120
+Vector3.new(0,workspace.Gravity*char:GetMass()+(tojump-todive)*120)
+(inwatr and inwatr:FindFirstChild'current'and inwatr.current.Value*10 or Vector3.new())
bdamp = Vector3.new(1,1,1)*.9
if trsing and tojump-todive ~= 0 and not earlystart then
earlystart = true
end
elseif ledgegrab then
sliding = false
if debounce then
bforce = Vector3.new()
else
bforce = (ledgepoint-mps.p)*400
+Vector3.new(0,workspace.Gravity*char:GetMass())
bdamp = Vector3.new(1,1,1)*.1
end
elseif skate then
bforce = (f1 and point.lookVector*170 or dir*50)
+(f1 and Vector3.new(0, ((f2.Y+2) - mps.p.Y)*300 + workspace.Gravity*char:GetMass()/2)
or Vector3.new())
bdamp = f1 and Vector3.new(.9, .2, .9) or Vector3.new(.98,1,.98)
sliding, swimming = false, false
elseif flying then
local dip = flyspeed<1 and (1-flyspeed) or 0
flypitch = math.min(1,math.max(-1,flypitch-flypitch*dt/2 +dir:Dot(camcf.lookVector)/(1+dip*3)*dt*1.3 -(flyspeed<1 and dt or 0) ))
local tpot = point*CFrame.Angles(flypitch,0,0)
flyspeed = math.max(0, flyspeed-(flypitch)*dt )
bforce = tpot.lookVector*50*(flyspeed>3 and flyspeed/3+2 or flyspeed)
+Vector3.new(0,workspace.Gravity*char:GetMass())
bdamp = Vector3.new(1,1,1)*.95
point = point*CFrame.Angles(0,-dir:Dot(camcf.rightVector)*dt*3.5,0)
vis.trs.jetpack.gastB.Position = Vector3.new(-.2*math.sin(-potand)-1.7, -0.468, 0.119)
vis.trs.jetpack.gastC.Position = Vector3.new(.2*math.sin(potand)+1.7, -0.468, 0.119)
vis.trs.jetpack.TrailA.Enabled, vis.trs.jetpack.TrailB.Enabled = flyspeed>2.7,flyspeed>2.7
elseif pole then
local vy = char.Position.Y>pole.Position.Y+pole.Size.Y/2 and math.min(0,dir:Dot(camcf.lookVector)) or
char.Position.Y<pole.Position.Y-pole.Size.Y/2+2 and math.max(0,dir:Dot(camcf.lookVector))
or dir:Dot(camcf.lookVector)
rolling = false
if math.abs(vy)<.4 then vy = 0 end
bforce = v2(pole.Position-mps.p-point.lookVector*(pole.Size.X/2+1))*500
+Vector3.new(0,workspace.Gravity*char:GetMass()+vy*600)
bdamp = Vector3.new(1,1,1)*.1
if dir.Magnitude>deadzone then
point = point*CFrame.Angles(0,math.abs(vy)<.4 and dir:Dot(camcf.rightVector)*dt*4/(pole.Size.X^.5) or 0,0)
elseif pole.Size.X < 8 then
local sector = math.floor(4*math.atan2(-point.lookVector.X, -point.lookVector.Z)/math.pi + .5)%8
point = CFrame.Angles(0,sector*math.pi/4,0)
end
elseif wallrun then
local imp = math.abs(dir:Dot(point.lookVector))
imp = imp > .9 and 0 or 1
point = point:Lerp(CFrame.new(Vector3.new(), -wallnorm*2+dir*imp), dt*3)
if sliding then
sliding = false
end
bforce = Vector3.new(0,workspace.Gravity*char:GetMass()/2)
+point.lookVector*imp*150
-wallnorm*100
bdamp = Vector3.new(.93,.96,.93)
elseif onrope then
bforce = dir*600
+ Vector3.new(0,workspace.Gravity*char:GetMass())
bdamp = Vector3.new(1,1,1)*.1
else
bforce = force*.3*speed*scale.Y
+(f1 and Vector3.new(0, ((f2.Y+(crouch and not sliding and 1 or 2)) - mps.p.Y)*300 + workspace.Gravity*char:GetMass()/2)
or Vector3.new(0, pound and -30 or 0))
bdamp = f1 and Vector3.new(damp.X, .2, damp.Z) or damp
end
if touchcam and touchcam.Pos.Value.Y~=0 then
local inv = Vector3.new(1,1,1)-touchcam.Pos.Value
bforce = bforce
+(touchcam.Position*inv - mps.p*inv)*400
bdamp = bdamp*touchcam.Pos.Value
elseif talkto and not talkto:FindFirstChild("distant") then
bforce = bforce + v2((talkto.Position+CFrame.new(v2(talkto.Position),v2(mps.p)).lookVector*6) -mps.p)*100
bdamp = bdamp-Vector3.new(.2,0,.2)
end
if flameon then
bforce = bforce - vis.trs.flamethrower.CFrame.lookVector*Vector3.new(1,.8,1)*80
if not hasflame then flameon = false end
end
if sitting and hum.SeatPart then
bforce = Vector3.zero
bdamp = Vector3.one
char.BodyGyro.MaxTorque = Vector3.zero
char.BodyGyro.P = 0
char.BodyGyro.D = 0
else
char.BodyGyro.MaxTorque = Vector3.one*5000
char.BodyGyro.P = 3000
char.BodyGyro.D = 300
end
for i,v in pairs(particles)do
v.CFrame = v.CFrame*CFrame.Angles(v.rs.Value.X*dt,v.rs.Value.Y*dt,v.rs.Value.Z*dt) + v.speed.Value*dt
v.Mesh.Scale = v.Mesh.Scale - Vector3.new(1,1,1)*dt/10
if v.Mesh.Scale.X <= 0 then
table.remove(particles,i)
v:Destroy()
end
end
if talkto or anicam or char.Anchored and not pound then
btnadn = nil
elseif hold then
btnadn = nil
local p = (vis.armC.Position+vis.armD.Position)/2
local g = hold:FindFirstChild("rt")and CFrame.Angles(hold.rt.Value.X,hold.rt.Value.Y,hold.rt.Value.Z)or CFrame.new()
hold.CFrame = vis.head.CFrame*g
-vis.head.Position + p - (vis.armC.CFrame.upVector+vis.armD.CFrame.upVector)/2
+ vis.head.CFrame.upVector/3
else
local grabs = workspace:FindPartsInRegion3WithIgnoreList(
Region3.new(mps.p+char.CFrame.lookVector*4-Vector3.new(4,3,4),mps.p+char.CFrame.lookVector*4+Vector3.new(4,3,4))
,{char, vis, button})
local dst = 100
neargrab = nil
for _,v in pairs(grabs)do
if (v.Parent.Name=="picks" and (v.Position-mps.p).Magnitude < 5 or v:FindFirstChild'tx')
and (v.Position-mps.p).Magnitude < dst then
dst, neargrab = (v.Position-mps.p).Magnitude, v
end
end
if neargrab then
if not btnadn then btntick = gtick end
btnadn = neargrab
elseif not neargrab and btnadn then btnadn = nil
end
end
if btnadn then
local tlk = btnadn.Position
if btnadn:FindFirstChild'face'then tlk = (btnadn.CFrame*CFrame.new(btnadn.face.Position)).p end
lookat = lookat:Lerp(CFrame.new(vis.head.Position, tlk)-vis.head.Position, dt*5)
lookerp = lookerp + (math.max(0,lookat.lookVector:Dot(vis.head.dcf.Value.lookVector))-lookerp)*dt*10
if not button:GetAttribute("n") then
button:SetAttribute("n", true)
button.Parent = nil
end
button.Parent = script
button.CFrame = vcf*CFrame.Angles(-math.pi/2,math.cos((gtick-btntick)*4)/10,math.sin((gtick-btntick)*4)/10+math.pi)
-vcf.p + btnadn.Position + Vector3.new(0,btnadn.Size.Y/2+2)
button.Mesh.TextureId = console and "rbxassetid://1129630779" or "rbxassetid://1194553296"
else
if not talkto then
lookerp = lookerp -lookerp*dt*10
lookat = lookat:Lerp(vis.head.CFrame-vis.head.Position, dt*10)
else
local tlk = talkto.Position
if talkto:FindFirstChild'face'then tlk = (talkto.CFrame*CFrame.new(talkto.face.Position)).p end
lookat = lookat:Lerp(CFrame.new(vis.head.Position, tlk)-vis.head.Position, dt*5)
lookerp = lookerp + (math.max(0,lookat.lookVector:Dot(vis.head.dcf.Value.lookVector))-lookerp)*dt*10
end
button:SetAttribute("n", nil)
button.Parent = rf
end
end
if paused then
local songplay = "bgmP"
local spiny = UI.pause.s.spin
if textsel and textsel.Parent then
local spin2 = (textsel.Parent:FindFirstChild("2B"))
local abso = (textsel.Parent:FindFirstChild("abso"))
spiny.Visible = true
if abso then
spiny.posX.Value = spiny.posX.Value + ((spin2 and textsel.AbsolutePosition.X+textsel.AbsoluteSize.X/2 or .1) - spiny.posX.Value)*dt*20
spiny.pos.Value = spiny.pos.Value + (textsel.AbsolutePosition.Y+textsel.AbsoluteSize.Y/2 - spiny.pos.Value)*dt*20
spiny.Position = UDim2.new(0,spiny.posX.Value-UI.pause.s.AbsolutePosition.X-spiny.AbsoluteSize.X/2,0,spiny.pos.Value-UI.pause.s.AbsolutePosition.Y-spiny.AbsoluteSize.Y/2)
else
spiny.posX.Value = spiny.posX.Value + ((spin2 and textsel.Position.X.Scale + textsel.Size.X.Scale/2-spiny.Size.X.Scale/2 or .1) - spiny.posX.Value)*dt*20
spiny.pos.Value = spiny.pos.Value + ((textsel.Position.Y.Scale + textsel.Size.Y.Scale/2-spiny.Size.X.Scale/2) - spiny.pos.Value)*dt*20
spiny.Position = UDim2.new(spiny.posX.Value,0,spiny.pos.Value,0)
end
spiny.Rotation = (workspace.DistributedGameTime)*80
spiny.Image = not spin2 and "rbxassetid://1442126706" or "rbxassetid://1447395325"
spiny.Size = not spin2 and UDim2.new(.1,0,.1,0) or UDim2.new(.15,0,.15,0)
else
spiny.Visible = false
end
local dir = Vector3.new(st1.X, 0, -st1.Y)*fastmode
if math.abs(a-d)+math.abs(w-s)>0 then dir, console = Vector3.new(d-a,0,s-w).Unit*fastmode, false end
if textsel and pst.Magnitude < .8 and dir.Magnitude >= .8 then
local pt = math.floor(2*math.atan2(-dir.X, -dir.Z)/math.pi + .5)%4
if pt==0 and textsel.NextSelectionUp then
textsel = textsel.NextSelectionUp
elseif pt==2 and textsel.NextSelectionDown then
textsel = textsel.NextSelectionDown
elseif pt==3 and textsel.NextSelectionRight then
textsel = textsel.NextSelectionRight
elseif pt==1 and textsel.NextSelectionLeft then
textsel = textsel.NextSelectionLeft
end
end
log(textsel)
pst = dir
end
if UI.pause.bg.clothing.load.Visible then
UI.pause.bg.clothing.load.spinny.Rotation = UI.pause.bg.clothing.load.spinny.Rotation + dt*300
end
uis.MouseBehavior = MouseBehavior
if not died then
lockcam = sitting and not freecam
if sitting and not freecam then
workspace.CurrentCamera.CameraType = 'Custom'
workspace.CurrentCamera.CameraSubject = hum
textbox.CFrame = workspace.CurrentCamera.CFrame*CFrame.new(0,-3,-7)
else
workspace.CurrentCamera.CameraType = "Scriptable"
workspace.CurrentCamera.CFrame = vcf
textbox.CFrame = vcf*CFrame.new(0,-3,-7)
end
end
end]],madel)
--
local tx = Instance.new("TextLabel")
tx.Name = "tx"
tx.ZIndex = 3
tx.BorderColor3 = Color3.fromRGB(27, 42, 53)
tx.BackgroundTransparency = 1
tx.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
tx.FontSize = Enum.FontSize.Size60
tx.TextSize = 50
tx.TextColor3 = Color3.fromRGB(0, 0, 0)
tx.TextYAlignment = Enum.TextYAlignment.Top
tx.Text = "W"
tx.Font = Enum.Font.SourceSansBold
tx.TextXAlignment = Enum.TextXAlignment.Left
local pos = Instance.new("Vector3Value")
pos.Name = "pos"
pos.Parent = tx
tx.Parent = localscript
--
local obj = Decode('AAAdIQVTb3VuZCEETmFtZSEFbG9hZDEhB1NvdW5kSWQhF3JieGFzc2V0aWQ6Ly8xMTQwMTUzMzY1IQRpY2VkIRdyYnhhc3NldGlkOi8vMTE1NjgzNDkzNiEFbG9hZDIhF3JieGFzc2V0aWQ6Ly8xMTQwMTUzMTU1IQRub3RlIRdyYnhhc3NldGlkOi8vMTIzNjcwNDAw'
..'NiEFdGV4dDIhF3JieGFzc2V0aWQ6Ly8xMjI4NTQ5NTM1IQR0ZXh0IRdyYnhhc3NldGlkOi8vMTEzMTA2NzA4MyEKdW5sb2NrZG9vciEXcmJ4YXNzZXRpZDovLzEzODMzMzUyMDghBlZvbHVtZQMAAAAAAADwPyEEaGVhbCEXcmJ4YXNzZXRpZDovLzE0NDc1OTIxODMh'
..'A2dhcCEXcmJ4YXNzZXRpZDovLzEyMzg0NjU3NTUhA2VnZyEXcmJ4YXNzZXRpZDovLzEyMTE5MzgzNDIhBWNhbmR5IRdyYnhhc3NldGlkOi8vMTE0NDM1MTA1NCEGY2FuY2VsIRdyYnhhc3NldGlkOi8vMTE4ODQ1OTk5OAwBAAIAAgMEBQEAAgACBgQHAQACAAIIBAkB'
..'AAIAAgoECwEAAgACDAQNAQACAAIOBA8BAAMAAhAEERITAQACAAIUBBUBAAMAAhYEFxITAQACAAIYBBkBAAIAAhoEGwEAAwACHAQdEhMA')
for _,obj in pairs(obj) do
obj.Parent = localscript
end
--
--
print("R to toggle jetpack")
print('T to toggle skateboard')
print('Y to toggle flamethrower')
print('C to toggle follow cam (default: enabled)')
VectorForce.ApplyAtCenterOfMass = true
char.Transparency = 1
local ls = localscript
local cloud = Instance.new("Part")
cloud.Name = "cloud"
cloud.Anchored = true
cloud.CanCollide = false
cloud.Color = Color3.fromRGB(255, 255, 255)
cloud.Size = Vector3.new(1, 1, 1)
cloud.CFrame = CFrame.new(3.3000030517578125, 9.384933471679688, 0.8745574355125427)
local Mesh = Instance.new("SpecialMesh")
Mesh.Scale = Vector3.new(0.05000000074505806, 0.05000000074505806, 0.05000000074505806)
Mesh.MeshId = "rbxassetid://1103535082"
Mesh.MeshType = Enum.MeshType.FileMesh
Mesh.Parent = cloud
local speed = Instance.new("Vector3Value")
speed.Name = "speed"
speed.Parent = cloud
local rs = Instance.new("Vector3Value")
rs.Name = "rs"
rs.Parent = cloud
cloud.Parent = madel
local rem = Instance.new("RemoteEvent")
rem.Parent = script
local shadow = trs1.shadow
local dancing = false
function died(s)
madel:SetAttribute("health", 0)
OW = true
cloud:Destroy()
dmg:Play()
g.CanCollide = false
g2.CanCollide = false
dot.Anchored = false
vdamage(health)
ragdoll(s or char.Velocity)
rem:FireClient(owner, "died")
h.Health = 0
char:Destroy()
localscript:Destroy()
end
rem.OnServerEvent:Connect(function(plr,l,s)
if plr ~= owner or OW then return end
if l == "toskin" then
toskin(s, madel)
return
end
if l == "loadhat" then
local hat = s
if trs1:FindFirstChild("hat") then
if trs1.hat.id.Value == hat then
return
end
trs1.hat:Destroy()
end
local h = rf.hats["hat"..hat]:Clone()
h.Parent = trs1
h.Name = "hat"
updateHat()
return
end
if l == "change" then
setitem(s)
return
end
if l == "icedcream" and s:IsDescendantOf(workspace) and s.Name == "icedcream" then
health = 4
updatehealth()
return
end
if l == "battery" and s:IsDescendantOf(workspace) and s.Name == "battery" then
health = math.clamp(health+1,0,4)
updatehealth()
return
end
if l == "damage" then
damage()
return
end
if l == "sit" then
if s and (s:IsA("Seat") or s:IsA("VehicleSeat")) then
s:Sit(h)
end
return
end
if l == "died" then
died()
return
end
s = s or Vector3.new(1,1,1)
shadow.Size = Vector3.new(math.clamp(s.X,0,10),1,math.clamp(s.Z,0,10))
dot.Anchored = not OW
local parts = {}
local cframes = {}
for i, v in l.c do
local x, y, z = buffer.readf32(v, 0), buffer.readf32(v, 4), buffer.readf32(v, 8)
local oX, oY, oZ = buffer.readi16(v, 12), buffer.readi16(v, 14), buffer.readi16(v, 16)
cframes[i] = CFrame.new(x, y, z) * CFrame.fromOrientation(
oX / 100,
oY / 100,
oZ / 100
)
end
for i, v in l.p do
local p = v
if type(p) == 'string' and madel:FindFirstChild(p, true) then
p = madel:FindFirstChild(p, true)
end
if p and p:IsA("BasePart") then
--p.Anchored = true
end
if not p then
cframes[i] = nil
else
parts[i] = p
end
end
workspace:BulkMoveTo(parts, cframes, Enum.BulkMoveMode.FireCFrameChanged)
dancing = l.d or l.fid == 2
trs1.flamethrower.Transparency = not l.hfl and 1 or 0
trs1.jetpack.Transparency = not l.hf and 1 or 0
trs1.jetpack.booster.Transparency = not l.hf and 1 or 0
trs1.board.Transparency = not l.hb and 1 or 0
trs1.board.w1.Transparency = not l.hb and 1 or 0
trs1.board.w2.Transparency = not l.hb and 1 or 0
end)
local value = Instance.new("ObjectValue")
value.Value = rem
value.Name = "RemoteEvent"
value.Parent = ls
task.delay(1,function()
h.PlatformStand =true
end)
local blink = 10
local t = tick()
local smiley = false
local lhealth = h.MaxHealth
local damageThreshold = 25
local startDamage = 5
h.HealthChanged:Connect(function(hp)
if OW then
return
end
if hp - lhealth < startDamage and not OW then
local dmg = math.clamp(math.round((hp - lhealth) / damageThreshold),1, 4)
lhealth = hp
damage(math.abs(dmg))
end
if not OW then
updatehealth()
end
end)
game:GetService("RunService").Heartbeat:Connect(function()
char.CanCollide = not h.Sit
if h and not h.SeatPart then
h.PlatformStand = true
end
if tick()-t > 1 / 15 then
t = tick()
if char:CanSetNetworkOwnership() then
char:SetNetworkOwner(owner)
end
if h.SeatPart and h.SeatPart:CanSetNetworkOwnership() then
h.SeatPart:SetNetworkOwner(owner)
end
end
if not OW and madel:IsDescendantOf(workspace) then
trs1.pack.Transparency = health>=4 and tpc or 1
trs1.bt4.Transparency = health>=4 and tpc or 1
trs1.bt3.Transparency = health>=3 and tpc or 1
trs1.bt2.Transparency = health>=2 and tpc or 1
trs1.bt1.Transparency = health>=1 and tpc or 1
end
end)
Instance.new("Animator",h)
while true do
task.wait(1 / 16)
if OW then
continue
end
blink -= 1
if blink < 0 then
blink = 20 + (math.random(4) * 10)
end
eyes.Texture = faceDir[chosenTexture].eyes.neutral
if blink == 2 or blink == 0 then
eyes.Texture = faceDir[chosenTexture].eyes.blink1
elseif blink == 1 then
eyes.Texture = faceDir[chosenTexture].eyes.blink2
end
mouth.Texture = faceDir[chosenTexture].mouth[dancing and "dancing" or smiley and "happy" or "neutral"]
if tick() - dmgtick < 2 then
eyes.Texture = faceDir[chosenTexture].eyes.ouch
mouth.Texture = faceDir[chosenTexture].mouth.sad
end
end