local decl = {}

decl["n1"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "a"}
		data.forms["nom_sg_def"] = {args[1] .. "að"}
		
		data.forms["acc_sg"] = {args[1] .. "a"}
		data.forms["acc_sg_def"] = {args[1] .. "að"}
		
		data.forms["dat_sg"] = {args[1] .. "a"}
		data.forms["dat_sg_def"] = {args[1] .. "anum"}
		
		data.forms["gen_sg"] = {args[1] .. "a"}
		data.forms["gen_sg_def"] = {args[1] .. "ans"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "u", args[1] .. "ur"}
		data.forms["nom_pl_def"] = {args[1] .. "uni"}
		
		data.forms["acc_pl"] = {args[1] .. "u", args[1] .. "ur"}
		data.forms["acc_pl_def"] = {args[1] .. "uni"}
		
		data.forms["dat_pl"] = {args[1] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. "na"}
		data.forms["gen_pl_def"] = {args[1] .. "nanna"}
	end
}
setmetatable(decl["n1"], {__call = function(self, args, data)
	data.decl_type = "n1"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n1-p"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n1-p"], {__call = function(self, args, data)
	decl["n1"].plural(args, data)
	
	data.info = " (plural only)"
	data.decl_type = "n1p"
	data.defective = "p"
end
})

decl["n1-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n1-s"], {__call = function(self, args, data)
	decl["n1"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n1s"
	data.defective = "s"
end
})

decl["n3"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1]}
		data.forms["nom_sg_def"] = {args[1] .. "ið"}
		
		data.forms["acc_sg"] = {args[1]}
		data.forms["acc_sg_def"] = {args[1] .. "ið"}
		
		data.forms["dat_sg"] = {args[1] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. "inum"}
		
		data.forms["gen_sg"] = {args[1] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1]}
		data.forms["nom_pl_def"] = {args[1] .. "ini"}
		
		data.forms["acc_pl"] = {args[1]}
		data.forms["acc_pl_def"] = {args[1] .. "ini"}
		
		data.forms["dat_pl"] = {args[1] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. "anna"}
	end
}
setmetatable(decl["n3"], {__call = function(self, args, data)
	data.decl_type = "n3"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n3-p"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n3-p"], {__call = function(self, args, data)
	decl["n3"].plural(args, data)
	
	data.info = " (plural only)"
	data.decl_type = "n3p"
	data.defective = "p"
end
})

decl["n3-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n3-s"], {__call = function(self, args, data)
	decl["n3"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n3s"
	data.defective = "s"
end
})

decl["n4"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n4"], {__call = function(self, args, data)
	decl["n3"](args, data)
	
	data.decl_type = "n4"
	
	data.forms["dat_sg"] = {args[1], args[1] .. "i"}
	data.forms["dat_sg_def"] = {args[1] .. "num"}
end
})

decl["n4-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n4-s"], {__call = function(self, args, data)
	decl["n3-s"](args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n4s"

	data.forms["dat_sg"] = {args[1], args[1] .. "i"}
	data.forms["dat_sg_def"] = {args[1] .. "num"}
end
})

decl["n5"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {default = ""},
		[4] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
		data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "ið"}
		
		data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
		data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ið"}
		
		data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "inum"}
		
		data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. args[4] .. args[3]}
		data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "ini"}
		
		data.forms["acc_pl"] = {args[1] .. args[4] .. args[3]}
		data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "ini"}
		
		data.forms["dat_pl"] = {args[1] .. args[4] .. args[3] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"}
	end
}
setmetatable(decl["n5"], {__call = function(self, args, data)
	data.decl_type = "n5"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n5-p"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		[4] = {},
		},
}
setmetatable(decl["n5-p"], {__call = function(self, args, data)
	decl["n5"].plural(args, data)
	
	data.info = " (plural only)"
	data.decl_type = "n5p"
	data.defective = "p"
end
})

decl["n5-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n5-s"], {__call = function(self, args, data)
	decl["n3"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n5s"
	data.defective = "s"
end
})

decl["n6"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		[4] = {},
		},
}
setmetatable(decl["n6"], {__call = function(self, args, data)
	decl["n5"](args, data)
	
	data.decl_type = "n6"
	
	data.forms["dat_sg"] = {args[1] .. args[2] .. args[3], args[1] .. args[2] .. args[3] .. "i"}
	data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "num", args[1] .. args[2] .. args[3] .. "inum"}
end
})

