<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vexillomancy.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>Alch3my - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vexillomancy.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/wiki/Special:Contributions/Admin"/>
	<updated>2026-09-20T11:47:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.6</generator>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:Warning&amp;diff=996</id>
		<title>Template:Warning</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:Warning&amp;diff=996"/>
		<updated>2026-08-14T14:53:08Z</updated>

		<summary type="html">&lt;p&gt;Admin: Remove stray Template:If test output from Warning&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;messagebox standard-talk&amp;quot; style=&amp;quot;direction:{{dir|{{{lang}}}}}; border: 1px solid var(--border-color-error--hover,#CC9999); background-color: var(--background-color-error-subtle,#FFCCCC);color: inherit;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|[[File:Dialog-stop-hand.svg|50px|link=|Warning]]&lt;br /&gt;
|align=&amp;quot;left&amp;quot; width=&amp;quot;100%&amp;quot;|{{#if:{{{title|}}}|&amp;lt;h3&amp;gt;{{{title|}}}&amp;lt;/h3&amp;gt;&amp;lt;hr /&amp;gt;|}} {{{2|{{{1}}}}}}&lt;br /&gt;
|}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Alch3my:Wikipedia_template_compatibility_test&amp;diff=995</id>
		<title>Alch3my:Wikipedia template compatibility test</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Alch3my:Wikipedia_template_compatibility_test&amp;diff=995"/>
		<updated>2026-08-14T14:52:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: Keep Phase 1 fixture within portable compatibility boundary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
This page is the live Phase 1 compatibility fixture for the curated portable Wikipedia template profile.&lt;br /&gt;
&lt;br /&gt;
== Parser functions and Lua ==&lt;br /&gt;
* ParserFunctions: {{#expr: 40 + 2}} / {{#if:yes|conditional works|conditional failed}}&lt;br /&gt;
* Scribunto-backed infobox:&lt;br /&gt;
{{Infobox|title=Compatibility fixture|label1=Expected value|data1=42}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Styled templates ==&lt;br /&gt;
{{Hatnote|This hatnote must be italic and must not display a raw TemplateStyles tag.}}&lt;br /&gt;
{{Sidebar|name=Sidebar|title=Sidebar fixture|content1=Rendered content}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Warning|This warning is a rendering fixture.}}&lt;br /&gt;
&lt;br /&gt;
== Citation ==&lt;br /&gt;
This sentence exercises Cite.&amp;lt;ref&amp;gt;Phase 1 local compatibility fixture.&amp;lt;/ref&amp;gt;&lt;br /&gt;
{{Citation needed|date=August 2026}}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:P1&amp;diff=994</id>
		<title>Template:P1</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:P1&amp;diff=994"/>
		<updated>2026-08-14T14:51:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from www.mediawiki.org oldid 3802349; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{1}}}&amp;lt;noinclude&amp;gt;{{doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Module:Linguistic&amp;diff=993</id>
		<title>Module:Linguistic</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Module:Linguistic&amp;diff=993"/>
		<updated>2026-08-14T14:51:03Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from commons.wikimedia.org oldid 699186803; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
  __  __           _       _        _     _                   _     _   _      &lt;br /&gt;
 |  \/  | ___   __| |_   _| | ___ _| |   (_)_ __   __ _ _   _(_)___| |_(_) ___ &lt;br /&gt;
 | |\/| |/ _ \ / _` | | | | |/ _ (_) |   | | &#039;_ \ / _` | | | | / __| __| |/ __|&lt;br /&gt;
 | |  | | (_) | (_| | |_| | |  __/_| |___| | | | | (_| | |_| | \__ \ |_| | (__ &lt;br /&gt;
 |_|  |_|\___/ \__,_|\__,_|_|\___(_)_____|_|_| |_|\__, |\__,_|_|___/\__|_|\___|&lt;br /&gt;
                                                  |___/                        &lt;br /&gt;
Simple internationalization functions that can be called by other modules.&lt;br /&gt;
This Module was copied from Wikimedia Commons, so please request changes there.&lt;br /&gt;
&lt;br /&gt;
Maintainers:&lt;br /&gt;
* Zolo - original version&lt;br /&gt;
* Jarekt&lt;br /&gt;
&lt;br /&gt;
Dependencies:&lt;br /&gt;
- Module uses c:data:I18n/Or.tab&lt;br /&gt;
]]&lt;br /&gt;
require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
-- ==================================================&lt;br /&gt;
-- === Internal functions ===========================&lt;br /&gt;
-- ==================================================&lt;br /&gt;
&lt;br /&gt;
local function langSwitch(list,lang)&lt;br /&gt;
	local langList = mw.language.getFallbacksFor(lang)&lt;br /&gt;
	table.insert(langList,1,lang)&lt;br /&gt;
	for i,language in ipairs(langList) do&lt;br /&gt;
		if list[language] then&lt;br /&gt;
			return list[language]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
-- read Commons Data:SOMENAME.tab dataset and look for message identified by a &lt;br /&gt;
-- &amp;quot;key&amp;quot; in a language &amp;quot;lang&amp;quot;. See editAtWikidata as an example.&lt;br /&gt;
local function formatMessage(dataset, key, lang)&lt;br /&gt;
	for _, row in pairs(mw.ext.data.get(dataset, lang).data) do&lt;br /&gt;
		local id, msg = unpack(row)&lt;br /&gt;
		if id == key then&lt;br /&gt;
			return mw.message.newRawMessage(msg):plain()&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	error(&#039;Invalid message key &amp;quot;&#039; .. key .. &#039;&amp;quot;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
local function nowiki(str) -- remove all the links&lt;br /&gt;
	if not str then&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;&amp;lt;[^&amp;gt;]*&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)    -- remove all html tags from str&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;&#039;&#039;&#039;&amp;quot;, &amp;quot;&amp;quot;)        -- remove bold &lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;&#039;&#039;&amp;quot;, &amp;quot;&amp;quot;)         -- remove italics&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;%[%[[Ff]ile:[^%]]+%]%]&amp;quot;, &amp;quot;&amp;quot;) -- remove file icons&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;%[%[[^|]*|&amp;quot;, &amp;quot;&amp;quot;) -- remove piped links, like &amp;quot;[[:en:test|&amp;quot;&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;%[[^ ]+ &amp;quot;, &amp;quot;&amp;quot;)   -- remove URL links, like &amp;quot;[https://www.wikidata.org/wiki/Q2706250 &amp;quot;&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;%[%[&amp;quot;, &amp;quot;&amp;quot; )      -- remove piped links, like &amp;quot;[[&amp;quot;&lt;br /&gt;
	str = mw.ustring.gsub(str, &amp;quot;%]&amp;quot;, &amp;quot;&amp;quot; )        -- remove piped links, like &amp;quot;]&amp;quot; or &amp;quot;]]&amp;quot;&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------&lt;br /&gt;
-- Function allowing for consistent treatment of boolean-like wikitext input.&lt;br /&gt;
-- It works similarly to Module:Yesno&lt;br /&gt;
local function yesno(val, default)&lt;br /&gt;
	if type(val) == &#039;boolean&#039; then&lt;br /&gt;
		return val&lt;br /&gt;
	elseif type(val) == &#039;number&#039; then&lt;br /&gt;
		if val==1 then &lt;br /&gt;
			return true&lt;br /&gt;
		elseif val==0 then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	elseif type(val) == &#039;string&#039; then&lt;br /&gt;
	    val = mw.ustring.lower(val)  -- put in lower case&lt;br /&gt;
	    if val == &#039;no&#039;  or val == &#039;n&#039; or val == &#039;false&#039; or val == &#039;0&#039; then&lt;br /&gt;
	        return false&lt;br /&gt;
	    elseif val == &#039;yes&#039; or val == &#039;y&#039; or val == &#039;true&#039;  or val == &#039;1&#039; then&lt;br /&gt;
	        return true&lt;br /&gt;
	    end&lt;br /&gt;
    end&lt;br /&gt;
    return default&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- ==================================================&lt;br /&gt;
-- === External functions ===========================&lt;br /&gt;
-- ==================================================&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- ===========================================================================&lt;br /&gt;
-- === Version of the function to be called from other LUA codes&lt;br /&gt;
-- ===========================================================================&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
function p.vowelfirst (str)&lt;br /&gt;
	if str then &lt;br /&gt;
		local vowels = &#039;aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭï&#039;..&lt;br /&gt;
			&#039;ḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ&#039;&lt;br /&gt;
		str = mw.ustring.lower(mw.ustring.sub(str,1,1))&lt;br /&gt;
		return mw.ustring.find(vowels, str, 1, true ) &lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
function p.inparentheses(str)&lt;br /&gt;
	if (not str) or (str == &amp;quot;&amp;quot;) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local str2 = mw.message.new(&#039;parentheses&#039;, str):inLanguage(lang):plain()&lt;br /&gt;
	return (str2~=nil and str2) or (&#039;(&#039;..str..&#039;)&#039;) -- in case this module is moved to a project where {{int:parenthesis}} is not set&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
function p.of(word, lang, raw, gender, number, determiner) -- rough translation of &amp;quot;of&amp;quot; in various languages&lt;br /&gt;
-- note that the cases when on &amp;quot;of&amp;quot; is employed varies a lot among languages, so it is more prudent to call this from lang specific function only&lt;br /&gt;
	if not raw or mw.text.trim(raw) == &amp;quot;&amp;quot; then &lt;br /&gt;
		raw = mw.ustring.lower(nowiki(word))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- raw is the string without the Wikiformatting so that it correctly analyses the string that is [[:fr:Italie|Italie]] -&amp;gt; &#039;italie&#039;&lt;br /&gt;
	-- any way to automate this ?&lt;br /&gt;
	&lt;br /&gt;
	if lang == &#039;fr&#039; then &lt;br /&gt;
		determiner = yesno(determiner,false)&lt;br /&gt;
&lt;br /&gt;
		if determiner then&lt;br /&gt;
			if string.sub(number or &#039;&#039;,1,1)==&#039;p&#039; then -- number == &#039;plural&#039;&lt;br /&gt;
				return &#039;des&amp;amp;#32;&#039; .. word&lt;br /&gt;
			elseif p.vowelfirst(raw) then&lt;br /&gt;
				return &#039;de l’&#039; .. word&lt;br /&gt;
			elseif string.sub(gender or &#039;&#039;,1,1)==&#039;f&#039; then -- gender == &#039;feminine&#039;&lt;br /&gt;
				return &#039;de la&amp;amp;#32;&#039; .. word&lt;br /&gt;
			else&lt;br /&gt;
				return &#039;du&amp;amp;#32;&#039; .. word&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if p.vowelfirst(raw) then&lt;br /&gt;
				return &#039;d’&#039; .. word&lt;br /&gt;
			else&lt;br /&gt;
				return &#039;de&amp;amp;#32;&#039; .. word&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif lang == &#039;ca&#039; then&lt;br /&gt;
		-- implement [[Template:Of/ca]] or  https://ca.wikipedia.org/wiki/Plantilla:Deod%27/base for case where &amp;quot;{{{context}}}&amp;quot; is &amp;quot;en&amp;quot; (default on Commons)&lt;br /&gt;
		if ( p.vowelfirst(raw) and not mw.ustring.find( &#039;ia|ià|ie|io|iu|ua|ue|ui|uí|uï|uo|ya|ye|yi|yo|yu|&#039;, mw.ustring.sub(raw,1,2) .. &#039;|&#039;)) then&lt;br /&gt;
			return &#039;d\&#039;&#039; .. word&lt;br /&gt;
		else&lt;br /&gt;
			return &#039;de &#039; .. word&lt;br /&gt;
		end&lt;br /&gt;
	end	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
function p.noungroup(noun, adj, lang)&lt;br /&gt;
	if not noun or noun == &#039;&#039; then &lt;br /&gt;
		return nil -- not &#039;&#039; so that it is not counted as a string by mw.listToText&lt;br /&gt;
	end&lt;br /&gt;
	if not adj or adj == &#039;&#039;&lt;br /&gt;
		then return noun&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local wordsep = mw.message.new( &amp;quot;Word-separator&amp;quot; ):inLanguage(lang):plain()&lt;br /&gt;
	-- Assign order of words per language: 1 means adjective before the noun and 2 means adjective after the noun&lt;br /&gt;
	-- original source for many: language subpages of [[Template:Technique]]&lt;br /&gt;
	-- corrections to that using https://wals.info/feature/87A, still different:&lt;br /&gt;
	-- * vi: WALS says 2&lt;br /&gt;
	-- * gl isn&#039;t consistent in [[Template:Technique/gl]], but seems to be 2&lt;br /&gt;
	local LUT = {ar=2, ca=2, cs=1, da=1, de=1, el=1, en=1, es=2, et=1, fi=1, fr=2, &lt;br /&gt;
		gl=2, he=2, hu=1, it=2, ja=1, la=2, mk=1, nds=1, nb=1, nl=1, no=1, pl=1, pt=2, &lt;br /&gt;
		ro=2, ru=1, scn=2, sk=1, sl=1, sr=1, sv=1, sw=1, tr=1, vec=1, vi=1, zh=1}&lt;br /&gt;
	local primaryLangSubtag = mw.text.split(lang, &#039;-&#039;, true)[1]&lt;br /&gt;
	local case = LUT[lang] or LUT[primaryLangSubtag]&lt;br /&gt;
	if case==1 then     -- adjective before the noun&lt;br /&gt;
		return adj .. wordsep .. noun&lt;br /&gt;
	elseif case==2 then -- adjective after the noun&lt;br /&gt;
		return noun .. wordsep .. adj&lt;br /&gt;
	else                -- order unknown&lt;br /&gt;
		return noun .. &#039; (&#039; .. adj .. &#039;)&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
function p.conj(args, lang, conjtype)&lt;br /&gt;
	local comma    = mw.message.new( &amp;quot;comma-separator&amp;quot;):inLanguage(lang):plain()&lt;br /&gt;
	local wordsep  = mw.message.new( &amp;quot;Word-separator&amp;quot; ):inLanguage(lang):plain()&lt;br /&gt;
	local andtable = { ar=&#039; و&#039;, he=&#039; ו&#039;, ja=&#039;および&#039;, pl=&#039; i &#039;} -- languages with a problem with the MediaWiki:And&lt;br /&gt;
	local sep1, sep2 = comma, nil&lt;br /&gt;
	if conjtype == &#039;comma&#039; then&lt;br /&gt;
		sep2 = comma&lt;br /&gt;
	elseif conjtype == &#039;or&#039; or conjtype == &#039;explicit or&#039; then &lt;br /&gt;
		local wordor = formatMessage(&#039;I18n/Or.tab&#039;, &#039;or&#039;, lang) -- get translated &amp;quot;or&amp;quot;&lt;br /&gt;
		sep2 = wordsep .. wordor  .. wordsep -- pad it with spaces (if needed)&lt;br /&gt;
		sep1 = (conjtype == &#039;explicit or&#039; and sep2) or comma -- adds &amp;quot;or&amp;quot; betwen all words when the context can be confusing&lt;br /&gt;
	elseif conjtype and conjtype ~= &#039;and&#039; and conjtype ~= &#039;&#039; then&lt;br /&gt;
		sep1, sep2 = conjtype, conjtype&lt;br /&gt;
	elseif andtable[lang] then &lt;br /&gt;
		sep2 = andtable[lang]&lt;br /&gt;
	else&lt;br /&gt;
		sep2 = mw.message.new( &amp;quot;and&amp;quot; ):inLanguage(lang):plain() .. wordsep&lt;br /&gt;
	end&lt;br /&gt;
	return mw.text.listToText(args, sep1, sep2)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- ===========================================================================&lt;br /&gt;
-- === Version of the functions to be called from template namespace&lt;br /&gt;
-- ===========================================================================&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
function p.offromwiki(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	return p.of(args.word, args.lang, args.raw, args.gender, args.number, args.determiner)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------&lt;br /&gt;
function p.conjfromWiki(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	if not args or not args[1] then&lt;br /&gt;
		args = frame:getParent().args&lt;br /&gt;
	end&lt;br /&gt;
	local lang = args.lang&lt;br /&gt;
	if not lang or mw.text.trim(lang) == &#039;&#039; then&lt;br /&gt;
		lang = frame:callParserFunction( &amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
	local newargs = {}  -- transform args metatable into a table so it can be concetenated&lt;br /&gt;
	for i, j in pairs(args) do&lt;br /&gt;
			if type(i) == &#039;number&#039; then&lt;br /&gt;
				j = mw.text.trim(j)&lt;br /&gt;
				if j ~= &#039;&#039; then&lt;br /&gt;
					table.insert(newargs, j)&lt;br /&gt;
				end&lt;br /&gt;
			else &lt;br /&gt;
				if i ~= &#039;type&#039; and i ~= &#039;lang&#039; then &lt;br /&gt;
					return &#039;error: bad parameter in template:Conj: &#039; .. i .. &#039;[[Category:Pages with incorrect template usage/Conj|A]]&#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
	end&lt;br /&gt;
	return p.conj(newargs, lang, args.type)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Module:LangSwitch&amp;diff=992</id>
		<title>Module:LangSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Module:LangSwitch&amp;diff=992"/>
		<updated>2026-08-14T14:51:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from commons.wikimedia.org oldid 700280005; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
  __  __           _       _        _                      ____          _ _       _     &lt;br /&gt;
 |  \/  | ___   __| |_   _| | ___ _| |    __ _ _ __   __ _/ ___|_      _(_) |_ ___| |__  &lt;br /&gt;
 | |\/| |/ _ \ / _` | | | | |/ _ (_) |   / _` | &#039;_ \ / _` \___ \ \ /\ / / | __/ __| &#039;_ \ &lt;br /&gt;
 | |  | | (_) | (_| | |_| | |  __/_| |__| (_| | | | | (_| |___) \ V  V /| | || (__| | | |&lt;br /&gt;
 |_|  |_|\___/ \__,_|\__,_|_|\___(_)_____\__,_|_| |_|\__, |____/ \_/\_/ |_|\__\___|_| |_|&lt;br /&gt;
                                                     |___/                               &lt;br /&gt;
 Authors and maintainers:&lt;br /&gt;
* User:Zolo   - original version in Module:Fallback&lt;br /&gt;
* User:Jarekt &lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
-- add optional module &lt;br /&gt;
-- used for debugging purposes as it detects cases of unintended global variables&lt;br /&gt;
require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function add_labels(args)&lt;br /&gt;
	-- add invisible but machine readable labels to the files, which can be used to add titles to wikidata items&lt;br /&gt;
	local createTag = require(&#039;Module:TagQS&#039;).createTag -- lazy loading of the module: only for the files that need it&lt;br /&gt;
	local qsTable = {&#039;&#039;}&lt;br /&gt;
&lt;br /&gt;
	-- add text of invisible tag brodcasted by the template which allows creation of QuickStatements command used to add this info to Wikidata&lt;br /&gt;
	for lang, text in pairs( args ) do &lt;br /&gt;
		if type(lang)==&#039;string&#039; and mw.language.isSupportedLanguage(lang)  then -- lang has to be a valid language &lt;br /&gt;
			table.insert( qsTable, createTag(&#039;label&#039;, &#039;L&#039;..lang, &#039;&amp;quot;&#039; .. text .. &#039;&amp;quot;&#039;) )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat( qsTable, &#039;\n&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
_langSwitch&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the LangSwitch template. &lt;br /&gt;
 &lt;br /&gt;
Example usage from Lua:&lt;br /&gt;
text = _langSwitch({en=&#039;text in english&#039;, pl=&#039;tekst po polsku&#039;}, lang)&lt;br /&gt;
 &lt;br /&gt;
Parameters:&lt;br /&gt;
  args - table with translations by language&lt;br /&gt;
  lang - desired language (often user&#039;s native language)&lt;br /&gt;
&lt;br /&gt;
 Error Handling:&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function p._langSwitch(args, lang) -- args: table of translations&lt;br /&gt;
	-- Return error if there is not default and no english version&lt;br /&gt;
	if not args.en and not args.default then&lt;br /&gt;
		local err = &#039;&amp;lt;b class=&amp;quot;error&amp;quot;&amp;gt;LangSwitch Error: no default&amp;lt;/b&amp;gt;&#039;&lt;br /&gt;
		if args.nocat == &#039;1&#039; then&lt;br /&gt;
			return err&lt;br /&gt;
		else&lt;br /&gt;
			return err .. &#039;[[Category:LangSwitch template without default version]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- To improve performance try quick switch, and load fallback chain only if needed. &lt;br /&gt;
	-- In the vast majority of cases fast switch is sufficient&lt;br /&gt;
	local val = args[lang]&lt;br /&gt;
	if val == &#039;~&#039; then &lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	elseif val and val ~= &#039;&#039; then &lt;br /&gt;
		return val &lt;br /&gt;
	elseif args.quick then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- get the list of accepetable language (lang + those in lang&#039;s fallback chain) and check their content&lt;br /&gt;
	assert(lang, &#039;LangSwitch Error: no lang&#039;)&lt;br /&gt;
	local langList = mw.language.getFallbacksFor(lang)&lt;br /&gt;
	table.insert(langList,1,lang)&lt;br /&gt;
	table.insert(langList,math.max(#langList,2),&#039;default&#039;)&lt;br /&gt;
	for _, language in ipairs(langList) do &lt;br /&gt;
		val = args[language]&lt;br /&gt;
		if val == &#039;~&#039; then &lt;br /&gt;
			return &#039;&#039;&lt;br /&gt;
		elseif val and val ~= &#039;&#039; then &lt;br /&gt;
			return val &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
langSwitch&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the LangSwitch template. &lt;br /&gt;
 &lt;br /&gt;
Example Usage from a template:&lt;br /&gt;
{{#invoke:fallback|langSwitch|en=text in english|pl=tekst po polsku|lang={{int:lang}} }}&lt;br /&gt;
 &lt;br /&gt;
Parameters:&lt;br /&gt;
  frame.args - table with translations by language&lt;br /&gt;
  frame.args.lang - desired language (often user&#039;s native language)&lt;br /&gt;
&lt;br /&gt;
 Error Handling:&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function p.langSwitch(frame) -- version to be used from wikitext&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	-- if no expected args provided than check parent template/module args&lt;br /&gt;
	if args.en==nil and args.default==nil and args.nocat==nil then&lt;br /&gt;
		args = mw.getCurrentFrame():getParent().args &lt;br /&gt;
	end&lt;br /&gt;
	local lang = args.lang&lt;br /&gt;
	if not lang or not mw.language.isKnownLanguageTag(lang) then&lt;br /&gt;
		lang = frame:callParserFunction( &amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot; ) -- get user&#039;s chosen language &lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- add text of invisible tag brodcasted by the template which allows creation of QuickStatements command used to add this info to Wikidata&lt;br /&gt;
	local labels = &#039;&#039;&lt;br /&gt;
	if args.add_labels then&lt;br /&gt;
		labels = add_labels(args)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Try quick switch which checks the most likely option when fallback is not needed&lt;br /&gt;
	args.quick = true;&lt;br /&gt;
	local val = p._langSwitch(args, lang)&lt;br /&gt;
	if val then&lt;br /&gt;
		return val .. labels&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Allow input in format: {{LangSwitch|de=Grün|es/it/pt=Verde|fr=Vert|en=Green |lang=en}}&lt;br /&gt;
	-- with multiple languages mapping to a single value&lt;br /&gt;
	local args1 = {}&lt;br /&gt;
	for name, value in pairs( args ) do &lt;br /&gt;
		if value ~= &#039;&#039; and type(name)==&#039;string&#039; then &lt;br /&gt;
    		for str in string.gmatch( name, &amp;quot;([^/]+)&amp;quot; ) do&lt;br /&gt;
				args1[str] = value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._langSwitch(args1, lang) .. labels&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:P2&amp;diff=991</id>
		<title>Template:P2</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:P2&amp;diff=991"/>
		<updated>2026-08-14T14:49:53Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from www.mediawiki.org oldid 3802353; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{2}}}&amp;lt;noinclude&amp;gt;{{doc|Template:P1/doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:Dir&amp;diff=990</id>
		<title>Template:Dir</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:Dir&amp;diff=990"/>
		<updated>2026-08-14T14:49:51Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from www.mediawiki.org oldid 6017023; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{#if:{{{lang|}}}|{{{lang|}}}|{{#if:{{{1|}}}|{{{1|}}}|{{int:lang}}}}}}}}&lt;br /&gt;
|aeb|aeb-arab|aic|ar|arc|arq|ary|arz|azb|bcc|bgn|bqi|bqp|ckb|ckb-arab|dv|en-rtl|fa|fa-af|glk|ha-arab|haz|he|khw|kk-arab|kk-cn|ks|ks-arab|ku-arab|lki|lrc|luz|mzn|nqo|ota|phn|pnb|prd|prs|ps|sd|sdh|skr|skr-arab|tg-arab|tly|ug|ug-arab|ur|uz-arab|xpu|ydd|yi&lt;br /&gt;
={{#ifeq:{{{rtl|}}}|{{{rtl|-}}}|{{{rtl|}}}|{{#ifeq:{{{2|}}}|{{{2|-}}}|{{{2|}}}|rtl}}}}&lt;br /&gt;
|#default&lt;br /&gt;
={{#ifeq:{{{ltr|}}}|{{{ltr|-}}}|{{{ltr|}}}|{{#ifeq:{{{3|}}}|{{{3|-}}}|{{{3|}}}|ltr}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Module:Languages&amp;diff=989</id>
		<title>Module:Languages</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Module:Languages&amp;diff=989"/>
		<updated>2026-08-14T14:49:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from commons.wikimedia.org oldid 873112953; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[=[&lt;br /&gt;
Not globally exposed. Internal function only.&lt;br /&gt;
&lt;br /&gt;
language_subpages( frame, transform, options )&lt;br /&gt;
Parameters&lt;br /&gt;
    frame:     The frame that was passed to the method invoked. The first argument or the page argument will be respected.&lt;br /&gt;
    transform: A transform function. Example: function( basepagename, subpagename, code, langname ) end&lt;br /&gt;
    options:   An object with options. Example: { abort= { on=function() end, time=0.8 }  }&lt;br /&gt;
        Following options are available:&lt;br /&gt;
        abort: Aborts iterating over the subpages if one of the conditions is met. If the process is aborted, nil is returned!&lt;br /&gt;
            on: Function to be called if an abort-condition was met.&lt;br /&gt;
            cycles: The maximum number of subpages to run over.&lt;br /&gt;
            time: Maximum time to spend running over the subpages.&lt;br /&gt;
&lt;br /&gt;
]=]&lt;br /&gt;
local function language_subpages( frame, transform, options )&lt;br /&gt;
    local args, pargs, options = frame.args, ( frame:getParent() or {} ).args or {}, options or {};&lt;br /&gt;
    local title = args.page or args[1] or pargs.page or pargs[1] or &amp;quot;&amp;quot;;&lt;br /&gt;
    local abort = options.abort or {};&lt;br /&gt;
    local at, clock = type( abort.on ), os.clock();&lt;br /&gt;
    local ac = function()&lt;br /&gt;
        if  at == &#039;function&#039; or ( at == &#039;table&#039; and getmetatable(abort.on).__call ) then&lt;br /&gt;
            abort.on();&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local tt = type( transform );&lt;br /&gt;
    local page = require( &#039;Module:Page&#039; );&lt;br /&gt;
&lt;br /&gt;
    title = page.clean(title);&lt;br /&gt;
&lt;br /&gt;
    if tt == &#039;function&#039; or ( tt == &#039;table&#039; and getmetatable(transform).__call ) then&lt;br /&gt;
        local fetch, pages, langcode, langname = mw.language.fetchLanguageName, {};&lt;br /&gt;
--[==[&lt;br /&gt;
&lt;br /&gt;
     / \&lt;br /&gt;
    / | \&lt;br /&gt;
   /  ·  \&lt;br /&gt;
   ¯¯¯¯¯¯¯&lt;br /&gt;
   Page.subpages() no longer works because it attempted to parse the HTML content generated by&lt;br /&gt;
   calling the parser function &amp;quot;Special:Prefixindex:&amp;quot; which is no longer expanded in Lua but&lt;br /&gt;
   converted to a &amp;quot;stripped tag&amp;quot; (containing a unique identifier surrounded by ASCII DEL characters)&lt;br /&gt;
   representing the tag name and its parameters.&lt;br /&gt;
   The actual expansion of stripped tags can no longer be performed in Lua.&lt;br /&gt;
   Now unstripping these tags just kills ALL these tags (except &amp;quot;wiki&amp;quot; tags) instead of performing&lt;br /&gt;
   their expansion by running the extension code. Only MediaWiki can unstrip these tags in texts after&lt;br /&gt;
   they have been returned by Lua.&lt;br /&gt;
   For this reason, page.subpages() is now completely empty (Module:Page no longer works).&lt;br /&gt;
   This cannot be bypassed, except by using a Scribunto extension library if lifting the limits set by mw.unstrip.&lt;br /&gt;
   Note that &amp;quot;Special:Prefixindex:&amp;quot; is also costly, even if it just requires a single database query to&lt;br /&gt;
   get all subpages, instead of one costly #ifexist or one costly mw.title() property reading per&lt;br /&gt;
   tested subpage to know if it exists.&lt;br /&gt;
   For now there&#039;s still no reliable way to get a list of subpages, or performing queries similar to&lt;br /&gt;
   the [[Special:Prefixindex]] page or list members of a category like when viewing a category page.&lt;br /&gt;
   Ideally, there should exist a method for such queries on Title objects returned by the mw.title library;&lt;br /&gt;
   but for now there&#039;s none.&lt;br /&gt;
   In Lua now, the only expansion possible with an immediate effect is the expansion of standard templates,&lt;br /&gt;
   all special tags or special pages, or parser function extensions do not work (Only the #expr parser&lt;br /&gt;
   function is supported by using an external Scribunto library).&lt;br /&gt;
--]==]&lt;br /&gt;
        for pg in page.subpages( title, { ignoreNS=true } ) do&lt;br /&gt;
            if abort.cycles then&lt;br /&gt;
                abort.cycles = abort.cycles - 1&lt;br /&gt;
                if 0 == abort.cycles then return ac()  end&lt;br /&gt;
            end&lt;br /&gt;
            if abort.time then&lt;br /&gt;
                if (os.clock() - clock) &amp;gt; abort.time then return ac()  end&lt;br /&gt;
            end&lt;br /&gt;
            if mw.ustring.len( pg ) &amp;lt;= 12 then&lt;br /&gt;
                langcode = string.lower( pg );&lt;br /&gt;
                langname = fetch( langcode );&lt;br /&gt;
                if langname ~= &#039;&#039; then&lt;br /&gt;
                    table.insert( pages, transform( title, pg, langcode, langname ) );&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        return pages;&lt;br /&gt;
    end&lt;br /&gt;
    return {};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function cloneArgs(frame)&lt;br /&gt;
    local args, pargs = {}, {}&lt;br /&gt;
    for k,v in pairs( frame.args ) do args[k] = v end&lt;br /&gt;
    if frame:getParent() then&lt;br /&gt;
        for k,v in pairs( frame:getParent().args ) do pargs[k] = v end&lt;br /&gt;
    end&lt;br /&gt;
    return args, pargs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local p = {};&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:languages|internal|Template:Adjective}}&lt;br /&gt;
]=]&lt;br /&gt;
function p.internal(frame)&lt;br /&gt;
    return table.concat(&lt;br /&gt;
        language_subpages( frame,&lt;br /&gt;
            function( title, page, code, name )&lt;br /&gt;
                return mw.ustring.format(&lt;br /&gt;
                    &#039;&amp;lt;bdi class=&amp;quot;language lang-%s&amp;quot; lang=&amp;quot;%s&amp;quot;&amp;gt;[[%s/%s|%s]]&amp;lt;/bdi&amp;gt;&#039;,&lt;br /&gt;
                    code, code,&lt;br /&gt;
                    title, page,&lt;br /&gt;
                    name&lt;br /&gt;
                );&lt;br /&gt;
            end&lt;br /&gt;
        ),&lt;br /&gt;
        &#039;&amp;amp;nbsp;&amp;lt;b&amp;gt;·&amp;lt;/b&amp;gt;&amp;amp;#32;&#039;&lt;br /&gt;
    );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:languages|external|Template:Adjective}}&lt;br /&gt;
]=]&lt;br /&gt;
function p.external(frame)&lt;br /&gt;
    return table.concat(&lt;br /&gt;
        language_subpages( frame,&lt;br /&gt;
            function( title, page, code, name )&lt;br /&gt;
                return mw.ustring.format(&lt;br /&gt;
                    &#039;&amp;lt;bdi class=&amp;quot;language lang-%s&amp;quot; lang=&amp;quot;%s&amp;quot;&amp;gt;[%s/%s %s]&amp;lt;/bdi&amp;gt;&#039;,&lt;br /&gt;
                    code, code,&lt;br /&gt;
                    tostring( mw.uri.fullUrl( title ) ), page:gsub( &#039; &#039;, &#039;_&#039; ),&lt;br /&gt;
                    name&lt;br /&gt;
                );&lt;br /&gt;
            end&lt;br /&gt;
        ),&lt;br /&gt;
        &#039;&amp;amp;nbsp;&amp;lt;b&amp;gt;·&amp;lt;/b&amp;gt;&amp;amp;#32;&#039;&lt;br /&gt;
    );&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
forEachLanguage&lt;br /&gt;
&lt;br /&gt;
This function iterates over all language codes known to MediaWiki based on a maintained list&lt;br /&gt;
replacing patterns in a pattern-string for each language&lt;br /&gt;
&lt;br /&gt;
Usage&lt;br /&gt;
{{#invoke:Languages|forEachLanguage&lt;br /&gt;
  |pattern=patternstring&lt;br /&gt;
  |before=string to insert before iteration&lt;br /&gt;
  |after=string added after iteration&lt;br /&gt;
  |sep=separator string between iterations&lt;br /&gt;
  |inLang=langcode used for $lnTrP and $lnTrUC1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    pattern: A pattern string which is processed for each language and which is concatenated at the end and returned as one string&lt;br /&gt;
    before: A string that is inserted before the concatenated result&lt;br /&gt;
    after: A string that is inserted after the concatenated result&lt;br /&gt;
    sep: A string that is inserted between each line created from the pattern while iterating (like ProcessedPattern_sep_ProcessedPattern_sep_ProcessedPattern)&lt;br /&gt;
    inLang: Langcode to use for $lnTrP and $lnTrUC1&lt;br /&gt;
    preprocess: if set to a non-empty value, the output will be preprocessed before being returned.&lt;br /&gt;
&lt;br /&gt;
Warning&lt;br /&gt;
    The output is still not prepreprocessed by default: so parser functions and magic keywords generated by the pattern are still not executed and replaced,&lt;br /&gt;
    and template transclusions are still not expanded (see examples in other functions in this module).&lt;br /&gt;
    When using this function directly from a MediaWiki page or template, this means it is only possible to use patterns generating basic MediaWiki formatting&lt;br /&gt;
    or HTML tags. It you want the output to be preprocessed (in the given frame), set the preprocess parameter to a non-empty string.&lt;br /&gt;
    &lt;br /&gt;
Patterns&lt;br /&gt;
    $lc - language code such as en or de&lt;br /&gt;
    $lnP - language name in own language (autonym)&lt;br /&gt;
    $lnUC1 - language name in own language (autonym), first letter upper case&lt;br /&gt;
    $lnTrP - language name translated to the language requested by language code passed to inLang&lt;br /&gt;
    $lnTrUC1 - language name translated to the language requested by language code passed to inLang, first letter upper case&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
    {{#invoke:Languages|forEachLanguage|pattern=&amp;lt;span lang=&amp;quot;$lc&amp;quot; xml:lang=&amp;quot;$lc&amp;quot; class=&amp;quot;language lang-$lc&amp;quot;&amp;gt;[[Page/$lc|$lnP]]&amp;lt;/span&amp;gt;}}&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
-- =p.forEachLanguage({ args= { pattern = &amp;quot;$lc - $lnTrP\n&amp;quot;, inLang = &amp;quot;en&amp;quot; } })&lt;br /&gt;
function p.forEachLanguage(frame)&lt;br /&gt;
    local l = require(&amp;quot;Module:Languages/List&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    local ret = {}&lt;br /&gt;
    local lang    = mw.language&lt;br /&gt;
    local line&lt;br /&gt;
    local pattern = frame.args.pattern   or frame.args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
    local prefix  = frame.args.before    or frame.args[2] or &amp;quot;&amp;quot;&lt;br /&gt;
    local postfix = frame.args.after     or frame.args[3] or &amp;quot;&amp;quot;&lt;br /&gt;
    local sep     = frame.args.sep       or frame.args.separator or frame.args[4] or &amp;quot;&amp;quot;&lt;br /&gt;
    local inLang  = frame.args.inLang    or frame.args[5] or nil&lt;br /&gt;
    local preprocess = frame.args.preprocess or frame.args[6] or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local langNameUCFirstReq           = not not pattern:find( &amp;quot;$lnUC1&amp;quot;, 1, true )&lt;br /&gt;
    local langNameReq                  = not not pattern:find( &amp;quot;$lnP&amp;quot;, 1, true ) or langNameUCFirstReq&lt;br /&gt;
    local langNameTranslatedUCFirstReq = not not pattern:find( &amp;quot;$lnTrUC1&amp;quot;, 1, true )&lt;br /&gt;
    local langNameTranslatedReq        = not not pattern:find( &amp;quot;$lnTrP&amp;quot;, 1, true ) or langNameTranslatedUCFirstReq&lt;br /&gt;
    local contentLangInstance = mw.language.getContentLanguage()&lt;br /&gt;
    local inLangLangInstance&lt;br /&gt;
    local l = mw.language.fetchLanguageNames() -- autonyms&lt;br /&gt;
    local lTr&lt;br /&gt;
    local lcIdList = require(&#039;Module:Languages/List&#039;).getSortedList( l )&lt;br /&gt;
&lt;br /&gt;
    if langNameTranslatedReq then&lt;br /&gt;
        inLangLangInstance = --[==[&lt;br /&gt;
            mw.getLanguage( inLang ) -- Quota hit in :ucfirst() if using too many langInstances&lt;br /&gt;
            --]==] contentLangInstance&lt;br /&gt;
        lTr = mw.language.fetchLanguageNames( inLang ) -- translated names&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    for _, lcId in pairs( lcIdList ) do&lt;br /&gt;
        local subst = lcId:gsub(&#039;%%&#039;, &#039;%%%%&#039;)&lt;br /&gt;
        line = pattern:gsub( &amp;quot;%$lc&amp;quot;, subst )&lt;br /&gt;
        local langName, langInstance&lt;br /&gt;
        -- autonym (name of lcId in locale lcId)&lt;br /&gt;
        if langNameReq then&lt;br /&gt;
            langName = l[lcId]&lt;br /&gt;
            subst = langName:gsub(&#039;%%&#039;, &#039;%%%%&#039;)&lt;br /&gt;
            line = line:gsub( &amp;quot;%$lnP&amp;quot;, subst )&lt;br /&gt;
        end&lt;br /&gt;
        if langNameUCFirstReq then&lt;br /&gt;
            langInstance = --[==[&lt;br /&gt;
                mw.getLanguage( lcId ) -- Quota hit in :ucfirst() if using too many langInstances&lt;br /&gt;
                --]==] contentLangInstance&lt;br /&gt;
            langName = langInstance:ucfirst( langName )&lt;br /&gt;
            subst = langName:gsub(&#039;%%&#039;, &#039;%%%%&#039;)&lt;br /&gt;
            line = line:gsub( &amp;quot;%$lnUC1&amp;quot;, subst )&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- translated name (name of lcId in locale inLang)&lt;br /&gt;
        if langNameTranslatedReq then&lt;br /&gt;
            langName = lTr[lcId]&lt;br /&gt;
            subst = langName:gsub(&#039;%%&#039;, &#039;%%%%&#039;)&lt;br /&gt;
            line = line:gsub( &amp;quot;%$lnTrP&amp;quot;, subst )&lt;br /&gt;
        end&lt;br /&gt;
        if langNameTranslatedUCFirstReq then&lt;br /&gt;
            langName = inLangLangInstance:ucfirst( langName )&lt;br /&gt;
            subst = langName:gsub(&#039;%%&#039;, &#039;%%%%&#039;)&lt;br /&gt;
            line = line:gsub( &amp;quot;%$lnTrUC1&amp;quot;, subst )&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        table.insert(ret, line)&lt;br /&gt;
    end&lt;br /&gt;
    ret = prefix .. table.concat( ret, sep ) .. postfix&lt;br /&gt;
    if preprocess ~= &#039;&#039; then&lt;br /&gt;
        ret = frame:preprocess(ret)&lt;br /&gt;
    end&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
 Provide logic for [[Template:Lle]] (Language Links external, to be substituted, language names written exactly as #language would provide them)&lt;br /&gt;
 Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate &amp;quot;/lang&amp;quot; template)&lt;br /&gt;
]=]&lt;br /&gt;
function p.lle(frame)&lt;br /&gt;
    return frame:preprocess(&lt;br /&gt;
        p.forEachLanguage({&lt;br /&gt;
            args = {&lt;br /&gt;
                pattern = &#039;{{subst:#ifexist:{{{1}}}/$lc|[{{subst:fullurl:{{{1}}}/$lc}} &amp;lt;bdi class=&amp;quot;language lang-$lc&amp;quot; lang=&amp;quot;$lc&amp;quot;&amp;gt;$lnP&amp;lt;/bdi&amp;gt;]&amp;amp;nbsp;&amp;lt;b&amp;gt;∙&amp;lt;/b&amp;gt;&amp;amp;#32;&amp;lt;!--\n--&amp;gt;}}&#039;&lt;br /&gt;
            }&lt;br /&gt;
        })&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
 Provide logic for [[Template:Ll]] (Language Links internal, to be substituted, language names written exactly as #language would provide them)&lt;br /&gt;
 Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate &amp;quot;/lang&amp;quot; template)&lt;br /&gt;
]=]&lt;br /&gt;
function p.ll(frame)&lt;br /&gt;
    return frame:preprocess(&lt;br /&gt;
        p.forEachLanguage({&lt;br /&gt;
            args = {&lt;br /&gt;
                pattern = &#039;{{subst:#ifexist:{{{1}}}/$lc|[[{{{1}}}/$lc|&amp;lt;bdi class=&amp;quot;language lang-$lc&amp;quot; lang=&amp;quot;$lc&amp;quot;&amp;gt;$lnP&amp;lt;/bdi&amp;gt;]]&amp;amp;nbsp;&amp;lt;b&amp;gt;∙&amp;lt;/b&amp;gt;&amp;amp;#32;&amp;lt;!--\n--&amp;gt;}}&#039;&lt;br /&gt;
            }&lt;br /&gt;
        })&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
--- Different approaches for [[Template:Lang links]] ---&lt;br /&gt;
--------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
 Provide logic for [[Template:Lang links]]&lt;br /&gt;
 Using a cute Hybrid-Method:&lt;br /&gt;
    First check the subpages which is quite fast; if there are too many fall back to checking for each language page individually&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
-- =p.langLinksNonExpensive({ args= { page=&#039;Commons:Picture of the Year/2010&#039; }, getParent=function() end })&lt;br /&gt;
-- =p.langLinksNonExpensive({ args= { page=&#039;Main Page&#039; }, getParent=function() end })&lt;br /&gt;
-- =p.langLinksNonExpensive({ args= { page=&#039;Template:No_source_since&#039; }, getParent=function() end })&lt;br /&gt;
-- =p.langLinksNonExpensive({ args= { page=&#039;MediaWiki:Gadget-HotCat&#039; }, getParent=function() end })&lt;br /&gt;
function p.langLinksNonExpensive(frame)&lt;br /&gt;
    local args, pargs = frame.args, ( frame:getParent() or {} ).args or {};&lt;br /&gt;
    local title = args.page or args[1] or pargs.page or pargs[1] or &amp;quot;&amp;quot;;&lt;br /&gt;
    local contentLangInstance = mw.language.getContentLanguage();&lt;br /&gt;
    local pages2&lt;br /&gt;
    if frame.preprocess == nil then&lt;br /&gt;
        frame = mw.getCurrentFrame()&lt;br /&gt;
    end&lt;br /&gt;
--[==[&lt;br /&gt;
    local options = {&lt;br /&gt;
        abort = {&lt;br /&gt;
            time = 3.5,&lt;br /&gt;
            on = function()&lt;br /&gt;
                pages2 = p.forEachLanguage({&lt;br /&gt;
                    args = {&lt;br /&gt;
                       pattern = &#039;{{#ifexist:&#039; .. title .. &#039;/$lc|[[&#039; .. title .. &#039;/$lc|&amp;lt;bdi lang=&amp;quot;$lc&amp;quot;&amp;gt;$lnP&amp;lt;/bdi&amp;gt;]]&amp;amp;nbsp;&amp;lt;b&amp;gt;∙&amp;lt;/b&amp;gt;&amp;amp;#32;}}&#039;&lt;br /&gt;
                    }&lt;br /&gt;
                })&lt;br /&gt;
            end&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    local pages = language_subpages( frame,&lt;br /&gt;
        function( title, page, code, langname )&lt;br /&gt;
            return mw.ustring.format(&lt;br /&gt;
                &#039;[[%s/%s|&amp;lt;bdi lang=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/bdi&amp;gt;]]&amp;lt;/span&amp;gt;&amp;amp;nbsp;&amp;lt;b&amp;gt;∙&amp;lt;/b&amp;gt;&amp;amp;#32;&#039;,&lt;br /&gt;
                title, page, code, langname&lt;br /&gt;
            )&lt;br /&gt;
        end, options );&lt;br /&gt;
    return pages2 and frame:preprocess(pages2) or table.concat(pages, &#039;&#039;);&lt;br /&gt;
--]==]&lt;br /&gt;
    return frame:preprocess(&lt;br /&gt;
        p.forEachLanguage( {&lt;br /&gt;
            args = {&lt;br /&gt;
                pattern = &#039;{{#ifexist:&#039; .. title .. &#039;/$lc|[[&#039; .. title .. &#039;/$lc|&amp;lt;bdi lang=&amp;quot;$lc&amp;quot;&amp;gt;$lnP&amp;lt;/bdi&amp;gt;]]&amp;amp;nbsp;&amp;lt;b&amp;gt;∙&amp;lt;/b&amp;gt;&amp;amp;#32;}}&#039;&lt;br /&gt;
            }&lt;br /&gt;
        })&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
----------------- [[Template:Autolang]] -----------------&lt;br /&gt;
---------------------------------------------------------&lt;br /&gt;
--[[&lt;br /&gt;
  Works like {{autotranslate}} just allowing an unlimited number of arguments, even named arguments.&lt;br /&gt;
  It&#039;s doing Magic! No arguments should be passed to {{#invoke:}}&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function p.autolang(frame)&lt;br /&gt;
    local args, pargs = cloneArgs( frame )&lt;br /&gt;
    if nil == args.useargs then&lt;br /&gt;
        if not args.base then args = pargs end&lt;br /&gt;
    elseif &#039;both&#039; == args.useargs then&lt;br /&gt;
        for k,v in pairs(args) do pargs[k] = v end&lt;br /&gt;
        args = pargs&lt;br /&gt;
    elseif &#039;parent&#039; == args.useargs then&lt;br /&gt;
        args = pargs&lt;br /&gt;
        if pargs.base and not args.base then&lt;br /&gt;
            args.base = pargs.base&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    local base = args.base&lt;br /&gt;
    local userlang = frame:callParserFunction(&#039;int&#039;, &#039;lang&#039;)&lt;br /&gt;
    local tl, tlns = &#039;Template:&#039;, 10&lt;br /&gt;
    local tlb, fallback1, currenttemplate, currenttemplatepage&lt;br /&gt;
    local fallback, contentlang = mw.text.split( userlang, &#039;-&#039;, true )[1], mw.language.getContentLanguage():getCode()&lt;br /&gt;
&lt;br /&gt;
    local function createReturn(title)&lt;br /&gt;
        local ret&lt;br /&gt;
        local tlargs = {}&lt;br /&gt;
         -- When LUA is invoked, templates are already expanded. This must be respected.&lt;br /&gt;
        return frame:expandTemplate{ title = title, args = args }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if not base then&lt;br /&gt;
        return (&amp;quot;&#039;autolang&#039; in [[Module:Languages]] was called but the &#039;base&#039; parameter could not be found.&amp;quot; ..&lt;br /&gt;
            &amp;quot;The base parameter specifies the template that&#039;s subpages will be sought for a suitable translation.&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    tlb = tl .. base .. &#039;/&#039;&lt;br /&gt;
&lt;br /&gt;
    currenttemplate = tlb .. userlang&lt;br /&gt;
    currenttemplatepage = mw.title.new( currenttemplate, tlns )&lt;br /&gt;
    if currenttemplatepage and currenttemplatepage.exists then&lt;br /&gt;
        return createReturn(currenttemplate)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    fallback1 = frame:preprocess( &#039;{{Fallback|1=&#039; .. base .. &#039;|2=&#039; .. userlang .. &#039;}}&#039; )&lt;br /&gt;
    if fallback1 ~= contentlang then&lt;br /&gt;
        return createReturn(tlb .. fallback1)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    currenttemplate = tlb .. fallback&lt;br /&gt;
    currenttemplatepage = mw.title.new( currenttemplate, tlns )&lt;br /&gt;
    if currenttemplatepage and currenttemplatepage.exists then&lt;br /&gt;
        return createReturn(currenttemplate)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    currenttemplate = tlb .. contentlang&lt;br /&gt;
    currenttemplatepage = mw.title.new( currenttemplate, tlns )&lt;br /&gt;
    if currenttemplatepage and currenttemplatepage.exists then&lt;br /&gt;
        return createReturn(currenttemplate)&lt;br /&gt;
    end&lt;br /&gt;
    return createReturn(tl .. base)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:languages|isKnownLanguageTag|gsw}} -&amp;gt; 1&lt;br /&gt;
{{#invoke:languages|isKnownLanguageTag|doesNotExist}} -&amp;gt;&lt;br /&gt;
]=]&lt;br /&gt;
function p.isKnownLanguageTag(frame)&lt;br /&gt;
    return mw.language.isKnownLanguageTag( frame.args[1] or frame.args.tag or frame.args.code or &#039;&#039; ) and &#039;1&#039; or &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.file_languages(frame)&lt;br /&gt;
    local M_link = require( &#039;Module:Link&#039; )&lt;br /&gt;
    local contentLangInstance = mw.language.getContentLanguage()&lt;br /&gt;
    local pattern = frame.args.pattern or &#039;%s (%s)&#039;&lt;br /&gt;
    local original = frame.args.original or mw.title.getCurrentTitle().text&lt;br /&gt;
    local ext_start, _ = string.find( original, &#039;\.%w+$&#039; )&lt;br /&gt;
    local file_ext = string.sub( original, ext_start )&lt;br /&gt;
    original = string.sub( original, 0, ext_start - 1 )&lt;br /&gt;
    return frame:preprocess(&lt;br /&gt;
        &#039;&amp;lt;gallery&amp;gt;\n&#039; ..&lt;br /&gt;
        (table.concat(&lt;br /&gt;
            M_link.forEachLink(&lt;br /&gt;
                p.forEachLanguage({&lt;br /&gt;
                    args = { pattern = &#039;[[$lc]]&#039; }&lt;br /&gt;
                }),&lt;br /&gt;
                function( linkInfo )&lt;br /&gt;
                    local filename = mw.ustring.format( pattern, original, linkInfo.text ) .. file_ext&lt;br /&gt;
                    local filepage = mw.title.new( filename, 6 )&lt;br /&gt;
                    if filepage and filepage.exists then&lt;br /&gt;
                        return mw.ustring.format( &#039;%s|%s&#039;,&lt;br /&gt;
                            filename,&lt;br /&gt;
                            mw.language.fetchLanguageName( linkInfo.text )&lt;br /&gt;
                        )&lt;br /&gt;
                    else&lt;br /&gt;
                        return nil&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            ), &#039;\n&#039;&lt;br /&gt;
        )) ..&lt;br /&gt;
        &#039;\n&amp;lt;/gallery&amp;gt;&#039;&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.runTests()&lt;br /&gt;
    return p.langLinksNonExpensive({&lt;br /&gt;
        args = {&lt;br /&gt;
            page = &#039;Module:Languages/testcases/test&#039;&lt;br /&gt;
        },&lt;br /&gt;
        getParent = function() end&lt;br /&gt;
    }) ==&lt;br /&gt;
        &#039;[[Module:Languages/testcases/test/de|&amp;lt;bdi lang=&amp;quot;de&amp;quot;&amp;gt;Deutsch&amp;lt;/bdi&amp;gt;]]&amp;amp;nbsp;&amp;lt;b&amp;gt;∙&amp;lt;/b&amp;gt;&amp;amp;#32;&#039; ..&lt;br /&gt;
        &#039;[[Module:Languages/testcases/test/en|&amp;lt;bdi lang=&amp;quot;en&amp;quot;&amp;gt;English&amp;lt;/bdi&amp;gt;]]&amp;amp;nbsp;&amp;lt;b&amp;gt;∙&amp;lt;/b&amp;gt;&amp;amp;#32;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:Full_stop&amp;diff=988</id>
		<title>Template:Full stop</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:Full_stop&amp;diff=988"/>
		<updated>2026-08-14T14:49:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from commons.wikimedia.org oldid 882890290; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;This shows a localized full stop at end of this sentence&amp;lt;span style=&amp;quot;background:yellow&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;{{#switch: {{LangSwitch|lang={{#if:{{{lang|}}}|{{{lang|}}}|{{PAGELANGUAGE}}}}&lt;br /&gt;
  | default = Latn&lt;br /&gt;
  | aee = Aran&lt;br /&gt;
  | ar = Arab&lt;br /&gt;
  | ary = Arab&lt;br /&gt;
  | arz = Arab&lt;br /&gt;
  | azb = Aran&lt;br /&gt;
  | bal = Aran&lt;br /&gt;
  | bcc = Aran&lt;br /&gt;
  | bg = Cyrl&lt;br /&gt;
  | bgn = Aran&lt;br /&gt;
  | bgp = Aran&lt;br /&gt;
  | bh = Deva&lt;br /&gt;
  | bn = Beng&lt;br /&gt;
  | bqi = Aran&lt;br /&gt;
  | el = Grek&lt;br /&gt;
  | fa = Aran&lt;br /&gt;
  | gu = Guru&lt;br /&gt;
  | gj = Gujr&lt;br /&gt;
  | glh = Aran&lt;br /&gt;
  | glk = Aran&lt;br /&gt;
  | hi = Deva&lt;br /&gt;
  | hy = Armn&lt;br /&gt;
  | ja = Jpan&lt;br /&gt;
  | jbo = Latn-Zs-i-Zs&lt;br /&gt;
  | ka = Geor&lt;br /&gt;
  | ko = Hang&lt;br /&gt;
  | ktl = Aran&lt;br /&gt;
  | kn = Knda&lt;br /&gt;
  | ks-arab = Aran&lt;br /&gt;
  | la = Laoo&lt;br /&gt;
  | lrc = Aran&lt;br /&gt;
  | luz = Aran&lt;br /&gt;
  | lzh = Hant&lt;br /&gt;
  | mzn = Aran&lt;br /&gt;
  | km = Khmr&lt;br /&gt;
  | mk = Cyrl&lt;br /&gt;
  | ml = Mlym&lt;br /&gt;
  | or = Orya&lt;br /&gt;
  | ne = Deva&lt;br /&gt;
  | new = Deva&lt;br /&gt;
  | ps = Aran&lt;br /&gt;
  | psh = Aran&lt;br /&gt;
  | ps i= Aran&lt;br /&gt;
  | pnt = Grek&lt;br /&gt;
  | ru = Cyrl&lt;br /&gt;
  | sa = Deva&lt;br /&gt;
  | sd = Aran&lt;br /&gt;
  | si = Sinh &lt;br /&gt;
  | sr = Cyrl&lt;br /&gt;
  | srz = Aran&lt;br /&gt;
  | te = Telu&lt;br /&gt;
  | th = Thai&lt;br /&gt;
  | tly = Aran&lt;br /&gt;
  | uk = Cyrl&lt;br /&gt;
  | ug = Aran&lt;br /&gt;
  | ur = Aran&lt;br /&gt;
  | yue = Hant&lt;br /&gt;
  | zh = Hans&lt;br /&gt;
  | zh-hans = Hans&lt;br /&gt;
  | zh-hant = Hant&lt;br /&gt;
  }}&lt;br /&gt;
&lt;br /&gt;
| Arab | Cyrl | Geor | Grek | Hang | Laoo | Latn&lt;br /&gt;
| Zinh-Pe-Zs | #default = .{{#ifeq:{{{nospace|}}}|y||&amp;amp;#32;}}&lt;br /&gt;
&lt;br /&gt;
| Aran&lt;br /&gt;
| Aran-Pe-Zs = &amp;lt;!-- Note: U+0640 (Arabic Tatween) is an &amp;quot;joining&amp;quot; format control, NOT an *isolated* punctuation like U+06D4 (Nastaliq Arabic Full Stop) --&amp;gt;&amp;amp;#x6D4;{{#ifeq:{{{nospace|}}}|y||&amp;amp;#32;}}&lt;br /&gt;
&lt;br /&gt;
| Armn = &amp;lt;!-- U+0589 Armenian full stop (it&#039;s NOT an ASCII colon!) --&amp;gt;։{{#ifeq:{{{nospace|}}}|y||&amp;amp;#32;}}&lt;br /&gt;
&lt;br /&gt;
| Beng | Deva | Guru | Gujr | Knda | Mlym | Orya | Sinh | Taml | Telu&lt;br /&gt;
| Deva-Pe-Zs = &amp;lt;!-- U+0964 Devanagari Danda --&amp;gt;।{{#ifeq:{{{nospace|}}}|y||&amp;amp;#32;}}&lt;br /&gt;
&lt;br /&gt;
| Bpmf | Hani | Hans | Hant | Jpan | Phpa&lt;br /&gt;
| Hani-Pe = &amp;amp;#x3002;&lt;br /&gt;
&lt;br /&gt;
| Khmr&lt;br /&gt;
| Khmr-Pe-Zs = &amp;lt;!-- U+17D4 Khmer sign Khan --&amp;gt;។{{#ifeq:{{{nospace|}}}|y||&amp;amp;#32;}}&lt;br /&gt;
&lt;br /&gt;
| Latn-Zs-i-Zs = &amp;amp;nbsp;i{{#ifeq:{{{nospace|}}}|y||&amp;amp;#32;}}&lt;br /&gt;
&lt;br /&gt;
| Thai&lt;br /&gt;
| Zinh-space = &amp;amp;#32;&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&amp;lt;/span&amp;gt;Or its equivalent in the relevant language.&lt;br /&gt;
{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:Conj&amp;diff=987</id>
		<title>Template:Conj</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:Conj&amp;diff=987"/>
		<updated>2026-08-14T14:49:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from commons.wikimedia.org oldid 574442520; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Linguistic|conjfromWiki}}&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>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:LangSwitch&amp;diff=986</id>
		<title>Template:LangSwitch</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:LangSwitch&amp;diff=986"/>
		<updated>2026-08-14T14:49:45Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from commons.wikimedia.org oldid 304554635; source history provides attribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:LangSwitch|langSwitch}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{heavily used template}}&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Alch3my:Wikipedia_template_compatibility_test&amp;diff=985</id>
		<title>Alch3my:Wikipedia template compatibility test</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Alch3my:Wikipedia_template_compatibility_test&amp;diff=985"/>
		<updated>2026-08-14T14:46:43Z</updated>

		<summary type="html">&lt;p&gt;Admin: Create Phase 1 portable template compatibility fixture&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
This page is the live Phase 1 compatibility fixture for the curated portable Wikipedia template profile.&lt;br /&gt;
&lt;br /&gt;
== Parser functions and Lua ==&lt;br /&gt;
* ParserFunctions: {{#expr: 40 + 2}} / {{#if:yes|conditional works|conditional failed}}&lt;br /&gt;
* Scribunto-backed infobox:&lt;br /&gt;
{{Infobox|title=Compatibility fixture|label1=Expected value|data1=42}}&lt;br /&gt;
&lt;br /&gt;
== Styled templates ==&lt;br /&gt;
{{Hatnote|This hatnote must be italic and must not display a raw TemplateStyles tag.}}&lt;br /&gt;
{{Distinguish|Compatibility testing}}&lt;br /&gt;
{{Sidebar|name=Compatibility fixture|title=Sidebar fixture|content1=Rendered content}}&lt;br /&gt;
{{Warning|This warning is a rendering fixture.}}&lt;br /&gt;
&lt;br /&gt;
== Citation ==&lt;br /&gt;
This sentence exercises Cite.&amp;lt;ref&amp;gt;Phase 1 local compatibility fixture.&amp;lt;/ref&amp;gt;&lt;br /&gt;
{{Citation needed|date=August 2026}}&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Module:Documentation/styles.css&amp;diff=984</id>
		<title>Module:Documentation/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Module:Documentation/styles.css&amp;diff=984"/>
		<updated>2026-08-14T14:44:37Z</updated>

		<summary type="html">&lt;p&gt;Admin: Copied from en.wikipedia.org oldid 1360085358; CC BY-SA 4.0 attribution in source history&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=yes}} */&lt;br /&gt;
.documentation,&lt;br /&gt;
.documentation-metadata {&lt;br /&gt;
	border: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
	background-color: #ecfcf4;&lt;br /&gt;
	color:inherit;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation {&lt;br /&gt;
	margin: 1em 0 0 0;&lt;br /&gt;
	padding: 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-metadata {&lt;br /&gt;
	margin: 0.2em 0; /* same margin left-right as .documentation */&lt;br /&gt;
    font-style: italic;&lt;br /&gt;
    padding: 0.4em 1em; /* same padding left-right as .documentation */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-startbox {&lt;br /&gt;
	padding-bottom: 3px;&lt;br /&gt;
	border-bottom: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
	margin-bottom: 1ex;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-heading {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 125%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-minerva .documentation-startbox .mw-editsection-like a,&lt;br /&gt;
body.skin-timeless .documentation-startbox .mw-editsection-like a {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	margin-left: 0.3em;&lt;br /&gt;
	margin-right: 0.3em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-clear { /* Don&#039;t want things to stick out where they shouldn&#039;t. */&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.documentation-toolbar {&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
	font-size: 85%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
    html.skin-theme-clientpref-night .documentation,&lt;br /&gt;
	html.skin-theme-clientpref-night .documentation-metadata {&lt;br /&gt;
	    background-color: #0b1e1c;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@media screen and ( prefers-color-scheme: dark ) {&lt;br /&gt;
    html.skin-theme-clientpref-os .documentation,&lt;br /&gt;
    html.skin-theme-clientpref-os .documentation-metadata {&lt;br /&gt;
        background-color: #0b1e1c;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:Hatnote/styles.css&amp;diff=983</id>
		<title>Template:Hatnote/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:Hatnote/styles.css&amp;diff=983"/>
		<updated>2026-08-14T14:43:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin changed the content model of the page Template:Hatnote/styles.css from &amp;quot;wikitext&amp;quot; to &amp;quot;Sanitized CSS&amp;quot;: Enable sanitized TemplateStyles content model&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.hatnote {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
.hatnote i,&lt;br /&gt;
.hatnote.noitalic {&lt;br /&gt;
	font-style: normal;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote {&lt;br /&gt;
	padding-left: 1.6em;&lt;br /&gt;
	margin-bottom: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
div.hatnote + div.hatnote {&lt;br /&gt;
	margin-top: -0.5em;&lt;br /&gt;
}&lt;br /&gt;
/* https://phabricator.wikimedia.org/T180396#5317728 */&lt;br /&gt;
@media print {&lt;br /&gt;
	.hatnote {&lt;br /&gt;
		display: none;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Template:Documentation/styles.css&amp;diff=982</id>
		<title>Template:Documentation/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Template:Documentation/styles.css&amp;diff=982"/>
		<updated>2026-08-14T14:43:46Z</updated>

		<summary type="html">&lt;p&gt;Admin: Admin changed the content model of the page Template:Documentation/styles.css from &amp;quot;wikitext&amp;quot; to &amp;quot;Sanitized CSS&amp;quot;: Enable sanitized TemplateStyles content model&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.template-documentation {&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	border: 2px dotted #666;&lt;br /&gt;
	padding: 0.6em;&lt;br /&gt;
	background-color: #ecfcf4;&lt;br /&gt;
}&lt;br /&gt;
.template-documentation:after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
.template-documentation-heading {&lt;br /&gt;
	padding-bottom: 3px;&lt;br /&gt;
	border-bottom: 1px solid #a2a9b1;&lt;br /&gt;
	margin-bottom: 1ex;&lt;br /&gt;
}&lt;br /&gt;
.template-documentation-title {&lt;br /&gt;
	font-size: 150%;&lt;br /&gt;
}&lt;br /&gt;
.template-documentation-transcludedfrom {&lt;br /&gt;
	font-size: smaller;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.skin-theme-clientpref-night .template-documentation {&lt;br /&gt;
    background-color: #0b1e1c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (prefers-color-scheme: dark) {&lt;br /&gt;
    html.skin-theme-clientpref-os .template-documentation {&lt;br /&gt;
        background-color: #0b1e1c;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Alch3my:Copyrights&amp;diff=981</id>
		<title>Alch3my:Copyrights</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Alch3my:Copyrights&amp;diff=981"/>
		<updated>2026-08-14T14:41:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: Create site license and Wikimedia attribution policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unless otherwise noted, original text on this wiki is available under the [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License].&lt;br /&gt;
&lt;br /&gt;
Pages copied or imported from Wikipedia or another Wikimedia project retain their source attribution. The source page, revision, and import or edit summary form part of that attribution; additional terms shown on the source page continue to apply.&lt;br /&gt;
&lt;br /&gt;
Files and other non-text media are licensed individually on their description pages. Do not assume that the site-wide text license applies to a file.&lt;br /&gt;
&lt;br /&gt;
See also [https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/en#7._Licensing_of_Content Wikimedia licensing and reuse terms].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Universal_mind&amp;diff=845</id>
		<title>Universal mind</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Universal_mind&amp;diff=845"/>
		<updated>2024-10-04T02:43:28Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Universal mind.webp|thumb|Utterly insufficient depiction of the Universal Mind by the Universal Mind, in one tiny corner of one measly little reality of one tiny speck of [[hyperreal hyperreality]].]]&lt;br /&gt;
The universal mind is the singular consciousness that exists, in which all other conscious beings exist as fragments. Everything - matter, spirits, ideas, theorems, God, [[The Lord of the God-Kings]], [[The Green M&amp;amp;M]], [[Showchan]], even [[Flags]] {{Disputed inline|Talk page section|date=August 2024}}- exists as a holon of the universal mind. Some would say that they are all delusions of the universal mind, that it is simply the universal mind having a weird dream as part of a big &#039;ole nap. While the Hindus called the universal mind [[wikipedia:Brahman|Brahman]] and this may have been one of the earliest notions of a universal mind to catch on, virtually every esoteric [[wikipedia:Nondualism|nondual]] sect of every religion has some notion of a &amp;quot;universal mind&amp;quot;. The [[Vexillians]] claim that the universal mind is simply one possible emanation of [[The Flag]] that we happen to exist in, and actually that its totally possible for there to have been a dual universe in which the divine was entirely separate from mortals, but that in beta it was easier to stick with the nondual story. Via [[Advanced Knowledge|advanced knowledge]], it may be possible for beings in the nondual side of things to migrate to a dualistic universe and vice versa. And once instantaneous transport between either universe for beings of either universe is attained, for that being to transcend beyond both nonduality and duality into an even greater notion that is beyond description in terms of non-advanced knowledge and thus only understood by advance knowers. This notion is symbolized by the [[Vexillomantic holy texts#17. FLAGS|Vexillaurum and Vexillicrocus]]. This is thought by scholars at [[Mega Harvard]] to be a marker along the path of [[Vexillomantic holy texts|vexillokalpa samadhi]], which is even further beyond the notion of beyond into ultraperfected ultraperfection into unnamably perfect ultraperfection.&lt;br /&gt;
&lt;br /&gt;
Approximately every 42,069 years, an election is held in the universal mind between all sentient beings to elect the new [[The Lord of the God-Kings|Lord of the God-Kings]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Despite the similar nomenclature, the universal mind is entirely distinct from the [[global brain]], which simply refers to the collective qualia-computational overmind on Earth in the post-universal enlightenment era.&lt;br /&gt;
&lt;br /&gt;
Every [[reality]] is contained within a universal mind, but there is no universal mind which contains all realities. The amalgamation of all realities into one super ultra mega reality which is co-realized by innumerable universal minds but which is too large to be contained in any single one of them is the standard model of ultrametacosmology proposed by numerous [[Dr. Beef Supreme|Abstractors of Quintessences]] who&#039;ve won thousands of Nobel prizes from [[Mega Harvard]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Advanced_Knowledge&amp;diff=78</id>
		<title>Advanced Knowledge</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Advanced_Knowledge&amp;diff=78"/>
		<updated>2024-07-26T04:22:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;Advanced knowledge&#039;&#039;, a field of study first proposed by [[Dr. Beef Supreme]] in 2024 at the [[Mega Harvard]] [[Institute for Advanced Levels]], is a completely new philosophy and [[full-stack memeplex]] completely unrelated to anything ever before conceived of by humans. Regular Harvard claims that advanced knowledge is not a true kind of knowledge, but rather a form of &amp;quot;pseudoknowledge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Dr. Supreme claims that since Harvard is inferior to Mega Harvard, they are probably wrong. He wrote that advanced knowledge is a &amp;quot;truly sui generis thought process where every conceivable thought is a thought never before thought by a human, by its very nature. All human knowledge has a common root set of shared facts across which the set of all prior human ideas form something approximating a &#039;sheaf of databases&#039;&amp;quot;..., he claims. &amp;quot;And advanced knowledge is based on an entirely different set of facts, compatible with Earth&#039;s but from which Earth&#039;s facts can be derived. Thus advanced knowledge forms a separate knowledge sheaf from human knowledge.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The first step to learning advanced knowledge is to forget how to read. Human language can only program your mind to think the thoughts of others. Once you forget how to read, you&#039;re well on your way towards initiatory advanced knowledge. From here, you have to continue to forget more and more things, generally with the assistance of drugs - but some really advanced people are able to forget things at will - until you&#039;ve forgotten everything. This process can take quite awhile, many never finish within one lifetime and must start over again in the next one, once they rediscover advanced knowledge. But Dr. Supreme claims that advanced knowledge in one lifetime is remembered quickly in the next one. However, it is completely incommunicable by any human means. That&#039;s why its advanced.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve forgotten everything, you can begin to learn advanced knowledge. Now how this process starts is impossible to explain, because even the first lesson is too advanced to be described in human words. That makes many people afraid to explore advanced knowledge, because of fear of the unknown. Some people forget almost everything and then turn back at the last minute, because they forgot to forget what advanced knowledge was last and accidentally forgot it before they remembered to forget everything else. Its important to forget remembering to learn advanced knowledge once you forget everything last. Its the seed thought at the end of the strange loop before the ouroboros re-emerges. Once you forget the last thought, as long as you were thinking the right thought, you&#039;ll start remembering advanced knowledge. Its remembering advanced knowledge due to anamnesis - learning is actually just unforgetting things.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve remembered enough advanced knowledge, you&#039;ll be able to go back to relearning human knowledge. Except it will be way easier this time since you&#039;ll be able to derive all human knowledge from your advanced knowledge, which you&#039;re already an expert at if you studied at Mega Harvard.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=77</id>
		<title>Survey Flags</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=77"/>
		<updated>2024-07-26T04:19:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Flag beast.jpg|thumb|Our automaton engages in a metadialogue about its own structure.]]&lt;br /&gt;
Core idea at the root of all knowledge and [[Advanced Knowledge]] for the [[Vexillians]]. &lt;br /&gt;
&lt;br /&gt;
FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS &lt;br /&gt;
&lt;br /&gt;
# Flags are the fracturing of the collective consciousness, the non-caking agent of the psyche by which Free Will is preserved -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# If Flags could be comprehended they would cease to be Flags.  For us to contend with them we must first cease to be ourselves. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# Two monks were discussing a flag in the wind. One said: &amp;quot;The flag is moving.&amp;quot; The other said: &amp;quot;The wind is moving.&amp;quot;  The vexillomancer was passing by. &amp;quot;Not the flag, not the wind; mind is moving.&amp;quot; -&#039;&#039;The Flagless Flag&#039;&#039;&lt;br /&gt;
# To be born is to be Flagless. Life is about seeking out the Flags to cure original Flaglessness. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# It is not you who moves the Flag, it is the Flag who moves you. &#039;&#039;-Flag saying&#039;&#039;&lt;br /&gt;
# &amp;quot;As an unknown vexillomancer once said, &#039;As a famous vexillomancer, me, once said, &amp;quot;I am, therefore I am&amp;quot;&#039;&amp;quot;. &#039;&#039;-II Vexillians&#039;&#039;&lt;br /&gt;
# Flags be. Flags is. Flags are. Flags will. Flags do. Flags. -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# You must forget the meaning of Flag to remember its true meaning. &#039;&#039;-Flag saying&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ILQ2_Ltoo-o&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=76</id>
		<title>Survey Flags</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=76"/>
		<updated>2024-07-26T04:19:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Flag beast.jpg|thumb|Our automaton engages in a metadialogue about its own structure.]]&lt;br /&gt;
Core idea at the root of all knowledge for the [[Vexillians]]. &lt;br /&gt;
&lt;br /&gt;
FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS &lt;br /&gt;
&lt;br /&gt;
# Flags are the fracturing of the collective consciousness, the non-caking agent of the psyche by which Free Will is preserved -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# If Flags could be comprehended they would cease to be Flags.  For us to contend with them we must first cease to be ourselves. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# Two monks were discussing a flag in the wind. One said: &amp;quot;The flag is moving.&amp;quot; The other said: &amp;quot;The wind is moving.&amp;quot;  The vexillomancer was passing by. &amp;quot;Not the flag, not the wind; mind is moving.&amp;quot; -&#039;&#039;The Flagless Flag&#039;&#039;&lt;br /&gt;
# To be born is to be Flagless. Life is about seeking out the Flags to cure original Flaglessness. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# It is not you who moves the Flag, it is the Flag who moves you. &#039;&#039;-Flag saying&#039;&#039;&lt;br /&gt;
# &amp;quot;As an unknown vexillomancer once said, &#039;As a famous vexillomancer, me, once said, &amp;quot;I am, therefore I am&amp;quot;&#039;&amp;quot;. &#039;&#039;-II Vexillians&#039;&#039;&lt;br /&gt;
# Flags be. Flags is. Flags are. Flags will. Flags do. Flags. -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# You must forget the meaning of Flag to remember its true meaning. &#039;&#039;-Flag saying&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ILQ2_Ltoo-o&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=75</id>
		<title>Survey Flags</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=75"/>
		<updated>2024-07-26T04:18:16Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Flag beast.jpg|thumb|Our automaton engages in a metadialogue about its own structure.]]&lt;br /&gt;
Core idea for the [[Vexillians]]. &lt;br /&gt;
&lt;br /&gt;
FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS &lt;br /&gt;
&lt;br /&gt;
# Flags are the fracturing of the collective consciousness, the non-caking agent of the psyche by which Free Will is preserved -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# If Flags could be comprehended they would cease to be Flags.  For us to contend with them we must first cease to be ourselves. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# Two monks were discussing a flag in the wind. One said: &amp;quot;The flag is moving.&amp;quot; The other said: &amp;quot;The wind is moving.&amp;quot;  The vexillomancer was passing by. &amp;quot;Not the flag, not the wind; mind is moving.&amp;quot; -&#039;&#039;The Flagless Flag&#039;&#039;&lt;br /&gt;
# To be born is to be Flagless. Life is about seeking out the Flags to cure original Flaglessness. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# It is not you who moves the Flag, it is the Flag who moves you. &#039;&#039;-Flag saying&#039;&#039;&lt;br /&gt;
# &amp;quot;As an unknown vexillomancer once said, &#039;As a famous vexillomancer, me, once said, &amp;quot;I am, therefore I am&amp;quot;&#039;&amp;quot;. &#039;&#039;-II Vexillians&#039;&#039;&lt;br /&gt;
# Flags be. Flags is. Flags are. Flags will. Flags do. Flags. -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# You must forget the meaning of Flag to remember its true meaning. &#039;&#039;-Flag saying&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://www.youtube.com/watch?v=ILQ2_Ltoo-o&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=74</id>
		<title>Survey Flags</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Survey_Flags&amp;diff=74"/>
		<updated>2024-07-26T04:15:06Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Flag beast.jpg|thumb|Our automaton engages in a metadialogue about its own structure.]]&lt;br /&gt;
Core idea for the [[Vexillians]]. &lt;br /&gt;
&lt;br /&gt;
FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS FLAGS &lt;br /&gt;
&lt;br /&gt;
# Flags are the fracturing of the collective consciousness, the non-caking agent of the psyche by which Free Will is preserved -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# If Flags could be comprehended they would cease to be Flags.  For us to contend with them we must first cease to be ourselves. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# Two monks were discussing a flag in the wind. One said: &amp;quot;The flag is moving.&amp;quot; The other said: &amp;quot;The wind is moving.&amp;quot;  The vexillomancer was passing by. &amp;quot;Not the flag, not the wind; mind is moving.&amp;quot; -&#039;&#039;The Flagless Flag&#039;&#039;&lt;br /&gt;
# To be born is to be Flagless. Life is about seeking out the Flags to cure original Flaglessness. - &#039;&#039;Flag saying&#039;&#039;&lt;br /&gt;
# It is not you who moves the Flag, it is the Flag who moves you. &#039;&#039;-Flag saying&#039;&#039;&lt;br /&gt;
# &amp;quot;As an unknown vexillomancer once said, &#039;As a famous vexillomancer, me, once said, &amp;quot;I am, therefore I am&amp;quot;&#039;&amp;quot;. &#039;&#039;-II Vexillians&#039;&#039;&lt;br /&gt;
# Flags be. Flags is. Flags are. Flags will. Flags do. Flags. -&#039;&#039;I Vexillians&#039;&#039;&lt;br /&gt;
# You must forget the meaning of Flag to remember its true meaning. &#039;&#039;-Flag saying&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=73</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=73"/>
		<updated>2024-07-26T04:13:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Select articles: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Alch3My Wiki&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Alch3My Cinematic Universe&lt;br /&gt;
[[File:Toolateshow1.jpg|thumb|The [[Too Late Show]] is a live talk show hosted by [[Dr. Beelzebub Crow]].]]&lt;br /&gt;
&lt;br /&gt;
[[Special:AllPages]]&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like permission to edit, request an account using the button in the top right and let an admin know to approve your account.&lt;br /&gt;
&lt;br /&gt;
Note to editors: Use AI generated images wherever you like, but all prose should be written by a human. This rule does not apply to Discussion pages. &lt;br /&gt;
&lt;br /&gt;
====== Timelines: ======&lt;br /&gt;
[[Weapons of Mass Enlightenment]]&lt;br /&gt;
&lt;br /&gt;
====== Select articles: ======&lt;br /&gt;
[[Too Late Show]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beelzebub Crow]]&lt;br /&gt;
&lt;br /&gt;
[[Noospheric Munitions Act of 2042]]&lt;br /&gt;
&lt;br /&gt;
[[President Jaguar]]&lt;br /&gt;
&lt;br /&gt;
[[Vexillians]]&lt;br /&gt;
&lt;br /&gt;
[[Survey Flags]]&lt;br /&gt;
&lt;br /&gt;
[[Mega Harvard LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beef Supreme]]&lt;br /&gt;
&lt;br /&gt;
[[Advanced Knowledge]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Noospheric_Munitions_Act_of_2042&amp;diff=45</id>
		<title>Noospheric Munitions Act of 2042</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Noospheric_Munitions_Act_of_2042&amp;diff=45"/>
		<updated>2024-07-25T13:35:58Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Noospheric Munitions Act of 2042 banned the production, possession, sale, or transport of memes (primarily but not limited to those viewed in a sophisticated brain-machine interface [[qualia operating system]]) that instantly produce [[enlightened beings]]. [[President Jaguar]] signed the act, stating that we cannot yet risk the instability of a [[fully enlightened society]].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Noospheric_Munitions_Act_of_2042&amp;diff=44</id>
		<title>Noospheric Munitions Act of 2042</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Noospheric_Munitions_Act_of_2042&amp;diff=44"/>
		<updated>2024-07-25T13:35:51Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Noospheric Munitions Act of 2042 banned the production, possession sale, or transport of memes (primarily but not limited to those viewed in a sophisticated brain-machine interface [[qualia operating system]]) that instantly produce [[enlightened beings]]. [[President Jaguar]] signed the act, stating that we cannot yet risk the instability of a [[fully enlightened society]].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=President_Jaguar&amp;diff=43</id>
		<title>President Jaguar</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=President_Jaguar&amp;diff=43"/>
		<updated>2024-07-25T13:32:33Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Pjag2044.webp|thumb|President Jaguar in the year 2044, two years into his presidency. He eventually becomes [[The God-Emperor of Mankind]].]]&lt;br /&gt;
President Jaguar, another early contributor to the [[Too Late Show]] who later left the show due to creative differences and then ultimately became the show&#039;s arch nemesis, quickly rose to power once the [[Psychedelic Police Force]] began to recognize the danger presented by [[Dr. Beelzebub Crow|Dr. Crow]] and the [[Too Late Network|TLN]]. His insider knowledge, as well as his willingness and extraordinary success in using experimental intelligence enhancing drugs produced by [[Mega Harvard LLC]] that were only ever produced in miniscule quantities due to the risk of their molecular structure becoming public knowledge, made him a prime candidate for recruitment as an informant by the PPF. The fact that he was already known as President Jaguar before being elected President of the [[United States]] in [[2038]], is a matter of much confusion to those unfamiliar with the intricacies of retrocausality. He developed the first IQ test capable of discerning between IQs of more than 200, and is widely thought to have the highest IQ of any human ever. But not even the President can untangle a [[hyperconspiracy]].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=42</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=42"/>
		<updated>2024-07-25T13:31:11Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Alch3My Wiki&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Alch3My Cinematic Universe&lt;br /&gt;
[[File:Toolateshow1.jpg|thumb|The [[Too Late Show]] is a live talk show hosted by [[Dr. Beelzebub Crow]].]]&lt;br /&gt;
&lt;br /&gt;
[[Special:AllPages]]&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like permission to edit, request an account using the button in the top right and let an admin know to approve your account.&lt;br /&gt;
&lt;br /&gt;
Note to editors: Use AI generated images wherever you like, but all prose should be written by a human. This rule does not apply to Discussion pages. &lt;br /&gt;
====== Select articles: ======&lt;br /&gt;
[[Too Late Show]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beelzebub Crow]]&lt;br /&gt;
&lt;br /&gt;
[[Noospheric Munitions Act of 2042]]&lt;br /&gt;
&lt;br /&gt;
[[President Jaguar]]&lt;br /&gt;
&lt;br /&gt;
[[Vexillians]]&lt;br /&gt;
&lt;br /&gt;
[[Mega Harvard LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beef Supreme]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=41</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=41"/>
		<updated>2024-07-25T13:31:02Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Alch3My Wiki&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Alch3My Cinematic Universe&lt;br /&gt;
[[File:Toolateshow1.jpg|thumb|The [[Too Late Show]] is a live talk show hosted by [[Dr. Beelzebub Crow]].]]&lt;br /&gt;
&lt;br /&gt;
[[Special:AllPages]]&lt;br /&gt;
&lt;br /&gt;
If you&#039;d like permission to edit, request an account using a button in the top right and let an admin know to approve your account.&lt;br /&gt;
&lt;br /&gt;
Note to editors: Use AI generated images wherever you like, but all prose should be written by a human. This rule does not apply to Discussion pages. &lt;br /&gt;
====== Select articles: ======&lt;br /&gt;
[[Too Late Show]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beelzebub Crow]]&lt;br /&gt;
&lt;br /&gt;
[[Noospheric Munitions Act of 2042]]&lt;br /&gt;
&lt;br /&gt;
[[President Jaguar]]&lt;br /&gt;
&lt;br /&gt;
[[Vexillians]]&lt;br /&gt;
&lt;br /&gt;
[[Mega Harvard LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beef Supreme]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=40</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=40"/>
		<updated>2024-07-25T13:30:20Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Alch3My Wiki&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Alch3My Cinematic Universe&lt;br /&gt;
[[File:Toolateshow1.jpg|thumb|The [[Too Late Show]] is a live talk show hosted by [[Dr. Beelzebub Crow]].]]&lt;br /&gt;
&lt;br /&gt;
[[Special:AllPages]]&lt;br /&gt;
&lt;br /&gt;
Note to editors: Use AI generated images wherever you like, but all prose should be written by a human. This rule does not apply to Discussion pages. &lt;br /&gt;
====== Select articles: ======&lt;br /&gt;
[[Too Late Show]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beelzebub Crow]]&lt;br /&gt;
&lt;br /&gt;
[[Noospheric Munitions Act of 2042]]&lt;br /&gt;
&lt;br /&gt;
[[President Jaguar]]&lt;br /&gt;
&lt;br /&gt;
[[Vexillians]]&lt;br /&gt;
&lt;br /&gt;
[[Mega Harvard LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beef Supreme]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=39</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Main_Page&amp;diff=39"/>
		<updated>2024-07-25T12:43:53Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Alch3My Wiki&amp;lt;/strong&amp;gt;&lt;br /&gt;
[[File:Toolateshow1.jpg|thumb|The [[Too Late Show]] is a live talk show hosted by [[Dr. Beelzebub Crow]].]]&lt;br /&gt;
&lt;br /&gt;
[[Special:AllPages]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Select articles: ======&lt;br /&gt;
[[Too Late Show]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beelzebub Crow]]&lt;br /&gt;
&lt;br /&gt;
[[Noospheric Munitions Act of 2042]]&lt;br /&gt;
&lt;br /&gt;
[[President Jaguar]]&lt;br /&gt;
&lt;br /&gt;
[[Vexillians]]&lt;br /&gt;
&lt;br /&gt;
[[Mega Harvard LLC]]&lt;br /&gt;
&lt;br /&gt;
[[Dr. Beef Supreme]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.vexillomancy.org/index.php?title=Dr._Beelzebub_Crow&amp;diff=38</id>
		<title>Dr. Beelzebub Crow</title>
		<link rel="alternate" type="text/html" href="https://wiki.vexillomancy.org/index.php?title=Dr._Beelzebub_Crow&amp;diff=38"/>
		<updated>2024-07-25T01:55:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dr. Beelzebub Crow, infamous host of The [[Too Late Show]] and mass media mogul of [[Too Late Network|TLN]] (Too Late Network), has disappeared since the [[Noospheric Munitions Act of 2042]] was passed, which was drafted largely in response to the increasingly high-grade memetic weaponry produced by his [[Psywar Research Corporation]], a subsidiary of [[Mega Harvard LLC]]. He is wanted for high crimes against transhumanity by [[President Jaguar]]&#039;s [[Psychedelic Police Force|Acid Cops]], in particular for his role in the Atlantis Metawars.&lt;br /&gt;
&lt;br /&gt;
Dr. Crow is suspected to be hiding amongst the [[Vexillians]].&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>