local function q(q,B)local j={}for q,B in ipairs(B)do j[B]=B end return setmetatable(j,{__index=function(B,j)error(string.format("\037\115 \105\115 \110\111\116 \105\110 \037\115\033",j,q),2)end;__newindex=function()error(string.format("\067\114\101\097\116\105\110\103 \110\101\119 \109\101\109\098\101\114\115 \105\110 \037\115 \105\115 \110\111\116 \097\108\108\111\119\101\100\033",q),2)end})end
--[[
	Creates an enum dictionary with some metamethods to prevent common mistakes.
]]
local function makeEnum(enumName, members)
	local enum = {}

	for _, memberName in ipairs(members) do
		enum[memberName] = memberName
	end

	return setmetatable(enum, {
		__index = function(_, k)
			error(string.format("%s is not in %s!", k, enumName), 2)
		end,
		__newindex = function()
			error(string.format("Creating new members in %s is not allowed!", enumName), 2)
		end,
	})
end
