<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AElection_results</id>
	<title>Module:Election results - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AElection_results"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Election_results&amp;action=history"/>
	<updated>2026-06-14T00:40:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Election_results&amp;diff=471564&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Election_results&amp;diff=471564&amp;oldid=prev"/>
		<updated>2021-07-15T21:24:42Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require('Module:No globals')&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require('Module:Arguments').getArgs(frame)&lt;br /&gt;
	local index, headings, showtotal = {}, {}, {}&lt;br /&gt;
	local cols, rounds = 0, 1&lt;br /&gt;
	local winner, winner_votes = {0, 0}, {0, 0}&lt;br /&gt;
	local valid = {0, 0}&lt;br /&gt;
	local invalid = {tonumber(args.invalid) or 0, tonumber(args.invalid2) or 0}&lt;br /&gt;
	local majority = {tonumber(args.majority)}&lt;br /&gt;
	local majority2 = {tonumber(args.majority2)}&lt;br /&gt;
	local majoritypct = {tonumber(args.majoritypct)}&lt;br /&gt;
	local majoritypct2 = {tonumber(args.majoritypct2)}&lt;br /&gt;
	local totalvotes = {tonumber(args.totalvotes), tonumber(args.totalvotes2)}&lt;br /&gt;
	local electorate = {tonumber(args.electorate), tonumber(args.electorate2)}&lt;br /&gt;
	local turnout = {tonumber(args.turnout), tonumber(args.turnout2)}&lt;br /&gt;
	local seats = 0&lt;br /&gt;
	local seats_2 = 0&lt;br /&gt;
	local totseats = 0&lt;br /&gt;
	local row, secondrow&lt;br /&gt;
	local tracking = ''&lt;br /&gt;
	local max_rows = 0&lt;br /&gt;