decl["n8"] = {
	params = {
		[1] = {},
		[2] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "a" .. args[2]}
		data.forms["nom_sg_def"] = {args[1] .. "a" .. args[2] .. "ið"}
		
		data.forms["acc_sg"] = {args[1] .. "a" .. args[2]}
		data.forms["acc_sg_def"] = {args[1] .. "a" .. args[2] .. "ið"}
		
		data.forms["dat_sg"] = {args[1] .. "a" .. args[2] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. "a" .. args[2] .. "inum"}
		
		data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "o" .. args[2]}
		data.forms["nom_pl_def"] = {args[1] .. "o" .. args[2] .. "ini"}
		
		data.forms["acc_sg"] = {args[1] .. "o" .. args[2]}
		data.forms["acc_sg_def"] = {args[1] .. "o" .. args[2] .. "ini"}
		
		data.forms["dat_sg"] = {args[1] .. "o" .. args[2] .. "um"}
		data.forms["dat_sg_def"] = {args[1] .. "o" .. args[2] .. "unum"}
		
		data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "a"}
		data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "anna"}
	end
}
setmetatable(decl["n8"], {__call = function(self, args, data)
	data.decl_type = "n8"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n8-p"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["n8-p"], {__call = function(self, args, data)
	decl["n8"].plural(args, data)
	
	data.info = " (plural only)"
	data.decl_type = "n8p"
	data.defective = "p"
end
})

decl["n8-s"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["n8-s"], {__call = function(self, args, data)
	decl["n8"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n8s"
	data.defective = "s"
end
})

decl["n9"] = {
	params = {
		[1] = {},
		[2] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. args[2] .. args[2]}
		data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[2] .. "ið"}
		
		data.forms["acc_sg"] = {args[1] .. args[2] .. args[2]}
		data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[2] .. "ið"}
		
		data.forms["dat_sg"] = {args[1] .. args[2] .. args[2] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[2] .. "inum"}
		
		data.forms["gen_sg"] = {args[1] .. args[2] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. args[2] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. args[2] .. args[2]}
		data.forms["nom_pl_def"] = {args[1] .. args[2] .. args[2] .. "ini"}
		
		data.forms["acc_pl"] = {args[1] .. args[2] .. args[2]}
		data.forms["acc_pl_def"] = {args[1] .. args[2] .. args[2] .. "ini"}
		
		data.forms["dat_pl"] = {args[1] .. args[2] .. args[2] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[2] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. args[2] .. args[2] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[2] .. "anna"}
	end
}
setmetatable(decl["n9"], {__call = function(self, args, data)
	data.decl_type = "n9"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n9-s"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["n9-s"], {__call = function(self, args, data)
	decl["n9"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n9s"
	data.defective = "s"
end
})

decl["n10"] = {
	params = {
		[1] = {},
		[2] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "a" .. args[2] .. args[2]}
		data.forms["nom_sg_def"] = {args[1] .. "a" .. args[2] .. args[2] .. "ið"}
		
		data.forms["acc_sg"] = {args[1] .. "a" .. args[2] .. args[2]}
		data.forms["acc_sg_def"] = {args[1] .. "a" .. args[2] .. args[2] .. "ið"}
		
		data.forms["dat_sg"] = {args[1] .. "a" .. args[2] .. args[2] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. "a" .. args[2] .. args[2] .. "inum"}
		
		data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "ø" .. args[2] .. args[2]}
		data.forms["nom_pl_def"] = {args[1] .. "ø" .. args[2] .. args[2] .. "ini"}
		
		data.forms["acc_pl"] = {args[1] .. "ø" .. args[2] .. args[2]}
		data.forms["acc_pl_def"] = {args[1] .. "ø" .. args[2] .. args[2] .. "ini"}
		
		data.forms["dat_pl"] = {args[1] .. "ø" .. args[2] .. args[2] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. "ø" .. args[2] .. args[2] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. "a" .. args[2] .. args[2] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. "a" .. args[2] .. args[2] .. "anna"}
	end
}
setmetatable(decl["n10"], {__call = function(self, args, data)
	data.decl_type = "n10"
	
	self.singular(args, data)
	self.plural(args, data)
end
})
		
decl["n10-s"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["n10-s"], {__call = function(self, args, data)
	decl["n10"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n10s"
	data.defective = "s"
end
})

decl["n11"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n11"], {__call = function(self, args, data)
	decl["n3"](args, data)
	
	data.decl_type = "n11"
	
	data.forms["gen_sg"] = {args[1]}
	data.forms["gen_sg_def"] = {args[1] .. "ins"}
end
})

