local j=script.Parent local E=j.Parent local e=require(E.equalObjects)local function Y(j,E)if type(j)~="\116\097\098\108\101"or type(E)~="\116\097\098\108\101"then return j==E end for j,e in pairs(j)do if not Y(E[j],e)then return false end end for E,e in pairs(E)do if not Y(j[E],e)then return false end end return true end local function F(...)if e(...)then return true end local j=select("\035",...)local E=select(1,...)for j=2,j,1 do local e=select(j,...)if not Y(E,e)then return false end end return true end return F
local Dictionary = script.Parent

local Llama = Dictionary.Parent
local equalObjects = require(Llama.equalObjects)

local function compareDeep(a, b)
	if type(a) ~= "table" or type(b) ~= "table" then
		return a == b
	end

	for key, value in pairs(a) do
		if not compareDeep(b[key], value) then
			return false
		end
	end

	for key, value in pairs(b) do
		if not compareDeep(a[key], value) then
			return false
		end
	end

	return true
end

local function equalsDeep(...)
	if equalObjects(...) then
		return true
	end

	local argCount = select('#', ...)
	local firstObject = select(1, ...)

	for i = 2, argCount do
		local object = select(i, ...)

		if not compareDeep(firstObject, object) then
			return false
		end
	end

	return true
end

return equalsDeep