<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3Asish-headword</id>
	<title>Module:sish-headword - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3Asish-headword"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;action=history"/>
	<updated>2026-06-14T20:38:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529754&amp;oldid=prev</id>
		<title>Sware at 12:27, 14 June 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529754&amp;oldid=prev"/>
		<updated>2026-06-14T12:27:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:27, 14 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot;&gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if sc:getCode() == &amp;quot;Latn&amp;quot; then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if sc:getCode() == &amp;quot;Latn&amp;quot; then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		other_sc = &quot;Armn&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		other_sc = &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sish-&lt;/ins&gt;Armn&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	elseif sc:getCode() == &quot;Armn&quot; then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	elseif sc:getCode() == &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sish-&lt;/ins&gt;Armn&quot; then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		other_sc = &amp;quot;Latn&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		other_sc = &amp;quot;Latn&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l180&quot;&gt;Line 180:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 180:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			head.tr = nil&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			head.tr = nil&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		head.sc = require(&quot;Module:scripts&quot;).getByCode(sc == &quot;None&quot; and &quot;sish-Armn&quot; or sc)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.heads = heads&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.heads = heads&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529747&amp;oldid=prev</id>
		<title>Sware at 12:11, 14 June 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529747&amp;oldid=prev"/>
		<updated>2026-06-14T12:11:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:11, 14 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l180&quot;&gt;Line 180:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 180:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			head.tr = nil&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			head.tr = nil&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		head.sc = require(&quot;Module:scripts&quot;).getByCode(sc)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		head.sc = require(&quot;Module:scripts&quot;).getByCode(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sc == &quot;None&quot; and &quot;sish-Armn&quot; or &lt;/ins&gt;sc)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.heads = heads&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.heads = heads&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529746&amp;oldid=prev</id>
		<title>Sware at 12:11, 14 June 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529746&amp;oldid=prev"/>
		<updated>2026-06-14T12:11:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:11, 14 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l125&quot;&gt;Line 125:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 125:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local sc = lang:findBestScript(pagename)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local sc = lang:findBestScript(pagename)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	data.sc = sc == &quot;None&quot; and &quot;sish-Armn&quot; or sc&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local other_sc&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local other_sc&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l181&quot;&gt;Line 181:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 180:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			head.tr = nil&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			head.tr = nil&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		head.sc = require(&quot;Module:scripts&quot;).getByCode(sc)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.heads = heads&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.heads = heads&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529745&amp;oldid=prev</id>
		<title>Sware at 12:08, 14 June 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529745&amp;oldid=prev"/>
		<updated>2026-06-14T12:08:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:08, 14 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l124&quot;&gt;Line 124:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 124:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local sc = lang:findBestScript(pagename&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &quot;forceDetect&quot;&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local sc = lang:findBestScript(pagename)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.sc = sc&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	data.sc = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sc == &quot;None&quot; and &quot;sish-Armn&quot; or &lt;/ins&gt;sc&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local other_sc&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local other_sc&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529744&amp;oldid=prev</id>
		<title>Sware at 12:07, 14 June 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529744&amp;oldid=prev"/>
		<updated>2026-06-14T12:07:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:07, 14 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local unfd = mw.ustring.toNFD&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local unfd = mw.ustring.toNFD&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local insert = table.insert&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local insert = table.insert&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local GR = u(0x0300)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local AC = u(0x0301)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local TILDE = u(0x0303)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local MACRON = u(0x0304)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local DGRAVE = u(0x030F)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local INVBREVE = u(0x0311)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local tonal_accents = GR .. AC .. TILDE .. DGRAVE .. INVBREVE&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local vowels = &quot;aeiouаеиоу&quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local vowels_that_can_bear_tone = vowels .. &quot;rр&quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local V = &quot;[&quot; .. vowels .. &quot;]&quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local list_param = {list = true, disallow_holes = true}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local list_param = {list = true, disallow_holes = true}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local boolean_param = {type = &amp;quot;boolean&amp;quot;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local boolean_param = {type = &amp;quot;boolean&amp;quot;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- Table of all valid genders, mapping user-specified gender specs to canonicalized versions.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local valid_genders = {&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;m&quot;] = &quot;m-an?&quot;,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;?&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;mfbysense-an&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;m-an&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;m-in&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;f&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;n&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;m-p&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;f-p&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	[&quot;n-p&quot;] = true,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- Table of all valid aspects.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;local valid_aspects = m_table.listToSet {&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	&quot;impf&quot;, &quot;pf&quot;, &quot;both&quot;, &quot;biasp&quot;, &quot;?&quot;,&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local function ine(val)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local function ine(val)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l155&quot;&gt;Line 155:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 124:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local sc = lang:findBestScript(pagename)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local sc = lang:findBestScript(pagename&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &quot;forceDetect&quot;&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	data.sc = sc&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local other_sc&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local other_sc&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529741&amp;oldid=prev</id>
		<title>Sware at 12:02, 14 June 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529741&amp;oldid=prev"/>
		<updated>2026-06-14T12:02:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://linguifex.com/w/index.php?title=Module:sish-headword&amp;amp;diff=529741&amp;amp;oldid=529735&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529735&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;local export = {} local pos_functions = {}  local force_cat = false -- for testing; if true, categories appear in non-mainspace pages  local langcode = &quot;sish&quot; local lang = require(&quot;Module:languages&quot;).getByCode(langcode, true) local langname = lang:getCanonicalName()  local require_when_needed = require(&quot;Module:utilities/require when needed&quot;) local m_str_utils = require(&quot;Module:string utilities&quot;) local m_table = require(&quot;Module:table&quot;) local en_utilities_module = &quot;Module:...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:sish-headword&amp;diff=529735&amp;oldid=prev"/>
		<updated>2026-06-14T11:33:20Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {} local pos_functions = {}  local force_cat = false -- for testing; if true, categories appear in non-mainspace pages  local langcode = &amp;quot;sish&amp;quot; local lang = require(&amp;quot;Module:languages&amp;quot;).getByCode(langcode, true) local langname = lang:getCanonicalName()  local require_when_needed = require(&amp;quot;Module:utilities/require when needed&amp;quot;) local m_str_utils = require(&amp;quot;Module:string utilities&amp;quot;) local m_table = require(&amp;quot;Module:table&amp;quot;) local en_utilities_module = &amp;quot;Module:...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local export = {}&lt;br /&gt;
local pos_functions = {}&lt;br /&gt;
&lt;br /&gt;
local force_cat = false -- for testing; if true, categories appear in non-mainspace pages&lt;br /&gt;
&lt;br /&gt;
local langcode = &amp;quot;sish&amp;quot;&lt;br /&gt;
local lang = require(&amp;quot;Module:languages&amp;quot;).getByCode(langcode, true)&lt;br /&gt;
local langname = lang:getCanonicalName()&lt;br /&gt;
&lt;br /&gt;
local require_when_needed = require(&amp;quot;Module:utilities/require when needed&amp;quot;)&lt;br /&gt;
local m_str_utils = require(&amp;quot;Module:string utilities&amp;quot;)&lt;br /&gt;
local m_table = require(&amp;quot;Module:table&amp;quot;)&lt;br /&gt;
local en_utilities_module = &amp;quot;Module:en-utilities&amp;quot;&lt;br /&gt;
local headword_module = &amp;quot;Module:headword&amp;quot;&lt;br /&gt;
local headword_data_module = &amp;quot;Module:headword/data&amp;quot;&lt;br /&gt;
local headword_utilities_module = &amp;quot;Module:headword utilities&amp;quot;&lt;br /&gt;
local m_headword_utilities = require_when_needed(headword_utilities_module)&lt;br /&gt;
local glossary_link = require_when_needed(headword_utilities_module, &amp;quot;glossary_link&amp;quot;)&lt;br /&gt;
local links_module = &amp;quot;Module:links&amp;quot;&lt;br /&gt;
local parse_interface_module = &amp;quot;Module:parse interface&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local u = m_str_utils.char&lt;br /&gt;
local rfind = m_str_utils.find&lt;br /&gt;
local ulower = m_str_utils.lower&lt;br /&gt;
local unfd = mw.ustring.toNFD&lt;br /&gt;
local insert = table.insert&lt;br /&gt;
&lt;br /&gt;
local GR = u(0x0300)&lt;br /&gt;
local AC = u(0x0301)&lt;br /&gt;
local TILDE = u(0x0303)&lt;br /&gt;
local MACRON = u(0x0304)&lt;br /&gt;
local DGRAVE = u(0x030F)&lt;br /&gt;
local INVBREVE = u(0x0311)&lt;br /&gt;
&lt;br /&gt;
local tonal_accents = GR .. AC .. TILDE .. DGRAVE .. INVBREVE&lt;br /&gt;
local vowels = &amp;quot;aeiouаеиоу&amp;quot;&lt;br /&gt;
local vowels_that_can_bear_tone = vowels .. &amp;quot;rр&amp;quot;&lt;br /&gt;
local V = &amp;quot;[&amp;quot; .. vowels .. &amp;quot;]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local list_param = {list = true, disallow_holes = true}&lt;br /&gt;
local boolean_param = {type = &amp;quot;boolean&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
-- Table of all valid genders, mapping user-specified gender specs to canonicalized versions.&lt;br /&gt;
local valid_genders = {&lt;br /&gt;
	[&amp;quot;m&amp;quot;] = &amp;quot;m-an?&amp;quot;,&lt;br /&gt;
	[&amp;quot;?&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;mfbysense-an&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;m-an&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;m-in&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;f&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;n&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;m-p&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;f-p&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;n-p&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
-- Table of all valid aspects.&lt;br /&gt;
local valid_aspects = m_table.listToSet {&lt;br /&gt;
	&amp;quot;impf&amp;quot;, &amp;quot;pf&amp;quot;, &amp;quot;both&amp;quot;, &amp;quot;biasp&amp;quot;, &amp;quot;?&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function ine(val)&lt;br /&gt;
	if val == &amp;quot;&amp;quot; then return nil else return val end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function track(track_id, pos)&lt;br /&gt;
	local tracking_pages = {}&lt;br /&gt;
	insert(tracking_pages, &amp;quot;sh-headword/&amp;quot; .. track_id)&lt;br /&gt;
	if pos then&lt;br /&gt;
		insert(tracking_pages, &amp;quot;sh-headword/&amp;quot; .. track_id .. &amp;quot;/&amp;quot; .. pos)&lt;br /&gt;
	end&lt;br /&gt;
	require(&amp;quot;Module:debug/track&amp;quot;)(tracking_pages)&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function split_on_comma(val)&lt;br /&gt;
	if val:find(&amp;quot;,&amp;quot;) then&lt;br /&gt;
		return require(parse_interface_module).split_on_comma(val)&lt;br /&gt;
	else&lt;br /&gt;
		return {val}&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments come&lt;br /&gt;
-- from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are given;&lt;br /&gt;
-- sections enclosed in &amp;lt;&amp;lt;...&amp;gt;&amp;gt; are linked to the glossary. `accel` is the accelerator form, or nil.&lt;br /&gt;
local function parse_and_insert_inflection(pos, data, args, field, label, accel)&lt;br /&gt;
	m_headword_utilities.parse_and_insert_inflection {&lt;br /&gt;
		headdata = data,&lt;br /&gt;
		forms = args[field],&lt;br /&gt;
		paramname = field,&lt;br /&gt;
		label = label,&lt;br /&gt;
		accel = accel and {form = accel} or nil,&lt;br /&gt;
		splitchar = &amp;quot;,&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- The main entry point.&lt;br /&gt;
-- This is the only function that can be invoked from a template.&lt;br /&gt;
function export.show(frame)&lt;br /&gt;
	local iparams = {&lt;br /&gt;
		[1] = {required = true},&lt;br /&gt;
		def = {},&lt;br /&gt;
	}&lt;br /&gt;
	local iargs = require(&amp;quot;Module:parameters&amp;quot;).process(frame.args, iparams)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local poscat = iargs[1]&lt;br /&gt;
	local def = iargs.def&lt;br /&gt;
&lt;br /&gt;
	local parargs = frame:getParent().args&lt;br /&gt;
&lt;br /&gt;
	local params = {&lt;br /&gt;
		[1] = {list = &amp;quot;head&amp;quot;, disallow_holes = true, template_default = def or &amp;quot;књи̏га&amp;quot;},&lt;br /&gt;
		tr = {list = true, allow_holes = true},&lt;br /&gt;
		id = true,&lt;br /&gt;
		sort = true,&lt;br /&gt;
		-- no nolinkhead= because head in 1= should always be specified&lt;br /&gt;
		altform = boolean_param,&lt;br /&gt;
		json = boolean_param,&lt;br /&gt;
		pagename = true, -- for testing&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if pos_functions[poscat] then&lt;br /&gt;
		local posparams = pos_functions[poscat].params&lt;br /&gt;
		if type(posparams) == &amp;quot;function&amp;quot; then&lt;br /&gt;
			posparams = posparams(lang)&lt;br /&gt;
		end&lt;br /&gt;
		for key, val in pairs(posparams) do&lt;br /&gt;
			params[key] = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    local args = require(&amp;quot;Module:parameters&amp;quot;).process(parargs, params)&lt;br /&gt;
&lt;br /&gt;
	local actual_poscat = poscat&lt;br /&gt;
	if pos_functions[poscat] then&lt;br /&gt;
		local get_actual_pos = pos_functions[poscat].get_actual_pos&lt;br /&gt;
		if get_actual_pos then&lt;br /&gt;
			actual_poscat = get_actual_pos(args)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local pagename = args.pagename or mw.loadData(headword_data_module).pagename&lt;br /&gt;
&lt;br /&gt;
	local heads = m_headword_utilities.parse_term_list_with_modifiers {&lt;br /&gt;
		forms = args[1],&lt;br /&gt;
		paramname = {1, &amp;quot;head&amp;quot;},&lt;br /&gt;
		is_head = true,&lt;br /&gt;
		include_mods = {&amp;quot;tr&amp;quot;},&lt;br /&gt;
		splitchar = &amp;quot;,&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local data = {&lt;br /&gt;
		lang = lang,&lt;br /&gt;
		pos_category = actual_poscat,&lt;br /&gt;
		categories = {},&lt;br /&gt;
		genders = {},&lt;br /&gt;
		inflections = {},&lt;br /&gt;
		pagename = pagename,&lt;br /&gt;
		id = args.id,&lt;br /&gt;
		sort_key = args.sort,&lt;br /&gt;
		force_cat_output = force_cat,&lt;br /&gt;
		is_suffix = false,&lt;br /&gt;
		no_redundant_head_cat = not heads[1],&lt;br /&gt;
		altform = args.altform,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local sc = lang:findBestScript(pagename)&lt;br /&gt;
	&lt;br /&gt;
	local other_sc&lt;br /&gt;
	&lt;br /&gt;
	if sc:getCode() == &amp;quot;Latn&amp;quot; then&lt;br /&gt;
		other_sc = &amp;quot;Cyrl&amp;quot;&lt;br /&gt;
	elseif sc:getCode() == &amp;quot;Cyrl&amp;quot; then&lt;br /&gt;
		other_sc = &amp;quot;Latn&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not heads[1] then&lt;br /&gt;
		heads = {{term = pagename}}&lt;br /&gt;
	end&lt;br /&gt;
	local numheads = #heads&lt;br /&gt;
&lt;br /&gt;
	-- Copy translit in trN= to head structure (it can also be specified using inline modifier &amp;lt;tr:...&amp;gt;).&lt;br /&gt;
	for i, tr in pairs(args.tr) do&lt;br /&gt;
		if type(i) == &amp;quot;number&amp;quot; then&lt;br /&gt;
			if i &amp;gt; numheads then&lt;br /&gt;
				error((&amp;quot;Specified value for tr%s= but only %s head%s available&amp;quot;):format(&lt;br /&gt;
					i, numheads, numheads == 1 and &amp;quot;&amp;quot; or &amp;quot;s&amp;quot;))&lt;br /&gt;
			end&lt;br /&gt;
			heads[i].tr = tr&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If pagename is Latin or Cyrillic, display the other-script transliteration as an inflection. Use manually&lt;br /&gt;
	-- specified translit if available, otherwise auto-translit.&lt;br /&gt;
	if other_sc then&lt;br /&gt;
		other_sc = require(&amp;quot;Module:scripts&amp;quot;).getByCode(other_sc)&lt;br /&gt;
		local inflection = {label = other_sc:getCanonicalName() .. &amp;quot; spelling&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
		if heads[1].tr == &amp;quot;-&amp;quot; then&lt;br /&gt;
			inflection.label = &amp;quot;not attested in &amp;quot; .. other_sc:getCanonicalName() .. &amp;quot; spelling&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			for _, head in ipairs(heads) do&lt;br /&gt;
				local tr = head.tr&lt;br /&gt;
				&lt;br /&gt;
				if not tr then&lt;br /&gt;
					tr = require(&amp;quot;Module:sh-translit&amp;quot;).tr(require(&amp;quot;Module:links&amp;quot;).remove_links(head.term), &amp;quot;sh&amp;quot;, sc:getCode())&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				insert(inflection, {term = tr, sc = other_sc})&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		insert(data.inflections, inflection)&lt;br /&gt;
	end&lt;br /&gt;
	-- Now remove the translit from the `heads` structure so it doesn&amp;#039;t display in the normal translit slot.&lt;br /&gt;
	for i, head in ipairs(heads) do&lt;br /&gt;
		if head.tr then&lt;br /&gt;
			if not other_sc then&lt;br /&gt;
				error((&amp;quot;Translit specified for head #%s when pagename is neither Latin nor Cyrillic&amp;quot;):format(i))&lt;br /&gt;
			end&lt;br /&gt;
			head.tr = nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	data.heads = heads&lt;br /&gt;
&lt;br /&gt;
	local singular_poscat = require(en_utilities_module).singularize(actual_poscat)&lt;br /&gt;
&lt;br /&gt;
	local needs_accents = false&lt;br /&gt;
	for _, head in ipairs(heads) do&lt;br /&gt;
		-- FIXME, should split by space and check each word&lt;br /&gt;
		local lower_nfd_head = ulower(unfd(head.term))&lt;br /&gt;
		if rfind(lower_nfd_head, &amp;quot;[&amp;quot; .. vowels_that_can_bear_tone .. &amp;quot;]&amp;quot;) and not&lt;br /&gt;
			rfind(lower_nfd_head, &amp;quot;[&amp;quot; .. vowels_that_can_bear_tone .. &amp;quot;][&amp;quot; .. tonal_accents .. &amp;quot;]&amp;quot;) then&lt;br /&gt;
			needs_accents = true&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if needs_accents then&lt;br /&gt;
		insert(data.categories, &amp;quot;Requests for accents in &amp;quot; .. langname .. &amp;quot; &amp;quot; .. singular_poscat .. &amp;quot; entries&amp;quot;)&lt;br /&gt;
	end		&lt;br /&gt;
&lt;br /&gt;
	if pagename:find(&amp;quot;^%-&amp;quot;) and actual_poscat ~= &amp;quot;suffixes&amp;quot; and actual_poscat ~= &amp;quot;suffix forms&amp;quot; and&lt;br /&gt;
		actual_poscat ~= &amp;quot;combining forms&amp;quot; then&lt;br /&gt;
		data.is_suffix = true&lt;br /&gt;
		data.pos_category = &amp;quot;suffixes&amp;quot;&lt;br /&gt;
		insert(data.categories, langname .. &amp;quot; &amp;quot; .. singular_poscat .. &amp;quot;-forming suffixes&amp;quot;)&lt;br /&gt;
		insert(data.inflections, {label = singular_poscat .. &amp;quot;-forming suffix&amp;quot;})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if pos_functions[poscat] then&lt;br /&gt;
		pos_functions[poscat].func(args, data)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- unfd (mw.ustring.toNFD) performs decomposition, so letters that decompose to an ASCII vowel and a diacritic,&lt;br /&gt;
	-- such as é, are counted as vowels and do not need to be included in the pattern.&lt;br /&gt;
	if not pagename:find(&amp;quot;[ %-]&amp;quot;) and not rfind(ulower(unfd(pagename)), V) then&lt;br /&gt;
		insert(data.categories, langname .. &amp;quot; words spelled without vowels&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    if args.json then&lt;br /&gt;
        return require(&amp;quot;Module:JSON&amp;quot;).toJSON(data)&lt;br /&gt;
    end&lt;br /&gt;
	&lt;br /&gt;
	return require(headword_module).full_headword(data)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_noun_params(is_proper)&lt;br /&gt;
	return {&lt;br /&gt;
		[2] = {default = &amp;quot;?&amp;quot;, type = &amp;quot;genders&amp;quot;},&lt;br /&gt;
		indecl = boolean_param,&lt;br /&gt;
		m = list_param,&lt;br /&gt;
		f = list_param,&lt;br /&gt;
		adj = list_param,&lt;br /&gt;
		pos = list_param,&lt;br /&gt;
		dim = list_param,&lt;br /&gt;
		aug = list_param,&lt;br /&gt;
		pej = list_param,&lt;br /&gt;
		dem = list_param,&lt;br /&gt;
		fdem = list_param,&lt;br /&gt;
		gen = list_param,&lt;br /&gt;
		voc = list_param,&lt;br /&gt;
		loc = list_param,&lt;br /&gt;
		pl = list_param,&lt;br /&gt;
		nompl = {alias_of = &amp;quot;pl&amp;quot;, list = true, disallow_holes = true},&lt;br /&gt;
		genpl = list_param,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function validate_genders(data, genders, categorize)&lt;br /&gt;
	for _, g in ipairs(genders) do&lt;br /&gt;
		local canon_g = valid_genders[g.spec]&lt;br /&gt;
		if canon_g then&lt;br /&gt;
			track(&amp;quot;gender-&amp;quot; .. g.spec)&lt;br /&gt;
			if canon_g ~= true then&lt;br /&gt;
				g.spec = canon_g&lt;br /&gt;
			end&lt;br /&gt;
			if categorize then&lt;br /&gt;
				-- Categorize by gender, in addition to what&amp;#039;s done already by [[Module:gender and number]].&lt;br /&gt;
				if g.spec == &amp;quot;m-an&amp;quot; then&lt;br /&gt;
					insert(data.categories, langname .. &amp;quot; masculine animate nouns&amp;quot;)&lt;br /&gt;
				elseif g.spec == &amp;quot;m-in&amp;quot; then&lt;br /&gt;
					insert(data.categories, langname .. &amp;quot; masculine inanimate nouns&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;Unrecognized gender: &amp;#039;&amp;quot; .. g.spec .. &amp;quot;&amp;#039;&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function do_nouns(is_proper, args, data)&lt;br /&gt;
	validate_genders(data, args[2], true)&lt;br /&gt;
	data.genders = args[2]&lt;br /&gt;
	if args.indecl then&lt;br /&gt;
		insert(data.inflections, {label = glossary_link(&amp;quot;indeclinable&amp;quot;)})&lt;br /&gt;
		insert(data.categories, langname .. &amp;quot; indeclinable nouns&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments&lt;br /&gt;
	-- come from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are&lt;br /&gt;
	-- given; &amp;lt;&amp;lt;..&amp;gt;&amp;gt; ini the label is linked to the glossary). `accel` is the accelerator form, or nil.&lt;br /&gt;
	local function handle_infl(field, label)&lt;br /&gt;
		parse_and_insert_inflection(&amp;quot;noun&amp;quot;, data, args, field, label)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	handle_infl(&amp;quot;gen&amp;quot;, &amp;quot;&amp;lt;&amp;lt;genitive&amp;gt;&amp;gt; &amp;lt;&amp;lt;singular&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;voc&amp;quot;, &amp;quot;&amp;lt;&amp;lt;vocative&amp;gt;&amp;gt; &amp;lt;&amp;lt;singular&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;loc&amp;quot;, &amp;quot;&amp;lt;&amp;lt;locative&amp;gt;&amp;gt; &amp;lt;&amp;lt;singular&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pl&amp;quot;, &amp;quot;&amp;lt;&amp;lt;nominative&amp;gt;&amp;gt; &amp;lt;&amp;lt;plural&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;genpl&amp;quot;, &amp;quot;&amp;lt;&amp;lt;genitive&amp;gt;&amp;gt; &amp;lt;&amp;lt;plural&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;m&amp;quot;, &amp;quot;male equivalent&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;f&amp;quot;, &amp;quot;female equivalent&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;adj&amp;quot;, &amp;quot;&amp;lt;&amp;lt;relational adjective&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pos&amp;quot;, &amp;quot;&amp;lt;&amp;lt;possessive adjective&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;dim&amp;quot;, &amp;quot;&amp;lt;&amp;lt;diminutive&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;aug&amp;quot;, &amp;quot;&amp;lt;&amp;lt;augmentative&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pej&amp;quot;, &amp;quot;&amp;lt;&amp;lt;pejorative&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;dem&amp;quot;, &amp;quot;&amp;lt;&amp;lt;demonym&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;fdem&amp;quot;, &amp;quot;female &amp;lt;&amp;lt;demonym&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;nouns&amp;quot;] = {&lt;br /&gt;
	 params = get_noun_params(false),&lt;br /&gt;
	 func = function(args, data)&lt;br /&gt;
	 	return do_nouns(false, args, data)&lt;br /&gt;
	 end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;proper nouns&amp;quot;] = {&lt;br /&gt;
	 params = get_noun_params(&amp;quot;proper noun&amp;quot;),&lt;br /&gt;
	 func = function(args, data)&lt;br /&gt;
	 	return do_nouns(&amp;quot;proper noun&amp;quot;, args, data)&lt;br /&gt;
	 end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function do_gendered_pos(args, data)&lt;br /&gt;
	validate_genders(data, args[2], true)&lt;br /&gt;
	data.genders = args[2]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_gendered_params()&lt;br /&gt;
	return {&lt;br /&gt;
		[2] = {default = &amp;quot;?&amp;quot;, type = &amp;quot;genders&amp;quot;},&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;pronouns&amp;quot;] = {&lt;br /&gt;
	 params = get_gendered_params(),&lt;br /&gt;
	 func = do_gendered_pos,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function get_verb_params()&lt;br /&gt;
	return {&lt;br /&gt;
		[2] = {default = &amp;quot;?&amp;quot;, type = &amp;quot;genders&amp;quot;},&lt;br /&gt;
		pf = list_param,&lt;br /&gt;
		impf = list_param,&lt;br /&gt;
		pres = list_param,&lt;br /&gt;
		pres3s = list_param,&lt;br /&gt;
		pres3p = list_param,&lt;br /&gt;
		past = list_param,&lt;br /&gt;
		pastf = list_param,&lt;br /&gt;
		pastn = list_param,&lt;br /&gt;
		impft = list_param,&lt;br /&gt;
		impft3s = list_param,&lt;br /&gt;
		impft3p = list_param,&lt;br /&gt;
		aor = list_param,&lt;br /&gt;
		aor3s = list_param,&lt;br /&gt;
		aor3p = list_param,&lt;br /&gt;
		vn = list_param,&lt;br /&gt;
		pradvp = list_param,&lt;br /&gt;
		padvp = list_param,&lt;br /&gt;
		pap = list_param,&lt;br /&gt;
		papf = list_param,&lt;br /&gt;
		papn = list_param,&lt;br /&gt;
		ppp = list_param,&lt;br /&gt;
		pppf = list_param,&lt;br /&gt;
		pppn = list_param,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function do_verbs(pos, args, data)&lt;br /&gt;
	for _, a in ipairs(args[2]) do&lt;br /&gt;
		if a.spec == &amp;quot;both&amp;quot; then&lt;br /&gt;
			a.spec = &amp;quot;biasp&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		if a.spec == &amp;quot;pf-impf&amp;quot; or a.spec == &amp;quot;impf-pf&amp;quot; or a.spec == &amp;quot;dual&amp;quot; or a.spec == &amp;quot;ip&amp;quot; then&lt;br /&gt;
			a.spec = &amp;quot;biasp&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		if valid_aspects[a.spec] then&lt;br /&gt;
			track(&amp;quot;aspect-&amp;quot; .. a.spec)&lt;br /&gt;
		else&lt;br /&gt;
			error(&amp;quot;Unrecognized aspect: &amp;#039;&amp;quot; .. a.spec .. &amp;quot;&amp;#039;&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		if a.spec == &amp;quot;impf&amp;quot; and args.impf[1] then&lt;br /&gt;
			error(&amp;quot;Imperfective verbs cannot have an imperfective equivalent&amp;quot;)&lt;br /&gt;
		elseif a.spec == &amp;quot;pf&amp;quot; and args.pf[1] then&lt;br /&gt;
			error(&amp;quot;Perfective verbs cannot have a perfective equivalent&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	data.genders = args[2]&lt;br /&gt;
&lt;br /&gt;
	-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments&lt;br /&gt;
	-- come from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are&lt;br /&gt;
	-- given; &amp;lt;&amp;lt;..&amp;gt;&amp;gt; ini the label is linked to the glossary). `accel` is the accelerator form, or nil.&lt;br /&gt;
	local function handle_infl(field, label)&lt;br /&gt;
		parse_and_insert_inflection(pos, data, args, field, label)&lt;br /&gt;
	end&lt;br /&gt;
	handle_infl(&amp;quot;pf&amp;quot;, &amp;quot;perfective&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;impf&amp;quot;, &amp;quot;imperfective&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pres&amp;quot;, &amp;quot;first-singular present&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pres3s&amp;quot;, &amp;quot;third-singular present&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pres3p&amp;quot;, &amp;quot;third-plural present&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;impft&amp;quot;, &amp;quot;first-singular imperfect&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;impft3s&amp;quot;, &amp;quot;third-singular imperfect&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;impft3p&amp;quot;, &amp;quot;third-plural imperfect&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;aor&amp;quot;, &amp;quot;first-singular aorist&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;aor3s&amp;quot;, &amp;quot;third-singular aorist&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;aor3p&amp;quot;, &amp;quot;third-plural aorist&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pap&amp;quot;, &amp;quot;masculine singular past active participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;papf&amp;quot;, &amp;quot;feminine singular past active participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;papn&amp;quot;, &amp;quot;neuter singular past active participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;ppp&amp;quot;, &amp;quot;masculine singular past passive participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pppf&amp;quot;, &amp;quot;feminine singular past passive participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pppn&amp;quot;, &amp;quot;neuter singular past passive participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;pradvp&amp;quot;, &amp;quot;present adverbial participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;padvp&amp;quot;, &amp;quot;past adverbial participle&amp;quot;)&lt;br /&gt;
	handle_infl(&amp;quot;vn&amp;quot;, &amp;quot;verbal noun&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
pos_functions[&amp;quot;verbs&amp;quot;] = {&lt;br /&gt;
	params = get_verb_params(),&lt;br /&gt;
	func = function(args, data)&lt;br /&gt;
		do_verbs(&amp;quot;verb&amp;quot;, args, data)&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;verbal combining forms&amp;quot;] = {&lt;br /&gt;
	params = get_verb_params(),&lt;br /&gt;
	get_actual_pos = function(args)&lt;br /&gt;
		return &amp;quot;combining forms&amp;quot;&lt;br /&gt;
	end,&lt;br /&gt;
	func = function(args, data)&lt;br /&gt;
		do_verbs(&amp;quot;combining form&amp;quot;, args, data)&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;adjectives&amp;quot;] = {&lt;br /&gt;
	params = {&lt;br /&gt;
		def = list_param,&lt;br /&gt;
		comp = list_param,&lt;br /&gt;
		sup = list_param,&lt;br /&gt;
		adv = list_param,&lt;br /&gt;
		indecl = boolean_param,&lt;br /&gt;
	},&lt;br /&gt;
	func = function(args, data)&lt;br /&gt;
		if args.indecl then&lt;br /&gt;
			insert(data.inflections, {label = glossary_link(&amp;quot;indeclinable&amp;quot;)})&lt;br /&gt;
			insert(data.categories, langname .. &amp;quot; indeclinable adjectives&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments&lt;br /&gt;
		-- come from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are&lt;br /&gt;
		-- given; &amp;lt;&amp;lt;..&amp;gt;&amp;gt; ini the label is linked to the glossary). `accel` is the accelerator form, or nil.&lt;br /&gt;
		local function handle_infl(field, label)&lt;br /&gt;
			parse_and_insert_inflection(&amp;quot;adjective&amp;quot;, data, args, field, label)&lt;br /&gt;
		end&lt;br /&gt;
		handle_infl(&amp;quot;def&amp;quot;, &amp;quot;definite&amp;quot;)&lt;br /&gt;
		handle_infl(&amp;quot;comp&amp;quot;, &amp;quot;&amp;lt;&amp;lt;comparative&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
		handle_infl(&amp;quot;sup&amp;quot;, &amp;quot;&amp;lt;&amp;lt;superlative&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
		handle_infl(&amp;quot;adv&amp;quot;, &amp;quot;derived adverb&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;adverbs&amp;quot;] = {&lt;br /&gt;
	params = {&lt;br /&gt;
		comp = list_param,&lt;br /&gt;
		sup = list_param,&lt;br /&gt;
	},&lt;br /&gt;
	func = function(args, data)&lt;br /&gt;
		-- Parse and insert an inflection not requiring additional processing into `data.inflections`. The raw arguments&lt;br /&gt;
		-- come from `args[field]`, which is parsed for inline modifiers. `label` is the label that the inflections are&lt;br /&gt;
		-- given; &amp;lt;&amp;lt;..&amp;gt;&amp;gt; ini the label is linked to the glossary). `accel` is the accelerator form, or nil.&lt;br /&gt;
		local function handle_infl(field, label)&lt;br /&gt;
			parse_and_insert_inflection(&amp;quot;adverb&amp;quot;, data, args, field, label)&lt;br /&gt;
		end&lt;br /&gt;
		handle_infl(&amp;quot;comp&amp;quot;, &amp;quot;&amp;lt;&amp;lt;comparative&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
		handle_infl(&amp;quot;sup&amp;quot;, &amp;quot;&amp;lt;&amp;lt;superlative&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;letters&amp;quot;] = {&lt;br /&gt;
	params = {&lt;br /&gt;
		upper = true,&lt;br /&gt;
		lower = true,&lt;br /&gt;
	},&lt;br /&gt;
	func = function(args, data)&lt;br /&gt;
		if args.upper then&lt;br /&gt;
			insert(data.inflections, {label = &amp;quot;lower case&amp;quot;, nil})&lt;br /&gt;
			insert(data.inflections, {label = &amp;quot;upper case&amp;quot;, args.upper})&lt;br /&gt;
		elseif args.lower then&lt;br /&gt;
			insert(data.inflections, {label = &amp;quot;upper case&amp;quot;, nil})&lt;br /&gt;
			insert(data.inflections, {label = &amp;quot;lower case&amp;quot;, args.lower})&lt;br /&gt;
		end&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                                      Suffix forms                                   --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;suffix forms&amp;quot;] = {&lt;br /&gt;
	params = {&lt;br /&gt;
		[2] = {required = true, template_default = &amp;quot;noun&amp;quot;},&lt;br /&gt;
		[3] = {type = &amp;quot;genders&amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
	func = function(args, data)&lt;br /&gt;
		if args[3] then&lt;br /&gt;
			validate_genders(data, args[3], false)&lt;br /&gt;
			data.genders = args[3]&lt;br /&gt;
		end&lt;br /&gt;
		local suffix_type = {}&lt;br /&gt;
		for _, typ in ipairs(split_on_comma(args[2])) do&lt;br /&gt;
			insert(suffix_type, typ .. &amp;quot;-forming suffix&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		insert(data.inflections, {label = &amp;quot;non-lemma form of &amp;quot; .. m_table.serialCommaJoin(suffix_type, {conj = &amp;quot;or&amp;quot;})})&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
--                                Arbitrary part of speech                             --&lt;br /&gt;
-----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
pos_functions[&amp;quot;head&amp;quot;] = {&lt;br /&gt;
	params = {&lt;br /&gt;
		[2] = {required = true, template_default = &amp;quot;interjection&amp;quot;}, -- actual part of speech&lt;br /&gt;
		[3] = {type = &amp;quot;genders&amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
	get_actual_pos = function(args)&lt;br /&gt;
		return require(headword_module).canonicalize_pos(args[2])&lt;br /&gt;
	end,&lt;br /&gt;
	func = function(args, data)&lt;br /&gt;
		if data.is_suffix then&lt;br /&gt;
			error(&amp;quot;Can&amp;#039;t use [[Template:sh-head]] with suffixes&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
		if args[3] then&lt;br /&gt;
			validate_genders(data, args[3], false)&lt;br /&gt;
			data.genders = args[3]&lt;br /&gt;
		end&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>