<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://petitplanet.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AKo-rm</id>
	<title>Module:Ko-rm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://petitplanet.wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AKo-rm"/>
	<link rel="alternate" type="text/html" href="https://petitplanet.wiki/index.php?title=Module:Ko-rm&amp;action=history"/>
	<updated>2026-04-15T06:50:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://petitplanet.wiki/index.php?title=Module:Ko-rm&amp;diff=63&amp;oldid=prev</id>
		<title>ReisuDesign: Created page with &quot;-- based on Wiktionary wikt:Module:ko-translit wikt:Module:ko-pron wikt:Module:ko-pron/data wikt:Module:ko local p = {} local Ugsub = mw.ustring.gsub local Umatch = mw.ustring.match local Ufind = mw.ustring.find local Usub = mw.ustring.sub local Uchar = mw.ustring.char local codepoint = mw.ustring.codepoint local data = mw.loadData(&#039;Module:Ko-rm/data&#039;) local lib = require(&#039;Module:Feature&#039;) local CleanTT = require(&#039;Module:Tt&#039;).CleanTT local IPCvals = { 	[&#039;...&quot;</title>
		<link rel="alternate" type="text/html" href="https://petitplanet.wiki/index.php?title=Module:Ko-rm&amp;diff=63&amp;oldid=prev"/>
		<updated>2025-11-09T13:07:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- based on Wiktionary &lt;a href=&quot;https://en.wiktionary.org/wiki/Module:ko-translit&quot; class=&quot;extiw&quot; title=&quot;wikt:Module:ko-translit&quot;&gt;wikt:Module:ko-translit&lt;/a&gt; &lt;a href=&quot;https://en.wiktionary.org/wiki/Module:ko-pron&quot; class=&quot;extiw&quot; title=&quot;wikt:Module:ko-pron&quot;&gt;wikt:Module:ko-pron&lt;/a&gt; &lt;a href=&quot;https://en.wiktionary.org/wiki/Module:ko-pron/data&quot; class=&quot;extiw&quot; title=&quot;wikt:Module:ko-pron/data&quot;&gt;wikt:Module:ko-pron/data&lt;/a&gt; &lt;a href=&quot;https://en.wiktionary.org/wiki/Module:ko&quot; class=&quot;extiw&quot; title=&quot;wikt:Module:ko&quot;&gt;wikt:Module:ko&lt;/a&gt; local p = {} local Ugsub = mw.ustring.gsub local Umatch = mw.ustring.match local Ufind = mw.ustring.find local Usub = mw.ustring.sub local Uchar = mw.ustring.char local codepoint = mw.ustring.codepoint local data = mw.loadData(&amp;#039;Module:Ko-rm/data&amp;#039;) local lib = require(&amp;#039;Module:Feature&amp;#039;) local CleanTT = require(&amp;#039;Module:Tt&amp;#039;).CleanTT local IPCvals = { 	[&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- based on Wiktionary [[wikt:Module:ko-translit]] [[wikt:Module:ko-pron]] [[wikt:Module:ko-pron/data]] [[wikt:Module:ko]]&lt;br /&gt;
local p = {}&lt;br /&gt;
local Ugsub = mw.ustring.gsub&lt;br /&gt;
local Umatch = mw.ustring.match&lt;br /&gt;
local Ufind = mw.ustring.find&lt;br /&gt;
local Usub = mw.ustring.sub&lt;br /&gt;
local Uchar = mw.ustring.char&lt;br /&gt;
local codepoint = mw.ustring.codepoint&lt;br /&gt;
local data = mw.loadData(&amp;#039;Module:Ko-rm/data&amp;#039;)&lt;br /&gt;
local lib = require(&amp;#039;Module:Feature&amp;#039;)&lt;br /&gt;
local CleanTT = require(&amp;#039;Module:Tt&amp;#039;).CleanTT&lt;br /&gt;
local IPCvals = {&lt;br /&gt;
	[&amp;#039;nn&amp;#039;]		= {},&lt;br /&gt;
	[&amp;#039;ni&amp;#039;]		= {},&lt;br /&gt;
	[&amp;#039;bcred&amp;#039;]	= { offset = -1, alias = {&amp;#039;bd&amp;#039;, &amp;#039;bc&amp;#039;} }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		parentFirst = true,&lt;br /&gt;
		wrappers = {&amp;#039;Template:Ko-rm&amp;#039;}&lt;br /&gt;
	})&lt;br /&gt;
	if (not args[1]) then return &amp;#039;&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local str = CleanTT(mw.text.unstrip(args[1]))&lt;br /&gt;
	-- mw.logObject(&amp;#039;input&amp;#039; .. args[1]) --debug&lt;br /&gt;
	-- mw.logObject(&amp;#039;cleaned&amp;#039; .. str) --debug&lt;br /&gt;
	&lt;br /&gt;
	str = Ugsub(str, &amp;#039;%([一-鿿㐀-䶿𠀀-𮯯𰀀-𱍏]+%)&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;quot;%([一-鿿㐀-䶿𠀀-𮯯𰀀-𱍏]*&amp;#039;&amp;#039;&amp;#039;[一-鿿㐀-䶿𠀀-𮯯𰀀-𱍏]+&amp;#039;&amp;#039;&amp;#039;[一-鿿㐀-䶿𠀀-𮯯𰀀-𱍏]*%)&amp;quot;, &amp;#039;&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;[一-鿿㐀-䶿𠀀-𮯯𰀀-𱍏]+%((.-)%)&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;&amp;lt;sup.-※.-&amp;lt;/sup&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;&amp;lt;span.-title.-&amp;gt;(.-)&amp;lt;/span&amp;gt;&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;&amp;lt;[%w%p]+:(.-)&amp;gt;&amp;#039;, &amp;#039;%1&amp;#039;) --for manual readings&lt;br /&gt;
	str = Ugsub(str, &amp;#039;&amp;lt;%-&amp;gt;&amp;#039;, &amp;#039;-&amp;#039;) --for manual hyphenation&lt;br /&gt;
	str = Ugsub(str, &amp;#039;&amp;lt; &amp;gt;&amp;#039;, &amp;#039; &amp;#039;) --for manual spacing&lt;br /&gt;
	&lt;br /&gt;
	-- manual inserting of irregular pronunciation corrections (IPC)&lt;br /&gt;
	while (function() -- Run if any of the IPC are present&lt;br /&gt;
		for n, d in pairs(IPCvals) do&lt;br /&gt;
			if Ufind(str, &amp;#039;&amp;lt;&amp;#039; .. n .. &amp;#039;&amp;gt;&amp;#039;) ~= nil then mw.logObject(n, &amp;#039;n&amp;#039;)return true end&lt;br /&gt;
			if d.alias and #d.alias&amp;gt;0 then&lt;br /&gt;
				for _, a in ipairs(d.alias) do&lt;br /&gt;
					if Ufind(str, &amp;#039;&amp;lt;&amp;#039; .. a .. &amp;#039;&amp;gt;&amp;#039;) ~= nil then mw.logObject(a, &amp;#039;a&amp;#039;) return true end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	end)() do&lt;br /&gt;
		local ref, rpl, pos, off = &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, nil, 0&lt;br /&gt;
		for n, d in pairs(IPCvals) do&lt;br /&gt;
			local vpos = Ufind(str, &amp;#039;&amp;lt;&amp;#039; .. n .. &amp;#039;&amp;gt;&amp;#039;)&lt;br /&gt;
			if vpos ~= nil and (pos == nil or pos &amp;gt; vpos) then&lt;br /&gt;
				pos = Ufind(str, &amp;#039;&amp;lt;&amp;#039; .. n .. &amp;#039;&amp;gt;&amp;#039;)&lt;br /&gt;
				rpl = n&lt;br /&gt;
				off = tonumber(d.offset) or 0&lt;br /&gt;
				ref = n&lt;br /&gt;
			end&lt;br /&gt;
			if d.alias and #d.alias&amp;gt;0 then&lt;br /&gt;
				for _, a in ipairs(d.alias) do&lt;br /&gt;
					vpos = Ufind(str, &amp;#039;&amp;lt;&amp;#039; .. a .. &amp;#039;&amp;gt;&amp;#039;)&lt;br /&gt;
					if vpos ~= nil and (pos == nil or pos &amp;gt; vpos) then&lt;br /&gt;
						pos = Ufind(str, &amp;#039;&amp;lt;&amp;#039; .. a .. &amp;#039;&amp;gt;&amp;#039;)&lt;br /&gt;
						rpl = a&lt;br /&gt;
						off = tonumber(d.offset) or 0&lt;br /&gt;
						ref = n&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if rpl ~= &amp;#039;&amp;#039; and ref ~= &amp;#039;&amp;#039; and pos ~= nil then&lt;br /&gt;
			str = Ugsub(str, &amp;#039;&amp;lt;&amp;#039; .. rpl .. &amp;#039;&amp;gt;&amp;#039;, &amp;#039;&amp;#039;, 1)&lt;br /&gt;
			pos = mw.ustring.len(Ugsub((Usub(str, 0, pos)), &amp;#039;[^가-힣 ]&amp;#039;, &amp;#039;&amp;#039;))&lt;br /&gt;
			args[ref] = (args[ref] or &amp;#039;-1&amp;#039;) .. &amp;#039;,&amp;#039; .. tostring(pos+off)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not Umatch(str, &amp;#039;[가-힣]&amp;#039;) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--pronunciation exception(s)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;여덟&amp;#039;, &amp;#039;여덜&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅰ&amp;#039;, &amp;#039;일&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅱ&amp;#039;, &amp;#039;이&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅲ&amp;#039;, &amp;#039;삼&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅳ&amp;#039;, &amp;#039;사&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅴ&amp;#039;, &amp;#039;오&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅵ&amp;#039;, &amp;#039;육&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅶ&amp;#039;, &amp;#039;칠&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅷ&amp;#039;, &amp;#039;팔&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅸ&amp;#039;, &amp;#039;구&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;Ⅹ&amp;#039;, &amp;#039;십&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- pre-romanization punctuation conversion&lt;br /&gt;
	str = Ugsub(str, &amp;#039;[《「『【]&amp;#039;, &amp;#039;“&amp;#039;)&lt;br /&gt;
	str = Ugsub(str, &amp;#039;[》」』】]&amp;#039;, &amp;#039;”&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	local revised = p.romanize(str, args)&lt;br /&gt;
&lt;br /&gt;
	if (not revised) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--mw.logObject(revised,&amp;#039;revised&amp;#039;) --debug&lt;br /&gt;
	&lt;br /&gt;
	if Umatch(revised, &amp;#039;[%.%?%!]&amp;#039;) then&lt;br /&gt;
		revised = mw.ustring.upper(Usub(revised, 1, 1)) .. Usub(revised, 2, -1)&lt;br /&gt;
		revised = Ugsub(revised, &amp;quot;([%.%?%!]) ([a-z%&amp;#039;])&amp;quot;, &amp;#039;%1 ^%2&amp;#039;)&lt;br /&gt;
		revised = Ugsub(revised, &amp;quot;^%&amp;#039;%&amp;#039;%&amp;#039;&amp;quot;, &amp;quot;&amp;#039;&amp;#039;&amp;#039;^&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	revised = Ugsub(revised, &amp;quot;([a-z])%-%&amp;#039;([a-z])&amp;quot;, &amp;#039;%1-%2&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;quot;%^%&amp;#039;%&amp;#039;%&amp;#039;&amp;quot;, &amp;quot;&amp;#039;&amp;#039;&amp;#039;^&amp;quot;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;%^%l&amp;#039;, mw.ustring.upper)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;%^&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;quot;%-&amp;#039;&amp;#039;&amp;#039;%-&amp;quot;, &amp;quot;&amp;#039;&amp;#039;&amp;#039;-&amp;quot;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;%-%-&amp;#039;, &amp;#039;-&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	--punctuation fixing&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;…&amp;#039;, &amp;#039;...&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;！&amp;#039;, &amp;#039;!&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;？&amp;#039;, &amp;#039;?&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;”([A-Za-z])&amp;#039;, &amp;#039;”-%1&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;(//[^/@]-@@[^/@]-@@//)%-?([A-Za-z])&amp;#039;, &amp;#039;%1-%2&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;[·・]&amp;#039;, &amp;#039; - &amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;——&amp;#039;, &amp;#039;⸺&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;&amp;amp;mdash;&amp;amp;mdash;&amp;#039;, &amp;#039;⸺&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	--secondary romanisation system&lt;br /&gt;
	while revised:find(&amp;#039;^.-//[^/]-//.-$&amp;#039;) do&lt;br /&gt;
		local pre, dur, dur3, post = string.match(revised, &amp;#039;^(.-)//([^@/]-)@@([^@/]-)@@//(.-)$&amp;#039;)&lt;br /&gt;
		if dur3 ~= nil then&lt;br /&gt;
			--mw.logObject(pre,&amp;#039;pre&amp;#039;) mw.logObject(dur,&amp;#039;dur&amp;#039;) mw.logObject(post,&amp;#039;post&amp;#039;) --debug&lt;br /&gt;
			if mw.ustring.lower(dur3) ~= mw.ustring.lower(dur) then&lt;br /&gt;
				dur = &amp;#039;&amp;lt;span style=&amp;quot;border-bottom-width:1px; border-bottom-style:dotted; border-bottom-color:rgb(128, 128, 128); cursor:help;&amp;quot; title=&amp;quot;Spelled: &amp;#039; .. p.capitalizer(dur3, true):gsub(&amp;#039;&amp;quot;&amp;#039;,&amp;#039;&amp;amp;quot;&amp;#039;) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. p.capitalizer(dur, true) .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				dur = p.capitalizer(dur, true)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			pre, dur, post = string.match(revised, &amp;#039;^(.-)//([^/]-)//(.-)$&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		revised = pre .. dur .. post&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--all case (|capi=1) or sentence case (|sent=1)&lt;br /&gt;
	if (args.capi or args.sent) then&lt;br /&gt;
		revised = p.capitalizer(revised, (args.capi or nil))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--post-capitalization punctuation fixing&lt;br /&gt;
	revised = Ugsub(revised, &amp;quot;”&amp;#039;&amp;quot;, &amp;#039;”-&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;[“”]&amp;#039;, &amp;#039;&amp;quot;&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;([%a])(%d+)&amp;#039;, &amp;#039;%1-%2&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;(%d+)([%a])&amp;#039;, &amp;#039;%1-%2&amp;#039;)&lt;br /&gt;
	revised = Ugsub(revised, &amp;#039;(%d+)-[Pp]x&amp;#039;, &amp;#039;%1px&amp;#039;) --lazy fix for accidental hyphenation of pixel amounts&lt;br /&gt;
	&lt;br /&gt;
	return revised&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.romanize(text_param, args)&lt;br /&gt;
	local P, optional_params = {}, { &amp;#039;nn&amp;#039;, &amp;#039;ni&amp;#039;, &amp;#039;bcred&amp;#039; }&lt;br /&gt;
	for _, pm in ipairs(optional_params) do&lt;br /&gt;
		P[pm] = { }&lt;br /&gt;
		if args[pm] then&lt;br /&gt;
			for pp in lib.gsplit(args[pm], &amp;#039;,&amp;#039;, {removeEmpty=true}) do P[pm][tonumber(pp) or pp] = 1 end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	--mw.logObject(P,&amp;#039;P&amp;#039;) --debug&lt;br /&gt;
	&lt;br /&gt;
	local T_index, T_next_index = 0,0&lt;br /&gt;
	local rom3 = false&lt;br /&gt;
&lt;br /&gt;
	text_param = Ugsub(text_param, &amp;#039;[&amp;quot;](.)&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	for primitive_word in mw.ustring.gmatch(text_param, &amp;#039;[%-ᄀ-ᄒ&amp;#039; .. &amp;#039;ᅡ-ᅵ&amp;#039; .. &amp;#039;ᆨ-ᇂ&amp;#039; .. &amp;quot;ㄱ-ㅣ가-힣&amp;#039; /「」%^]+&amp;quot;) do&lt;br /&gt;
		--mw.logObject(primitive_word,&amp;#039;primitive_word&amp;#039;) --debug&lt;br /&gt;
		--mw.logObject(text_param,&amp;#039;text_param&amp;#039;) --debug&lt;br /&gt;
		local the_original = primitive_word&lt;br /&gt;
		primitive_word = Ugsub(primitive_word, &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot;, &amp;#039;ß&amp;#039;)&lt;br /&gt;
		local bold_position, bold_count = {}, 0&lt;br /&gt;
		while Umatch(primitive_word, &amp;#039;ß&amp;#039;) do&lt;br /&gt;
			bold_position[(mw.ustring.find(primitive_word, &amp;#039;ß&amp;#039;)) + bold_count] = true&lt;br /&gt;
			primitive_word = Ugsub(primitive_word, &amp;#039;ß&amp;#039;, &amp;#039;&amp;#039;, 1)&lt;br /&gt;
			bold_count = bold_count + 1&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local word_set = { primitive_word }&lt;br /&gt;
&lt;br /&gt;
		local word_set_romanisations = {}&lt;br /&gt;
		for _, respelling in ipairs(word_set) do&lt;br /&gt;
			--mw.logObject(word_set,&amp;#039;word_set&amp;#039;) --debug&lt;br /&gt;
			--mw.logObject(respelling,&amp;#039;respelling&amp;#039;) --debug&lt;br /&gt;
			local decomposed_syllables = p.decompose_syllable(respelling)&lt;br /&gt;
			--mw.logObject(decomposed_syllables,&amp;#039;decomposed_syllables&amp;#039;) --debug&lt;br /&gt;
			local romanisation = {}&lt;br /&gt;
			local romanisation3 = {}&lt;br /&gt;
			local bold_insert_count = 0&lt;br /&gt;
			for index = 0, #decomposed_syllables, 1 do&lt;br /&gt;
				if index ~= 0 then T_index = T_index + 1 end&lt;br /&gt;
				local this_syllable_text = index ~= 0 and Usub(respelling, index, index) or &amp;#039;&amp;#039;&lt;br /&gt;
				local forced = &amp;#039;&amp;#039;&lt;br /&gt;
				--mw.logObject(this_syllable_text,&amp;#039;this_syllable_text_I&amp;#039;) --debug&lt;br /&gt;
				while Umatch(this_syllable_text, &amp;#039;[/「」^]&amp;#039;) do&lt;br /&gt;
					forced = forced .. this_syllable_text&lt;br /&gt;
					respelling = Usub(respelling, 2, -1)&lt;br /&gt;
					this_syllable_text = index ~= 0 and Usub(respelling, index, index) or &amp;#039;&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				--mw.logObject(forced,&amp;#039;forced&amp;#039;) --debug&lt;br /&gt;
				if (forced:find(&amp;#039;//&amp;#039;) and (not rom3)) then&lt;br /&gt;
					rom3 = true&lt;br /&gt;
				elseif forced:find(&amp;#039;//&amp;#039;) then&lt;br /&gt;
					rom3 = false&lt;br /&gt;
				end&lt;br /&gt;
				--mw.logObject(this_syllable_text,&amp;#039;this_syllable_text_F&amp;#039;) --debug&lt;br /&gt;
				if this_syllable_text == &amp;#039;-&amp;#039; then&lt;br /&gt;
					if ((not rom3) and #romanisation3 &amp;gt; 0) then&lt;br /&gt;
						table.remove(romanisation3)&lt;br /&gt;
						table.remove(romanisation3)&lt;br /&gt;
						table.insert(romanisation, #romanisation-(#romanisation&amp;gt;0 and 1 or 0),  &amp;#039;@@&amp;#039; .. Ugsub(table.concat(romanisation3), &amp;quot;[^A-Za-z\&amp;quot;]$&amp;quot;, &amp;#039;&amp;#039;) .. &amp;#039;@@&amp;#039;)&lt;br /&gt;
						romanisation3 = {}&lt;br /&gt;
						table.insert(romanisation, #romanisation-(#romanisation&amp;gt;0 and 1 or 0), forced)&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					T_next_index = T_index&lt;br /&gt;
					local syllable = decomposed_syllables[index] or { initial = &amp;#039;Ø&amp;#039;, vowel = &amp;#039;Ø&amp;#039;, final = &amp;#039;X&amp;#039; }&lt;br /&gt;
					local next_index = index&lt;br /&gt;
					local next_syllable_text&lt;br /&gt;
					local saw_hyphen_after = false&lt;br /&gt;
					while true do&lt;br /&gt;
						next_index = next_index + 1&lt;br /&gt;
						T_next_index = T_next_index + 1&lt;br /&gt;
						next_syllable_text = next_index &amp;gt; #decomposed_syllables and &amp;#039;&amp;#039; or Usub(respelling, next_index, next_index)&lt;br /&gt;
						if next_syllable_text ~= &amp;#039;-&amp;#039; then&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
						saw_hyphen_after = true&lt;br /&gt;
					end&lt;br /&gt;
					local next_syllable = decomposed_syllables[next_index] or { initial = &amp;#039;Ø&amp;#039;, vowel = &amp;#039;Ø&amp;#039;, final = &amp;#039;Ø&amp;#039; }&lt;br /&gt;
					syllable.final = data.FSC[syllable.final] or syllable.final&lt;br /&gt;
&lt;br /&gt;
					if this_syllable_text == &amp;#039;넓&amp;#039; then&lt;br /&gt;
						if Umatch(next_syllable.initial, &amp;#039;[ᄌᄉ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆸ&amp;#039;&lt;br /&gt;
&lt;br /&gt;
						elseif next_syllable.initial == &amp;#039;ᄃ&amp;#039; then&lt;br /&gt;
							if Umatch(next_syllable.vowel, &amp;#039;[^ᅡᅵ]&amp;#039;) then&lt;br /&gt;
								syllable.final = &amp;#039;ᆸ&amp;#039;&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					local vowel = data.vowels[syllable.vowel][2]&lt;br /&gt;
					&lt;br /&gt;
					if P.nn[T_next_index] and Umatch(syllable.final .. next_syllable.initial, &amp;#039;ᆫᄅ&amp;#039;) then&lt;br /&gt;
						next_syllable.initial = &amp;#039;ᄂ&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if P.ni[T_next_index] and next_syllable.initial == &amp;#039;ᄋ&amp;#039; and  Umatch(next_syllable.vowel, &amp;#039;[ᅵᅣᅧᅭᅲ]&amp;#039;) then&lt;br /&gt;
						next_syllable.initial = &amp;#039;ᄂ&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if P.bcred[T_index] then&lt;br /&gt;
						syllable.final = data.boundary[syllable.final .. &amp;#039;-Ø&amp;#039;][1]&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if index ~= 0 and this_syllable_text == &amp;#039;밟&amp;#039; and not&lt;br /&gt;
						Umatch(next_syllable.initial, &amp;#039;[ᄋᄒ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆸ&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if Umatch(this_syllable_text, &amp;#039;[닭뷁삵슭앍줅찱칡탉흙]&amp;#039;) and not&lt;br /&gt;
						Umatch(next_syllable.initial .. &amp;#039;;&amp;#039; .. next_syllable.vowel, &amp;#039;ᄋ;[ᅦᅧᅳᅴᅵ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆨ&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if next_syllable_text == &amp;#039;없&amp;#039; then&lt;br /&gt;
						if Umatch(syllable.final, &amp;#039;[ᆩᆪᆰᆿ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆨ&amp;#039;&lt;br /&gt;
						elseif Umatch(syllable.final, &amp;#039;[ᆬᆭ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆫ&amp;#039;&lt;br /&gt;
						elseif Umatch(syllable.final, &amp;#039;[ᆺᆻᆽᆾᇀ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆮ&amp;#039;&lt;br /&gt;
						elseif Umatch(syllable.final, &amp;#039;[ᆲᆳᆴᆶ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆯ&amp;#039;&lt;br /&gt;
						elseif syllable.final == &amp;#039;ᆱ&amp;#039; then&lt;br /&gt;
							syllable.final = &amp;#039;ᆷ&amp;#039;&lt;br /&gt;
						elseif Umatch(syllable.final, &amp;#039;[ᆵᆹᇁ]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆸ&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if (not P.bcred[T_index]) then&lt;br /&gt;
						if Umatch(syllable.final .. next_syllable.initial, &amp;#039;ᇀᄋ&amp;#039;) then&lt;br /&gt;
							if Umatch(next_syllable.vowel, &amp;#039;[ᅵᅧ]&amp;#039;) then&lt;br /&gt;
								syllable.final = &amp;#039;ᆾ&amp;#039;&lt;br /&gt;
							end&lt;br /&gt;
&lt;br /&gt;
						elseif Umatch(syllable.final .. next_syllable.initial, &amp;#039;ᆴᄋ&amp;#039;) then&lt;br /&gt;
							if Umatch(next_syllable.vowel, &amp;#039;[ᅵᅧ]&amp;#039;) then&lt;br /&gt;
								syllable.final = &amp;#039;ᆯ&amp;#039;&lt;br /&gt;
								next_syllable.initial = &amp;#039;ᄎ&amp;#039;&lt;br /&gt;
							end&lt;br /&gt;
&lt;br /&gt;
						elseif Umatch(syllable.final .. next_syllable.initial, &amp;#039;ᆮᄋ&amp;#039;) and tonumber(s_variation or -1) ~= index then&lt;br /&gt;
							if Umatch(next_syllable.vowel, &amp;#039;[ᅵᅧ]&amp;#039;) then&lt;br /&gt;
								syllable.final = &amp;#039;ᆽ&amp;#039;&lt;br /&gt;
							end&lt;br /&gt;
&lt;br /&gt;
						elseif Umatch(syllable.final .. next_syllable.initial, &amp;#039;ᆮᄒ&amp;#039;) then&lt;br /&gt;
							if Umatch(next_syllable.vowel, &amp;#039;[ᅵᅧ]&amp;#039;) then&lt;br /&gt;
								syllable.final = &amp;#039;ᆾ&amp;#039;&lt;br /&gt;
								next_syllable.initial = &amp;#039;ᄋ&amp;#039;&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if syllable.final .. next_syllable.initial == &amp;#039;ᆺᄋ&amp;#039; and not&lt;br /&gt;
						Umatch(next_syllable_text, &amp;#039;[아았어었에으은을음읍의이인일임입있]&amp;#039;) then&lt;br /&gt;
							syllable.final = &amp;#039;ᆮ&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					local bound = syllable.final .. &amp;#039;-&amp;#039; .. next_syllable.initial&lt;br /&gt;
					if (not data.boundary[bound]) then&lt;br /&gt;
						mw.log(&amp;#039;No boundary data for &amp;#039; .. bound .. &amp;#039;.&amp;#039;)&lt;br /&gt;
						return nil&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					local junction = data.boundary[bound][2]&lt;br /&gt;
					local junction3 = data.boundary[bound][3] or data.boundary[bound][2]&lt;br /&gt;
					--mw.logObject(junction, &amp;#039;junction&amp;#039;) --debug&lt;br /&gt;
					--mw.logObject(junction3, &amp;#039;junction3&amp;#039;) --debug&lt;br /&gt;
					&lt;br /&gt;
					if bold_position[index + bold_insert_count + 1] then&lt;br /&gt;
						junction = Ugsub(junction, &amp;#039;^.*$&amp;#039;, function(matched)&lt;br /&gt;
							local a, b = string.match(matched, &amp;#039;^(ng);(.*)$&amp;#039;)&lt;br /&gt;
							if ((not a) and (not b)) then a, b = string.match(matched, &amp;#039;^(.?%-?);(.*)$&amp;#039;) end&lt;br /&gt;
							return Umatch(syllable.final .. next_syllable.initial, &amp;#039;^Ø?[ᄀ-ᄒ]$&amp;#039;)&lt;br /&gt;
								and &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; .. (a or &amp;#039;&amp;#039;) .. &amp;#039;;&amp;#039; .. (b or &amp;#039;&amp;#039;)&lt;br /&gt;
								or (a or &amp;#039;&amp;#039;) .. &amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;quot; .. &amp;#039;;&amp;#039; .. (b or &amp;#039;&amp;#039;) end)&lt;br /&gt;
&lt;br /&gt;
						bold_insert_count = bold_insert_count + 1&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					local final_cons, initial_cons = Umatch(junction, &amp;#039;^(.*);(.*)$&amp;#039;)&lt;br /&gt;
					&lt;br /&gt;
					--special romanisation&lt;br /&gt;
					if rom3 then&lt;br /&gt;
						if (#romanisation3 == 0 and #romanisation &amp;gt; 0) then&lt;br /&gt;
							table.insert(romanisation3, romanisation[#romanisation])&lt;br /&gt;
						end&lt;br /&gt;
						local final_cons3, initial_cons3 = Umatch(junction3, &amp;#039;^(.*);(.*)$&amp;#039;)&lt;br /&gt;
						table.insert(romanisation3, vowel)&lt;br /&gt;
						table.insert(romanisation3, final_cons3)&lt;br /&gt;
						table.insert(romanisation3, (saw_hyphen_after and &amp;#039;-&amp;#039; or &amp;#039;&amp;#039;))&lt;br /&gt;
						table.insert(romanisation3, initial_cons3)&lt;br /&gt;
					elseif ((not rom3) and #romanisation3 &amp;gt; 0) then&lt;br /&gt;
						table.remove(romanisation3)&lt;br /&gt;
						table.remove(romanisation3)&lt;br /&gt;
						table.insert(romanisation, #romanisation-(#romanisation&amp;gt;0 and 1 or 0),  &amp;#039;@@&amp;#039; .. Ugsub(table.concat(romanisation3), &amp;quot;[^A-Za-z\&amp;quot;]$&amp;quot;, &amp;#039;&amp;#039;) .. &amp;#039;@@&amp;#039;)&lt;br /&gt;
						romanisation3 = {}&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					table.insert(romanisation, #romanisation-(#romanisation&amp;gt;0 and 1 or 0), forced)&lt;br /&gt;
					table.insert(romanisation, vowel)&lt;br /&gt;
					table.insert(romanisation, final_cons)&lt;br /&gt;
					table.insert(romanisation, (saw_hyphen_after and &amp;#039;-&amp;#039; or &amp;#039;&amp;#039;))&lt;br /&gt;
					table.insert(romanisation, initial_cons)&lt;br /&gt;
					&lt;br /&gt;
					--straggler characters at end of word set&lt;br /&gt;
					if index == #decomposed_syllables and lib.isNotEmpty(Usub(respelling, index+1, index+1)) then&lt;br /&gt;
						local N = Usub(respelling, index+1, #respelling)&lt;br /&gt;
						if (N:find(&amp;#039;//&amp;#039;) and #romanisation3 &amp;gt; 0) then&lt;br /&gt;
							table.remove(romanisation3)&lt;br /&gt;
							table.remove(romanisation3)&lt;br /&gt;
							table.insert(romanisation, #romanisation-(#romanisation&amp;gt;0 and 1 or 0),  &amp;#039;@@&amp;#039; .. Ugsub(table.concat(romanisation3), &amp;quot;[^A-Za-z\&amp;quot;]$&amp;quot;, &amp;#039;&amp;#039;) .. &amp;#039;@@&amp;#039;)&lt;br /&gt;
							romanisation3 = {}&lt;br /&gt;
							table.insert(romanisation, N)&lt;br /&gt;
						else&lt;br /&gt;
							romanisation3 = {}&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					--[[&lt;br /&gt;
					local currRom = { &lt;br /&gt;
						syllable = syllable,&lt;br /&gt;
						vowel = vowel,&lt;br /&gt;
						final_cons = final_cons,&lt;br /&gt;
						initial_cons = initial_cons,&lt;br /&gt;
						totalRom = table.concat(romanisation),&lt;br /&gt;
						totalRom3 = table.concat(romanisation3)&lt;br /&gt;
					} --debug&lt;br /&gt;
					mw.logObject(currRom,&amp;#039;currRom&amp;#039;) --debug&lt;br /&gt;
					--]]&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			local temp_romanisation = table.concat(romanisation)&lt;br /&gt;
			--mw.logObject(temp_romanisation,&amp;#039;temp_romanisation&amp;#039;) --debug&lt;br /&gt;
			for i = 1, 2 do&lt;br /&gt;
				temp_romanisation = Ugsub(temp_romanisation, &amp;#039;(.)…(.)&amp;#039;, function(a, b)&lt;br /&gt;
					return a .. (data.AI[a .. b] and &amp;quot;&amp;#039;&amp;quot; or &amp;#039;&amp;#039;) .. b end)&lt;br /&gt;
				temp_romanisation = Ugsub(temp_romanisation, &amp;quot;wo&amp;#039;e&amp;quot;, &amp;#039;woe&amp;#039;)&lt;br /&gt;
				temp_romanisation = Ugsub(temp_romanisation, &amp;quot;yo&amp;#039;e&amp;quot;, &amp;#039;yoe&amp;#039;)&lt;br /&gt;
				temp_romanisation = Ugsub(temp_romanisation, &amp;quot;we&amp;#039;o&amp;quot;, &amp;#039;weo&amp;#039;)&lt;br /&gt;
				temp_romanisation = Ugsub(temp_romanisation, &amp;quot;we&amp;#039;u&amp;quot;, &amp;#039;weu&amp;#039;)&lt;br /&gt;
				temp_romanisation = Ugsub(temp_romanisation, &amp;quot;ye&amp;#039;u&amp;quot;, &amp;#039;yeu&amp;#039;)&lt;br /&gt;
				temp_romanisation = Ugsub(temp_romanisation, &amp;quot;yu&amp;#039;i&amp;quot;, &amp;#039;yui&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			table.insert(word_set_romanisations, temp_romanisation)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		text_param = Ugsub(&lt;br /&gt;
			text_param,&lt;br /&gt;
			p.pattern_escape(the_original),&lt;br /&gt;
			table.concat(word_set_romanisations, &amp;#039;/&amp;#039;),&lt;br /&gt;
			1&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return text_param&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.decompose_jamo(syllable)&lt;br /&gt;
	if (not Umatch(syllable, &amp;#039;[가-힣]&amp;#039;)) then&lt;br /&gt;
		if Umatch(syllable, &amp;#039;[ᄀ-ᄒ]&amp;#039;) then&lt;br /&gt;
			return { initial = syllable, vowel = &amp;#039;Ø&amp;#039;, final = &amp;#039;Ø&amp;#039; }&lt;br /&gt;
		elseif Umatch(syllable, &amp;#039;[ᅡ-ᅵ]&amp;#039;) then&lt;br /&gt;
			return { initial = &amp;#039;Ø&amp;#039;, vowel = syllable, final = &amp;#039;Ø&amp;#039; }&lt;br /&gt;
		elseif Umatch(syllable, &amp;#039;[ᆨ-ᇂ]&amp;#039;) then&lt;br /&gt;
			return { initial = &amp;#039;Ø&amp;#039;, vowel = &amp;#039;Ø&amp;#039;, final = syllable }&lt;br /&gt;
		elseif Umatch(syllable, &amp;#039;[ㄱ-ㆎ]&amp;#039;) then&lt;br /&gt;
			return { initial = &amp;#039;Ø&amp;#039;, vowel = &amp;#039;Ø&amp;#039;, final = syllable }&lt;br /&gt;
		else&lt;br /&gt;
			return { initial = &amp;#039;Ø&amp;#039;, vowel = &amp;#039; &amp;#039;, final = &amp;#039;X&amp;#039; }&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local cp = codepoint(syllable)&lt;br /&gt;
	if (not cp) then return { &amp;#039;&amp;#039;, &amp;#039;&amp;#039;, &amp;#039;&amp;#039; } end&lt;br /&gt;
	local relative_cp = cp - 0xAC00&lt;br /&gt;
	local jongseong = (((relative_cp % 28) ~= 0) and Uchar(0x11A7 + (relative_cp % 28))) or &amp;#039;&amp;#039;&lt;br /&gt;
	local jungseong = Uchar(0x1161 + math.floor((relative_cp % 588) / 28))&lt;br /&gt;
	local choseong = Uchar(0x1100 + math.floor(relative_cp / 588))&lt;br /&gt;
	return {&lt;br /&gt;
		initial = choseong,&lt;br /&gt;
		vowel = jungseong,&lt;br /&gt;
		final = jongseong&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.pattern_escape(text)&lt;br /&gt;
	if type(text) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		text = text.args[1]&lt;br /&gt;
	end&lt;br /&gt;
	text = Ugsub(text, &amp;#039;([%^$()%%.%[%]*+%-?])&amp;#039;, &amp;#039;%%%1&amp;#039;)&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.decompose_syllable(word)&lt;br /&gt;
	local decomposed_syllables = {}&lt;br /&gt;
	for syllable in mw.text.gsplit(word, &amp;#039;&amp;#039;) do&lt;br /&gt;
		--mw.logObject(syllable,&amp;#039;syllable&amp;#039;) --debug&lt;br /&gt;
		if not Umatch(syllable, &amp;#039;[/「」%^]&amp;#039;) then&lt;br /&gt;
			table.insert(decomposed_syllables, p.decompose_jamo(syllable))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return decomposed_syllables&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.capitalizer(str, all)&lt;br /&gt;
	if lib.isNotEmpty(str) then&lt;br /&gt;
		str = mw.text.split(str,&amp;#039;&amp;#039;)&lt;br /&gt;
		--mw.logObject(str,&amp;#039;str&amp;#039;) --debug&lt;br /&gt;
		local cap = true&lt;br /&gt;
		for index = 1,#str do&lt;br /&gt;
			if (str[index]:find(((all ~= nil) and &amp;quot;[^A-Za-z\-\&amp;quot;_#&amp;amp;]&amp;quot; or &amp;quot;[^A-Za-z\-\&amp;quot;_,%s#&amp;amp;]&amp;quot;)) and str[index] ~= &amp;quot;&amp;#039;&amp;quot;) or (cap and str[index] == &amp;#039; &amp;#039;)then&lt;br /&gt;
				cap = true&lt;br /&gt;
				--mw.logObject(str[index],&amp;#039;skipped&amp;#039;) --debug&lt;br /&gt;
            elseif cap and str[index] == &amp;#039;_&amp;#039; then&lt;br /&gt;
                cap = false&lt;br /&gt;
                str[index] = &amp;#039;&amp;#039;&lt;br /&gt;
			elseif cap then&lt;br /&gt;
				str[index] = mw.ustring.upper(str[index])&lt;br /&gt;
				--mw.logObject(str[index],&amp;#039;capped&amp;#039;) --debug&lt;br /&gt;
				cap = false&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		str = table.concat(str,&amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.strip(str)&lt;br /&gt;
	if lib.isEmpty(str) then return &amp;#039;&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	str = Ugsub(str,    &amp;#039;//(.-)//&amp;#039;,          &amp;#039;%1&amp;#039;    ) --remove given name specifier&lt;br /&gt;
	str = Ugsub(str,    &amp;#039;%^&amp;#039;,                &amp;#039;&amp;#039;      ) --remove capitalization marker&lt;br /&gt;
	str = Ugsub(str,    &amp;#039;&amp;lt;.&amp;gt;&amp;#039;,               &amp;#039;&amp;#039;      ) --remove arbitrary separator&lt;br /&gt;
	str = Ugsub(str,    &amp;#039;&amp;lt;(%w+)&amp;gt;&amp;#039;,					   --remove manual IPC markers&lt;br /&gt;
		function(term)&lt;br /&gt;
			for n, d in pairs(IPCvals) do&lt;br /&gt;
				if n == term then return &amp;#039;&amp;#039; end&lt;br /&gt;
				if d.alias and #d.alias&amp;gt;0 then&lt;br /&gt;
					for _, a in ipairs(d.alias) do&lt;br /&gt;
						if a == term then return &amp;#039;&amp;#039; end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return nil&lt;br /&gt;
		end)&lt;br /&gt;
	str = Ugsub(str,    &amp;#039;_&amp;#039;,                 &amp;#039;&amp;#039;      ) --remove capitalization blacklister&lt;br /&gt;
	str = Ugsub(str,    &amp;#039;&amp;lt;([%w%p]+):.-&amp;gt;&amp;#039;,    &amp;#039;%1&amp;#039;    ) --reduce manual readings to just the text&lt;br /&gt;
	&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ReisuDesign</name></author>
	</entry>
</feed>