&lt;br /&gt;
	-- helper functions&lt;br /&gt;
	local lang = mw.getContentLanguage()&lt;br /&gt;
	local function fmt(n)&lt;br /&gt;
		return n and tonumber(n) and lang:formatNum(tonumber(n)) or nil&lt;br /&gt;
	end&lt;br /&gt;
	local function pct(n, d)&lt;br /&gt;
		n, d = tonumber(n), tonumber(d)&lt;br /&gt;
		if n and d and d &amp;gt; 0 then&lt;br /&gt;
			return string.format('%.2f', n / d * 100)&lt;br /&gt;
		end&lt;br /&gt;
		return '&amp;amp;ndash;'&lt;br /&gt;
	end&lt;br /&gt;
	local function tonumdash(s)&lt;br /&gt;
		if s then&lt;br /&gt;
			s = mw.ustring.gsub(s, '&amp;amp;[MmNn][Dd][Aa][Ss][Hh];', '-')&lt;br /&gt;
			s = mw.ustring.gsub(s, '&amp;amp;[Mm][Ii][Nn][Uu][Ss];', '-')&lt;br /&gt;
			s = mw.ustring.gsub(s, '[—–−]', '-')&lt;br /&gt;
			return tonumber(s) or 0&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local function unlink(s)&lt;br /&gt;
		if s then&lt;br /&gt;
			s = s:match(&amp;quot;^[^%[]-%[%[([^%]]-)|[^%]]-%]%].*$&amp;quot;) or s&lt;br /&gt;
			s = s:match(&amp;quot;^[^%[]-%[%[([^%]]-)%]%].*$&amp;quot;) or s&lt;br /&gt;
		end&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- preprocess the input&lt;br /&gt;
	local stop_flag = false&lt;br /&gt;
	local i = 0&lt;br /&gt;
	local has_votes = args['invalid'] or args['totalvotes'] or args['electorate'] or args['turnout']&lt;br /&gt;
	local has_seats = args['seats' .. i .. '_2']&lt;br /&gt;
	local has_sw = args['sw' .. i .. '_2']&lt;br /&gt;
	local seats_only = has_seats and not has_votes&lt;br /&gt;
	while stop_flag == false do&lt;br /&gt;
		stop_flag = true&lt;br /&gt;
		for kk = 1, 20 do&lt;br /&gt;
			i = i + 1&lt;br /&gt;
			for k, key in ipairs({'cand', 'vp', 'party', 'ivotes', 'ipct', 'iseats', 'sc', 'st1t', 'st2t', 'st3t', 'st4t', 'st5t', 'sw', 'seats', 'totalvotes', 'totseats', 'acolor'}) do&lt;br /&gt;
				if args[key .. i] then&lt;br /&gt;
					headings[key] = true&lt;br /&gt;
					stop_flag = false&lt;br /&gt;
					max_rows = i &amp;gt; max_rows and i or max_rows&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if args['row' .. i] then&lt;br /&gt;
				stop_flag = false&lt;br /&gt;
				max_rows = i &amp;gt; max_rows and i or max_rows&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if args['row' .. i] or args['cand' .. i] or args['party' .. i] then&lt;br /&gt;
				table.insert(index, i)&lt;br /&gt;
				if args['votes' .. i] then&lt;br /&gt;
					has_votes = true&lt;br /&gt;
					if tonumber(args['votes' .. i]) then showtotal.votes = 1 end&lt;br /&gt;
					local votesi = tonumber(args['votes' .. i]) or 0&lt;br /&gt;
					args['votes' .. i] = votesi&lt;br /&gt;
					if votesi &amp;gt; winner_votes[1] then&lt;br /&gt;
						winner[1] = i&lt;br /&gt;
						winner_votes[1] = votesi&lt;br /&gt;
					end&lt;br /&gt;
					valid[1] = valid[1] + votesi&lt;br /&gt;
				end&lt;br /&gt;
				if args['ivotes' .. i] then&lt;br /&gt;
					has_votes = true&lt;br /&gt;
				end&lt;br /&gt;
				if args['ipct' .. i] then&lt;br /&gt;
					has_votes = true&lt;br /&gt;
				end&lt;br /&gt;
				if args['sw' .. i .. '_2'] then&lt;br /&gt;
					has_sw = true&lt;br /&gt;
					rounds = 2&lt;br /&gt;
				end&lt;br /&gt;
				if args['votes' .. i .. '_2'] then&lt;br /&gt;
					has_votes = true&lt;br /&gt;
					rounds = 2&lt;br /&gt;
					if tonumber(args['votes' .. i .. '_2']) then showtotal.votes_2 = 1 end&lt;br /&gt;
					local votesi = tonumber(args['votes' .. i .. '_2']) or 0&lt;br /&gt;
					args['votes' .. i .. '_2'] = votesi&lt;br /&gt;
					if votesi &amp;gt; winner_votes[2] then&lt;br /&gt;
						winner[2] = i&lt;br /&gt;
						winner_votes[2] = votesi&lt;br /&gt;
					end&lt;br /&gt;
					valid[2] = valid[2] + votesi&lt;br /&gt;
				end&lt;br /&gt;
				if args['seats' .. i] then&lt;br /&gt;
					if tonumber(args['seats' .. i]) then showtotal.seats = 1 end&lt;br /&gt;
					seats = seats + (tonumber(args['seats' .. i]) or 0)&lt;br /&gt;
				end&lt;br /&gt;
				if args['seats' .. i .. '_2'] then&lt;br /&gt;
					has_seats = true&lt;br /&gt;
					rounds = 2&lt;br /&gt;
					if tonumber(args['seats' .. i ..'_2']) then showtotal.seats_2 = 1 end&lt;br /&gt;
					seats_2 = seats_2 + (tonumber(args['seats' .. i .. '_2']) or 0)&lt;br /&gt;
				end&lt;br /&gt;
				if args['totseats' .. i] then&lt;br /&gt;
					if tonumber(args['totseats' .. i]) then showtotal.totseats = 1 end&lt;br /&gt;
					totseats = totseats + (tonumber(args['totseats' .. i]) or 0)&lt;br /&gt;
				end&lt;br /&gt;
				if has_seats and not has_votes then&lt;br /&gt;
					seats_only = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ovalid = {valid[1], valid[2]}&lt;br /&gt;
	seats = ((args['total_seats'] or '') == 'TOTAL' and seats) or args['total_seats'] or seats&lt;br /&gt;
	totseats = ((args['total_totseats'] or '') == 'TOTAL' and totseats) or args['total_totseats'] or totseats&lt;br /&gt;
	if seats or totseats or args['total_sc'] or args['total_st1t'] or args['total_st2t'] or args['total_st3t'] or args['total_st4t'] or args['total_st5t'] or args['valid'] or ((rounds &amp;gt; 1) and args['valid2']) then&lt;br /&gt;
		max_rows = max_rows + 1&lt;br /&gt;
		local i = max_rows&lt;br /&gt;
		table.insert(index, i)&lt;br /&gt;
		args['votes' .. i] = showtotal.votes and valid[1] or nil&lt;br /&gt;
		args['votes' .. i .. '_2'] = showtotal.votes_2 and valid[2] or nil&lt;br /&gt;
		args['colour' .. i] = 'inherit'&lt;br /&gt;
		args['color' .. i] = 'inherit'&lt;br /&gt;
		args['row' .. i] = 'Total'&lt;br /&gt;
		args['sw' .. i] = '–'&lt;br /&gt;
		args['sw' .. i .. '_2'] = '–'&lt;br /&gt;
		args['seats' .. i] = showtotal.seats and seats or nil&lt;br /&gt;
		args['seats' .. i .. '_2'] = showtotal.seats_2 and seats_2 or nil&lt;br /&gt;
		args['sc' .. i] = args['total_sc']&lt;br /&gt;
		args['st1t' .. i] = args['total_st1t']&lt;br /&gt;
		args['st2t' .. i] = args['total_st2t']&lt;br /&gt;
		args['st3t' .. i] = args['total_st3t']&lt;br /&gt;
		args['st4t' .. i] = args['total_st4t']&lt;br /&gt;
		args['st5t' .. i] = args['total_st5t']&lt;br /&gt;
		args['totseats' .. i] = showtotal.totseats and totseats or nil&lt;br /&gt;
		args['font-weight' .. i] = 'bold'&lt;br /&gt;
		args['class' .. i] = 'sortbottom'&lt;br /&gt;
		ovalid[1] = tonumber(args['valid']) or valid[1]&lt;br /&gt;
		ovalid[2] = tonumber(args['valid2']) or valid[2]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- build the table&lt;br /&gt;
	local root = mw.html.create('table')&lt;br /&gt;
	root&lt;br /&gt;
		:addClass('wikitable sortable')&lt;br /&gt;
		:tag('caption')&lt;br /&gt;
			:wikitext(args.caption)&lt;br /&gt;
			:done()&lt;br /&gt;
