local function p(p,d)local T=type(p)assert(T=="\116\097\098\108\101","\101\120\112\101\099\116\101\100 \097 \116\097\098\108\101 \102\111\114 \102\105\114\115\116 \097\114\103\117\109\101\110\116\044 \103\111\116 "..T)d=d or 1 local J=type(d)assert(J=="\110\117\109\098\101\114"and d%1==0,"\101\120\112\101\099\116\101\100 \097\110 \105\110\116\101\103\101\114 \102\111\114 \115\101\099\111\110\100 \097\114\103\117\109\101\110\116\044 \103\111\116 "..J)local C={}for T=1+d,#p,1 do C[T-d]=p[T]end return C end return p

local function shift(list, shifts)
	local listType = type(list)
	assert(listType == "table", "expected a table for first argument, got " .. listType)

	shifts = shifts or 1
	local shiftsType = type(shifts)
	assert(shiftsType == "number" and shifts % 1 == 0, "expected an integer for second argument, got " .. shiftsType)
	
	local new = {}

	for i = 1 + shifts, #list do
		new[i - shifts] = list[i]
	end

	return new
end

return shift