<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.eternityrpc.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ayzek</id>
	<title>ERPC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.eternityrpc.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ayzek"/>
	<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/wiki/Special:Contributions/Ayzek"/>
	<updated>2026-10-25T13:34:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=MediaWiki:Group-member-member&amp;diff=4462</id>
		<title>MediaWiki:Group-member-member</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=MediaWiki:Group-member-member&amp;diff=4462"/>
		<updated>2020-05-08T00:43:21Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: Created page with &amp;quot;Member&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Member&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=MediaWiki:Group-member&amp;diff=4461</id>
		<title>MediaWiki:Group-member</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=MediaWiki:Group-member&amp;diff=4461"/>
		<updated>2020-05-08T00:43:06Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: Created page with &amp;quot;Members&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Members&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:RC&amp;diff=4192</id>
		<title>Template:RC</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:RC&amp;diff=4192"/>
		<updated>2019-07-29T02:46:51Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;||&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Variables]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Trp&amp;diff=4190</id>
		<title>Template:Trp</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Trp&amp;diff=4190"/>
		<updated>2019-07-29T02:45:23Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch: {{{1}}}&lt;br /&gt;
| h = {{!}}- &lt;br /&gt;
! {{{2|}}} {{#if:{{{3|}}}|!!{{{3|}}}|}} {{#if:{{{4|}}}|!!{{{4|}}}|}} {{#if:{{{5|}}}|!!{{{5|}}}|}} {{#if:{{{6|}}}|!!{{{6|}}}|}} {{#if:{{{7|}}}|!!{{{7|}}}|}} {{#if:{{{8|}}}|!!{{{8|}}}|}} {{#if:{{{9|}}}|!!{{{9|}}}|}} {{#if:{{{10|}}}|!!{{{10|}}}|}}&lt;br /&gt;
| r&lt;br /&gt;
| #default = {{!}}-&lt;br /&gt;
{{!}}{{{2|}}}{{#if:{{{3|}}}|{{RC}}{{{3|yes}}}|}}{{#if:{{{4|}}}|{{RC}}{{{4|}}}|}}{{#if:{{{5|}}}|{{RC}}{{{5|}}}|}}{{#if:{{{6|}}}|{{RC}}{{{6|}}}|}}{{#if:{{{7|}}}|{{RC}}{{{7|}}}|}}{{#if:{{{8|}}}|{{RC}}{{{8|}}}|}}{{#if:{{{9|}}}|{{RC}}{{{9|}}}|}}{{#if:{{{10|}}}|{{RC}}{{{10|}}}|}}&lt;br /&gt;
| b = {{!}}- style=&amp;quot;background-color:#D0E6FF;&amp;quot;&lt;br /&gt;
{{!}}{{{2|}}}{{#if:{{{3|}}}|{{RC}}{{{3|yes}}}|}}{{#if:{{{4|}}}|{{RC}}{{{4|}}}|}}{{#if:{{{5|}}}|{{RC}}{{{5|}}}|}}{{#if:{{{6|}}}|{{RC}}{{{6|}}}|}}{{#if:{{{7|}}}|{{RC}}{{{7|}}}|}}{{#if:{{{8|}}}|{{RC}}{{{8|}}}|}}{{#if:{{{9|}}}|{{RC}}{{{9|}}}|}}{{#if:{{{10|}}}|{{RC}}{{{10|}}}|}}&lt;br /&gt;
| o = {{!}}- style=&amp;quot;background-color:{{{color}}};&amp;quot;&lt;br /&gt;
{{!}}{{{2|}}}{{#if:{{{3|}}}|{{RC}}{{{3|yes}}}|}}{{#if:{{{4|}}}|{{RC}}{{{4|}}}|}}{{#if:{{{5|}}}|{{RC}}{{{5|}}}|}}{{#if:{{{6|}}}|{{RC}}{{{6|}}}|}}{{#if:{{{7|}}}|{{RC}}{{{7|}}}|}}{{#if:{{{8|}}}|{{RC}}{{{8|}}}|}}{{#if:{{{9|}}}|{{RC}}{{{9|}}}|}}{{#if:{{{10|}}}|{{RC}}{{{10|}}}|}}}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Ordinal&amp;diff=4175</id>
		<title>Module:Ordinal</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Ordinal&amp;diff=4175"/>
		<updated>2019-07-26T02:07:22Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[  &lt;br /&gt;
 &lt;br /&gt;
This template will add the appropriate ordinal suffix to a given integer.&lt;br /&gt;
 &lt;br /&gt;
Please do not modify this code without applying the changes first at&lt;br /&gt;
Module:Ordinal/sandbox and testing.&lt;br /&gt;
 &lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local yesno     = require(&amp;#039;Module:Yesno&amp;#039;) -- boolean value interpretation&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
This function converts an integer value into a numeral followed by ordinal indicator.&lt;br /&gt;
The output string might contain HTML tags.&lt;br /&gt;
 &lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:Ordinal|ordinal|1=|2=|sup=}}&lt;br /&gt;
{{#invoke:Ordinal|ordinal}} - uses the caller&amp;#039;s parameters&lt;br /&gt;
 &lt;br /&gt;
Parameters&lt;br /&gt;
    1: Any number or string.&lt;br /&gt;
    2: Set to &amp;quot;d&amp;quot; if the module should display &amp;quot;d&amp;quot; instead of &amp;quot;nd&amp;quot; and &amp;quot;rd&amp;quot;.&lt;br /&gt;
    sup: Set to yes/no to toggle superscript ordinal suffix.&lt;br /&gt;
]]&lt;br /&gt;
function p.ordinal(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
    if args[1] == nil then&lt;br /&gt;
        args = frame:getParent().args&lt;br /&gt;
    end&lt;br /&gt;
    if args[1] == nil then&lt;br /&gt;
    	args[1] = &amp;quot;{{{1}}}&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    return p._ordinal(args[1], (args[2] == &amp;#039;d&amp;#039;), yesno(args.sup))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._ordinal(n, d, sup)&lt;br /&gt;
	local x = tonumber(mw.ustring.match(n, &amp;quot;(%d*)%W*$&amp;quot;))&lt;br /&gt;
	local suffix = &amp;quot;th&amp;quot;&lt;br /&gt;
	-- If tonumber(n) worked:&lt;br /&gt;
	if x then&lt;br /&gt;
		local mod10 = math.abs(x) % 10&lt;br /&gt;
		local mod100 = math.abs(x) % 100&lt;br /&gt;
		if     mod10 == 1 and mod100 ~= 11 then&lt;br /&gt;
			suffix = &amp;quot;st&amp;quot;&lt;br /&gt;
		elseif mod10 == 2 and mod100 ~= 12 then&lt;br /&gt;
			if d then suffix = &amp;quot;d&amp;quot; else suffix = &amp;quot;nd&amp;quot; end&lt;br /&gt;
		elseif mod10 == 3 and mod100 ~= 13 then&lt;br /&gt;
			if d then suffix = &amp;quot;d&amp;quot; else suffix = &amp;quot;rd&amp;quot; end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if sup then&lt;br /&gt;
		suffix = &amp;quot;&amp;lt;sup&amp;gt;&amp;quot; .. suffix .. &amp;quot;&amp;lt;/sup&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return n .. suffix&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Ordinal&amp;diff=4173</id>
		<title>Template:Ordinal</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Ordinal&amp;diff=4173"/>
		<updated>2019-07-26T02:07:17Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#invoke:Ordinal|ordinal}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Lua&amp;diff=4169</id>
		<title>Template:Lua</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Lua&amp;diff=4169"/>
		<updated>2019-07-26T02:07:16Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Lua banner|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Lua|Module:Lua banner}}&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:MONTHNUMBER&amp;diff=4171</id>
		<title>Template:MONTHNUMBER</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:MONTHNUMBER&amp;diff=4171"/>
		<updated>2019-07-26T02:07:16Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#if:{{{1|}}}&lt;br /&gt;
 |{{#switch:{{lc:{{{1}}}}}&lt;br /&gt;
  |january|jan=1&lt;br /&gt;
  |february|feb=2&lt;br /&gt;
  |march|mar=3&lt;br /&gt;
  |apr|april=4&lt;br /&gt;
  |may=5&lt;br /&gt;
  |june|jun=6&lt;br /&gt;
  |july|jul=7&lt;br /&gt;
  |august|aug=8&lt;br /&gt;
  |september|sep|sept=9&lt;br /&gt;
  |october|oct=10&lt;br /&gt;
  |november|nov=11&lt;br /&gt;
  |december|dec=12&lt;br /&gt;
  |{{#ifexpr:{{{1}}}&amp;lt;0&lt;br /&gt;
   |{{#ifexpr:(({{{1}}})round 0)!=({{{1}}})&lt;br /&gt;
    |{{#expr:12-(((0.5-({{{1}}}))round 0)mod 12)}}&lt;br /&gt;
    |{{#expr:12-(((11.5-({{{1}}}))round 0)mod 12)}}&lt;br /&gt;
   }}&lt;br /&gt;
  |{{#expr:(((10.5+{{{1}}})round 0)mod 12)+1}}&lt;br /&gt;
  }}&lt;br /&gt;
 }}&lt;br /&gt;
 |Missing required parameter 1=&amp;#039;&amp;#039;month&amp;#039;&amp;#039;!&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Infobox_international_football_competition/doc&amp;diff=4167</id>
		<title>Template:Infobox international football competition/doc</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Infobox_international_football_competition/doc&amp;diff=4167"/>
		<updated>2019-07-26T02:07:15Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- Place categories where indicated at bottom of page and interwikis at Wikidata --&amp;gt;&lt;br /&gt;
{{Lua|Module:Infobox|Module:InfoboxImage|Module:Check for unknown parameters}}&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;Infobox international football competition&lt;br /&gt;
| tourney_name = &amp;lt;!- PAGE NAME--&amp;gt;&lt;br /&gt;
| year = &lt;br /&gt;
| yearr = &lt;br /&gt;
| other_titles = &lt;br /&gt;
| image = &lt;br /&gt;
| size = &amp;lt;!-- in pixels; just enter an integer--&amp;gt;&lt;br /&gt;
| alt = &lt;br /&gt;
| caption = &lt;br /&gt;
| city = &lt;br /&gt;
| country =&lt;br /&gt;
| dates = &amp;lt;!-- {{Start date|YYYY|MM|DD|df=y}}–&amp;lt;br /&amp;gt;{{End date|YYYY|MM|DD|df=y}} --&amp;gt;&lt;br /&gt;
| num_teams = &lt;br /&gt;
| confederations = &amp;lt;!-- use only one of these three options --&amp;gt;&lt;br /&gt;
| sub-confederations = &amp;lt;!-- use only one of these three options --&amp;gt;&lt;br /&gt;
| associations = &amp;lt;!-- use only one of these three options --&amp;gt;&lt;br /&gt;
| venues = &lt;br /&gt;
| cities = &lt;br /&gt;
| champion = &amp;lt;!-- automatically wraps into {{fb}} template --&amp;gt;&lt;br /&gt;
| champion-flagvar = use if the flag is other as current&lt;br /&gt;
| champion_other = &amp;lt;!-- use instead if the team is not in {{fb}} (enter your own code) --&amp;gt;&lt;br /&gt;
| count = &lt;br /&gt;
| second = &amp;lt;!-- automatically wraps into {{fb}} template --&amp;gt;&lt;br /&gt;
| second-flagvar = use if the flag is other as current&lt;br /&gt;
| second_other = &amp;lt;!-- use instead if the team is not in {{fb}} (enter your own code) --&amp;gt;&lt;br /&gt;
| third = &amp;lt;!-- automatically wraps into {{fb}} template --&amp;gt;&lt;br /&gt;
| third-flagvar = use if the flag is other as current&lt;br /&gt;
| third_other = &amp;lt;!-- use instead if the team is not in {{fb}} (enter your own code) --&amp;gt;&lt;br /&gt;
| fourth = &amp;lt;!-- automatically wraps into {{fb}} template --&amp;gt;&lt;br /&gt;
| fourth-flagvar = use if the flag is other as current&lt;br /&gt;
| fourth_other = &amp;lt;!-- use instead if the team is not in {{fb}} (enter your own code) --&amp;gt;&lt;br /&gt;
| matches = &lt;br /&gt;
| goals = &lt;br /&gt;
| attendance = &lt;br /&gt;
| top_scorer = &lt;br /&gt;
| player = &lt;br /&gt;
| young_player = &lt;br /&gt;
| goalkeeper = &lt;br /&gt;
| fair_play =&lt;br /&gt;
| prevseason = &lt;br /&gt;
| nextseason = &lt;br /&gt;
| updated =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Infobox international football competition&lt;br /&gt;
| tourney_name = All-Player Gold Cup&lt;br /&gt;
| year = 2009&lt;br /&gt;
| other_titles = All-Player Championship&lt;br /&gt;
| image = No image.svg&lt;br /&gt;
| size = 200px&lt;br /&gt;
| alt = Blank image&lt;br /&gt;
| caption = 2007 All-Player Gold Cup official logo&lt;br /&gt;
| country = United States&lt;br /&gt;
| dates = {{Start date|2009|06|06}}–&amp;lt;br /&amp;gt;{{End date|2009|06|24}}&lt;br /&gt;
| num_teams = 12&lt;br /&gt;
| confederations = 1&lt;br /&gt;
| venues = 6&lt;br /&gt;
| cities = 6&lt;br /&gt;
| champion = Brazil&lt;br /&gt;
| second_other = {{flagicon|Italy}} [[A.C. Milan]]&lt;br /&gt;
| third_other = {{fbw|Germany}}&lt;br /&gt;
| fourth_other = {{fbu|20|Sudan}}&lt;br /&gt;
| count = 4&lt;br /&gt;
| matches = 2&lt;br /&gt;
| goals = 64&lt;br /&gt;
| attendance = 921476&lt;br /&gt;
| top_scorer = {{flagicon|HON}} [[Carlos Pavón]]&lt;br /&gt;
| player = {{flagicon|CAN}} [[Julian De Guzman]]&lt;br /&gt;
| young_player = &lt;br /&gt;
| updated = 31 December 2011&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox international football competition&lt;br /&gt;
| tourney_name = All-Player Gold Cup&lt;br /&gt;
| year = 2009&lt;br /&gt;
| other_titles = All-Player Championship&lt;br /&gt;
| image = No image.svg&lt;br /&gt;
| size = 200px&lt;br /&gt;
| alt = Blank image&lt;br /&gt;
| caption = 2007 All-Player Gold Cup official logo&lt;br /&gt;
| country = United States&lt;br /&gt;
| dates = {{Start date|2009|06|06}}–&amp;lt;br /&amp;gt;{{End date|2009|06|24}}&lt;br /&gt;
| num_teams = 12&lt;br /&gt;
| confederations = 1&lt;br /&gt;
| venues = 6&lt;br /&gt;
| cities = 6&lt;br /&gt;
| champion = Brazil&lt;br /&gt;
| second_other = {{flagicon|Italy}} [[A.C. Milan]]&lt;br /&gt;
| third_other = {{fbw|Germany}}&lt;br /&gt;
| fourth_other = {{fbu|20|Sudan}}&lt;br /&gt;
| count = 4&lt;br /&gt;
| matches = 2&lt;br /&gt;
| goals = 64&lt;br /&gt;
| attendance = 921476&lt;br /&gt;
| top_scorer = {{flagicon|HON}} [[Carlos Pavón]] (7)&lt;br /&gt;
| player = {{flagicon|CAN}} [[Julian De Guzman]]&lt;br /&gt;
| young_player = &lt;br /&gt;
| updated = 31 December 2011&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Microformat ==&lt;br /&gt;
{{UF-hcal}}&lt;br /&gt;
&lt;br /&gt;
== Tracking category ==&lt;br /&gt;
* {{clc|Pages using infobox international football competition with unknown parameters}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |&lt;br /&gt;
&amp;lt;!-- Categories below this line, please; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Association football infobox templates|International Football Competition]]&lt;br /&gt;
[[Category:Infobox templates with updated parameter]]&lt;br /&gt;
[[Category:Templates that add a tracking category]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:URL&amp;diff=4165</id>
		<title>Module:URL</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:URL&amp;diff=4165"/>
		<updated>2019-07-26T02:07:04Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements {{URL}}&lt;br /&gt;
--&lt;br /&gt;
-- See unit tests at [[Module:URL/tests]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
local function safeUri(s)&lt;br /&gt;
	local success, uri = pcall(function()&lt;br /&gt;
		return mw.uri.new(s)&lt;br /&gt;
	end)&lt;br /&gt;
	if success then&lt;br /&gt;
		return uri&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractUrl(args)&lt;br /&gt;
	for name, val in pairs(args) do&lt;br /&gt;
		local url = name .. &amp;quot;=&amp;quot; .. val;&lt;br /&gt;
		url = mw.ustring.gsub(url, &amp;#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&amp;#039;, &amp;#039;http%1://%3&amp;#039;)&lt;br /&gt;
		local uri = safeUri(url);&lt;br /&gt;
		if uri and uri.host then&lt;br /&gt;
			return url&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._url(url, text, msg)&lt;br /&gt;
	url = mw.text.trim(url or &amp;#039;&amp;#039;)&lt;br /&gt;
	text = mw.text.trim(text or &amp;#039;&amp;#039;)&lt;br /&gt;
	local nomsg = (msg or &amp;#039;&amp;#039;):sub(1,1):lower() == &amp;quot;n&amp;quot; or msg == &amp;#039;false&amp;#039; -- boolean: true if msg is &amp;quot;false&amp;quot; or starts with n or N&lt;br /&gt;
&lt;br /&gt;
	if url == &amp;#039;&amp;#039; then&lt;br /&gt;
		if text == &amp;#039;&amp;#039; then&lt;br /&gt;
			if nomsg then&lt;br /&gt;
				return nil&lt;br /&gt;
			else&lt;br /&gt;
				return mw.getCurrentFrame():expandTemplate{ title = &amp;#039;tlx&amp;#039;, args = { &amp;#039;URL&amp;#039;, &amp;quot;&amp;#039;&amp;#039;example.com&amp;#039;&amp;#039;&amp;quot;, &amp;quot;&amp;#039;&amp;#039;optional display text&amp;#039;&amp;#039;&amp;quot; } }&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If the URL contains any unencoded spaces, encode them, because MediaWiki will otherwise interpret a space as the end of the URL.&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;%s&amp;#039;, function(s) return mw.uri.encode(s, &amp;#039;PATH&amp;#039;) end)&lt;br /&gt;
&lt;br /&gt;
	-- If there is an empty query string or fragment id, remove it as it will cause mw.uri.new to throw an error&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;#$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;%?$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- If it&amp;#039;s an HTTP[S] URL without the double slash, fix it.&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&amp;#039;, &amp;#039;http%1://%3&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Handle URLs from Wikidata of the format http&amp;amp;#58;//&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;^[Hh][Tt][Tt][Pp]([Ss]?)&amp;amp;#58;//&amp;#039;, &amp;#039;http%1://&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local uri = safeUri(url)&lt;br /&gt;
&lt;br /&gt;
	-- Handle URL&amp;#039;s without a protocol and URL&amp;#039;s that are protocol-relative, &lt;br /&gt;
	-- e.g. www.example.com/foo or www.example.com:8080/foo, and //www.example.com/foo&lt;br /&gt;
	if uri and (not uri.protocol or (uri.protocol and not uri.host)) and url:sub(1, 2) ~= &amp;#039;//&amp;#039; then&lt;br /&gt;
		url = &amp;#039;http://&amp;#039; .. url&lt;br /&gt;
		uri = safeUri(url)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if text == &amp;#039;&amp;#039; then&lt;br /&gt;
		if uri then&lt;br /&gt;
			if uri.path == &amp;#039;/&amp;#039; then uri.path = &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
			local port = &amp;#039;&amp;#039;&lt;br /&gt;
			if uri.port then port = &amp;#039;:&amp;#039; .. uri.port end&lt;br /&gt;
&lt;br /&gt;
			text = mw.ustring.lower(uri.host or &amp;#039;&amp;#039;) .. port .. (uri.relativePath or &amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
			-- Add &amp;lt;wbr&amp;gt; before _/.-# sequences&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(/+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)      -- This entry MUST be the first. &amp;quot;&amp;lt;wbr/&amp;gt;&amp;quot; has a &amp;quot;/&amp;quot; in it, you know.&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%.+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			-- text = mw.ustring.gsub(text,&amp;quot;(%-+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;) 	-- DISABLED for now&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%#+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(_+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
		else -- URL is badly-formed, so just display whatever was passed in&lt;br /&gt;
			text = url&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.format(&amp;#039;&amp;lt;span class=&amp;quot;url&amp;quot;&amp;gt;[%s %s]&amp;lt;/span&amp;gt;&amp;#039;, url, text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The main entry point for caling from Template:URL.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2]&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &amp;#039;&amp;#039;&lt;br /&gt;
	if not text then&lt;br /&gt;
		url = url or extractUrl(templateArgs) or extractUrl(parentArgs)&lt;br /&gt;
	end&lt;br /&gt;
	text = text or &amp;#039;&amp;#039;&lt;br /&gt;
	return p._url(url, text, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The entry point for calling from the forked Template:URL2.&lt;br /&gt;
This function returns no message by default.&lt;br /&gt;
It strips out wiki-link markup, html tags, and everything after a space.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url2(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2] or &amp;#039;&amp;#039;&lt;br /&gt;
	-- default to no message&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &amp;#039;no&amp;#039;&lt;br /&gt;
	if text == &amp;#039;&amp;#039; then&lt;br /&gt;
		url = url or extractUrl(templateArgs) or extractUrl(parentArgs)&lt;br /&gt;
	end&lt;br /&gt;
	-- strip out html tags and [ ] from url&lt;br /&gt;
	url = (url or &amp;#039;&amp;#039;):gsub(&amp;quot;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;[%[%]]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	-- truncate anything after a space&lt;br /&gt;
	url = url:gsub(&amp;quot;%%20&amp;quot;, &amp;quot; &amp;quot;):gsub(&amp;quot; .*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	return p._url(url, text, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Check_for_unknown_parameters&amp;diff=4163</id>
		<title>Module:Check for unknown parameters</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Check_for_unknown_parameters&amp;diff=4163"/>
		<updated>2019-07-26T02:07:01Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module may be used to compare the arguments passed to the parent&lt;br /&gt;
-- with a list of arguments, returning a specified result if an argument is&lt;br /&gt;
-- not on the list&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
	return s:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isnotempty(s)&lt;br /&gt;
	return s and s:match(&amp;#039;%S&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function clean(text)&lt;br /&gt;
	-- Return text cleaned for display and truncated if too long.&lt;br /&gt;
	-- Strip markers are replaced with dummy text representing the original wikitext.&lt;br /&gt;
	local pos, truncated&lt;br /&gt;
	local function truncate(text)&lt;br /&gt;
		if truncated then&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		if mw.ustring.len(text) &amp;gt; 25 then&lt;br /&gt;
			truncated = true&lt;br /&gt;
			text = mw.ustring.sub(text, 1, 25) .. &amp;#039;...&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return mw.text.nowiki(text)&lt;br /&gt;
	end&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for before, tag, remainder in text:gmatch(&amp;#039;([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()&amp;#039;) do&lt;br /&gt;
		pos = remainder&lt;br /&gt;
		table.insert(parts, truncate(before) .. &amp;#039;&amp;amp;lt;&amp;#039; .. tag .. &amp;#039;&amp;amp;gt;...&amp;amp;lt;/&amp;#039; .. tag .. &amp;#039;&amp;amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(parts, truncate(text:sub(pos or 1)))&lt;br /&gt;
	return table.concat(parts)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.check (frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	local ignoreblank = isnotempty(args[&amp;#039;ignoreblank&amp;#039;])&lt;br /&gt;
	local showblankpos = isnotempty(args[&amp;#039;showblankpositional&amp;#039;])&lt;br /&gt;
	local knownargs = {}&lt;br /&gt;
	local unknown = args[&amp;#039;unknown&amp;#039;] or &amp;#039;Found _VALUE_, &amp;#039;&lt;br /&gt;
	local preview = args[&amp;#039;preview&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	local values = {}&lt;br /&gt;
	local res = {}&lt;br /&gt;
	local regexps = {}&lt;br /&gt;
&lt;br /&gt;
	-- create the list of known args, regular expressions, and the return string&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			v = trim(v)&lt;br /&gt;
			knownargs[v] = 1&lt;br /&gt;
		elseif k:find(&amp;#039;^regexp[1-9][0-9]*$&amp;#039;) then&lt;br /&gt;
			table.insert(regexps, &amp;#039;^&amp;#039; .. v .. &amp;#039;$&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if isnotempty(preview) then&lt;br /&gt;
		preview = &amp;#039;&amp;lt;div class=&amp;quot;hatnote&amp;quot; style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; &amp;#039; .. preview .. &amp;#039; (this message is shown only in preview).&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	elseif preview == nil then&lt;br /&gt;
		preview = unknown&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- loop over the parent args, and make sure they are on the list&lt;br /&gt;
	for k, v in pairs(pargs) do&lt;br /&gt;
		if type(k) == &amp;#039;string&amp;#039; and knownargs[k] == nil then&lt;br /&gt;
			local knownflag = false&lt;br /&gt;
			for _, regexp in ipairs(regexps) do&lt;br /&gt;
				if mw.ustring.match(k, regexp) then&lt;br /&gt;
					knownflag = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not knownflag and ( not ignoreblank or isnotempty(v) )  then&lt;br /&gt;
				table.insert(values, clean(k))&lt;br /&gt;
			end&lt;br /&gt;
		elseif type(k) == &amp;#039;number&amp;#039; and&lt;br /&gt;
			knownargs[tostring(k)] == nil and&lt;br /&gt;
			( showblankpos or isnotempty(v) )&lt;br /&gt;
		then&lt;br /&gt;
			table.insert(values, k .. &amp;#039; = &amp;#039; .. clean(v))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add results to the output tables&lt;br /&gt;
	if #values &amp;gt; 0 then&lt;br /&gt;
		if frame:preprocess( &amp;quot;{{REVISIONID}}&amp;quot; ) == &amp;quot;&amp;quot; then&lt;br /&gt;
			unknown = preview&lt;br /&gt;
		end&lt;br /&gt;
		for _, v in pairs(values) do&lt;br /&gt;
			if v == &amp;#039;&amp;#039; then&lt;br /&gt;
				-- Fix odd bug for | = which gets stripped to the empty string and&lt;br /&gt;
				-- breaks category links&lt;br /&gt;
				v = &amp;#039; &amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			-- avoid error with v = &amp;#039;example%2&amp;#039; (&amp;quot;invalid capture index&amp;quot;)&lt;br /&gt;
			local r =  unknown:gsub(&amp;#039;_VALUE_&amp;#039;, {_VALUE_ = v})&lt;br /&gt;
			table.insert(res, r)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Years_or_months_ago&amp;diff=4161</id>
		<title>Template:Years or months ago</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Years_or_months_ago&amp;diff=4161"/>
		<updated>2019-07-26T02:07:00Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#ifexpr:{{#if:{{{2|}}}|1|0}}=0 or abs( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12)) &amp;gt;= 12&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!-- in years --&amp;gt;{{#expr:floor(abs( ( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) ) / 12 ))}}&amp;amp;nbsp;{{#ifexpr:({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) &amp;lt; 0&lt;br /&gt;
|&amp;lt;!-- future --&amp;gt;{{#ifexpr:floor( ( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) ) / 12 ) = -1|year&amp;#039;s|years&amp;#039;}}&lt;br /&gt;
|&amp;lt;!-- past/current --&amp;gt;{{#ifexpr:floor( ( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) ) / 12 ) = 1|year|years}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!-- in months --&amp;gt;{{#expr:abs( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) )}}&amp;amp;nbsp;{{#ifexpr:({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) &amp;lt; 0&lt;br /&gt;
|&amp;lt;!-- future --&amp;gt;{{#ifexpr: ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) = -1|month&amp;#039;s|months&amp;#039;}}&lt;br /&gt;
|&amp;lt;!-- past/current --&amp;gt;{{#ifexpr: ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) = 1|month|months}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
}} {{#ifexpr:({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) &amp;lt; 0|time|ago}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Fbw&amp;diff=4159</id>
		<title>Template:Fbw</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Fbw&amp;diff=4159"/>
		<updated>2019-07-26T02:06:56Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{country data {{{1}}} &lt;br /&gt;
| flaglink/core&lt;br /&gt;
| variant = {{{variant|{{{2|}}}}}}&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}} &lt;br /&gt;
| altlink = women&amp;#039;s national football team &lt;br /&gt;
| altvar = football&lt;br /&gt;
| mw = women&amp;#039;s &lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Fbu&amp;diff=4157</id>
		<title>Template:Fbu</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Fbu&amp;diff=4157"/>
		<updated>2019-07-26T02:06:55Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#if:{{{2|}}}|{{country data {{{2}}}&lt;br /&gt;
| flaglink/core&lt;br /&gt;
| variant = {{{variant|{{{3|}}}}}}&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = national under-{{{1}}} football team&lt;br /&gt;
| altvar = football&lt;br /&gt;
| age = under-{{{1}}}&lt;br /&gt;
}}|{{error-small|Fbu template missing parameter}}[[Category:Pages using Fbu template with missing parameter]]}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Brazil&amp;diff=4141</id>
		<title>Template:Country data Brazil</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Brazil&amp;diff=4141"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Brazil&lt;br /&gt;
| flag alias-1692 = Flag of the Princes of Brazil.svg&lt;br /&gt;
| flag alias-1816 = Flag of the United Kingdom of Portugal, Brazil, and the Algarves.svg&lt;br /&gt;
| flag alias-1822 = Flag of Brazil (1822–1870).svg&lt;br /&gt;
| flag alias-1870 = Flag of Brazil (1870–1889).svg&lt;br /&gt;
| flag alias = Flag of Brazil.svg&lt;br /&gt;
| flag alias-1889 = Flag of Brazil (1889–1960).svg&lt;br /&gt;
| flag alias-1960 = Flag of Brazil (1960–1968).svg&lt;br /&gt;
| flag alias-1968 = Flag of Brazil (1968–1992).svg&lt;br /&gt;
| flag alias-army = Flag of the Brazilian Army.png&lt;br /&gt;
| link alias-army = Brazilian Army&lt;br /&gt;
| flag alias-air force = Brazilian Air Force fin flash.svg&lt;br /&gt;
| link alias-air force = Brazilian Air Force&lt;br /&gt;
| link alias-naval = Brazilian Navy&lt;br /&gt;
| flag alias-marines=Flag of the Brazilian Marine Corps.svg&lt;br /&gt;
| link alias-marines=Brazilian Marine Corps&lt;br /&gt;
| link alias-navy = Brazilian Navy&lt;br /&gt;
| flag alias-navy = Flag of the Brazilian Navy.svg&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1692&lt;br /&gt;
| var2 = 1816&lt;br /&gt;
| var3 = 1822&lt;br /&gt;
| var4 = 1870&lt;br /&gt;
| var5 = 1889&lt;br /&gt;
| var6 = 1960&lt;br /&gt;
| var7 = 1968&lt;br /&gt;
| redir1 = BRA&lt;br /&gt;
| redir2 = Federative Republic of Brazil&lt;br /&gt;
| related1 = Empire of Brazil&lt;br /&gt;
| related2 = Brazilian military government&lt;br /&gt;
| related3 = First Brazilian Republic&lt;br /&gt;
| related4 = Second Brazilian Republic&lt;br /&gt;
| related5 = Vargas Era&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_CAN&amp;diff=4143</id>
		<title>Template:Country data CAN</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_CAN&amp;diff=4143"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Country data Canada]]&lt;br /&gt;
[[Category:Country data redirects|CAN]]&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Canada&amp;diff=4145</id>
		<title>Template:Country data Canada</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Canada&amp;diff=4145"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Canada&lt;br /&gt;
| flag alias = Flag of Canada (Pantone).svg&lt;br /&gt;
| flag alias-1867-official = Flag of the United Kingdom.svg&lt;br /&gt;
| flag alias-1868 = Canadian Red Ensign (1868–1921).svg&lt;br /&gt;
| flag alias-1905 = Canadian Red Ensign (1905–1922).svg&lt;br /&gt;
| flag alias-1907 = Canadian Red Ensign (1907–1921).png&lt;br /&gt;
| flag alias-1921 = Canadian Red Ensign (1921–1957).svg&lt;br /&gt;
| flag alias-1957 = Canadian Red Ensign (1957–1965).svg&lt;br /&gt;
| flag alias-1964 = Flag of Canada (1964).svg&lt;br /&gt;
| flag alias-1965 = Flag of Canada (WFB 2000).png&lt;br /&gt;
| flag alias-2004 = Flag of Canada (WFB 2004).gif&lt;br /&gt;
| flag alias-armed forces = Canadian Forces Flag.svg&lt;br /&gt;
| link alias-armed forces = Canadian Armed Forces&lt;br /&gt;
| flag alias-naval = Naval ensign of Canada; Naval jack of Canada (1968–2013).svg&lt;br /&gt;
| link alias-naval = Royal Canadian Navy&lt;br /&gt;
| flag alias-naval-1868 = Canadian Blue Ensign (1868–1921).svg&lt;br /&gt;
| flag alias-naval-1911 = Naval Ensign of the United Kingdom.svg&lt;br /&gt;
| flag alias-naval-1921 = Canadian Blue Ensign (1921–1957).svg&lt;br /&gt;
| flag alias-naval-1957 = Canadian Blue Ensign (1957–1965).svg&lt;br /&gt;
| flag alias-naval-1965 = Flag of Canada (Pantone).svg&lt;br /&gt;
| flag alias-coast guard = Coastguard Flag of Canada.svg&lt;br /&gt;
| link alias-coast guard = Canadian Coast Guard&lt;br /&gt;
| flag alias-air force = Royal Canadian Air Force ensign.svg&lt;br /&gt;
| flag alias-air force-1924 = Ensign of the Royal Canadian Air Force.svg&lt;br /&gt;
| link alias-air force = Royal Canadian Air Force&lt;br /&gt;
| flag alias-army-1939 = Flag of the Canadian Army (1939–1944).svg&lt;br /&gt;
| flag alias-army-1968 = Flag of the Canadian Army (1968–1998).gif&lt;br /&gt;
| flag alias-army-1989 = Flag of the Canadian Army (1968–1998).svg&lt;br /&gt;
| flag alias-army-2013 = Flag of the Canadian Army (2013–2016).png&lt;br /&gt;
| flag alias-army = Flag of the Canadian Army.svg&lt;br /&gt;
| link alias-army = Canadian Army&lt;br /&gt;
| link alias-football = Canada {{{mw|men&amp;#039;s}}} national {{{age|}}} soccer team&lt;br /&gt;
| link alias-basketball = Canada {{{mw|men&amp;#039;s}}} national {{{age|}}} basketball team&lt;br /&gt;
| link alias-field hockey = Canada {{{mw|men&amp;#039;s}}} national field hockey team&lt;br /&gt;
| flag alias-military=Flag of the Canadian Forces.svg&lt;br /&gt;
| link alias-military=Canadian Armed Forces&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| altvar = {{{altvar|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1867-official&lt;br /&gt;
| var2 = 1868&lt;br /&gt;
| var3 = 1905&lt;br /&gt;
| var4 = 1907&lt;br /&gt;
| var5 = 1921&lt;br /&gt;
| var6 = 1957&lt;br /&gt;
| var7 = 1964&lt;br /&gt;
| var8 = naval-1868&lt;br /&gt;
| var9 = naval-1911&lt;br /&gt;
| var10 = naval-1921&lt;br /&gt;
| var11 = naval-1957&lt;br /&gt;
| var12 = naval-1965&lt;br /&gt;
| var13 = air force-1924&lt;br /&gt;
| var14 = army-1939&lt;br /&gt;
| var15 = army-1968&lt;br /&gt;
| var16 = army-1989&lt;br /&gt;
| var17 = army-2013&lt;br /&gt;
| redir1 = CAN&lt;br /&gt;
| redir2 = Province of Canada&lt;br /&gt;
| redir3 = Dominion of Canada&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Germany&amp;diff=4147</id>
		<title>Template:Country data Germany</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Germany&amp;diff=4147"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Germany&lt;br /&gt;
| flag alias = Flag of Germany.svg&lt;br /&gt;
| flag alias-1866 = Flag of the German Empire.svg&lt;br /&gt;
| link alias-1866 = German Empire&lt;br /&gt;
| flag alias-empire = Flag of the German Empire.svg&lt;br /&gt;
| link alias-empire = German Empire&lt;br /&gt;
| flag alias-1919 = Flag of Germany (3-2 aspect ratio).svg&lt;br /&gt;
| link alias-1919 = Weimar Republic&lt;br /&gt;
| flag alias-Weimar = Flag of Germany (3-2 aspect ratio).svg&lt;br /&gt;
| link alias-Weimar = Weimar Republic&lt;br /&gt;
| flag alias-1933 = Flag of Germany (1933-1935).svg&lt;br /&gt;
| flag alias-1935 = Flag of Germany (1935–1945).svg&lt;br /&gt;
| link alias-1935 = Nazi Germany&lt;br /&gt;
| flag alias-Nazi = Flag of Germany (1935–1945).svg&lt;br /&gt;
| link alias-Nazi = Nazi Germany&lt;br /&gt;
| flag alias-1946 = Merchant flag of Germany (1946–1949).svg&lt;br /&gt;
| border-1946 =&lt;br /&gt;
| flag alias-1949 = Flag of Germany.svg&lt;br /&gt;
| flag alias-EUA = German Olympic flag (1959-1968).svg&lt;br /&gt;
| flag alias-gold = Flag of West Germany; Flag of Germany (1990–1996).svg&lt;br /&gt;
| flag alias-state = Flag of Germany (state).svg&lt;br /&gt;
| flag alias-naval = Naval Ensign of Germany.svg&lt;br /&gt;
| border-naval =&lt;br /&gt;
| link alias-naval = German Navy&lt;br /&gt;
| flag alias-coast guard=German Federal Coast Guard racing stripe.svg&lt;br /&gt;
| border-coast guard=&lt;br /&gt;
| link alias-coast guard=German Federal Coast Guard&lt;br /&gt;
| flag alias-army = Colour of Germany.svg&lt;br /&gt;
| flag alias-air force =Flag of Germany (state).svg&lt;br /&gt;
| link alias-air force = German Air Force&lt;br /&gt;
| link alias-army = German Army&lt;br /&gt;
| border-army=&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1866&lt;br /&gt;
| var2 = empire&lt;br /&gt;
| var3 = 1919&lt;br /&gt;
| var4 = Weimar&lt;br /&gt;
| var5 = 1933&lt;br /&gt;
| var6 = 1935&lt;br /&gt;
| var7 = Nazi&lt;br /&gt;
| var8 = 1946&lt;br /&gt;
| var9 = 1949&lt;br /&gt;
| var10 = EUA&lt;br /&gt;
| var11 = gold&lt;br /&gt;
| var12 = state&lt;br /&gt;
| redir1 = DEU&lt;br /&gt;
| redir2 = GER&lt;br /&gt;
| related1 = German Empire&lt;br /&gt;
| related2 = Weimar Republic&lt;br /&gt;
| related3 = Nazi Germany&lt;br /&gt;
| related4 = Allied-occupied Germany&lt;br /&gt;
| related5 = East Germany&lt;br /&gt;
| related6 = West Germany&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_HON&amp;diff=4149</id>
		<title>Template:Country data HON</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_HON&amp;diff=4149"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Country data Honduras]]&lt;br /&gt;
[[category:country data redirects|HON]]&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Honduras&amp;diff=4151</id>
		<title>Template:Country data Honduras</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Honduras&amp;diff=4151"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Honduras&lt;br /&gt;
| flag alias = Flag of Honduras.svg&lt;br /&gt;
| flag alias-1839 = Flag of Honduras (1839-1866).svg&lt;br /&gt;
| flag alias-1866 = Flag of Honduras (1866-1898).svg&lt;br /&gt;
| flag alias-1898 = Flag of Honduras (WFB 2004).gif&lt;br /&gt;
| flag alias-naval = Naval Ensign of Honduras.svg&lt;br /&gt;
| link alias-naval = Honduran Navy&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1839&lt;br /&gt;
| var2 = 1866&lt;br /&gt;
| var3 = 1898&lt;br /&gt;
| redir1 = HND&lt;br /&gt;
| redir2 = HON&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Italy&amp;diff=4153</id>
		<title>Template:Country data Italy</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Italy&amp;diff=4153"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Italy&lt;br /&gt;
| flag alias = Flag of Italy.svg&lt;br /&gt;
| flag alias-1861 = Flag of Italy (1861–1946).svg&lt;br /&gt;
| flag alias-1943 = War flag of the Italian Social Republic.svg&lt;br /&gt;
| flag alias-1946 = Flag of Italy.svg&lt;br /&gt;
| flag alias-2003 = Flag of Italy (2003–2006).svg&lt;br /&gt;
| flag alias-civil = Civil Ensign of Italy.svg&lt;br /&gt;
| flag alias-naval = Naval Ensign of Italy.svg&lt;br /&gt;
| link alias-naval = Marina Militare&lt;br /&gt;
| link alias-air force = Italian Air Force&lt;br /&gt;
| link alias-army = Italian Army&lt;br /&gt;
| link alias-roller hockey = Italy {{{mw}}} national roller hockey team&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| altvar = {{{altvar|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1861&lt;br /&gt;
| var2 = 1943&lt;br /&gt;
| var3 = 1946&lt;br /&gt;
| var4 = 2003&lt;br /&gt;
| var5 = civil&lt;br /&gt;
| redir1 = ITA&lt;br /&gt;
| related1 = Kingdom of Italy&lt;br /&gt;
| related2 = Italian Social Republic&lt;br /&gt;
| related3 = Napoleonic Italy&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Sudan&amp;diff=4155</id>
		<title>Template:Country data Sudan</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Sudan&amp;diff=4155"/>
		<updated>2019-07-26T02:06:54Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Sudan&lt;br /&gt;
| flag alias = Flag of Sudan.svg&lt;br /&gt;
| flag alias-1956 = Flag of Sudan (1956-1970).svg&lt;br /&gt;
| flag alias-air force=Ensign of the Sudanese Air Force.svg&lt;br /&gt;
| link alias-air force=Sudanese Air Force&lt;br /&gt;
| flag alias-naval = Naval Ensign of Sudan.svg&lt;br /&gt;
| link alias-naval=Sudanese Navy&lt;br /&gt;
| link alias-army=Sudanese Army&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1956&lt;br /&gt;
| redir1 = SDN&lt;br /&gt;
| redir2 = SUD&lt;br /&gt;
| related1 = South Sudan&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Infobox_international_football_competition&amp;diff=4135</id>
		<title>Template:Infobox international football competition</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Infobox_international_football_competition&amp;diff=4135"/>
		<updated>2019-07-26T02:06:53Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{infobox&lt;br /&gt;
&lt;br /&gt;
| bodyclass  = vcalendar&lt;br /&gt;
| titleclass = summary&lt;br /&gt;
| title      = {{#if:{{{tourney_name|}}}|{{{year|}}} {{{tourney_name|}}} {{{yearr|}}} &amp;lt;includeonly&amp;gt;|{{PAGENAMEBASE}}&amp;lt;/includeonly&amp;gt;}}&lt;br /&gt;
| above      = {{{other_titles|}}}&lt;br /&gt;
| abovestyle = font-size: 100%&lt;br /&gt;
| image      = {{#invoke:InfoboxImage|InfoboxImage |image={{{image|}}} |size={{{image_size|{{{size|}}}}}} |sizedefault=frameless |upright=1 |alt={{{alt|}}} |suppressplaceholder=yes}}&lt;br /&gt;
| caption    = {{{caption|}}}&lt;br /&gt;
&lt;br /&gt;
| header1    = {{#if:{{{country|}}}{{{city|}}}{{{num_teams|}}}{{{venues|}}}|Tournament details}}&lt;br /&gt;
&lt;br /&gt;
| label2     = Host countr{{#if:{{{country2|}}}|ies|y}}&lt;br /&gt;
| data2      = {{#if:{{{country|}}}|{{{country}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country2|}}}|&amp;lt;br /&amp;gt;{{{country2|}}}}}&amp;lt;!-- &lt;br /&gt;
  --&amp;gt;{{#if:{{{country3|}}}|&amp;lt;br /&amp;gt;{{{country3|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country4|}}}|&amp;lt;br /&amp;gt;{{{country4|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country5|}}}|&amp;lt;br /&amp;gt;{{{country5|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country6|}}}|&amp;lt;br /&amp;gt;{{{country6|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country7|}}}|&amp;lt;br /&amp;gt;{{{country7|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country8|}}}|&amp;lt;br /&amp;gt;{{{country8|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country9|}}}|&amp;lt;br /&amp;gt;{{{country9|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country10|}}}|&amp;lt;br /&amp;gt;{{{country10|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country11|}}}|&amp;lt;br /&amp;gt;{{{country11|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country12|}}}|&amp;lt;br /&amp;gt;{{{country12|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country13|}}}|&amp;lt;br /&amp;gt;{{{country13|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country14|}}}|&amp;lt;br /&amp;gt;{{{country14|}}}}}&amp;lt;!--&lt;br /&gt;
  --&amp;gt;{{#if:{{{country15|}}}|&amp;lt;br /&amp;gt;{{{country15|}}}}}&lt;br /&gt;
| label3     = City&lt;br /&gt;
| data3      = {{{city|}}}&lt;br /&gt;
| class3     = location&lt;br /&gt;
&lt;br /&gt;
| label4     = Dates&lt;br /&gt;
| data4      = {{{dates|}}}&lt;br /&gt;
&lt;br /&gt;
| label5     = Teams&lt;br /&gt;
| data5      = {{{num_teams|}}}{{#if: {{{confederations|}}}|&amp;amp;nbsp;(from {{{confederations}}} confederation{{#ifeq:{{{confederations}}}|1| |s}})}}{{#if: {{{sub-confederations|}}}|&amp;amp;nbsp;(from {{{sub-confederations}}} sub-confederation{{#ifeq:{{{sub-confederations}}}|1| |s}})}}{{#if: {{{associations|}}}|&amp;amp;nbsp;(from {{{associations}}} association{{#ifeq:{{{associations}}}|1| |s}})}}&lt;br /&gt;
&lt;br /&gt;
| label6     = Venue(s)&lt;br /&gt;
| data6      = {{{venues|}}}{{#if:{{{cities|}}}|&amp;amp;nbsp;(in {{{cities}}} host cit{{#ifeq: {{{cities}}}|1|y|ies}})}}&lt;br /&gt;
&lt;br /&gt;
| header7    = {{#if:{{{champion|}}}{{{champion_other|}}}|Final positions}}&lt;br /&gt;
&lt;br /&gt;
| label8     = {{#if:{{{American|}}}|Champion(s)|Champions}}&lt;br /&gt;
| data8      = {{#if:{{{champion|}}}|{{fb|{{{champion|}}}|{{{champion-flagvar|}}}|name={{{champion-name|}}}}}{{#if: {{{count|}}}|{{nowrap| ({{ordinal|{{{count}}}}} title)}} }} }}&lt;br /&gt;
&lt;br /&gt;
| label9     = {{#if:{{{American|}}}|Champion(s)|Champions}}&lt;br /&gt;
| data9      = {{#if:{{{champion_other|}}}|{{{champion_other}}}{{#if: {{{count|}}}|{{nowrap| ({{ordinal|{{{count}}}}} title)}} }} }}&lt;br /&gt;
&lt;br /&gt;
| label10    = Runners-up&lt;br /&gt;
| data10     = {{#if:{{{second|}}}|{{fb|{{{second|}}}|{{{second-flagvar|}}}|name={{{second-name|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
| label11    = Runners-up&lt;br /&gt;
| data11     = {{#if:{{{second_other|}}}|{{{second_other|}}} }}&lt;br /&gt;
&lt;br /&gt;
| label12    = Third place&lt;br /&gt;
| data12     = {{#if:{{{third|}}}|{{fb|{{{third|}}}|{{{third-flagvar|}}}|name={{{third-name|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
| label13    = Third place&lt;br /&gt;
| data13     = {{#if:{{{third_other|}}}|{{{third_other|}}} }}&lt;br /&gt;
&lt;br /&gt;
| label14    = Fourth place&lt;br /&gt;
| data14     = {{#if:{{{fourth|}}}|{{fb|{{{fourth|}}}|{{{fourth-flagvar|}}}|name={{{fourth-name|}}}}} }}&lt;br /&gt;
&lt;br /&gt;
| label15    = Fourth place&lt;br /&gt;
| data15     = {{#if:{{{fourth_other|}}}|{{{fourth_other|}}} }}&lt;br /&gt;
&lt;br /&gt;
| label16    = Promoted&lt;br /&gt;
| data16     = {{#if:{{{promoted|}}}|{{{promoted|}}} }}&lt;br /&gt;
&lt;br /&gt;
| label17    = Relegated&lt;br /&gt;
| data17     = {{#if:{{{relegated|}}}|{{{relegated|}}} }}&lt;br /&gt;
&lt;br /&gt;
| header18   = {{#if:{{{matches|}}}{{{goals|}}}{{{attendance|}}}{{{top_scorer|}}}{{{player|}}}|Tournament statistics}}&lt;br /&gt;
&lt;br /&gt;
| label19    = Matches&amp;amp;nbsp;played&lt;br /&gt;
| data19     = {{formatnum:{{#if:{{{matches|}}}|{{{matches}}}{{{matches_footnote|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label20    = Goals scored&lt;br /&gt;
| data20     = {{formatnum:{{#if:{{{goals|}}}|{{{goals}}}{{#if:{{{matches|}}}|&amp;amp;nbsp;({{#expr: {{{goals|0}}} / {{{matches|1}}} round 2}} per match)}}{{{goals_footnote|}}}}}}}&lt;br /&gt;
&lt;br /&gt;
| label21    = Attendance&lt;br /&gt;
| data21     = {{#if:{{{attendance|}}}|{{formatnum: {{{attendance|0}}}}}{{#if:{{{matches|}}}|&amp;amp;nbsp;({{formatnum: {{#expr: {{{attendance|0}}} / {{{matches|1}}} round 0}}}} per match) }} }}&lt;br /&gt;
&lt;br /&gt;
| label22    = Top scorer(s)&lt;br /&gt;
| data22     = {{{top_scorer|}}}&lt;br /&gt;
| class22    = attendee&lt;br /&gt;
&lt;br /&gt;
| label23    = Best player(s)&lt;br /&gt;
| data23     = {{{player|}}}&lt;br /&gt;
| class23    = attendee&lt;br /&gt;
&lt;br /&gt;
| label24    = Best young player&lt;br /&gt;
| data24     = {{{young_player|}}}&lt;br /&gt;
| class24    = attendee&lt;br /&gt;
&lt;br /&gt;
| label25    = Best [[Goalkeeper (association football)|goalkeeper]]&lt;br /&gt;
| data25     = {{{goalkeeper|}}}&lt;br /&gt;
| class25    = attendee&lt;br /&gt;
&lt;br /&gt;
| label26    = Fair play award&lt;br /&gt;
| data26     = {{{fair_play|}}}&lt;br /&gt;
| class26    = attendee&lt;br /&gt;
&lt;br /&gt;
| belowclass = noprint&lt;br /&gt;
| below      = {{#if:{{{prevseason|}}}|{{align|left|&amp;amp;larr; {{{prevseason|}}} }}}}{{#if:{{{nextseason|}}}|{{align|right|{{{nextseason|}}} &amp;amp;rarr; }}}}&lt;br /&gt;
{{#if:{{{updated|}}}|{{clear}}All statistics correct as of {{{updated}}}.}}{{#if:{{{extra information|}}}|{{clear}}{{{extra information}}}}}&lt;br /&gt;
| decat = {{#if:{{{prevseason|}}}{{{nextseason|}}}|yes|no}}&lt;br /&gt;
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox international football competition with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Infobox international football competition]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y| alt | American | associations | attendance | caption | champion | champion_other | champion-flagvar | champion-name | cities | city | confederations | count | country | country10 | country11 | country12 | country13 | country14 | country15 | country2 | country3 | country4 | country5 | country6 | country7 | country8 | country9 | dates | extra information | fair_play | fourth | fourth_other | fourth-flagvar | fourth-name | goalkeeper | goals | goals_footnote | image | image_size | matches | matches_footnote | nextseason | num_teams | other_titles | player | prevseason | promoted | relegated | second | second_other | second-flagvar | second-name | size | sub-confederations | third | third_other | third-flagvar | third-name | top_scorer | tourney_name | updated | venues | year | yearr | young_player }}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Category_link_with_count&amp;diff=4137</id>
		<title>Template:Category link with count</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Category_link_with_count&amp;diff=4137"/>
		<updated>2019-07-26T02:06:53Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[:Category:{{#ifeq:{{str left|{{{1}}}|9}}|Category:|{{str right|{{{1}}}|9}}|{{{1}}}}}|&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{name|}}}|{{{name}}}|Category:{{#ifeq:{{str left|{{{1}}}|9}}|Category:|{{str right|{{{1}}}|9}}|{{{1}}}}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;]]&amp;amp;nbsp;({{PAGESINCATEGORY:{{#ifeq:{{str left|{{{1}}}|9}}|Category:|{{str right|{{{1}}}|9}}|{{{1}}}}}|{{{2|all}}}}})&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Clc&amp;diff=4139</id>
		<title>Template:Clc</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Clc&amp;diff=4139"/>
		<updated>2019-07-26T02:06:53Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Category link with count]]&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:If_empty&amp;diff=4133</id>
		<title>Template:If empty</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:If_empty&amp;diff=4133"/>
		<updated>2019-07-26T02:06:46Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:If empty|main}}&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Flagicon&amp;diff=4131</id>
		<title>Template:Flagicon</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Flagicon&amp;diff=4131"/>
		<updated>2019-07-26T02:06:45Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{safesubst&amp;lt;noinclude /&amp;gt;:#ifeq: {{Yesno-no|{{{noredlink|}}}}}|yes&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
          #Check for existence of Template: Country data foo before invoking it&lt;br /&gt;
      --&amp;gt;&amp;lt;/noinclude&amp;gt;{{safesubst&amp;lt;noinclude /&amp;gt;:#ifexist: Template: Country data {{{1|}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
               # It exists, so proceed&lt;br /&gt;
           --&amp;gt;&amp;lt;/noinclude&amp;gt;{{country data {{{1|}}}|flagicon/core|variant={{{variant|{{{2|}}}}}}|size={{{size|}}}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
               # It doesn&amp;#039;t exist, so do nothing&lt;br /&gt;
      --&amp;gt;&amp;lt;/noinclude&amp;gt;}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
          # DEFAULT call  Template: Country data {{{1|}}}&lt;br /&gt;
          # with no prior checks&lt;br /&gt;
     --&amp;gt;&amp;lt;/noinclude&amp;gt;{{country data {{{1|}}}|flagicon/core|variant={{{variant|{{{2|}}}}}}|size={{{size|}}}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
          # Track use where &amp;quot;Template:Country data Foo&amp;quot; does not exist&lt;br /&gt;
     --&amp;gt;&amp;lt;/noinclude&amp;gt;{{safesubst&amp;lt;noinclude /&amp;gt;:#ifexist: Template:Country data {{{1|}}}||{{safesubst&amp;lt;noinclude /&amp;gt;:namespace detect showall&lt;br /&gt;
| 1 = &lt;br /&gt;
| 2 = [[Category:Flagicons with missing country data templates]]&lt;br /&gt;
| user  = 1&lt;br /&gt;
| talk  = 1&lt;br /&gt;
| other = 2&lt;br /&gt;
}}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{DEFAULTSORT:Law by year}}&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:URL&amp;diff=4127</id>
		<title>Module:URL</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:URL&amp;diff=4127"/>
		<updated>2019-07-26T02:06:43Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements {{URL}}&lt;br /&gt;
--&lt;br /&gt;
-- See unit tests at [[Module:URL/tests]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
local function safeUri(s)&lt;br /&gt;
	local success, uri = pcall(function()&lt;br /&gt;
		return mw.uri.new(s)&lt;br /&gt;
	end)&lt;br /&gt;
	if success then&lt;br /&gt;
		return uri&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extractUrl(args)&lt;br /&gt;
	for name, val in pairs(args) do&lt;br /&gt;
		local url = name .. &amp;quot;=&amp;quot; .. val;&lt;br /&gt;
		url = mw.ustring.gsub(url, &amp;#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&amp;#039;, &amp;#039;http%1://%3&amp;#039;)&lt;br /&gt;
		local uri = safeUri(url);&lt;br /&gt;
		if uri and uri.host then&lt;br /&gt;
			return url&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._url(url, text, msg)&lt;br /&gt;
	url = mw.text.trim(url or &amp;#039;&amp;#039;)&lt;br /&gt;
	text = mw.text.trim(text or &amp;#039;&amp;#039;)&lt;br /&gt;
	local nomsg = (msg or &amp;#039;&amp;#039;):sub(1,1):lower() == &amp;quot;n&amp;quot; or msg == &amp;#039;false&amp;#039; -- boolean: true if msg is &amp;quot;false&amp;quot; or starts with n or N&lt;br /&gt;
&lt;br /&gt;
	if url == &amp;#039;&amp;#039; then&lt;br /&gt;
		if text == &amp;#039;&amp;#039; then&lt;br /&gt;
			if nomsg then&lt;br /&gt;
				return nil&lt;br /&gt;
			else&lt;br /&gt;
				return mw.getCurrentFrame():expandTemplate{ title = &amp;#039;tlx&amp;#039;, args = { &amp;#039;URL&amp;#039;, &amp;quot;&amp;#039;&amp;#039;example.com&amp;#039;&amp;#039;&amp;quot;, &amp;quot;&amp;#039;&amp;#039;optional display text&amp;#039;&amp;#039;&amp;quot; } }&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If the URL contains any unencoded spaces, encode them, because MediaWiki will otherwise interpret a space as the end of the URL.&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;%s&amp;#039;, function(s) return mw.uri.encode(s, &amp;#039;PATH&amp;#039;) end)&lt;br /&gt;
&lt;br /&gt;
	-- If there is an empty query string or fragment id, remove it as it will cause mw.uri.new to throw an error&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;#$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;%?$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- If it&amp;#039;s an HTTP[S] URL without the double slash, fix it.&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])&amp;#039;, &amp;#039;http%1://%3&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Handle URLs from Wikidata of the format http&amp;amp;#58;//&lt;br /&gt;
	url = mw.ustring.gsub(url, &amp;#039;^[Hh][Tt][Tt][Pp]([Ss]?)&amp;amp;#58;//&amp;#039;, &amp;#039;http%1://&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local uri = safeUri(url)&lt;br /&gt;
&lt;br /&gt;
	-- Handle URL&amp;#039;s without a protocol and URL&amp;#039;s that are protocol-relative, &lt;br /&gt;
	-- e.g. www.example.com/foo or www.example.com:8080/foo, and //www.example.com/foo&lt;br /&gt;
	if uri and (not uri.protocol or (uri.protocol and not uri.host)) and url:sub(1, 2) ~= &amp;#039;//&amp;#039; then&lt;br /&gt;
		url = &amp;#039;http://&amp;#039; .. url&lt;br /&gt;
		uri = safeUri(url)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if text == &amp;#039;&amp;#039; then&lt;br /&gt;
		if uri then&lt;br /&gt;
			if uri.path == &amp;#039;/&amp;#039; then uri.path = &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
			local port = &amp;#039;&amp;#039;&lt;br /&gt;
			if uri.port then port = &amp;#039;:&amp;#039; .. uri.port end&lt;br /&gt;
&lt;br /&gt;
			text = mw.ustring.lower(uri.host or &amp;#039;&amp;#039;) .. port .. (uri.relativePath or &amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
			-- Add &amp;lt;wbr&amp;gt; before _/.-# sequences&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(/+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)      -- This entry MUST be the first. &amp;quot;&amp;lt;wbr/&amp;gt;&amp;quot; has a &amp;quot;/&amp;quot; in it, you know.&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%.+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			-- text = mw.ustring.gsub(text,&amp;quot;(%-+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;) 	-- DISABLED for now&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(%#+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
			text = mw.ustring.gsub(text,&amp;quot;(_+)&amp;quot;,&amp;quot;&amp;lt;wbr/&amp;gt;%1&amp;quot;)&lt;br /&gt;
		else -- URL is badly-formed, so just display whatever was passed in&lt;br /&gt;
			text = url&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.format(&amp;#039;&amp;lt;span class=&amp;quot;url&amp;quot;&amp;gt;[%s %s]&amp;lt;/span&amp;gt;&amp;#039;, url, text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The main entry point for caling from Template:URL.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2]&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &amp;#039;&amp;#039;&lt;br /&gt;
	if not text then&lt;br /&gt;
		url = url or extractUrl(templateArgs) or extractUrl(parentArgs)&lt;br /&gt;
	end&lt;br /&gt;
	text = text or &amp;#039;&amp;#039;&lt;br /&gt;
	return p._url(url, text, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
The entry point for calling from the forked Template:URL2.&lt;br /&gt;
This function returns no message by default.&lt;br /&gt;
It strips out wiki-link markup, html tags, and everything after a space.&lt;br /&gt;
--]]&lt;br /&gt;
function p.url2(frame)&lt;br /&gt;
	local templateArgs = frame.args&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local url = templateArgs[1] or parentArgs[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local text = templateArgs[2] or parentArgs[2] or &amp;#039;&amp;#039;&lt;br /&gt;
	-- default to no message&lt;br /&gt;
	local msg = templateArgs.msg or parentArgs.msg or &amp;#039;no&amp;#039;&lt;br /&gt;
	if text == &amp;#039;&amp;#039; then&lt;br /&gt;
		url = url or extractUrl(templateArgs) or extractUrl(parentArgs)&lt;br /&gt;
	end&lt;br /&gt;
	-- strip out html tags and [ ] from url&lt;br /&gt;
	url = (url or &amp;#039;&amp;#039;):gsub(&amp;quot;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;[%[%]]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	-- truncate anything after a space&lt;br /&gt;
	url = url:gsub(&amp;quot;%%20&amp;quot;, &amp;quot; &amp;quot;):gsub(&amp;quot; .*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	return p._url(url, text, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Spain&amp;diff=4129</id>
		<title>Template:Country data Spain</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Spain&amp;diff=4129"/>
		<updated>2019-07-26T02:06:43Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Spain&lt;br /&gt;
| flag alias = Flag of Spain.svg&lt;br /&gt;
| flag alias-1506 = Flag of Cross of Burgundy.svg&lt;br /&gt;
| flag alias-1701 = Bandera de España 1701-1748.svg&lt;br /&gt;
| flag alias-1748 = Bandera de España 1748-1785.svg&lt;br /&gt;
| flag alias-1785 = Flag of Spain (1785–1873, 1875–1931).svg&lt;br /&gt;
| flag alias-1873 = Flag of the First Spanish Republic.svg&lt;br /&gt;
| flag alias-1874 = Flag of Spain (1785–1873, 1875–1931).svg&lt;br /&gt;
| flag alias-1931 = Flag of Spain (1931–1939).svg&lt;br /&gt;
| flag alias-1936 = Bandera del bando nacional 1936-1938.svg&lt;br /&gt;
| flag alias-1938 = Flag of Spain (1938–1945).svg&lt;br /&gt;
| flag alias-1945 = Flag of Spain (1945–1977).svg&lt;br /&gt;
| flag alias-1977 = Flag of Spain (1977–1981).svg&lt;br /&gt;
| flag alias-civil = Flag of Spain (Civil).svg&lt;br /&gt;
| flag alias-civil-1785 = BandMercante1785.svg&lt;br /&gt;
| flag alias-navy=Naval Jack of Spain.svg&lt;br /&gt;
| link alias-navy=Spanish Navy&lt;br /&gt;
| flag alias-marines=Naval Jack of Spain.svg&lt;br /&gt;
| link alias-marines=Spanish Navy Marines&lt;br /&gt;
| link alias-army = Spanish Army&lt;br /&gt;
| link alias-naval = Spanish Navy&lt;br /&gt;
| link alias-basketball = Spain {{{mw|men&amp;#039;s}}} national {{{age|}}} basketball team&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1506&lt;br /&gt;
| var2 = 1701&lt;br /&gt;
| var3 = 1748&lt;br /&gt;
| var4 = 1785&lt;br /&gt;
| var5 = 1873&lt;br /&gt;
| var6 = 1874&lt;br /&gt;
| var7 = 1931&lt;br /&gt;
| var8 = 1936&lt;br /&gt;
| var9 = 1938&lt;br /&gt;
| var10 = 1945&lt;br /&gt;
| var11 = 1977&lt;br /&gt;
| var12 = civil&lt;br /&gt;
| var13 = civil-1785&lt;br /&gt;
| redir1 = ESP&lt;br /&gt;
| redir2 = SPA&lt;br /&gt;
| related1 = Spanish Republic&lt;br /&gt;
| related2 = Spanish State&lt;br /&gt;
| related3=Francoist Spain&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Official_website&amp;diff=4125</id>
		<title>Module:Official website</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Official_website&amp;diff=4125"/>
		<updated>2019-07-26T02:06:42Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local makeUrl = require(&amp;#039;Module:URL&amp;#039;)._url&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Wrapper for pcall which returns nil on failure.&lt;br /&gt;
local function quickPcall(func)&lt;br /&gt;
	local success, result = pcall(func)&lt;br /&gt;
	if success then&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Gets the rank for a Wikidata property table. Returns 1, 0 or -1, in&lt;br /&gt;
-- order of rank.&lt;br /&gt;
local function getRank(prop)&lt;br /&gt;
	local rank = prop.rank&lt;br /&gt;
	if rank == &amp;#039;preferred&amp;#039; then&lt;br /&gt;
		return 1&lt;br /&gt;
	elseif rank == &amp;#039;normal&amp;#039; then&lt;br /&gt;
		return 0&lt;br /&gt;
	elseif rank == &amp;#039;deprecated&amp;#039; then&lt;br /&gt;
		return -1&lt;br /&gt;
	else&lt;br /&gt;
		-- No rank or undefined rank is treated as &amp;quot;normal&amp;quot;.&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Finds whether a Wikidata property is qualified as being in English.&lt;br /&gt;
local function isEnglish(prop)&lt;br /&gt;
	local ret = quickPcall(function ()&lt;br /&gt;
		for i, lang in ipairs(prop.qualifiers.P407) do&lt;br /&gt;
			if lang.datavalue.value[&amp;#039;numeric-id&amp;#039;] == 1860 then&lt;br /&gt;
				return true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	end)&lt;br /&gt;
	return ret == true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Fetches the official website URL from Wikidata.&lt;br /&gt;
local fetchWikidataUrl&lt;br /&gt;
fetchWikidataUrl = function()&lt;br /&gt;
	-- Get objects for all official sites on Wikidata.&lt;br /&gt;
	local websites = quickPcall(function ()&lt;br /&gt;
		return mw.wikibase.getEntityObject().claims.P856&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Clone the objects in case other code needs them in their original order.&lt;br /&gt;
	websites = websites and mw.clone(websites) or {}&lt;br /&gt;
&lt;br /&gt;
	-- Add the table index to the objects in case it is needed in the sort.&lt;br /&gt;
	for i, website in ipairs(websites) do&lt;br /&gt;
		website._index = i&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Sort the websites, first by highest rank, and then by websites in the&lt;br /&gt;
	-- English language, then by the website&amp;#039;s original position in the&lt;br /&gt;
	-- property list. When we are done, get the URL from the highest-sorted&lt;br /&gt;
	-- object.&lt;br /&gt;
	table.sort(websites, function(ws1, ws2)&lt;br /&gt;
		local r1 = getRank(ws1)&lt;br /&gt;
		local r2 = getRank(ws2)&lt;br /&gt;
		if r1 ~= r2 then&lt;br /&gt;
			return r1 &amp;gt; r2&lt;br /&gt;
		end&lt;br /&gt;
		local e1 = isEnglish(ws1)&lt;br /&gt;
		local e2 = isEnglish(ws2)&lt;br /&gt;
		if e1 ~= e2 then&lt;br /&gt;
			return e1&lt;br /&gt;
		end&lt;br /&gt;
		return ws1._index &amp;lt; ws2._index&lt;br /&gt;
	end)&lt;br /&gt;
	local url = quickPcall(function ()&lt;br /&gt;
		return websites[1].mainsnak.datavalue.value&lt;br /&gt;
	end)&lt;br /&gt;
&lt;br /&gt;
	-- Cache the result so that we only do the heavy lifting once per #invoke.&lt;br /&gt;
	fetchWikidataUrl = function ()&lt;br /&gt;
		return url&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Render the URL link, plus other visible output.&lt;br /&gt;
local function renderUrl(options)&lt;br /&gt;
	if not options.url and not options.wikidataurl then&lt;br /&gt;
		local entity = mw.wikibase.getEntityObject() or {}&lt;br /&gt;
		local qid = entity.id&lt;br /&gt;
		local result = &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;No URL found. Please specify a URL here or add one to Wikidata.&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
		if qid then&lt;br /&gt;
			result = result.. &amp;#039; [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/&amp;#039; .. qid .. &amp;#039;#P856|Edit this at Wikidata]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	ret[#ret + 1] = string.format(&lt;br /&gt;
		&amp;#039;&amp;lt;span class=&amp;quot;official-website&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
		makeUrl(options.url or options.wikidataurl, options.display)&lt;br /&gt;
	)&lt;br /&gt;
	if options.wikidataurl and not options.url then&lt;br /&gt;
		local entity = mw.wikibase.getEntityObject() or {}&lt;br /&gt;
		local qid = entity.id&lt;br /&gt;
		if qid then&lt;br /&gt;
			ret[#ret + 1] = &amp;#039;[[File:Blue pencil.svg |frameless |text-top |10px |alt=Edit this at Wikidata |link=https://www.wikidata.org/wiki/&amp;#039; .. qid .. &amp;#039;#P856|Edit this at Wikidata]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.format == &amp;#039;flash&amp;#039; then&lt;br /&gt;
		ret[#ret + 1] = mw.getCurrentFrame():expandTemplate{&lt;br /&gt;
			title = &amp;#039;Link note&amp;#039;,&lt;br /&gt;
			args = {note = &amp;#039;Requires [[Adobe Flash Player]]&amp;#039;}&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	if options.mobile then&lt;br /&gt;
		ret[#ret + 1] = &amp;#039;(&amp;#039; .. makeUrl(options.mobile, &amp;#039;Mobile&amp;#039;) .. &amp;#039;)&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, &amp;#039; &amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Render the tracking category.&lt;br /&gt;
local function renderTrackingCategory(url, wikidataurl)&lt;br /&gt;
	if mw.title.getCurrentTitle().namespace ~= 0 then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local category&lt;br /&gt;
	if not url and not wikidataurl then&lt;br /&gt;
		category = &amp;#039;Official website missing URL&amp;#039;&lt;br /&gt;
	elseif not url and wikidataurl then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	elseif url and wikidataurl then&lt;br /&gt;
		if url:gsub(&amp;#039;/%s*$&amp;#039;, &amp;#039;&amp;#039;) ~= wikidataurl:gsub(&amp;#039;/%s*$&amp;#039;, &amp;#039;&amp;#039;) then&lt;br /&gt;
			category = &amp;#039;Official website different in Wikidata and Wikipedia&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		category = &amp;#039;Official website not in Wikidata&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return category and string.format(&amp;#039;[[Category:%s]]&amp;#039;, category) or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local url = args[1] or args.URL or args.url&lt;br /&gt;
	local wikidataurl = fetchWikidataUrl()&lt;br /&gt;
	local formattedUrl = renderUrl{&lt;br /&gt;
		url = url,&lt;br /&gt;
		wikidataurl = wikidataurl,&lt;br /&gt;
		display = args[2] or args.name or &amp;#039;Official website&amp;#039;,&lt;br /&gt;
		format = args.format,&lt;br /&gt;
		mobile = args.mobile&lt;br /&gt;
	}&lt;br /&gt;
	return formattedUrl .. renderTrackingCategory(url, wikidataurl)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &amp;#039;Template:Official website&amp;#039;&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Check_for_unknown_parameters&amp;diff=4123</id>
		<title>Module:Check for unknown parameters</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Check_for_unknown_parameters&amp;diff=4123"/>
		<updated>2019-07-26T02:06:39Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module may be used to compare the arguments passed to the parent&lt;br /&gt;
-- with a list of arguments, returning a specified result if an argument is&lt;br /&gt;
-- not on the list&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
	return s:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isnotempty(s)&lt;br /&gt;
	return s and s:match(&amp;#039;%S&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function clean(text)&lt;br /&gt;
	-- Return text cleaned for display and truncated if too long.&lt;br /&gt;
	-- Strip markers are replaced with dummy text representing the original wikitext.&lt;br /&gt;
	local pos, truncated&lt;br /&gt;
	local function truncate(text)&lt;br /&gt;
		if truncated then&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		if mw.ustring.len(text) &amp;gt; 25 then&lt;br /&gt;
			truncated = true&lt;br /&gt;
			text = mw.ustring.sub(text, 1, 25) .. &amp;#039;...&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return mw.text.nowiki(text)&lt;br /&gt;
	end&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for before, tag, remainder in text:gmatch(&amp;#039;([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()&amp;#039;) do&lt;br /&gt;
		pos = remainder&lt;br /&gt;
		table.insert(parts, truncate(before) .. &amp;#039;&amp;amp;lt;&amp;#039; .. tag .. &amp;#039;&amp;amp;gt;...&amp;amp;lt;/&amp;#039; .. tag .. &amp;#039;&amp;amp;gt;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(parts, truncate(text:sub(pos or 1)))&lt;br /&gt;
	return table.concat(parts)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.check (frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	local ignoreblank = isnotempty(args[&amp;#039;ignoreblank&amp;#039;])&lt;br /&gt;
	local showblankpos = isnotempty(args[&amp;#039;showblankpositional&amp;#039;])&lt;br /&gt;
	local knownargs = {}&lt;br /&gt;
	local unknown = args[&amp;#039;unknown&amp;#039;] or &amp;#039;Found _VALUE_, &amp;#039;&lt;br /&gt;
	local preview = args[&amp;#039;preview&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	local values = {}&lt;br /&gt;
	local res = {}&lt;br /&gt;
	local regexps = {}&lt;br /&gt;
&lt;br /&gt;
	-- create the list of known args, regular expressions, and the return string&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			v = trim(v)&lt;br /&gt;
			knownargs[v] = 1&lt;br /&gt;
		elseif k:find(&amp;#039;^regexp[1-9][0-9]*$&amp;#039;) then&lt;br /&gt;
			table.insert(regexps, &amp;#039;^&amp;#039; .. v .. &amp;#039;$&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if isnotempty(preview) then&lt;br /&gt;
		preview = &amp;#039;&amp;lt;div class=&amp;quot;hatnote&amp;quot; style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; &amp;#039; .. preview .. &amp;#039; (this message is shown only in preview).&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	elseif preview == nil then&lt;br /&gt;
		preview = unknown&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- loop over the parent args, and make sure they are on the list&lt;br /&gt;
	for k, v in pairs(pargs) do&lt;br /&gt;
		if type(k) == &amp;#039;string&amp;#039; and knownargs[k] == nil then&lt;br /&gt;
			local knownflag = false&lt;br /&gt;
			for _, regexp in ipairs(regexps) do&lt;br /&gt;
				if mw.ustring.match(k, regexp) then&lt;br /&gt;
					knownflag = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not knownflag and ( not ignoreblank or isnotempty(v) )  then&lt;br /&gt;
				table.insert(values, clean(k))&lt;br /&gt;
			end&lt;br /&gt;
		elseif type(k) == &amp;#039;number&amp;#039; and&lt;br /&gt;
			knownargs[tostring(k)] == nil and&lt;br /&gt;
			( showblankpos or isnotempty(v) )&lt;br /&gt;
		then&lt;br /&gt;
			table.insert(values, k .. &amp;#039; = &amp;#039; .. clean(v))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add results to the output tables&lt;br /&gt;
	if #values &amp;gt; 0 then&lt;br /&gt;
		if frame:preprocess( &amp;quot;{{REVISIONID}}&amp;quot; ) == &amp;quot;&amp;quot; then&lt;br /&gt;
			unknown = preview&lt;br /&gt;
		end&lt;br /&gt;
		for _, v in pairs(values) do&lt;br /&gt;
			if v == &amp;#039;&amp;#039; then&lt;br /&gt;
				-- Fix odd bug for | = which gets stripped to the empty string and&lt;br /&gt;
				-- breaks category links&lt;br /&gt;
				v = &amp;#039; &amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			-- avoid error with v = &amp;#039;example%2&amp;#039; (&amp;quot;invalid capture index&amp;quot;)&lt;br /&gt;
			local r =  unknown:gsub(&amp;#039;_VALUE_&amp;#039;, {_VALUE_ = v})&lt;br /&gt;
			table.insert(res, r)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Years_or_months_ago&amp;diff=4121</id>
		<title>Template:Years or months ago</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Years_or_months_ago&amp;diff=4121"/>
		<updated>2019-07-26T02:06:38Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#ifexpr:{{#if:{{{2|}}}|1|0}}=0 or abs( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12)) &amp;gt;= 12&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!-- in years --&amp;gt;{{#expr:floor(abs( ( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) ) / 12 ))}}&amp;amp;nbsp;{{#ifexpr:({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) &amp;lt; 0&lt;br /&gt;
|&amp;lt;!-- future --&amp;gt;{{#ifexpr:floor( ( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) ) / 12 ) = -1|year&amp;#039;s|years&amp;#039;}}&lt;br /&gt;
|&amp;lt;!-- past/current --&amp;gt;{{#ifexpr:floor( ( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) ) / 12 ) = 1|year|years}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|&amp;lt;!-- in months --&amp;gt;{{#expr:abs( ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) )}}&amp;amp;nbsp;{{#ifexpr:({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) &amp;lt; 0&lt;br /&gt;
|&amp;lt;!-- future --&amp;gt;{{#ifexpr: ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) = -1|month&amp;#039;s|months&amp;#039;}}&lt;br /&gt;
|&amp;lt;!-- past/current --&amp;gt;{{#ifexpr: ({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) = 1|month|months}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
}} {{#ifexpr:({{{4|{{CURRENTMONTH}}}}}+{{{3|{{CURRENTYEAR}}}}}*12) - ({{{2|{{CURRENTMONTH}}}}}+{{{1|{{CURRENTYEAR}}}}}*12) &amp;lt; 0|time|ago}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Infobox_football_tournament/doc&amp;diff=4117</id>
		<title>Template:Infobox football tournament/doc</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Infobox_football_tournament/doc&amp;diff=4117"/>
		<updated>2019-07-26T02:06:37Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow: auto&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox football tournament&lt;br /&gt;
| name                 =&lt;br /&gt;
| image                =&lt;br /&gt;
| imagesize            =&lt;br /&gt;
| alt                  =&lt;br /&gt;
| caption              =&lt;br /&gt;
| organiser            =&lt;br /&gt;
| founded              =&lt;br /&gt;
| abolished            =&lt;br /&gt;
| region               =&lt;br /&gt;
| number of teams      =&lt;br /&gt;
| qualifier for        =&lt;br /&gt;
| related comps        =&lt;br /&gt;
| domestic cup         =&lt;br /&gt;
| confed cup           =&lt;br /&gt;
| current champions    =&lt;br /&gt;
| most successful club =&lt;br /&gt;
| broadcasters         =&lt;br /&gt;
| motto                =&lt;br /&gt;
| website              =&lt;br /&gt;
| current              =&lt;br /&gt;
| American             =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
All parameters are optional.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; (Alias: &amp;#039;&amp;#039;&amp;#039;title&amp;#039;&amp;#039;&amp;#039;): Tournament name; if not given, article title will be used&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;image&amp;#039;&amp;#039;&amp;#039; (Alias: &amp;#039;&amp;#039;&amp;#039;logo&amp;#039;&amp;#039;&amp;#039;): Image or logo related to the tournament; can use image syntax (i.e. &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;[[File:Example.svg|200px]]&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt;) or just the filename (i.e. &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;Example.svg&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd  cc&amp;gt;)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;imagesize&amp;#039;&amp;#039;&amp;#039;: Size of the image (only works when image syntax is not used)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;alt&amp;#039;&amp;#039;&amp;#039;: Specify the [[alt attribute|alt text]] for the image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;caption&amp;#039;&amp;#039;&amp;#039;: Caption for the image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;organiser&amp;#039;&amp;#039;&amp;#039;: Organising body of the competition&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;founded&amp;#039;&amp;#039;&amp;#039;: Year (or date if available) of founding&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;abolished&amp;#039;&amp;#039;&amp;#039;: Year (or date if available) of abolishing&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;region&amp;#039;&amp;#039;&amp;#039; (Alias: &amp;#039;&amp;#039;&amp;#039;continent&amp;#039;&amp;#039;&amp;#039;): Geographical region of the competition&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;number of teams&amp;#039;&amp;#039;&amp;#039; (Alias: &amp;#039;&amp;#039;&amp;#039;teams&amp;#039;&amp;#039;&amp;#039;): Teams participating in the last competition&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;qualifier for&amp;#039;&amp;#039;&amp;#039;: What the competition acts as a qualifier for&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;related comps&amp;#039;&amp;#039;&amp;#039;: Any related competitions&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;domestic cup&amp;#039;&amp;#039;&amp;#039;: Domestic cup(s)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;confed cup&amp;#039;&amp;#039;&amp;#039;: International cup(s)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;current champions&amp;#039;&amp;#039;&amp;#039; (Alias: &amp;#039;&amp;#039;&amp;#039;champion&amp;#039;&amp;#039;&amp;#039;): Last winners of the competition&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;most successful club&amp;#039;&amp;#039;&amp;#039; (Alias: &amp;#039;&amp;#039;&amp;#039;most successful team&amp;#039;&amp;#039;&amp;#039;): Most successful club of the competition&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;broadcasters&amp;#039;&amp;#039;&amp;#039;: Television broadcasters&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;motto&amp;#039;&amp;#039;&amp;#039;: Any official motto the tournament may have&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;website&amp;#039;&amp;#039;&amp;#039;: URL to the official tournament website&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;current&amp;#039;&amp;#039;&amp;#039; (Alias: &amp;#039;&amp;#039;&amp;#039;current_season&amp;#039;&amp;#039;&amp;#039;): Current season of the competition (should include wikilink if article exists)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;American&amp;#039;&amp;#039;&amp;#039;: changes &amp;quot;champions&amp;quot; to &amp;quot;champion(s)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
{{Infobox football tournament&lt;br /&gt;
| name                 = UEFA Champions League&lt;br /&gt;
| image                = Example.svg&lt;br /&gt;
| imagesize            = 150px&lt;br /&gt;
| alt                  = Official logo of the UEFA Champions League&lt;br /&gt;
| caption              = Competition logo&lt;br /&gt;
| organiser            = [[UEFA]]&lt;br /&gt;
| founded              = {{Start date and age|df=yes|1955}}&amp;lt;br&amp;gt;(rebranded in 1992)&lt;br /&gt;
| region               = Europe&lt;br /&gt;
| number of teams      = 32 (group stage)&amp;lt;br&amp;gt;78 or 79 (total)&lt;br /&gt;
| qualifier for        = {{nowrap|[[FIFA Club World Cup]]&amp;lt;br&amp;gt;[[UEFA Super Cup]]}}&lt;br /&gt;
| current champions    = {{flagicon|ESP}} [[Real Madrid C.F.|Real Madrid]]&amp;lt;br&amp;gt;(11th title)&lt;br /&gt;
| most successful club = {{flagicon|ESP}} [[Real Madrid C.F.|Real Madrid]]&amp;lt;br&amp;gt;(11 titles)&lt;br /&gt;
| broadcasters         = [[List of UEFA Champions League broadcasters|List of broadcasters]]&lt;br /&gt;
| motto                = [[UEFA Champions League Anthem]]&lt;br /&gt;
| website              = {{Official website|http://www.uefa.com/uefachampionsleague/index.html}}&lt;br /&gt;
| current              = [[2016–17 UEFA Champions League]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow: auto&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox football tournament&lt;br /&gt;
| name                 = UEFA Champions League&lt;br /&gt;
| image                = Example.svg&lt;br /&gt;
| imagesize            = 150px&lt;br /&gt;
| alt                  = Official logo of the UEFA Champions League&lt;br /&gt;
| caption              = Competition logo&lt;br /&gt;
| organiser            = [[UEFA]]&lt;br /&gt;
| founded              = {{Start date and age|df=yes|1955}}&amp;lt;br&amp;gt;(rebranded in 1992)&lt;br /&gt;
| region               = Europe&lt;br /&gt;
| number of teams      = 32 (group stage)&amp;lt;br&amp;gt;78 or 79 (total)&lt;br /&gt;
| qualifier for        = {{nowrap|[[FIFA Club World Cup]]&amp;lt;br&amp;gt;[[UEFA Super Cup]]}}&lt;br /&gt;
| current champions    = {{flagicon|ESP}} [[Real Madrid C.F.|Real Madrid]]&amp;lt;br&amp;gt;(11th title)&lt;br /&gt;
| most successful club = {{flagicon|ESP}} [[Real Madrid C.F.|Real Madrid]]&amp;lt;br&amp;gt;(11 titles)&lt;br /&gt;
| broadcasters         = [[List of UEFA Champions League broadcasters|List of broadcasters]]&lt;br /&gt;
| motto                = [[UEFA Champions League Anthem]]&lt;br /&gt;
| website              = {{Official website|http://www.uefa.com/uefachampionsleague/index.html}}&lt;br /&gt;
| current              = [[2016–17 UEFA Champions League]]&lt;br /&gt;
}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [[Template:Infobox football club]]&lt;br /&gt;
* [[Template:Infobox football tournament season]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
++++ PLEASE ADD CATEGORIES AND INTERWIKIS BELOW THIS LINE, THANK YOU. --&amp;gt;&lt;br /&gt;
[[Category:Association football infobox templates]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Official_website&amp;diff=4119</id>
		<title>Template:Official website</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Official_website&amp;diff=4119"/>
		<updated>2019-07-26T02:06:37Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Official website|main}}{{#invoke:Check for unknown parameters|check|showblankpositional=1|unknown={{main other|1=[[Category:Pages using Official website with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Official website]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|1|2|URL|url|mobile|name|format}}&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:If_empty&amp;diff=4115</id>
		<title>Template:If empty</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:If_empty&amp;diff=4115"/>
		<updated>2019-07-26T02:06:21Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:If empty|main}}&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Flagicon&amp;diff=4113</id>
		<title>Template:Flagicon</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Flagicon&amp;diff=4113"/>
		<updated>2019-07-26T02:06:19Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{safesubst&amp;lt;noinclude /&amp;gt;:#ifeq: {{Yesno-no|{{{noredlink|}}}}}|yes&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
          #Check for existence of Template: Country data foo before invoking it&lt;br /&gt;
      --&amp;gt;&amp;lt;/noinclude&amp;gt;{{safesubst&amp;lt;noinclude /&amp;gt;:#ifexist: Template: Country data {{{1|}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
               # It exists, so proceed&lt;br /&gt;
           --&amp;gt;&amp;lt;/noinclude&amp;gt;{{country data {{{1|}}}|flagicon/core|variant={{{variant|{{{2|}}}}}}|size={{{size|}}}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
         --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
               # It doesn&amp;#039;t exist, so do nothing&lt;br /&gt;
      --&amp;gt;&amp;lt;/noinclude&amp;gt;}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
   --&amp;gt;&amp;lt;/noinclude&amp;gt;|&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
          # DEFAULT call  Template: Country data {{{1|}}}&lt;br /&gt;
          # with no prior checks&lt;br /&gt;
     --&amp;gt;&amp;lt;/noinclude&amp;gt;{{country data {{{1|}}}|flagicon/core|variant={{{variant|{{{2|}}}}}}|size={{{size|}}}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
          # Track use where &amp;quot;Template:Country data Foo&amp;quot; does not exist&lt;br /&gt;
     --&amp;gt;&amp;lt;/noinclude&amp;gt;{{safesubst&amp;lt;noinclude /&amp;gt;:#ifexist: Template:Country data {{{1|}}}||{{safesubst&amp;lt;noinclude /&amp;gt;:namespace detect showall&lt;br /&gt;
| 1 = &lt;br /&gt;
| 2 = [[Category:Flagicons with missing country data templates]]&lt;br /&gt;
| user  = 1&lt;br /&gt;
| talk  = 1&lt;br /&gt;
| other = 2&lt;br /&gt;
}}}}&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{DEFAULTSORT:Law by year}}&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Infobox_football_tournament&amp;diff=4109</id>
		<title>Template:Infobox football tournament</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Infobox_football_tournament&amp;diff=4109"/>
		<updated>2019-07-26T02:06:18Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox&lt;br /&gt;
| bodyclass = football&lt;br /&gt;
| title     = {{{name|{{{title|&amp;lt;includeonly&amp;gt;{{PAGENAMEBASE}}&amp;lt;/includeonly&amp;gt;}}}}}}&lt;br /&gt;
| image     = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|{{{logo|}}}}}}|size={{{imagesize|}}}|alt={{{alt|}}}| upright={{{upright|}}}}} &lt;br /&gt;
| caption   = {{{caption|}}}&lt;br /&gt;
| label1    = Organising body&lt;br /&gt;
| data1     = {{{organiser|}}}&lt;br /&gt;
| label2    = Founded&lt;br /&gt;
| data2     = {{{founded|}}}&lt;br /&gt;
| label3    = Abolished&lt;br /&gt;
| data3     = {{{abolished|}}}&lt;br /&gt;
| label4    = Region&lt;br /&gt;
| data4     = {{{region|{{{continent|}}}}}}&lt;br /&gt;
| label5    = Number of teams&lt;br /&gt;
| data5     = {{{number of teams|{{{teams|}}}}}}&lt;br /&gt;
| label6    = Qualifier for&lt;br /&gt;
| data6     = {{{qualifier for|}}}&lt;br /&gt;
| label7    = Related competitions&lt;br /&gt;
| data7     = {{{related comps|}}}&lt;br /&gt;
| label8    = Domestic cup(s)&lt;br /&gt;
| data8     = {{{domestic cup|}}}&lt;br /&gt;
| label9    = International cup(s)&lt;br /&gt;
| data9     = {{{confed cup|}}}&lt;br /&gt;
| label10   = {{#if:{{{abolished|}}}|Last|Current}} {{#if:{{{American|}}}|champion(s)|champions}}&lt;br /&gt;
| data10    = {{{current champions|{{{champion|}}}}}}&lt;br /&gt;
| label11   = {{nowrap|{{#if:{{{most successful team|}}}|Most successful team(s)|Most successful club(s)}}}}&lt;br /&gt;
| data11    = {{if empty|{{{most successful team|}}} | {{{most successful club|}}} }}&lt;br /&gt;
| label13   = Television broadcasters&lt;br /&gt;
| data13    = {{{broadcasters|}}}&lt;br /&gt;
| label14   = Motto&lt;br /&gt;
| data14    = {{{motto|}}}&lt;br /&gt;
| label15   = Website&lt;br /&gt;
| data15    = {{{website|}}}&lt;br /&gt;
| data16    = {{#if:{{{current|{{{current_season|}}}}}}|[[Image:Soccerball current event.svg|33px|alt=|link=]] &amp;#039;&amp;#039;{{{current|{{{current_season|}}}}}}&amp;#039;&amp;#039;}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;!-- Add cats and interwikis to the /doc subpage, not here! --&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Spain&amp;diff=4111</id>
		<title>Template:Country data Spain</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Country_data_Spain&amp;diff=4111"/>
		<updated>2019-07-26T02:06:18Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ {{{1&amp;lt;noinclude&amp;gt;|country showdata&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
| alias = Spain&lt;br /&gt;
| flag alias = Flag of Spain.svg&lt;br /&gt;
| flag alias-1506 = Flag of Cross of Burgundy.svg&lt;br /&gt;
| flag alias-1701 = Bandera de España 1701-1748.svg&lt;br /&gt;
| flag alias-1748 = Bandera de España 1748-1785.svg&lt;br /&gt;
| flag alias-1785 = Flag of Spain (1785–1873, 1875–1931).svg&lt;br /&gt;
| flag alias-1873 = Flag of the First Spanish Republic.svg&lt;br /&gt;
| flag alias-1874 = Flag of Spain (1785–1873, 1875–1931).svg&lt;br /&gt;
| flag alias-1931 = Flag of Spain (1931–1939).svg&lt;br /&gt;
| flag alias-1936 = Bandera del bando nacional 1936-1938.svg&lt;br /&gt;
| flag alias-1938 = Flag of Spain (1938–1945).svg&lt;br /&gt;
| flag alias-1945 = Flag of Spain (1945–1977).svg&lt;br /&gt;
| flag alias-1977 = Flag of Spain (1977–1981).svg&lt;br /&gt;
| flag alias-civil = Flag of Spain (Civil).svg&lt;br /&gt;
| flag alias-civil-1785 = BandMercante1785.svg&lt;br /&gt;
| flag alias-navy=Naval Jack of Spain.svg&lt;br /&gt;
| link alias-navy=Spanish Navy&lt;br /&gt;
| flag alias-marines=Naval Jack of Spain.svg&lt;br /&gt;
| link alias-marines=Spanish Navy Marines&lt;br /&gt;
| link alias-army = Spanish Army&lt;br /&gt;
| link alias-naval = Spanish Navy&lt;br /&gt;
| link alias-basketball = Spain {{{mw|men&amp;#039;s}}} national {{{age|}}} basketball team&lt;br /&gt;
| size = {{{size|}}}&lt;br /&gt;
| name = {{{name|}}}&lt;br /&gt;
| altlink = {{{altlink|}}}&lt;br /&gt;
| variant = {{{variant|}}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
| var1 = 1506&lt;br /&gt;
| var2 = 1701&lt;br /&gt;
| var3 = 1748&lt;br /&gt;
| var4 = 1785&lt;br /&gt;
| var5 = 1873&lt;br /&gt;
| var6 = 1874&lt;br /&gt;
| var7 = 1931&lt;br /&gt;
| var8 = 1936&lt;br /&gt;
| var9 = 1938&lt;br /&gt;
| var10 = 1945&lt;br /&gt;
| var11 = 1977&lt;br /&gt;
| var12 = civil&lt;br /&gt;
| var13 = civil-1785&lt;br /&gt;
| redir1 = ESP&lt;br /&gt;
| redir2 = SPA&lt;br /&gt;
| related1 = Spanish Republic&lt;br /&gt;
| related2 = Spanish State&lt;br /&gt;
| related3=Francoist Spain&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Section_link&amp;diff=4103</id>
		<title>Module:Section link</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Section_link&amp;diff=4103"/>
		<updated>2019-07-26T02:04:29Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements {{section link}}.&lt;br /&gt;
require(&amp;#039;Module:No globals&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
local checkType = require(&amp;#039;libraryUtil&amp;#039;).checkType&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function makeSectionLink(page, section, display)&lt;br /&gt;
	display = display or section&lt;br /&gt;
	page = page or &amp;#039;&amp;#039;&lt;br /&gt;
	return string.format(&amp;#039;[[%s#%s|%s]]&amp;#039;, page, section, display)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function normalizeTitle(title)&lt;br /&gt;
	title = mw.ustring.gsub(mw.ustring.gsub(title, &amp;quot;&amp;#039;&amp;quot;, &amp;quot;&amp;quot;), &amp;#039;&amp;quot;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	title = mw.ustring.gsub(title, &amp;quot;%b&amp;lt;&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	return mw.title.new(title).prefixedText&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(page, sections, options, title)&lt;br /&gt;
	-- Validate input.&lt;br /&gt;
	checkType(&amp;#039;_main&amp;#039;, 1, page, &amp;#039;string&amp;#039;, true)&lt;br /&gt;
	checkType(&amp;#039;_main&amp;#039;, 3, options, &amp;#039;table&amp;#039;, true)&lt;br /&gt;
	if sections == nil then&lt;br /&gt;
		sections = {}&lt;br /&gt;
	elseif type(sections) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		sections = {sections}&lt;br /&gt;
	elseif type(sections) ~= &amp;#039;table&amp;#039; then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&amp;quot;type error in argument #2 to &amp;#039;_main&amp;#039; &amp;quot; ..&lt;br /&gt;
			&amp;quot;(string, table or nil expected, got %s)&amp;quot;,&lt;br /&gt;
			type(sections)&lt;br /&gt;
		), 2)&lt;br /&gt;
	end&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	title = title or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Deal with blank page names elegantly&lt;br /&gt;
	if page and not page:find(&amp;#039;%S&amp;#039;) then&lt;br /&gt;
		page = nil&lt;br /&gt;
		options.nopage = true&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make the link(s).&lt;br /&gt;
	local isShowingPage = not options.nopage&lt;br /&gt;
	if #sections &amp;lt;= 1 then&lt;br /&gt;
		local linkPage = page or &amp;#039;&amp;#039;&lt;br /&gt;
		local section = sections[1] or &amp;#039;Notes&amp;#039;&lt;br /&gt;
		local display = &amp;#039;§&amp;amp;nbsp;&amp;#039; .. section&lt;br /&gt;
		if isShowingPage then&lt;br /&gt;
			page = page or title.prefixedText&lt;br /&gt;
			if options.display and options.display ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				if normalizeTitle(options.display) == normalizeTitle(page) then&lt;br /&gt;
					display = options.display .. &amp;#039; &amp;#039; .. display&lt;br /&gt;
				else&lt;br /&gt;
					error(string.format(&lt;br /&gt;
						&amp;#039;Display title &amp;quot;%s&amp;quot; was ignored since it is &amp;#039; ..&lt;br /&gt;
						&amp;quot;not equivalent to the page&amp;#039;s actual title&amp;quot;,&lt;br /&gt;
						options.display&lt;br /&gt;
					), 0)&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				display = page .. &amp;#039; &amp;#039; .. display&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return makeSectionLink(linkPage, section, display)&lt;br /&gt;
	else&lt;br /&gt;
		-- Multiple sections. First, make a list of the links to display.&lt;br /&gt;
		local ret = {}&lt;br /&gt;
		for i, section in ipairs(sections) do&lt;br /&gt;
			ret[i] = makeSectionLink(page, section)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Assemble the list of links into a string with mw.text.listToText.&lt;br /&gt;
		-- We use the default separator for mw.text.listToText, but a custom&lt;br /&gt;
		-- conjunction. There is also a special case conjunction if we only&lt;br /&gt;
		-- have two links.&lt;br /&gt;
		local conjunction&lt;br /&gt;
		if #sections == 2 then&lt;br /&gt;
			conjunction = &amp;#039;&amp;amp;#8203; and &amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			conjunction = &amp;#039;, and &amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		ret = mw.text.listToText(ret, nil, conjunction)&lt;br /&gt;
&lt;br /&gt;
		-- Add the intro text.&lt;br /&gt;
		local intro = &amp;#039;§§&amp;amp;nbsp;&amp;#039;&lt;br /&gt;
		if isShowingPage then&lt;br /&gt;
			intro = (page or title.prefixedText) .. &amp;#039; &amp;#039; .. intro&lt;br /&gt;
		end&lt;br /&gt;
		ret = intro .. ret&lt;br /&gt;
&lt;br /&gt;
		return ret&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &amp;#039;Template:Section link&amp;#039;,&lt;br /&gt;
		valueFunc = function (key, value)&lt;br /&gt;
			value = value:match(&amp;#039;^%s*(.-)%s*$&amp;#039;) -- Trim whitespace&lt;br /&gt;
			-- Allow blank first parameters, as the wikitext template does this.&lt;br /&gt;
			if value ~= &amp;#039;&amp;#039; or key == 1 then&lt;br /&gt;
				return value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs(args) do													-- replace underscores in the positional parameter values&lt;br /&gt;
		if &amp;#039;number&amp;#039; == type(k) and not yesno (args[&amp;#039;keep-underscores&amp;#039;]) then	-- unless |keep-underscores=yes&lt;br /&gt;
			args[k] = v:gsub (&amp;#039;_&amp;#039;, &amp;#039; &amp;#039;)											-- do the replacement&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Sort the arguments.&lt;br /&gt;
	local page&lt;br /&gt;
	local sections, options = {}, {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if k == 1 then&lt;br /&gt;
			-- Doing this in the loop because of a bug in [[Module:Arguments]]&lt;br /&gt;
			-- when using pairs with deleted arguments.&lt;br /&gt;
			page = mw.text.decode(v, true)&lt;br /&gt;
		elseif type(k) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			sections[k] = v&lt;br /&gt;
		else&lt;br /&gt;
			options[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	options.nopage = yesno (options.nopage);									-- make boolean&lt;br /&gt;
	&lt;br /&gt;
	-- Extract section from page, if present&lt;br /&gt;
	if page then&lt;br /&gt;
		local p, s = page:match(&amp;#039;^(.-)#(.*)$&amp;#039;)&lt;br /&gt;
		if p then page, sections[1] = p, s end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Compress the sections array.&lt;br /&gt;
	local function compressArray(t)&lt;br /&gt;
		local nums, ret = {}, {}&lt;br /&gt;
		for num in pairs(t) do&lt;br /&gt;
			nums[#nums + 1] = num&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(nums)&lt;br /&gt;
		for i, num in ipairs(nums) do&lt;br /&gt;
			ret[i] = t[num]&lt;br /&gt;
		end&lt;br /&gt;
		return ret&lt;br /&gt;
	end&lt;br /&gt;
	sections = compressArray(sections)&lt;br /&gt;
&lt;br /&gt;
	return p._main(page, sections, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:String&amp;diff=4105</id>
		<title>Module:String</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:String&amp;diff=4105"/>
		<updated>2019-07-26T02:04:29Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
&lt;br /&gt;
This module is intended to provide access to basic string functions.&lt;br /&gt;
&lt;br /&gt;
Most of the functions provided here can be invoked with named parameters,&lt;br /&gt;
unnamed parameters, or a mixture.  If named parameters are used, Mediawiki will&lt;br /&gt;
automatically remove any leading or trailing whitespace from the parameter.&lt;br /&gt;
Depending on the intended use, it may be advantageous to either preserve or&lt;br /&gt;
remove such whitespace.&lt;br /&gt;
&lt;br /&gt;
Global options&lt;br /&gt;
    ignore_errors: If set to &amp;#039;true&amp;#039; or 1, any error condition will result in&lt;br /&gt;
        an empty string being returned rather than an error message.&lt;br /&gt;
&lt;br /&gt;
    error_category: If an error occurs, specifies the name of a category to&lt;br /&gt;
        include with the error message.  The default category is&lt;br /&gt;
        [Category:Errors reported by Module String].&lt;br /&gt;
&lt;br /&gt;
    no_category: If set to &amp;#039;true&amp;#039; or 1, no category will be added if an error&lt;br /&gt;
        is generated.&lt;br /&gt;
&lt;br /&gt;
Unit tests for this module are available at Module:String/tests.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local str = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
len&lt;br /&gt;
&lt;br /&gt;
This function returns the length of the target string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|len|target_string|}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|len|s=target_string}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string whose length to report&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.&lt;br /&gt;
]]&lt;br /&gt;
function str.len( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&amp;#039;s&amp;#039;} )&lt;br /&gt;
	local s = new_args[&amp;#039;s&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	return mw.ustring.len( s )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
sub&lt;br /&gt;
&lt;br /&gt;
This function returns a substring of the target string at specified indices.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|sub|target_string|start_index|end_index}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to return a subset of&lt;br /&gt;
    i: The fist index of the substring to return, defaults to 1.&lt;br /&gt;
    j: The last index of the string to return, defaults to the last character.&lt;br /&gt;
&lt;br /&gt;
The first character of the string is assigned an index of 1.  If either i or j&lt;br /&gt;
is a negative value, it is interpreted the same as selecting a character by&lt;br /&gt;
counting from the end of the string.  Hence, a value of -1 is the same as&lt;br /&gt;
selecting the last character of the string.&lt;br /&gt;
&lt;br /&gt;
If the requested indices are out of range for the given string, an error is&lt;br /&gt;
reported.&lt;br /&gt;
]]&lt;br /&gt;
function str.sub( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, { &amp;#039;s&amp;#039;, &amp;#039;i&amp;#039;, &amp;#039;j&amp;#039; } )&lt;br /&gt;
	local s = new_args[&amp;#039;s&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local i = tonumber( new_args[&amp;#039;i&amp;#039;] ) or 1&lt;br /&gt;
	local j = tonumber( new_args[&amp;#039;j&amp;#039;] ) or -1&lt;br /&gt;
&lt;br /&gt;
	local len = mw.ustring.len( s )&lt;br /&gt;
&lt;br /&gt;
	-- Convert negatives for range checking&lt;br /&gt;
	if i &amp;lt; 0 then&lt;br /&gt;
		i = len + i + 1&lt;br /&gt;
	end&lt;br /&gt;
	if j &amp;lt; 0 then&lt;br /&gt;
		j = len + j + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if i &amp;gt; len or j &amp;gt; len or i &amp;lt; 1 or j &amp;lt; 1 then&lt;br /&gt;
		return str._error( &amp;#039;String subset index out of range&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if j &amp;lt; i then&lt;br /&gt;
		return str._error( &amp;#039;String subset indices out of order&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.sub( s, i, j )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
This function implements that features of {{str sub old}} and is kept in order&lt;br /&gt;
to maintain these older templates.&lt;br /&gt;
]]&lt;br /&gt;
function str.sublength( frame )&lt;br /&gt;
	local i = tonumber( frame.args.i ) or 0&lt;br /&gt;
	local len = tonumber( frame.args.len )&lt;br /&gt;
	return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
match&lt;br /&gt;
&lt;br /&gt;
This function returns a substring from the source string that matches a&lt;br /&gt;
specified pattern.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index&lt;br /&gt;
    |match=match_number|plain=plain_flag|nomatch=nomatch_output}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to search&lt;br /&gt;
    pattern: The pattern or string to find within the string&lt;br /&gt;
    start: The index within the source string to start the search.  The first&lt;br /&gt;
        character of the string has index 1.  Defaults to 1.&lt;br /&gt;
    match: In some cases it may be possible to make multiple matches on a single&lt;br /&gt;
        string.  This specifies which match to return, where the first match is&lt;br /&gt;
        match= 1.  If a negative number is specified then a match is returned&lt;br /&gt;
        counting from the last match.  Hence match = -1 is the same as requesting&lt;br /&gt;
        the last match.  Defaults to 1.&lt;br /&gt;
    plain: A flag indicating that the pattern should be understood as plain&lt;br /&gt;
        text.  Defaults to false.&lt;br /&gt;
    nomatch: If no match is found, output the &amp;quot;nomatch&amp;quot; value rather than an error.&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from each string.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
If the match_number or start_index are out of range for the string being queried, then&lt;br /&gt;
this function generates an error.  An error is also generated if no match is found.&lt;br /&gt;
If one adds the parameter ignore_errors=true, then the error will be suppressed and&lt;br /&gt;
an empty string will be returned on any failure.&lt;br /&gt;
&lt;br /&gt;
For information on constructing Lua patterns, a form of [regular expression], see:&lt;br /&gt;
&lt;br /&gt;
* http://www.lua.org/manual/5.1/manual.html#5.4.1&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
-- This sub-routine is exported for use in other modules&lt;br /&gt;
function str._match( s, pattern, start, match_index, plain_flag, nomatch )&lt;br /&gt;
	if s == &amp;#039;&amp;#039; then&lt;br /&gt;
		return str._error( &amp;#039;Target string is empty&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if pattern == &amp;#039;&amp;#039; then&lt;br /&gt;
		return str._error( &amp;#039;Pattern string is empty&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	start = tonumber(start) or 1&lt;br /&gt;
	if math.abs(start) &amp;lt; 1 or math.abs(start) &amp;gt; mw.ustring.len( s ) then&lt;br /&gt;
		return str._error( &amp;#039;Requested start is out of range&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if match_index == 0 then&lt;br /&gt;
		return str._error( &amp;#039;Match index is out of range&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if plain_flag then&lt;br /&gt;
		pattern = str._escapePattern( pattern )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result&lt;br /&gt;
	if match_index == 1 then&lt;br /&gt;
		-- Find first match is simple case&lt;br /&gt;
		result = mw.ustring.match( s, pattern, start )&lt;br /&gt;
	else&lt;br /&gt;
		if start &amp;gt; 1 then&lt;br /&gt;
			s = mw.ustring.sub( s, start )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local iterator = mw.ustring.gmatch(s, pattern)&lt;br /&gt;
		if match_index &amp;gt; 0 then&lt;br /&gt;
			-- Forward search&lt;br /&gt;
			for w in iterator do&lt;br /&gt;
				match_index = match_index - 1&lt;br /&gt;
				if match_index == 0 then&lt;br /&gt;
					result = w&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- Reverse search&lt;br /&gt;
			local result_table = {}&lt;br /&gt;
			local count = 1&lt;br /&gt;
			for w in iterator do&lt;br /&gt;
				result_table[count] = w&lt;br /&gt;
				count = count + 1&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			result = result_table[ count + match_index ]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if result == nil then&lt;br /&gt;
		if nomatch == nil then&lt;br /&gt;
			return str._error( &amp;#039;Match not found&amp;#039; )&lt;br /&gt;
		else&lt;br /&gt;
			return nomatch&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
-- This is the entry point for #invoke:String|match&lt;br /&gt;
function str.match( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&amp;#039;s&amp;#039;, &amp;#039;pattern&amp;#039;, &amp;#039;start&amp;#039;, &amp;#039;match&amp;#039;, &amp;#039;plain&amp;#039;, &amp;#039;nomatch&amp;#039;} )&lt;br /&gt;
	local s = new_args[&amp;#039;s&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local start = tonumber( new_args[&amp;#039;start&amp;#039;] ) or 1&lt;br /&gt;
	local plain_flag = str._getBoolean( new_args[&amp;#039;plain&amp;#039;] or false )&lt;br /&gt;
	local pattern = new_args[&amp;#039;pattern&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local match_index = math.floor( tonumber(new_args[&amp;#039;match&amp;#039;]) or 1 )&lt;br /&gt;
	local nomatch = new_args[&amp;#039;nomatch&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	return str._match( s, pattern, start, match_index, plain_flag, nomatch )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
pos&lt;br /&gt;
&lt;br /&gt;
This function returns a single character from the target string at position pos.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|pos|target_string|index_value}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|pos|target=target_string|pos=index_value}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    target: The string to search&lt;br /&gt;
    pos: The index for the character to return&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
The first character has an index value of 1.&lt;br /&gt;
&lt;br /&gt;
If one requests a negative value, this function will select a character by counting backwards&lt;br /&gt;
from the end of the string.  In other words pos = -1 is the same as asking for the last character.&lt;br /&gt;
&lt;br /&gt;
A requested value of zero, or a value greater than the length of the string returns an error.&lt;br /&gt;
]]&lt;br /&gt;
function str.pos( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&amp;#039;target&amp;#039;, &amp;#039;pos&amp;#039;} )&lt;br /&gt;
	local target_str = new_args[&amp;#039;target&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local pos = tonumber( new_args[&amp;#039;pos&amp;#039;] ) or 0&lt;br /&gt;
&lt;br /&gt;
	if pos == 0 or math.abs(pos) &amp;gt; mw.ustring.len( target_str ) then&lt;br /&gt;
		return str._error( &amp;#039;String index out of range&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.sub( target_str, pos, pos )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
str_find&lt;br /&gt;
&lt;br /&gt;
This function duplicates the behavior of {{str_find}}, including all of its quirks.&lt;br /&gt;
This is provided in order to support existing templates, but is NOT RECOMMENDED for&lt;br /&gt;
new code and templates.  New code is recommended to use the &amp;quot;find&amp;quot; function instead.&lt;br /&gt;
&lt;br /&gt;
Returns the first index in &amp;quot;source&amp;quot; that is a match to &amp;quot;target&amp;quot;.  Indexing is 1-based,&lt;br /&gt;
and the function returns -1 if the &amp;quot;target&amp;quot; string is not present in &amp;quot;source&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Important Note: If the &amp;quot;target&amp;quot; string is empty / missing, this function returns a&lt;br /&gt;
value of &amp;quot;1&amp;quot;, which is generally unexpected behavior, and must be accounted for&lt;br /&gt;
separatetly.&lt;br /&gt;
]]&lt;br /&gt;
function str.str_find( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&amp;#039;source&amp;#039;, &amp;#039;target&amp;#039;} )&lt;br /&gt;
	local source_str = new_args[&amp;#039;source&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local target_str = new_args[&amp;#039;target&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if target_str == &amp;#039;&amp;#039; then&lt;br /&gt;
		return 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local start = mw.ustring.find( source_str, target_str, 1, true )&lt;br /&gt;
	if start == nil then&lt;br /&gt;
		start = -1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return start&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
find&lt;br /&gt;
&lt;br /&gt;
This function allows one to search for a target string or pattern within another&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    target: The string or pattern to find within source&lt;br /&gt;
    start: The index within the source string to start the search, defaults to 1&lt;br /&gt;
    plain: Boolean flag indicating that target should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the parameter.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
This function returns the first index &amp;gt;= &amp;quot;start&amp;quot; where &amp;quot;target&amp;quot; can be found&lt;br /&gt;
within &amp;quot;source&amp;quot;.  Indices are 1-based.  If &amp;quot;target&amp;quot; is not found, then this&lt;br /&gt;
function returns 0.  If either &amp;quot;source&amp;quot; or &amp;quot;target&amp;quot; are missing / empty, this&lt;br /&gt;
function also returns 0.&lt;br /&gt;
&lt;br /&gt;
This function should be safe for UTF-8 strings.&lt;br /&gt;
]]&lt;br /&gt;
function str.find( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&amp;#039;source&amp;#039;, &amp;#039;target&amp;#039;, &amp;#039;start&amp;#039;, &amp;#039;plain&amp;#039; } )&lt;br /&gt;
	local source_str = new_args[&amp;#039;source&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local pattern = new_args[&amp;#039;target&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local start_pos = tonumber(new_args[&amp;#039;start&amp;#039;]) or 1&lt;br /&gt;
	local plain = new_args[&amp;#039;plain&amp;#039;] or true&lt;br /&gt;
&lt;br /&gt;
	if source_str == &amp;#039;&amp;#039; or pattern == &amp;#039;&amp;#039; then&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	plain = str._getBoolean( plain )&lt;br /&gt;
&lt;br /&gt;
	local start = mw.ustring.find( source_str, pattern, start_pos, plain )&lt;br /&gt;
	if start == nil then&lt;br /&gt;
		start = 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return start&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
replace&lt;br /&gt;
&lt;br /&gt;
This function allows one to replace a target string or pattern within another&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|&lt;br /&gt;
   count=replacement_count|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    pattern: The string or pattern to find within source&lt;br /&gt;
    replace: The replacement text&lt;br /&gt;
    count: The number of occurences to replace, defaults to all.&lt;br /&gt;
    plain: Boolean flag indicating that pattern should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true&lt;br /&gt;
]]&lt;br /&gt;
function str.replace( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&amp;#039;source&amp;#039;, &amp;#039;pattern&amp;#039;, &amp;#039;replace&amp;#039;, &amp;#039;count&amp;#039;, &amp;#039;plain&amp;#039; } )&lt;br /&gt;
	local source_str = new_args[&amp;#039;source&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local pattern = new_args[&amp;#039;pattern&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local replace = new_args[&amp;#039;replace&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
	local count = tonumber( new_args[&amp;#039;count&amp;#039;] )&lt;br /&gt;
	local plain = new_args[&amp;#039;plain&amp;#039;] or true&lt;br /&gt;
&lt;br /&gt;
	if source_str == &amp;#039;&amp;#039; or pattern == &amp;#039;&amp;#039; then&lt;br /&gt;
		return source_str&lt;br /&gt;
	end&lt;br /&gt;
	plain = str._getBoolean( plain )&lt;br /&gt;
&lt;br /&gt;
	if plain then&lt;br /&gt;
		pattern = str._escapePattern( pattern )&lt;br /&gt;
		replace = mw.ustring.gsub( replace, &amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot; ) --Only need to escape replacement sequences.&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result&lt;br /&gt;
&lt;br /&gt;
	if count ~= nil then&lt;br /&gt;
		result = mw.ustring.gsub( source_str, pattern, replace, count )&lt;br /&gt;
	else&lt;br /&gt;
		result = mw.ustring.gsub( source_str, pattern, replace )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    simple function to pipe string.rep to templates.&lt;br /&gt;
]]&lt;br /&gt;
function str.rep( frame )&lt;br /&gt;
	local repetitions = tonumber( frame.args[2] )&lt;br /&gt;
	if not repetitions then&lt;br /&gt;
		return str._error( &amp;#039;function rep expects a number as second parameter, received &amp;quot;&amp;#039; .. ( frame.args[2] or &amp;#039;&amp;#039; ) .. &amp;#039;&amp;quot;&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return string.rep( frame.args[1] or &amp;#039;&amp;#039;, repetitions )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
escapePattern&lt;br /&gt;
&lt;br /&gt;
This function escapes special characters from a Lua string pattern. See [1]&lt;br /&gt;
for details on how patterns work.&lt;br /&gt;
&lt;br /&gt;
[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|escapePattern|pattern_string}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    pattern_string: The pattern string to escape.&lt;br /&gt;
]]&lt;br /&gt;
function str.escapePattern( frame )&lt;br /&gt;
	local pattern_str = frame.args[1]&lt;br /&gt;
	if not pattern_str then&lt;br /&gt;
		return str._error( &amp;#039;No pattern string specified&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	local result = str._escapePattern( pattern_str )&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
count&lt;br /&gt;
This function counts the number of occurrences of one string in another.&lt;br /&gt;
]]&lt;br /&gt;
function str.count(frame)&lt;br /&gt;
	local args = str._getParameters(frame.args, {&amp;#039;source&amp;#039;, &amp;#039;pattern&amp;#039;, &amp;#039;plain&amp;#039;})&lt;br /&gt;
	local source = args.source or &amp;#039;&amp;#039;&lt;br /&gt;
	local pattern = args.pattern or &amp;#039;&amp;#039;&lt;br /&gt;
	local plain = str._getBoolean(args.plain or true)&lt;br /&gt;
	if plain then&lt;br /&gt;
		pattern = str._escapePattern(pattern)&lt;br /&gt;
	end&lt;br /&gt;
	local _, count = mw.ustring.gsub(source, pattern, &amp;#039;&amp;#039;)&lt;br /&gt;
	return count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
endswith&lt;br /&gt;
This function determines whether a string ends with another string.&lt;br /&gt;
]]&lt;br /&gt;
function str.endswith(frame)&lt;br /&gt;
	local args = str._getParameters(frame.args, {&amp;#039;source&amp;#039;, &amp;#039;pattern&amp;#039;})&lt;br /&gt;
	local source = args.source or &amp;#039;&amp;#039;&lt;br /&gt;
	local pattern = args.pattern or &amp;#039;&amp;#039;&lt;br /&gt;
	if pattern == &amp;#039;&amp;#039; then&lt;br /&gt;
		-- All strings end with the empty string.&lt;br /&gt;
		return &amp;quot;yes&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then&lt;br /&gt;
		return &amp;quot;yes&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
join&lt;br /&gt;
&lt;br /&gt;
Join all non empty arguments together; the first argument is the separator.&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|join|sep|one|two|three}}&lt;br /&gt;
]]&lt;br /&gt;
function str.join(frame)&lt;br /&gt;
	local args = {}&lt;br /&gt;
	local sep&lt;br /&gt;
	for _, v in ipairs( frame.args ) do&lt;br /&gt;
		if sep then&lt;br /&gt;
			if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				table.insert(args, v)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			sep = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat( args, sep or &amp;#039;&amp;#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that populates the argument list given that user may need to use a mix of&lt;br /&gt;
named and unnamed parameters.  This is relevant because named parameters are not&lt;br /&gt;
identical to unnamed parameters due to string trimming, and when dealing with strings&lt;br /&gt;
we sometimes want to either preserve or remove that whitespace depending on the application.&lt;br /&gt;
]]&lt;br /&gt;
function str._getParameters( frame_args, arg_list )&lt;br /&gt;
	local new_args = {}&lt;br /&gt;
	local index = 1&lt;br /&gt;
	local value&lt;br /&gt;
&lt;br /&gt;
	for _, arg in ipairs( arg_list ) do&lt;br /&gt;
		value = frame_args[arg]&lt;br /&gt;
		if value == nil then&lt;br /&gt;
			value = frame_args[index]&lt;br /&gt;
			index = index + 1&lt;br /&gt;
		end&lt;br /&gt;
		new_args[arg] = value&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return new_args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function to handle error messages.&lt;br /&gt;
]]&lt;br /&gt;
function str._error( error_str )&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local error_category = frame.args.error_category or &amp;#039;Errors reported by Module String&amp;#039;&lt;br /&gt;
	local ignore_errors = frame.args.ignore_errors or false&lt;br /&gt;
	local no_category = frame.args.no_category or false&lt;br /&gt;
&lt;br /&gt;
	if str._getBoolean(ignore_errors) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local error_str = &amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;String Module Error: &amp;#039; .. error_str .. &amp;#039;&amp;lt;/strong&amp;gt;&amp;#039;&lt;br /&gt;
	if error_category ~= &amp;#039;&amp;#039; and not str._getBoolean( no_category ) then&lt;br /&gt;
		error_str = &amp;#039;[[Category:&amp;#039; .. error_category .. &amp;#039;]]&amp;#039; .. error_str&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return error_str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper Function to interpret boolean strings&lt;br /&gt;
]]&lt;br /&gt;
function str._getBoolean( boolean_str )&lt;br /&gt;
	local boolean_value&lt;br /&gt;
&lt;br /&gt;
	if type( boolean_str ) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		boolean_str = boolean_str:lower()&lt;br /&gt;
		if boolean_str == &amp;#039;false&amp;#039; or boolean_str == &amp;#039;no&amp;#039; or boolean_str == &amp;#039;0&amp;#039;&lt;br /&gt;
				or boolean_str == &amp;#039;&amp;#039; then&lt;br /&gt;
			boolean_value = false&lt;br /&gt;
		else&lt;br /&gt;
			boolean_value = true&lt;br /&gt;
		end&lt;br /&gt;
	elseif type( boolean_str ) == &amp;#039;boolean&amp;#039; then&lt;br /&gt;
		boolean_value = boolean_str&lt;br /&gt;
	else&lt;br /&gt;
		error( &amp;#039;No boolean value found&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return boolean_value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that escapes all pattern characters so that they will be treated&lt;br /&gt;
as plain text.&lt;br /&gt;
]]&lt;br /&gt;
function str._escapePattern( pattern_str )&lt;br /&gt;
	return mw.ustring.gsub( pattern_str, &amp;quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;quot;, &amp;quot;%%%1&amp;quot; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return str&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:TableTools&amp;diff=4107</id>
		<title>Module:TableTools</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:TableTools&amp;diff=4107"/>
		<updated>2019-07-26T02:04:29Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--                               TableTools                                       --&lt;br /&gt;
--                                                                                --&lt;br /&gt;
-- This module includes a number of functions for dealing with Lua tables.        --&lt;br /&gt;
-- It is a meta-module, meant to be called from other Lua modules, and should     --&lt;br /&gt;
-- not be called directly from #invoke.                                           --&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Define often-used variables and functions.&lt;br /&gt;
local floor = math.floor&lt;br /&gt;
local infinity = math.huge&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local checkTypeMulti = libraryUtil.checkTypeMulti&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- isPositiveInteger&lt;br /&gt;
--&lt;br /&gt;
-- This function returns true if the given value is a positive integer, and false&lt;br /&gt;
-- if not. Although it doesn&amp;#039;t operate on tables, it is included here as it is&lt;br /&gt;
-- useful for determining whether a given table key is in the array part or the&lt;br /&gt;
-- hash part of a table.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.isPositiveInteger(v)&lt;br /&gt;
	if type(v) == &amp;#039;number&amp;#039; and v &amp;gt;= 1 and floor(v) == v and v &amp;lt; infinity then&lt;br /&gt;
		return true&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- isNan&lt;br /&gt;
--&lt;br /&gt;
-- This function returns true if the given number is a NaN value, and false&lt;br /&gt;
-- if not. Although it doesn&amp;#039;t operate on tables, it is included here as it is&lt;br /&gt;
-- useful for determining whether a value can be a valid table key. Lua will&lt;br /&gt;
-- generate an error if a NaN is used as a table key.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.isNan(v)&lt;br /&gt;
	if type(v) == &amp;#039;number&amp;#039; and tostring(v) == &amp;#039;-nan&amp;#039; then&lt;br /&gt;
		return true&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- shallowClone&lt;br /&gt;
--&lt;br /&gt;
-- This returns a clone of a table. The value returned is a new table, but all&lt;br /&gt;
-- subtables and functions are shared. Metamethods are respected, but the returned&lt;br /&gt;
-- table will have no metatable of its own.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.shallowClone(t)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		ret[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- removeDuplicates&lt;br /&gt;
--&lt;br /&gt;
-- This removes duplicate values from an array. Non-positive-integer keys are&lt;br /&gt;
-- ignored. The earliest value is kept, and all subsequent duplicate values are&lt;br /&gt;
-- removed, but otherwise the array order is unchanged.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.removeDuplicates(t)&lt;br /&gt;
	checkType(&amp;#039;removeDuplicates&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local isNan = p.isNan&lt;br /&gt;
	local ret, exists = {}, {}&lt;br /&gt;
	for i, v in ipairs(t) do&lt;br /&gt;
		if isNan(v) then&lt;br /&gt;
			-- NaNs can&amp;#039;t be table keys, and they are also unique, so we don&amp;#039;t need to check existence.&lt;br /&gt;
			ret[#ret + 1] = v&lt;br /&gt;
		else&lt;br /&gt;
			if not exists[v] then&lt;br /&gt;
				ret[#ret + 1] = v&lt;br /&gt;
				exists[v] = true&lt;br /&gt;
			end&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end			&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- numKeys&lt;br /&gt;
--&lt;br /&gt;
-- This takes a table and returns an array containing the numbers of any numerical&lt;br /&gt;
-- keys that have non-nil values, sorted in numerical order.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.numKeys(t)&lt;br /&gt;
	checkType(&amp;#039;numKeys&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local isPositiveInteger = p.isPositiveInteger&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		if isPositiveInteger(k) then&lt;br /&gt;
			nums[#nums + 1] = k&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- affixNums&lt;br /&gt;
--&lt;br /&gt;
-- This takes a table and returns an array containing the numbers of keys with the&lt;br /&gt;
-- specified prefix and suffix. For example, for the table&lt;br /&gt;
-- {a1 = &amp;#039;foo&amp;#039;, a3 = &amp;#039;bar&amp;#039;, a6 = &amp;#039;baz&amp;#039;} and the prefix &amp;quot;a&amp;quot;, affixNums will&lt;br /&gt;
-- return {1, 3, 6}.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.affixNums(t, prefix, suffix)&lt;br /&gt;
	checkType(&amp;#039;affixNums&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;affixNums&amp;#039;, 2, prefix, &amp;#039;string&amp;#039;, true)&lt;br /&gt;
	checkType(&amp;#039;affixNums&amp;#039;, 3, suffix, &amp;#039;string&amp;#039;, true)&lt;br /&gt;
&lt;br /&gt;
	local function cleanPattern(s)&lt;br /&gt;
		-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.&lt;br /&gt;
		s = s:gsub(&amp;#039;([%(%)%%%.%[%]%*%+%-%?%^%$])&amp;#039;, &amp;#039;%%%1&amp;#039;)&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	prefix = prefix or &amp;#039;&amp;#039;&lt;br /&gt;
	suffix = suffix or &amp;#039;&amp;#039;&lt;br /&gt;
	prefix = cleanPattern(prefix)&lt;br /&gt;
	suffix = cleanPattern(suffix)&lt;br /&gt;
	local pattern = &amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)&amp;#039; .. suffix .. &amp;#039;$&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		if type(k) == &amp;#039;string&amp;#039; then			&lt;br /&gt;
			local num = mw.ustring.match(k, pattern)&lt;br /&gt;
			if num then&lt;br /&gt;
				nums[#nums + 1] = tonumber(num)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- numData&lt;br /&gt;
--&lt;br /&gt;
-- Given a table with keys like (&amp;quot;foo1&amp;quot;, &amp;quot;bar1&amp;quot;, &amp;quot;foo2&amp;quot;, &amp;quot;baz2&amp;quot;), returns a table&lt;br /&gt;
-- of subtables in the format &lt;br /&gt;
-- { [1] = {foo = &amp;#039;text&amp;#039;, bar = &amp;#039;text&amp;#039;}, [2] = {foo = &amp;#039;text&amp;#039;, baz = &amp;#039;text&amp;#039;} }&lt;br /&gt;
-- Keys that don&amp;#039;t end with an integer are stored in a subtable named &amp;quot;other&amp;quot;.&lt;br /&gt;
-- The compress option compresses the table so that it can be iterated over with&lt;br /&gt;
-- ipairs.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.numData(t, compress)&lt;br /&gt;
	checkType(&amp;#039;numData&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;numData&amp;#039;, 2, compress, &amp;#039;boolean&amp;#039;, true)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		local prefix, num = mw.ustring.match(tostring(k), &amp;#039;^([^0-9]*)([1-9][0-9]*)$&amp;#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			num = tonumber(num)&lt;br /&gt;
			local subtable = ret[num] or {}&lt;br /&gt;
			if prefix == &amp;#039;&amp;#039; then&lt;br /&gt;
				-- Positional parameters match the blank string; put them at the start of the subtable instead.&lt;br /&gt;
				prefix = 1&lt;br /&gt;
			end&lt;br /&gt;
			subtable[prefix] = v&lt;br /&gt;
			ret[num] = subtable&lt;br /&gt;
		else&lt;br /&gt;
			local subtable = ret.other or {}&lt;br /&gt;
			subtable[k] = v&lt;br /&gt;
			ret.other = subtable&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if compress then&lt;br /&gt;
		local other = ret.other&lt;br /&gt;
		ret = p.compressSparseArray(ret)&lt;br /&gt;
		ret.other = other&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- compressSparseArray&lt;br /&gt;
--&lt;br /&gt;
-- This takes an array with one or more nil values, and removes the nil values&lt;br /&gt;
-- while preserving the order, so that the array can be safely traversed with&lt;br /&gt;
-- ipairs.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.compressSparseArray(t)&lt;br /&gt;
	checkType(&amp;#039;compressSparseArray&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	local nums = p.numKeys(t)&lt;br /&gt;
	for _, num in ipairs(nums) do&lt;br /&gt;
		ret[#ret + 1] = t[num]&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- sparseIpairs&lt;br /&gt;
--&lt;br /&gt;
-- This is an iterator for sparse arrays. It can be used like ipairs, but can&lt;br /&gt;
-- handle nil values.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.sparseIpairs(t)&lt;br /&gt;
	checkType(&amp;#039;sparseIpairs&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local nums = p.numKeys(t)&lt;br /&gt;
	local i = 0&lt;br /&gt;
	local lim = #nums&lt;br /&gt;
	return function ()&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		if i &amp;lt;= lim then&lt;br /&gt;
			local key = nums[i]&lt;br /&gt;
			return key, t[key]&lt;br /&gt;
		else&lt;br /&gt;
			return nil, nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- size&lt;br /&gt;
--&lt;br /&gt;
-- This returns the size of a key/value pair table. It will also work on arrays,&lt;br /&gt;
-- but for arrays it is more efficient to use the # operator.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.size(t)&lt;br /&gt;
	checkType(&amp;#039;size&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local i = 0&lt;br /&gt;
	for k in pairs(t) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	return i&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function defaultKeySort(item1, item2)&lt;br /&gt;
	-- &amp;quot;number&amp;quot; &amp;lt; &amp;quot;string&amp;quot;, so numbers will be sorted before strings.&lt;br /&gt;
	local type1, type2 = type(item1), type(item2)&lt;br /&gt;
	if type1 ~= type2 then&lt;br /&gt;
		return type1 &amp;lt; type2&lt;br /&gt;
	else -- This will fail with table, boolean, function.&lt;br /&gt;
		return item1 &amp;lt; item2&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Returns a list of the keys in a table, sorted using either a default&lt;br /&gt;
	comparison function or a custom keySort function.&lt;br /&gt;
]]&lt;br /&gt;
function p.keysToList(t, keySort, checked)&lt;br /&gt;
	if not checked then&lt;br /&gt;
		checkType(&amp;#039;keysToList&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
		checkTypeMulti(&amp;#039;keysToList&amp;#039;, 2, keySort, { &amp;#039;function&amp;#039;, &amp;#039;boolean&amp;#039;, &amp;#039;nil&amp;#039; })&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local list = {}&lt;br /&gt;
	local index = 1&lt;br /&gt;
	for key, value in pairs(t) do&lt;br /&gt;
		list[index] = key&lt;br /&gt;
		index = index + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if keySort ~= false then&lt;br /&gt;
		keySort = type(keySort) == &amp;#039;function&amp;#039; and keySort or defaultKeySort&lt;br /&gt;
		&lt;br /&gt;
		table.sort(list, keySort)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return list&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Iterates through a table, with the keys sorted using the keysToList function.&lt;br /&gt;
	If there are only numerical keys, sparseIpairs is probably more efficient.&lt;br /&gt;
]]&lt;br /&gt;
function p.sortedPairs(t, keySort)&lt;br /&gt;
	checkType(&amp;#039;sortedPairs&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;sortedPairs&amp;#039;, 2, keySort, &amp;#039;function&amp;#039;, true)&lt;br /&gt;
	&lt;br /&gt;
	local list = p.keysToList(t, keySort, true)&lt;br /&gt;
	&lt;br /&gt;
	local i = 0&lt;br /&gt;
	return function()&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		local key = list[i]&lt;br /&gt;
		if key ~= nil then&lt;br /&gt;
			return key, t[key]&lt;br /&gt;
		else&lt;br /&gt;
			return nil, nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Returns true if all keys in the table are consecutive integers starting at 1.&lt;br /&gt;
--]]&lt;br /&gt;
function p.isArray(t)&lt;br /&gt;
	checkType(&amp;quot;isArray&amp;quot;, 1, t, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local i = 0&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		if t[i] == nil then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- { &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; } -&amp;gt; { a = 1, b = 2, c = 3 }&lt;br /&gt;
function p.invert(array)&lt;br /&gt;
	checkType(&amp;quot;invert&amp;quot;, 1, array, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local map = {}&lt;br /&gt;
	for i, v in ipairs(array) do&lt;br /&gt;
		map[v] = i&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return map&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	{ &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; } -&amp;gt; { [&amp;quot;a&amp;quot;] = true, [&amp;quot;b&amp;quot;] = true, [&amp;quot;c&amp;quot;] = true }&lt;br /&gt;
--]]&lt;br /&gt;
function p.listToSet(t)&lt;br /&gt;
	checkType(&amp;quot;listToSet&amp;quot;, 1, t, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local set = {}&lt;br /&gt;
	for _, item in ipairs(t) do&lt;br /&gt;
		set[item] = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return set&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Recursive deep copy function.&lt;br /&gt;
	Preserves identities of subtables.&lt;br /&gt;
	&lt;br /&gt;
]]&lt;br /&gt;
local function _deepCopy(orig, includeMetatable, already_seen)&lt;br /&gt;
	-- Stores copies of tables indexed by the original table.&lt;br /&gt;
	already_seen = already_seen or {}&lt;br /&gt;
	&lt;br /&gt;
	local copy = already_seen[orig]&lt;br /&gt;
	if copy ~= nil then&lt;br /&gt;
		return copy&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if type(orig) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		copy = {}&lt;br /&gt;
		for orig_key, orig_value in pairs(orig) do&lt;br /&gt;
			copy[deepcopy(orig_key, includeMetatable, already_seen)] = deepcopy(orig_value, includeMetatable, already_seen)&lt;br /&gt;
		end&lt;br /&gt;
		already_seen[orig] = copy&lt;br /&gt;
		&lt;br /&gt;
		if includeMetatable then&lt;br /&gt;
			local mt = getmetatable(orig)&lt;br /&gt;
			if mt ~= nil then&lt;br /&gt;
				local mt_copy = deepcopy(mt, includeMetatable, already_seen)&lt;br /&gt;
				setmetatable(copy, mt_copy)&lt;br /&gt;
				already_seen[mt] = mt_copy&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else -- number, string, boolean, etc&lt;br /&gt;
		copy = orig&lt;br /&gt;
	end&lt;br /&gt;
	return copy&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.deepCopy(orig, noMetatable, already_seen)&lt;br /&gt;
	checkType(&amp;quot;deepCopy&amp;quot;, 3, already_seen, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	return _deepCopy(orig, not noMetatable, already_seen)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Concatenates all values in the table that are indexed by a number, in order.&lt;br /&gt;
	sparseConcat{ a, nil, c, d }  =&amp;gt;  &amp;quot;acd&amp;quot;&lt;br /&gt;
	sparseConcat{ nil, b, c, d }  =&amp;gt;  &amp;quot;bcd&amp;quot;&lt;br /&gt;
]]&lt;br /&gt;
function p.sparseConcat(t, sep, i, j)&lt;br /&gt;
	local list = {}&lt;br /&gt;
	&lt;br /&gt;
	local list_i = 0&lt;br /&gt;
	for _, v in p.sparseIpairs(t) do&lt;br /&gt;
		list_i = list_i + 1&lt;br /&gt;
		list[list_i] = v&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(list, sep, i, j)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- This returns the length of a table, or the first integer key n counting from&lt;br /&gt;
-- 1 such that t[n + 1] is nil. It is similar to the operator #, but may return&lt;br /&gt;
-- a different value when there are gaps in the array portion of the table.&lt;br /&gt;
-- Intended to be used on data loaded with mw.loadData. For other tables, use #.&lt;br /&gt;
-- Note: #frame.args in frame object always be set to 0, regardless of &lt;br /&gt;
-- the number of unnamed template parameters, so use this function for&lt;br /&gt;
-- frame.args.&lt;br /&gt;
--]]&lt;br /&gt;
function p.length(t)&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while t[i] ~= nil do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	return i - 1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.inArray(arr, valueToFind)&lt;br /&gt;
	checkType(&amp;quot;inArray&amp;quot;, 1, arr, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	-- if valueToFind is nil, error?&lt;br /&gt;
	&lt;br /&gt;
	for _, v in ipairs(arr) do&lt;br /&gt;
		if v == valueToFind then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Protection_banner/config&amp;diff=4101</id>
		<title>Module:Protection banner/config</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Protection_banner/config&amp;diff=4101"/>
		<updated>2019-07-26T02:04:28Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module provides configuration data for [[Module:Protection banner]].&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
--&lt;br /&gt;
--                                BANNER DATA&lt;br /&gt;
--&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- Banner data consists of six fields:&lt;br /&gt;
-- * text - the main protection text that appears at the top of protection&lt;br /&gt;
--   banners.&lt;br /&gt;
-- * explanation - the text that appears below the main protection text, used&lt;br /&gt;
--   to explain the details of the protection.&lt;br /&gt;
-- * tooltip - the tooltip text you see when you move the mouse over a small&lt;br /&gt;
--   padlock icon.&lt;br /&gt;
-- * link - the page that the small padlock icon links to.&lt;br /&gt;
-- * alt - the alt text for the small padlock icon. This is also used as tooltip&lt;br /&gt;
--   text for the large protection banners.&lt;br /&gt;
-- * image - the padlock image used in both protection banners and small padlock&lt;br /&gt;
--   icons.&lt;br /&gt;
--&lt;br /&gt;
-- The module checks in three separate tables to find a value for each field.&lt;br /&gt;
-- First it checks the banners table, which has values specific to the reason&lt;br /&gt;
-- for the page being protected. Then the module checks the defaultBanners&lt;br /&gt;
-- table, which has values specific to each protection level. Finally, the&lt;br /&gt;
-- module checks the masterBanner table, which holds data for protection&lt;br /&gt;
-- templates to use if no data has been found in the previous two tables.&lt;br /&gt;
--&lt;br /&gt;
-- The values in the banner data can take parameters. These are specified&lt;br /&gt;
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name&lt;br /&gt;
-- enclosed in curly braces).&lt;br /&gt;
--&lt;br /&gt;
--                          Available parameters:&lt;br /&gt;
--&lt;br /&gt;
-- ${CURRENTVERSION} - a link to the page history or the move log, with the&lt;br /&gt;
-- display message &amp;quot;current-version-edit-display&amp;quot; or&lt;br /&gt;
-- &amp;quot;current-version-move-display&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- ${EDITREQUEST} - a link to create an edit request for the current page.&lt;br /&gt;
--&lt;br /&gt;
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. &amp;quot;Please discuss any changes&lt;br /&gt;
-- on the talk page; you may submit a request to ask an administrator to make&lt;br /&gt;
-- an edit if it is minor or supported by consensus.&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
-- ${IMAGELINK} - a link to set the image to, depending on the protection&lt;br /&gt;
-- action and protection level.&lt;br /&gt;
--&lt;br /&gt;
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry&lt;br /&gt;
-- is set. E.g. &amp;quot;Editing of this page by new or unregistered users is currently &lt;br /&gt;
-- disabled until dd Month YYYY.&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation&lt;br /&gt;
-- so that it can be used in run-on sentences.&lt;br /&gt;
--&lt;br /&gt;
-- ${PAGETYPE} - the type of the page, e.g. &amp;quot;article&amp;quot; or &amp;quot;template&amp;quot;.&lt;br /&gt;
-- Defined in the cfg.pagetypes table.&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.&lt;br /&gt;
-- &amp;quot;Editing of this page by new or unregistered users is currently disabled&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the&lt;br /&gt;
-- template.&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONLEVEL} - the protection level, e.g. &amp;quot;fully protected&amp;quot; or&lt;br /&gt;
-- &amp;quot;semi-protected&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,&lt;br /&gt;
-- depending on the protection action.&lt;br /&gt;
--&lt;br /&gt;
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links&lt;br /&gt;
-- straight to that talk page section.&lt;br /&gt;
--&lt;br /&gt;
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to&lt;br /&gt;
-- create a blurb like &amp;quot;This template is semi-protected&amp;quot;, or &amp;quot;This article is&lt;br /&gt;
-- move-protected until DD Month YYYY&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- ${VANDAL} - links for the specified username (or the root page name)&lt;br /&gt;
-- using Module:Vandal-m.&lt;br /&gt;
--&lt;br /&gt;
--                                 Functions&lt;br /&gt;
--&lt;br /&gt;
-- For advanced users, it is possible to use Lua functions instead of strings&lt;br /&gt;
-- in the banner config tables. Using functions gives flexibility that is not&lt;br /&gt;
-- possible just by using parameters. Functions take two arguments, the&lt;br /&gt;
-- protection object and the template arguments, and they must output a string.&lt;br /&gt;
--&lt;br /&gt;
-- For example:&lt;br /&gt;
--&lt;br /&gt;
-- text = function (protectionObj, args)&lt;br /&gt;
--     if protectionObj.level == &amp;#039;autoconfirmed&amp;#039; then&lt;br /&gt;
--         return &amp;#039;foo&amp;#039;&lt;br /&gt;
--     else&lt;br /&gt;
--         return &amp;#039;bar&amp;#039;&lt;br /&gt;
--     end&lt;br /&gt;
-- end&lt;br /&gt;
--&lt;br /&gt;
-- Some protection object properties and methods that may be useful:&lt;br /&gt;
-- protectionObj.action - the protection action&lt;br /&gt;
-- protectionObj.level - the protection level&lt;br /&gt;
-- protectionObj.reason - the protection reason&lt;br /&gt;
-- protectionObj.expiry - the expiry. Nil if unset, the string &amp;quot;indef&amp;quot; if set&lt;br /&gt;
--     to indefinite, and the protection time in unix time if temporary.&lt;br /&gt;
-- protectionObj.protectionDate - the protection date in unix time, or nil if&lt;br /&gt;
--     unspecified.&lt;br /&gt;
-- protectionObj.bannerConfig - the banner config found by the module. Beware&lt;br /&gt;
--     of editing the config field used by the function, as it could create an&lt;br /&gt;
--     infinite loop.&lt;br /&gt;
-- protectionObj:isProtected - returns a boolean showing whether the page is&lt;br /&gt;
--     protected.&lt;br /&gt;
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is&lt;br /&gt;
--     temporary.&lt;br /&gt;
-- protectionObj:isIncorrect - returns a boolean showing whether the protection&lt;br /&gt;
--     template is incorrect.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- The master banner data, used if no values have been found in banners or&lt;br /&gt;
-- defaultBanners.&lt;br /&gt;
masterBanner = {&lt;br /&gt;
	text = &amp;#039;${INTROBLURB}&amp;#039;,&lt;br /&gt;
	explanation = &amp;#039;${EXPLANATIONBLURB}&amp;#039;,&lt;br /&gt;
	tooltip = &amp;#039;${TOOLTIPBLURB}&amp;#039;,&lt;br /&gt;
	link = &amp;#039;${IMAGELINK}&amp;#039;,&lt;br /&gt;
	alt = &amp;#039;Page ${PROTECTIONLEVEL}&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The default banner data. This holds banner data for different protection&lt;br /&gt;
-- levels.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
defaultBanners = {&lt;br /&gt;
	edit = {},&lt;br /&gt;
	move = {},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = {&lt;br /&gt;
			alt = &amp;#039;Page protected with pending changes&amp;#039;,&lt;br /&gt;
			tooltip = &amp;#039;All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users&amp;#039;,&lt;br /&gt;
			image = &amp;#039;Pending-protection-shackle.svg&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	upload = {}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The banner data. This holds banner data for different protection reasons.&lt;br /&gt;
-- In fact, the reasons specified in this table control which reasons are&lt;br /&gt;
-- valid inputs to the first positional parameter.&lt;br /&gt;
--&lt;br /&gt;
-- There is also a non-standard &amp;quot;description&amp;quot; field that can be used for items&lt;br /&gt;
-- in this table. This is a description of the protection reason for use in the&lt;br /&gt;
-- module documentation.&lt;br /&gt;
--&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
banners = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		blp = {&lt;br /&gt;
			description = &amp;#039;For pages protected to promote compliance with the&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Biographies of living persons&amp;#039;&lt;br /&gt;
				.. &amp;#039;|biographies of living persons]] policy&amp;#039;,&lt;br /&gt;
			text = &amp;#039;${INTROFRAGMENT} to promote compliance with&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Biographies of living persons&amp;#039;&lt;br /&gt;
				.. &amp;quot;|Wikipedia&amp;#039;s&amp;amp;nbsp;policy on&amp;amp;nbsp;the&amp;amp;nbsp;biographies&amp;quot;&lt;br /&gt;
				.. &amp;#039; of&amp;amp;nbsp;living&amp;amp;nbsp;people]].&amp;#039;,&lt;br /&gt;
			tooltip = &amp;#039;${TOOLTIPFRAGMENT} to promote compliance with the policy on&amp;#039;&lt;br /&gt;
				.. &amp;#039; biographies of living people&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		dmca = {&lt;br /&gt;
			description = &amp;#039;For pages protected by the Wikimedia Foundation&amp;#039;&lt;br /&gt;
				.. &amp;#039; due to [[Digital Millennium Copyright Act]] takedown requests&amp;#039;,&lt;br /&gt;
			explanation = function (protectionObj, args)&lt;br /&gt;
				local ret = &amp;#039;Pursuant to a rights owner notice under the Digital&amp;#039;&lt;br /&gt;
					.. &amp;#039; Millennium Copyright Act (DMCA) regarding some content&amp;#039;&lt;br /&gt;
					.. &amp;#039; in this article, the Wikimedia Foundation acted under&amp;#039;&lt;br /&gt;
					.. &amp;#039; applicable law and took down and restricted the content&amp;#039;&lt;br /&gt;
					.. &amp;#039; in question.&amp;#039;&lt;br /&gt;
				if args.notice then&lt;br /&gt;
					ret = ret .. &amp;#039; A copy of the received notice can be found here: &amp;#039;&lt;br /&gt;
						.. args.notice .. &amp;#039;.&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				ret = ret .. &amp;#039; For more information, including websites discussing&amp;#039;&lt;br /&gt;
					.. &amp;#039; how to file a counter-notice, please see&amp;#039;&lt;br /&gt;
					.. &amp;quot; [[Wikipedia:Office actions]] and the article&amp;#039;s ${TALKPAGE}.&amp;quot;&lt;br /&gt;
					.. &amp;quot;&amp;#039;&amp;#039;&amp;#039;Do not remove this template from the article until the&amp;quot;&lt;br /&gt;
					.. &amp;quot; restrictions are withdrawn&amp;#039;&amp;#039;&amp;#039;.&amp;quot;&lt;br /&gt;
				return ret&lt;br /&gt;
			end,&lt;br /&gt;
			image = &amp;#039;Office-protection-shackle.svg&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		dispute = {&lt;br /&gt;
			description = &amp;#039;For pages protected due to editing disputes&amp;#039;,&lt;br /&gt;
			text = function (protectionObj, args)&lt;br /&gt;
				-- Find the value of &amp;quot;disputes&amp;quot;.&lt;br /&gt;
				local display = &amp;#039;disputes&amp;#039;&lt;br /&gt;
				local disputes&lt;br /&gt;
				if args.section then&lt;br /&gt;
					disputes = string.format(&lt;br /&gt;
						&amp;#039;[[%s:%s#%s|%s]]&amp;#039;,&lt;br /&gt;
						mw.site.namespaces[protectionObj.title.namespace].talk.name,&lt;br /&gt;
						protectionObj.title.text,&lt;br /&gt;
						args.section,&lt;br /&gt;
						display&lt;br /&gt;
					)&lt;br /&gt;
				else&lt;br /&gt;
					disputes = display&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- Make the blurb, depending on the expiry.&lt;br /&gt;
				local msg&lt;br /&gt;
				if type(protectionObj.expiry) == &amp;#039;number&amp;#039; then&lt;br /&gt;
					msg = &amp;#039;${INTROFRAGMENT} or until editing %s have been resolved.&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					msg = &amp;#039;${INTROFRAGMENT} until editing %s have been resolved.&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				return string.format(msg, disputes)&lt;br /&gt;
			end,&lt;br /&gt;
			explanation = &amp;quot;This protection is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; an endorsement of the&amp;quot;&lt;br /&gt;
				.. &amp;#039; ${CURRENTVERSION}. ${EXPLANATIONBLURB}&amp;#039;,&lt;br /&gt;
			tooltip = &amp;#039;${TOOLTIPFRAGMENT} due to editing disputes&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		ecp = {&lt;br /&gt;
			description = &amp;#039;For articles in topic areas authorized by&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Arbitration Committee|ArbCom]] or&amp;#039;&lt;br /&gt;
				.. &amp;#039; meets the criteria for community use&amp;#039;,&lt;br /&gt;
			tooltip = &amp;#039;This ${PAGETYPE} is extended-confirmed protected&amp;#039;,&lt;br /&gt;
			alt = &amp;#039;Extended-protected ${PAGETYPE}&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		mainpage = {&lt;br /&gt;
			description = &amp;#039;For pages protected for being displayed on the [[Main Page]]&amp;#039;,&lt;br /&gt;
			text = &amp;#039;This file is currently&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:This page is protected|protected]] from&amp;#039;&lt;br /&gt;
				.. &amp;#039; editing because it is currently or will soon be displayed&amp;#039;&lt;br /&gt;
				.. &amp;#039; on the [[Main Page]].&amp;#039;,&lt;br /&gt;
			explanation = &amp;#039;Images on the Main Page are protected due to their high&amp;#039;&lt;br /&gt;
				.. &amp;#039; visibility. Please discuss any necessary changes on the ${TALKPAGE}.&amp;#039;&lt;br /&gt;
				.. &amp;#039;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;&amp;#039;&lt;br /&gt;
				.. &amp;quot;&amp;#039;&amp;#039;&amp;#039;Administrators:&amp;#039;&amp;#039;&amp;#039; Once this image is definitely off the Main Page,&amp;quot;&lt;br /&gt;
				.. &amp;#039; please unprotect this file, or reduce to semi-protection,&amp;#039;&lt;br /&gt;
				.. &amp;#039; as appropriate.&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		office = {&lt;br /&gt;
			description = &amp;#039;For pages protected by the Wikimedia Foundation&amp;#039;,&lt;br /&gt;
			text = function (protectionObj, args)&lt;br /&gt;
				local ret = &amp;#039;This ${PAGETYPE} is currently under the&amp;#039;&lt;br /&gt;
					.. &amp;#039; scrutiny of the&amp;#039;&lt;br /&gt;
					.. &amp;#039; [[Wikipedia:Office actions|Wikimedia Foundation Office]]&amp;#039;&lt;br /&gt;
					.. &amp;#039; and is protected.&amp;#039;&lt;br /&gt;
				if protectionObj.protectionDate then&lt;br /&gt;
					ret = ret .. &amp;#039; It has been protected since ${PROTECTIONDATE}.&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				return ret&lt;br /&gt;
			end,&lt;br /&gt;
			explanation = &amp;quot;If you can edit this page, please discuss all changes and&amp;quot;&lt;br /&gt;
				.. &amp;quot; additions on the ${TALKPAGE} first. &amp;#039;&amp;#039;&amp;#039;Do not remove protection from this&amp;quot;&lt;br /&gt;
				.. &amp;quot; page unless you are authorized by the Wikimedia Foundation to do&amp;quot;&lt;br /&gt;
				.. &amp;quot; so.&amp;#039;&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
			image = &amp;#039;Office-protection-shackle.svg&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		reset = {&lt;br /&gt;
			description = &amp;#039;For pages protected by the Wikimedia Foundation and&amp;#039;&lt;br /&gt;
				.. &amp;#039; &amp;quot;reset&amp;quot; to a bare-bones version&amp;#039;,&lt;br /&gt;
 			text = &amp;#039;This ${PAGETYPE} is currently under the&amp;#039;&lt;br /&gt;
					.. &amp;#039; scrutiny of the&amp;#039;&lt;br /&gt;
					.. &amp;#039; [[Wikipedia:Office actions|Wikimedia Foundation Office]]&amp;#039;&lt;br /&gt;
					.. &amp;#039; and is protected.&amp;#039;,&lt;br /&gt;
			explanation = function (protectionObj, args)&lt;br /&gt;
				local ret = &amp;#039;&amp;#039;&lt;br /&gt;
				if protectionObj.protectionDate then&lt;br /&gt;
					ret = ret .. &amp;#039;On ${PROTECTIONDATE} this ${PAGETYPE} was&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					ret = ret .. &amp;#039;This ${PAGETYPE} has been&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				ret = ret .. &amp;#039; reduced to a&amp;#039;&lt;br /&gt;
				.. &amp;#039; simplified, &amp;quot;bare bones&amp;quot; version so that it may be completely&amp;#039;&lt;br /&gt;
				.. &amp;#039; rewritten to ensure it meets the policies of&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].&amp;#039;&lt;br /&gt;
				.. &amp;#039; Standard Wikipedia policies will apply to its rewriting—which&amp;#039;&lt;br /&gt;
				.. &amp;#039; will eventually be open to all editors—and will be strictly&amp;#039;&lt;br /&gt;
				.. &amp;#039; enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while&amp;#039;&lt;br /&gt;
				.. &amp;#039; it is being rebuilt.\n\n&amp;#039;&lt;br /&gt;
				.. &amp;#039;Any insertion of material directly from&amp;#039;&lt;br /&gt;
				.. &amp;#039; pre-protection revisions of the ${PAGETYPE} will be removed, as&amp;#039;&lt;br /&gt;
				.. &amp;#039; will any material added to the ${PAGETYPE} that is not properly&amp;#039;&lt;br /&gt;
				.. &amp;#039; sourced. The associated talk page(s) were also cleared on the&amp;#039;&lt;br /&gt;
				.. &amp;quot; same date.\n\n&amp;quot;&lt;br /&gt;
				.. &amp;quot;If you can edit this page, please discuss all changes and&amp;quot;&lt;br /&gt;
				.. &amp;quot; additions on the ${TALKPAGE} first. &amp;#039;&amp;#039;&amp;#039;Do not override&amp;quot;&lt;br /&gt;
				.. &amp;quot; this action, and do not remove protection from this page,&amp;quot;&lt;br /&gt;
				.. &amp;quot; unless you are authorized by the Wikimedia Foundation&amp;quot;&lt;br /&gt;
				.. &amp;quot; to do so. No editor may remove this notice.&amp;#039;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
				return ret&lt;br /&gt;
			end,&lt;br /&gt;
			image = &amp;#039;Office-protection-shackle.svg&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		sock = {&lt;br /&gt;
			description = &amp;#039;For pages protected due to&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Sock puppetry|sock puppetry]]&amp;#039;,&lt;br /&gt;
			text = &amp;#039;${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Blocking policy|blocked]] or&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Banning policy|banned users]]&amp;#039;&lt;br /&gt;
				.. &amp;#039; from editing it.&amp;#039;,&lt;br /&gt;
			tooltip = &amp;#039;${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from&amp;#039;&lt;br /&gt;
				.. &amp;#039; editing it&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		template = {&lt;br /&gt;
			description = &amp;#039;For [[Wikipedia:High-risk templates|high-risk]]&amp;#039;&lt;br /&gt;
				.. &amp;#039; templates and Lua modules&amp;#039;,&lt;br /&gt;
			text = &amp;#039;This is a permanently [[Help:Protection|protected]] ${PAGETYPE},&amp;#039;&lt;br /&gt;
				.. &amp;#039; as it is [[Wikipedia:High-risk templates|high-risk]].&amp;#039;,&lt;br /&gt;
			explanation = &amp;#039;Please discuss any changes on the ${TALKPAGE}; you may&amp;#039;&lt;br /&gt;
				.. &amp;#039; ${EDITREQUEST} to ask an&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Administrators|administrator]] or&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Template editor|template editor]] to make an edit if&amp;#039;&lt;br /&gt;
				.. &amp;#039; it is [[Help:Minor edit#When to mark an edit as a minor edit&amp;#039;&lt;br /&gt;
				.. &amp;#039;|uncontroversial]] or supported by&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Consensus|consensus]]. You can also&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection|request]] that the page be&amp;#039;&lt;br /&gt;
				.. &amp;#039; unprotected.&amp;#039;,&lt;br /&gt;
			tooltip = &amp;#039;This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}&amp;#039;&lt;br /&gt;
				.. &amp;#039; to prevent vandalism&amp;#039;,&lt;br /&gt;
			alt = &amp;#039;Permanently protected ${PAGETYPE}&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		usertalk = {&lt;br /&gt;
			description = &amp;#039;For pages protected against disruptive edits by a&amp;#039;&lt;br /&gt;
				.. &amp;#039; particular user&amp;#039;,&lt;br /&gt;
			text = &amp;#039;${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,&amp;#039;&lt;br /&gt;
				.. &amp;#039; such as abusing the&amp;#039;&lt;br /&gt;
				.. &amp;#039; &amp;amp;#123;&amp;amp;#123;[[Template:unblock|unblock]]&amp;amp;#125;&amp;amp;#125; template.&amp;#039;,&lt;br /&gt;
			explanation = &amp;#039;If you cannot edit this user talk page and you need to&amp;#039;&lt;br /&gt;
				.. &amp;#039; make a change or leave a message, you can&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection&amp;#039;&lt;br /&gt;
				.. &amp;#039;#Current requests for edits to a protected page&amp;#039;&lt;br /&gt;
				.. &amp;#039;|request an edit]],&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection&amp;#039;&lt;br /&gt;
				.. &amp;#039;#Current requests for reduction in protection level&amp;#039;&lt;br /&gt;
				.. &amp;#039;|request unprotection]],&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Special:Userlogin|log in]],&amp;#039;&lt;br /&gt;
				.. &amp;#039; or [[Special:UserLogin/signup|create an account]].&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		vandalism = {&lt;br /&gt;
			description = &amp;#039;For pages protected against&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Vandalism|vandalism]]&amp;#039;,&lt;br /&gt;
			text = &amp;#039;${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].&amp;#039;,&lt;br /&gt;
			explanation = function (protectionObj, args)&lt;br /&gt;
				local ret = &amp;#039;&amp;#039;&lt;br /&gt;
				if protectionObj.level == &amp;#039;sysop&amp;#039; then&lt;br /&gt;
					ret = ret .. &amp;quot;This protection is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; an endorsement of the&amp;quot;&lt;br /&gt;
						.. &amp;#039; ${CURRENTVERSION}. &amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				return ret .. &amp;#039;${EXPLANATIONBLURB}&amp;#039;&lt;br /&gt;
			end,&lt;br /&gt;
			tooltip = &amp;#039;${TOOLTIPFRAGMENT} due to vandalism&amp;#039;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		dispute = {&lt;br /&gt;
			description = &amp;#039;For pages protected against page moves due to&amp;#039;&lt;br /&gt;
				.. &amp;#039; disputes over the page title&amp;#039;,&lt;br /&gt;
			explanation = &amp;quot;This protection is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; an endorsement of the&amp;quot;&lt;br /&gt;
				.. &amp;#039; ${CURRENTVERSION}. ${EXPLANATIONBLURB}&amp;#039;,&lt;br /&gt;
			image = &amp;#039;Move-protection-shackle.svg&amp;#039;&lt;br /&gt;
		},&lt;br /&gt;
		vandalism = {&lt;br /&gt;
			description = &amp;#039;For pages protected against&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Vandalism#Page-move vandalism&amp;#039;&lt;br /&gt;
				.. &amp;#039; |page-move vandalism]]&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {},&lt;br /&gt;
	upload = {}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
--&lt;br /&gt;
--                            GENERAL DATA TABLES&lt;br /&gt;
--&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection blurbs&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table produces the protection blurbs available with the&lt;br /&gt;
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and&lt;br /&gt;
-- protection level, and is checked by the module in the following order:&lt;br /&gt;
-- 1. page&amp;#039;s protection action, page&amp;#039;s protection level&lt;br /&gt;
-- 2. page&amp;#039;s protection action, default protection level&lt;br /&gt;
-- 3. &amp;quot;edit&amp;quot; protection action, default protection level&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
protectionBlurbs = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &amp;#039;This ${PAGETYPE} is currently [[Help:Protection|&amp;#039;&lt;br /&gt;
			.. &amp;#039;protected]] from editing&amp;#039;,&lt;br /&gt;
		autoconfirmed = &amp;#039;Editing of this ${PAGETYPE} by [[Wikipedia:User access&amp;#039;&lt;br /&gt;
			.. &amp;#039; levels#New users|new]] or [[Wikipedia:User access levels#Unregistered&amp;#039;&lt;br /&gt;
			.. &amp;#039; users|unregistered]] users is currently [[Help:Protection|disabled]]&amp;#039;,&lt;br /&gt;
		extendedconfirmed = &amp;#039;This ${PAGETYPE} is currently under extended confirmed protection&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &amp;#039;This ${PAGETYPE} is currently [[Help:Protection|protected]]&amp;#039;&lt;br /&gt;
			.. &amp;#039; from [[Help:Moving a page|page moves]]&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = &amp;#039;All edits made to this ${PAGETYPE} by&amp;#039;&lt;br /&gt;
			.. &amp;#039; [[Wikipedia:User access levels#New users|new]] or&amp;#039;&lt;br /&gt;
			.. &amp;#039; [[Wikipedia:User access levels#Unregistered users|unregistered]]&amp;#039;&lt;br /&gt;
			.. &amp;#039; users are currently&amp;#039;&lt;br /&gt;
			.. &amp;#039; [[Wikipedia:Pending changes|subject to review]]&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &amp;#039;Uploading new versions of this ${PAGETYPE} is currently disabled&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Explanation blurbs&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table produces the explanation blurbs available with the&lt;br /&gt;
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,&lt;br /&gt;
-- protection level, and whether the page is a talk page or not. If the page is&lt;br /&gt;
-- a talk page it will have a talk key of &amp;quot;talk&amp;quot;; otherwise it will have a talk&lt;br /&gt;
-- key of &amp;quot;subject&amp;quot;. The table is checked in the following order:&lt;br /&gt;
-- 1. page&amp;#039;s protection action, page&amp;#039;s protection level, page&amp;#039;s talk key&lt;br /&gt;
-- 2. page&amp;#039;s protection action, page&amp;#039;s protection level, default talk key&lt;br /&gt;
-- 3. page&amp;#039;s protection action, default protection level, page&amp;#039;s talk key&lt;br /&gt;
-- 4. page&amp;#039;s protection action, default protection level, default talk key&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
explanationBlurbs = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		autoconfirmed = {&lt;br /&gt;
			subject = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details. If you&amp;#039;&lt;br /&gt;
				.. &amp;#039; cannot edit this ${PAGETYPE} and you wish to make a change, you can&amp;#039;&lt;br /&gt;
				.. &amp;#039; ${EDITREQUEST}, discuss changes on the ${TALKPAGE},&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection&amp;#039;&lt;br /&gt;
				.. &amp;#039;#Current requests for reduction in protection level&amp;#039;&lt;br /&gt;
				.. &amp;#039;|request unprotection]], [[Special:Userlogin|log in]], or&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Special:UserLogin/signup|create an account]].&amp;#039;,&lt;br /&gt;
			default = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details. If you&amp;#039;&lt;br /&gt;
				.. &amp;#039; cannot edit this ${PAGETYPE} and you wish to make a change, you can&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection&amp;#039;&lt;br /&gt;
				.. &amp;#039;#Current requests for reduction in protection level&amp;#039;&lt;br /&gt;
				.. &amp;#039;|request unprotection]], [[Special:Userlogin|log in]], or&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Special:UserLogin/signup|create an account]].&amp;#039;,&lt;br /&gt;
		},&lt;br /&gt;
		extendedconfirmed = {&lt;br /&gt;
			default = &amp;#039;Extended confirmed protection prevents edits from all unregistered editors&amp;#039;&lt;br /&gt;
				.. &amp;#039; and registered users with fewer than 30 days tenure and 500 edits.&amp;#039;&lt;br /&gt;
				.. &amp;#039; The [[Wikipedia:Protection policy#extended|policy on community use]]&amp;#039;&lt;br /&gt;
				.. &amp;#039; specifies that extended confirmed protection can be applied to combat&amp;#039;&lt;br /&gt;
				.. &amp;#039; disruption, if semi-protection has proven to be ineffective.&amp;#039;&lt;br /&gt;
				.. &amp;#039; Extended confirmed protection may also be applied to enforce&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Arbitration Committee|arbitration sanctions]].&amp;#039;&lt;br /&gt;
				.. &amp;#039; Please discuss any changes on the ${TALKPAGE}; you may&amp;#039;&lt;br /&gt;
				.. &amp;#039; ${EDITREQUEST} to ask for uncontroversial changes supported by&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Consensus|consensus]].&amp;#039;&lt;br /&gt;
		},&lt;br /&gt;
		default = {&lt;br /&gt;
			subject = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details.&amp;#039;&lt;br /&gt;
				.. &amp;#039; Please discuss any changes on the ${TALKPAGE}; you&amp;#039;&lt;br /&gt;
				.. &amp;#039; may ${EDITREQUEST} to ask an&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Administrators|administrator]] to make an edit if it&amp;#039;&lt;br /&gt;
				.. &amp;#039; is [[Help:Minor edit#When to mark an edit as a minor edit&amp;#039;&lt;br /&gt;
				.. &amp;#039;|uncontroversial]] or supported by [[Wikipedia:Consensus&amp;#039;&lt;br /&gt;
				.. &amp;#039;|consensus]]. You may also [[Wikipedia:Requests for&amp;#039;&lt;br /&gt;
				.. &amp;#039; page protection#Current requests for reduction in protection level&amp;#039;&lt;br /&gt;
				.. &amp;#039;|request]] that this page be unprotected.&amp;#039;,&lt;br /&gt;
			default = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details.&amp;#039;&lt;br /&gt;
				.. &amp;#039; You may [[Wikipedia:Requests for page&amp;#039;&lt;br /&gt;
				.. &amp;#039; protection#Current requests for edits to a protected page|request an&amp;#039;&lt;br /&gt;
				.. &amp;#039; edit]] to this page, or [[Wikipedia:Requests for&amp;#039;&lt;br /&gt;
				.. &amp;#039; page protection#Current requests for reduction in protection level&amp;#039;&lt;br /&gt;
				.. &amp;#039;|ask]] for it to be unprotected.&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = {&lt;br /&gt;
			subject = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details.&amp;#039;&lt;br /&gt;
				.. &amp;#039; The page may still be edited but cannot be moved&amp;#039;&lt;br /&gt;
				.. &amp;#039; until unprotected. Please discuss any suggested moves on the&amp;#039;&lt;br /&gt;
				.. &amp;#039; ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection|request]] that the page be&amp;#039;&lt;br /&gt;
				.. &amp;#039; unprotected.&amp;#039;,&lt;br /&gt;
			default = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details.&amp;#039;&lt;br /&gt;
				.. &amp;#039; The page may still be edited but cannot be moved&amp;#039;&lt;br /&gt;
				.. &amp;#039; until unprotected. Please discuss any suggested moves at&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requested moves]]. You can also&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection|request]] that the page be&amp;#039;&lt;br /&gt;
				.. &amp;#039; unprotected.&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = {&lt;br /&gt;
			default = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details.&amp;#039;&lt;br /&gt;
				.. &amp;#039; Edits to this ${PAGETYPE} by new and unregistered users&amp;#039;&lt;br /&gt;
				.. &amp;#039; will not be visible to readers until they are accepted by&amp;#039;&lt;br /&gt;
				.. &amp;#039; a reviewer. To avoid the need for your edits to be&amp;#039;&lt;br /&gt;
				.. &amp;#039; reviewed, you may&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Requests for page protection&amp;#039;&lt;br /&gt;
				.. &amp;#039;#Current requests for reduction in protection level&amp;#039;&lt;br /&gt;
				.. &amp;#039;|request unprotection]], [[Special:Userlogin|log in]], or&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Special:UserLogin/signup|create an account]].&amp;#039;&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = {&lt;br /&gt;
			default = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
				.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details.&amp;#039;&lt;br /&gt;
				.. &amp;#039; The page may still be edited but new versions of the file&amp;#039;&lt;br /&gt;
				.. &amp;#039; cannot be uploaded until it is unprotected. You can&amp;#039;&lt;br /&gt;
				.. &amp;#039; request that a new version be uploaded by using a&amp;#039;&lt;br /&gt;
				.. &amp;#039; [[Wikipedia:Edit requests|protected edit request]], or you&amp;#039;&lt;br /&gt;
				.. &amp;#039; can  [[Wikipedia:Requests for page protection|request]]&amp;#039;&lt;br /&gt;
				.. &amp;#039; that the file be unprotected.&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection levels&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which&lt;br /&gt;
-- produces a short label for different protection levels. It is sorted by&lt;br /&gt;
-- protection action and protection level, and is checked in the following&lt;br /&gt;
-- order:&lt;br /&gt;
-- 1. page&amp;#039;s protection action, page&amp;#039;s protection level&lt;br /&gt;
-- 2. page&amp;#039;s protection action, default protection level&lt;br /&gt;
-- 3. &amp;quot;edit&amp;quot; protection action, default protection level&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
protectionLevels = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &amp;#039;protected&amp;#039;,&lt;br /&gt;
		templateeditor = &amp;#039;template-protected&amp;#039;,&lt;br /&gt;
		extendedconfirmed = &amp;#039;extended-protected&amp;#039;,&lt;br /&gt;
		autoconfirmed = &amp;#039;semi-protected&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &amp;#039;move-protected&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &amp;#039;upload-protected&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Images&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table lists different padlock images for each protection action and&lt;br /&gt;
-- protection level. It is used if an image is not specified in any of the&lt;br /&gt;
-- banner data tables, and if the page does not satisfy the conditions for using&lt;br /&gt;
-- the [&amp;#039;image-filename-indef&amp;#039;] image. It is checked in the following order:&lt;br /&gt;
-- 1. page&amp;#039;s protection action, page&amp;#039;s protection level&lt;br /&gt;
-- 2. page&amp;#039;s protection action, default protection level&lt;br /&gt;
images = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &amp;#039;Full-protection-shackle.svg&amp;#039;,&lt;br /&gt;
		templateeditor = &amp;#039;Template-protection-shackle.svg&amp;#039;,&lt;br /&gt;
		extendedconfirmed = &amp;#039;Extended-protection-shackle.svg&amp;#039;,&lt;br /&gt;
		autoconfirmed = &amp;#039;Semi-protection-shackle.svg&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &amp;#039;Move-protection-shackle.svg&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = &amp;#039;Pending-protection-shackle.svg&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &amp;#039;Upload-protection-shackle.svg&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Pages with a reason specified in this table will show the special &amp;quot;indef&amp;quot;&lt;br /&gt;
-- padlock, defined in the &amp;#039;image-filename-indef&amp;#039; message, if no expiry is set.&lt;br /&gt;
indefImageReasons = {&lt;br /&gt;
	template = true&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Image links&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table provides the data for the ${IMAGELINK} parameter, which gets&lt;br /&gt;
-- the image link for small padlock icons based on the page&amp;#039;s protection action&lt;br /&gt;
-- and protection level. It is checked in the following order:&lt;br /&gt;
-- 1. page&amp;#039;s protection action, page&amp;#039;s protection level&lt;br /&gt;
-- 2. page&amp;#039;s protection action, default protection level&lt;br /&gt;
-- 3. &amp;quot;edit&amp;quot; protection action, default protection level&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
imageLinks = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &amp;#039;Wikipedia:Protection policy#full&amp;#039;,&lt;br /&gt;
		templateeditor = &amp;#039;Wikipedia:Protection policy#template&amp;#039;,&lt;br /&gt;
		extendedconfirmed = &amp;#039;Wikipedia:Protection policy#extended&amp;#039;,&lt;br /&gt;
		autoconfirmed = &amp;#039;Wikipedia:Protection policy#semi&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &amp;#039;Wikipedia:Protection policy#move&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = &amp;#039;Wikipedia:Protection policy#pending&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &amp;#039;Wikipedia:Protection policy#upload&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Padlock indicator names&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table provides the &amp;quot;name&amp;quot; attribute for the &amp;lt;indicator&amp;gt; extension tag&lt;br /&gt;
-- with which small padlock icons are generated. All indicator tags on a page&lt;br /&gt;
-- are displayed in alphabetical order based on this attribute, and with&lt;br /&gt;
-- indicator tags with duplicate names, the last tag on the page wins.&lt;br /&gt;
-- The attribute is chosen based on the protection action; table keys must be a&lt;br /&gt;
-- protection action name or the string &amp;quot;default&amp;quot;.&lt;br /&gt;
padlockIndicatorNames = {&lt;br /&gt;
	autoreview = &amp;#039;pp-autoreview&amp;#039;,&lt;br /&gt;
	default = &amp;#039;pp-default&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection categories&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- The protection categories are stored in the protectionCategories table.&lt;br /&gt;
-- Keys to this table are made up of the following strings:&lt;br /&gt;
--&lt;br /&gt;
-- 1. the expiry date&lt;br /&gt;
-- 2. the namespace&lt;br /&gt;
-- 3. the protection reason (e.g. &amp;quot;dispute&amp;quot; or &amp;quot;vandalism&amp;quot;)&lt;br /&gt;
-- 4. the protection level (e.g. &amp;quot;sysop&amp;quot; or &amp;quot;autoconfirmed&amp;quot;)&lt;br /&gt;
-- 5. the action (e.g. &amp;quot;edit&amp;quot; or &amp;quot;move&amp;quot;)&lt;br /&gt;
-- &lt;br /&gt;
-- When the module looks up a category in the table, first it will will check to&lt;br /&gt;
-- see a key exists that corresponds to all five parameters. For example, a&lt;br /&gt;
-- user page semi-protected from vandalism for two weeks would have the key&lt;br /&gt;
-- &amp;quot;temp-user-vandalism-autoconfirmed-edit&amp;quot;. If no match is found, the module&lt;br /&gt;
-- changes the first part of the key to &amp;quot;all&amp;quot; and checks the table again. It&lt;br /&gt;
-- keeps checking increasingly generic key combinations until it finds the&lt;br /&gt;
-- field, or until it reaches the key &amp;quot;all-all-all-all-all&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- The module uses a binary matrix to determine the order in which to search.&lt;br /&gt;
-- This is best demonstrated by a table. In this table, the &amp;quot;0&amp;quot; values&lt;br /&gt;
-- represent &amp;quot;all&amp;quot;, and the &amp;quot;1&amp;quot; values represent the original data (e.g.&lt;br /&gt;
-- &amp;quot;indef&amp;quot; or &amp;quot;file&amp;quot; or &amp;quot;vandalism&amp;quot;).&lt;br /&gt;
--&lt;br /&gt;
--        expiry    namespace reason   level     action&lt;br /&gt;
-- order&lt;br /&gt;
-- 1      1         1         1        1         1&lt;br /&gt;
-- 2      0         1         1        1         1&lt;br /&gt;
-- 3      1         0         1        1         1&lt;br /&gt;
-- 4      0         0         1        1         1&lt;br /&gt;
-- 5      1         1         0        1         1&lt;br /&gt;
-- 6      0         1         0        1         1&lt;br /&gt;
-- 7      1         0         0        1         1&lt;br /&gt;
-- 8      0         0         0        1         1&lt;br /&gt;
-- 9      1         1         1        0         1&lt;br /&gt;
-- 10     0         1         1        0         1&lt;br /&gt;
-- 11     1         0         1        0         1&lt;br /&gt;
-- 12     0         0         1        0         1&lt;br /&gt;
-- 13     1         1         0        0         1&lt;br /&gt;
-- 14     0         1         0        0         1&lt;br /&gt;
-- 15     1         0         0        0         1&lt;br /&gt;
-- 16     0         0         0        0         1&lt;br /&gt;
-- 17     1         1         1        1         0&lt;br /&gt;
-- 18     0         1         1        1         0&lt;br /&gt;
-- 19     1         0         1        1         0&lt;br /&gt;
-- 20     0         0         1        1         0&lt;br /&gt;
-- 21     1         1         0        1         0&lt;br /&gt;
-- 22     0         1         0        1         0&lt;br /&gt;
-- 23     1         0         0        1         0&lt;br /&gt;
-- 24     0         0         0        1         0&lt;br /&gt;
-- 25     1         1         1        0         0&lt;br /&gt;
-- 26     0         1         1        0         0&lt;br /&gt;
-- 27     1         0         1        0         0&lt;br /&gt;
-- 28     0         0         1        0         0&lt;br /&gt;
-- 29     1         1         0        0         0&lt;br /&gt;
-- 30     0         1         0        0         0&lt;br /&gt;
-- 31     1         0         0        0         0&lt;br /&gt;
-- 32     0         0         0        0         0&lt;br /&gt;
--&lt;br /&gt;
-- In this scheme the action has the highest priority, as it is the last&lt;br /&gt;
-- to change, and the expiry has the least priority, as it changes the most.&lt;br /&gt;
-- The priorities of the expiry, the protection level and the action are&lt;br /&gt;
-- fixed, but the priorities of the reason and the namespace can be swapped&lt;br /&gt;
-- through the use of the cfg.bannerDataNamespaceHasPriority table.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- If the reason specified to the template is listed in this table,&lt;br /&gt;
-- namespace data will take priority over reason data in the protectionCategories&lt;br /&gt;
-- table.&lt;br /&gt;
reasonsWithNamespacePriority = {&lt;br /&gt;
	vandalism = true,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The string to use as a namespace key for the protectionCategories table for each&lt;br /&gt;
-- namespace number.&lt;br /&gt;
categoryNamespaceKeys = {&lt;br /&gt;
	[  2] = &amp;#039;user&amp;#039;,&lt;br /&gt;
	[  3] = &amp;#039;user&amp;#039;,&lt;br /&gt;
	[  4] = &amp;#039;project&amp;#039;,&lt;br /&gt;
	[  6] = &amp;#039;file&amp;#039;,&lt;br /&gt;
	[  8] = &amp;#039;mediawiki&amp;#039;,&lt;br /&gt;
	[ 10] = &amp;#039;template&amp;#039;,&lt;br /&gt;
	[ 12] = &amp;#039;project&amp;#039;,&lt;br /&gt;
	[ 14] = &amp;#039;category&amp;#039;,&lt;br /&gt;
	[100] = &amp;#039;portal&amp;#039;,&lt;br /&gt;
	[828] = &amp;#039;module&amp;#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
protectionCategories = {&lt;br /&gt;
	[&amp;#039;all|all|all|all|all&amp;#039;]                  = &amp;#039;Wikipedia fully protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|office|all|all&amp;#039;]               = &amp;#039;Wikipedia Office-protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|reset|all|all&amp;#039;]                = &amp;#039;Wikipedia Office-protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|dmca|all|all&amp;#039;]                 = &amp;#039;Wikipedia Office-protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|mainpage|all|all&amp;#039;]             = &amp;#039;Wikipedia fully-protected main page files&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|all|extendedconfirmed|all&amp;#039;]    = &amp;#039;Wikipedia pages under 30-500 editing restriction&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|ecp|extendedconfirmed|all&amp;#039;]    = &amp;#039;Wikipedia pages under 30-500 editing restriction&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|template|all|all|edit&amp;#039;]            = &amp;#039;Wikipedia fully protected templates&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|all|autoconfirmed|edit&amp;#039;]       = &amp;#039;Wikipedia semi-protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;indef|all|all|autoconfirmed|edit&amp;#039;]     = &amp;#039;Wikipedia indefinitely semi-protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|blp|autoconfirmed|edit&amp;#039;]       = &amp;#039;Wikipedia indefinitely semi-protected biographies of living people&amp;#039;,&lt;br /&gt;
	[&amp;#039;temp|all|blp|autoconfirmed|edit&amp;#039;]      = &amp;#039;Wikipedia temporarily semi-protected biographies of living people&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|dispute|autoconfirmed|edit&amp;#039;]   = &amp;#039;Wikipedia pages semi-protected due to dispute&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|sock|autoconfirmed|edit&amp;#039;]      = &amp;#039;Wikipedia pages semi-protected from banned users&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|vandalism|autoconfirmed|edit&amp;#039;] = &amp;#039;Wikipedia pages semi-protected against vandalism&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|category|all|autoconfirmed|edit&amp;#039;]  = &amp;#039;Wikipedia semi-protected categories&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|file|all|autoconfirmed|edit&amp;#039;]      = &amp;#039;Wikipedia semi-protected files&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|portal|all|autoconfirmed|edit&amp;#039;]    = &amp;#039;Wikipedia semi-protected portals&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|project|all|autoconfirmed|edit&amp;#039;]   = &amp;#039;Wikipedia semi-protected project pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|talk|all|autoconfirmed|edit&amp;#039;]      = &amp;#039;Wikipedia semi-protected talk pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|template|all|autoconfirmed|edit&amp;#039;]  = &amp;#039;Wikipedia semi-protected templates&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|user|all|autoconfirmed|edit&amp;#039;]      = &amp;#039;Wikipedia semi-protected user and user talk pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|template|all|templateeditor|edit&amp;#039;] = &amp;#039;Wikipedia template-protected templates&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|blp|sysop|edit&amp;#039;]               = &amp;#039;Wikipedia indefinitely protected biographies of living people&amp;#039;,&lt;br /&gt;
	[&amp;#039;temp|all|blp|sysop|edit&amp;#039;]              = &amp;#039;Wikipedia temporarily protected biographies of living people&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|dispute|sysop|edit&amp;#039;]           = &amp;#039;Wikipedia pages protected due to dispute&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|sock|sysop|edit&amp;#039;]              = &amp;#039;Wikipedia pages protected from banned users&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|vandalism|sysop|edit&amp;#039;]         = &amp;#039;Wikipedia pages protected against vandalism&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|category|all|sysop|edit&amp;#039;]          = &amp;#039;Wikipedia protected categories&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|file|all|sysop|edit&amp;#039;]              = &amp;#039;Wikipedia fully-protected files&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|project|all|sysop|edit&amp;#039;]           = &amp;#039;Wikipedia fully-protected project pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|talk|all|sysop|edit&amp;#039;]              = &amp;#039;Wikipedia fully-protected talk pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|template|all|sysop|edit&amp;#039;]          = &amp;#039;Wikipedia fully protected templates&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|user|all|sysop|edit&amp;#039;]              = &amp;#039;Wikipedia protected user and user talk pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|module|all|all|edit&amp;#039;]              = &amp;#039;Wikipedia fully-protected modules&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|module|all|templateeditor|edit&amp;#039;]   = &amp;#039;Wikipedia template-protected modules&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|module|all|autoconfirmed|edit&amp;#039;]    = &amp;#039;Wikipedia semi-protected modules&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|all|sysop|move&amp;#039;]               = &amp;#039;Wikipedia move-protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;indef|all|all|sysop|move&amp;#039;]             = &amp;#039;Wikipedia indefinitely move-protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|dispute|sysop|move&amp;#039;]           = &amp;#039;Wikipedia pages move-protected due to dispute&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|vandalism|sysop|move&amp;#039;]         = &amp;#039;Wikipedia pages move-protected due to vandalism&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|portal|all|sysop|move&amp;#039;]            = &amp;#039;Wikipedia move-protected portals&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|portal|all|sysop|move&amp;#039;]            = &amp;#039;Wikipedia move-protected portals&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|project|all|sysop|move&amp;#039;]           = &amp;#039;Wikipedia move-protected project pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|talk|all|sysop|move&amp;#039;]              = &amp;#039;Wikipedia move-protected talk pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|template|all|sysop|move&amp;#039;]          = &amp;#039;Wikipedia move-protected templates&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|user|all|sysop|move&amp;#039;]              = &amp;#039;Wikipedia move-protected user and user talk pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|all|all|autoconfirmed|autoreview&amp;#039;] = &amp;#039;Wikipedia pending changes protected pages&amp;#039;,&lt;br /&gt;
	[&amp;#039;all|file|all|all|upload&amp;#039;]              = &amp;#039;Wikipedia upload-protected files&amp;#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Expiry category config&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table configures the expiry category behaviour for each protection&lt;br /&gt;
-- action.&lt;br /&gt;
-- * If set to true, setting that action will always categorise the page if&lt;br /&gt;
--   an expiry parameter is not set.&lt;br /&gt;
-- * If set to false, setting that action will never categorise the page.&lt;br /&gt;
-- * If set to nil, the module will categorise the page if:&lt;br /&gt;
--   1) an expiry parameter is not set, and&lt;br /&gt;
--   2) a reason is provided, and&lt;br /&gt;
--   3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck&lt;br /&gt;
--      table.&lt;br /&gt;
&lt;br /&gt;
expiryCheckActions = {&lt;br /&gt;
	edit = nil,&lt;br /&gt;
	move = false,&lt;br /&gt;
	autoreview = true,&lt;br /&gt;
	upload = false&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
reasonsWithoutExpiryCheck = {&lt;br /&gt;
	blp = true,&lt;br /&gt;
	template = true,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Pagetypes&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table produces the page types available with the ${PAGETYPE} parameter.&lt;br /&gt;
-- Keys are namespace numbers, or the string &amp;quot;default&amp;quot; for the default value.&lt;br /&gt;
pagetypes = {&lt;br /&gt;
	[0] = &amp;#039;article&amp;#039;,&lt;br /&gt;
	[6] = &amp;#039;file&amp;#039;,&lt;br /&gt;
	[10] = &amp;#039;template&amp;#039;,&lt;br /&gt;
	[14] = &amp;#039;category&amp;#039;,&lt;br /&gt;
	[828] = &amp;#039;module&amp;#039;,&lt;br /&gt;
	default = &amp;#039;page&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Strings marking indefinite protection&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table contains values passed to the expiry parameter that mean the page&lt;br /&gt;
-- is protected indefinitely.&lt;br /&gt;
indefStrings = {&lt;br /&gt;
	[&amp;#039;indef&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;indefinite&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;indefinitely&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;infinite&amp;#039;] = true,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Group hierarchy&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table maps each group to all groups that have a superset of the original&lt;br /&gt;
-- group&amp;#039;s page editing permissions.&lt;br /&gt;
hierarchy = {&lt;br /&gt;
	sysop = {},&lt;br /&gt;
	reviewer = {&amp;#039;sysop&amp;#039;},&lt;br /&gt;
	filemover = {&amp;#039;sysop&amp;#039;},&lt;br /&gt;
	templateeditor = {&amp;#039;sysop&amp;#039;},&lt;br /&gt;
	extendedconfirmed = {&amp;#039;sysop&amp;#039;},&lt;br /&gt;
	autoconfirmed = {&amp;#039;reviewer&amp;#039;, &amp;#039;filemover&amp;#039;, &amp;#039;templateeditor&amp;#039;, &amp;#039;extendedconfirmed&amp;#039;},&lt;br /&gt;
	user = {&amp;#039;autoconfirmed&amp;#039;},&lt;br /&gt;
	[&amp;#039;*&amp;#039;] = {&amp;#039;user&amp;#039;}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Wrapper templates and their default arguments&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table contains wrapper templates used with the module, and their&lt;br /&gt;
-- default arguments. Templates specified in this table should contain the&lt;br /&gt;
-- following invocation, and no other template content:&lt;br /&gt;
--&lt;br /&gt;
-- {{#invoke:Protection banner|main}}&lt;br /&gt;
--&lt;br /&gt;
-- If other content is desired, it can be added between&lt;br /&gt;
-- &amp;lt;noinclude&amp;gt;...&amp;lt;/noinclude&amp;gt; tags.&lt;br /&gt;
--&lt;br /&gt;
-- When a user calls one of these wrapper templates, they will use the&lt;br /&gt;
-- default arguments automatically. However, users can override any of the&lt;br /&gt;
-- arguments.&lt;br /&gt;
wrappers = {&lt;br /&gt;
	[&amp;#039;Template:Pp&amp;#039;]                         = {},&lt;br /&gt;
	[&amp;#039;Template:Pp-30-500&amp;#039;]                  = {&amp;#039;ecp&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-blp&amp;#039;]                     = {&amp;#039;blp&amp;#039;},&lt;br /&gt;
	-- we don&amp;#039;t need Template:Pp-create&lt;br /&gt;
	[&amp;#039;Template:Pp-dispute&amp;#039;]                 = {&amp;#039;dispute&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-main-page&amp;#039;]               = {&amp;#039;mainpage&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-move&amp;#039;]                    = {action = &amp;#039;move&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-move-dispute&amp;#039;]            = {&amp;#039;dispute&amp;#039;, action = &amp;#039;move&amp;#039;},&lt;br /&gt;
	-- we don&amp;#039;t need Template:Pp-move-indef&lt;br /&gt;
	[&amp;#039;Template:Pp-move-vandalism&amp;#039;]          = {&amp;#039;vandalism&amp;#039;, action = &amp;#039;move&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-office&amp;#039;]                  = {&amp;#039;office&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-office-dmca&amp;#039;]             = {&amp;#039;dmca&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-pc&amp;#039;]                      = {action = &amp;#039;autoreview&amp;#039;, small = true},&lt;br /&gt;
	[&amp;#039;Template:Pp-pc1&amp;#039;]                     = {action = &amp;#039;autoreview&amp;#039;, small = true},&lt;br /&gt;
	[&amp;#039;Template:Pp-reset&amp;#039;]                   = {&amp;#039;reset&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-semi-indef&amp;#039;]              = {small = true},&lt;br /&gt;
	[&amp;#039;Template:Pp-sock&amp;#039;]                    = {&amp;#039;sock&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-template&amp;#039;]                = {&amp;#039;template&amp;#039;, small = true},&lt;br /&gt;
	[&amp;#039;Template:Pp-upload&amp;#039;]                  = {action = &amp;#039;upload&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-usertalk&amp;#039;]                = {&amp;#039;usertalk&amp;#039;},&lt;br /&gt;
	[&amp;#039;Template:Pp-vandalism&amp;#039;]               = {&amp;#039;vandalism&amp;#039;},&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- &lt;br /&gt;
--                                 MESSAGES&lt;br /&gt;
-- &lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
msg = {&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Intro blurb and intro fragment&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages specify what is produced by the ${INTROBLURB} and&lt;br /&gt;
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the&lt;br /&gt;
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use&lt;br /&gt;
-- intro-blurb-noexpiry or intro-fragment-noexpiry.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&amp;#039;intro-blurb-expiry&amp;#039;] = &amp;#039;${PROTECTIONBLURB} until ${EXPIRY}.&amp;#039;,&lt;br /&gt;
[&amp;#039;intro-blurb-noexpiry&amp;#039;] = &amp;#039;${PROTECTIONBLURB}.&amp;#039;,&lt;br /&gt;
[&amp;#039;intro-fragment-expiry&amp;#039;] = &amp;#039;${PROTECTIONBLURB} until ${EXPIRY},&amp;#039;,&lt;br /&gt;
[&amp;#039;intro-fragment-noexpiry&amp;#039;] = &amp;#039;${PROTECTIONBLURB}&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Tooltip blurb&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.&lt;br /&gt;
-- If the protection is temporary the tooltip-blurb-expiry message is used, and&lt;br /&gt;
-- if not the tooltip-blurb-noexpiry message is used.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&amp;#039;tooltip-blurb-expiry&amp;#039;] = &amp;#039;This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.&amp;#039;,&lt;br /&gt;
[&amp;#039;tooltip-blurb-noexpiry&amp;#039;] = &amp;#039;This ${PAGETYPE} is ${PROTECTIONLEVEL}.&amp;#039;,&lt;br /&gt;
[&amp;#039;tooltip-fragment-expiry&amp;#039;] = &amp;#039;This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},&amp;#039;,&lt;br /&gt;
[&amp;#039;tooltip-fragment-noexpiry&amp;#039;] = &amp;#039;This ${PAGETYPE} is ${PROTECTIONLEVEL}&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Special explanation blurb&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages&lt;br /&gt;
-- in the MediaWiki namespace.&lt;br /&gt;
-- It is possible to use banner parameters in this message.&lt;br /&gt;
[&amp;#039;explanation-blurb-nounprotect&amp;#039;] = &amp;#039;See the [[Wikipedia:Protection policy|&amp;#039;&lt;br /&gt;
	.. &amp;#039;protection policy]] and ${PROTECTIONLOG} for more details.&amp;#039;&lt;br /&gt;
	.. &amp;#039; Please discuss any changes on the ${TALKPAGE}; you&amp;#039;&lt;br /&gt;
	.. &amp;#039; may ${EDITREQUEST} to ask an&amp;#039;&lt;br /&gt;
	.. &amp;#039; [[Wikipedia:Administrators|administrator]] to make an edit if it&amp;#039;&lt;br /&gt;
	.. &amp;#039; is [[Help:Minor edit#When to mark an edit as a minor edit&amp;#039;&lt;br /&gt;
	.. &amp;#039;|uncontroversial]] or supported by [[Wikipedia:Consensus&amp;#039;&lt;br /&gt;
	.. &amp;#039;|consensus]].&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection log display values&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages determine the display values for the protection log link&lt;br /&gt;
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&amp;#039;protection-log-display&amp;#039;] = &amp;#039;protection log&amp;#039;,&lt;br /&gt;
[&amp;#039;pc-log-display&amp;#039;] = &amp;#039;pending changes log&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Current version display values&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages determine the display values for the page history link&lt;br /&gt;
-- or the move log link produced by the ${CURRENTVERSION} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&amp;#039;current-version-move-display&amp;#039;] = &amp;#039;current title&amp;#039;,&lt;br /&gt;
[&amp;#039;current-version-edit-display&amp;#039;] = &amp;#039;current version&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Talk page&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This message determines the display value of the talk page link produced&lt;br /&gt;
-- with the ${TALKPAGE} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in this message.&lt;br /&gt;
[&amp;#039;talk-page-link-display&amp;#039;] = &amp;#039;talk page&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Edit requests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This message determines the display value of the edit request link produced&lt;br /&gt;
-- with the ${EDITREQUEST} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in this message.&lt;br /&gt;
[&amp;#039;edit-request-display&amp;#039;] = &amp;#039;submit an edit request&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Expiry date format&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This is the format for the blurb expiry date. It should be valid input for&lt;br /&gt;
-- the first parameter of the #time parser function.&lt;br /&gt;
[&amp;#039;expiry-date-format&amp;#039;] = &amp;#039;F j, Y &amp;quot;at&amp;quot; H:i e&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Tracking categories&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages determine which tracking categories the module outputs.&lt;br /&gt;
[&amp;#039;tracking-category-incorrect&amp;#039;] = &amp;#039;Wikipedia pages with incorrect protection templates&amp;#039;,&lt;br /&gt;
[&amp;#039;tracking-category-template&amp;#039;] = &amp;#039;Wikipedia template-protected pages other than templates and modules&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Images&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These are images that are not defined by their protection action and protection level.&lt;br /&gt;
[&amp;#039;image-filename-indef&amp;#039;] = &amp;#039;Full-protection-shackle.svg&amp;#039;,&lt;br /&gt;
[&amp;#039;image-filename-default&amp;#039;] = &amp;#039;Transparent.gif&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- End messages&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- End configuration&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Effective_protection_level&amp;diff=4097</id>
		<title>Module:Effective protection level</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Effective_protection_level&amp;diff=4097"/>
		<updated>2019-07-26T02:04:26Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Returns the permission required to perform a given action on a given title.&lt;br /&gt;
-- If no title is specified, the title of the page being displayed is used.&lt;br /&gt;
function p._main(action, pagename)&lt;br /&gt;
	local title&lt;br /&gt;
	if type(pagename) == &amp;#039;table&amp;#039; and pagename.prefixedText then&lt;br /&gt;
		title = pagename&lt;br /&gt;
	elseif pagename then&lt;br /&gt;
		title = mw.title.new(pagename)&lt;br /&gt;
	else&lt;br /&gt;
		title = mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
	pagename = title.prefixedText&lt;br /&gt;
	if action == &amp;#039;autoreview&amp;#039; then&lt;br /&gt;
		local level = mw.ext.FlaggedRevs.getStabilitySettings(title)&lt;br /&gt;
		level = level and level.autoreview&lt;br /&gt;
		if level == &amp;#039;review&amp;#039; then&lt;br /&gt;
			return &amp;#039;reviewer&amp;#039;&lt;br /&gt;
		elseif level ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			return level&lt;br /&gt;
		else&lt;br /&gt;
			return nil -- not &amp;#039;*&amp;#039;. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not &amp;#039;&amp;#039;, as that would mean PC-protected but nobody can review&lt;br /&gt;
		end&lt;br /&gt;
	elseif action ~= &amp;#039;edit&amp;#039; and action ~= &amp;#039;move&amp;#039; and action ~= &amp;#039;create&amp;#039; and action ~= &amp;#039;upload&amp;#039; then&lt;br /&gt;
		error( &amp;#039;First parameter must be one of edit, move, create, upload, autoreview&amp;#039;, 2 )&lt;br /&gt;
	end&lt;br /&gt;
	if title.namespace == 8 then -- MediaWiki namespace&lt;br /&gt;
		if title.contentModel == &amp;#039;javascript&amp;#039; or title.contentModel == &amp;#039;css&amp;#039; then -- site JS or CSS page&lt;br /&gt;
			return &amp;#039;interfaceadmin&amp;#039;&lt;br /&gt;
		else -- any non-JS/CSS MediaWiki page&lt;br /&gt;
			return &amp;#039;sysop&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif title.namespace == 2 and title.isSubpage then&lt;br /&gt;
		if title.contentModel == &amp;#039;javascript&amp;#039; or title.contentModel == &amp;#039;css&amp;#039; then -- user JS or CSS page&lt;br /&gt;
			return &amp;#039;interfaceadmin&amp;#039;&lt;br /&gt;
		elseif title.contentModel == &amp;#039;json&amp;#039; then -- user JSON page&lt;br /&gt;
			return &amp;#039;sysop&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local level = title.protectionLevels[action] and title.protectionLevels[action][1]&lt;br /&gt;
	if level == &amp;#039;sysop&amp;#039; or level == &amp;#039;editprotected&amp;#039; then&lt;br /&gt;
		return &amp;#039;sysop&amp;#039;&lt;br /&gt;
	elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page&lt;br /&gt;
		return &amp;#039;sysop&amp;#039;&lt;br /&gt;
	elseif level == &amp;#039;templateeditor&amp;#039; then&lt;br /&gt;
		return &amp;#039;templateeditor&amp;#039;&lt;br /&gt;
	elseif action == &amp;#039;move&amp;#039; then&lt;br /&gt;
		local blacklistentry = mw.ext.TitleBlacklist.test(&amp;#039;edit&amp;#039;, pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.&lt;br /&gt;
		if blacklistentry and not blacklistentry.params.autoconfirmed then&lt;br /&gt;
			return &amp;#039;templateeditor&amp;#039;&lt;br /&gt;
		elseif title.namespace == 6 then&lt;br /&gt;
			return &amp;#039;filemover&amp;#039;&lt;br /&gt;
		elseif level == &amp;#039;extendedconfirmed&amp;#039; then&lt;br /&gt;
			return &amp;#039;extendedconfirmed&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;autoconfirmed&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)&lt;br /&gt;
	if blacklistentry then&lt;br /&gt;
		if not blacklistentry.params.autoconfirmed then&lt;br /&gt;
			return &amp;#039;templateeditor&amp;#039;&lt;br /&gt;
		elseif level == &amp;#039;extendedconfirmed&amp;#039; then&lt;br /&gt;
			return &amp;#039;extendedconfirmed&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;autoconfirmed&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif level == &amp;#039;editsemiprotected&amp;#039; then -- create-semiprotected pages return this for some reason&lt;br /&gt;
		return &amp;#039;autoconfirmed&amp;#039;&lt;br /&gt;
	elseif level then&lt;br /&gt;
		return level&lt;br /&gt;
	elseif action == &amp;#039;upload&amp;#039; then&lt;br /&gt;
		return &amp;#039;autoconfirmed&amp;#039;&lt;br /&gt;
	elseif action == &amp;#039;create&amp;#039; and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts&lt;br /&gt;
		return &amp;#039;user&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;*&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
setmetatable(p, { __index = function(t, k)&lt;br /&gt;
	return function(frame)&lt;br /&gt;
		return t._main(k, frame.args[1])&lt;br /&gt;
	end&lt;br /&gt;
end })&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Module:Infobox&amp;diff=4099</id>
		<title>Module:Infobox</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Module:Infobox&amp;diff=4099"/>
		<updated>2019-07-26T02:04:26Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements {{Infobox}}&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local navbar = require(&amp;#039;Module:Navbar&amp;#039;)._navbar&lt;br /&gt;
&lt;br /&gt;
local args = {}&lt;br /&gt;
local origArgs&lt;br /&gt;
local root&lt;br /&gt;
&lt;br /&gt;
local function notempty( s ) return s and s:match( &amp;#039;%S&amp;#039; ) end&lt;br /&gt;
&lt;br /&gt;
local function fixChildBoxes(sval, tt)&lt;br /&gt;
	if notempty(sval) then&lt;br /&gt;
		local marker = &amp;#039;&amp;lt;span class=special_infobox_marker&amp;gt;&amp;#039;&lt;br /&gt;
		local s = sval&lt;br /&gt;
		s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;%s*[Tt][Rr])&amp;#039;, marker .. &amp;#039;%1&amp;#039;)&lt;br /&gt;
		s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;/[Tt][Rr]%s*&amp;gt;)&amp;#039;, &amp;#039;%1&amp;#039; .. marker)&lt;br /&gt;
		if s:match(marker) then&lt;br /&gt;
			s = mw.ustring.gsub(s, marker .. &amp;#039;%s*&amp;#039; .. marker, &amp;#039;&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s, &amp;#039;([\r\n]|-[^\r\n]*[\r\n])%s*&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s, marker .. &amp;#039;%s*([\r\n]|-)&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;/[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*&amp;gt;%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s, &amp;#039;(&amp;lt;%s*[Tt][Aa][Bb][Ll][Ee][^&amp;lt;&amp;gt;]*&amp;gt;%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s, &amp;#039;^(%{|[^\r\n]*[\r\n]%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s, &amp;#039;([\r\n]%{|[^\r\n]*[\r\n]%s*)&amp;#039; .. marker, &amp;#039;%1&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s,  marker .. &amp;#039;(%s*&amp;lt;/[Tt][Aa][Bb][Ll][Ee]%s*&amp;gt;)&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
			s = mw.ustring.gsub(s,  marker .. &amp;#039;(%s*\n|%})&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if s:match(marker) then&lt;br /&gt;
			local subcells = mw.text.split(s, marker)&lt;br /&gt;
			s = &amp;#039;&amp;#039;&lt;br /&gt;
			for k = 1, #subcells do&lt;br /&gt;
				if k == 1 then&lt;br /&gt;
					s = s .. subcells[k] .. &amp;#039;&amp;lt;/&amp;#039; .. tt .. &amp;#039;&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
				elseif k == #subcells then&lt;br /&gt;
					local rowstyle = &amp;#039; style=&amp;quot;display:none&amp;quot;&amp;#039;&lt;br /&gt;
					if notempty(subcells[k]) then rowstyle = &amp;#039;&amp;#039;	end&lt;br /&gt;
					s = s .. &amp;#039;&amp;lt;tr&amp;#039; .. rowstyle ..&amp;#039;&amp;gt;&amp;lt;&amp;#039; .. tt .. &amp;#039; colspan=2&amp;gt;\n&amp;#039; .. subcells[k]&lt;br /&gt;
				elseif notempty(subcells[k]) then&lt;br /&gt;
					if (k % 2) == 0 then&lt;br /&gt;
						s = s .. subcells[k]&lt;br /&gt;
					else&lt;br /&gt;
						s = s .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;&amp;#039; .. tt .. &amp;#039; colspan=2&amp;gt;\n&amp;#039; .. subcells[k] .. &amp;#039;&amp;lt;/&amp;#039; .. tt .. &amp;#039;&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		-- the next two lines add a newline at the end of lists for the PHP parser&lt;br /&gt;
		-- https://en.wikipedia.org/w/index.php?title=Template_talk:Infobox_musical_artist&amp;amp;oldid=849054481&lt;br /&gt;
		-- remove when [[:phab:T191516]] is fixed or OBE&lt;br /&gt;
		s = mw.ustring.gsub(s, &amp;#039;([\r\n][%*#;:][^\r\n]*)$&amp;#039;, &amp;#039;%1\n&amp;#039;)&lt;br /&gt;
		s = mw.ustring.gsub(s, &amp;#039;^([%*#;:][^\r\n]*)$&amp;#039;, &amp;#039;%1\n&amp;#039;)&lt;br /&gt;
		s = mw.ustring.gsub(s, &amp;#039;^([%*#;:])&amp;#039;, &amp;#039;\n%1&amp;#039;)&lt;br /&gt;
		s = mw.ustring.gsub(s, &amp;#039;^(%{%|)&amp;#039;, &amp;#039;\n%1&amp;#039;)&lt;br /&gt;
		return s&lt;br /&gt;
	else&lt;br /&gt;
		return sval&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
    -- Returns the union of the values of two tables, as a sequence.&lt;br /&gt;
    local vals = {}&lt;br /&gt;
    for k, v in pairs(t1) do&lt;br /&gt;
        vals[v] = true&lt;br /&gt;
    end&lt;br /&gt;
    for k, v in pairs(t2) do&lt;br /&gt;
        vals[v] = true&lt;br /&gt;
    end&lt;br /&gt;
    local ret = {}&lt;br /&gt;
    for k, v in pairs(vals) do&lt;br /&gt;
        table.insert(ret, k)&lt;br /&gt;
    end&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(prefix)&lt;br /&gt;
    -- Returns a table containing the numbers of the arguments that exist&lt;br /&gt;
    -- for the specified prefix. For example, if the prefix was &amp;#039;data&amp;#039;, and&lt;br /&gt;
    -- &amp;#039;data1&amp;#039;, &amp;#039;data2&amp;#039;, and &amp;#039;data5&amp;#039; exist, it would return {1, 2, 5}.&lt;br /&gt;
    local nums = {}&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        local num = tostring(k):match(&amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)$&amp;#039;)&lt;br /&gt;
        if num then table.insert(nums, tonumber(num)) end&lt;br /&gt;
    end&lt;br /&gt;
    table.sort(nums)&lt;br /&gt;
    return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addRow(rowArgs)&lt;br /&gt;
    -- Adds a row to the infobox, with either a header cell&lt;br /&gt;
    -- or a label/data cell combination.&lt;br /&gt;
    if rowArgs.header then&lt;br /&gt;
        root&lt;br /&gt;
            :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
                :addClass(rowArgs.rowclass)&lt;br /&gt;
                :cssText(rowArgs.rowstyle)&lt;br /&gt;
                :attr(&amp;#039;id&amp;#039;, rowArgs.rowid)&lt;br /&gt;
                :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                    :attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
                    :attr(&amp;#039;id&amp;#039;, rowArgs.headerid)&lt;br /&gt;
                    :addClass(rowArgs.class)&lt;br /&gt;
                    :addClass(args.headerclass)&lt;br /&gt;
                    :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                    :cssText(args.headerstyle)&lt;br /&gt;
                    :cssText(rowArgs.rowcellstyle)&lt;br /&gt;
                    :wikitext(fixChildBoxes(rowArgs.header, &amp;#039;th&amp;#039;))&lt;br /&gt;
    elseif rowArgs.data then&lt;br /&gt;
        local row = root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        row:addClass(rowArgs.rowclass)&lt;br /&gt;
        row:cssText(rowArgs.rowstyle)&lt;br /&gt;
        row:attr(&amp;#039;id&amp;#039;, rowArgs.rowid)&lt;br /&gt;
        if rowArgs.label then&lt;br /&gt;
            row&lt;br /&gt;
                :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                    :attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;)&lt;br /&gt;
                    :attr(&amp;#039;id&amp;#039;, rowArgs.labelid)&lt;br /&gt;
                    :cssText(args.labelstyle)&lt;br /&gt;
                    :cssText(rowArgs.rowcellstyle)&lt;br /&gt;
                    :wikitext(rowArgs.label)&lt;br /&gt;
                    :done()&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        local dataCell = row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
        if not rowArgs.label then &lt;br /&gt;
            dataCell&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;) &lt;br /&gt;
        end&lt;br /&gt;
        dataCell&lt;br /&gt;
            :attr(&amp;#039;id&amp;#039;, rowArgs.dataid)&lt;br /&gt;
            :addClass(rowArgs.class)&lt;br /&gt;
            :cssText(rowArgs.datastyle)&lt;br /&gt;
            :cssText(rowArgs.rowcellstyle)&lt;br /&gt;
            :wikitext(fixChildBoxes(rowArgs.data, &amp;#039;td&amp;#039;))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTitle()&lt;br /&gt;
    if not args.title then return end&lt;br /&gt;
&lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;caption&amp;#039;)&lt;br /&gt;
            :addClass(args.titleclass)&lt;br /&gt;
            :cssText(args.titlestyle)&lt;br /&gt;
            :wikitext(args.title)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderAboveRow()&lt;br /&gt;
    if not args.above then return end&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            :tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, 2)&lt;br /&gt;
                :addClass(args.aboveclass)&lt;br /&gt;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                :css(&amp;#039;font-size&amp;#039;, &amp;#039;125%&amp;#039;)&lt;br /&gt;
                :css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
                :cssText(args.abovestyle)&lt;br /&gt;
                :wikitext(fixChildBoxes(args.above,&amp;#039;th&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderBelowRow()&lt;br /&gt;
    if not args.below then return end&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
                :addClass(args.belowclass)&lt;br /&gt;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
                :cssText(args.belowstyle)&lt;br /&gt;
                :wikitext(fixChildBoxes(args.below,&amp;#039;td&amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderSubheaders()&lt;br /&gt;
    if args.subheader then&lt;br /&gt;
        args.subheader1 = args.subheader&lt;br /&gt;
    end&lt;br /&gt;
    if args.subheaderrowclass then&lt;br /&gt;
        args.subheaderrowclass1 = args.subheaderrowclass&lt;br /&gt;
    end&lt;br /&gt;
    local subheadernums = getArgNums(&amp;#039;subheader&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(subheadernums) do&lt;br /&gt;
        addRow({&lt;br /&gt;
            data = args[&amp;#039;subheader&amp;#039; .. tostring(num)],&lt;br /&gt;
            datastyle = args.subheaderstyle,&lt;br /&gt;
            rowcellstyle = args[&amp;#039;subheaderstyle&amp;#039; .. tostring(num)],&lt;br /&gt;
            class = args.subheaderclass,&lt;br /&gt;
            rowclass = args[&amp;#039;subheaderrowclass&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderImages()&lt;br /&gt;
    if args.image then&lt;br /&gt;
        args.image1 = args.image&lt;br /&gt;
    end&lt;br /&gt;
    if args.caption then&lt;br /&gt;
        args.caption1 = args.caption&lt;br /&gt;
    end&lt;br /&gt;
    local imagenums = getArgNums(&amp;#039;image&amp;#039;)&lt;br /&gt;
    for k, num in ipairs(imagenums) do&lt;br /&gt;
        local caption = args[&amp;#039;caption&amp;#039; .. tostring(num)]&lt;br /&gt;
        local data = mw.html.create():wikitext(args[&amp;#039;image&amp;#039; .. tostring(num)])&lt;br /&gt;
        if caption then&lt;br /&gt;
            data&lt;br /&gt;
                :tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
                    :cssText(args.captionstyle)&lt;br /&gt;
                    :wikitext(caption)&lt;br /&gt;
        end&lt;br /&gt;
        addRow({&lt;br /&gt;
            data = tostring(data),&lt;br /&gt;
            datastyle = args.imagestyle,&lt;br /&gt;
            class = args.imageclass,&lt;br /&gt;
            rowclass = args[&amp;#039;imagerowclass&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderRows()&lt;br /&gt;
    -- Gets the union of the header and data argument numbers,&lt;br /&gt;
    -- and renders them all in order using addRow.&lt;br /&gt;
    local rownums = union(getArgNums(&amp;#039;header&amp;#039;), getArgNums(&amp;#039;data&amp;#039;))&lt;br /&gt;
    table.sort(rownums)&lt;br /&gt;
    for k, num in ipairs(rownums) do&lt;br /&gt;
        addRow({&lt;br /&gt;
            header = args[&amp;#039;header&amp;#039; .. tostring(num)],&lt;br /&gt;
            label = args[&amp;#039;label&amp;#039; .. tostring(num)],&lt;br /&gt;
            data = args[&amp;#039;data&amp;#039; .. tostring(num)],&lt;br /&gt;
            datastyle = args.datastyle,&lt;br /&gt;
            class = args[&amp;#039;class&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowclass = args[&amp;#039;rowclass&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowstyle = args[&amp;#039;rowstyle&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowcellstyle = args[&amp;#039;rowcellstyle&amp;#039; .. tostring(num)],&lt;br /&gt;
            dataid = args[&amp;#039;dataid&amp;#039; .. tostring(num)],&lt;br /&gt;
            labelid = args[&amp;#039;labelid&amp;#039; .. tostring(num)],&lt;br /&gt;
            headerid = args[&amp;#039;headerid&amp;#039; .. tostring(num)],&lt;br /&gt;
            rowid = args[&amp;#039;rowid&amp;#039; .. tostring(num)]&lt;br /&gt;
        })&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderNavBar()&lt;br /&gt;
    if not args.name then return end&lt;br /&gt;
    &lt;br /&gt;
    root&lt;br /&gt;
        :tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
            :tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
                :attr(&amp;#039;colspan&amp;#039;, &amp;#039;2&amp;#039;)&lt;br /&gt;
                :css(&amp;#039;text-align&amp;#039;, &amp;#039;right&amp;#039;)&lt;br /&gt;
                :wikitext(navbar{&lt;br /&gt;
                    args.name,&lt;br /&gt;
                    mini = 1,&lt;br /&gt;
                })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderItalicTitle()&lt;br /&gt;
    local italicTitle = args[&amp;#039;italic title&amp;#039;] and mw.ustring.lower(args[&amp;#039;italic title&amp;#039;])&lt;br /&gt;
    if italicTitle == &amp;#039;&amp;#039; or italicTitle == &amp;#039;force&amp;#039; or italicTitle == &amp;#039;yes&amp;#039; then&lt;br /&gt;
        root:wikitext(mw.getCurrentFrame():expandTemplate({title = &amp;#039;italic title&amp;#039;}))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function renderTrackingCategories()&lt;br /&gt;
    if args.decat ~= &amp;#039;yes&amp;#039; then&lt;br /&gt;
    	if args.child == &amp;#039;yes&amp;#039; then&lt;br /&gt;
        	if args.title then&lt;br /&gt;
            	root:wikitext(&amp;#039;[[Category:Pages which use embedded infobox templates with the title parameter]]&amp;#039;)&lt;br /&gt;
        	end&lt;br /&gt;
        elseif #(getArgNums(&amp;#039;data&amp;#039;)) == 0 and mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
            root:wikitext(&amp;#039;[[Category:Articles which use infobox templates with no data rows]]&amp;#039;)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function _infobox()&lt;br /&gt;
    -- Specify the overall layout of the infobox, with special settings&lt;br /&gt;
    -- if the infobox is used as a &amp;#039;child&amp;#039; inside another infobox.&lt;br /&gt;
    if args.child ~= &amp;#039;yes&amp;#039; then&lt;br /&gt;
        root = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
        &lt;br /&gt;
        root&lt;br /&gt;
            :addClass((args.subbox ~= &amp;#039;yes&amp;#039;) and &amp;#039;infobox&amp;#039; or nil)&lt;br /&gt;
            :addClass(args.bodyclass)&lt;br /&gt;
            &lt;br /&gt;
            if args.subbox == &amp;#039;yes&amp;#039; then&lt;br /&gt;
                root&lt;br /&gt;
                    :css(&amp;#039;padding&amp;#039;, &amp;#039;0&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;border&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;margin&amp;#039;, &amp;#039;-3px&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;width&amp;#039;, &amp;#039;auto&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;min-width&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;font-size&amp;#039;, &amp;#039;100%&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;clear&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;float&amp;#039;, &amp;#039;none&amp;#039;)&lt;br /&gt;
                    :css(&amp;#039;background-color&amp;#039;, &amp;#039;transparent&amp;#039;)&lt;br /&gt;
            else&lt;br /&gt;
                root&lt;br /&gt;
                    :css(&amp;#039;width&amp;#039;, &amp;#039;22em&amp;#039;)&lt;br /&gt;
            end&lt;br /&gt;
        root&lt;br /&gt;
            :cssText(args.bodystyle)&lt;br /&gt;
    &lt;br /&gt;
        renderTitle()&lt;br /&gt;
        renderAboveRow()&lt;br /&gt;
    else&lt;br /&gt;
        root = mw.html.create()&lt;br /&gt;
        &lt;br /&gt;
        root&lt;br /&gt;
            :wikitext(args.title)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    renderSubheaders()&lt;br /&gt;
    renderImages() &lt;br /&gt;
    renderRows() &lt;br /&gt;
    renderBelowRow()  &lt;br /&gt;
    renderNavBar()&lt;br /&gt;
    renderItalicTitle()&lt;br /&gt;
    renderTrackingCategories()&lt;br /&gt;
    &lt;br /&gt;
    return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function preprocessSingleArg(argName)&lt;br /&gt;
    -- If the argument exists and isn&amp;#039;t blank, add it to the argument table.&lt;br /&gt;
    -- Blank arguments are treated as nil to match the behaviour of ParserFunctions.&lt;br /&gt;
    if origArgs[argName] and origArgs[argName] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        args[argName] = origArgs[argName]&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function preprocessArgs(prefixTable, step)&lt;br /&gt;
    -- Assign the parameters with the given prefixes to the args table, in order, in batches&lt;br /&gt;
    -- of the step size specified. This is to prevent references etc. from appearing in the&lt;br /&gt;
    -- wrong order. The prefixTable should be an array containing tables, each of which has&lt;br /&gt;
    -- two possible fields, a &amp;quot;prefix&amp;quot; string and a &amp;quot;depend&amp;quot; table. The function always parses&lt;br /&gt;
    -- parameters containing the &amp;quot;prefix&amp;quot; string, but only parses parameters in the &amp;quot;depend&amp;quot;&lt;br /&gt;
    -- table if the prefix parameter is present and non-blank.&lt;br /&gt;
    if type(prefixTable) ~= &amp;#039;table&amp;#039; then&lt;br /&gt;
        error(&amp;quot;Non-table value detected for the prefix table&amp;quot;, 2)&lt;br /&gt;
    end&lt;br /&gt;
    if type(step) ~= &amp;#039;number&amp;#039; then&lt;br /&gt;
        error(&amp;quot;Invalid step value detected&amp;quot;, 2)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Get arguments without a number suffix, and check for bad input.&lt;br /&gt;
    for i,v in ipairs(prefixTable) do&lt;br /&gt;
        if type(v) ~= &amp;#039;table&amp;#039; or type(v.prefix) ~= &amp;quot;string&amp;quot; or (v.depend and type(v.depend) ~= &amp;#039;table&amp;#039;) then&lt;br /&gt;
            error(&amp;#039;Invalid input detected to preprocessArgs prefix table&amp;#039;, 2)&lt;br /&gt;
        end&lt;br /&gt;
        preprocessSingleArg(v.prefix)&lt;br /&gt;
        -- Only parse the depend parameter if the prefix parameter is present and not blank.&lt;br /&gt;
        if args[v.prefix] and v.depend then&lt;br /&gt;
            for j, dependValue in ipairs(v.depend) do&lt;br /&gt;
                if type(dependValue) ~= &amp;#039;string&amp;#039; then&lt;br /&gt;
                    error(&amp;#039;Invalid &amp;quot;depend&amp;quot; parameter value detected in preprocessArgs&amp;#039;)&lt;br /&gt;
                end&lt;br /&gt;
                preprocessSingleArg(dependValue)&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- Get arguments with number suffixes.&lt;br /&gt;
    local a = 1 -- Counter variable.&lt;br /&gt;
    local moreArgumentsExist = true&lt;br /&gt;
    while moreArgumentsExist == true do&lt;br /&gt;
        moreArgumentsExist = false&lt;br /&gt;
        for i = a, a + step - 1 do&lt;br /&gt;
            for j,v in ipairs(prefixTable) do&lt;br /&gt;
                local prefixArgName = v.prefix .. tostring(i)&lt;br /&gt;
                if origArgs[prefixArgName] then&lt;br /&gt;
                    moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones.&lt;br /&gt;
                    preprocessSingleArg(prefixArgName)&lt;br /&gt;
                end&lt;br /&gt;
                -- Process the depend table if the prefix argument is present and not blank, or&lt;br /&gt;
                -- we are processing &amp;quot;prefix1&amp;quot; and &amp;quot;prefix&amp;quot; is present and not blank, and&lt;br /&gt;
                -- if the depend table is present.&lt;br /&gt;
                if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then&lt;br /&gt;
                    for j,dependValue in ipairs(v.depend) do&lt;br /&gt;
                        local dependArgName = dependValue .. tostring(i)&lt;br /&gt;
                        preprocessSingleArg(dependArgName)&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        a = a + step&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function p.infobox(frame)&lt;br /&gt;
    -- If called via #invoke, use the args passed into the invoking template.&lt;br /&gt;
    -- Otherwise, for testing purposes, assume args are being passed directly in.&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        origArgs = frame:getParent().args&lt;br /&gt;
    else&lt;br /&gt;
        origArgs = frame&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Parse the data parameters in the same order that the old {{infobox}} did, so that&lt;br /&gt;
    -- references etc. will display in the expected places. Parameters that depend on&lt;br /&gt;
    -- another parameter are only processed if that parameter is present, to avoid&lt;br /&gt;
    -- phantom references appearing in article reference lists.&lt;br /&gt;
    preprocessSingleArg(&amp;#039;child&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;bodyclass&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;subbox&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;bodystyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;title&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;titleclass&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;titlestyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;above&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;aboveclass&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;abovestyle&amp;#039;)&lt;br /&gt;
    preprocessArgs({&lt;br /&gt;
        {prefix = &amp;#039;subheader&amp;#039;, depend = {&amp;#039;subheaderstyle&amp;#039;, &amp;#039;subheaderrowclass&amp;#039;}}&lt;br /&gt;
    }, 10)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;subheaderstyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;subheaderclass&amp;#039;)&lt;br /&gt;
    preprocessArgs({&lt;br /&gt;
        {prefix = &amp;#039;image&amp;#039;, depend = {&amp;#039;caption&amp;#039;, &amp;#039;imagerowclass&amp;#039;}}&lt;br /&gt;
    }, 10)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;captionstyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;imagestyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;imageclass&amp;#039;)&lt;br /&gt;
    preprocessArgs({&lt;br /&gt;
        {prefix = &amp;#039;header&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;data&amp;#039;, depend = {&amp;#039;label&amp;#039;}},&lt;br /&gt;
        {prefix = &amp;#039;rowclass&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;rowstyle&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;rowcellstyle&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;class&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;dataid&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;labelid&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;headerid&amp;#039;},&lt;br /&gt;
        {prefix = &amp;#039;rowid&amp;#039;}&lt;br /&gt;
    }, 50)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;headerclass&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;headerstyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;labelstyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;datastyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;below&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;belowclass&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;belowstyle&amp;#039;)&lt;br /&gt;
    preprocessSingleArg(&amp;#039;name&amp;#039;)&lt;br /&gt;
    args[&amp;#039;italic title&amp;#039;] = origArgs[&amp;#039;italic title&amp;#039;] -- different behaviour if blank or absent&lt;br /&gt;
    preprocessSingleArg(&amp;#039;decat&amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
    return _infobox()&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Str_index&amp;diff=4093</id>
		<title>Template:Str index</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Str_index&amp;diff=4093"/>
		<updated>2019-07-26T02:04:24Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{{{{|safesubst:}}}#Invoke:String | pos | target={{{1|}}} | pos={{{2|0}}} | no_category={{{nocategory|}}} }}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Template_other&amp;diff=4095</id>
		<title>Template:Template other</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Template_other&amp;diff=4095"/>
		<updated>2019-07-26T02:04:24Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:&lt;br /&gt;
  &amp;lt;!--If no or empty &amp;quot;demospace&amp;quot; parameter then detect namespace--&amp;gt;&lt;br /&gt;
  {{#if:{{{demospace|}}}&lt;br /&gt;
  | {{lc: {{{demospace}}} }}    &amp;lt;!--Use lower case &amp;quot;demospace&amp;quot;--&amp;gt;&lt;br /&gt;
  | {{#ifeq:{{NAMESPACE}}|{{ns:Template}}&lt;br /&gt;
    | template&lt;br /&gt;
    | other&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| template = {{{1|}}}&lt;br /&gt;
| other&lt;br /&gt;
| #default = {{{2|}}}&lt;br /&gt;
}}&amp;lt;!--End switch--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Microformat_message&amp;diff=4089</id>
		<title>Template:Microformat message</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Microformat_message&amp;diff=4089"/>
		<updated>2019-07-26T02:04:23Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Help:HTML in wikitext|HTML mark-up]] produced by this template includes {{#if:{{{type|}}} |{{{type}}} |an [[{{{format}}} microformat]]}} that makes {{{data}}} readily [[Parsing|parsable]] by computer programs. This aids tasks such as the cataloguing of articles and maintenance of databases. For more information about the use of microformats on Wikipedia, please visit [[Wikipedia:WikiProject Microformats|the Microformat WikiProject]].&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{subtemplates&amp;lt;includeonly&amp;gt;|&amp;lt;/includeonly&amp;gt;}}}&lt;br /&gt;
    | &amp;lt;div style=&amp;quot;margin-top:0.5em;margin-bottom:0.65em;&amp;quot;&amp;gt;&lt;br /&gt;
; {{big|Subtemplates}}&lt;br /&gt;
{{{subtemplates}}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Please do not remove instances of these subtemplates.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{subsection1|}}}&lt;br /&gt;
    | &amp;lt;div style=&amp;quot;margin-top:0.5em;margin-bottom:0.65em;&amp;quot;&amp;gt;&amp;lt;!--(newline in case subsection begins with heading:)--&amp;gt;&lt;br /&gt;
{{{subsection1}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{1&amp;lt;includeonly&amp;gt;|&amp;lt;/includeonly&amp;gt;}}} &amp;lt;!--(i.e. if at least one unnamed parameter supplied:)--&amp;gt;&lt;br /&gt;
    | &amp;lt;div style=&amp;quot;margin-top:0.5em;margin-bottom:0.65em;&amp;quot;&amp;gt;&lt;br /&gt;
; {{big|Classes used}}&lt;br /&gt;
The [[HTML attribute|HTML class]]es of this microformat include:&lt;br /&gt;
: {{hlist&lt;br /&gt;
   |item_style=font-size:110%;{{{itemstyle|}}}&lt;br /&gt;
   |{{{1}}} |{{{2&amp;lt;includeonly&amp;gt;|&amp;lt;/includeonly&amp;gt;}}} |{{{3|&amp;lt;noinclude&amp;gt;{{nobold|……}}&amp;lt;/noinclude&amp;gt;}}}&lt;br /&gt;
   |{{{4|}}} |{{{5|}}} |{{{6|}}} |{{{7|}}} |{{{8|}}} |{{{9|}}} |{{{10|}}} |{{{11|}}} |{{{12|}}} |{{{13|}}} |{{{14|}}} |{{{15|}}} |{{{16|}}} |{{{17|}}} |{{{18|}}} |{{{19|}}} |{{{20|}}}&lt;br /&gt;
  }}  &amp;lt;/div&amp;gt;&lt;br /&gt;
{{longitem|style=line-height:1.3em|&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Please do not rename or remove these classes{{#if:{{{nocollapse&amp;lt;includeonly&amp;gt;|&amp;lt;/includeonly&amp;gt;}}} |&amp;lt;br/&amp;gt;nor collapse nested elements which use them}}.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;!--(end #if:[1])--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Ns0&amp;diff=4091</id>
		<title>Template:Ns0</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Ns0&amp;diff=4091"/>
		<updated>2019-07-26T02:04:23Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Main other]]&lt;br /&gt;
&lt;br /&gt;
{{Rcat shell|{{R with history}}{{R from template shortcut}}}}&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Infobox_legislature/doc&amp;diff=4087</id>
		<title>Template:Infobox legislature/doc</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Infobox_legislature/doc&amp;diff=4087"/>
		<updated>2019-07-26T02:04:22Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Infobox to be used in articles about a [[legislature]] as a whole, or any [[Chambers of parliament|chamber]] found within a [[unicameralism|unicameral]], [[bicameralism|bicameral]], [[tricameralism|tricameral]] or [[tetracameralism|tetracameral]] assembly.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
This is a template meant to be used in articles referring to legislatures (national, sub-national, federal, local, unicameral, bicameral, each of the chambers (if bicameral) or the whole body) that exist (currently function) or that don&amp;#039;t exist (defunct legislative, disbanded ones).&lt;br /&gt;
&lt;br /&gt;
===Syntax===&lt;br /&gt;
{{Generic template demo |_display=italics&lt;br /&gt;
 |name |native_name |native_name_lang |transcription_name |legislature |coa_pic=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;coa_pic&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |coa_res |coa_alt |coa_caption |logo_pic=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;logo_pic&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |logo_res |logo_alt |logo_caption |house_type=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;house_type&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |body=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;body&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |jurisdiction=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;jurisdiction&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |houses |term_limits |foundation |disbanded |preceded_by |succeeded_by |new_session |leader1_type |leader1 |party1 |election1 |leader2_type |leader2 |party2 |election2 |leader3_type |leader3 |party3 |election3 |leader4_type |leader4 |party4 |election4 |leader5_type |leader5 |party5 |election5 |leader6_type |leader6 |party6 |election6 |leader7_type |leader7 |party7 |election7 |seats |house1 |house2 |structure1=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;structure1&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |structure1_res=&amp;#039;&amp;#039;structure1_res&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; |structure1_alt |structure2=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;structure2&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |structure2_res=&amp;#039;&amp;#039;structure2_res&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; |structure2_alt |political_groups1 |political_groups2 |committees1 |committees2 |joint_committees |term_length |authority |salary |seats1_title |seats1 |seats2_title |seats2 |seats3_title |seats3 |seats4_title |seats4 |seats5_title |seats5 |seats6_title |seats6 |seats7_title |seats7 |seats8_title |seats8 |voting_system1 |voting_system2 |first_election1 |first_election2 |first_election3 |last_election1 |last_election2 |last_election3 |next_election1 |next_election2 |next_election3 |redistricting |motto |session_room=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;session_room&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |session_res=&amp;#039;&amp;#039;session_res&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; |session_alt |meeting_place |session_room2=&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;session_room2&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; |session_res2=&amp;#039;&amp;#039;session_res2&amp;#039;&amp;#039;&amp;lt;br /&amp;gt; |session_alt2 |meeting_place2 |website |constitution |footnotes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox legislature&lt;br /&gt;
| name               = &lt;br /&gt;
| native_name        = &lt;br /&gt;
| native_name_lang   = &lt;br /&gt;
| transcription_name = &lt;br /&gt;
| legislature        = &lt;br /&gt;
| coa_pic            = &lt;br /&gt;
| coa_res            = &lt;br /&gt;
| coa_alt            = &lt;br /&gt;
| coa_caption        = &lt;br /&gt;
| logo_pic           = &lt;br /&gt;
| logo_res           = &lt;br /&gt;
| logo_alt           = &lt;br /&gt;
| logo_caption       = &lt;br /&gt;
| house_type         = &lt;br /&gt;
| body               = &lt;br /&gt;
| jurisdiction       = &lt;br /&gt;
| houses             = &lt;br /&gt;
| term_limits        = &lt;br /&gt;
| foundation         = &amp;lt;!--{{Start date|YYYY|MM|DD}}--&amp;gt;&lt;br /&gt;
| disbanded          = &amp;lt;!--{{End date|YYYY|MM|DD}}--&amp;gt;&lt;br /&gt;
| preceded_by        = &lt;br /&gt;
| succeeded_by       = &lt;br /&gt;
| new_session        = &lt;br /&gt;
| leader1_type       = &lt;br /&gt;
| leader1            = &lt;br /&gt;
| party1             = &lt;br /&gt;
| election1          = &lt;br /&gt;
| leader2_type       = &lt;br /&gt;
| leader2            = &lt;br /&gt;
| party2             = &lt;br /&gt;
| election2          = &lt;br /&gt;
| leader3_type       = &lt;br /&gt;
| leader3            = &lt;br /&gt;
| party3             = &lt;br /&gt;
| election3          = &lt;br /&gt;
| leader4_type       = &lt;br /&gt;
| leader4            = &lt;br /&gt;
| party4             = &lt;br /&gt;
| election4          = &lt;br /&gt;
| leader5_type       = &lt;br /&gt;
| leader5            = &lt;br /&gt;
| party5             = &lt;br /&gt;
| election5          = &lt;br /&gt;
| leader6_type       = &lt;br /&gt;
| leader6            = &lt;br /&gt;
| party6             = &lt;br /&gt;
| election6          = &lt;br /&gt;
| leader7_type       = &lt;br /&gt;
| leader7            = &lt;br /&gt;
| party7             = &lt;br /&gt;
| election7          = &lt;br /&gt;
| seats              = &lt;br /&gt;
| house1             = &lt;br /&gt;
| house2             = &lt;br /&gt;
| structure1         = &lt;br /&gt;
| structure1_res     = &lt;br /&gt;
| structure1_alt     = &lt;br /&gt;
| structure2         = &lt;br /&gt;
| structure2_res     = &lt;br /&gt;
| structure2_alt     = &lt;br /&gt;
| political_groups1  = &lt;br /&gt;
| political_groups2  = &lt;br /&gt;
| committees1        = &lt;br /&gt;
| committees2        = &lt;br /&gt;
| joint_committees   = &lt;br /&gt;
| term_length        = &lt;br /&gt;
| authority          = &lt;br /&gt;
| salary             = &lt;br /&gt;
| seats1_title       = &lt;br /&gt;
| seats1             = &lt;br /&gt;
| seats2_title       = &lt;br /&gt;
| seats2             = &lt;br /&gt;
| seats3_title       = &lt;br /&gt;
| seats3             = &lt;br /&gt;
| seats4_title       = &lt;br /&gt;
| seats4             = &lt;br /&gt;
| seats5_title       = &lt;br /&gt;
| seats5             = &lt;br /&gt;
| seats6_title       = &lt;br /&gt;
| seats6             = &lt;br /&gt;
| seats7_title       = &lt;br /&gt;
| seats7             = &lt;br /&gt;
| seats8_title       = &lt;br /&gt;
| seats8             = &lt;br /&gt;
| voting_system1     = &lt;br /&gt;
| voting_system2     = &lt;br /&gt;
| first_election1    = &lt;br /&gt;
| first_election2    = &lt;br /&gt;
| first_election3    = &lt;br /&gt;
| last_election1     = &lt;br /&gt;
| last_election2     = &lt;br /&gt;
| last_election3     = &lt;br /&gt;
| next_election1     = &lt;br /&gt;
| next_election2     = &lt;br /&gt;
| next_election3     = &lt;br /&gt;
| redistricting      = &lt;br /&gt;
| motto              = &lt;br /&gt;
| session_room       = &lt;br /&gt;
| session_res        = &lt;br /&gt;
| session_alt        = &lt;br /&gt;
| meeting_place      = &lt;br /&gt;
| session_room2      = &lt;br /&gt;
| session_res2       = &lt;br /&gt;
| session_alt2       = &lt;br /&gt;
| meeting_place2     = &lt;br /&gt;
| website            = &amp;lt;!--{{URL|www.example.com}}--&amp;gt;&lt;br /&gt;
| constitution       =&lt;br /&gt;
| footnotes          = &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
=== Parameter descriptions ===&lt;br /&gt;
The parameters are:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; – the name of the Parliament/House (e.g. House of Commons (UK); Parliament of Romania)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;native_name&amp;#039;&amp;#039;&amp;#039; – the name of the Parliament/House in the native language; use {{tl|Plainlist}} for more than one native language (e.g. Parlamentul of României).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;native_name_lang&amp;#039;&amp;#039;&amp;#039; – the language of the native name; use [[List of ISO 639-2 codes|ISO 639-2 code]], e.g. &amp;quot;fr&amp;quot; for French; if there is more than one native name, in different languages, enter those names using {{tl|Lang}}, instead&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;transcription_name&amp;#039;&amp;#039;&amp;#039; – the name of the Parliament/House in transliteration from the native language alphabet (if different than Latin alphabet). Use {{Tld|plainlist}} for more than one native language&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;legislature&amp;#039;&amp;#039;&amp;#039; – the term of the ongoing session (e.g.: &amp;quot;40th Canadian Parliament&amp;quot;; &amp;quot;10th Legislature (of Las Cortes Generales)&amp;quot;)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;coa_pic&amp;#039;&amp;#039;&amp;#039; – image name for coat of arms (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;coa_res&amp;#039;&amp;#039;&amp;#039; – width in pixels for &amp;#039;&amp;#039;coa_pic&amp;#039;&amp;#039; image (Optional); defaults to 170px (about 75% of thumbnail size 220px but will vary if changed in [[Special:Preferences]]) due to use of &amp;#039;&amp;#039;upright&amp;#039;&amp;#039; in template (see {{section link|Wikipedia:Extended image syntax|Size}})&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;coa_alt&amp;#039;&amp;#039;&amp;#039; – [[WP:ALT|alternative text]] for &amp;#039;&amp;#039;coa_pic&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;coa_caption&amp;#039;&amp;#039;&amp;#039; – caption text to be display below &amp;#039;&amp;#039;coa_pic&amp;#039;&amp;#039; image (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;logo_pic&amp;#039;&amp;#039;&amp;#039; – image name for logo (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;logo_res&amp;#039;&amp;#039;&amp;#039; – width in pixels for &amp;#039;&amp;#039;logo_pic&amp;#039;&amp;#039; image (Optional); defaults to 170px (about 75% of thumbnail size 220px but will vary if changed in [[Special:Preferences]]) due to use of &amp;#039;&amp;#039;upright&amp;#039;&amp;#039; in template (see {{section link|Wikipedia:Extended image syntax|Size}})&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;logo_alt&amp;#039;&amp;#039;&amp;#039; – [[WP:ALT|alternative text]] for &amp;#039;&amp;#039;logo_pic&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;logo_caption&amp;#039;&amp;#039;&amp;#039; – caption text to be displayed below &amp;#039;&amp;#039;logo_pic&amp;#039;&amp;#039; image (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;house_type&amp;#039;&amp;#039;&amp;#039; – For houses, one of &amp;lt;code&amp;gt;upper house&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lower house&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;unicameral house&amp;lt;/code&amp;gt;; for leguslatures as a whole, one of &amp;lt;code&amp;gt;unicameral&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bicameral&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tricameral&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;tetracameral&amp;lt;/code&amp;gt;. The template will turn the input into a wikilink&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;body&amp;#039;&amp;#039;&amp;#039; – name of large legislative assembly if a chamber&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;jurisdiction&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;houses&amp;#039;&amp;#039;&amp;#039; – names of the houses that make up the assembly; if more than one, separate with &amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;term_limits&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;foundation&amp;#039;&amp;#039;&amp;#039; – date founded; use {{tl|Start date}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;disbanded&amp;#039;&amp;#039;&amp;#039; – date disbanded; use {{tl|End date}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;preceded_by&amp;#039;&amp;#039;&amp;#039; – preceding legislature&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;succeeded_by&amp;#039;&amp;#039;&amp;#039; – succeeding legislature&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;new_session&amp;#039;&amp;#039;&amp;#039; – date of the new session; use {{Tl|Start date}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader1_type&amp;#039;&amp;#039;&amp;#039; – title of a chamber leader (speaker, chairman, president, etc.)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader1&amp;#039;&amp;#039;&amp;#039; – leader of the chamber&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;party1&amp;#039;&amp;#039;&amp;#039; – political party of leader&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;election1&amp;#039;&amp;#039;&amp;#039; – date that leader was elected&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader2_type&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;[[idem]]&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader2 &amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;party2&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;election2&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader3_type&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader3&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;party3&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;election4&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader4_type&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader4&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;party4&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;election5&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader5_type&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader5&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;party5&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;election6&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader6_type&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader6&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;party6&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;election6&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader7_type&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;leader7&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;party7&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;election7&amp;#039;&amp;#039;&amp;#039; – &amp;#039;&amp;#039;idem&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats&amp;#039;&amp;#039;&amp;#039; – the (total) number of seats in the assembly; if more than one, separate with &amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;house1&amp;#039;&amp;#039;&amp;#039; – name of the upper/lower house&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;house2&amp;#039;&amp;#039;&amp;#039; – name of the lower/upper house&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;structure1&amp;#039;&amp;#039;&amp;#039; – image name for diagram of the political structure of &amp;#039;&amp;#039;house1&amp;#039;&amp;#039; (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;structure1_res&amp;#039;&amp;#039;&amp;#039; – width in pixels for &amp;#039;&amp;#039;structure1&amp;#039;&amp;#039; image (Optional); defaults to 120px due to a setting in template&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;structure1_alt&amp;#039;&amp;#039;&amp;#039; – [[WP:ALT|alternative text]] for &amp;#039;&amp;#039;structure1&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;structure2&amp;#039;&amp;#039;&amp;#039; – image name for diagram of the political structure of &amp;#039;&amp;#039;house2&amp;#039;&amp;#039; (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;structure2_res&amp;#039;&amp;#039;&amp;#039; – width in pixels for &amp;#039;&amp;#039;structure2&amp;#039;&amp;#039; image (Optional); defaults to 120px due to a setting in template&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;structure2_alt&amp;#039;&amp;#039;&amp;#039; – [[WP:ALT|alternative text]] for &amp;#039;&amp;#039;structure2&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;political_groups1&amp;#039;&amp;#039;&amp;#039; – list of the political parties/groups represented in &amp;#039;&amp;#039;house1&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;political_groups2&amp;#039;&amp;#039;&amp;#039; – list of the political parties/groups represented in &amp;#039;&amp;#039;house2&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;committees1&amp;#039;&amp;#039;&amp;#039; – list of the committees in &amp;#039;&amp;#039;house1&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;committees2&amp;#039;&amp;#039;&amp;#039; – list of the committees in &amp;#039;&amp;#039;house2&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;joint_committees&amp;#039;&amp;#039;&amp;#039; – list of the joint committees&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;term_length&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;authority&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;salary&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats1_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats1&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats2_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats2&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats3_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats3&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats4_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats4&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats5_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats5&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats6_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats6&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats7_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats7&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats8_title&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;seats8&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;voting_system1&amp;#039;&amp;#039;&amp;#039; – the voting system used for the &amp;#039;&amp;#039;house1&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;voting_system2&amp;#039;&amp;#039;&amp;#039; – the voting system used for the &amp;#039;&amp;#039;house2&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;first_election1&amp;#039;&amp;#039;&amp;#039; – the first election date for the &amp;#039;&amp;#039;house1&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;first_election2&amp;#039;&amp;#039;&amp;#039; – the first election date for the &amp;#039;&amp;#039;house2&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;first_election3&amp;#039;&amp;#039;&amp;#039; – the first general election date&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;last_election1&amp;#039;&amp;#039;&amp;#039; – the last election date for the &amp;#039;&amp;#039;house1&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;last_election2&amp;#039;&amp;#039;&amp;#039; – the last election date for the &amp;#039;&amp;#039;house2&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;last_election3&amp;#039;&amp;#039;&amp;#039; – the last general election date&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;next_election1&amp;#039;&amp;#039;&amp;#039; – the next election date for &amp;#039;&amp;#039;house1&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;next_election2&amp;#039;&amp;#039;&amp;#039; – the next election date for &amp;#039;&amp;#039;house2&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;next_election3&amp;#039;&amp;#039;&amp;#039; – the next general election date&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;redistricting&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;motto&amp;#039;&amp;#039;&amp;#039; – Motto&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;session_room&amp;#039;&amp;#039;&amp;#039; – image of the session room (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;session_res&amp;#039;&amp;#039;&amp;#039; – width in pixels for &amp;#039;&amp;#039;session_room&amp;#039;&amp;#039; image (Optional); defaults to 220px (but will vary if thumbnail size is changed in [[Special:Preferences]])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;session_alt&amp;#039;&amp;#039;&amp;#039; – [[WP:ALT|alternative text]] for &amp;#039;&amp;#039;session_room&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;meeting_place&amp;#039;&amp;#039;&amp;#039; – place where it meets: room, building, or city (e.g. Palatul Parlamentului, Bucureşti); displayed as caption below &amp;#039;&amp;#039;session_room&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;session_room2&amp;#039;&amp;#039;&amp;#039; – second image of the session room (Optional)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;session_res2&amp;#039;&amp;#039;&amp;#039; – width in pixels for &amp;#039;&amp;#039;session_room2&amp;#039;&amp;#039; image (Optional); defaults to 220px (but will vary if thumbnail size is changed in [[Special:Preferences]])&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;session_alt2&amp;#039;&amp;#039;&amp;#039; – [[WP:ALT|alternative text]] for &amp;#039;&amp;#039;session_room2&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;meeting_place2&amp;#039;&amp;#039;&amp;#039; – second place where it meets: room, building, or city; displayed as caption below &amp;#039;&amp;#039;session_room2&amp;#039;&amp;#039; image&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;website&amp;#039;&amp;#039;&amp;#039; – the assembly&amp;#039;s/house&amp;#039;s official website (Optional); use {{tl|URL}}&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;constitution&amp;#039;&amp;#039;&amp;#039; – &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;footnotes&amp;#039;&amp;#039;&amp;#039; – any necessary footnotes (Optional)&lt;br /&gt;
&lt;br /&gt;
== Microformat ==&lt;br /&gt;
{{UF-hcard-org}}&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#ifeq:{{SUBPAGENAME}}|sandbox | |&lt;br /&gt;
[[Category:Politics and government infobox templates|Legislature]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.eternityrpc.com/index.php?title=Template:Infobox_legislature&amp;diff=4085</id>
		<title>Template:Infobox legislature</title>
		<link rel="alternate" type="text/html" href="http://wiki.eternityrpc.com/index.php?title=Template:Infobox_legislature&amp;diff=4085"/>
		<updated>2019-07-26T02:04:05Z</updated>

		<summary type="html">&lt;p&gt;Ayzek: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox &lt;br /&gt;
| bodyclass   = vcard&lt;br /&gt;
| abovestyle  = {{#if:{{{background_color|}}}|border-top: 2px solid {{{background_color}}}; border-bottom: 2px solid {{{background_color}}}|background-color: #ededed}}&lt;br /&gt;
| above       = &amp;lt;includeonly&amp;gt;&amp;lt;div style=&amp;quot;display:inline&amp;quot; class=&amp;quot;fn org&amp;quot;&amp;gt;{{{name}}}&amp;lt;/div&amp;gt; {{#if:{{{native_name|}}}|&amp;lt;br /&amp;gt;&amp;lt;div style=&amp;quot;display:inline&amp;quot; class=&amp;quot;nickname&amp;quot; {{#if:{{{native_name_lang|}}}|lang=&amp;quot;{{{native_name_lang}}}&amp;quot; xml:lang=&amp;quot;{{{native_name_lang}}}&amp;quot;}}&amp;gt;{{{native_name}}}&amp;lt;/div&amp;gt;{{#if:{{{transcription_name|}}}|&amp;lt;br /&amp;gt;&amp;lt;div style=&amp;quot;display:inline&amp;quot; class=&amp;quot;nickname&amp;quot;&amp;gt;{{{transcription_name}}}&amp;lt;/div&amp;gt;}}}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| subheader   = {{{legislature|}}}&lt;br /&gt;
| image       = {{#invoke:InfoboxImage|InfoboxImage |image={{{coa_pic|{{{coa-pic|}}}}}} |size={{{coa_res|{{{coa-res|}}}}}} |sizedefault=frameless |upright=yes |alt={{{coa_alt|{{{coa-alt|Coat of arms or logo}}}}}} }}&lt;br /&gt;
| caption     = {{{coa_caption|}}}&lt;br /&gt;
| image2      = {{#invoke:InfoboxImage |InfoboxImage |image={{{logo|{{{logo_pic|{{{logo-pic|}}}}}}}}} |size={{{logo_res|{{{logo-res|}}}}}} |sizedefault=frameless |upright=yes |alt={{{logo_alt|{{{logo-alt|Logo}}}}}} }}&lt;br /&gt;
| caption2    = {{{logo_caption|}}}&lt;br /&gt;
| headerstyle = {{#if:{{{background_color|}}}|border-top: 2px solid {{{background_color}}}; border-bottom: 2px solid {{{background_color}}}|background-color: #ededed}}&lt;br /&gt;
| labelstyle  = {{{labelstyle|}}}&lt;br /&gt;
&lt;br /&gt;
| header1     = {{#if:{{{house_type|}}}{{{houses|}}}{{{term_limits|}}}|Type}}&lt;br /&gt;
| label2      = Type&lt;br /&gt;
| data2       = {{#if:{{{house_type|}}} |&amp;lt;div style=&amp;quot;padding:0.1em 0;line-height:1.3em;&amp;lt;!--(modified longitem)--&amp;gt;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;display:inline&amp;quot; class=&amp;quot;category&amp;quot;&amp;gt;{{#ifexist:{{{house_type}}}|[[{{{house_type}}}]]|{{{house_type}}}}}&amp;lt;/div&amp;gt; {{#if:{{{body|}}} |of the [[{{{body}}}]]}} {{#if:{{{jurisdiction|}}} |of [[{{{jurisdiction}}}]]}}&amp;lt;/div&amp;gt;}}&lt;br /&gt;
| label3      = {{#if:{{{houses|}}}|Houses|Chambers}}&lt;br /&gt;
| data3       = {{#if:{{{houses|}}}|{{{houses}}}|{{{chambers|}}}}}&lt;br /&gt;
| label4      = {{longitem|Term limits}}&lt;br /&gt;
| data4       = {{{term_limits|}}}&lt;br /&gt;
&lt;br /&gt;
| header5     = {{#if:{{{foundation|}}}{{{disbanded|}}}{{{preceded_by|}}}{{{succeeded_by|}}}{{{new_session|}}}|History}}&lt;br /&gt;
| label6      = {{#if:{{{foundation|}}}|Founded|Established}}&lt;br /&gt;
| data6       = {{#if:{{{foundation|}}}|{{{foundation}}}|{{{established|}}}}}&lt;br /&gt;
| label7      = Disbanded&lt;br /&gt;
| data7       = {{{disbanded|}}}&lt;br /&gt;
| label8      = Preceded&amp;amp;nbsp;by&lt;br /&gt;
| data8       = {{{preceded_by|}}}&lt;br /&gt;
| label9      = Succeeded&amp;amp;nbsp;by&lt;br /&gt;
| data9       = {{{succeeded_by|}}}&lt;br /&gt;
| label10     = {{longitem|New session started}}&lt;br /&gt;
| data10      = {{{new_session|}}}&lt;br /&gt;
&lt;br /&gt;
| header14    = {{#if:{{{leader1|}}}{{{leader2|}}}{{{leader3|}}}{{{leader4|}}}{{{leader5|}}}{{{leader6|}}}{{{leader7|}}}{{{leader8|}}}|Leadership}}&lt;br /&gt;
| label15     = {{longitem|{{{leader1_type|}}}}}&lt;br /&gt;
| data15      = {{#if:{{{leader1|}}} |{{longitem|style=line-height:1.3em|{{{leader1|}}}{{#if:{{{party1|}}}|{{#ifeq:{{Str index|{{{party1|}}}|1}}|(||,}}&amp;amp;#32;{{{party1|}}}}} {{#if:{{{election1|}}}|&amp;lt;br/&amp;gt;since {{{election1|}}}|{{#if:{{{leader1_term|}}}|&amp;lt;br/&amp;gt;{{{leader1_term}}}}} }} }} }}&lt;br /&gt;
| label16     = {{longitem|style=line-height:1.3em|{{{leader2_type|}}}}}&lt;br /&gt;
| data16      = {{#if:{{{leader2|}}} |{{longitem|style=line-height:1.3em|{{{leader2|}}}{{#if:{{{party2|}}}|{{#ifeq:{{Str index|{{{party2|}}}|1}}|(||,}}&amp;amp;#32;{{{party2|}}}}} {{#if:{{{election2|}}}|&amp;lt;br/&amp;gt;since {{{election2|}}}|{{#if:{{{leader2_term|}}}|&amp;lt;br/&amp;gt;{{{leader2_term}}}}} }} }} }}&lt;br /&gt;
| label17     = {{longitem|style=line-height:1.3em|{{{leader3_type|}}}}}&lt;br /&gt;
| data17      = {{#if:{{{leader3|}}} |{{longitem|style=line-height:1.3em|{{{leader3|}}}{{#if:{{{party3|}}}|{{#ifeq:{{Str index|{{{party3|}}}|1}}|(||,}}&amp;amp;#32;{{{party3|}}}}} {{#if:{{{election3|}}}|&amp;lt;br/&amp;gt;since {{{election3|}}}|{{#if:{{{leader3_term|}}}|&amp;lt;br/&amp;gt;{{{leader3_term}}}}} }} }} }}&lt;br /&gt;
| label18     = {{longitem|style=line-height:1.3em|{{{leader4_type|}}}}}&lt;br /&gt;
| data18      = {{#if:{{{leader4|}}} |{{longitem|style=line-height:1.3em|{{{leader4|}}}{{#if:{{{party4|}}}|{{#ifeq:{{Str index|{{{party4|}}}|1}}|(||,}}&amp;amp;#32;{{{party4|}}}}} {{#if:{{{election4|}}}|&amp;lt;br/&amp;gt;since {{{election4|}}}|{{#if:{{{leader4_term|}}}|&amp;lt;br/&amp;gt;{{{leader4_term}}}}} }} }} }}&lt;br /&gt;
| label19     = {{longitem|style=line-height:1.3em|{{{leader5_type|}}}}}&lt;br /&gt;
| data19      = {{#if:{{{leader5|}}} |{{longitem|style=line-height:1.3em|{{{leader5|}}}{{#if:{{{party5|}}}|{{#ifeq:{{Str index|{{{party5|}}}|1}}|(||,}}&amp;amp;#32;{{{party5|}}}}} {{#if:{{{election5|}}}|&amp;lt;br/&amp;gt;since {{{election5|}}}|{{#if:{{{leader5_term|}}}|&amp;lt;br/&amp;gt;{{{leader5_term}}}}} }} }} }}&lt;br /&gt;
| label20     = {{longitem|style=line-height:1.3em|{{{leader6_type|}}}}}&lt;br /&gt;
| data20      = {{#if:{{{leader6|}}} |{{longitem|style=line-height:1.3em|{{{leader6|}}}{{#if:{{{party6|}}}|{{#ifeq:{{Str index|{{{party6|}}}|1}}|(||,}}&amp;amp;#32;{{{party6|}}}}} {{#if:{{{election6|}}}|&amp;lt;br/&amp;gt;since {{{election6|}}}|{{#if:{{{leader6_term|}}}|&amp;lt;br/&amp;gt;{{{leader6_term}}}}} }} }} }}&lt;br /&gt;
| label21     = {{longitem|style=line-height:1.3em|{{{leader7_type|}}}}}&lt;br /&gt;
| data21      = {{#if:{{{leader7|}}} |{{longitem|style=line-height:1.3em|{{{leader7|}}}{{#if:{{{party7|}}}|{{#ifeq:{{Str index|{{{party7|}}}|1}}|(||,}}&amp;amp;#32;{{{party7|}}}}} {{#if:{{{election7|}}}|&amp;lt;br/&amp;gt;since {{{election7|}}}|{{#if:{{{leader7_term|}}}|&amp;lt;br/&amp;gt;{{{leader7_term}}}}} }} }} }}&lt;br /&gt;
| label22     = {{longitem|style=line-height:1.3em|{{{leader8_type|}}}}}&lt;br /&gt;
| data22      = {{#if:{{{leader8|}}} |{{longitem|style=line-height:1.3em|{{{leader8|}}}{{#if:{{{party8|}}}|{{#ifeq:{{Str index|{{{party8|}}}|1}}|(||,}}&amp;amp;#32;{{{party8|}}}}} {{#if:{{{election8|}}}|&amp;lt;br/&amp;gt;since {{{election8|}}}|{{#if:{{{leader8_term|}}}|&amp;lt;br/&amp;gt;{{{leader8_term}}}}} }} }} }}&lt;br /&gt;
&lt;br /&gt;
| header23    = {{#if:{{{structure1|}}}{{{political_groups1|}}}{{{structure3|}}}{{{political_groups3|}}}{{{committees1|}}}{{{committees2|}}}{{{joint_committees|}}}{{{term_length|}}}{{{authority|}}}{{{salary|}}} {{{seats1|}}}{{{seats2|}}}{{{seats3|}}}{{{seats4|}}}{{{seats5|}}}{{{seats6|}}}{{{seats7|}}}{{{seats8|}}}|Structure}}&lt;br /&gt;
| label24     = Seats&lt;br /&gt;
| data24      = {{#if:{{{members|}}}|{{{members}}}|{{{seats|}}}}}&lt;br /&gt;
| data25      = {{#invoke:InfoboxImage|InfoboxImage|image={{{structure1|}}}|size={{{structure1_res|}}}|sizedefault=120px|alt={{{structure1_alt|}}}}}&lt;br /&gt;
| label26     = {{longitem|{{#if:{{{house1|}}}|{{{house1}}} political groups|Political groups}}}}&lt;br /&gt;
| data26      = {{{political_groups1|}}}&lt;br /&gt;
| data27      = {{#invoke:InfoboxImage|InfoboxImage|image={{{structure2|}}}|size={{{structure2_res|}}}|sizedefault=120px|alt={{{structure2_alt|}}}}}&lt;br /&gt;
| label28     = {{longitem|{{#if:{{{house2|}}}|{{{house2}}} political groups|Political groups}}}}&lt;br /&gt;
| data28      = {{{political_groups2|}}}&lt;br /&gt;
| label29     = {{#if:{{{house1|}}}|{{{house1}}} committees|Committees}}&lt;br /&gt;
| data29      = {{{committees1|}}}&lt;br /&gt;
| label30     = {{#if:{{{house2|}}}|{{{house2}}} committees|Committees}}&lt;br /&gt;
| data30      = {{{committees2|}}}&lt;br /&gt;
| label31     = {{longitem|Joint committees}}&lt;br /&gt;
| data31      = {{{joint_committees|}}}&lt;br /&gt;
| label32     = {{longitem|Length of term}}&lt;br /&gt;
| data32      = {{{term_length|}}}&lt;br /&gt;
| label33     = Authority&lt;br /&gt;
| data33      = {{{authority|}}}&lt;br /&gt;
| label34     = Salary&lt;br /&gt;
| data34      = {{{salary|}}}&lt;br /&gt;
&lt;br /&gt;
| label35     = {{longitem|{{{seats1_title|}}}}}&lt;br /&gt;
| data35      = {{{seats1|}}}&lt;br /&gt;
| label36     = {{longitem|{{{seats2_title|}}}}}&lt;br /&gt;
| data36      = {{{seats2|}}}&lt;br /&gt;
| label37     = {{longitem|{{{seats3_title|}}}}}&lt;br /&gt;
| data37      = {{{seats3|}}}&lt;br /&gt;
| label38     = {{longitem|{{{seats4_title|}}}}}&lt;br /&gt;
| data38      = {{{seats4|}}}&lt;br /&gt;
| label39     = {{longitem|{{{seats5_title|}}}}}&lt;br /&gt;
| data39      = {{{seats5|}}}&lt;br /&gt;
| label40     = {{longitem|{{{seats6_title|}}}}}&lt;br /&gt;
| data40      = {{{seats6|}}}&lt;br /&gt;
| label41     = {{longitem|{{{seats7_title|}}}}}&lt;br /&gt;
| data41      = {{{seats7|}}}&lt;br /&gt;
| label42     = {{longitem|{{{seats8_title|}}}}}&lt;br /&gt;
| data42      = {{{seats8|}}}&lt;br /&gt;
&lt;br /&gt;
| header43    = {{#if:{{{voting_system1|}}}{{{voting_system2|}}}{{{first_election1|}}}{{{first_election2|}}}{{{first_election3|}}}{{{last_election1|}}}{{{last_election2|}}}{{{last_election3|}}}{{{next_election1|}}}{{{next_election2|}}}{{{next_election3|}}}{{{redistricting|}}}|Elections}}&lt;br /&gt;
| label44     = {{longitem|{{#if:{{{house1|}}}|{{{house1}}} [[electoral system|voting system]]|[[electoral system|Voting system]]}}}}&lt;br /&gt;
| data44      = {{{voting_system1|}}}&lt;br /&gt;
| label45     = {{longitem|{{#if:{{{house2|}}}|{{{house2}}} [[electoral system|voting system]]|[[electoral system|Voting system]]}}}}&lt;br /&gt;
| data45      = {{{voting_system2|}}}&lt;br /&gt;
&lt;br /&gt;
| label46     = {{longitem|{{#if:{{{house1|}}}|{{{house1}}} first election|First election}}}}&lt;br /&gt;
| data46      = {{{first_election1|}}}&lt;br /&gt;
| label47     = {{longitem|{{#if:{{{house2|}}}|{{{house2}}} first election|First election}}}}&lt;br /&gt;
| data47      = {{{first_election2|}}}&lt;br /&gt;
| label48     = {{longitem|First general election}}&lt;br /&gt;
| data48      = {{{first_election3|}}}&lt;br /&gt;
&lt;br /&gt;
| label49     = {{longitem|{{#if:{{{house1|}}}|{{{house1}}} last election|Last election}}}}&lt;br /&gt;
| data49      = {{{last_election1|}}}&lt;br /&gt;
| label50     = {{longitem|{{#if:{{{house2|}}}|{{{house2}}} last election|Last election}}}}&lt;br /&gt;
| data50      = {{{last_election2|}}}&lt;br /&gt;
| label51     = {{longitem|Last general election}}&lt;br /&gt;
| data51      = {{{last_election3|}}}&lt;br /&gt;
| label52     = {{longitem|{{#if:{{{house1|}}}|{{{house1}}} next election|Next election}}}}&lt;br /&gt;
| data52      = {{{next_election1|}}}&lt;br /&gt;
| label53     = {{longitem|{{#if:{{{house2|}}}|{{{house2}}} next election|Next election}}}}&lt;br /&gt;
| data53      = {{{next_election2|}}}&lt;br /&gt;
| label54     = {{longitem|Next general election}}&lt;br /&gt;
| data54      = {{{next_election3|}}}&lt;br /&gt;
| label55     = Redistricting&lt;br /&gt;
| data55      = {{{redistricting|}}}&lt;br /&gt;
&lt;br /&gt;
| header56    = {{#if:{{{motto|}}}|Motto}}&lt;br /&gt;
| data57      = {{{motto|}}}&lt;br /&gt;
&lt;br /&gt;
| header58    = {{#if:{{{session_room|}}}{{{meeting_place|}}}|Meeting place}}&lt;br /&gt;
| data59      = {{#invoke:InfoboxImage|InfoboxImage|image={{{session_room|}}}|size={{{session_res|}}}|alt={{{session_alt|}}}}}&lt;br /&gt;
| data60      = {{{meeting_place|}}}&lt;br /&gt;
| class60     = label&lt;br /&gt;
&lt;br /&gt;
| data61      = {{#invoke:InfoboxImage|InfoboxImage|image={{{session_room2|}}}|size={{{session_res2|}}}|alt={{{session_alt2|}}}}}&lt;br /&gt;
| data62      = {{{meeting_place2|}}}&lt;br /&gt;
| class62     = label&lt;br /&gt;
&lt;br /&gt;
| data63      = {{#invoke:InfoboxImage|InfoboxImage|image={{{session_room3|}}}|size={{{session_res3|}}}|alt={{{session_alt3|}}}}}&lt;br /&gt;
| data64      = {{{meeting_place3|}}}&lt;br /&gt;
| class64     = label&lt;br /&gt;
&lt;br /&gt;
| header65    = {{#if:{{{website|}}}|Website}}&lt;br /&gt;
| data66      = {{{website|}}}&lt;br /&gt;
&lt;br /&gt;
| header67    = {{#if:{{{constitution|}}}|Constitution}}&lt;br /&gt;
| data68      = {{{constitution|}}}&lt;br /&gt;
&lt;br /&gt;
| header69    = {{#if:{{{footnotes|}}}|Footnotes}}&lt;br /&gt;
| data70      = {{{footnotes|}}}&lt;br /&gt;
&lt;br /&gt;
}}{{ns0|{{#if:{{{background_color|}}}{{{text_color|}}}|[[Category:Infobox legislature with background color]]}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ayzek</name></author>
		
	</entry>
</feed>