decl["n11-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n11-s"], {__call = function(self, args, data)
	decl["n11"](args, data)
	
	data.info = " (singular only)"
	data.decl_type = "11s"
	data.defective = "s"
end
})

decl["n12"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		[4] = {},
		},
}
setmetatable(decl["n12"], {__call = function(self, args, data)
	decl["n5"](args, data)
	
	data.decl_type = "n12"
	
	data.forms["gen_sg"] = {args[1] .. args[2] .. args[3]}
	data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "ins"}
end
})

decl["n12-s"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		[4] = {},
		},
}
setmetatable(decl["n12-s"], {__call = function(self, args, data)
	decl["n12"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n12s"
	data.defective = "s"
end
})

decl["n13"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
		data.forms["nom_sg_def"] = {args[1] .. args[3] .. "ið"}
		
		data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
		data.forms["acc_sg_def"] = {args[1] .. args[3] .. "ið"}
		
		data.forms["dat_sg"] = {args[1] .. args[3] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. args[3] .. "inum"}
		
		data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. args[2] .. args[3]}
		data.forms["nom_pl_def"] = {args[1] .. args[3] .. "ini"}
		
		data.forms["acc_pl"] = {args[1] .. args[2] .. args[3]}
		data.forms["acc_pl_def"] = {args[1] .. args[3] .. "ini"}
		
		data.forms["dat_pl"] = {args[1] .. args[3] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. args[3] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. args[3] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. args[3] .. "anna"}
	end
}
setmetatable(decl["n13"], {__call = function(self, args, data)
	data.decl_type = "n13"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n13-p"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		},
}
setmetatable(decl["n13-p"], {__call = function(self, args, data)
	decl["n13"].plural(args, data)
	
	data.info = " (plural only)"
	data.decl_type = "n13p"
	data.defective = "p"
end
})

decl["n13-s"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		},
}
setmetatable(decl["n13-s"], {__call = function(self, args, data)
	decl["n13"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n13s"
	data.defective = "s"
end
})

decl["n15"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		},
}
setmetatable(decl["n15"], {__call = function(self, args, data)
	data.decl_type = "n15"
	
	data.forms["nom_sg"] = {args[1] .. "a" .. args[2] .. "u" .. args[3]}
	data.forms["nom_sg_def"] = {args[1] .. "a" .. args[2] .. args[3] .. "ið"}
	data.forms["nom_pl"] = {args[1] .. "ø" .. args[2] .. "u" .. args[3]}
	data.forms["nom_pl_def"] = {args[1] .. "ø" .. args[2] .. args[3] .. "ini"}
	
	data.forms["acc_sg"] = {args[1] .. "a" .. args[2] .. "u" .. args[3]}
	data.forms["acc_sg_def"] = {args[1] .. "a" .. args[2] .. args[3] .. "ið"}
	data.forms["acc_pl"] = {args[1] .. "ø" .. args[2] .. "u" .. args[3]}
	data.forms["acc_pl_def"] = {args[1] .. "ø" .. args[2] .. args[3] .. "ini"}
	
	data.forms["dat_sg"] = {args[1] .. "a" .. args[2] .. args[3] .. "i"}
	data.forms["dat_sg_def"] = {args[1] .. "a" .. args[2] .. args[3] .. "inum"}
	data.forms["dat_pl"] = {args[1] .. "ø" .. args[2] .. args[3] .. "um"}
	data.forms["dat_pl_def"] = {args[1] .. "ø" .. args[2] .. args[3] .. "unum"}
	
	data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "u" .. args[3] .. "s"}
	data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "u" .. args[3] .. "sins"}
	data.forms["gen_pl"] = {args[1] .. "a" .. args[2] .. args[3] .. "a"}
	data.forms["gen_pl_def"] = {args[1] .. "a" .. args[2] .. args[3] .. "anna"}
end
})

