<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ARegion_topic</id>
	<title>Module:Region topic - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ARegion_topic"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Region_topic&amp;action=history"/>
	<updated>2026-05-27T03:38:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Region_topic&amp;diff=144630&amp;oldid=prev</id>
		<title>imported&gt;SiBr4 at 19:49, 3 May 2016</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Region_topic&amp;diff=144630&amp;oldid=prev"/>
		<updated>2016-05-03T19:49:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local redirectTarget = require(&amp;quot;Module:Redirect&amp;quot;).getTarget&lt;br /&gt;
&lt;br /&gt;
local function blankToNil(s)&lt;br /&gt;
	--Replaces string consisting of only whitespace with nil&lt;br /&gt;
	return s and string.find(s, &amp;#039;%S&amp;#039;) and s or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function unlink(s)&lt;br /&gt;
	return s==&amp;quot;unlink&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local yn_map = {yes=&amp;quot;y&amp;quot;, y=&amp;quot;y&amp;quot;, [&amp;quot;true&amp;quot;]=&amp;quot;y&amp;quot;, [&amp;quot;1&amp;quot;]=&amp;quot;y&amp;quot;, no=&amp;quot;n&amp;quot;, n=&amp;quot;n&amp;quot;, [&amp;quot;false&amp;quot;]=&amp;quot;n&amp;quot;, [&amp;quot;0&amp;quot;]=&amp;quot;n&amp;quot;, [&amp;quot;&amp;quot;]=&amp;quot;e&amp;quot;}&lt;br /&gt;
local function yn(s,map)&lt;br /&gt;
	--Converts a &amp;quot;yes&amp;quot;/&amp;quot;no&amp;quot; string s to a boolean. map is a&lt;br /&gt;
	--table that specifies what each type of input should be&lt;br /&gt;
	--interpreted as; its defaults are consistent with {{yesno}}&lt;br /&gt;
	map = map or {}&lt;br /&gt;
	local fmap = {y = map.y or 1, --yes, y, true, 1&lt;br /&gt;
	              n = map.n or 0, --no, n, false, 0&lt;br /&gt;
	              o = map.o or map.y or 1, --other&lt;br /&gt;
	              e = map.e or map.n or 0, --empty string&lt;br /&gt;
	              u = map.u or map.n or 0} --unspecified (nil)&lt;br /&gt;
	local num = s and fmap[yn_map[s] or &amp;quot;o&amp;quot;] or fmap.u&lt;br /&gt;
	return num ~= 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function yn3(s,nrl)&lt;br /&gt;
	--Converts a &amp;quot;yes&amp;quot;/&amp;quot;no&amp;quot; string s to a number (1=yes, 0=no, 0.5=neither)&lt;br /&gt;
	local yn = yn_map[s or &amp;quot;&amp;quot;]&lt;br /&gt;
	return (yn==&amp;quot;y&amp;quot; and 1) or (nrl and unlink(s) and 1) or (yn==&amp;quot;n&amp;quot; and 0) or 0.5&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function xor(a,b)&lt;br /&gt;
	--A logical XOR function&lt;br /&gt;
	return not a ~= not b&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function fallthrough(t)&lt;br /&gt;
	local i = 1&lt;br /&gt;
	local r = 0.5&lt;br /&gt;
	while r==0.5 and t[i] do&lt;br /&gt;
		r = t[i]&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	return (r and r~=0) and 1 or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function loadData(d)&lt;br /&gt;
	if type(d)==&amp;quot;table&amp;quot; then&lt;br /&gt;
		return d&lt;br /&gt;
	elseif type(d)==&amp;quot;string&amp;quot; and blankToNil(d) then&lt;br /&gt;
		return mw.loadData(d)&lt;br /&gt;
	else&lt;br /&gt;
		return error(&amp;quot;No data page or table specified&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.luaMain(frame,args)&lt;br /&gt;
	--Produces the navbox (for other Lua scripts)&lt;br /&gt;
&lt;br /&gt;
	--Pass through navbox style parameters&lt;br /&gt;
	local navboxArgs = {&lt;br /&gt;
		name = args.name or error(&amp;quot;No name parameter&amp;quot;),&lt;br /&gt;
		state = args.state or &amp;quot;autocollapse&amp;quot;,&lt;br /&gt;
		titlestyle = args.titlestyle,&lt;br /&gt;
		bodystyle = args.bodystyle,&lt;br /&gt;
		abovestyle = args.abovestyle,&lt;br /&gt;
		belowstyle = args.belowstyle,&lt;br /&gt;
		groupstyle = args.groupstyle,&lt;br /&gt;
		liststyle = args.liststyle,&lt;br /&gt;
		listclass = &amp;quot;hlist&amp;quot;,&lt;br /&gt;
		image = args.image,&lt;br /&gt;
		above = args.above,&lt;br /&gt;
		border = args.border,&lt;br /&gt;
		navbar = args.navbar&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	--Load data page&lt;br /&gt;
	local data = loadData(args.data)&lt;br /&gt;
&lt;br /&gt;
	--Prefix/suffix parameters&lt;br /&gt;
	local prefix = blankToNil(args.prefix or args[1])&lt;br /&gt;
	local suffix = blankToNil(args.suffix or args[2])&lt;br /&gt;
	prefix = (prefix or &amp;quot;&amp;quot;)..(not yn(args.noprefixspace) and prefix and &amp;quot; &amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
	suffix = (not yn(args.nosuffixspace) and suffix and &amp;quot; &amp;quot; or &amp;quot;&amp;quot;)..(suffix or &amp;quot;&amp;quot;)&lt;br /&gt;
	--Switch to include the definite article &amp;quot;the&amp;quot; where necessary&lt;br /&gt;
	local article&lt;br /&gt;
	if args.article then&lt;br /&gt;
		article = yn(args.article)&lt;br /&gt;
	else&lt;br /&gt;
		article = (prefix~=&amp;quot;&amp;quot; and suffix==&amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	--Switch to omit nonexisting articles (0.5 if not specified)&lt;br /&gt;
	local noRedLinks = yn3(args.noredlinks,1)&lt;br /&gt;
	local unlinkRedLinks = unlink(args.noredlinks)&lt;br /&gt;
	--Switch to automatically follow redirects&lt;br /&gt;
	local noRedirs = yn3(args.noredirects)&lt;br /&gt;
&lt;br /&gt;
	--Create navbox title&lt;br /&gt;
	if args.title then&lt;br /&gt;
		navboxArgs.title = args.title&lt;br /&gt;
	else&lt;br /&gt;
		local linkName = data.region or error(&amp;quot;No region parameter in data page&amp;quot;)&lt;br /&gt;
		local linkArticle = (article and data.region_the) and (prefix==&amp;quot;&amp;quot; and &amp;quot;The &amp;quot; or &amp;quot;the &amp;quot;) or &amp;quot;&amp;quot;&lt;br /&gt;
		local fullLink = prefix..linkArticle..linkName..suffix&lt;br /&gt;
		if noRedLinks==0 or mw.title.new(fullLink).exists then&lt;br /&gt;
			navboxArgs.title = &amp;quot;[[&amp;quot;..fullLink..&amp;quot;]]&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			navboxArgs.title = fullLink&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Loop over groups&lt;br /&gt;
	local nthGroup = 1&lt;br /&gt;
	local nthShownGroup = 1&lt;br /&gt;
	while data[&amp;quot;group&amp;quot;..nthGroup] do&lt;br /&gt;
		--If group is not hidden or excluded&lt;br /&gt;
		if not data[&amp;quot;group&amp;quot;..nthGroup].switch&lt;br /&gt;
		  or not args[data[&amp;quot;group&amp;quot;..nthGroup].switch] and not data[&amp;quot;group&amp;quot;..nthGroup].hidden&lt;br /&gt;
		  or args[data[&amp;quot;group&amp;quot;..nthGroup].switch]&lt;br /&gt;
		    and xor(yn(args[data[&amp;quot;group&amp;quot;..nthGroup].switch],{o=0}),data[&amp;quot;group&amp;quot;..nthGroup].negate_switch)&lt;br /&gt;
		then&lt;br /&gt;
			--Create list &amp;amp; loop over entries&lt;br /&gt;
			local list = {}&lt;br /&gt;
			local listSortMap = {}&lt;br /&gt;
			for nthCountry,countryData in ipairs(data[&amp;quot;group&amp;quot;..nthGroup].data) do&lt;br /&gt;
				local code = countryData[1]&lt;br /&gt;
				local countryName = blankToNil(args[code..&amp;quot;_name&amp;quot;]) or countryData[2] or countryData[1]&lt;br /&gt;
				local listItem&lt;br /&gt;
				--Determine if country should be included or not&lt;br /&gt;
				if yn(args[code],{u=1})&lt;br /&gt;
				  and (args[code]&lt;br /&gt;
				       or not (countryData.switch and args[countryData.switch]) and not countryData.hidden&lt;br /&gt;
				       or countryData.switch and args[countryData.switch]&lt;br /&gt;
				         and xor(yn(args[countryData.switch],{o=0}),countryData.negate_switch))&lt;br /&gt;
				then&lt;br /&gt;
					--Determine link target&lt;br /&gt;
					local linkName = countryData.link or countryData[2] or countryData[1]&lt;br /&gt;
					local linkArticle = (article and countryData.the) and &amp;quot;the &amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
					local fullLink = not yn(args[code],{o=0}) and args[code] or (prefix..linkArticle..linkName..suffix)&lt;br /&gt;
					--Create list item if not nonexisting&lt;br /&gt;
					local noRedLink = fallthrough({yn3(args[code..&amp;quot;_noredlink&amp;quot;],1),noRedLinks,countryData.noredlink or 0})&lt;br /&gt;
					if (args[code] or noRedLink~=1 or mw.title.new(fullLink).exists) and not unlink(args[code]) then&lt;br /&gt;
						local noRedir = fallthrough({yn3(args[code..&amp;quot;_noredirect&amp;quot;]),noRedirs,countryData.noredirect or 0})&lt;br /&gt;
						listItem = &amp;quot;[[&amp;quot;..(noRedir==1 and redirectTarget(fullLink) or fullLink)..&amp;quot;|&amp;quot;..countryName..&amp;quot;]]&amp;quot;&lt;br /&gt;
					elseif unlink(args[code]) or unlink(args[code..&amp;quot;_noredlink&amp;quot;])&lt;br /&gt;
					       or unlinkRedLinks or unlink(countryData.noredlink)&lt;br /&gt;
					then&lt;br /&gt;
						listItem = countryName&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				--Create sub-list if present&lt;br /&gt;
				if countryData.subgroup then&lt;br /&gt;
					local subGroup = countryData.subgroup&lt;br /&gt;
					local subList = {}&lt;br /&gt;
					local subListSortMap = {}&lt;br /&gt;
					for nthSubCountry,subCountryData in ipairs(subGroup) do&lt;br /&gt;
						--Similar to main item code&lt;br /&gt;
						local subCode = subCountryData[1]&lt;br /&gt;
						local subCountryName = blankToNil(args[subCode..&amp;quot;_name&amp;quot;])&lt;br /&gt;
						                       or subCountryData[2] or subCountryData[1]&lt;br /&gt;
						local subLinkName = subCountryData.link or subCountryData[2] or subCountryData[1]&lt;br /&gt;
						local subLinkArticle = (article and subCountryData.the) and &amp;quot;the &amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
						local subFullLink = not yn(args[subCode],{o=0}) and args[subCode]&lt;br /&gt;
						                    or (prefix..subLinkArticle..subLinkName..suffix)&lt;br /&gt;
						local noRedLink = fallthrough({yn3(args[subCode..&amp;quot;_noredlink&amp;quot;],1),&lt;br /&gt;
						                               noRedLinks,subCountryData.noredlink or 0})&lt;br /&gt;
						if yn(args[subCode],{u=1})&lt;br /&gt;
						   and (args[subCode]&lt;br /&gt;
						        or (not (subGroup.switch and args[subGroup.switch]) and not subGroup.hidden&lt;br /&gt;
						            or subGroup.switch and args[subGroup.switch]&lt;br /&gt;
						              and xor(yn(args[subGroup.switch],{o=0}),subGroup.negate_switch))&lt;br /&gt;
						          and not (subCountryData.switch and args[subCountryData.switch])&lt;br /&gt;
						          and not subCountryData.hidden&lt;br /&gt;
						        or subCountryData.switch and args[subCountryData.switch]&lt;br /&gt;
						          and xor(yn(args[subCountryData.switch],{o=0}),subCountryData.negate_switch))&lt;br /&gt;
						then&lt;br /&gt;
							if (args[subCode] or noRedLink~=1 or mw.title.new(subFullLink).exists) and not unlink(args[subCode]) then&lt;br /&gt;
								local noRedir = fallthrough({yn3(args[subCode..&amp;quot;_noredirect&amp;quot;]),&lt;br /&gt;
								                             noRedirs,subCountryData.noredirect or 0})&lt;br /&gt;
								subList[#subList+1] = &amp;quot;&amp;lt;li&amp;gt;[[&amp;quot;..(noRedir==1 and redirectTarget(subFullLink) or subFullLink)&lt;br /&gt;
								                      ..&amp;quot;|&amp;quot;..subCountryName..&amp;quot;]]&amp;lt;/li&amp;gt;&amp;quot;&lt;br /&gt;
								subListSortMap[#subListSortMap+1] = {args[subCode..&amp;quot;_sort&amp;quot;] or args[subCode..&amp;quot;_name&amp;quot;]&lt;br /&gt;
								                                     or subCountryData[2] or subCountryData[1],#subListSortMap+1}&lt;br /&gt;
							elseif unlink(args[subCode]) or unlink(args[subCode..&amp;quot;_noredlink&amp;quot;])&lt;br /&gt;
							       or unlinkRedLinks or unlink(subCountryData.noredlink)&lt;br /&gt;
							then&lt;br /&gt;
								subList[#subList+1] = &amp;quot;&amp;lt;li&amp;gt;&amp;quot;..subCountryName..&amp;quot;&amp;lt;/li&amp;gt;&amp;quot;&lt;br /&gt;
								subListSortMap[#subListSortMap+1] = {args[subCode..&amp;quot;_sort&amp;quot;] or args[subCode..&amp;quot;_name&amp;quot;]&lt;br /&gt;
								                                     or subCountryData[2] or subCountryData[1],#subListSortMap+1}&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					--If non-empty sub-list, add it to country item&lt;br /&gt;
					if #subList&amp;gt;0 then&lt;br /&gt;
						table.sort(subListSortMap, function(t1,t2) return t1[1]&amp;lt;t2[1] end)&lt;br /&gt;
						local subListSorted = {}&lt;br /&gt;
						for sortListPosition,sortListEntry in ipairs(subListSortMap) do&lt;br /&gt;
							subListSorted[sortListPosition] = subList[sortListEntry[2]]&lt;br /&gt;
						end&lt;br /&gt;
						listItem = (listItem or countryName)..&amp;quot;\n&amp;lt;ul&amp;gt;\n&amp;quot;..table.concat(subListSorted,&amp;quot;\n&amp;quot;)..&amp;quot;\n&amp;lt;/ul&amp;gt;&amp;quot;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if listItem then&lt;br /&gt;
					list[#list+1] = &amp;quot;&amp;lt;li&amp;gt;&amp;quot;..listItem..&amp;quot;&amp;lt;/li&amp;gt;&amp;quot;&lt;br /&gt;
					listSortMap[#listSortMap+1] = {args[code..&amp;quot;_sort&amp;quot;] or countryName, #listSortMap+1}&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			--Add group name and data to navbox args&lt;br /&gt;
			if data[&amp;quot;group&amp;quot;..nthGroup].name then&lt;br /&gt;
				if string.match(data[&amp;quot;group&amp;quot;..nthGroup].name,&amp;quot;%{%{&amp;quot;) then&lt;br /&gt;
					navboxArgs[&amp;quot;group&amp;quot;..nthShownGroup] = frame:preprocess(data[&amp;quot;group&amp;quot;..nthGroup].name)&lt;br /&gt;
				else&lt;br /&gt;
					navboxArgs[&amp;quot;group&amp;quot;..nthShownGroup] = data[&amp;quot;group&amp;quot;..nthGroup].name&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			--Sort list and move to navbox parameters if not empty&lt;br /&gt;
			if #list&amp;gt;0 or yn(args.showemptygroups) then&lt;br /&gt;
				table.sort(listSortMap, function(t1,t2) return t1[1]&amp;lt;t2[1] end)&lt;br /&gt;
				local listSorted = {}&lt;br /&gt;
				for sortListPosition,sortListEntry in ipairs(listSortMap) do&lt;br /&gt;
					listSorted[sortListPosition] = list[sortListEntry[2]]&lt;br /&gt;
				end&lt;br /&gt;
				navboxArgs[&amp;quot;list&amp;quot;..nthShownGroup] = &amp;quot;&amp;lt;ul&amp;gt;\n&amp;quot;..table.concat(listSorted,&amp;quot;\n&amp;quot;)..&amp;quot;\n&amp;lt;/ul&amp;gt;&amp;quot;&lt;br /&gt;
				nthShownGroup = nthShownGroup + 1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		nthGroup = nthGroup + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Invoke navbox module&lt;br /&gt;
	return require(&amp;quot;Module:Navbox&amp;quot;)._navbox(navboxArgs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	--Produces the navbox (for wikitext usage)&lt;br /&gt;
	local args = require(&amp;quot;Module:Arguments&amp;quot;).getArgs(frame, {removeBlanks = false})&lt;br /&gt;
	return p.luaMain(frame,args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.luaList(frame,dataPage)&lt;br /&gt;
	--Produces a list of entities and associated parameters, for&lt;br /&gt;
	--use in template documentation (for other Lua scripts)&lt;br /&gt;
&lt;br /&gt;
	--Load data page&lt;br /&gt;
	local data = loadData(dataPage)&lt;br /&gt;
&lt;br /&gt;
	--Create table and header row&lt;br /&gt;
	local table = mw.html.create(&amp;quot;table&amp;quot;):addClass(&amp;quot;wikitable collapsible&amp;quot;):css(&amp;quot;color&amp;quot;,&amp;quot;#000&amp;quot;)&lt;br /&gt;
	local tableHead = table:tag(&amp;quot;tr&amp;quot;):css(&amp;quot;font-weight&amp;quot;,&amp;quot;bold&amp;quot;)&lt;br /&gt;
	tableHead:tag(&amp;quot;th&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#e8e8e8&amp;quot;):wikitext(&amp;quot;Code&amp;quot;)&lt;br /&gt;
	tableHead:tag(&amp;quot;th&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#e8e8e8&amp;quot;):wikitext(&amp;quot;Display name [link name]&amp;quot;)&lt;br /&gt;
	tableHead:tag(&amp;quot;th&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#e8e8e8&amp;quot;):wikitext(&amp;quot;Switch&amp;quot;)&lt;br /&gt;
	tableHead:tag(&amp;quot;th&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#e8e8e8&amp;quot;):wikitext(&amp;quot;Hidden?&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	--Loop over groups&lt;br /&gt;
	local nthGroup = 1&lt;br /&gt;
	while data[&amp;quot;group&amp;quot;..nthGroup] do&lt;br /&gt;
		--Add group data&lt;br /&gt;
		local groupHead = table:tag(&amp;quot;tr&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#eaf1fe&amp;quot;)&lt;br /&gt;
		groupHead:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
		if data[&amp;quot;group&amp;quot;..nthGroup].name and string.match(data[&amp;quot;group&amp;quot;..nthGroup].name,&amp;quot;%{%{&amp;quot;) then&lt;br /&gt;
			groupHead:tag(&amp;quot;td&amp;quot;):css(&amp;quot;font-weight&amp;quot;,&amp;quot;bold&amp;quot;):wikitext(frame:preprocess(data[&amp;quot;group&amp;quot;..nthGroup].name))&lt;br /&gt;
		else&lt;br /&gt;
			groupHead:tag(&amp;quot;td&amp;quot;):css(&amp;quot;font-weight&amp;quot;,&amp;quot;bold&amp;quot;):wikitext(data[&amp;quot;group&amp;quot;..nthGroup].name or &amp;quot;&amp;lt;i&amp;gt;Unnamed group&amp;lt;/i&amp;gt;&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		groupHead:tag(&amp;quot;td&amp;quot;):cssText(data[&amp;quot;group&amp;quot;..nthGroup].negate_switch and &amp;quot;text-decoration:overline;&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
		         :wikitext(data[&amp;quot;group&amp;quot;..nthGroup].switch or &amp;quot;&amp;quot;)&lt;br /&gt;
		groupHead:tag(&amp;quot;td&amp;quot;):wikitext(data[&amp;quot;group&amp;quot;..nthGroup].hidden and &amp;quot;Yes&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
		--Loop over group entries&lt;br /&gt;
		for nthCountry,countryData in ipairs(data[&amp;quot;group&amp;quot;..nthGroup].data) do&lt;br /&gt;
			--Add single entry data&lt;br /&gt;
			local countryRow = table:tag(&amp;quot;tr&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#f8f8f8&amp;quot;)&lt;br /&gt;
			countryRow:tag(&amp;quot;td&amp;quot;):wikitext(countryData[1])&lt;br /&gt;
			local countryName = countryRow:tag(&amp;quot;td&amp;quot;):css(&amp;quot;padding-left&amp;quot;,&amp;quot;1em&amp;quot;):wikitext(countryData[2] or countryData[1])&lt;br /&gt;
			if countryData.the or countryData.link then&lt;br /&gt;
				countryName:wikitext(&amp;quot; [&amp;quot;..(countryData.the and &amp;quot;the&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
				                         ..(countryData.the and countryData.link and &amp;quot; &amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
				                         ..(countryData.link or &amp;quot;&amp;quot;)..&amp;quot;]&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			countryRow:tag(&amp;quot;td&amp;quot;):cssText(countryData.negate_switch and &amp;quot;text-decoration:overline;&amp;quot; or &amp;quot;&amp;quot;):wikitext(countryData.switch or &amp;quot;&amp;quot;)&lt;br /&gt;
			countryRow:tag(&amp;quot;td&amp;quot;):wikitext(countryData.hidden and &amp;quot;Yes&amp;quot; or (countryData.noredlink and &amp;quot;Depends on existence&amp;quot; or &amp;quot;&amp;quot;))&lt;br /&gt;
			--Add subgroup data if exists&lt;br /&gt;
			if countryData.subgroup then&lt;br /&gt;
				local subListHead = table:tag(&amp;quot;tr&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#fefce2&amp;quot;)&lt;br /&gt;
				subListHead:tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
				subListHead:tag(&amp;quot;td&amp;quot;):css(&amp;quot;padding-left&amp;quot;,&amp;quot;2em&amp;quot;):css(&amp;quot;font-weight&amp;quot;,&amp;quot;bold&amp;quot;):wikitext(&amp;quot;Subgroup&amp;quot;)&lt;br /&gt;
				subListHead:tag(&amp;quot;td&amp;quot;):cssText(countryData.subgroup.negate_switch and &amp;quot;text-decoration:overline;&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
				                     :wikitext(countryData.subgroup.switch or &amp;quot;&amp;quot;)&lt;br /&gt;
				subListHead:tag(&amp;quot;td&amp;quot;):wikitext(countryData.subgroup.hidden and &amp;quot;Yes&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
				for nthSubCountry,subCountryData in ipairs(countryData.subgroup) do&lt;br /&gt;
					local subCountryRow = table:tag(&amp;quot;tr&amp;quot;):css(&amp;quot;background-color&amp;quot;,&amp;quot;#fdfcf4&amp;quot;)&lt;br /&gt;
					subCountryRow:tag(&amp;quot;td&amp;quot;):wikitext(subCountryData[1])&lt;br /&gt;
					local subCountryName = subCountryRow:tag(&amp;quot;td&amp;quot;):css(&amp;quot;padding-left&amp;quot;,&amp;quot;2em&amp;quot;):css(&amp;quot;font-style&amp;quot;,&amp;quot;italic&amp;quot;)&lt;br /&gt;
					                                              :wikitext(subCountryData[2] or subCountryData[1])&lt;br /&gt;
					if subCountryData.the or subCountryData.link then&lt;br /&gt;
						subCountryName:wikitext(&amp;quot; [&amp;quot;..(subCountryData.the and &amp;quot;the&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
						                            ..(subCountryData.the and subCountryData.link and &amp;quot; &amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
						                            ..(subCountryData.link or &amp;quot;&amp;quot;)..&amp;quot;]&amp;quot;)&lt;br /&gt;
					end&lt;br /&gt;
					subCountryRow:tag(&amp;quot;td&amp;quot;):cssText(subCountryData.negate_switch and &amp;quot;text-decoration:overline;&amp;quot; or &amp;quot;&amp;quot;)&lt;br /&gt;
					                       :wikitext(subCountryData.switch or &amp;quot;&amp;quot;)&lt;br /&gt;
					subCountryRow:tag(&amp;quot;td&amp;quot;):wikitext(subCountryData.hidden&lt;br /&gt;
					                                 and &amp;quot;Yes&amp;quot; or (subCountryData.noredlink and &amp;quot;Depends on existence&amp;quot; or &amp;quot;&amp;quot;))&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		nthGroup = nthGroup + 1&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(table)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.list(frame)&lt;br /&gt;
	--Produces a list of entities and associated parameters, for&lt;br /&gt;
	--use in template documentation (for wikitext usage)&lt;br /&gt;
	local args = require(&amp;quot;Module:Arguments&amp;quot;).getArgs(frame)&lt;br /&gt;
	return p.luaList(frame,args.data)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;SiBr4</name></author>
	</entry>
</feed>