&lt;br /&gt;
	local topcell = nil&lt;br /&gt;
	if args['image'] then&lt;br /&gt;
		topcell = root&lt;br /&gt;
			:tag('tr')&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(args['image'])&lt;br /&gt;
					:css('text-align', 'center')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rowspan = (rounds &amp;gt; 1) and 2 or headings['st1t'] and 2 or nil&lt;br /&gt;
	row = root:tag('tr')&lt;br /&gt;
	if args['dsv'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext('Party')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('colspan', 2)&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 2&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
			:wikitext(args.candtitle or 'Candidate')&lt;br /&gt;
			:attr('scope', 'col')&lt;br /&gt;
			:attr('rowspan', rowspan)&lt;br /&gt;
			:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	elseif headings['cand'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext('Candidate')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('colspan', 2)&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 2&lt;br /&gt;
		if headings['vp'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('th')&lt;br /&gt;
						:wikitext('Running mate')&lt;br /&gt;
						:attr('scope', 'col')&lt;br /&gt;
						:attr('rowspan', rowspan)&lt;br /&gt;
						:done()&lt;br /&gt;
			cols = cols + 1&lt;br /&gt;
		end&lt;br /&gt;
		if headings['party'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('th')&lt;br /&gt;
				:wikitext('Party')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
			cols = cols + 1&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(args.partytitle or 'Party')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('colspan', 2)&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 2&lt;br /&gt;
	end&lt;br /&gt;
	if rounds &amp;gt; 1 then&lt;br /&gt;
		if has_seats and headings['sw'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext(args.firstround or 'First round')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('colspan', 4)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext(args.secondround or 'Second round')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('colspan', 4)&lt;br /&gt;
					:done()&lt;br /&gt;
		elseif has_seats then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext(args.firstround or 'First round')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('colspan', 3)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext(args.secondround or 'Second round')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('colspan', 3)&lt;br /&gt;
					:done()&lt;br /&gt;
		elseif has_votes then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext(args.firstround or 'First round')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('colspan', 2)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext(args.secondround or 'Second round')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('colspan', 2)&lt;br /&gt;
					:done()&lt;br /&gt;
		end&lt;br /&gt;
		secondrow = root:tag('tr')&lt;br /&gt;
	else&lt;br /&gt;
		secondrow = row&lt;br /&gt;
	end&lt;br /&gt;
	rowspan = (rounds &amp;gt; 1) and 1 or (rounds &amp;lt; 2 and headings['st1t']) and 2 or nil&lt;br /&gt;
	if has_seats and headings['sw'] then&lt;br /&gt;
		for k=1, rounds do&lt;br /&gt;
			secondrow&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('Votes')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('%')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('+/–')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('Seats')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
			cols = cols + 4&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
		for k=1, rounds do&lt;br /&gt;
			secondrow&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('Votes')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('%')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('Seats')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
			cols = cols + 3&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if has_votes and not has_seats then&lt;br /&gt;
		for k=1, rounds do&lt;br /&gt;
			secondrow&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('Votes')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag('th')&lt;br /&gt;
					:wikitext('%')&lt;br /&gt;
					:attr('scope', 'col')&lt;br /&gt;
					:attr('rowspan', rowspan)&lt;br /&gt;
					:done()&lt;br /&gt;
			cols = cols + 2&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if headings['sw'] and not has_seats then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext('+/–')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	rowspan = (rounds &amp;gt; 1) and 2 or nil&lt;br /&gt;
	if headings['seats'] and not has_seats then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext('Seats')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	if headings['totseats'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(headings['totseats'] and 'Total&amp;lt;br&amp;gt;seats' or 'Totseats&amp;amp;pm;')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	if headings['sc'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(headings['seats'] and '+/–' or 'Seats&amp;amp;pm;')&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:attr('rowspan', rowspan)&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	if headings['st1t'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext('Seats')&lt;br /&gt;
				:attr('colspan', 5)&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:done()&lt;br /&gt;
	if rounds &amp;lt; 2 then secondrow = root:tag('tr')&lt;br /&gt;
	end&lt;br /&gt;
		secondrow&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(args.seattype1)&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	if headings['st2t'] then&lt;br /&gt;
		secondrow&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(args.seattype2)&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	if headings['st3t'] then&lt;br /&gt;
		secondrow&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(args.seattype3)&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	if headings['st4t'] then&lt;br /&gt;
		secondrow&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(args.seattype4)&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	if headings['st5t'] then&lt;br /&gt;
		secondrow&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext(args.seattype5)&lt;br /&gt;
				:attr('scope', 'col')&lt;br /&gt;
				:done()&lt;br /&gt;
		cols = cols + 1&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	if topcell then&lt;br /&gt;
		topcell:attr('colspan', cols)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local cs = cols - 2*rounds&lt;br /&gt;
			- (headings['sw'] and 1 or 0)&lt;br /&gt;
			- (headings['totseats'] and 1 or 0)&lt;br /&gt;
			- (headings['seats'] and 1 or 0)&lt;br /&gt;
			- (headings['sc'] and 1 or 0)&lt;br /&gt;
			- (headings['st1t'] and 1 or 0)&lt;br /&gt;
			- (headings['st2t'] and 1 or 0)&lt;br /&gt;
			- (headings['st3t'] and 1 or 0)&lt;br /&gt;
			- (headings['st4t'] and 1 or 0)&lt;br /&gt;
			- (headings['st5t'] and 1 or 0)&lt;br /&gt;
			- (has_seats and 1 or 0)&lt;br /&gt;
			- (has_sw and 1 or 0)&lt;br /&gt;
			+ (has_votes and 0 or 2)&lt;br /&gt;
			- (seats_only and 2 or 0)&lt;br /&gt;
	local rsuff = (rounds &amp;gt; 1) and {'', '_2'} or {''}&lt;br /&gt;
	for i, v in ipairs(index) do&lt;br /&gt;
		row = root:tag('tr')&lt;br /&gt;
			:addClass(args['class' .. v])&lt;br /&gt;
			:css('font-weight', args['font-weight' .. v])&lt;br /&gt;
&lt;br /&gt;
		-- determine the color&lt;br /&gt;
		local color = args['colour' .. v] or args['color' .. v] or nil&lt;br /&gt;
		if color == nil then&lt;br /&gt;
			local party = unlink(args['party' .. v]) or ''&lt;br /&gt;
			if party ~= '' and mw.title.new('Template:' .. party .. '/meta/color').exists then&lt;br /&gt;
				color = frame:expandTemplate{title = party .. '/meta/color'}&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if args['row' .. v] then&lt;br /&gt;
			row&lt;br /&gt;
				:css('background-color', args['acolor' .. v])&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(args['row' .. v])&lt;br /&gt;
					:attr('colspan', cs)&lt;br /&gt;
		else&lt;br /&gt;
			-- create the empty color cell&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('background-color', color)&lt;br /&gt;
&lt;br /&gt;
			-- add the rest of the row&lt;br /&gt;
			if args['dsv'] then&lt;br /&gt;
				row&lt;br /&gt;
					:tag('td')&lt;br /&gt;
						:wikitext(args['party' .. v])&lt;br /&gt;
				row&lt;br /&gt;
					:tag('td')&lt;br /&gt;
						:wikitext(args['cand' .. v])&lt;br /&gt;
			end&lt;br /&gt;
			if headings['cand'] and not args['dsv'] then&lt;br /&gt;
				row&lt;br /&gt;
					:tag('td')&lt;br /&gt;
						:wikitext(args['cand' .. v])&lt;br /&gt;
				if headings['vp'] then&lt;br /&gt;
					row&lt;br /&gt;
						:tag('td')&lt;br /&gt;
							:wikitext(args['vp' .. v])&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if headings['party'] and not args['dsv'] then&lt;br /&gt;
				row&lt;br /&gt;
					:tag('td')&lt;br /&gt;
						:wikitext(args['party' .. v])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if args['votes' .. v] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(fmt(args['votes' .. v]))&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(pct(args['votes' .. v], valid[1]))&lt;br /&gt;
		elseif args['ivotes' .. v] or args ['ipct' .. v] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:css('font-style', 'italic')&lt;br /&gt;
					:wikitext(fmt(args['ivotes' .. v]))&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:css('font-style', 'italic')&lt;br /&gt;
					:wikitext(args['ipct' .. v])&lt;br /&gt;
		elseif has_votes and not headings['sw'] and not has_seats or args['invalid'] and not headings['sw'] and not has_seats or args['totalvotes'] and not headings['sw'] and not has_seats or args['electorate'] and not headings['sw'] and not has_seats or args['turnout'] and not headings['sw'] and not has_seats or has_seats and args['seats' .. v] and not args['votes' .. v] and not args['ivotes' .. v] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:attr('colspan', 2)&lt;br /&gt;
		elseif has_seats and not args['seats' .. v] and not headings['sw'] or has_votes and headings['sw'] and not has_seats then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:attr('colspan', 3)&lt;br /&gt;
		elseif has_seats and headings['sw'] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:attr('colspan', 4)&lt;br /&gt;
		end&lt;br /&gt;
		if headings['sw'] and args['votes' .. v] or headings['sw'] and args['ivotes' .. v] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['sw' .. v])&lt;br /&gt;
		end&lt;br /&gt;
		if headings['seats'] and not args['dsv'] and not has_seats and rounds &amp;lt; 2 or has_seats and args['seats' .. v] or has_seats and args['votes' .. v] then&lt;br /&gt;
		if args['iseats' .. v] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('font-style', 'italic')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['iseats' .. v] or '–')&lt;br /&gt;
		else&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(fmt(args['seats' .. v]) or '–')&lt;br /&gt;
		end&lt;br /&gt;
		end&lt;br /&gt;
		if args['votes' .. v .. '_2'] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(fmt(args['votes' .. v .. '_2']))&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(pct(args['votes' .. v .. '_2'], valid[2]))&lt;br /&gt;
		elseif args['ivotes' .. v .. '_2'] or args ['ipct' .. v.. '_2'] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:css('font-style', 'italic')&lt;br /&gt;
					:wikitext(fmt(args['ivotes' .. v .. '_2']))&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:css('font-style', 'italic')&lt;br /&gt;
					:wikitext(args['ipct' .. v .. '_2'])&lt;br /&gt;
		elseif args['invalid2'] and args['seats' .. v .. '_2'] or args['totalvotes2'] and args['seats' .. v .. '_2'] or args['electorate2'] and args['seats' .. v .. '_2'] or args['turnout2'] and args['seats' .. v .. '_2'] or has_votes and rounds &amp;gt; 1 and args['seats' .. v .. '_2'] or has_votes and rounds &amp;gt; 1 and not has_seats or has_seats and not args['votes' .. v .. '_2'] and args['seats' .. v .. '_2'] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:attr('colspan', 2)&lt;br /&gt;
		elseif has_seats and not args['seats' .. v .. '_2'] and not headings['sw'] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:attr('colspan', 3)&lt;br /&gt;
		elseif has_seats and headings['sw'] then&lt;br /&gt;
				row:tag('td')&lt;br /&gt;
					:attr('colspan', 4)&lt;br /&gt;
		end&lt;br /&gt;
		if headings['seats'] and args['dsv'] or headings['seats'] and rounds &amp;gt; 1 and not has_seats then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(fmt(args['seats' .. v]) or '–')&lt;br /&gt;
		end&lt;br /&gt;
		if has_sw and args['votes' .. v .. '_2'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['sw' .. v .. '_2'])&lt;br /&gt;
		end&lt;br /&gt;
		if args['seats' .. v .. '_2'] or has_seats and args['votes' .. v .. '_2'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(fmt(args['seats' .. v .. '_2']) or '–')&lt;br /&gt;
		end&lt;br /&gt;
		if headings['totseats'] and (args['totseats' .. v]) then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(fmt(args['totseats' .. v]))&lt;br /&gt;
		elseif headings['totseats'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:css('font-style', 'italic')&lt;br /&gt;
					:wikitext(args['itotseats' .. v] or '–')&lt;br /&gt;
		end&lt;br /&gt;
		if headings['sc'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['sc' .. v] or '–')&lt;br /&gt;
		end&lt;br /&gt;
		if headings['st1t'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['st1t' .. v])&lt;br /&gt;
		end&lt;br /&gt;
		if headings['st2t'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['st2t' .. v])&lt;br /&gt;
		end&lt;br /&gt;
		if headings['st3t'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['st3t' .. v])&lt;br /&gt;
		end&lt;br /&gt;
		if headings['st4t'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['st4t' .. v])&lt;br /&gt;
		end&lt;br /&gt;
		if headings['st5t'] then&lt;br /&gt;
			row&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('text-align', 'right')&lt;br /&gt;
					:wikitext(args['st5t' .. v])&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- separating line&lt;br /&gt;
	row = root&lt;br /&gt;
		:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:css('background', '#eaecf0')&lt;br /&gt;
			:attr('colspan', cols)&lt;br /&gt;
	-- valid votes&lt;br /&gt;
	if args['invalid'] or args['invalid2'] then&lt;br /&gt;
	row = root&lt;br /&gt;
		:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:css('text-align', 'right')&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:wikitext('Valid votes')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:attr('colspan', cs)&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('font-weight', 'normal')&lt;br /&gt;
			:css('background', 'inherit')&lt;br /&gt;
	if args['invalid'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(ovalid[1]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext(pct(ovalid[1], ovalid[1] + invalid[1]))&lt;br /&gt;
	elseif not args['invalid'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['validsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['validsw'])&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['validsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if rounds &amp;gt; 1 and args['invalid2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(ovalid[2]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext(pct(ovalid[2], ovalid[2] + invalid[2]))&lt;br /&gt;
	elseif rounds &amp;gt; 1 and not args['invalid2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['validsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['validsw2'])&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['validsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if args['invalidsw'] and not has_sw then&lt;br /&gt;
		row:tag('td')&lt;br /&gt;
			:wikitext(args['validsw'])&lt;br /&gt;
		local cspan = (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
	if headings['seats'] or headings['sc'] then&lt;br /&gt;
		local cspan = (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	elseif headings['sw'] or headings['seats'] or headings['sc'] or headings['st1t'] or headings['st2t'] or headings['st3t'] or headings['st4t'] or headings['ss51t'] then&lt;br /&gt;
		local cspan = (headings['sw'] and 1 or 0) + (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	-- invalid votes&lt;br /&gt;
	row = root:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:css('text-align', 'right')&lt;br /&gt;
		if args['blank'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:wikitext('Invalid votes')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:attr('colspan', cs)&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('font-weight', 'normal')&lt;br /&gt;
			:css('background', 'inherit')&lt;br /&gt;
	else&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:wikitext('Invalid/blank votes')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:attr('colspan', cs)&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('font-weight', 'normal')&lt;br /&gt;
			:css('background', 'inherit')&lt;br /&gt;
	end&lt;br /&gt;
	if args['invalid'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(invalid[1]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext(pct(invalid[1], ovalid[1] + invalid[1]))&lt;br /&gt;
	elseif not args['invalid'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['invalidsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['invalidsw'])&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['invalidsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if rounds &amp;gt; 1 and args['invalid2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(invalid[2]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext(pct(invalid[2], ovalid[2] + invalid[2]))&lt;br /&gt;
	elseif rounds &amp;gt; 1 and not args['invalid2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['invalidsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['invalidsw2'])&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['invalidsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if args['invalidsw'] and not has_sw then&lt;br /&gt;
		row:tag('td')&lt;br /&gt;
			:wikitext(args['invalidsw'])&lt;br /&gt;
	if headings['seats'] or headings['sc'] or headings['st1t'] or headings['st2t'] or headings['st3t'] or headings['st4t'] or headings['ss51t'] then&lt;br /&gt;
		local cspan = (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	elseif headings['sw'] or headings['seats'] or headings['sc'] or headings['st1t'] or headings['st2t'] or headings['st3t'] or headings['st4t'] or headings['ss51t'] then&lt;br /&gt;
		local cspan = (headings['sw'] and 1 or 0) + (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	-- total&lt;br /&gt;
	if args['invalid'] or args['totalvotes'] or args['invalid2'] or args['totalvotes2'] then&lt;br /&gt;
	row = root:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:css('font-weight', 'bold')&lt;br /&gt;
			:css('text-align', 'right')&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:wikitext('Total votes')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:attr('colspan', cs)&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('background', 'inherit')&lt;br /&gt;
	if not args['totalvotes'] and args['invalid'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(ovalid[1] + invalid[1]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(pct(1, 1))&lt;br /&gt;
	elseif args['totalvotes'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(args.totalvotes))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext('–')&lt;br /&gt;
	elseif not args['invalid'] and not args['totalvotes'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['invalidsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext('–')&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['invalidsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if rounds &amp;gt; 1 and args['invalid2'] and not args['totalvotes2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(ovalid[2] + invalid[2]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(pct(1, 1))&lt;br /&gt;
	elseif rounds &amp;gt; 1 and args['totalvotes2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(args.totalvotes2))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext('–')&lt;br /&gt;
	elseif rounds &amp;gt; 1 and not args['invalid2'] or rounds &amp;gt; 1 and not args['totalvotes2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
		:tag('td')&lt;br /&gt;
				:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['invalidsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext('–')&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['invalidsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if args['invalidsw'] and not has_sw then&lt;br /&gt;
		row:tag('td')&lt;br /&gt;
			:wikitext('–')&lt;br /&gt;
	if headings['seats'] or headings['sc'] or headings['st1t'] or headings['st2t'] or headings['st3t'] or headings['st4t'] or headings['st5t'] then&lt;br /&gt;
		local cspan = (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	elseif headings['sw'] or headings['seats'] or headings['sc'] or headings['st1t'] or headings['st2t'] or headings['st3t'] or headings['st4t'] or headings['st5t'] then&lt;br /&gt;
		local cspan = (headings['sw'] and 1 or 0) + (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	-- registered&lt;br /&gt;
	if args['electorate'] or args['electorate2'] or args['turnout'] or args['turnout2'] then&lt;br /&gt;
	row = root:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:css('text-align', 'right')&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:wikitext('Registered voters/turnout')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:attr('colspan', cs)&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('font-weight', 'normal')&lt;br /&gt;
			:css('background', 'inherit')&lt;br /&gt;
	row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(fmt(electorate[1]))&lt;br /&gt;
	if args['invalid'] and args['electorate'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(pct(ovalid[1] + invalid[1], electorate[1]))&lt;br /&gt;
	elseif args['totalvotes'] and args['electorate'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(pct(totalvotes[1], electorate[1]))&lt;br /&gt;
	elseif args['electorate'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args.turnout or '–')&lt;br /&gt;
	else&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args.turnout)&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['turnoutsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['turnoutsw'])&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['turnoutsw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if rounds &amp;gt; 1 then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(fmt(electorate[2]))&lt;br /&gt;
	if args['invalid2'] and args['electorate2'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(pct(ovalid[2] + invalid[2], electorate[2]))&lt;br /&gt;
	elseif args['totalvotes2'] and args['electorate2'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(pct(totalvotes[2], electorate[2]))&lt;br /&gt;
	elseif args['electorate2'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args.turnout2 or '–')&lt;br /&gt;
	else&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args.turnout2)&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and not headings['sw'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and args['turnoutsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['turnoutsw2'])&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	if has_seats and headings['sw'] and not args['turnoutsw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:attr('colspan', 2)&lt;br /&gt;
			:wikitext()&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	if args['turnoutsw'] and not has_sw then&lt;br /&gt;
		row:tag('td')&lt;br /&gt;
			:wikitext(args['turnoutsw'])&lt;br /&gt;
	if headings['seats'] or headings['sc'] or headings['st1t'] or headings['st2t'] or headings['st3t'] or headings['st4t'] or headings['st5t'] then&lt;br /&gt;
		local cspan = (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	elseif headings['sw'] or headings['seats'] or headings['sc'] or headings['st1t'] or headings['st2t'] or headings['st3t'] or headings['st4t'] or headings['st5t'] then&lt;br /&gt;
		local cspan = (headings['sw'] and 1 or 0) + (headings['seats'] and 1 or 0) + (headings['sc'] and 1 or 0) + (headings['st1t'] and 1 or 0) + (headings['st2t'] and 1 or 0) + (headings['st3t'] and 1 or 0) + (headings['st4t'] and 1 or 0) + (headings['st5t'] and 1 or 0)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cspan &amp;gt; 1 and cspan or nil)&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	if args['majority'] then&lt;br /&gt;
	if args['invalid'] or args['electorate'] then&lt;br /&gt;
	row = root&lt;br /&gt;
		:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:css('background', '#eaecf0')&lt;br /&gt;
			:attr('colspan', cols)&lt;br /&gt;
	end&lt;br /&gt;
	row = root&lt;br /&gt;
		:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:css('text-align', 'right')&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:wikitext('Majority')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:attr('colspan', cs)&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('font-weight', 'normal')&lt;br /&gt;
			:css('background', 'inherit')&lt;br /&gt;
	for k=1, rounds do&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(majority[k]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(majoritypct[k]))&lt;br /&gt;
	end&lt;br /&gt;
	if args['majoritysw'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['majoritysw'])&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	if args['result'] then&lt;br /&gt;
	row = root:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
		-- determine the color&lt;br /&gt;
		local color = args['resultcolour'] or nil&lt;br /&gt;
		if color == nil then&lt;br /&gt;
			local result = unlink(args['result']) or ''&lt;br /&gt;
			if result ~= '' and mw.title.new('Template:' .. result .. '/meta/color').exists then&lt;br /&gt;
				color = frame:expandTemplate{title = result .. '/meta/color'}&lt;br /&gt;
			end&lt;br /&gt;
			end&lt;br /&gt;
	if args['resultsw'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:css('background-color', color)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', 2)&lt;br /&gt;
				:wikitext(args['result'])&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', 2)&lt;br /&gt;
				:css('text-align', 'right')&lt;br /&gt;
				:wikitext('Swing')&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:css('text-align', 'right')&lt;br /&gt;
				:wikitext(args['resultsw'])&lt;br /&gt;
	else&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:css('background-color', color)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cols - 1)&lt;br /&gt;
				:wikitext(args['result'])&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	if args['majority2'] then&lt;br /&gt;
	row = root&lt;br /&gt;
		:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:css('text-align', 'right')&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:wikitext('Majority')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:attr('colspan', cs)&lt;br /&gt;
			:css('text-align', 'left')&lt;br /&gt;
			:css('font-weight', 'normal')&lt;br /&gt;
			:css('background', 'inherit')&lt;br /&gt;
	for k=1, rounds do&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(majority2[k]))&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(fmt(majoritypct2[k]))&lt;br /&gt;
	end&lt;br /&gt;
	if args['majoritysw2'] then&lt;br /&gt;
	row&lt;br /&gt;
		:tag('td')&lt;br /&gt;
			:wikitext(args['majoritysw2'])&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	if args['result2'] then&lt;br /&gt;
	row = root:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
		-- determine the color&lt;br /&gt;
		local color = args['resultcolour'] or nil&lt;br /&gt;
		if color == nil then&lt;br /&gt;
			local result = unlink(args['result2']) or ''&lt;br /&gt;
			if result ~= '' and mw.title.new('Template:' .. result .. '/meta/color').exists then&lt;br /&gt;
				color = frame:expandTemplate{title = result .. '/meta/color'}&lt;br /&gt;
			end&lt;br /&gt;
			end&lt;br /&gt;
	if args['resultsw2'] then&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:css('background-color', color)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', 2)&lt;br /&gt;
				:wikitext(args['result2'])&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', 2)&lt;br /&gt;
				:css('text-align', 'right')&lt;br /&gt;
				:wikitext('Swing')&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:css('text-align', 'right')&lt;br /&gt;
				:wikitext(args['resultsw2'])&lt;br /&gt;
	else&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:css('background-color', color)&lt;br /&gt;
		row&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', cols - 1)&lt;br /&gt;
				:wikitext(args['result2'])&lt;br /&gt;
	end&lt;br /&gt;
	end&lt;br /&gt;
	if args['source'] then&lt;br /&gt;
	row = root:tag('tr')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:css('text-align', 'right')&lt;br /&gt;
	row:tag('td')&lt;br /&gt;
		:wikitext('Source: ', args.source)&lt;br /&gt;
		:attr('colspan', cols)&lt;br /&gt;
		:css('text-align', 'left')&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(root) .. tracking&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>