decl["n16"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "ggj"}
		data.forms["nom_sg_def"] = {args[1] .. "ggið"}
		
		data.forms["acc_sg"] = {args[1] .. "ggj"}
		data.forms["acc_sg_def"] = {args[1] .. "ggið"}
		
		data.forms["dat_sg"] = {args[1] .. "ggi", args[1] .. "ggj"}
		data.forms["dat_sg_def"] = {args[1] .. "gginum", args[1] .. "num"}
		
		data.forms["gen_sg"] = {args[1] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "ggj"}
		data.forms["nom_pl_def"] = {args[1] .. "ggini"}
		
		data.forms["acc_sg"] = {args[1] .. "ggj"}
		data.forms["acc_sg_def"] = {args[1] .. "ggini"}
		
		data.forms["dat_pl"] = {args[1] .. "ggjum"}
		data.forms["dat_pl_def"] = {args[1] .. "ggjunum"}
		
		data.forms["gen_pl"] = {args[1] .. "ggja"}
		data.forms["gen_pl_def"] = {args[1] .. "ggjanna"}
	end
}
setmetatable(decl["n16"], {__call = function(self, args, data)
	data.decl_type = "n16"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n16-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n16-s"], {__call = function(self, args, data)
	decl["n16"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n16s"
	data.defective = "s"
end
})

decl["n17"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n17"], {__call = function(self, args, data)
	decl["n16"](args, data)
	
	data.decl_type = "n17"
	
	data.forms["dat_sg_def"] = {args[1] .. "gginum", args[1] .. "gnum"}
	
	data.forms["gen_sg"] = {args[1] .. "gs"}
	data.forms["gen_sg_def"] = {args[1] .. "gsins"}
end
})

decl["n17-s"] = {
	params = {
		[1] = {}
		},
}
setmetatable(decl["n17-s"], {__call = function(self, args, data)
	decl["n17"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n17s"
	data.defective = "s"
end
})

decl["n19"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "gv"}
		data.forms["nom_sg_def"] = {args[1] .. "gvið"}
		
		data.forms["acc_sg"] = {args[1] .. "gv"}
		data.forms["acc_sg_def"] = {args[1] .. "gvið"}
		
		data.forms["dat_sg"] = {args[1] .. "gvi"}
		data.forms["dat_sg_def"] = {args[1] .. "gvnum"}
		
		data.forms["gen_sg"] = {args[1] .. "vs"}
		data.forms["gen_sg_def"] = {args[1] .. "vsins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "gv"}
		data.forms["nom_pl_def"] = {args[1] .. "gvini"}
		
		data.forms["acc_pl"] = {args[1] .. "gv"}
		data.forms["acc_pl_def"] = {args[1] .. "gvini"}
		
		data.forms["dat_pl"] = {args[1] .. "gvum"}
		data.forms["dat_pl_def"] = {args[1] .. "gvunum"}
		
		data.forms["gen_pl"] = {args[1] .. "gva"}
		data.forms["gen_pl_def"] = {args[1] .. "gvanna"}
	end
}
setmetatable(decl["n19"], {__call = function(self, args, data)
	data.decl_type = "n19"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n20"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n20"], {__call = function(self, args, data)
	decl["n19"](args, data)
	
	data.decl_type = "n20"
	
	data.forms["gen_sg"] = {args[1] .. "s"}
	data.forms["gen_sg_dat"] = {args[1] .. "sins"}
end
})

decl["n20-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n20-s"], {__call = function(self, args, data)
	decl["n20"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n20s"
	data.defective = "s"
end
})

decl["n22"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n22"], {__call = function(self, args, data)
	decl["n3"](args, data)
	
	data.decl_type = "n22"
	
	data.forms["dat_pl"] = {args[1] .. "jum", args[1] .. "um"}
	data.forms["dat_pl_def"] = {args[1] .. "junum", args[1] .. "unum"}
	
	data.forms["gen_pl"] = {args[1] .. "ja"}
	data.forms["gen_pl_def"] = {args[1] .. "janna"}
end
})

decl["n22-s"] = {
	params = {
		[1] = {}
		},
}
setmetatable(decl["n22-s"], {__call = function(self, args, data)
	decl["n3"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n22s"
	data.defective = "s"
end
})

decl["n23"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["n23"], {__call = function(self, args, data)
	decl["n9"](args, data)
	
	data.decl_type = "n23"
	
	data.forms["dat_pl"] = {args[1] .. args[2] .. args[2] .. "jum", args[1] .. args[2] .. args[2] .. "um"}
	data.forms["dat_pl_def"] = {args[1] .. args[2] .. args[2] .. "junum", args[1] .. args[2] .. args[2] .. "unum"}
	
	data.forms["gen_pl"] = {args[1] .. args[2] .. args[2] .. "ja"}
	data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[2] .. "janna"}
end
})

decl["n23-s"] = {
	params = {
		[1] = {}
		},
}
setmetatable(decl["n23-s"], {__call = function(self, args, data)
	decl["n9"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n23s"
	data.defective = "s"
end
})

decl["n24"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "i"}
		data.forms["nom_sg_def"] = {args[1] .. "ið"}
		
		data.forms["acc_sg"] = {args[1] .. "i"}
		data.forms["acc_sg_def"] = {args[1] .. "ið"}
		
		data.forms["dat_sg"] = {args[1] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. "inum", args[1] .. "num"}
		
		data.forms["gen_sg"] = {args[1] .. "is"}
		data.forms["gen_sg_def"] = {args[1] .. "isins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "i", args[1] .. "ir"}
		data.forms["nom_pl_def"] = {args[1] .. "ini"}
		
		data.forms["acc_pl"] = {args[1] .. "i", args[1] .. "ir"}
		data.forms["acc_pl_def"] = {args[1] .. "ini"}
		
		data.forms["dat_pl"] = {args[1] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. "anna"}
	end
}
setmetatable(decl["n24"], {__call = function(self, args, data)
	data.decl_type = "n24"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["n24-p"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n24-p"], {__call = function(self, args, data)
	decl["n24"].plural(args, data)
	
	data.info = " (plural only)"
	data.decl_type = "n24p"
	data.defective = "p"
end
})

decl["n24-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n24-s"], {__call = function(self, args, data)
	decl["n24"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n24s"
	data.defective = "s"
end
})

decl["n25"] = {
	parama = {
		[1] = {}
		},
}
setmetatable(decl["n25"], {__call = function(args, data)
	decl["n24"](args, data)
	
	data.decl_type = "n25"
	
	data.forms["dat_sg_def"] = {args[1] .. "inum"}
	
	data.forms["dat_pl"] = {args[1] .. "jum"}
	data.forms["dat_pl_def"] = {args[1] .. "junum"}
	
	data.forms["gen_pl"] = {args[1] .. "ja"}
	data.forms["gen_pl_def"] = {args[1] .. "janna"}
end
})

decl["n25-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n25-s"], {__call = function(self, args, data)
	decl["n25"].singular(args, data)
	
	data.info = " (singular only)"
	data.decl_type = "n25s"
	data.defective = "s"
end
})

decl["n26"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n26"], {__call = function(self, args, data)
	decl["n24"].plural(args, data)
	
	data.info = " (plural only)"
	data.decl_type = "n26"
	data.defective = "p"
end
})

decl["n28"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["n28"], {__call = function(self, args, data)
	decl["n3"](args, data)
	
	data.decl_type = "n28"
	
	data.forms["dat_sg"] = {args[1], args[1] .. "i"}
	data.forms["dat_sg_def"] = {args[1] .. "inum", args[1] .. "num"}
end
})

decl["n29"] = {
	params = {
		[1] = {},
		[2] = {},
		[3] = {},
		[4] = {},
		[5] = {},
		},
}
setmetatable(decl["n29"], {__call = function(self, args, data)
	data.decl_type = "n29"
	
	data.forms["nom_sg"] = {args[1] .. args[2] .. args[3]}
	data.forms["nom_sg_def"] = {args[1] .. args[2] .. args[3] .. "ið"}
	data.forms["nom_pl"] = {args[1] .. args[5] .. args[3]}
	data.forms["nom_pl_def"] = {args[1] .. args[4] .. args[3] .. "ini"}
	
	data.forms["acc_sg"] = {args[1] .. args[2] .. args[3]}
	data.forms["acc_sg_def"] = {args[1] .. args[2] .. args[3] .. "ið"}
	data.forms["acc_pl"] = {args[1] .. args[5] .. args[3]}
	data.forms["acc_pl_def"] = {args[1] .. args[4] .. args[3] .. "ini"}
	
	data.forms["dat_sg"] = {args[1] .. args[2] .. args[3] .. "i"}
	data.forms["dat_sg_def"] = {args[1] .. args[2] .. args[3] .. "inum"}
	data.forms["dat_pl"] = {args[1] .. args[5] .. args[3] .. "um", args[1] .. args[4] .. args[3] .. "um"}
	data.forms["dat_pl_def"] = {args[1] .. args[4] .. args[3] .. "unum"}
	
	data.forms["gen_sg"] = {args[1] .. args[2] .. args[3] .. "s"}
	data.forms["gen_sg_def"] = {args[1] .. args[2] .. args[3] .. "sins"}
	data.forms["gen_pl"] = {args[1] .. args[2] .. args[3] .. "a"}
	data.forms["gen_pl_def"] = {args[1] .. args[2] .. args[3] .. "anna"}
end
})

return decl