Jskad/source/org/thdl/tib/text/ttt/PackageTest.java
2004-04-17 15:14:46 +00:00

9270 lines
282 KiB
Java

// -*- java -*- to avoid jde mode, which is slow on this big a file on
// one of my boxes
/*
The contents of this file are subject to the THDL Open Community License
Version 1.0 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License on the THDL web site
(http://www.thdl.org/).
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific terms governing rights and limitations under the
License.
The Initial Developer of this software is the Tibetan and Himalayan Digital
Library (THDL). Portions created by the THDL are Copyright 2003 THDL.
All Rights Reserved.
Contributor(s): ______________________________________.
*/
package org.thdl.tib.text.ttt;
import org.thdl.util.ThdlOptions;
import java.util.ArrayList;
import junit.framework.TestCase;
/** Tests this package, especially {@link #TPairListFactory} and
* {@link TPairList}.
*
* @author David Chandler */
public class PackageTest extends TestCase {
/** Invokes a text UI and runs all this class's tests. */
public static void main(String[] args) {
junit.textui.TestRunner.run(PackageTest.class);
}
protected void setUp() {
// We don't want to use options.txt:
ThdlOptions.forTestingOnlyInitializeWithoutDefaultOptionsFile();
// We don't want to load the TM or TMW font files ourselves:
ThdlOptions.setUserPreference("thdl.rely.on.system.tmw.fonts", true);
ThdlOptions.setUserPreference("thdl.rely.on.system.tm.fonts", true);
ThdlOptions.setUserPreference("thdl.debug", true);
}
public PackageTest() { }
static void tstHelper(String acip) {
tstHelper2(acip, null, false, null, null, null, 0);
}
private static void tstHelper(String acip, String expectedPairs) {
tstHelper2(acip, expectedPairs, false, null, null, null, 0);
}
private static void tstHelper(String acip, String[] expectedParses) {
tstHelper2(acip, null, false, expectedParses, null, null, 0);
}
private static void tstHelper(String acip, String expectedPairs, String[] expectedParses) {
tstHelper2(acip, expectedPairs, false, expectedParses, null, null, 0);
}
private static void tstHelper(String acip, String expectedPairs, String[] expectedParses, String[] legalParses) {
tstHelper2(acip, expectedPairs, false, expectedParses, legalParses, null, 0);
}
private static void tstHelper(String acip, String expectedPairs, String[] expectedParses, String[] legalParses, String expectedBestParse) {
tstHelper2(acip, expectedPairs, false, expectedParses, legalParses, expectedBestParse, 0);
}
private static void tstHelper(String acip, String expectedPairs, String[] expectedParses, String[] legalParses, String expectedBestParse, int which) {
tstHelper2(acip, expectedPairs, false, expectedParses, legalParses, expectedBestParse, which);
}
private static void tstHelper2(String acip) {
tstHelper2(acip, null);
}
private static void tstHelper2(String acip, String expectedPairs) {
tstHelper2(acip, expectedPairs, true, null, null, null, 0);
}
private static final boolean sdebug = false;
/** Testing helper.
@param pairListToUse is 0 for the usual lex, 1 for the "Treat
' as a consonant, not a vowel" parse, 2 to use 1 but also
verify that lex 1 is preferred by the converter over lex 0, 3
to use 1 but also verify that lex 0 is preferred by the
converter over lex 1, -1 to use 0 and ensure that there is no
lex 1, only a lex 0. */
private static void tstHelper2(String acip,
String expectedPairs,
boolean debug,
String[] expectedParses,
String[] expectedLegalParses,
String expectedBestParse,
int pairListToUse) {
TPairList[] la = TPairListFactory.breakACIPIntoChunks(acip, true);
TPairList l = la[(pairListToUse == -1) ? 0 : ((pairListToUse >= 1) ? 1 : pairListToUse)];
if (sdebug || debug)
System.out.println("ACIP=" + acip + " and l'=" + l);
if (pairListToUse == -1)
assertTrue(la[1] == null);
if (expectedPairs != null) {
if (!l.equals(expectedPairs)) {
System.out.println("acip=" + acip + "; chunks=" + l + "; expected chunks=" + expectedPairs);
assertTrue(false);
}
}
if (null == l) {
assertTrue("!null!".equals(expectedBestParse));
return;
}
TParseTree pt = l.getParseTree();
if (pt == null) {
if (sdebug || debug)
System.out.println("ACIP=" + acip + " and no parses exists; /numParses 0");
System.out.println("ACIPNoParseError: NO PARSE for the ACIP {" + acip + "}");
assertTrue(null == expectedParses || expectedParses.length == 0);
assertTrue(null == expectedLegalParses || expectedLegalParses.length == 0);
return;
} else {
if (pt.getWarning("Most", l, acip) != null) {
System.out.println(pt.getWarning("Most", l, acip));
} else if (pt.getWarning("All", l, acip) != null)
if (sdebug || debug) System.out.println("Paranoiac warning is this: " + pt.getWarning("All", l, acip));
}
int np = pt.numberOfParses();
boolean goodness = expectedParses == null || expectedParses.length == np;
if (sdebug || debug || !goodness)
System.out.println("ACIP=" + acip + " and expectedParses is " + expectedParses + " with length " + ((null == expectedParses)?0:expectedParses.length) + " and parse tree=" + pt + " /size " + pt.size() + "; /pairs " + pt.numberOfPairs() + "; /numParses " + np);
assertTrue(goodness);
{
ParseIterator pi = pt.getParseIterator();
for (int i = 0 ; i < np; i++) {
TStackList n = pi.next();
if (sdebug || debug)
System.out.println("Parse " + (i + 1) + " is " + n + " which has " + n.size() + " glyphs.");
boolean okay = (null == expectedParses || n.equals(expectedParses[i]));
if (!okay)
System.out.println("Parse " + (i) + " (from zero) is " + n + " (toString2=" + n.toString2() + ") and expected is " + expectedParses[i]);
assertTrue(okay);
}
assertTrue(!pi.hasNext());
}
{
TStackListList legalParses = pt.getUniqueParse(false);
boolean goodness2 = (expectedLegalParses == null
|| expectedLegalParses.length == legalParses.size());
for (int i = 0 ; i < legalParses.size(); i++) {
TStackList n = legalParses.get(i);
if (sdebug || debug)
System.out.println("Legal parse " + (i + 1) + " is " + n + " which has " + n.size() + " glyphs.");
boolean okay = (null == expectedLegalParses
|| expectedLegalParses.length < i+1
|| n.equals(expectedLegalParses[i]));
if (!okay || !goodness2)
System.out.println("Legal parse " + (i) + " (from zero) is " + n + " (toString2=" + n.toString2() + ") and expected is "
+ ((i < expectedLegalParses.length)
? expectedLegalParses[i]
: "not present"));
assertTrue(okay);
}
if (!goodness2)
System.out.println("You expected " + expectedLegalParses.length + " legal parses, but there were instead " + legalParses.size() + " legal parses for ACIP " + acip + ".");
assertTrue(goodness2);
TStackListList allLegalParses = pt.getLegalParses();
TStackListList decentParses = pt.getNonIllegalParses();
if (pt.getBestParse() == null) {
if (legalParses.size() == 0) {
if (null != expectedBestParse && !"".equals(expectedBestParse)) {
System.out.print("Expected is that there is a best parse \"" + expectedBestParse + "\" but there is no best parse for ACIP {" + acip + "}");
assertTrue(false);
}
System.out.print("ACIPNoBestParseError: There is no best parse for the ACIP {" + acip + "}; ");
if (decentParses.size() == 1) {
System.out.println("ACIPNoLegalParseError: NO LEGAL PARSE for the unambiguous ACIP {" + acip + "} (i.e., exactly one illegal parse exists, so it's unambiguous)");
} else {
System.out.println("ACIPNoLegalParseError: NO PARSES for ACIP {" + acip + "}, decent parses are " + decentParses);
}
} else {
if (legalParses.size() > 1) {
System.out.println("ACIPTooManyLegalParsesError: see these " + legalParses.size() + " legal parses for ACIP " + acip + ": " + legalParses);
assertTrue(legalParses.size() == 2
&& (legalParses.get(0).size()
== 1 + legalParses.get(1).size()));
}
}
} else {
if (legalParses.size() != 1) {
if (sdebug || debug) System.out.println("Best parse exists but there are none or two or more legal parses for ACIP {" + acip + "}");
}
if (null != expectedBestParse) {
boolean good = pt.getBestParse().equals(expectedBestParse);
if (!good) {
System.out.print("Expected best parse is \"" + expectedBestParse + "\" but the best parse is " + pt.getBestParse() + " for ACIP {" + acip + "}");
}
assertTrue(good);
}
if (sdebug || debug) System.out.println("There is a best parse for the slightly rocky ACIP {" + acip + "}");
}
if (allLegalParses.size() != legalParses.size()) {
if (sdebug || debug)
System.out.println("allLegalParses are " + allLegalParses + " and legalParses are " + legalParses);
}
}
if (l.getACIPError() != null)
System.out.println("ACIPError: " + l.getACIPError());
if (!l.recoverACIP().equals(acip)
&& (acip.indexOf("A+") < 1) // which becomes +, e.g. {NA+YA}
&& (acip.indexOf('0') < 0)
&& (acip.indexOf('1') < 0)
&& (acip.indexOf('2') < 0)
&& (acip.indexOf('3') < 0)
&& (acip.indexOf('4') < 0)
&& (acip.indexOf('5') < 0)
&& (acip.indexOf('6') < 0)
&& (acip.indexOf('7') < 0)
&& (acip.indexOf('8') < 0)
&& (acip.indexOf('9') < 0)
&& pairListToUse == 1
&& (acip.indexOf('\'') < 0)) {
System.out.println("acip=" + acip
+ "; recovery is " + l.recoverACIP());
assertTrue(false);
}
if (pairListToUse >= 2) {
TParseTree pt0 = la[0].getParseTree();
TParseTree pt1 = la[1].getParseTree();
TStackList sl0 = pt0.getBestParse();
TStackList sl1 = pt1.getBestParse();
BoolTriple sl0bt = sl0.isLegalTshegBar(false);
BoolTriple sl1bt = sl1.isLegalTshegBar(false);
if (pairListToUse == 2) {
assertTrue(sl0bt.compareTo(sl1bt) < 0);
} else {
assertTrue(sl0bt.compareTo(sl1bt) >= 0);
}
}
}
public void testCutoff() {
// this would once be exponential running time, so we'd cut it off:
tstHelper("BRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTNBRTN");
}
public void testSlowestTshegBar() {
// this would once be exponential running time, so we'd cut it off:
tstHelper("BRTNBRTNBRTNB");
}
public void testPerformance() {
tstHelper("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
boolean x = false;
try {
tstHelper("901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678");
} catch (IllegalArgumentException e) {
x = true;
}
assertTrue(x);
tstHelper("9012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678");
}
/** Tests {@link TPairListFactory#breakACIPIntoChunks(String,
* boolean)}, {@link TPairList#getACIPError()}, and {@link
* TPairList#recoverACIP()}. */
public void testBreakACIPIntoChunks() {
tstHelper("GASN"); // ambiguous with regard to prefix rules
tstHelper("BARMA"); // ambiguous with regard to prefix rules
tstHelper("MARDA"); // ambiguous with regard to prefix rules
tstHelper("BBA"); // ambiguous with regard to prefix rules
tstHelper("BBLUGS"); // ambiguous with regard to prefix rules
tstHelper("BDRA"); // ambiguous with regard to prefix rules
tstHelper("BDRAG"); // ambiguous with regard to prefix rules
tstHelper("BDRA'I"); // ambiguous with regard to prefix rules
tstHelper("BDRAL"); // ambiguous with regard to prefix rules
tstHelper("BDRAN"); // ambiguous with regard to prefix rules
tstHelper("BDRANGS"); // ambiguous with regard to prefix rules
tstHelper("BDREN"); // ambiguous with regard to prefix rules
tstHelper("BDRI"); // ambiguous with regard to prefix rules
tstHelper("BDRIS"); // ambiguous with regard to prefix rules
tstHelper("BDROL"); // ambiguous with regard to prefix rules
tstHelper("BDRUG"); // ambiguous with regard to prefix rules
tstHelper("BLCAG"); // ambiguous with regard to prefix rules
tstHelper("BLCI"); // ambiguous with regard to prefix rules
tstHelper("BLKONG"); // ambiguous with regard to prefix rules
tstHelper("BLNGA"); // ambiguous with regard to prefix rules
tstHelper("BLNGAG"); // ambiguous with regard to prefix rules
tstHelper("BMA"); // ambiguous with regard to prefix rules
tstHelper("BMYOD"); // ambiguous with regard to prefix rules
tstHelper("BSALDA"); // ambiguous with regard to prefix rules
tstHelper("BSAMS"); // ambiguous with regard to prefix rules
tstHelper("BSEMS"); // ambiguous with regard to prefix rules
tstHelper("BTSAMS"); // ambiguous with regard to prefix rules
tstHelper("BTSIMS"); // ambiguous with regard to prefix rules
tstHelper("DDANG"); // ambiguous with regard to prefix rules
tstHelper("DDAR"); // ambiguous with regard to prefix rules
tstHelper("DDRANGS"); // ambiguous with regard to prefix rules
tstHelper("DDRUG"); // ambiguous with regard to prefix rules
tstHelper("DNAG"); // ambiguous with regard to prefix rules
tstHelper("DNOGS"); // ambiguous with regard to prefix rules
tstHelper("DRBAN"); // ambiguous with regard to prefix rules
tstHelper("DRGYU"); // ambiguous with regard to prefix rules
tstHelper("DRTOG"); // ambiguous with regard to prefix rules
tstHelper("DYA"); // ambiguous with regard to prefix rules
tstHelper("DYAN"); // ambiguous with regard to prefix rules
tstHelper("GDRA"); // ambiguous with regard to prefix rules
tstHelper("GDRIM"); // ambiguous with regard to prefix rules
tstHelper("GGAN"); // ambiguous with regard to prefix rules
tstHelper("GGYUR"); // ambiguous with regard to prefix rules
tstHelper("GLTAR"); // ambiguous with regard to prefix rules
tstHelper("GLTUNG"); // ambiguous with regard to prefix rules
tstHelper("GMA"); // ambiguous with regard to prefix rules
tstHelper("GMAN"); // ambiguous with regard to prefix rules
tstHelper("GMON"); // ambiguous with regard to prefix rules
tstHelper("GRDEGS"); // ambiguous with regard to prefix rules
tstHelper("GRDZU"); // ambiguous with regard to prefix rules
tstHelper("GRGYA"); // ambiguous with regard to prefix rules
tstHelper("GRNAGS"); // ambiguous with regard to prefix rules
tstHelper("GRTAN"); // ambiguous with regard to prefix rules
tstHelper("GRTOGS"); // ambiguous with regard to prefix rules
tstHelper("GRTZO"); // ambiguous with regard to prefix rules
tstHelper("GRTZOD"); // ambiguous with regard to prefix rules
tstHelper("GRTZON"); // ambiguous with regard to prefix rules
tstHelper("GSLA"); // ambiguous with regard to prefix rules
tstHelper("GSNAD"); // ambiguous with regard to prefix rules
tstHelper("GZLA"); // ambiguous with regard to prefix rules
tstHelper("MBA"); // ambiguous with regard to prefix rules
tstHelper("MBA'"); // ambiguous with regard to prefix rules
tstHelper("MBI'I"); // ambiguous with regard to prefix rules
tstHelper("MHA'A"); // ambiguous with regard to prefix rules
tstHelper("MRDA"); // ambiguous with regard to prefix rules
tstHelper("MRDO"); // ambiguous with regard to prefix rules
tstHelper("MRDZOGS"); // ambiguous with regard to prefix rules
tstHelper("MRGA"); // ambiguous with regard to prefix rules
tstHelper("MRGAD"); // ambiguous with regard to prefix rules
tstHelper("MRGAN"); // ambiguous with regard to prefix rules
tstHelper("MRJES"); // ambiguous with regard to prefix rules
tstHelper("MRJOD"); // ambiguous with regard to prefix rules
tstHelper("MRTOGS"); // ambiguous with regard to prefix rules
tstHelper("MRTOL"); // ambiguous with regard to prefix rules
tstHelper("MRTZE'I"); // ambiguous with regard to prefix rules
tstHelper("MRTZIGS"); // ambiguous with regard to prefix rules
tstHelper("MSAM"); // ambiguous with regard to prefix rules
tstHelper("MSGRIB"); // ambiguous with regard to prefix rules
tstHelper("MSKYES"); // ambiguous with regard to prefix rules
tstHelper("MSON"); // ambiguous with regard to prefix rules
tstHelper("MSOS"); // ambiguous with regard to prefix rules
tstHelper("MSTAMS"); // ambiguous with regard to prefix rules
tstHelper("MSTAN"); // ambiguous with regard to prefix rules
tstHelper("KA'", "[(K . A), (' . )]",
new String[] { "{KA}{'}" },
new String[] { "{KA}{'}" },
"{KA}{'}");
tstHelper("A'AAMA", "{A}{'}{AA}{MA}"); // FIXME: how should we parse this?
tstHelper("K+K+KA", "{K+}{K+}{KA}");
// If you're not careful, you'll think GGYES is a legal
// Tibetan tsheg bar and parse it as {G}{G+YE}{S}. But it's
// non-native, really, because GA doesn't take a GA prefix.
// This doesn't occur in ACIP input files that I've seen, but
// GGYI (S1000I.INC) and GGYUR (S5275MC4.ACT) do occur.
tstHelper("GGYES", "{G}{G}{YE}{S}",
new String[] { "{G+G+YE}{S}", "{G}{G+YE}{S}" },
new String[] { },
"{G+G+YE}{S}");
tstHelper("BDE", "{B}{DE}",
new String[] { "{B+DE}", "{B}{DE}" },
new String[] { "{B}{DE}" },
"{B}{DE}");
tstHelper("BDEm", "{B}{DEm}",
new String[] { "{B+DEm}", "{B}{DEm}" },
new String[] { "{B}{DEm}" },
"{B}{DEm}");
tstHelper("NA+YA", "{N+}{YA}",
new String[] { "{N+YA}" },
new String[] { "{N+YA}" },
"{N+YA}");
tstHelper("NE+YA", "{NE}{+-}{YA}",
null, null, "!null!");
tstHelper("GA-YOGS", "{GA}{-}{YO}{G}{S}",
new String[] { "{GA}{YO}{G+S}", "{GA}{YO}{G}{S}" }, null, "{GA}{YO}{G}{S}");
tstHelper("GDAMS'O", "{G}{DA}{M}{S'O}",
new String[] {
"{G+DA}{M+S'O}",
"{G}{DA}{M+S'O}",
},
new String[] { },
"{G+DA}{M+S'O}", 0);
tstHelper("GDAMS'O", "{G}{DA}{M}{S-}{'O}",
new String[] {
"{G+DA}{M+S}{'O}",
"{G+DA}{M}{S}{'O}",
"{G}{DA}{M+S}{'O}",
"{G}{DA}{M}{S}{'O}",
},
new String[] { "{G}{DA}{M}{S}{'O}" },
"{G}{DA}{M}{S}{'O}", 2);
tstHelper("SNYAMS'AM'ANG", "{S}{NYA}{M}{S-}{'A}{M-}{'A}{NG}", null, null, "{S+NYA}{M}{S}{'A}{M}{'A}{NG}", 2);
tstHelper("SNYAMS'AM'ANG", "{S}{NYA}{M}{S'A}{M'A}{NG}", null, null, "{S+NYA}{M+S'A}{M'A}{NG}", 0);
tstHelper("SNYAM'AM", null, null, null, "{S+NYA}{M}{'A}{M}", 2);
tstHelper("SNYAMS'AM", null, null, null, "{S+NYA}{M}{S}{'A}{M}", 2);
tstHelper("SNYAM-'A-M", null, null, null, "{S+NYA}{M}{'A}{M}", -1);
tstHelper("SNY-M-'-M", null, null, null, "{S+NY}{M}{'}{M}", -1);
tstHelper("SNYAMS'AM'ANG'U'I'O", null, null, null, "{S+NYA}{M}{S}{'A}{M}{'A}{NG}{'U}{'I}{'O}", 2);
tstHelper("SNYAMS'I'AM'ANG'U'I'O", null, null, null, "{S+NYA}{M}{S}{'I}{'A}{M}{'A}{NG}{'U}{'I}{'O}", 2);
tstHelper("SNYAM+S+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SAM'US", null, null, null, "{SA}{M}{'U}{S}", 2);
tstHelper("SAM'UR'US", null, null, null, "{SA}{M}{'U}{R}{'U}{S}", 2);
tstHelper("LA'OS", null, null, null, "{LA}{'O}{S}", -1);
tstHelper("NA'OS", null, null, null, "{NA}{'O}{S}", -1);
tstHelper("NA'IS", null, null, null, "{NA}{'I}{S}", -1);
tstHelper("LE'UNG", null, null, null, "{LE}{'U}{NG}", -1);
tstHelper("LE'U'ANG", null, null, null, "{LE}{'U}{'A}{NG}", -1);
tstHelper("LE'UM", null, null, null, "{LE}{'U}{M}", -1);
tstHelper("LE'U'IS", null, null, null, "{LE}{'U}{'I}{S}", -1);
tstHelper("LAM'OS", null, null, null, "{LA}{M}{'O}{S}", 2);
tstHelper("NAM'OS", null, null, null, "{NA}{M}{'O}{S}", 2);
tstHelper("NAM'IS", null, null, null, "{NA}{M}{'I}{S}", 2);
tstHelper("LEM'UNG", null, null, null, "{LE}{M}{'U}{NG}", 2);
tstHelper("LEM'U'ANG", null, null, null, "{LE}{M}{'U}{'A}{NG}", 2);
tstHelper("LEM'UM", null, null, null, "{LE}{M}{'U}{M}", 2);
tstHelper("LEM'U'IS", null, null, null, "{LE}{M}{'U}{'I}{S}", 2);
tstHelper("MA'ONGS", null, null, null, "{MA}{'O}{NG}{S}", -1);
tstHelper("SAM'AM", null, null, null, "{SA}{M}{'A}{M}", 2);
tstHelper("SAMS'ANG", null, null, null, "{SA}{M}{S}{'A}{NG}", 2);
tstHelper("SNYANGD'O", null, null, null, "{S+NYA}{NG}{D}{'O}", 2);
tstHelper("BNA", "{B}{NA}", new String[] { "{B+NA}", "{B}{NA}" },
new String[] { "{B+NA}" }, "{B+NA}", -1);
tstHelper("T-SNYANGD'O", null, null, null, "{T}{S+NYA}{NG+D}{'O}", 3); // T is no prefix, so NG+D, not NG-D
tstHelper("T-SNYANGD'O", null, null, null, "{T}{S+NYA}{NG+D'O}", 0);
tstHelper("SNYAM+S+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
tstHelper("SNYAMS+'O", null, null, null, "{S+NYA}{M+S+'O}", -1);
{
// Tests this rule: if a stack X takes a prefix Y, then X with
// wa-zur takes the prefix Y also.
tstHelper("GDAMS", null, null, null, "{G}{DA}{M}{S}", -1);
tstHelper("GDVAMS", null, null, null, "{G}{D+VA}{M}{S}", -1);
}
tstHelper("GDAM-S'O", null, null, null, "{G}{DA}{M}{S}{'O}", 2);
tstHelper("GDAM-C'O", null, null, null, "{G+DA}{M}{C'O}", -1);
tstHelper("BRLA", null, null, null, "{B}{R+LA}", -1);
tstHelper("DKY", null, null, null, "{D}{K+Y}", -1);
tstHelper("DKY'O", null, null, null, "{D}{K+Y'O}", -1);
tstHelper("DKYA'O", null, null, null, "{D}{K+YA}{'O}", -1);
tstHelper("GM'O", null, null, null, "{G+M'O}", -1);
tstHelper("GAM'O", null, null, null, "{GA}{M}{'O}", 2);
tstHelper("G-M'O", null, null, null, "{G}{M'O}", -1);
tstHelper("DM'O", null, null, null, "{D}{M'O}", -1);
tstHelper("DAM'O", null, null, null, "{DA}{M}{'O}", 2);
tstHelper("D-M'O", null, null, null, "{D}{M'O}", -1);
tstHelper("GTZAN", "{G}{TZA}{N}", null, null, "{G}{TZA}{N}", -1);
tstHelper("GTZHAN", "{G}{TZ}{HA}{N}", null, null, "{G+TZ+HA}{N}", -1);
tstHelper("SHR'I", "{SH}{R'I}",
null,
null,
"{SH+R'I}");
tstHelper("DRUG", "{D}{RU}{G}",
new String[] { "{D+RU}{G}", "{D}{RU}{G}" },
new String[] { "{D+RU}{G}" },
"{D+RU}{G}");
tstHelper("d+H+d+HA", "{d+}{H+}{d+}{HA}",
new String[] { "{d+H+d+HA}" },
new String[] { "{d+H+d+HA}" });
tstHelper("Gd+H+d+HA");
tstHelper("AUTPA", "{AU}{T}{PA}",
new String[] { "{AU}{T+PA}" },
new String[] { },
"{AU}{T+PA}");
tstHelper("PADMA", "{PA}{D}{MA}",
null,
null);
tstHelper("PADMA", "{PA}{D}{MA}",
new String[] { "{PA}{D+MA}" },
new String[] { },
"{PA}{D+MA}");
tstHelper("PADMDM", "{PA}{D}{M}{D}{M}",
null,
new String[] { },
"{PA}{D+M+D+M}");
tstHelper("GRVA'I", "{G}{R}{VA}{'I}",
new String[] { "{G+R+VA}{'I}", "{G}{R+VA}{'I}" },
new String[] { "{G+R+VA}{'I}" });
tstHelper("G-RVA'I", "{G-}{R}{VA}{'I}",
new String[] { "{G}{R+VA}{'I}" },
new String[] { },
"{G}{R+VA}{'I}");
tstHelper("RVA", "{R}{VA}",
new String[] { "{R+VA}" },
new String[] { "{R+VA}" });
tstHelper("VA", "{VA}",
new String[] { "{VA}" },
new String[] { },
"");
tstHelper("K+O", "{K+}{O}", new String[] { }, new String[] { });
tstHelper("K+0", "{K+}{0}", new String[] { }, new String[] { });
tstHelper("0+K", "{0-}{+-}{K}", new String[] { }, new String[] { });
tstHelper("0+0", "{0-}{+-}{0}", new String[] { }, new String[] { });
tstHelper("0", "{0}", new String[] { "{0}" },
new String[] { "{0}" });
tstHelper("0123", "{0-}{1-}{2-}{3}", new String[] { "{0}{1}{2}{3}" },
new String[] { "{0}{1}{2}{3}" });
tstHelper("0-123", "{0-}{-}{1-}{2-}{3}", new String[] { "{0}{1}{2}{3}" },
new String[] { "{0}{1}{2}{3}" });
tstHelper("0123KA", "{0-}{1-}{2-}{3-}{KA}", new String[] { },
new String[] { });
tstHelper("G0123KA", "{G}{0-}{1-}{2-}{3-}{KA}", new String[] { },
new String[] { });
tstHelper("BHA");
tstHelper("BHE");
tstHelper("BH'I");
tstHelper("BH'Im");
tstHelper("BH'Im:"); // LOW-PRIORITY FIXME: make TibetanMachineWeb see EWTS {H} as an adornment.
tstHelper("D-VA");
tstHelper("DVA");
tstHelper("SRAS", "{S}{RA}{S}",
new String[] { "{S+RA}{S}" },
new String[] { "{S+RA}{S}" });
tstHelper("SARS", "{SA}{R}{S}",
new String[] { "{SA}{R+S}", "{SA}{R}{S}" },
new String[] { "{SA}{R}{S}" });
tstHelper("SARAS", "{SA}{RA}{S}",
new String[] { "{SA}{RA}{S}" },
new String[] { "{SA}{RA}{S}" });
tstHelper("SHLO",
"{SH}{LO}",
new String[] { "{SH+LO}" },
new String[] { "{SH+LO}" });
tstHelper("ZLUM", "{Z}{LU}{M}", new String[] { "{Z+LU}{M}" }, new String[] { "{Z+LU}{M}" });
tstHelper("K'EE", "{K'EE}");
tstHelper("K'O", "{K'O}");
tstHelper("K'OO", "{K'OO}");
tstHelper("K'II", "{K'I}{I}");
tstHelper("K'i", "{K'i}");
tstHelper("K'A", "{K'A}");
tstHelper("B+DDZ", "{B+}{D}{DZ}",
new String[] { "{B+D+DZ}" }); // we're conservative.
// A heuristic is to
// say that B+DDZ must
// be {B+D}{DZ}
// because the
// keyboardist surely
// would've typed two
// plusses if {B+D+DZ}
// were desired, given
// that we know the
// keyboardist was
// aware of the plus
// operator. We warn
// in such a case.
// Though R0021F.ACE
// recommends D+GRA etc.
tstHelper("BRTN--GA",
"{B}{R}{T}{N-}{-}{GA}",
new String[] {
"{B+R+T+N}{GA}",
"{B}{R+T+N}{GA}"
},
new String[] {},
"{B+R+T+N}{GA}");
tstHelper("BR-TN");
tstHelper("BRTN",
"{B}{R}{T}{N}",
new String[] {
"{B+R+T+N}",
"{B}{R+T+N}"
},
new String[] { },
"{B+R+T+N}");
tstHelper("BRT-N",
"{B}{R}{T-}{N}",
null,
null,
"{B}{R+T}{N}");
tstHelper("BRTAN",
"{B}{R}{TA}{N}",
null,
null,
"{B}{R+TA}{N}");
tstHelper("BRTN-BRTN",
"{B}{R}{T}{N-}{B}{R}{T}{N}",
new String[] {
"{B+R+T+N}{B+R+T+N}",
"{B}{R+T+N}{B+R+T+N}"
}); // has 25 parses
tstHelper("B+R-T-N-B-R-T+N",
new String[] { "{B+R}{T}{N}{B}{R}{T+N}" }); // has 1 parse
tstHelper("B+G+K", "{B+}{G+}{K}", new String[] { "{B+G+K}" }, null, "{B+G+K}"); // no parses.
tstHelper("G-YA",
new String[] { "{G}{YA}" }); // has 1 parse
tstHelper("G+YA",
new String[] { "{G+YA}" }); // has 1 parse
tstHelper("G+YAm:",
new String[] { "{G+YAm:}" }); // has 1 parse
tstHelper("BRTN-BLTA", "{B}{R}{T}{N-}{B}{L}{TA}",
new String[] {
"{B+R+T+N}{B+L+TA}",
"{B}{R+T+N}{B+L+TA}"
}); // has 15 parses
tstHelper("BSABS",
new String[] { "{B+SA}{B+S}", "{B+SA}{B}{S}", "{B}{SA}{B+S}", "{B}{SA}{B}{S}" });
tstHelper("ZUNGS");
tstHelper("BRTIB",
"{B}{R}{TI}{B}",
new String[] {
"{B+R+TI}{B}",
"{B}{R+TI}{B}"
});
tstHelper("PRiTZTSVA",
"{P}{Ri}{TZ}{TS}{VA}",
new String[] {
"{P+Ri}{TZ+TS+VA}"
});
tstHelper("SPYOMS", "{S}{P}{YO}{M}{S}",
new String[] {
"{S+P+YO}{M+S}",
"{S+P+YO}{M}{S}",
});
tstHelper(":'AO", "[( . A:), (' . ), (A . O)]");
tstHelper("m'AO", "[( . Am), (' . ), (A . O)]");
tstHelper("m:'AO", "[( . Am:), (' . ), (A . O)]");
tstHelper("AA:", "[(A . A:)]", new String[] { "{AA:}" });
tstHelper("KE:", "[(K . E:)]");
tstHelper("K:", "[(K . A:)]",
new String[] { "{KA:}" });
tstHelper("'AO", "[(' . ), (A . O)]");
tstHelper("'AOM", "[(' . ), (A . O), (M . )]");
tstHelper("BTZVA", "[(B . ), (TZ . ), (V . A)]");
tstHelper("G--YA", new String[] { "{G}{YA}" });
tstHelper("-", "[( . -)]");
tstHelper("+", "[(+ . )]");
tstHelper("G-Y", "[(G . -), (Y . )]");
tstHelper("GA-Y", "[(G . A), ( . -), (Y . )]");
tstHelper("SKU'I", "[(S . ), (K . U), (' . I)]");
tstHelper("'BU", "[(' . ), (B . U)]");
tstHelper("BSKYANGS", "[(B . ), (S . ), (K . ), (Y . A), (NG . ), (S . )]");
tstHelper("SKYABS", "[(S . ), (K . ), (Y . A), (B . ), (S . )]");
tstHelper("SKYAB", "[(S . ), (K . ), (Y . A), (B . )]");
tstHelper("NA+YADAA", "[(N . +), (Y . A), (D . ), (A . A)]");
tstHelper("AA-KshA", "[(A . A), ( . -), (Ksh . A)]");
tstHelper("AAS", "[(A . A), (S . )]");
tstHelper("AA-ttA", "[(A . A), ( . -), (t . ), (t . A)]");
tstHelper("'AD", "[(' . A), (D . )]");
tstHelper("AE", "[(A . E)]");
tstHelper("AEE", "[(A . EE)]");
tstHelper("AER", "[(A . E), (R . )]");
tstHelper("AG");
tstHelper("H'Um:", "[(H . 'Um:)]");
tstHelper("H'U", "[(H . 'U)]");
tstHelper("Hi", "[(H . i)]");
tstHelper("Him", "[(H . im)]");
tstHelper("Him:", "[(H . im:)]");
tstHelper("H'Um", "[(H . 'Um)]");
tstHelper("AA", "[(A . A)]");
tstHelper("AAm", "[(A . Am)]");
tstHelper("AAm:", "[(A . Am:)]");
tstHelper("A'im:", "[(A . 'im:)]");
tstHelper("DEAI", "[(D . E), (A . I)]");
tstHelper("G'A'I", "[(G . 'A), (' . I)]");
tstHelper("G'I'I", "[(G . 'I), (' . I)]");
tstHelper("G'Im:'I", "[(G . 'Im:), (' . I)]");
tstHelper("G'Im:'ANG'AM'I", "[(G . 'Im:), (' . A), (NG . 'A), (M . 'I)]"); // FIXME: test that 'ANG'A is {'A}{NG'A}?
tstHelper("BA'AM", "[(B . A), (' . A), (M . )]");
tstHelper("B'AM", "[(B . 'A), (M . )]");
tstHelper("'AM'E", "[(' . A), (M . 'E)]");
tstHelper("BA'AM'E", "[(B . A), (' . A), (M . 'E)]");
tstHelper("BA'AM-'E", "[(B . A), (' . A), (M . -), (' . E)]");
tstHelper("TAA", "[(T . ), (A . A)]");
tstHelper("DAA", "[(D . ), (A . A)]");
tstHelper("DAAm", "[(D . A), (A . Am)]");
tstHelper("DAAm:", "[(D . A), (A . Am:)]");
tstHelper("DA'im:", "[(D . A), (' . im:)]");
tstHelper("NA+YA", "[(N . +), (Y . A)]");
tstHelper("'A", "[(' . A)]");
tstHelper("'Am", "[(' . Am)]");
tstHelper("'Am:", "[(' . Am:)]");
tstHelper("''im:", "[(' . 'im:)]");
tstHelper("D-'A", "[(D . -), (' . A)]");
tstHelper("D-'Am", "[(D . -), (' . Am)]");
tstHelper("D-'Am:", "[(D . -), (' . Am:)]");
// AMBIGUOUS really, but grepping for "[GDBM']'[AIEUO]" makes
// me think it's [(D . 'A)], which you'd hope it would be
// since A'A is an example in the ACIP docs.
//
// tstHelper("D'A", "[(D . 'A)]");
// tstHelper("D'A", "[(D . ), (' . A)]");
tstHelper("D'A", "[(D . 'A)]");
tstHelper("D'Am", "[(D . 'Am)]");
tstHelper("D'Am:", "[(D . 'Am:)]");
tstHelper("BA'I", "[(B . A), (' . I)]");
tstHelper("DAVA", "[(D . A), (V . A)]");
tstHelper("D-VA", "[(D . -), (V . A)]");
tstHelper("DVA", "[(D . ), (V . A)]");
tstHelper("BA'AM", "[(B . A), (' . A), (M . )]");
tstHelper("AAA");
tstHelper("A+YA", "[(A . +), (Y . A)]"); // achen over ya
tstHelper("D''im:", "[(D . ), (' . 'im:)]");
tstHelper("ssh");
tstHelper("ssshsstqm");
tstHelper("sh");
tstHelper("D----Z");
tstHelper("D++++Z");
tstHelper("shA");
tstHelper("SHA", "[(SH . A)]");
tstHelper("TSHA", "[(TS . ), (H . A)]");
tstHelper("TS-HA", "[(TS . -), (H . A)]");
tstHelper("TSE-HA", "[(TS . E), ( . -), (H . A)]");
tstHelper("TSEHA", "[(TS . E), (H . A)]");
tstHelper("s");
tstHelper("T+ZA", "[(T . +), (Z . A)]");
tstHelper("shTZNGN", "[(sh . ), (TZ . ), (NG . ), (N . )]");
tstHelper("shTZNAGN", "[(sh . ), (TZ . ), (N . A), (G . ), (N . )]");
tstHelper("KAm", "[(K . Am)]");
tstHelper("shT-ZNAGN", "[(sh . ), (T . -), (Z . ), (N . A), (G . ), (N . )]");
tstHelper("shT+ZNAGN", "[(sh . ), (T . +), (Z . ), (N . A), (G . ), (N . )]");
tstHelper("TYA-''I"); // from KD0095M.ACT
tstHelper("A-DZU");
tstHelper("MNYA-DZU");
System.out.println("\n\n\ntsting a bunch of tsheg bars I yanked from the kangyur:\n\n");
tstHelper("'");
tstHelper("A");
tstHelper("'A");
tstHelper("A'");
tstHelper("AA");
tstHelper("A'A");
tstHelper("AAD");
tstHelper("AAG");
tstHelper("AA'I");
tstHelper("AA-KshA");
tstHelper("AA-Ksh'A");
tstHelper("AA-KshI");
tstHelper("AAm");
tstHelper("AAN");
tstHelper("AANG");
tstHelper("AANG-GA'I");
tstHelper("AAR");
tstHelper("AARDZA");
tstHelper("AARDZU");
tstHelper("AARTHA");
tstHelper("AARYA");
tstHelper("A'ARYA");
tstHelper("A'A-RYA");
tstHelper("AAS");
tstHelper("AA-ttA");
tstHelper("'AD");
tstHelper("AE");
tstHelper("AEE");
tstHelper("AER");
tstHelper("AG");
tstHelper("Ai");
tstHelper("AI");
tstHelper("'A'I");
tstHelper("A'I");
tstHelper("AINDRA");
tstHelper("AIN-DRA");
tstHelper("AI-ttI");
tstHelper("Am");
tstHelper("'AM");
tstHelper("ANDA");
tstHelper("ANG");
tstHelper("'ANG");
tstHelper("'ANGS");
tstHelper("AO");
tstHelper("AOm");
tstHelper("AOM");
tstHelper("AOO");
tstHelper("A'RYA");
tstHelper("AshtA");
tstHelper("AU");
tstHelper("A'U");
tstHelper("AUD");
tstHelper("AUG");
tstHelper("AU-KKE");
tstHelper("AUshnI");
tstHelper("AU-TAP");
tstHelper("AUTAPA");
tstHelper("AUT-KA");
tstHelper("AU-TKU");
tstHelper("AUTP");
tstHelper("AUTPA");
tstHelper("AU-TPA");
tstHelper("AUT-PA");
tstHelper("AUTPAL");
tstHelper("AUT-PAL");
tstHelper("AUTPALA");
tstHelper("'B");
tstHelper("Ba");
tstHelper("BA");
tstHelper("'BA");
tstHelper("'BA'");
tstHelper("B'A");
tstHelper("BA'");
tstHelper("BA'AM");
tstHelper("BA'ANG");
tstHelper("BAB");
tstHelper("'BAB");
tstHelper("BABS");
tstHelper("'BABS");
tstHelper("BAD");
tstHelper("'BAD");
tstHelper("BADG");
tstHelper("BADZRA");
tstHelper("BADZRA'I");
tstHelper("BADZRAS");
tstHelper("BADZRO");
tstHelper("BAG");
tstHelper("BAGS");
tstHelper("'BAGS");
tstHelper("'BA'I");
tstHelper("B'AI");
tstHelper("B'A'I");
tstHelper("BA'I");
tstHelper("BA'I'O");
tstHelper("BA'ISKYE");
tstHelper("BAKKU");
tstHelper("BAL");
tstHelper("'BAL");
tstHelper("BAm");
tstHelper("BAM");
tstHelper("'BAM");
tstHelper("BAN");
tstHelper("BAndE");
tstHelper("BANDE");
tstHelper("BANDHE");
tstHelper("BAndI");
tstHelper("BANDI");
tstHelper("BANDRA");
tstHelper("BANDRE");
tstHelper("BANG");
tstHelper("'BANG");
tstHelper("B'ANG");
tstHelper("BANGS");
tstHelper("'BANGS");
tstHelper("BA'O");
tstHelper("BA'OBLO");
tstHelper("BAOM");
tstHelper("BAR");
tstHelper("'BAR");
tstHelper("BARMA");
tstHelper("BARnA'I");
tstHelper("BARSHA");
tstHelper("BAR-SHI");
tstHelper("BAS");
tstHelper("BASD");
tstHelper("BASM");
tstHelper("BATA+SA'I");
tstHelper("BAUNG");
tstHelper("BBANG");
tstHelper("BBAS");
tstHelper("BBLAN");
tstHelper("BBYID");
tstHelper("BCA");
tstHelper("BCA'");
tstHelper("BCAB");
tstHelper("BCABS");
tstHelper("BCAD");
tstHelper("BCAG");
tstHelper("BCAGS");
tstHelper("BCAL");
tstHelper("BCAN");
tstHelper("BCANG");
tstHelper("BCANGS");
tstHelper("BCA'O");
tstHelper("BCAR");
tstHelper("BCAS");
tstHelper("BCCO");
tstHelper("BCED");
tstHelper("BCER");
tstHelper("BCES");
tstHelper("BCHAD");
tstHelper("BCHANG");
tstHelper("BCHES");
tstHelper("BCHI");
tstHelper("BCHIS");
tstHelper("BCHOD");
tstHelper("BCI");
tstHelper("BCIBS");
tstHelper("BCIL");
tstHelper("BCING");
tstHelper("BCINGS");
tstHelper("BCIR");
tstHelper("BCIS");
tstHelper("BCO");
tstHelper("BCOD");
tstHelper("BCOL");
tstHelper("BCOM");
tstHelper("BCOMN");
tstHelper("BCON");
tstHelper("BCONGS");
tstHelper("BCOS");
tstHelper("BCU");
tstHelper("BCU'AM");
tstHelper("BCU'ANG");
tstHelper("BCUD");
tstHelper("BCUG");
tstHelper("BCUGS");
tstHelper("BCU'I");
tstHelper("BCUM");
tstHelper("BCUN");
tstHelper("BCUNG");
tstHelper("BCU'O");
tstHelper("BCUR");
tstHelper("BCUS");
tstHelper("BCVA");
tstHelper("BCVO");
tstHelper("BCWA");
tstHelper("BCWO");
tstHelper("BDA");
tstHelper("BDA'");
tstHelper("BDAG");
tstHelper("BDAGS");
tstHelper("BDAL");
tstHelper("BDAM");
tstHelper("BDAMS");
tstHelper("BDAN");
tstHelper("BDA'O");
tstHelper("BDAR");
tstHelper("BDAS");
tstHelper("BDE");
tstHelper("BDE'AM");
tstHelper("BDEB");
tstHelper("BDEGS");
tstHelper("BDE'I");
tstHelper("BDEN");
tstHelper("BDE'O");
tstHelper("BDER");
tstHelper("BDES");
tstHelper("BDO");
tstHelper("BDOG");
tstHelper("BDO'I");
tstHelper("BDON");
tstHelper("BDRAL");
tstHelper("BDROL");
tstHelper("BDRUG");
tstHelper("BDU");
tstHelper("BDUD");
tstHelper("BDUG");
tstHelper("BDUGS");
tstHelper("BDUN");
tstHelper("BDUNG");
tstHelper("BDUNGS");
tstHelper("BDUS");
tstHelper("BDZAG");
tstHelper("BDZAM");
tstHelper("BDZES");
tstHelper("Be");
tstHelper("BE");
tstHelper("'BEB");
tstHelper("'BEBS");
tstHelper("BED");
tstHelper("BEE");
tstHelper("BEE-d'U");
tstHelper("BEED'U");
tstHelper("BEE-d'U-RYA");
tstHelper("BEEd'URYA");
tstHelper("BEED'URYA");
tstHelper("BEEd'URYA'I");
tstHelper("BEED'URYA'I");
tstHelper("BEEK'U");
tstHelper("BEGS");
tstHelper("BE'I");
tstHelper("'BEL");
tstHelper("BEM");
tstHelper("BEMS");
tstHelper("'BEN");
tstHelper("BENDE");
tstHelper("BENDHA");
tstHelper("BER");
tstHelper("BE'U");
tstHelper("BE'US");
tstHelper("BGA");
tstHelper("BGAD");
tstHelper("BGAG");
tstHelper("BGAGS");
tstHelper("BGAM");
tstHelper("BGAS");
tstHelper("BGED");
tstHelper("BGEGS");
tstHelper("BGO");
tstHelper("BGOD");
tstHelper("BGOMS");
tstHelper("BGONG");
tstHelper("BGO'O");
tstHelper("BGOR");
tstHelper("BGOS");
tstHelper("BGRA");
tstHelper("BGRAD");
tstHelper("BGRANG");
tstHelper("BGRANGS");
tstHelper("BGRES");
tstHelper("BGRO");
tstHelper("BGROD");
tstHelper("BGROGS");
tstHelper("BGROL");
tstHelper("BGRONG");
tstHelper("BGRONGS");
tstHelper("BGROS");
tstHelper("BGSAS");
tstHelper("BGU");
tstHelper("BGYA");
tstHelper("BGYAD");
tstHelper("BGYA'O");
tstHelper("BGYAS");
tstHelper("BGYED");
tstHelper("BGYEN");
tstHelper("BGYI");
tstHelper("BGYI'AM");
tstHelper("BGYI'ANG");
tstHelper("BGYIB");
tstHelper("BGYID");
tstHelper("BGYI'I");
tstHelper("BGYIN");
tstHelper("BGYING");
tstHelper("BGYINGS");
tstHelper("BGYI'O");
tstHelper("BGYIR");
tstHelper("BGYIS");
tstHelper("BGYUR");
tstHelper("BHA");
tstHelper("BH'A");
tstHelper("BHADRA");
tstHelper("BHADRE");
tstHelper("BHAN");
tstHelper("BHANG");
tstHelper("BHAR");
tstHelper("BHE");
tstHelper("BHEN");
tstHelper("BHI");
tstHelper("BHIN");
tstHelper("BHING");
tstHelper("BHO");
tstHelper("BHOD");
tstHelper("BHOtA'I");
tstHelper("BHRiNG");
tstHelper("BHRING");
tstHelper("BHU");
tstHelper("BH'U");
tstHelper("BHYA-NTA");
tstHelper("BHYU");
tstHelper("BI");
tstHelper("B'I");
tstHelper("BID");
tstHelper("BIDYA");
tstHelper("BIDY'A");
tstHelper("'BIGS");
tstHelper("B'I'I");
tstHelper("BI'I");
tstHelper("BIL");
tstHelper("BIM");
tstHelper("BI-MBA");
tstHelper("BIM-PA");
tstHelper("BIM-PA");
tstHelper("BIM-PA'I");
tstHelper("BIN");
tstHelper("BINGSHA");
tstHelper("BIR");
tstHelper("B'IR");
tstHelper("BIR'A");
tstHelper("BIS");
tstHelper("BI-shtE");
tstHelper("BI-ttI");
tstHelper("BKA'");
tstHelper("BKAB");
tstHelper("BKAD");
tstHelper("BKAG");
tstHelper("BKA'I");
tstHelper("BKAL");
tstHelper("BKALG");
tstHelper("BKANG");
tstHelper("BKANGS");
tstHelper("BKA'O");
tstHelper("BKAR");
tstHelper("BKAS");
tstHelper("BKED");
tstHelper("BKHYU");
tstHelper("BKLAG");
tstHelper("BKLAGS");
tstHelper("BKLOG");
tstHelper("BKLUBS");
tstHelper("BKOD");
tstHelper("BKOGS");
tstHelper("BKOL");
tstHelper("BKONG");
tstHelper("BKRA");
tstHelper("BKRA'AM");
tstHelper("BKRABS");
tstHelper("BKRAL");
tstHelper("BKRAM");
tstHelper("BKRE");
tstHelper("BKREN");
tstHelper("BKRENG");
tstHelper("BKRES");
tstHelper("BKRI");
tstHelper("BKRI'I");
tstHelper("BKRI'O");
tstHelper("BKRIR");
tstHelper("BKRIS");
tstHelper("BKROL");
tstHelper("BKRONGS");
tstHelper("BKRU");
tstHelper("BKRU'O");
tstHelper("BKRUR");
tstHelper("BKRUS");
tstHelper("BKU");
tstHelper("BKUG");
tstHelper("BKUM");
tstHelper("BKUR");
tstHelper("BKUS");
tstHelper("BKYE");
tstHelper("BKYED");
tstHelper("BKYE'O");
tstHelper("BKYI");
tstHelper("BKYID");
tstHelper("BKYON");
tstHelper("BLA");
tstHelper("BLAB");
tstHelper("BLAD");
tstHelper("BLAG");
tstHelper("BLAGS");
tstHelper("BLA'I");
tstHelper("BLAM");
tstHelper("BLAN");
tstHelper("BLANG");
tstHelper("BLANGS");
tstHelper("BLA'O");
tstHelper("BLAS");
tstHelper("BLCAG");
tstHelper("BLDAG");
tstHelper("BLDAGS");
tstHelper("BLINGS");
tstHelper("BLNGA");
tstHelper("BLO");
tstHelper("BLO'ANG");
tstHelper("BLO'I");
tstHelper("BLON");
tstHelper("BLONG");
tstHelper("BLO'O");
tstHelper("BLOR");
tstHelper("BLOS");
tstHelper("BLTA");
tstHelper("BLTA'AM");
tstHelper("BLTAB");
tstHelper("BLTAM");
tstHelper("BLTAMS");
tstHelper("BLTAN");
tstHelper("BLTA'O");
tstHelper("BLTAR");
tstHelper("BLTAS");
tstHelper("BLTOS");
tstHelper("BLTUNG");
tstHelper("BLUD");
tstHelper("BLUGS");
tstHelper("BLUN");
tstHelper("BLUNG");
tstHelper("BLUS");
tstHelper("BNA");
tstHelper("BNGAN");
tstHelper("BNGAS");
tstHelper("BNGO'O");
tstHelper("BNYAMS");
tstHelper("BNYEN");
tstHelper("BNYID");
tstHelper("BO");
tstHelper("'BO");
tstHelper("BO");
tstHelper("BO'AM");
tstHelper("BO'ANG");
tstHelper("BOBS");
tstHelper("BOCM");
tstHelper("BOD");
tstHelper("'BOD");
tstHelper("BODE");
tstHelper("BODHI");
tstHelper("BOG");
tstHelper("'BOG");
tstHelper("'BOGS");
tstHelper("BO'I");
tstHelper("BOL");
tstHelper("BOM");
tstHelper("BON");
tstHelper("BONG");
tstHelper("'BONG");
tstHelper("BO'O");
tstHelper("BOR");
tstHelper("'BOR");
tstHelper("BOS");
tstHelper("BP");
tstHelper("BPA");
tstHelper("BRA");
tstHelper("'BRA");
tstHelper("BRAD");
tstHelper("'BRAD");
tstHelper("BRAG");
tstHelper("BRAGS");
tstHelper("BRAL");
tstHelper("'BRAL");
tstHelper("BRAM");
tstHelper("'BRAM");
tstHelper("BRAN");
tstHelper("BRANG");
tstHelper("'BRANG");
tstHelper("'BRANGS");
tstHelper("'BRAS");
tstHelper("BRDA");
tstHelper("BRDAB");
tstHelper("BRDABS");
tstHelper("BRDAG");
tstHelper("BRDA'I");
tstHelper("BRDAL");
tstHelper("BRDAR");
tstHelper("BRDAS");
tstHelper("BRDEG");
tstHelper("BRDEGS");
tstHelper("BRDOD");
tstHelper("BRDOL");
tstHelper("BRDOS");
tstHelper("BRDUB");
tstHelper("BRDUBS");
tstHelper("BRDUNG");
tstHelper("BRDUNGS");
tstHelper("BRDZAGS");
tstHelper("BRDZANG");
tstHelper("BRDZANGS");
tstHelper("BRDZEN");
tstHelper("BRDZES");
tstHelper("BRDZI");
tstHelper("BRDZIN");
tstHelper("BRDZIS");
tstHelper("BRDZOD");
tstHelper("BRDZOGS");
tstHelper("BRDZON");
tstHelper("BRDZUN");
tstHelper("BRDZUS");
tstHelper("BRE");
tstHelper("'BRE");
tstHelper("BRED");
tstHelper("'BRED");
tstHelper("BREG");
tstHelper("'BREG");
tstHelper("BREGS");
tstHelper("'BREGS");
tstHelper("BRE'I");
tstHelper("BREL");
tstHelper("'BREL");
tstHelper("BRENG");
tstHelper("'BRENG");
tstHelper("'BRENGS");
tstHelper("BRER");
tstHelper("BRES");
tstHelper("'BRES");
tstHelper("BRE'U");
tstHelper("BRGA");
tstHelper("BRGAL");
tstHelper("BRGAN");
tstHelper("BRGYA");
tstHelper("BRGYA'");
tstHelper("BRGYA'AM");
tstHelper("BRGYA'ANG");
tstHelper("BRGYAB");
tstHelper("BRGYAD");
tstHelper("BRGYAGS");
tstHelper("BRGYA'I");
tstHelper("BRGYAL");
tstHelper("BRGYAN");
tstHelper("BRGYANG");
tstHelper("BRGYANGS");
tstHelper("BRGYA'O");
tstHelper("BRGYAR");
tstHelper("BRGYAS");
tstHelper("BRGYI");
tstHelper("BRGYU");
tstHelper("BRGYUD");
tstHelper("BRGYUG");
tstHelper("BRGYUGS");
tstHelper("BRGYUR");
tstHelper("BRGYUS");
tstHelper("BRi");
tstHelper("BRI");
tstHelper("'BRI");
tstHelper("BRIB");
tstHelper("BRID");
tstHelper("'BRID");
tstHelper("BRIL");
tstHelper("BRIM");
tstHelper("'BRIM");
tstHelper("BRIMS");
tstHelper("'BRIN");
tstHelper("BRING");
tstHelper("'BRING");
tstHelper("'BRI'O");
tstHelper("BRIR");
tstHelper("'BRIR");
tstHelper("BRIS");
tstHelper("BRiTTA");
tstHelper("BRJE");
tstHelper("BRJED");
tstHelper("BRJES");
tstHelper("BRJID");
tstHelper("BRJING");
tstHelper("BRJOD");
tstHelper("BRJOS");
tstHelper("BRKAM");
tstHelper("BRKO");
tstHelper("BRKOR");
tstHelper("BRKOS");
tstHelper("BRKU");
tstHelper("BRKUS");
tstHelper("BRKYAL");
tstHelper("BRKYANG");
tstHelper("BRKYANGS");
tstHelper("BRLA");
tstHelper("BRLAB");
tstHelper("BRLABS");
tstHelper("BRLAG");
tstHelper("BRLAGS");
tstHelper("BRLA'I");
tstHelper("BRLAM");
tstHelper("BRLAN");
tstHelper("BRLANG");
tstHelper("BRLANGS");
tstHelper("BRLAR");
tstHelper("BRLAS");
tstHelper("BRNAB");
tstHelper("BRNAG");
tstHelper("BRNAGS");
tstHelper("BRNAL");
tstHelper("BRNAMS");
tstHelper("BRNAN");
tstHelper("BRNANGS");
tstHelper("BRNGA");
tstHelper("BRNGABS");
tstHelper("BRNGAM");
tstHelper("BRNGAR");
tstHelper("BRNGAS");
tstHelper("BRNGOD");
tstHelper("BRNYA");
tstHelper("BRNYAN");
tstHelper("BRNYAS");
tstHelper("BRNYED");
tstHelper("BRNYEN");
tstHelper("BRNYES");
tstHelper("BRNYIL");
tstHelper("BRNYIS");
tstHelper("BRNYOGS");
tstHelper("BRO");
tstHelper("'BRO");
tstHelper("BROD");
tstHelper("'BROD");
tstHelper("'BROG");
tstHelper("'BROM");
tstHelper("BRONGS");
tstHelper("'BRONGS");
tstHelper("BROR");
tstHelper("BROS");
tstHelper("'BROS");
tstHelper("BRTA");
tstHelper("BRTABS");
tstHelper("BRTAD");
tstHelper("BRTAG");
tstHelper("BRTAGS");
tstHelper("BRTAN");
tstHelper("BRTAR");
tstHelper("BRTAS");
tstHelper("BRTEG");
tstHelper("BRTEN");
tstHelper("BRTIB");
tstHelper("BRTN");
tstHelper("BRTOD");
tstHelper("BRTOG");
tstHelper("BRTOL");
tstHelper("BRTON");
tstHelper("BRTUL");
tstHelper("BRTUN");
tstHelper("BRTZA");
tstHelper("BRTZAD");
tstHelper("BRTZAL");
tstHelper("BRTZAM");
tstHelper("BRTZAMS");
tstHelper("BRTZAN");
tstHelper("BRTZE");
tstHelper("BRTZEG");
tstHelper("BRTZEGS");
tstHelper("BRTZE'I");
tstHelper("BRTZEN");
tstHelper("BRTZER");
tstHelper("BRTZES");
tstHelper("BRTZI");
tstHelper("BRTZIG");
tstHelper("BRTZIGS");
tstHelper("BRTZI'O");
tstHelper("BRTZIR");
tstHelper("BRTZIS");
tstHelper("BRTZNL");
tstHelper("BRTZOD");
tstHelper("BRTZOM");
tstHelper("BRTZON");
tstHelper("BRTZONG");
tstHelper("BRTZONGS");
tstHelper("BRTZUB");
tstHelper("BRTZUGS");
tstHelper("BRTZUN");
tstHelper("BRTZWA");
tstHelper("BRU");
tstHelper("'BRU");
tstHelper("'BRU'AM");
tstHelper("BRUBS");
tstHelper("BRUD");
tstHelper("BRUG");
tstHelper("'BRUG");
tstHelper("'BRU'I");
tstHelper("BRUL");
tstHelper("'BRUL");
tstHelper("'BRUM");
tstHelper("BRUN");
tstHelper("BRUNG");
tstHelper("BRUNGS");
tstHelper("BRU'O");
tstHelper("'BRUR");
tstHelper("BRUS");
tstHelper("'BRUS");
tstHelper("BSA");
tstHelper("BSAB");
tstHelper("BSABS");
tstHelper("BSAD");
tstHelper("BSAG");
tstHelper("BSAGS");
tstHelper("BSAL");
tstHelper("BSAM");
tstHelper("BSAMS");
tstHelper("BSAN");
tstHelper("BSANG");
tstHelper("BSANGS");
tstHelper("BSAR");
tstHelper("BSBU");
tstHelper("BSDAD");
tstHelper("BSDAGS");
tstHelper("BSDAL");
tstHelper("BSDAM");
tstHelper("BSDAMS");
tstHelper("BSDEB");
tstHelper("BSDEBS");
tstHelper("BSDIG");
tstHelper("BSDIGS");
tstHelper("BSDO");
tstHelper("BSDOD");
tstHelper("BSDOGS");
tstHelper("BSDOMS");
tstHelper("BSDON");
tstHelper("BSDONG");
tstHelper("BSDONGS");
tstHelper("BSDO'O");
tstHelper("BSDOS");
tstHelper("BSDU");
tstHelper("BSDUG");
tstHelper("BSDUM");
tstHelper("BSDUMS");
tstHelper("BSDUN");
tstHelper("BSDUS");
tstHelper("BSE");
tstHelper("BSEGS");
tstHelper("BSEL");
tstHelper("BSENG");
tstHelper("BSER");
tstHelper("BSGAL");
tstHelper("BSGEGS");
tstHelper("BSGO");
tstHelper("BSGO'AM");
tstHelper("BSGOM");
tstHelper("BSGOMS");
tstHelper("BSGONGS");
tstHelper("BSGO'O");
tstHelper("BSGOS");
tstHelper("BSGRAB");
tstHelper("BSGRAG");
tstHelper("BSGRAGS");
tstHelper("BSGRAL");
tstHelper("BSGRE");
tstHelper("BSGRENG");
tstHelper("BSGRENGS");
tstHelper("BSGRES");
tstHelper("BSGRIB");
tstHelper("BSGRIBS");
tstHelper("BSGRIGS");
tstHelper("BSGRIM");
tstHelper("BSGRIMS");
tstHelper("BSGRIN");
tstHelper("BSGROM");
tstHelper("BSGRON");
tstHelper("BSGRUB");
tstHelper("BSGRUBS");
tstHelper("BSGRUL");
tstHelper("BSGRUN");
tstHelper("BSGRUNGS");
tstHelper("BSGRUR");
tstHelper("BSGUB");
tstHelper("BSGUGS");
tstHelper("BSGUL");
tstHelper("BSGYANG");
tstHelper("BSGYANGS");
tstHelper("BSGYEL");
tstHelper("BSGYING");
tstHelper("BSGYINGS");
tstHelper("BSGYU");
tstHelper("BSGYUBS");
tstHelper("BSGYUR");
tstHelper("BSHA");
tstHelper("BSHA'");
tstHelper("BSHAD");
tstHelper("BSHAGS");
tstHelper("BSHAL");
tstHelper("BSHAM");
tstHelper("BSHAMS");
tstHelper("BSHAN");
tstHelper("BSHANG");
tstHelper("BSHAR");
tstHelper("BSHAS");
tstHelper("BSHEGS");
tstHelper("BSHEN");
tstHelper("BSHES");
tstHelper("BSHIG");
tstHelper("BSHIN");
tstHelper("BSHOL");
tstHelper("BSHOR");
tstHelper("BSHOS");
tstHelper("BSHUL");
tstHelper("BSHUM");
tstHelper("BSHUMS");
tstHelper("BSHUNG");
tstHelper("BSHUS");
tstHelper("BSIL");
tstHelper("BSKA");
tstHelper("BSKA'");
tstHelper("BSKAB");
tstHelper("BSKAL");
tstHelper("BSKAM");
tstHelper("BSKAMS");
tstHelper("BSKANG");
tstHelper("BSKANGS");
tstHelper("BSKAR");
tstHelper("BSKED");
tstHelper("BSKO");
tstHelper("BSKOD");
tstHelper("BSKOL");
tstHelper("BSKOMS");
tstHelper("BSKON");
tstHelper("BSKONGS");
tstHelper("BSKO'O");
tstHelper("BSKOR");
tstHelper("BSKOS");
tstHelper("BSKRAD");
tstHelper("BSKRAG");
tstHelper("BSKRAL");
tstHelper("BSKRANG");
tstHelper("BSKRIN");
tstHelper("BSKROGS");
tstHelper("BSKRU");
tstHelper("BSKRUL");
tstHelper("BSKRUN");
tstHelper("BSKU");
tstHelper("BSKUL");
tstHelper("BSKUM");
tstHelper("BSKUMS");
tstHelper("BSKU'O");
tstHelper("BSKUR");
tstHelper("BSKUS");
tstHelper("BSKYAB");
tstHelper("BSKYABS");
tstHelper("BSKYAD");
tstHelper("BSKYAL");
tstHelper("BSKYANG");
tstHelper("BSKYAS");
tstHelper("BSKYE");
tstHelper("BSKYED");
tstHelper("BSKYEL");
tstHelper("BSKYENG");
tstHelper("BSKYES");
tstHelper("BSKYID");
tstHelper("BSKYIL");
tstHelper("BSKYOD");
tstHelper("BSKYOM");
tstHelper("BSKYON");
tstHelper("BSKYONG");
tstHelper("BSKYUD");
tstHelper("BSKYUG");
tstHelper("BSKYUNG");
tstHelper("BSKYUNGS");
tstHelper("BSKYUR");
tstHelper("BSLA");
tstHelper("BSLAB");
tstHelper("BSLABS");
tstHelper("BSLAD");
tstHelper("BSLANG");
tstHelper("BSLANGS");
tstHelper("BSLAR");
tstHelper("BSLENGS");
tstHelper("BSLONG");
tstHelper("BSLONGS");
tstHelper("BSLU");
tstHelper("BSLU'O");
tstHelper("BSLUS");
tstHelper("BSMAS");
tstHelper("BSMRA");
tstHelper("BSNAM");
tstHelper("BSNAMS");
tstHelper("BSNAN");
tstHelper("BSNANG");
tstHelper("BSNGA");
tstHelper("BSNGAD");
tstHelper("BSNGAGS");
tstHelper("BSNGAL");
tstHelper("BSNGAM");
tstHelper("BSNGAMS");
tstHelper("BSNGAS");
tstHelper("BSNGO");
tstHelper("BSNGO'AM");
tstHelper("BSNGO'ANG");
tstHelper("BSNGOD");
tstHelper("BSNGOGS");
tstHelper("BSNGOMS");
tstHelper("BSNGON");
tstHelper("BSNGO'O");
tstHelper("BSNGOR");
tstHelper("BSNGOS");
tstHelper("BSNOL");
tstHelper("BSNOR");
tstHelper("BSNUN");
tstHelper("BSNUR");
tstHelper("BSNYAD");
tstHelper("BSNYAGS");
tstHelper("BSNYAL");
tstHelper("BSNYAMS");
tstHelper("BSNYAN");
tstHelper("BSNYED");
tstHelper("BSNYEG");
tstHelper("BSNYEGS");
tstHelper("BSNYEL");
tstHelper("BSNYEMS");
tstHelper("BSNYEN");
tstHelper("BSNYENGS");
tstHelper("BSNYER");
tstHelper("BSNYES");
tstHelper("BSNYIL");
tstHelper("BSNYINGS");
tstHelper("BSNYOD");
tstHelper("BSNYOGS");
tstHelper("BSNYON");
tstHelper("BSNYUN");
tstHelper("BSNYUNG");
tstHelper("BSNYUNGS");
tstHelper("BSO");
tstHelper("BSOD");
tstHelper("BSOGS");
tstHelper("BSOL");
tstHelper("BSONG");
tstHelper("BSOS");
tstHelper("BSPOBS");
tstHelper("BSPYAD");
tstHelper("BSRABS");
tstHelper("BSRAD");
tstHelper("BSRANG");
tstHelper("BSRE");
tstHelper("BSREG");
tstHelper("BSREGS");
tstHelper("BSREL");
tstHelper("BSRES");
tstHelper("BSRI");
tstHelper("BSRID");
tstHelper("BSRING");
tstHelper("BSRINGS");
tstHelper("BSRI'O");
tstHelper("BSRO");
tstHelper("BSROG");
tstHelper("BSROS");
tstHelper("BSRUBS");
tstHelper("BSRUNG");
tstHelper("BSRUNGS");
tstHelper("BSTA");
tstHelper("BSTAB");
tstHelper("BSTABS");
tstHelper("BSTAD");
tstHelper("BSTAN");
tstHelper("BSTANG");
tstHelper("BSTANGS");
tstHelper("BSTAR");
tstHelper("BSTAS");
tstHelper("BSTE");
tstHelper("BSTED");
tstHelper("BSTEN");
tstHelper("BSTENG");
tstHelper("BSTI");
tstHelper("BSTING");
tstHelper("BSTOBS");
tstHelper("BSTOD");
tstHelper("BSTON");
tstHelper("BSTONG");
tstHelper("BSTU");
tstHelper("BSTUD");
tstHelper("BSTUN");
tstHelper("BSTUNG");
tstHelper("BSTUNGS");
tstHelper("BSTZAGS");
tstHelper("BSTZAL");
tstHelper("BSTZOL");
tstHelper("BSU");
tstHelper("BSUN");
tstHelper("BSUNG");
tstHelper("BSU'O");
tstHelper("BSUR");
tstHelper("BSUS");
tstHelper("BTA");
tstHelper("BTA'");
tstHelper("BTAB");
tstHelper("BTABS");
tstHelper("BTAD");
tstHelper("BTAG");
tstHelper("BTAGS");
tstHelper("BTAMS");
tstHelper("BTANG");
tstHelper("BTANGS");
tstHelper("BTA'O");
tstHelper("BTAR");
tstHelper("BTAS");
tstHelper("BTEG");
tstHelper("BTENG");
tstHelper("BTHOB");
tstHelper("BTING");
tstHelper("BTOD");
tstHelper("BTOGS");
tstHelper("BTOL");
tstHelper("BTON");
tstHelper("BTONG");
tstHelper("BTSAL");
tstHelper("BTSAN");
tstHelper("BTSANGS");
tstHelper("BTSUN");
tstHelper("BTU");
tstHelper("BTUB");
tstHelper("BTUD");
tstHelper("BTU'I");
tstHelper("BTUL");
tstHelper("BTUNG");
tstHelper("BTUS");
tstHelper("BTZA'");
tstHelper("BTZAD");
tstHelper("BTZAG");
tstHelper("BTZAGS");
tstHelper("BTZAL");
tstHelper("BTZAM");
tstHelper("BTZAMS");
tstHelper("BTZAN");
tstHelper("BTZANG");
tstHelper("BTZAR");
tstHelper("BTZAS");
tstHelper("BTZE");
tstHelper("BTZEM");
tstHelper("BTZEMS");
tstHelper("BTZIR");
tstHelper("BTZO");
tstHelper("BTZOD");
tstHelper("BTZOG");
tstHelper("BTZOM");
tstHelper("BTZON");
tstHelper("BTZONG");
tstHelper("BTZONGS");
tstHelper("BTZO'O");
tstHelper("BTZOS");
tstHelper("BTZUD");
tstHelper("BTZUG");
tstHelper("BTZUGS");
tstHelper("BTZUM");
tstHelper("BTZUMS");
tstHelper("BTZUN");
tstHelper("BTZVA");
tstHelper("BTZWA");
tstHelper("BU");
tstHelper("'BU");
tstHelper("BU'");
tstHelper("BU'AM");
tstHelper("BU'ANG");
tstHelper("BUB");
tstHelper("'BUBS");
tstHelper("BUD");
tstHelper("'BUD");
tstHelper("BU-DADHA");
tstHelper("BUDDHA");
tstHelper("BUDDH'A");
tstHelper("BUG");
tstHelper("'BUGS");
tstHelper("'BU'I");
tstHelper("BU'I");
tstHelper("BU'I'O");
tstHelper("BUL");
tstHelper("'BUL");
tstHelper("BUm");
tstHelper("BUM");
tstHelper("'BUM");
tstHelper("BU'MA");
tstHelper("BUN");
tstHelper("BUNG");
tstHelper("BUNGS");
tstHelper("'BUNGS");
tstHelper("BU'O");
tstHelper("BUR");
tstHelper("'BUR");
tstHelper("BUS");
tstHelper("'BUS");
tstHelper("BYA");
tstHelper("BYA'AM");
tstHelper("BYA'ANG");
tstHelper("BYAB");
tstHelper("BYAD");
tstHelper("BYA'I");
tstHelper("BYAM");
tstHelper("'BYAM");
tstHelper("BYAMS");
tstHelper("BYAN");
tstHelper("BYANG");
tstHelper("'BYANG");
tstHelper("BYANGS");
tstHelper("BYA'O");
tstHelper("BYA'OSHES");
tstHelper("BYAR");
tstHelper("'BYAR");
tstHelper("BYAS");
tstHelper("BYE");
tstHelper("'BYE");
tstHelper("BYE'AM");
tstHelper("BYEB");
tstHelper("BYED");
tstHelper("'BYED");
tstHelper("'BYEL");
tstHelper("BYEM");
tstHelper("BYEMS");
tstHelper("BYEN");
tstHelper("'BYENG");
tstHelper("BYER");
tstHelper("'BYER");
tstHelper("BYES");
tstHelper("'BYES");
tstHelper("BYE'U");
tstHelper("BYI");
tstHelper("'BYI");
tstHelper("BYID");
tstHelper("'BYID");
tstHelper("BYIN");
tstHelper("'BYIN");
tstHelper("BYING");
tstHelper("'BYING");
tstHelper("BYINGS");
tstHelper("BYIR");
tstHelper("BYIS");
tstHelper("BYI'U");
tstHelper("BYO");
tstHelper("'BYO");
tstHelper("BYOD");
tstHelper("BYOG");
tstHelper("BYOL");
tstHelper("'BYOL");
tstHelper("BYON");
tstHelper("'BYON");
tstHelper("'BYONG");
tstHelper("'BYOR");
tstHelper("BYOS");
tstHelper("BYU");
tstHelper("BY'U");
tstHelper("BYU'");
tstHelper("BYUD");
tstHelper("'BYUD");
tstHelper("BYUG");
tstHelper("'BYUG");
tstHelper("BYUGS");
tstHelper("BYUL");
tstHelper("BYUMS");
tstHelper("BYUN");
tstHelper("BYUNB");
tstHelper("BYUNG");
tstHelper("'BYUNG");
tstHelper("BYUNGS");
tstHelper("BYUR");
tstHelper("'BYUR");
tstHelper("BZA'");
tstHelper("BZAD");
tstHelper("BZAG");
tstHelper("BZA'I");
tstHelper("BZAL");
tstHelper("BZALS");
tstHelper("BZANG");
tstHelper("BZANGS");
tstHelper("BZA'O");
tstHelper("BZAR");
tstHelper("BZAS");
tstHelper("BZED");
tstHelper("BZENG");
tstHelper("BZENGS");
tstHelper("BZHAB");
tstHelper("BZHABS");
tstHelper("BZHAD");
tstHelper("BZHAG");
tstHelper("BZHAL");
tstHelper("BZHAM");
tstHelper("BZHAMS");
tstHelper("BZHAN");
tstHelper("BZHAR");
tstHelper("BZHAS");
tstHelper("BZHE");
tstHelper("BZHED");
tstHelper("BZHEGS");
tstHelper("BZHEN");
tstHelper("BZHENGS");
tstHelper("BZHES");
tstHelper("BZHI");
tstHelper("BZHI'AM");
tstHelper("BZHI'ANG");
tstHelper("BZHIB");
tstHelper("BZHIBS");
tstHelper("BZHIG");
tstHelper("BZHIGS");
tstHelper("BZHI'I");
tstHelper("BZHIL");
tstHelper("BZHI'MA");
tstHelper("BZHIN");
tstHelper("BZHING");
tstHelper("BZHINGS");
tstHelper("BZHINN");
tstHelper("BZHI'O");
tstHelper("BZHIR");
tstHelper("BZHIS");
tstHelper("BZHO");
tstHelper("BZHOG");
tstHelper("BZHON");
tstHelper("BZHOS");
tstHelper("BZHU");
tstHelper("BZHUD");
tstHelper("BZHUG");
tstHelper("BZHUGS");
tstHelper("BZHUNG");
tstHelper("BZHUS");
tstHelper("BZIN");
tstHelper("BZLA");
tstHelper("BZLA'O");
tstHelper("BZLAR");
tstHelper("BZLAS");
tstHelper("BZLOG");
tstHelper("BZLOGS");
tstHelper("BZLUGS");
tstHelper("BZLUM");
tstHelper("BZLUMS");
tstHelper("BZO");
tstHelper("BZO'AM");
tstHelper("BZOD");
tstHelper("BZO'I");
tstHelper("BZON");
tstHelper("BZONG");
tstHelper("BZOR");
tstHelper("BZOS");
tstHelper("BZUD");
tstHelper("BZUGS");
tstHelper("BZUNG");
tstHelper("BZUNGS");
tstHelper("BZUR");
tstHelper("CA");
tstHelper("CA'AM");
tstHelper("CAD");
tstHelper("'CAD");
tstHelper("CAG");
tstHelper("CAGS");
tstHelper("CA'I");
tstHelper("CAL");
tstHelper("CAM");
tstHelper("CAN");
tstHelper("CANG");
tstHelper("CAR");
tstHelper("CAS");
tstHelper("CE");
tstHelper("CE'AM");
tstHelper("CEG");
tstHelper("CEHN");
tstHelper("CE'I");
tstHelper("CEN");
tstHelper("CE'O");
tstHelper("CER");
tstHelper("CeS");
tstHelper("CES");
tstHelper("CHA");
tstHelper("'CHA");
tstHelper("'CHA'");
tstHelper("CHA'AM");
tstHelper("CHA'ANG");
tstHelper("CHAB");
tstHelper("'CHAB");
tstHelper("CHABS");
tstHelper("CHAD");
tstHelper("'CHAD");
tstHelper("CHAG");
tstHelper("'CHAG");
tstHelper("CHAGS");
tstHelper("'CHAGS");
tstHelper("'CHA'I");
tstHelper("CHA'I");
tstHelper("CHAL");
tstHelper("'CHAL");
tstHelper("CHAM");
tstHelper("'CHAM");
tstHelper("CHAN");
tstHelper("CHANG");
tstHelper("'CHANG");
tstHelper("CHANGS");
tstHelper("'CHA'O");
tstHelper("CHA'O");
tstHelper("CHAR");
tstHelper("'CHAR");
tstHelper("CHAS");
tstHelper("CHE");
tstHelper("'CHE");
tstHelper("'CHE'AM");
tstHelper("CHE'AM");
tstHelper("CHE'ANG");
tstHelper("CHEB");
tstHelper("CHED");
tstHelper("'CHEG");
tstHelper("CHE'I");
tstHelper("CHEL");
tstHelper("'CHEL");
tstHelper("CHEM");
tstHelper("CHEMS");
tstHelper("CHEN");
tstHelper("CHENN");
tstHelper("'CHE'O");
tstHelper("CHE'O");
tstHelper("CHER");
tstHelper("CHES");
tstHelper("'CHES");
tstHelper("CHI");
tstHelper("'CHI");
tstHelper("'CHI'AM");
tstHelper("'CHIB");
tstHelper("CHIBS");
tstHelper("CHIG");
tstHelper("'CHIG");
tstHelper("'CHI'I");
tstHelper("CHI'I");
tstHelper("CHIM");
tstHelper("CHIN");
tstHelper("CHING");
tstHelper("'CHING");
tstHelper("CHINGS");
tstHelper("'CHI'O");
tstHelper("CHI'O");
tstHelper("CHIR");
tstHelper("'CHIR");
tstHelper("CHIS");
tstHelper("'CHIS");
tstHelper("CHO");
tstHelper("'CHO");
tstHelper("CHOD");
tstHelper("CHOG");
tstHelper("CHOGS");
tstHelper("CHOL");
tstHelper("'CHOL");
tstHelper("CHOM");
tstHelper("CHOMS");
tstHelper("CHON");
tstHelper("CHONG");
tstHelper("CHONGS");
tstHelper("CHOR");
tstHelper("'CHOR");
tstHelper("CHOS");
tstHelper("'CHOS");
tstHelper("CHU");
tstHelper("'CHU");
tstHelper("CHU'AM");
tstHelper("CHUB");
tstHelper("CHUD");
tstHelper("'CHUD");
tstHelper("CHUG");
tstHelper("CHUGS");
tstHelper("'CHUGS");
tstHelper("CHU'I");
tstHelper("CHUL");
tstHelper("CHUMS");
tstHelper("'CHUMS");
tstHelper("CHUN");
tstHelper("CHUNG");
tstHelper("CHUNGS");
tstHelper("CHU'O");
tstHelper("CHUP");
tstHelper("CHUR");
tstHelper("CHUS");
tstHelper("'CHUS");
tstHelper("CI");
tstHelper("'CI");
tstHelper("CI'AM");
tstHelper("CI'ANG");
tstHelper("CID");
tstHelper("CI'DRA");
tstHelper("CIG");
tstHelper("CIGN");
tstHelper("CI'i");
tstHelper("CI'I");
tstHelper("CIL");
tstHelper("CIM");
tstHelper("CIN");
tstHelper("CING");
tstHelper("'CING");
tstHelper("CINGS");
tstHelper("CI'O");
tstHelper("CIR");
tstHelper("CIS");
tstHelper("CO");
tstHelper("COD");
tstHelper("COG");
tstHelper("CO'I");
tstHelper("COL");
tstHelper("COM");
tstHelper("CON");
tstHelper("COR");
tstHelper("COS");
tstHelper("CU");
tstHelper("CU'AM");
tstHelper("CUB");
tstHelper("CUD");
tstHelper("CUG");
tstHelper("CU'I");
tstHelper("CUNG");
tstHelper("CUR");
tstHelper("CUS");
tstHelper("D");
tstHelper("'D");
tstHelper("da");
tstHelper("dA");
tstHelper("d'A");
tstHelper("dA'");
tstHelper("DA");
tstHelper("'DA");
tstHelper("'D'A");
tstHelper("'DA'");
tstHelper("D'A");
tstHelper("DA'");
tstHelper("DA'AM");
tstHelper("DA'ANG");
tstHelper("dAB");
tstHelper("DAB");
tstHelper("'DAB");
tstHelper("'DABS");
tstHelper("DAD");
tstHelper("'DAD");
tstHelper("DAG");
tstHelper("'DAG");
tstHelper("'DAG'");
tstHelper("DAG'");
tstHelper("DAGN");
tstHelper("DAGS");
tstHelper("DAHA-'I");
tstHelper("dAI");
tstHelper("DA'I");
tstHelper("DAK");
tstHelper("DAL");
tstHelper("'DAL");
tstHelper("DAM");
tstHelper("'DAM");
tstHelper("DAM'");
tstHelper("DAMG");
tstHelper("DAMN");
tstHelper("DAMS");
tstHelper("'DAMS");
tstHelper("DAN");
tstHelper("'DAN");
tstHelper("DAND");
tstHelper("DAndA");
tstHelper("DAnd'A");
tstHelper("DAN-DA");
tstHelper("DANG");
tstHelper("'DANG");
tstHelper("DANG");
tstHelper("DANGDES");
tstHelper("DANG'GA-YES");
tstHelper("DANG'JIG");
tstHelper("DANGLO");
tstHelper("DANGME'I");
tstHelper("DANGNGA");
tstHelper("DANGRNAM");
tstHelper("DANGS");
tstHelper("DANGTSANGS");
tstHelper("'DA'O");
tstHelper("DAR");
tstHelper("'DAR");
tstHelper("D'AR");
tstHelper("DAR-BHA");
tstHelper("DAS");
tstHelper("'DAS");
tstHelper("D'AS");
tstHelper("'DAS");
tstHelper("KYIS");
tstHelper("DATA");
tstHelper("dA'U");
tstHelper("D'AU");
tstHelper("dA'URYA");
tstHelper("DA'URYA'I");
tstHelper("DBA'");
tstHelper("DBAB");
tstHelper("DBAG");
tstHelper("DBA'I");
tstHelper("DBAL");
tstHelper("DBAN");
tstHelper("DBANB");
tstHelper("DBANG");
tstHelper("DBAR");
tstHelper("DBAS");
tstHelper("DBE");
tstHelper("DBEN");
tstHelper("DBER");
tstHelper("DBES");
tstHelper("DBI");
tstHelper("DBO");
tstHelper("DBOG");
tstHelper("DBON");
tstHelper("DBRAL");
tstHelper("DBRI");
tstHelper("DBROG");
tstHelper("DBU");
tstHelper("DBUB");
tstHelper("DBUG");
tstHelper("DBUGS");
tstHelper("DBU'I");
tstHelper("DBUL");
tstHelper("DBUNG");
tstHelper("DBUR");
tstHelper("DBUS");
tstHelper("DBYA");
tstHelper("DBYAD");
tstHelper("DBYANG");
tstHelper("DBYANGS");
tstHelper("DBYAR");
tstHelper("DBYE");
tstHelper("DBYE'I");
tstHelper("DBYEN");
tstHelper("DBYE'O");
tstHelper("DBYER");
tstHelper("DBYES");
tstHelper("DBYI");
tstHelper("DBYIBS");
tstHelper("DBYID");
tstHelper("DBYIG");
tstHelper("DBYING");
tstHelper("DBYINGS");
tstHelper("DBYING-SU");
tstHelper("DBYOD");
tstHelper("DBYU");
tstHelper("DBYUG");
tstHelper("DBYUNG");
tstHelper("DD");
tstHelper("DD");
tstHelper("DDAHA");
tstHelper("DDANG");
tstHelper("DDHA");
tstHelper("dE");
tstHelper("DE");
tstHelper("'DE");
tstHelper("DE'");
tstHelper("DE'AM");
tstHelper("DE'ANG");
tstHelper("DEBS");
tstHelper("'DEBS");
tstHelper("DED");
tstHelper("'DED");
tstHelper("DEEHA");
tstHelper("DEG");
tstHelper("'DEG");
tstHelper("'DEGS");
tstHelper("'DE'I");
tstHelper("DE-'I");
tstHelper("DE'I");
tstHelper("DEL");
tstHelper("'DEL");
tstHelper("'DEMS");
tstHelper("DEN");
tstHelper("'DEN");
tstHelper("DENG");
tstHelper("'DENG");
tstHelper("DENGS");
tstHelper("DE'O");
tstHelper("DER");
tstHelper("DES");
tstHelper("'DES");
tstHelper("DE'U");
tstHelper("DGA");
tstHelper("DGA'");
tstHelper("DGA'AM");
tstHelper("DGA'-'AM");
tstHelper("DGA'AS");
tstHelper("DGAB");
tstHelper("DGA'BO");
tstHelper("DGAG");
tstHelper("DGAGS");
tstHelper("DGA'I");
tstHelper("DGA'I'O");
tstHelper("DGAL");
tstHelper("DGAN");
tstHelper("DGANG");
tstHelper("DGANGS");
tstHelper("DGA'O");
tstHelper("DGAR");
tstHelper("DGAS");
tstHelper("DG'AS");
tstHelper("DGA'S");
tstHelper("DGA'SA");
tstHelper("DGE");
tstHelper("DGE'I");
tstHelper("DGE'O");
tstHelper("DGER");
tstHelper("DGES");
tstHelper("DGO");
tstHelper("DGOD");
tstHelper("DGOG");
tstHelper("DGOL");
tstHelper("DGON");
tstHelper("DGONG");
tstHelper("DGONGS");
tstHelper("DGOS");
tstHelper("DGRA");
tstHelper("DGRA'I");
tstHelper("DGRAL");
tstHelper("DGRAM");
tstHelper("DGRA'O");
tstHelper("DGRAR");
tstHelper("DGRAS");
tstHelper("DGROGS");
tstHelper("DGROL");
tstHelper("DGRONG");
tstHelper("DGRONGS");
tstHelper("DGU");
tstHelper("DGU'AM");
tstHelper("DGUD");
tstHelper("DGUG");
tstHelper("DGU'I");
tstHelper("DGUM");
tstHelper("DGUN");
tstHelper("DGUNG");
tstHelper("DGU'O");
tstHelper("DGUR");
tstHelper("DGUS");
tstHelper("DGYE");
tstHelper("DGYED");
tstHelper("DGYE'O");
tstHelper("DGYER");
tstHelper("DGYES");
tstHelper("DGYIS");
tstHelper("dHA");
tstHelper("DHA");
tstHelper("DH'A");
tstHelper("DH'A'I");
tstHelper("DHA'I");
tstHelper("DH'A'I");
tstHelper("DHA-'I");
tstHelper("DHA'I");
tstHelper("DHA'I'O");
tstHelper("dhAm");
tstHelper("DHANYDZA");
tstHelper("DHAR");
tstHelper("DH'AR");
tstHelper("DHARA");
tstHelper("DH'ARA");
tstHelper("DHARMA");
tstHelper("DHA-RMA");
tstHelper("DHARM'A");
tstHelper("DHARMA'I");
tstHelper("DHARMAS");
tstHelper("DHARM'AS");
tstHelper("DHARMMA");
tstHelper("DHAS");
tstHelper("DHE");
tstHelper("DHI");
tstHelper("DHI'I");
tstHelper("dhU");
tstHelper("DHU");
tstHelper("DHVA");
tstHelper("DHWA");
tstHelper("DHYA");
tstHelper("dI");
tstHelper("d'I");
tstHelper("DI");
tstHelper("'DI");
tstHelper("D'I");
tstHelper("'DI'AM");
tstHelper("'DI-'ANG");
tstHelper("'DI'ANG");
tstHelper("'DIBS");
tstHelper("DIG");
tstHelper("'DIG");
tstHelper("'DI'I");
tstHelper("DI'I");
tstHelper("'DIL");
tstHelper("'DIN");
tstHelper("dING");
tstHelper("DING");
tstHelper("'DING");
tstHelper("'DINGS");
tstHelper("'DINI");
tstHelper("'DI'O");
tstHelper("'DIR");
tstHelper("'DIRAB");
tstHelper("'DIS");
tstHelper("DI'U");
tstHelper("DKA'");
tstHelper("DKA'AN");
tstHelper("DKA'I");
tstHelper("DKAN");
tstHelper("DKANG");
tstHelper("DKA'O");
tstHelper("DKAR");
tstHelper("DKAS");
tstHelper("DKOD");
tstHelper("DKON");
tstHelper("DKOR");
tstHelper("DKRI");
tstHelper("DKRIGS");
tstHelper("DKRIS");
tstHelper("DKROL");
tstHelper("DKRONGS");
tstHelper("DKRUG");
tstHelper("DKRUGS");
tstHelper("DKU");
tstHelper("DKUN");
tstHelper("DKUR");
tstHelper("DKYEL");
tstHelper("DKYES");
tstHelper("DKYIL");
tstHelper("DKYOG");
tstHelper("DKYUS");
tstHelper("DMA");
tstHelper("DMA'");
tstHelper("DMAD");
tstHelper("DMAG");
tstHelper("DMAN");
tstHelper("DMANG");
tstHelper("DMANGS");
tstHelper("DMA'O");
tstHelper("DMAR");
tstHelper("DMAS");
tstHelper("DME");
tstHelper("DMI");
tstHelper("DMIG");
tstHelper("DMIGS");
tstHelper("DMIN");
tstHelper("DMOD");
tstHelper("DMU");
tstHelper("DMUG");
tstHelper("DMUL");
tstHelper("DMUS");
tstHelper("DMYAL");
tstHelper("DNA");
tstHelper("DNAG");
tstHelper("DNGAGS");
tstHelper("DNGAN");
tstHelper("DNGANG");
tstHelper("DNGANGS");
tstHelper("DNGAR");
tstHelper("DNGAS");
tstHelper("DNGO");
tstHelper("DNGOM");
tstHelper("DNGON");
tstHelper("DNGOR");
tstHelper("DNGOS");
tstHelper("DNGUL");
tstHelper("DO");
tstHelper("'DO");
tstHelper("DOD");
tstHelper("'DOD");
tstHelper("DOG");
tstHelper("'DOG");
tstHelper("DOGS");
tstHelper("'DOGS");
tstHelper("DO'I");
tstHelper("'DOL");
tstHelper("DOM");
tstHelper("'DOM");
tstHelper("DOMS");
tstHelper("'DOMS");
tstHelper("DON");
tstHelper("'DON");
tstHelper("DONG");
tstHelper("'DONG");
tstHelper("DOR");
tstHelper("'DOR");
tstHelper("DOS");
tstHelper("'DOS");
tstHelper("DPA");
tstHelper("DPA'");
tstHelper("DPA'AM");
tstHelper("DPA'ANG");
tstHelper("DPA'CHEN");
tstHelper("DPAD");
tstHelper("DPAG");
tstHelper("DPAGS");
tstHelper("DPA'I");
tstHelper("DPAL");
tstHelper("DPANG");
tstHelper("DPA'O");
tstHelper("DPAR");
tstHelper("DPAS");
tstHelper("DPA'SEMS");
tstHelper("DPE");
tstHelper("DPE'AM");
tstHelper("DPE'I");
tstHelper("DPEN");
tstHelper("DPER");
tstHelper("DPES");
tstHelper("DPE'U");
tstHelper("DPHYANGS");
tstHelper("DPOG");
tstHelper("DPOGS");
tstHelper("DPON");
tstHelper("DPONG");
tstHelper("DPRAL");
tstHelper("DPROG");
tstHelper("DPUD");
tstHelper("DPUL");
tstHelper("DPUNG");
tstHelper("DPYA");
tstHelper("DPYAD");
tstHelper("DPYANG");
tstHelper("DPYANGS");
tstHelper("DPYAR");
tstHelper("DPYAS");
tstHelper("DPYE");
tstHelper("DPYID");
tstHelper("DPYI'I");
tstHelper("DPYOD");
tstHelper("DPYONGS");
tstHelper("DRA");
tstHelper("'DRA");
tstHelper("'DRA'AM");
tstHelper("'DRA'ANG");
tstHelper("DRAB");
tstHelper("'DRAB");
tstHelper("DRAG");
tstHelper("'DRAG");
tstHelper("DRAGS");
tstHelper("'DRA'I");
tstHelper("DRA'I");
tstHelper("DRAL");
tstHelper("'DRAL");
tstHelper("'DRAM");
tstHelper("DRAN");
tstHelper("'DRAN");
tstHelper("DRANG");
tstHelper("'DRANG");
tstHelper("DRANGS");
tstHelper("'DRANGS");
tstHelper("'DRA'O");
tstHelper("DR'A'O");
tstHelper("DRA'O");
tstHelper("DRAR");
tstHelper("'DRAR");
tstHelper("DRAS");
tstHelper("'DRAS");
tstHelper("DRE");
tstHelper("'DRE");
tstHelper("DRED");
tstHelper("DREG");
tstHelper("'DREG");
tstHelper("DREGS");
tstHelper("'DREL");
tstHelper("'DREN");
tstHelper("'DRES");
tstHelper("DRE'U");
tstHelper("DRE'U'I");
tstHelper("DRGYAL");
tstHelper("DRGYAS");
tstHelper("DRi");
tstHelper("DRI");
tstHelper("'DRI");
tstHelper("'DRI'AM");
tstHelper("DRI'AM");
tstHelper("DRI'ANG");
tstHelper("DRIB");
tstHelper("'DRIB");
tstHelper("DRID");
tstHelper("'DRID");
tstHelper("DRI'I");
tstHelper("DRIL");
tstHelper("'DRIL");
tstHelper("DRIM");
tstHelper("'DRIM");
tstHelper("DRIN");
tstHelper("'DRIN");
tstHelper("DRING");
tstHelper("'DRING");
tstHelper("'DRI'O");
tstHelper("DRI'O");
tstHelper("DRIR");
tstHelper("'DRIR");
tstHelper("DRIS");
tstHelper("'DRIS");
tstHelper("DRI'U");
tstHelper("DRNAG");
tstHelper("DRO");
tstHelper("'DRO");
tstHelper("'DROB");
tstHelper("DROD");
tstHelper("'DROG");
tstHelper("DRO'I");
tstHelper("DROL");
tstHelper("'DROL");
tstHelper("DRON");
tstHelper("'DRON");
tstHelper("DRONGS");
tstHelper("DRO'O");
tstHelper("DROS");
tstHelper("DRU");
tstHelper("'DRU");
tstHelper("DRUB");
tstHelper("'DRUB");
tstHelper("DRUBS");
tstHelper("DRUD");
tstHelper("'DRUD");
tstHelper("DRUG");
tstHelper("DRUL");
tstHelper("'DRUL");
tstHelper("'DRUMS");
tstHelper("DRUNG");
tstHelper("'DRUNG");
tstHelper("DRUNGS");
tstHelper("DRUNS");
tstHelper("DRUS");
tstHelper("DSGO");
tstHelper("DSKYED");
tstHelper("DSKYES");
tstHelper("DSMRAS");
tstHelper("dU");
tstHelper("d'U");
tstHelper("DU");
tstHelper("'DU");
tstHelper("D'U");
tstHelper("DU'AM");
tstHelper("DU'ANG");
tstHelper("DUB");
tstHelper("'DUB");
tstHelper("DUD");
tstHelper("'DUD");
tstHelper("DUG");
tstHelper("'DUG");
tstHelper("DUGS");
tstHelper("'DUGS");
tstHelper("'DU'I");
tstHelper("DU'I");
tstHelper("DUL");
tstHelper("'DUL");
tstHelper("'DUL");
tstHelper("DUM");
tstHelper("'DUM");
tstHelper("DU-MB'A");
tstHelper("DUM-BA");
tstHelper("DUM-B'A");
tstHelper("DUMS");
tstHelper("'DUMS");
tstHelper("DUN");
tstHelper("'DUN");
tstHelper("DUNG");
tstHelper("'DUNG");
tstHelper("'DU'O");
tstHelper("DU'O");
tstHelper("DUR");
tstHelper("'DUR");
tstHelper("D'UR");
tstHelper("d'URYA");
tstHelper("d'U-RYA");
tstHelper("D'URYA");
tstHelper("D'URYA'AM");
tstHelper("d'U-RYA'I");
tstHelper("d'URYA'I");
tstHelper("D'URYA'I");
tstHelper("d'URYAR");
tstHelper("D'URYARA");
tstHelper("d'U-RYAS");
tstHelper("D'URYAS");
tstHelper("d'URY'I");
tstHelper("D'UR+Y'I");
tstHelper("DUS");
tstHelper("'DUS");
tstHelper("DVA");
tstHelper("DVAGS");
tstHelper("DVANGS");
tstHelper("DVGAS");
tstHelper("DVRI");
tstHelper("DW");
tstHelper("DWAGS");
tstHelper("DYA");
tstHelper("DY'A");
tstHelper("dYAN");
tstHelper("DYAN");
tstHelper("DYOTTA");
tstHelper("DZA");
tstHelper("DZ'A");
tstHelper("DZAB");
tstHelper("'DZAD");
tstHelper("'DZAG");
tstHelper("'DZAGS");
tstHelper("DZA'I");
tstHelper("DZAM");
tstHelper("'DZAM");
tstHelper("DZAMBHA");
tstHelper("DZAMBU");
tstHelper("DZAM-BU");
tstHelper("DZAM-BU'I");
tstHelper("DZAMBU'I");
tstHelper("'DZAM-PU");
tstHelper("DZA'O");
tstHelper("DZAR");
tstHelper("'DZAR");
tstHelper("DZAS");
tstHelper("DZE");
tstHelper("'DZEG");
tstHelper("'DZEGS");
tstHelper("'DZEM");
tstHelper("'DZER");
tstHelper("'DZES");
tstHelper("DZHA");
tstHelper("DZI");
tstHelper("'DZI");
tstHelper("DZ'I");
tstHelper("'DZI'ANG");
tstHelper("'DZIG");
tstHelper("'DZIGS");
tstHelper("'DZI'I");
tstHelper("'DZIL");
tstHelper("'DZIM");
tstHelper("DZIN");
tstHelper("'DZIN");
tstHelper("''DZIN");
tstHelper("'DZING");
tstHelper("'DZINGS");
tstHelper("'DZINM");
tstHelper("DZIR");
tstHelper("'DZIS");
tstHelper("DZM-BU'I");
tstHelper("DZMBU'I");
tstHelper("DZny'A");
tstHelper("DZNY'A");
tstHelper("DZNYO");
tstHelper("DZOGS");
tstHelper("'DZOM");
tstHelper("DZU");
tstHelper("'DZUD");
tstHelper("'DZUG");
tstHelper("'DZUGS");
tstHelper("'DZUL");
tstHelper("'DZUM");
tstHelper("'DZUMS");
tstHelper("'DZUN");
tstHelper("DZUNI");
tstHelper("'DZUR");
tstHelper("DZWA");
tstHelper("E");
tstHelper("EDANG");
tstHelper("'EN");
tstHelper("FCHOS");
tstHelper("FNYID");
tstHelper("FTOG");
tstHelper("GA");
tstHelper("'GA");
tstHelper("'GA'");
tstHelper("G'A");
tstHelper("GA'A'I");
tstHelper("GA'AM");
tstHelper("'GA'ANG");
tstHelper("GAB");
tstHelper("'GAB");
tstHelper("GAD");
tstHelper("GADH'A");
tstHelper("GADH'A'I");
tstHelper("GAG");
tstHelper("'GAG");
tstHelper("GAGS");
tstHelper("'GAGS");
tstHelper("G'A'i");
tstHelper("'GA'I");
tstHelper("G'A'I");
tstHelper("GA'I");
tstHelper("GAL");
tstHelper("'GAL");
tstHelper("GAM");
tstHelper("'GAM");
tstHelper("GAMS");
tstHelper("GAn");
tstHelper("GAN");
tstHelper("G'AN");
tstHelper("GA-NAS");
tstHelper("GAnd'A'I");
tstHelper("GAndA'I");
tstHelper("GAN-DHA");
tstHelper("GANDHI");
tstHelper("GAnd'I");
tstHelper("GAnd'I'I");
tstHelper("GAndI'I");
tstHelper("GAnd'I'O");
tstHelper("GANG");
tstHelper("GANG'A'");
tstHelper("GANGA'G'I");
tstHelper("GANG'A'I");
tstHelper("GANGC");
tstHelper("GANGGA");
tstHelper("GANG-G'A");
tstHelper("GANG-GA'");
tstHelper("GANGG'A");
tstHelper("GANG-GA'A'I");
tstHelper("GANG-GA'A'I");
tstHelper("GANG-G'A'I");
tstHelper("GANG-GA'I");
tstHelper("GANG-GA''I");
tstHelper("GANGG'A'I");
tstHelper("GANGGA''I");
tstHelper("GANGG'ARA");
tstHelper("GANG'-'I");
tstHelper("GANG-LA");
tstHelper("GANG'O");
tstHelper("GANGS");
tstHelper("GANS");
tstHelper("GA-NYIS");
tstHelper("GA'O");
tstHelper("GAR");
tstHelper("'GAR");
tstHelper("G'AR");
tstHelper("GARBHA");
tstHelper("GARBHE");
tstHelper("GAS");
tstHelper("'GAS");
tstHelper("G'AS");
tstHelper("GA-SHE");
tstHelper("GA-SHEGS");
tstHelper("GASN");
tstHelper("GASR");
tstHelper("GATZTSA");
tstHelper("GA-Y'A");
tstHelper("GA-YA'");
tstHelper("GA-YAB");
tstHelper("GA-YAG");
tstHelper("GA-Y'A'I");
tstHelper("GA-YAN");
tstHelper("GA-YANG");
tstHelper("GA-YANGS");
tstHelper("GA-YAR");
tstHelper("GA-YAS");
tstHelper("GA-YEM");
tstHelper("GA-YEN");
tstHelper("GA-YENG");
tstHelper("GA-YENGS");
tstHelper("GA-YER");
tstHelper("GA-YO");
tstHelper("GA-YOB");
tstHelper("GA-YOD");
tstHelper("GAYOG");
tstHelper("GA-YOG");
tstHelper("GA-YOGS");
tstHelper("GA-YO'I");
tstHelper("GAYON");
tstHelper("GA-YON");
tstHelper("GA-YO'O");
tstHelper("GAYOS");
tstHelper("GA-YOS");
tstHelper("GA-YUL");
tstHelper("GA-YUNG");
tstHelper("GA-YUR");
tstHelper("GBA");
tstHelper("'GBOR");
tstHelper("GBRAL");
tstHelper("GBYA'O");
tstHelper("GBYED");
tstHelper("GCAD");
tstHelper("GCAG");
tstHelper("GCAGS");
tstHelper("GCAL");
tstHelper("GCAM");
tstHelper("GCAN");
tstHelper("GCE");
tstHelper("GCEN");
tstHelper("GCER");
tstHelper("GCES");
tstHelper("GCI");
tstHelper("GCI'AM");
tstHelper("GCIG");
tstHelper("GCIN");
tstHelper("GCINGS");
tstHelper("GCIR");
tstHelper("GCIS");
tstHelper("GCIT");
tstHelper("GCOD");
tstHelper("GCOD");
tstHelper("GCOG");
tstHelper("GCOM");
tstHelper("GCONG");
tstHelper("GCOR");
tstHelper("GCOS");
tstHelper("GCU");
tstHelper("GCUG");
tstHelper("GCUGS");
tstHelper("GCUNG");
tstHelper("GCUS");
tstHelper("GDA'");
tstHelper("GDAB");
tstHelper("GDAG");
tstHelper("GDAGS");
tstHelper("GDA'I");
tstHelper("GDAMS");
tstHelper("GDAN");
tstHelper("GDANG");
tstHelper("GDANGS");
tstHelper("GDA'O");
tstHelper("GDAR");
tstHelper("GDEG");
tstHelper("GDENG");
tstHelper("GDENGS");
tstHelper("GDH'A");
tstHelper("GDING");
tstHelper("GDO");
tstHelper("GDOD");
tstHelper("GDOL");
tstHelper("GDON");
tstHelper("GDONG");
tstHelper("GDOS");
tstHelper("GDRA");
tstHelper("GDU");
tstHelper("GDUB");
tstHelper("GDUD");
tstHelper("GDUG");
tstHelper("GDUGS");
tstHelper("GDUL");
tstHelper("GDUM");
tstHelper("GDUNG");
tstHelper("GDUNGS");
tstHelper("GDUS");
tstHelper("GE");
tstHelper("'GE");
tstHelper("GE'AM");
tstHelper("'GEBS");
tstHelper("'GED");
tstHelper("'GEG");
tstHelper("GEGS");
tstHelper("'GEGS");
tstHelper("GE'I");
tstHelper("GEL");
tstHelper("'GEL");
tstHelper("GEN");
tstHelper("'GENG");
tstHelper("'GENGS");
tstHelper("GE'O");
tstHelper("GER");
tstHelper("GES");
tstHelper("GGI");
tstHelper("GHA");
tstHelper("GH'A");
tstHelper("GHA'I");
tstHelper("GHEGS");
tstHelper("GHI");
tstHelper("GHI'I");
tstHelper("GHO");
tstHelper("GHOsh");
tstHelper("GI");
tstHelper("'GI");
tstHelper("GI'AM");
tstHelper("GI'ANG");
tstHelper("GID");
tstHelper("GIG");
tstHelper("GI'I");
tstHelper("GIIS");
tstHelper("GIM");
tstHelper("GING");
tstHelper("GI'O");
tstHelper("GIR");
tstHelper("GiS");
tstHelper("GIS");
tstHelper("'GIS");
tstHelper("GLA");
tstHelper("GLAD");
tstHelper("GLAG");
tstHelper("GLAGS");
tstHelper("GLAL");
tstHelper("GLAN");
tstHelper("GLANG");
tstHelper("GLAS");
tstHelper("GLDAN");
tstHelper("GLE");
tstHelper("GLEGS");
tstHelper("GLEN");
tstHelper("GLENG");
tstHelper("GLENGS");
tstHelper("GLI");
tstHelper("GLING");
tstHelper("GLO");
tstHelper("GLOB");
tstHelper("GLOG");
tstHelper("GLOGS");
tstHelper("GLO'I");
tstHelper("GLON");
tstHelper("GLONG");
tstHelper("GLONGS");
tstHelper("GLOR");
tstHelper("GLOS");
tstHelper("GLTUNG");
tstHelper("GLU");
tstHelper("GLUGS");
tstHelper("GLU'I");
tstHelper("GLUN");
tstHelper("GLUNG");
tstHelper("GMU");
tstHelper("GNA");
tstHelper("GNA'");
tstHelper("GNAD");
tstHelper("GNAG");
tstHelper("GNAM");
tstHelper("GNAN");
tstHelper("GNANG");
tstHelper("GNANGS");
tstHelper("GNAS");
tstHelper("Gnd'I");
tstHelper("GNGA");
tstHelper("GNGAN");
tstHelper("GNGAS");
tstHelper("GNGOL");
tstHelper("GNI");
tstHelper("GNOD");
tstHelper("GNON");
tstHelper("GNONG");
tstHelper("GNOS");
tstHelper("GNUBS");
tstHelper("GNYA'");
tstHelper("GNYAG");
tstHelper("GNYAN");
tstHelper("GNYAR");
tstHelper("GNYE");
tstHelper("GNYED");
tstHelper("GNYEN");
tstHelper("GNYER");
tstHelper("GNYES");
tstHelper("GNYE'U");
tstHelper("GNYI");
tstHelper("GNYID");
tstHelper("GNYIG");
tstHelper("GNYIGS");
tstHelper("GNYIR");
tstHelper("GNYIS");
tstHelper("GNYOD");
tstHelper("GNYOS");
tstHelper("GNYUG");
tstHelper("Go");
tstHelper("GO");
tstHelper("'GO");
tstHelper("GOD");
tstHelper("'GOD");
tstHelper("GODN");
tstHelper("GOG");
tstHelper("'GOG");
tstHelper("GOGS");
tstHelper("'GOGS");
tstHelper("GO'I");
tstHelper("GOL");
tstHelper("GOM");
tstHelper("GOMS");
tstHelper("GON");
tstHelper("'GON");
tstHelper("GONG");
tstHelper("'GONG");
tstHelper("GOO");
tstHelper("GOO");
tstHelper("GO'O");
tstHelper("GOR");
tstHelper("GOS");
tstHelper("'GOS");
tstHelper("GOshU");
tstHelper("GO'U");
tstHelper("GO'U");
tstHelper("GPAR");
tstHelper("GPHYIN");
tstHelper("GPOM");
tstHelper("GPU");
tstHelper("GRA");
tstHelper("GRAD");
tstHelper("GRAG");
tstHelper("GRAGS");
tstHelper("GRA'I");
tstHelper("GRAL");
tstHelper("'GRAL");
tstHelper("'GRAM");
tstHelper("GRAMS");
tstHelper("'GRAN");
tstHelper("GRANG");
tstHelper("'GRANG");
tstHelper("GRANGS");
tstHelper("'GRANGS");
tstHelper("GRAR");
tstHelper("GRAS");
tstHelper("'GRAS");
tstHelper("GRE");
tstHelper("'GRE");
tstHelper("GRED");
tstHelper("'GRED");
tstHelper("GREGS");
tstHelper("'GREL");
tstHelper("'GREMS");
tstHelper("'GRENG");
tstHelper("GRES");
tstHelper("'GRES");
tstHelper("GRE'U");
tstHelper("GRE'U'I");
tstHelper("GRi");
tstHelper("GR'i");
tstHelper("GRI");
tstHelper("'GRI");
tstHelper("GRIB");
tstHelper("'GRIB");
tstHelper("'GRIBS");
tstHelper("'GRIG");
tstHelper("GRI'I");
tstHelper("GRIL");
tstHelper("'GRIL");
tstHelper("'GRIM");
tstHelper("GRIMS");
tstHelper("'GRIN");
tstHelper("GRI'O");
tstHelper("GRIS");
tstHelper("GRNAGS");
tstHelper("GRO");
tstHelper("'GRO");
tstHelper("'GRO'AM");
tstHelper("'GRO'ANG");
tstHelper("'GROB");
tstHelper("GROD");
tstHelper("GRODHA");
tstHelper("GROG");
tstHelper("'GROG");
tstHelper("GROGS");
tstHelper("'GROGS");
tstHelper("'GRO'I");
tstHelper("GRO'I");
tstHelper("GROL");
tstHelper("'GROL");
tstHelper("GROM");
tstHelper("'GROM");
tstHelper("'GRON");
tstHelper("GRONG");
tstHelper("GRONGS");
tstHelper("'GRONGS");
tstHelper("'GRO'O");
tstHelper("GRO'O");
tstHelper("GROR");
tstHelper("'GROR");
tstHelper("GROS");
tstHelper("'GROS");
tstHelper("GRU");
tstHelper("'GRU");
tstHelper("GRUB");
tstHelper("'GRUB");
tstHelper("GRUG");
tstHelper("'GRUG");
tstHelper("GRUGS");
tstHelper("GRU'I");
tstHelper("GRUL");
tstHelper("GRUM");
tstHelper("'GRUM");
tstHelper("'GRUMS");
tstHelper("GRUNG");
tstHelper("GRUR");
tstHelper("GRUS");
tstHelper("'GRUS");
tstHelper("GRVA");
tstHelper("GRVA'I");
tstHelper("GRVAR");
tstHelper("GRWA");
tstHelper("GRWAR");
tstHelper("GR-WAR");
tstHelper("GSAB");
tstHelper("GSAD");
tstHelper("GSAG");
tstHelper("GSAL");
tstHelper("GSAM");
tstHelper("GSAN");
tstHelper("GSANG");
tstHelper("GSAR");
tstHelper("GSE");
tstHelper("GSEB");
tstHelper("GSEG");
tstHelper("GSEGS");
tstHelper("GSER");
tstHelper("GSES");
tstHelper("GSHA'");
tstHelper("GSHAD");
tstHelper("GSHAG");
tstHelper("GSHAGS");
tstHelper("GSHAM");
tstHelper("GSHAN");
tstHelper("GSHANG");
tstHelper("GSHE");
tstHelper("GSHED");
tstHelper("GSHEG");
tstHelper("GSHEGS");
tstHelper("GSHENG");
tstHelper("GSHER");
tstHelper("GSHES");
tstHelper("GSHI");
tstHelper("GSHIB");
tstHelper("GSHIBS");
tstHelper("GSHIGS");
tstHelper("GSHIN");
tstHelper("GSHIS");
tstHelper("GSHOG");
tstHelper("GSHOGS");
tstHelper("GSHOL");
tstHelper("GSHON");
tstHelper("GSHONG");
tstHelper("GSHOR");
tstHelper("GSHOS");
tstHelper("GSHUB");
tstHelper("GSHUBS");
tstHelper("GSHUL");
tstHelper("GSI");
tstHelper("GSIG");
tstHelper("GSIL");
tstHelper("GSING");
tstHelper("GSO");
tstHelper("GSOB");
tstHelper("GSOD");
tstHelper("GSOG");
tstHelper("GSO'I");
tstHelper("GSOL");
tstHelper("GSON");
tstHelper("GSONG");
tstHelper("GSO'O");
tstHelper("GSOR");
tstHelper("GSOS");
tstHelper("GSU");
tstHelper("GSUD");
tstHelper("GSUG");
tstHelper("GSUGS");
tstHelper("GSUm");
tstHelper("GSUM");
tstHelper("GSUNG");
tstHelper("GSUNGS");
tstHelper("GSUR");
tstHelper("GSUS");
tstHelper("GTA");
tstHelper("GTA'");
tstHelper("GTAD");
tstHelper("GTAG");
tstHelper("GTAGS");
tstHelper("GTAL");
tstHelper("GTAM");
tstHelper("GTAMS");
tstHelper("GTAN");
tstHelper("GTANG");
tstHelper("GTAR");
tstHelper("GTE");
tstHelper("GTEGS");
tstHelper("GTER");
tstHelper("GTE'U");
tstHelper("GTI");
tstHelper("GTIBS");
tstHelper("GTIG");
tstHelper("GTING");
tstHelper("GTO");
tstHelper("GTOD");
tstHelper("GTOG");
tstHelper("GTOGS");
tstHelper("GTOL");
tstHelper("GTONG");
tstHelper("GTONGS");
tstHelper("GTOR");
tstHelper("GTOS");
tstHelper("GTRAN");
tstHelper("GTSO");
tstHelper("GTSUL");
tstHelper("GTUB");
tstHelper("GTUBS");
tstHelper("GTUG");
tstHelper("GTUGS");
tstHelper("GTUM");
tstHelper("GTUN");
tstHelper("GTUNGS");
tstHelper("GTUR");
tstHelper("GTZA'");
tstHelper("GTZAD");
tstHelper("GTZAGS");
tstHelper("GTZANG");
tstHelper("GTZE");
tstHelper("GTZES");
tstHelper("GTZIGS");
tstHelper("GTZO");
tstHelper("GTZOR");
tstHelper("GTZOS");
tstHelper("GTZUB");
tstHelper("GTZUBS");
tstHelper("GTZUG");
tstHelper("GTZUGS");
tstHelper("GTZUN");
tstHelper("GU");
tstHelper("'GU");
tstHelper("GUBTA");
tstHelper("GUD");
tstHelper("GU'I");
tstHelper("GUL");
tstHelper("'GUL");
tstHelper("GUM");
tstHelper("'GUM");
tstHelper("'GUMS");
tstHelper("GUNG");
tstHelper("GUPTA");
tstHelper("GUPTA'I");
tstHelper("GUPTAS");
tstHelper("GUR");
tstHelper("'GUR");
tstHelper("GUS");
tstHelper("GY");
tstHelper("GYA");
tstHelper("G-YAB");
tstHelper("G-YABS");
tstHelper("GYAD");
tstHelper("G-YAG");
tstHelper("GYAL");
tstHelper("G-YAN");
tstHelper("GYANG");
tstHelper("G-YANG");
tstHelper("'GYANGS");
tstHelper("G-YANGS");
tstHelper("G-YA'O");
tstHelper("GYAR");
tstHelper("G-YAR");
tstHelper("GYAS");
tstHelper("G-YAS");
tstHelper("GYE");
tstHelper("GYED");
tstHelper("'GYED");
tstHelper("GYEL");
tstHelper("'GYEL");
tstHelper("G-YEL");
tstHelper("GYEM");
tstHelper("G-YEM");
tstHelper("GYEN");
tstHelper("G-YEN");
tstHelper("GYENG");
tstHelper("G-YENG");
tstHelper("GYENGS");
tstHelper("G-YENGS");
tstHelper("GYER");
tstHelper("G-YER");
tstHelper("GYES");
tstHelper("'GYES");
tstHelper("GYI");
tstHelper("'GYI");
tstHelper("GYI'AM");
tstHelper("GYI'ANG");
tstHelper("GYID");
tstHelper("'GYID");
tstHelper("'GYIL");
tstHelper("GYIM");
tstHelper("GYIN");
tstHelper("'GYING");
tstHelper("GYI'O");
tstHelper("GYIR");
tstHelper("GYIS");
tstHelper("'GYIS");
tstHelper("GYO");
tstHelper("'GYO");
tstHelper("G-YO");
tstHelper("G-YO'AM");
tstHelper("G-YOB");
tstHelper("GYOD");
tstHelper("'GYOD");
tstHelper("GYOG");
tstHelper("G-YOG");
tstHelper("GYOGS");
tstHelper("G-YOGS");
tstHelper("G-YO'I");
tstHelper("GYOL");
tstHelper("GYON");
tstHelper("G-YON");
tstHelper("GYONG");
tstHelper("G-YO'O");
tstHelper("'GYOR");
tstHelper("G-YOR");
tstHelper("GYOS");
tstHelper("G-YOS");
tstHelper("GYU");
tstHelper("'GYU");
tstHelper("GYU'AM");
tstHelper("GYUAR");
tstHelper("GYUB");
tstHelper("GYUL");
tstHelper("G-YUL");
tstHelper("GYUNG");
tstHelper("'GYUNG");
tstHelper("G-YUNG");
tstHelper("GYUR");
tstHelper("'GYUR");
tstHelper("G-YUR");
tstHelper("'GYURBDUD");
tstHelper("'GYURS");
tstHelper("GYUS");
tstHelper("GZA'");
tstHelper("GZABS");
tstHelper("GZAGS");
tstHelper("GZA'I");
tstHelper("GZAL");
tstHelper("GZAN");
tstHelper("GZANG");
tstHelper("GZANGS");
tstHelper("GZAR");
tstHelper("GZAS");
tstHelper("GZEB");
tstHelper("GZEG");
tstHelper("GZEGS");
tstHelper("GZEM");
tstHelper("GZENGS");
tstHelper("GZER");
tstHelper("GZHA");
tstHelper("GZHAG");
tstHelper("GZHA'I");
tstHelper("GZHAL");
tstHelper("GZHAN");
tstHelper("GZHANG");
tstHelper("GZHAR");
tstHelper("GZHEN");
tstHelper("GZHES");
tstHelper("GZHI");
tstHelper("GZHI'AM");
tstHelper("GZHI'ANG");
tstHelper("GZHIB");
tstHelper("GZHIG");
tstHelper("GZHIGS");
tstHelper("GZHI'I");
tstHelper("GZHIL");
tstHelper("GZHIN");
tstHelper("GZHING");
tstHelper("GZHI'O");
tstHelper("GZHIR");
tstHelper("GZHIS");
tstHelper("GZHOD");
tstHelper("GZHOG");
tstHelper("GZHOGS");
tstHelper("GZHOL");
tstHelper("GZHOM");
tstHelper("GZHON");
tstHelper("GZHONG");
tstHelper("GZHOR");
tstHelper("GZHU");
tstHelper("GZHUG");
tstHelper("GZHUGS");
tstHelper("GZHU'I");
tstHelper("GZHUNG");
tstHelper("GZHUNGS");
tstHelper("GZHU'O");
tstHelper("GZHUS");
tstHelper("GZI");
tstHelper("GZIG");
tstHelper("GZIGS");
tstHelper("GZI'I");
tstHelper("GZIL");
tstHelper("GZIM");
tstHelper("GZIMS");
tstHelper("GZIN");
tstHelper("GZINGS");
tstHelper("GZIR");
tstHelper("GZIS");
tstHelper("GZO");
tstHelper("GZOB");
tstHelper("GZOD");
tstHelper("GZOL");
tstHelper("GZOM");
tstHelper("GZON");
tstHelper("GZONG");
tstHelper("GZO'O");
tstHelper("GZOS");
tstHelper("GZU");
tstHelper("GZUD");
tstHelper("GZUG");
tstHelper("GZUGS");
tstHelper("GZUGSSDUG");
tstHelper("GZU'I");
tstHelper("GZUNG");
tstHelper("GZUNGS");
tstHelper("GZUR");
tstHelper("H");
tstHelper("h'A");
tstHelper("HA");
tstHelper("H'A");
tstHelper("HAB");
tstHelper("HA'I");
tstHelper("HANG");
tstHelper("HAS");
tstHelper("HE");
tstHelper("HE'I");
tstHelper("HERE");
tstHelper("HES");
tstHelper("HI");
tstHelper("H'I");
tstHelper("HLAGS");
tstHelper("HM'A");
tstHelper("HME");
tstHelper("HOR");
tstHelper("'HOR");
tstHelper("HRAL");
tstHelper("HRI");
tstHelper("HRUD");
tstHelper("HU");
tstHelper("HUD");
tstHelper("HUL");
tstHelper("HUNG");
tstHelper("HUR");
tstHelper("HVA");
tstHelper("HVAGS");
tstHelper("HVI");
tstHelper("HYA");
tstHelper("HYIN");
tstHelper("I");
tstHelper("'I");
tstHelper("II");
tstHelper("IYIS");
tstHelper("JA");
tstHelper("'JA'");
tstHelper("'JAB");
tstHelper("'JAG");
tstHelper("'JA'I");
tstHelper("'JAL");
tstHelper("JAM");
tstHelper("'JAM");
tstHelper("'JAMS");
tstHelper("'JAR");
tstHelper("'JAS");
tstHelper("JE");
tstHelper("'JEBS");
tstHelper("'JED");
tstHelper("'JEGS");
tstHelper("'JEN");
tstHelper("JI");
tstHelper("'JI");
tstHelper("JIG");
tstHelper("'JIG");
tstHelper("'JIGS");
tstHelper("JI'I");
tstHelper("'JIL");
tstHelper("'JIM");
tstHelper("'JIN");
tstHelper("JING");
tstHelper("'JING");
tstHelper("JO");
tstHelper("'JO");
tstHelper("'JOG");
tstHelper("'JOGS");
tstHelper("JO'I");
tstHelper("'JOL");
tstHelper("'JOM");
tstHelper("'JOMS");
tstHelper("'JONG");
tstHelper("'JOS");
tstHelper("JPAR");
tstHelper("'JU");
tstHelper("'JUD");
tstHelper("JUG");
tstHelper("'JUG");
tstHelper("'JUGS");
tstHelper("'JU'I");
tstHelper("'JUM");
tstHelper("'JUN");
tstHelper("JUNG");
tstHelper("'JUNGS");
tstHelper("'JU'O");
tstHelper("'JUR");
tstHelper("'JUS");
tstHelper("JYI");
tstHelper("KA");
tstHelper("K'A");
tstHelper("KA'");
tstHelper("KA'AM");
tstHelper("KA'ANG");
tstHelper("'KAB");
tstHelper("KABS");
tstHelper("KAD");
tstHelper("K'A'E");
tstHelper("K'A'I");
tstHelper("KA'I");
tstHelper("KAL");
tstHelper("KAm");
tstHelper("KAM");
tstHelper("KAN");
tstHelper("KANG");
tstHelper("KAnthA'I");
tstHelper("KA'O");
tstHelper("KAR");
tstHelper("K'AR");
tstHelper("KARA");
tstHelper("K'ARA");
tstHelper("KARMA");
tstHelper("KARnA");
tstHelper("K'ARsh'A");
tstHelper("KAS");
tstHelper("K'AS");
tstHelper("KATYA'I");
tstHelper("KD");
tstHelper("KE");
tstHelper("KENG");
tstHelper("KER");
tstHelper("KE'U");
tstHelper("KHA");
tstHelper("KH'A");
tstHelper("KHA'");
tstHelper("KHA'AM");
tstHelper("KHAB");
tstHelper("'KHAB");
tstHelper("KHAD");
tstHelper("KHAG");
tstHelper("KHA'I");
tstHelper("KHAL");
tstHelper("'KHAL");
tstHelper("KHAM");
tstHelper("KHAMS");
tstHelper("KHAn");
tstHelper("KHAN");
tstHelper("KHAnad");
tstHelper("KHAndA");
tstHelper("KHANG");
tstHelper("'KHANG");
tstHelper("'KHANGS");
tstHelper("KHAR");
tstHelper("'KHAR");
tstHelper("KHAS");
tstHelper("KHE");
tstHelper("KHEBS");
tstHelper("KHENGS");
tstHelper("KHE'U");
tstHelper("KHIMS");
tstHelper("KHING");
tstHelper("KHO");
tstHelper("'KHO");
tstHelper("KHOB");
tstHelper("'KHOB");
tstHelper("KHOD");
tstHelper("'KHOD");
tstHelper("KHOG");
tstHelper("'KHOGS");
tstHelper("KHO'I");
tstHelper("KHOL");
tstHelper("'KHOL");
tstHelper("KHOM");
tstHelper("KHON");
tstHelper("'KHON");
tstHelper("KHONG");
tstHelper("'KHONG");
tstHelper("KHONGS");
tstHelper("KHOR");
tstHelper("'KHOR");
tstHelper("KHRA");
tstHelper("'KHRA");
tstHelper("KHRAB");
tstHelper("'KHRAB");
tstHelper("KHRAG");
tstHelper("KHRAGS");
tstHelper("KHRA'I");
tstHelper("KHRA'ING");
tstHelper("KHRAL");
tstHelper("'KHRAL");
tstHelper("KHRAM");
tstHelper("KHRAS");
tstHelper("'KHRAS");
tstHelper("KHRE");
tstHelper("'KHRE");
tstHelper("KHREG");
tstHelper("KHREL");
tstHelper("'KHREN");
tstHelper("KHRE'U");
tstHelper("KHRI");
tstHelper("'KHRI");
tstHelper("KHRI'AM");
tstHelper("KHRI'ANG");
tstHelper("KHRID");
tstHelper("'KHRID");
tstHelper("KHRIG");
tstHelper("'KHRIG");
tstHelper("'KHRIGS");
tstHelper("KHRI'I");
tstHelper("KHRIL");
tstHelper("'KHRIL");
tstHelper("KHRIMS");
tstHelper("'KHRIMS");
tstHelper("'KHRI'O");
tstHelper("KHRIR");
tstHelper("KHRIS");
tstHelper("'KHRIS");
tstHelper("KHRI'U");
tstHelper("KHRI'U'AM");
tstHelper("KHRI'U'I");
tstHelper("KHRI'UR");
tstHelper("KHRO");
tstHelper("KHROD");
tstHelper("KHRO'I");
tstHelper("KHROL");
tstHelper("'KHROL");
tstHelper("KHROM");
tstHelper("KHROMS");
tstHelper("KHRON");
tstHelper("KHRONG");
tstHelper("KHROR");
tstHelper("KHROS");
tstHelper("KHRU");
tstHelper("'KHRU");
tstHelper("'KHRU'AM");
tstHelper("'KHRUB");
tstHelper("KHRUD");
tstHelper("KHRUG");
tstHelper("'KHRUG");
tstHelper("'KHRUGS");
tstHelper("KHRU'I");
tstHelper("'KHRUL");
tstHelper("KHRUMS");
tstHelper("KHRUN");
tstHelper("KHRUNG");
tstHelper("KHRUNGS");
tstHelper("'KHRUNGS");
tstHelper("'KHRUR");
tstHelper("KHRUS");
tstHelper("'KHRUS");
tstHelper("KHU");
tstHelper("'KHU");
tstHelper("KHU'AM");
tstHelper("KHU'ANG");
tstHelper("KHUD");
tstHelper("KHUG");
tstHelper("KHUGS");
tstHelper("'KHUGS");
tstHelper("KHU'I");
tstHelper("KHUM");
tstHelper("KHUMS");
tstHelper("'KHUMS");
tstHelper("KHUN");
tstHelper("'KHUN");
tstHelper("KHUNG");
tstHelper("KHUNGS");
tstHelper("KHU'O");
tstHelper("KHUR");
tstHelper("KHUS");
tstHelper("'KHUS");
tstHelper("KHVA");
tstHelper("KHVA'AM");
tstHelper("KHVA'I");
tstHelper("KHVAS");
tstHelper("KHWA");
tstHelper("KHYAB");
tstHelper("KHYAD");
tstHelper("'KHYAG");
tstHelper("KHYAM");
tstHelper("'KHYAM");
tstHelper("KHYAMS");
tstHelper("'KHYAMS");
tstHelper("KHYAR");
tstHelper("KHYE");
tstHelper("KHYE'AU");
tstHelper("KHYED");
tstHelper("KHYEN");
tstHelper("'KHYEN");
tstHelper("KHYER");
tstHelper("'KHYER");
tstHelper("KHYES");
tstHelper("KHYE'U");
tstHelper("KHYE'U'AM");
tstHelper("KHYE'U'I");
tstHelper("KHYE'U'O");
tstHelper("KHYE'UR");
tstHelper("KHYE'US");
tstHelper("KHYI");
tstHelper("KHYI'AM");
tstHelper("KHYID");
tstHelper("KHYIG");
tstHelper("KHYI'I");
tstHelper("'KHYIL");
tstHelper("KHYIM");
tstHelper("KHYIMS");
tstHelper("KHYIR");
tstHelper("KHYI'U");
tstHelper("KHYO");
tstHelper("KHYOD");
tstHelper("KHYOGS");
tstHelper("KHYOL");
tstHelper("KHYON");
tstHelper("KHYONG");
tstHelper("KHYOR");
tstHelper("'KHYOR");
tstHelper("KHYOS");
tstHelper("KHYU");
tstHelper("KHYUD");
tstHelper("'KHYUD");
tstHelper("KHYU'I");
tstHelper("KHYUNG");
tstHelper("KHYUR");
tstHelper("KHYUS");
tstHelper("KI");
tstHelper("K'I");
tstHelper("KI'AM");
tstHelper("K'I'I");
tstHelper("KI'I");
tstHelper("KIM");
tstHelper("KI-MPA");
tstHelper("KIM-PA");
tstHelper("KIRTI");
tstHelper("K'IRTI");
tstHelper("K'I-RTI");
tstHelper("K'IRTI'I");
tstHelper("K'IRTIS");
tstHelper("KIS");
tstHelper("K'IS");
tstHelper("K'ISA");
tstHelper("KI'U");
tstHelper("KKU");
tstHelper("KLA");
tstHelper("KLAD");
tstHelper("KLAG");
tstHelper("KLAGS");
tstHelper("KLAM");
tstHelper("KLAN");
tstHelper("KLANG");
tstHelper("KLAS");
tstHelper("KLEGS");
tstHelper("KLING");
tstHelper("KLO");
tstHelper("KLOD");
tstHelper("KLOG");
tstHelper("KLOGS");
tstHelper("KLO'I");
tstHelper("KLONG");
tstHelper("KLU");
tstHelper("KLU'AM");
tstHelper("KLUB");
tstHelper("'KLUBS");
tstHelper("KLUD");
tstHelper("KLU'I");
tstHelper("KLUNG");
tstHelper("KLUNGS");
tstHelper("KLUS");
tstHelper("Ko");// o is punct, but KAo would make more sense.
tstHelper("KO");
tstHelper("KOG");
tstHelper("KON");
tstHelper("KOndI");
tstHelper("KONG");
tstHelper("Koo");
tstHelper("KOO");
tstHelper("KOO'dI");
tstHelper("KOO-nAdI");
tstHelper("KOOndA");
tstHelper("KOOndI");
tstHelper("KOOndINA");
tstHelper("KOR");
tstHelper("KOS");
tstHelper("KO'U");
tstHelper("KO'UdI");
tstHelper("KO'UdIN+YA");
tstHelper("KRA");
tstHelper("K'RA");
tstHelper("KRA'I");
tstHelper("KRAL");
tstHelper("KRE");
tstHelper("KRi");
tstHelper("KRI");
tstHelper("KRI'I");
tstHelper("KRIS");
tstHelper("KRishnA");
tstHelper("KRIshnA");
tstHelper("KROL");
tstHelper("KRUN");
tstHelper("KRUNG");
tstHelper("KRUS");
tstHelper("KshA");
tstHelper("KshI");
tstHelper("Ksh'I");
tstHelper("KSHI");
tstHelper("KshU");
tstHelper("KU");
tstHelper("KUB");
tstHelper("KUD");
tstHelper("KULLE'I");
tstHelper("KUM");
tstHelper("'KUM");
tstHelper("KUN");
tstHelper("KUNDA");
tstHelper("KUN-DA");
tstHelper("KUNGS");
tstHelper("KUN-NGA'I");
tstHelper("KUR");
tstHelper("KUS");
tstHelper("KVA'");
tstHelper("KVA'E");
tstHelper("KVA'I");
tstHelper("KWA'E");
tstHelper("KYA");
tstHelper("KYAD");
tstHelper("KYAG");
tstHelper("KYA'I");
tstHelper("KYAL");
tstHelper("KYAN");
tstHelper("KYAND");
tstHelper("KYANG");
tstHelper("'KYANG");
tstHelper("KYANGS");
tstHelper("KYAR");
tstHelper("KYE");
tstHelper("KYED");
tstHelper("KYEE");
tstHelper("KYEGS");
tstHelper("KYEM");
tstHelper("KYER");
tstHelper("KYES");
tstHelper("KYE'U");
tstHelper("KYI");
tstHelper("KYI'AM");
tstHelper("KYI'ANG");
tstHelper("KYID");
tstHelper("KYIL");
tstHelper("KYIM");
tstHelper("KYIN");
tstHelper("KYI'O");
tstHelper("KYIR");
tstHelper("KYIS");
tstHelper("KYO");
tstHelper("KYOD");
tstHelper("KYOG");
tstHelper("KYOR");
tstHelper("KYU");
tstHelper("KYUR");
tstHelper("KYUS");
tstHelper("LA");
tstHelper("L'A");
tstHelper("LA'AM");
tstHelper("LA'ANG");
tstHelper("LAB");
tstHelper("LABLO");
tstHelper("LABYANG");
tstHelper("LAD");
tstHelper("LADS");
tstHelper("LAG");
tstHelper("LAGS");
tstHelper("LAH");
tstHelper("LA'I");
tstHelper("LAKshM'I'I");
tstHelper("LAL");
tstHelper("LAm");
tstHelper("LAM");
tstHelper("LAN");
tstHelper("LANDA");
tstHelper("LANG");
tstHelper("LANGKA");
tstHelper("LANG-KA");
tstHelper("LANG-KA'");
tstHelper("LANG-KA'I");
tstHelper("LANGKA'I");
tstHelper("LANGKAR");
tstHelper("LANG-KAR");
tstHelper("LANGKARA");
tstHelper("LANGKR");
tstHelper("LANGS");
tstHelper("LA'O");
tstHelper("LA'ONGS");
tstHelper("LAR");
tstHelper("LAS");
tstHelper("LBA");
tstHelper("LBAG");
tstHelper("LBANG");
tstHelper("LCAG");
tstHelper("LCAGS");
tstHelper("LCANG");
tstHelper("LCE");
tstHelper("LCE'ANG");
tstHelper("LCE'I");
tstHelper("LCE'O");
tstHelper("LCER");
tstHelper("LCES");
tstHelper("LCI");
tstHelper("LCIBS");
tstHelper("LCID");
tstHelper("LCIG");
tstHelper("LCO");
tstHelper("LCOG");
tstHelper("LCOGS");
tstHelper("LCONG");
tstHelper("LCUB");
tstHelper("LCUG");
tstHelper("LDA");
tstHelper("LDA'");
tstHelper("LDAB");
tstHelper("LDAD");
tstHelper("LDAG");
tstHelper("LDAGS");
tstHelper("LDA'I");
tstHelper("LDAM");
tstHelper("LDAN");
tstHelper("LDANG");
tstHelper("LDANGS");
tstHelper("LDAR");
tstHelper("LDAS");
tstHelper("LDE");
tstHelper("LDEG");
tstHelper("LDEGS");
tstHelper("LDE'I");
tstHelper("LDEM");
tstHelper("LDENG");
tstHelper("LDES");
tstHelper("LDE'U");
tstHelper("LDI");
tstHelper("LDIB");
tstHelper("LDID");
tstHelper("LDI'I");
tstHelper("LDING");
tstHelper("LDINGS");
tstHelper("LDIR");
tstHelper("LDIS");
tstHelper("LDOG");
tstHelper("LDON");
tstHelper("LDONG");
tstHelper("LDONGS");
tstHelper("LDUD");
tstHelper("LDUGS");
tstHelper("LDUM");
tstHelper("LE");
tstHelper("LEB");
tstHelper("LEBS");
tstHelper("LEG");
tstHelper("LEGS");
tstHelper("LE'I");
tstHelper("LEN");
tstHelper("LENDRA");
tstHelper("LER");
tstHelper("LES");
tstHelper("LESG");
tstHelper("LESS");
tstHelper("LE'U");
tstHelper("LE'U'I");
tstHelper("LE'U'O");
tstHelper("LE'UR");
tstHelper("LG");
tstHelper("LGA'I");
tstHelper("LGANG");
tstHelper("LGAS");
tstHelper("LHA");
tstHelper("LHA'AM");
tstHelper("LHAB");
tstHelper("LHAD");
tstHelper("LHAG");
tstHelper("LHAGS");
tstHelper("LHA'I");
tstHelper("LHAM");
tstHelper("LHAN");
tstHelper("LHANG");
tstHelper("LHA'O");
tstHelper("LHAR");
tstHelper("LHAS");
tstHelper("LHEB");
tstHelper("LHI");
tstHelper("LHO");
tstHelper("LHOD");
tstHelper("LHOG");
tstHelper("LHOGS");
tstHelper("LHO'I");
tstHelper("LHONG");
tstHelper("LHU");
tstHelper("LHUB");
tstHelper("LHUG");
tstHelper("LHUMS");
tstHelper("LHUN");
tstHelper("LHUNG");
tstHelper("LHUR");
tstHelper("LI");
tstHelper("LIGS");
tstHelper("LI'I");
tstHelper("LIN");
tstHelper("LIN-DA'I");
tstHelper("LINDI");
tstHelper("LINE");
tstHelper("LING");
tstHelper("LINGA'I");
tstHelper("LING-KA");
tstHelper("LINGKA'I");
tstHelper("LIN-NGA'I");
tstHelper("LIR");
tstHelper("LIS");
tstHelper("LITZTSA");
tstHelper("LJAGS");
tstHelper("LJAN");
tstHelper("LJANG");
tstHelper("LJAS");
tstHelper("LJID");
tstHelper("LJIN");
tstHelper("LJON");
tstHelper("LJONG");
tstHelper("LJONGS");
tstHelper("LKA");
tstHelper("LKOG");
tstHelper("LKUG");
tstHelper("LKUGS");
tstHelper("LNGA");
tstHelper("LNGA'AM");
tstHelper("LNGA'ANG");
tstHelper("LNGA'I");
tstHelper("LNGAN");
tstHelper("LNGANG");
tstHelper("LNGANGS");
tstHelper("LNGA'O");
tstHelper("LNGAR");
tstHelper("LNGAS");
tstHelper("LNGE'I");
tstHelper("LNGI");
tstHelper("LNGO");
tstHelper("LNGOG");
tstHelper("LNGON");
tstHelper("LNGONGS");
tstHelper("LO");
tstHelper("LO'AM");
tstHelper("LO'ANG");
tstHelper("LOBS");
tstHelper("LOD");
tstHelper("LOG");
tstHelper("LOGS");
tstHelper("LO'I");
tstHelper("LOM");
tstHelper("LON");
tstHelper("LONG");
tstHelper("LONGS");
tstHelper("LO'O");
tstHelper("LOR");
tstHelper("LOS");
tstHelper("LPAGS");
tstHelper("LPAR");
tstHelper("LS");
tstHelper("LTA");
tstHelper("LTA'AM");
tstHelper("LTA'ANG");
tstHelper("LTAB");
tstHelper("LTABS");
tstHelper("LTAD");
tstHelper("LTAG");
tstHelper("LTAGS");
tstHelper("LTA'I");
tstHelper("LTAM");
tstHelper("LTAMS");
tstHelper("LTAN");
tstHelper("LTANG");
tstHelper("LTANGS");
tstHelper("LTA'O");
tstHelper("LTAR");
tstHelper("LTAS");
tstHelper("LTE");
tstHelper("LTENG");
tstHelper("LTER");
tstHelper("LTIR");
tstHelper("LTO");
tstHelper("LTOD");
tstHelper("LTOG");
tstHelper("LTOGS");
tstHelper("LTO'I");
tstHelper("LTONG");
tstHelper("LTONGS");
tstHelper("LTOR");
tstHelper("LTOS");
tstHelper("LTRA");
tstHelper("LTU");
tstHelper("LTUNG");
tstHelper("LU");
tstHelper("LUD");
tstHelper("LUG");
tstHelper("LUGS");
tstHelper("LU'I");
tstHelper("LUM");
tstHelper("LUMBI");
tstHelper("LUM-BI");
tstHelper("LUMS");
tstHelper("LUNDHA'I");
tstHelper("LUNG");
tstHelper("LUNGS");
tstHelper("LUR");
tstHelper("LUS");
tstHelper("LVA");
tstHelper("LWA");
tstHelper("LWA'I");
tstHelper("LYA");
tstHelper("LYE");
tstHelper("MA");
tstHelper("'MA");
tstHelper("M'A");
tstHelper("MA'");
tstHelper("MA'AM");
tstHelper("MA'ANG");
tstHelper("MAD");
tstHelper("MAG");
tstHelper("MAGS");
tstHelper("MA-H'A");
tstHelper("MAH'A");
tstHelper("MA'I");
tstHelper("MA'IS");
tstHelper("MAL");
tstHelper("MAm");
tstHelper("MAM");
tstHelper("MAMS");
tstHelper("MAN");
tstHelper("MAndA");
tstHelper("MANDA");
tstHelper("MAN-D'A");
tstHelper("MAN-DA'");
tstHelper("MAND'A");
tstHelper("MAN-D'AR");
tstHelper("MANG");
tstHelper("MANGA");
tstHelper("MANGGA");
tstHelper("MANG-GA'I");
tstHelper("MANGL");
tstHelper("MANGS");
tstHelper("MANL");
tstHelper("MAN-NGA");
tstHelper("MANTA");
tstHelper("MANTRA");
tstHelper("MAN-TRA");
tstHelper("MAN-TRE");
tstHelper("MA-NYA");
tstHelper("MANYDZU");
tstHelper("MANY-DZU");
tstHelper("MA'O");
tstHelper("MA'ONGS");
tstHelper("MAR");
tstHelper("M'AR");
tstHelper("MAS");
tstHelper("MASTU");
tstHelper("MA-YOG");
tstHelper("MBA");
tstHelper("MBA'");
tstHelper("MBAS");
tstHelper("MBI");
tstHelper("M+B'I");
tstHelper("MBU'I");
tstHelper("MBYON");
tstHelper("MCAN");
tstHelper("MCED");
tstHelper("MCHAD");
tstHelper("MCHAG");
tstHelper("MCHAGS");
tstHelper("MCHAN");
tstHelper("MCHE");
tstHelper("MCHED");
tstHelper("MCHER");
tstHelper("MCHES");
tstHelper("MCHE'U");
tstHelper("MCHI");
tstHelper("MCHI'AM");
tstHelper("MCHID");
tstHelper("MCHIG");
tstHelper("MCHI'I");
tstHelper("MCHIL");
tstHelper("MCHIM");
tstHelper("MCHIMS");
tstHelper("MCHIN");
tstHelper("MCHING");
tstHelper("MCHI'O");
tstHelper("MCHIR");
tstHelper("MCHIS");
tstHelper("MCHO");
tstHelper("MCHOD");
tstHelper("MCHOG");
tstHelper("MCHONG");
tstHelper("MCHONGS");
tstHelper("MCHOS");
tstHelper("MCHU");
tstHelper("MCHUD");
tstHelper("MCHU'I");
tstHelper("MCHUNGS");
tstHelper("MCHUR");
tstHelper("MCHUS");
tstHelper("MCIS");
tstHelper("MCOM");
tstHelper("MDA'");
tstHelper("MDAG");
tstHelper("MDAGS");
tstHelper("MDA'I");
tstHelper("MDANG");
tstHelper("MDANGS");
tstHelper("MDAS");
tstHelper("MDE");
tstHelper("MDE'U");
tstHelper("MDO");
tstHelper("MDO'AM");
tstHelper("MDO'ANG");
tstHelper("MDOD");
tstHelper("MDOG");
tstHelper("MDO'I");
tstHelper("MDOMS");
tstHelper("MDON");
tstHelper("MDONG");
tstHelper("MDONGS");
tstHelper("MDOR");
tstHelper("MDOS");
tstHelper("MDRIS");
tstHelper("MDROS");
tstHelper("MDUD");
tstHelper("MDUM");
tstHelper("MDUN");
tstHelper("MDUNG");
tstHelper("MDZA'");
tstHelper("MDZAD");
tstHelper("MDZA'I");
tstHelper("MDZANGS");
tstHelper("MDZAS");
tstHelper("MDZE");
tstHelper("MDZE'AM");
tstHelper("MDZED");
tstHelper("MDZER");
tstHelper("MDZES");
tstHelper("MDZOD");
tstHelper("MDZOL");
tstHelper("MDZOS");
tstHelper("MDZUB");
tstHelper("ME");
tstHelper("ME'AM");
tstHelper("ME'ANG");
tstHelper("MED");
tstHelper("MEE");
tstHelper("MEG");
tstHelper("ME'I");
tstHelper("MEL");
tstHelper("MEMD");
tstHelper("MEN");
tstHelper("MENG");
tstHelper("MER");
tstHelper("MES");
tstHelper("MGAL");
tstHelper("MGAR");
tstHelper("MGAS");
tstHelper("MGO");
tstHelper("MGO'ANG");
tstHelper("MGO'I");
tstHelper("MGOL");
tstHelper("MGON");
tstHelper("MGOR");
tstHelper("MGOS");
tstHelper("MGRIN");
tstHelper("MGROL");
tstHelper("MGRON");
tstHelper("MGRONG");
tstHelper("MGRUB");
tstHelper("MGU");
tstHelper("MGUL");
tstHelper("MGU'O");
tstHelper("MGUR");
tstHelper("MGYES");
tstHelper("MGYOGS");
tstHelper("MGYUR");
tstHelper("MI");
tstHelper("M'I");
tstHelper("M''I");
tstHelper("MI'AM");
tstHelper("MI'AS");
tstHelper("MID");
tstHelper("MIG");
tstHelper("MI'GYUR");
tstHelper("M'I'I");
tstHelper("MI'I");
tstHelper("MIM");
tstHelper("MI'M");
tstHelper("MIN");
tstHelper("MING");
tstHelper("MI'O");
tstHelper("MIR");
tstHelper("MIS");
tstHelper("M'IS");
tstHelper("M'ISA");
tstHelper("MISSING");
tstHelper("MITRA");
tstHelper("MI'U");
tstHelper("MJA'");
tstHelper("MJAD");
tstHelper("MJAL");
tstHelper("MJANG");
tstHelper("MJED");
tstHelper("MJE'I");
tstHelper("MJES");
tstHelper("MJING");
tstHelper("MJOS");
tstHelper("MJUG");
tstHelper("MKHA");
tstHelper("MKHA'");
tstHelper("MKHA'I");
tstHelper("MKHAL");
tstHelper("MKHAM");
tstHelper("MKHAMS");
tstHelper("MKHAN");
tstHelper("MKHA'O");
tstHelper("MKHAR");
tstHelper("MKHAS");
tstHelper("MKHO");
tstHelper("MKHOB");
tstHelper("MKHOS");
tstHelper("MKHRANG");
tstHelper("MKHREGS");
tstHelper("MKHRI");
tstHelper("MKHRID");
tstHelper("MKHRIG");
tstHelper("MKHRIS");
tstHelper("MKHUR");
tstHelper("MKHYED");
tstHelper("MKHYEN");
tstHelper("MKHYER");
tstHelper("MKHYUD");
tstHelper("MNA");
tstHelper("MNA'");
tstHelper("MNABS");
tstHelper("MNAD'A");
tstHelper("MNAG");
tstHelper("MNAGS");
tstHelper("MNAL");
tstHelper("MNAM");
tstHelper("MNAMS");
tstHelper("MNAN");
tstHelper("MNAR");
tstHelper("MND'A");
tstHelper("MNGA'");
tstHelper("MNGA'AM");
tstHelper("MNGA'AS");
tstHelper("MNGAG");
tstHelper("MNGAGS");
tstHelper("MNGA'I");
tstHelper("MNGAL");
tstHelper("MNGAN");
tstHelper("MNGA'O");
tstHelper("MNGAR");
tstHelper("MNGAS");
tstHelper("MNGO");
tstHelper("MNGON");
tstHelper("MNO");
tstHelper("MNOBS");
tstHelper("MNOD");
tstHelper("MNOG");
tstHelper("MNOM");
tstHelper("MNON");
tstHelper("MNONG");
tstHelper("MNOS");
tstHelper("MNUS");
tstHelper("MNYA-DZU");
tstHelper("MNYAL");
tstHelper("MNYAM");
tstHelper("MNYAMS");
tstHelper("MNYAN");
tstHelper("MNYANGS");
tstHelper("MNYDZU");
tstHelper("MNY-DZU");
tstHelper("MNYE");
tstHelper("MNYE'AM");
tstHelper("MNYED");
tstHelper("MNYEL");
tstHelper("MNYEN");
tstHelper("MNYES");
tstHelper("MNYID");
tstHelper("MNYONG");
tstHelper("MO");
tstHelper("M'O");
tstHelper("MO'AM");
tstHelper("MO'ANG");
tstHelper("MOD");
tstHelper("MOG");
tstHelper("MOGS");
tstHelper("MO'I");
tstHelper("MO'I'O");
tstHelper("MOL");
tstHelper("MOM");
tstHelper("MO'MA");
tstHelper("MON");
tstHelper("MONG");
tstHelper("MONGS");
tstHelper("MOO");
tstHelper("MO'O");
tstHelper("MOOD");
tstHelper("MOONG");
tstHelper("MOO-NGA-GAL");
tstHelper("MOONGGAL");
tstHelper("MOO-NGGAL");
tstHelper("MOONG-GAL");
tstHelper("MOONGGL");
tstHelper("MOO'U");
tstHelper("MOR");
tstHelper("MOS");
tstHelper("MO'U");
tstHelper("MPA");
tstHelper("MRA");
tstHelper("MRAG");
tstHelper("MRA'I");
tstHelper("MRDE");
tstHelper("MRDZOGS");
tstHelper("MRGAD");
tstHelper("MRi");
tstHelper("MRNYED");
tstHelper("MRTOG");
tstHelper("MRTOL");
tstHelper("MRTZIGS");
tstHelper("MSHAR");
tstHelper("MTAMS");
tstHelper("MTAN");
tstHelper("MTHA'");
tstHelper("MTHAD");
tstHelper("MTHAG");
tstHelper("MTHA'I");
tstHelper("MTHAMS");
tstHelper("MTHANG");
tstHelper("MTHA'O");
tstHelper("MTHAR");
tstHelper("MTHAS");
tstHelper("MTHE");
tstHelper("MTHENG");
tstHelper("MTHI");
tstHelper("MTHIL");
tstHelper("MTHING");
tstHelper("MTHO");
tstHelper("MTHOB");
tstHelper("MTHOD");
tstHelper("MTHOGS");
tstHelper("MTHO'I");
tstHelper("MTHOL");
tstHelper("MTHON");
tstHelper("MTHONG");
tstHelper("MTHONGS");
tstHelper("MTHOR");
tstHelper("MTHOS");
tstHelper("MTHU");
tstHelper("MTHU'ANG");
tstHelper("MTHUD");
tstHelper("MTHUG");
tstHelper("MTHU'I");
tstHelper("MTHUN");
tstHelper("MTHUNG");
tstHelper("MTHUNGS");
tstHelper("MTHU'O");
tstHelper("MTHUR");
tstHelper("MTHUS");
tstHelper("MTONG");
tstHelper("MTSA");
tstHelper("MTSA'");
tstHelper("MTSAD");
tstHelper("MTSAL");
tstHelper("MTSAMS");
tstHelper("MTSAN");
tstHelper("MTSANG");
tstHelper("MTSAR");
tstHelper("MTSE");
tstHelper("MTSER");
tstHelper("MTSE'U");
tstHelper("MTSE'U'I");
tstHelper("MTSE'US");
tstHelper("MTSID");
tstHelper("MTSIMS");
tstHelper("MTSIN");
tstHelper("MTSO");
tstHelper("MTSO'AM");
tstHelper("MTSOG");
tstHelper("MTSOGS");
tstHelper("MTSO'I");
tstHelper("MTSOL");
tstHelper("MTSON");
tstHelper("MTSOR");
tstHelper("MTSOS");
tstHelper("MTSO'U");
tstHelper("MTSUN");
tstHelper("MTSUNGS");
tstHelper("MTSUR");
tstHelper("MTTHUN");
tstHelper("MTZAN");
tstHelper("MU");
tstHelper("M'U");
tstHelper("MUD");
tstHelper("MUG");
tstHelper("MU'I");
tstHelper("MU-KKE");
tstHelper("MUKTA");
tstHelper("MU-KTA");
tstHelper("MUK-TA");
tstHelper("MU-KTE");
tstHelper("MUN");
tstHelper("MU-NYZA");
tstHelper("MUR");
tstHelper("MUS");
tstHelper("MUT-KA");
tstHelper("MU-TKU");
tstHelper("MYA");
tstHelper("MYAGS");
tstHelper("MYAL");
tstHelper("MYAN");
tstHelper("MYANG");
tstHelper("MYANGS");
tstHelper("MYAR");
tstHelper("MYO");
tstHelper("MYOG");
tstHelper("MYONG");
tstHelper("MYONGS");
tstHelper("MYOS");
tstHelper("MYU");
tstHelper("MYUNG");
tstHelper("MYUR");
tstHelper("MZA'");
tstHelper("MZAD");
tstHelper("MZHU");
tstHelper("MZHUGS");
tstHelper("MZHUM");
tstHelper("nA");
tstHelper("n'A");
tstHelper("NA");
tstHelper("N'A");
tstHelper("NA'ANG");
tstHelper("NAB");
tstHelper("NABS");
tstHelper("NAD");
tstHelper("NA'DU");
tstHelper("NAG");
tstHelper("NAGS");
tstHelper("nA'I");
tstHelper("NA'I");
tstHelper("NAL");
tstHelper("nAM");
tstHelper("NAm");
tstHelper("NAM");
tstHelper("NAmS");
tstHelper("NAMS");
tstHelper("NAN");
tstHelper("NANDA");
tstHelper("NANDA'I");
tstHelper("NANG");
tstHelper("NA'NG");
tstHelper("NANGS");
tstHelper("NA'O");
tstHelper("NAR");
tstHelper("NAS");
tstHelper("NA-ttE");
tstHelper("NA-YA");
tstHelper("NA+YA");
tstHelper("NA-YA'I");
tstHelper("NA-YAS");
tstHelper("ndA");
tstHelper("NDA'I");
tstHelper("NDANG");
tstHelper("nDDBCOM");
tstHelper("ndI");
tstHelper("nE");
tstHelper("Ne");
tstHelper("NE");
tstHelper("NEE");
tstHelper("NEE");
tstHelper("NEM");
tstHelper("NENG");
tstHelper("NER");
tstHelper("NERNYDZA");
tstHelper("NE'U");
tstHelper("NGA");
tstHelper("'NGA'");
tstHelper("NGA'");
tstHelper("NGA'AI");
tstHelper("NGA'ANG");
tstHelper("NGAB");
tstHelper("NGAD");
tstHelper("NGAG");
tstHelper("NGAGS");
tstHelper("NGA'I");
tstHelper("NGAK");
tstHelper("NGAL");
tstHelper("NGAM");
tstHelper("NGAN");
tstHelper("NGANG");
tstHelper("NGA'O");
tstHelper("NGAR");
tstHelper("NGAS");
tstHelper("NGE");
tstHelper("NGED");
tstHelper("NGE'I");
tstHelper("NGENG");
tstHelper("NGE'O");
tstHelper("NGER");
tstHelper("NGES");
tstHelper("NGHU");
tstHelper("NGO");
tstHelper("NGOGS");
tstHelper("NGO'I");
tstHelper("NGOM");
tstHelper("NGOMS");
tstHelper("NGON");
tstHelper("NGOR");
tstHelper("NGOS");
tstHelper("NGU");
tstHelper("NGU'AM");
tstHelper("NGU'ANG");
tstHelper("NGU'I");
tstHelper("NGUL");
tstHelper("NGUR");
tstHelper("NGUS");
tstHelper("nI");
tstHelper("n'I");
tstHelper("Ni");
tstHelper("NI");
tstHelper("N'I");
tstHelper("NID");
tstHelper("NIG");
tstHelper("NI'I");
tstHelper("NIM");
tstHelper("NIN");
tstHelper("NING");
tstHelper("NIR");
tstHelper("NIS");
tstHelper("NNGOS");
tstHelper("nO");
tstHelper("NO");
tstHelper("NOD");
tstHelper("NO'DI");
tstHelper("NOG");
tstHelper("NOGAL");
tstHelper("NOGS");
tstHelper("NOM");
tstHelper("NON");
tstHelper("NONGS");
tstHelper("NOR");
tstHelper("NOS");
tstHelper("nRi");
tstHelper("NRi");
tstHelper("NRi-tt'A");
tstHelper("NRTZIS");
tstHelper("NTA");
tstHelper("NTE");
tstHelper("NU");
tstHelper("NU'AM");
tstHelper("NU'ANG");
tstHelper("NUB");
tstHelper("NUG");
tstHelper("NU'I");
tstHelper("NUL");
tstHelper("NU'O");
tstHelper("NUR");
tstHelper("NUS");
tstHelper("nYA");
tstHelper("NYA");
tstHelper("N-YA");
tstHelper("N+YA");
tstHelper("NY'A");
tstHelper("NYA'AM");
tstHelper("NYADZA");
tstHelper("NYAG");
tstHelper("N+YA'I");
tstHelper("NYA'I");
tstHelper("NYAJS");
tstHelper("NYAL");
tstHelper("nYAM");
tstHelper("NYAM");
tstHelper("NYAMS");
tstHelper("NYAN");
tstHelper("NYANG");
tstHelper("N+YANG");
tstHelper("NYAR");
tstHelper("NYAS");
tstHelper("N-YAS");
tstHelper("N+YAS");
tstHelper("N+YASA");
tstHelper("NYDI");
tstHelper("NYDZA");
tstHelper("nYE");
tstHelper("NYE");
tstHelper("NYED");
tstHelper("NYEES");
tstHelper("NYE'I");
tstHelper("NYEN");
tstHelper("NYE'O");
tstHelper("NYER");
tstHelper("NYES");
tstHelper("NYI");
tstHelper("NYI'AM");
tstHelper("NYID");
tstHelper("NYI'I");
tstHelper("NYIL");
tstHelper("NYIM");
tstHelper("NYIN");
tstHelper("NYING");
tstHelper("NYIR");
tstHelper("NYIS");
tstHelper("NYO");
tstHelper("NYOL");
tstHelper("NYOM");
tstHelper("NYON");
tstHelper("NYOR");
tstHelper("NYOS");
tstHelper("NYTZA");
tstHelper("NYU");
tstHelper("NYUD");
tstHelper("NYUG");
tstHelper("NYUL");
tstHelper("NYUNG");
tstHelper("NYUNGS");
tstHelper("'O");
tstHelper("'OBS");
tstHelper("'OD");
tstHelper("'OG");
tstHelper("'OGS");
tstHelper("'OL");
tstHelper("'ON");
tstHelper("'ONG");
tstHelper("'ONGS");
tstHelper("'OR");
tstHelper("'OS");
tstHelper("pA");
tstHelper("PA");
tstHelper("P'A");
tstHelper("PA'");
tstHelper("PA'AI");
tstHelper("PA'AM");
tstHelper("PA'ANG");
tstHelper("PAD");
tstHelper("PAD-");
tstHelper("PA'DI");
tstHelper("PADMA");
tstHelper("PAD-MA");
tstHelper("PAD-MA");
tstHelper("PADM'A");
tstHelper("PADMA'AM");
tstHelper("PAD-MA'I");
tstHelper("PAD-MA'I");
tstHelper("PADMA'I");
tstHelper("PAD-MAS");
tstHelper("PADMASA");
tstHelper("PAD-MED");
tstHelper("PADM'I");
tstHelper("PADMO");
tstHelper("PAD-MO");
tstHelper("PAD-MO'I");
tstHelper("PADMO'I");
tstHelper("PADMOS");
tstHelper("PAG");
tstHelper("PAGE");
tstHelper("PAGS");
tstHelper("PAH");
tstHelper("PA'I");
tstHelper("PA'I");
tstHelper("PA'IJ");
tstHelper("PA'I'O");
tstHelper("PAKOO");
tstHelper("PAL");
tstHelper("PALG");
tstHelper("PAm");
tstHelper("PAM");
tstHelper("PAn");
tstHelper("PAN");
tstHelper("PAndI");
tstHelper("PANdI");
tstHelper("PANG");
tstHelper("PANG-KI'I");
tstHelper("PANYTZA");
tstHelper("PA'O");
tstHelper("PAR");
tstHelper("PARMA");
tstHelper("PARnA");
tstHelper("PARNA");
tstHelper("PARNAM");
tstHelper("PARshA");
tstHelper("PARSHA");
tstHelper("PAR-SHA");
tstHelper("PAR-SHI");
tstHelper("PAS");
tstHelper("PD");
tstHelper("PDMA");
tstHelper("PDM'AI");
tstHelper("PE");
tstHelper("PE'I");
tstHelper("PER");
tstHelper("PE'U");
tstHelper("PH");
tstHelper("PHA");
tstHelper("'PHA");
tstHelper("PH'A");
tstHelper("PHA'AM");
tstHelper("PHAB");
tstHelper("PHABS");
tstHelper("PHAG");
tstHelper("'PHAG");
tstHelper("PHAGS");
tstHelper("'PHAGS");
tstHelper("PHA'I");
tstHelper("PHAL");
tstHelper("'PHAL");
tstHelper("PHAM");
tstHelper("'PHAM");
tstHelper("PHAN");
tstHelper("'PHAN");
tstHelper("PHANG");
tstHelper("'PHANG");
tstHelper("PHANGS");
tstHelper("'PHANGS");
tstHelper("PHA'O");
tstHelper("PHAR");
tstHelper("'PHAR");
tstHelper("PHARG");
tstHelper("PHAS");
tstHelper("PHAYG");
tstHelper("PHE");
tstHelper("PHEBS");
tstHelper("PHEG");
tstHelper("PHEL");
tstHelper("'PHEL");
tstHelper("'PHEN");
tstHelper("PHIGS");
tstHelper("PHIN");
tstHelper("PHIR");
tstHelper("PHO");
tstHelper("'PHO");
tstHelper("'PHO'AM");
tstHelper("PHO'AM");
tstHelper("'PHO'ANG");
tstHelper("PHOB");
tstHelper("PHOD");
tstHelper("'PHOD");
tstHelper("PHOG");
tstHelper("'PHOG");
tstHelper("'PHOGS");
tstHelper("'PHO'I");
tstHelper("PHO'I");
tstHelper("PHOL");
tstHelper("PHONG");
tstHelper("'PHONG");
tstHelper("PHONGS");
tstHelper("'PHONGS");
tstHelper("PHO'O");
tstHelper("PHOR");
tstHelper("'PHOR");
tstHelper("PHOS");
tstHelper("'PHOS");
tstHelper("PHRA");
tstHelper("'PHRA");
tstHelper("PHRAB");
tstHelper("PHRAD");
tstHelper("'PHRAD");
tstHelper("PHRAG");
tstHelper("'PHRAG");
tstHelper("PHRAGS");
tstHelper("PHRAL");
tstHelper("'PHRAL");
tstHelper("PHRAM");
tstHelper("PHRAN");
tstHelper("PHRANG");
tstHelper("PHRAR");
tstHelper("'PHRAS");
tstHelper("'PHRE");
tstHelper("PHRED");
tstHelper("'PHRED");
tstHelper("PHREN");
tstHelper("PHRENG");
tstHelper("'PHRENG");
tstHelper("PHRE'U");
tstHelper("PHRI");
tstHelper("PHRI'ANG");
tstHelper("PHRIB");
tstHelper("PHRIG");
tstHelper("'PHRIG");
tstHelper("'PHRIGS");
tstHelper("PHRIN");
tstHelper("'PHRIN");
tstHelper("PHRING");
tstHelper("'PHRO");
tstHelper("'PHROD");
tstHelper("PHROG");
tstHelper("'PHROG");
tstHelper("PHROGS");
tstHelper("'PHROGS");
tstHelper("'PHRO'I");
tstHelper("PHROL");
tstHelper("'PHRO'O");
tstHelper("'PHROR");
tstHelper("'PHROS");
tstHelper("PHRU");
tstHelper("'PHRU");
tstHelper("PHRUG");
tstHelper("PHRUGS");
tstHelper("PHRUL");
tstHelper("'PHRUL");
tstHelper("PHRUM");
tstHelper("PHU");
tstHelper("PHUB");
tstHelper("PHUBS");
tstHelper("PHUD");
tstHelper("PHUG");
tstHelper("PHUGS");
tstHelper("PHUL");
tstHelper("'PHUL");
tstHelper("PHUN");
tstHelper("PHUNG");
tstHelper("'PHUNG");
tstHelper("PHUR");
tstHelper("'PHUR");
tstHelper("PHYA");
tstHelper("'PHYA");
tstHelper("'PHYA'AM");
tstHelper("PHYAD");
tstHelper("'PHYAD");
tstHelper("PHYAG");
tstHelper("'PHYAG");
tstHelper("PHYAGG");
tstHelper("PHYAGS");
tstHelper("PHYAL");
tstHelper("PHYAM");
tstHelper("PHYAN");
tstHelper("'PHYAN");
tstHelper("PHYANG");
tstHelper("'PHYANG");
tstHelper("'PHYANGS");
tstHelper("PHYAR");
tstHelper("'PHYAR");
tstHelper("PHYAS");
tstHelper("'PHYAS");
tstHelper("PHYE");
tstHelper("'PHYE");
tstHelper("PHYE'AM");
tstHelper("PHYED");
tstHelper("'PHYE'I");
tstHelper("PHYE'I");
tstHelper("PHYEL");
tstHelper("PHYEM");
tstHelper("PHYEN");
tstHelper("PHYENG");
tstHelper("PHYE'O");
tstHelper("PHYER");
tstHelper("'PHYER");
tstHelper("PHYES");
tstHelper("'PHYES");
tstHelper("PHYI");
tstHelper("'PHYI");
tstHelper("PHYI'AM");
tstHelper("PHYIGS");
tstHelper("PHYI'I");
tstHelper("PHYI'I'AM");
tstHelper("PHYIM");
tstHelper("PHYIN");
tstHelper("'PHYIN");
tstHelper("PHYIN");
tstHelper("PHYING");
tstHelper("PHYI'O");
tstHelper("PHYIR");
tstHelper("'PHYIR");
tstHelper("PHYIS");
tstHelper("'PHYIS");
tstHelper("'PHYO");
tstHelper("'PHYO'AM");
tstHelper("PHYOGS");
tstHelper("'PHYON");
tstHelper("PHYOR");
tstHelper("PHYUG");
tstHelper("PHYUGS");
tstHelper("PHYUNG");
tstHelper("'PHYUNG");
tstHelper("PHYUNGS");
tstHelper("PHYUR");
tstHelper("PI");
tstHelper("PID");
tstHelper("PIDHA");
tstHelper("PIN");
tstHelper("PING");
tstHelper("PING-KA");
tstHelper("PI-NGKA");
tstHelper("PING-KA");
tstHelper("PING-KA'I");
tstHelper("PINGKA'I");
tstHelper("PIR");
tstHelper("PIS");
tstHelper("PO");
tstHelper("'PO");
tstHelper("PO'AM");
tstHelper("PO'ANG");
tstHelper("POD");
tstHelper("POE");
tstHelper("POG");
tstHelper("POGS");
tstHelper("'POGS");
tstHelper("PO'I");
tstHelper("PO'ID");
tstHelper("PO'IG");
tstHelper("PO'I'O");
tstHelper("POM");
tstHelper("PO'O");
tstHelper("POR");
tstHelper("POS");
tstHelper("PRA");
tstHelper("PR'A");
tstHelper("PRAD");
tstHelper("PRADZNY'A");
tstHelper("PRAG");
tstHelper("'PREL");
tstHelper("PRGYUN");
tstHelper("PRi");
tstHelper("PRI");
tstHelper("PRIS");
tstHelper("PRiTZTSVA");
tstHelper("PRO");
tstHelper("PROS");
tstHelper("PRU");
tstHelper("PRUGS");
tstHelper("PU");
tstHelper("P'U");
tstHelper("PUD");
tstHelper("PU'I");
tstHelper("PU-KKA");
tstHelper("PUL");
tstHelper("PUndA");
tstHelper("PUnYA");
tstHelper("PUnYE");
tstHelper("PUR");
tstHelper("P'UrnA");
tstHelper("P'URnnA");
tstHelper("PUS");
tstHelper("PUSTA");
tstHelper("PUSTI");
tstHelper("PYA");
tstHelper("PYAD");
tstHelper("PYED");
tstHelper("PYIN");
tstHelper("PYIR");
tstHelper("PYUNG");
tstHelper("RA");
tstHelper("R'A");
tstHelper("RAB");
tstHelper("RABS");
tstHelper("RAD");
tstHelper("RADV");
tstHelper("RADVA");
tstHelper("RA-DWA");
tstHelper("RAG");
tstHelper("RAGB");
tstHelper("RAGS");
tstHelper("RA'I");
tstHelper("RAKshA");
tstHelper("RAKshI");
tstHelper("RAL");
tstHelper("RALI");
tstHelper("RAM");
tstHelper("RAMS");
tstHelper("RAN");
tstHelper("RAnAdA");
tstHelper("RAndA");
tstHelper("RANG");
tstHelper("RANGS");
tstHelper("RAnn'A");
tstHelper("RANYDZA");
tstHelper("RA'O");
tstHelper("RAP");
tstHelper("RAPAR");
tstHelper("RAR");
tstHelper("RAS");
tstHelper("RATNA");
tstHelper("RATNA'I");
tstHelper("RBA");
tstHelper("RBAB");
tstHelper("RBAD");
tstHelper("RBANG");
tstHelper("RBBA");
tstHelper("RBB'A");
tstHelper("RBEG");
tstHelper("RBOD");
tstHelper("RDA");
tstHelper("RDAB");
tstHelper("RDA'I");
tstHelper("RDAL");
tstHelper("RDAM");
tstHelper("RDAN");
tstHelper("RDE");
tstHelper("RDEB");
tstHelper("RDEBS");
tstHelper("RDEG");
tstHelper("RDEGS");
tstHelper("RDENG");
tstHelper("RDE'U");
tstHelper("RDIB");
tstHelper("RDO");
tstHelper("RDO");
tstHelper("RDOB");
tstHelper("RDOBS");
tstHelper("RDOD");
tstHelper("RDOG");
tstHelper("RDOGS");
tstHelper("RDO'I");
tstHelper("RDOL");
tstHelper("RDON");
tstHelper("RDOR");
tstHelper("RDOS");
tstHelper("RDU");
tstHelper("RDUB");
tstHelper("RDUG");
tstHelper("RDUGS");
tstHelper("RDUL");
tstHelper("RDUM");
tstHelper("RDUNG");
tstHelper("RDUNGS");
tstHelper("RDU'O");
tstHelper("RDUR");
tstHelper("RDUS");
tstHelper("RDVI");
tstHelper("RDZA");
tstHelper("RDZ'A");
tstHelper("RDZAB");
tstHelper("RDZAGS");
tstHelper("RDZA'I");
tstHelper("RDZANGS");
tstHelper("RDZAS");
tstHelper("RDZE");
tstHelper("RDZE'U");
tstHelper("RDZE'U'I");
tstHelper("RDZI");
tstHelper("RDZI'AM");
tstHelper("RDZID");
tstHelper("RDZI'I");
tstHelper("RDZIM");
tstHelper("RDZING");
tstHelper("RDZIR");
tstHelper("RDZIS");
tstHelper("RDZI'U");
tstHelper("RDZOB");
tstHelper("RDZOD");
tstHelper("RDZOG");
tstHelper("RDZOGS");
tstHelper("RDZONG");
tstHelper("RDZONGS");
tstHelper("RDZU");
tstHelper("'RDZU");
tstHelper("RDZUB");
tstHelper("RDZUBS");
tstHelper("RDZUD");
tstHelper("RDZUN");
tstHelper("RDZU'O");
tstHelper("RDZUS");
tstHelper("RE");
tstHelper("RE'AM");
tstHelper("RE'ANG");
tstHelper("RED");
tstHelper("REG");
tstHelper("REGS");
tstHelper("RE'I");
tstHelper("REL");
tstHelper("REM");
tstHelper("REN");
tstHelper("RENDRA");
tstHelper("RENG");
tstHelper("RENGS");
tstHelper("RE'O");
tstHelper("RER");
tstHelper("RES");
tstHelper("RGA");
tstHelper("RGAD");
tstHelper("RGA'I");
tstHelper("RGAL");
tstHelper("RGAN");
tstHelper("RGANG");
tstHelper("RGA'O");
tstHelper("RGAS");
tstHelper("RGHO");
tstHelper("RGO'AM");
tstHelper("RGOD");
tstHelper("RGOL");
tstHelper("RGON");
tstHelper("RGOS");
tstHelper("RGU");
tstHelper("RGUD");
tstHelper("RGU'I");
tstHelper("RGUN");
tstHelper("RGUNG");
tstHelper("RGUR");
tstHelper("RGYA");
tstHelper("RGYA'AM");
tstHelper("RGYA'ANG");
tstHelper("RGYAB");
tstHelper("RGYAD");
tstHelper("RGYAGS");
tstHelper("RGYA'I");
tstHelper("RGYAL");
tstHelper("RGYAM");
tstHelper("RGYAN");
tstHelper("RGYANG");
tstHelper("RGYANGS");
tstHelper("RGYA'O");
tstHelper("RGYAR");
tstHelper("RGYAS");
tstHelper("RGYASD");
tstHelper("RGYASKYI");
tstHelper("RGYEL");
tstHelper("RGYEN");
tstHelper("RGYI'U");
tstHelper("RGYOB");
tstHelper("RGYU");
tstHelper("RGYU'AM");
tstHelper("RGYU'ANG");
tstHelper("RGYUB");
tstHelper("RGYUD");
tstHelper("RGYUG");
tstHelper("RGYUGS");
tstHelper("RGYU'I");
tstHelper("RGYUN");
tstHelper("RGYU'O");
tstHelper("RGYUR");
tstHelper("RGYUS");
tstHelper("RHA");
tstHelper("RI");
tstHelper("R'I");
tstHelper("RI'AM");
tstHelper("RIB");
tstHelper("RID");
tstHelper("RIG");
tstHelper("RiGS");
tstHelper("RIGS");
tstHelper("RI'I");
tstHelper("RIL");
tstHelper("RIM");
tstHelper("RIMS");
tstHelper("RIN");
tstHelper("RING");
tstHelper("RINGS");
tstHelper("RI'O");
tstHelper("RIR");
tstHelper("RIS");
tstHelper("RIshA");
tstHelper("RJAM");
tstHelper("RJAS");
tstHelper("RJE");
tstHelper("RJE");
tstHelper("RJE'ANG");
tstHelper("RJED");
tstHelper("RJEDS");
tstHelper("RJE'I");
tstHelper("RJEN");
tstHelper("RJER");
tstHelper("RJES");
tstHelper("RJE'U");
tstHelper("RJE'U'I");
tstHelper("RJI");
tstHelper("RJID");
tstHelper("'RJID");
tstHelper("RJING");
tstHelper("RJIS");
tstHelper("RJOB");
tstHelper("RJOD");
tstHelper("RJOGS");
tstHelper("RJU");
tstHelper("RJUD");
tstHelper("RKA");
tstHelper("RKAD");
tstHelper("RKAM");
tstHelper("RKAN");
tstHelper("RKANG");
tstHelper("RKE");
tstHelper("RKEB");
tstHelper("RKED");
tstHelper("RKO");
tstHelper("RKOM");
tstHelper("RKOR");
tstHelper("RKOS");
tstHelper("RKU");
tstHelper("RKUB");
tstHelper("RKUM");
tstHelper("RKUN");
tstHelper("RKUR");
tstHelper("RKUS");
tstHelper("RKYA");
tstHelper("RKYAL");
tstHelper("RKYAN");
tstHelper("RKYANG");
tstHelper("RKYAS");
tstHelper("RKYE");
tstHelper("RKYEN");
tstHelper("RKYONG");
tstHelper("RLAB");
tstHelper("RLABS");
tstHelper("RLAG");
tstHelper("RLAM");
tstHelper("RLAN");
tstHelper("RLANG");
tstHelper("RLANGS");
tstHelper("RLINGS");
tstHelper("RLO");
tstHelper("RLOB");
tstHelper("RLOBS");
tstHelper("RLOG");
tstHelper("RLOM");
tstHelper("RLOMS");
tstHelper("RLON");
tstHelper("RLUBS");
tstHelper("RLUGS");
tstHelper("RLUNG");
tstHelper("RLUS");
tstHelper("RMA");
tstHelper("RMAD");
tstHelper("RMAG");
tstHelper("RMA'I");
tstHelper("RMAN");
tstHelper("RMANG");
tstHelper("RMAR");
tstHelper("RMAS");
tstHelper("RME");
tstHelper("RMED");
tstHelper("RMEG");
tstHelper("RMEL");
tstHelper("RMEN");
tstHelper("RMI");
tstHelper("RMID");
tstHelper("RMIG");
tstHelper("RMIS");
tstHelper("RMMA");
tstHelper("RMO");
tstHelper("RMOD");
tstHelper("RMON");
tstHelper("RMONGS");
tstHelper("RMOS");
tstHelper("RMTHONG");
tstHelper("RMU");
tstHelper("RMUGS");
tstHelper("RMYA");
tstHelper("RNA");
tstHelper("RNAB");
tstHelper("RNABS");
tstHelper("RNAG");
tstHelper("RNAGS");
tstHelper("RNA'I");
tstHelper("RNAL");
tstHelper("RNALM");
tstHelper("RNAM");
tstHelper("'RNAM");
tstHelper("RNAMPAMI");
tstHelper("RNAMPAR");
tstHelper("RNAMS");
tstHelper("RNANG");
tstHelper("RNAR");
tstHelper("RNAS");
tstHelper("RNASM");
tstHelper("RndA");
tstHelper("Rnd'I");
tstHelper("RNGA");
tstHelper("RNGA'AM");
tstHelper("RNGAD");
tstHelper("RNGA'I");
tstHelper("RNGAL");
tstHelper("RNGAM");
tstHelper("RNGAMS");
tstHelper("RNGAN");
tstHelper("RNGAR");
tstHelper("RNGE'I");
tstHelper("RNGES");
tstHelper("RNGO");
tstHelper("RNGOD");
tstHelper("RNGOG");
tstHelper("RNGOGS");
tstHelper("RNGON");
tstHelper("RNGOR");
tstHelper("RNGOS");
tstHelper("RNGU");
tstHelper("RNGUB");
tstHelper("RNGU'I");
tstHelper("RNGUL");
tstHelper("RNGUR");
tstHelper("RNGUS");
tstHelper("RNL");
tstHelper("RNO");
tstHelper("RNOB");
tstHelper("RNON");
tstHelper("RNYAD");
tstHelper("RNYANG");
tstHelper("RNYDZA");
tstHelper("RNY-DZA");
tstHelper("RNYED");
tstHelper("RNYEN");
tstHelper("RNYENG");
tstHelper("RNYI");
tstHelper("RNYID");
tstHelper("RNYIL");
tstHelper("RNYING");
tstHelper("RNYINGS");
tstHelper("RNYIS");
tstHelper("RNYOG");
tstHelper("RNYOGS");
tstHelper("RNYONG");
tstHelper("RNYONGS");
tstHelper("RNYOS");
tstHelper("RO");
tstHelper("RO'AM");
tstHelper("RO'ANG");
tstHelper("ROD");
tstHelper("ROG");
tstHelper("ROGS");
tstHelper("RO'I");
tstHelper("ROL");
tstHelper("ROM");
tstHelper("RON");
tstHelper("RONG");
tstHelper("RO'O");
tstHelper("ROR");
tstHelper("ROS");
tstHelper("RTA");
tstHelper("RTA'AM");
tstHelper("RTAB");
tstHelper("RTABS");
tstHelper("RTAG");
tstHelper("RTAGS");
tstHelper("RTA'I");
tstHelper("RTAN");
tstHelper("RTANG");
tstHelper("RTAR");
tstHelper("RTAS");
tstHelper("RTE");
tstHelper("RTEGS");
tstHelper("RTEN");
tstHelper("RTE'U");
tstHelper("RTI");
tstHelper("RTIB");
tstHelper("RTIG");
tstHelper("RTIN");
tstHelper("RTING");
tstHelper("RTO");
tstHelper("RTOD");
tstHelper("RTOG");
tstHelper("RTOGS");
tstHelper("RTOL");
tstHelper("RTON");
tstHelper("RTONG");
tstHelper("RTUG");
tstHelper("RTUL");
tstHelper("RTUN");
tstHelper("RTZA");
tstHelper("RTZAB");
tstHelper("RTZABS");
tstHelper("RTZAD");
tstHelper("RTZA'I");
tstHelper("RTZAL");
tstHelper("RTZAMS");
tstHelper("RTZANG");
tstHelper("RTZANGS");
tstHelper("RTZAR");
tstHelper("RTZE");
tstHelper("RTZEB");
tstHelper("RTZED");
tstHelper("RTZEG");
tstHelper("RTZE'I");
tstHelper("RTZEN");
tstHelper("RTZENGS");
tstHelper("RTZE'O");
tstHelper("RTZER");
tstHelper("RTZES");
tstHelper("RTZI");
tstHelper("RTZI'AM");
tstHelper("RTZIB");
tstHelper("RTZIBS");
tstHelper("RTZIG");
tstHelper("RTZIGS");
tstHelper("RTZI'I");
tstHelper("RTZI'O");
tstHelper("RTZIR");
tstHelper("RTZIS");
tstHelper("RTZOD");
tstHelper("RTZOG");
tstHelper("RTZOL");
tstHelper("RTZOM");
tstHelper("RTZOMS");
tstHelper("RTZON");
tstHelper("RTZU");
tstHelper("RTZUB");
tstHelper("RTZUM");
tstHelper("RTZVA");
tstHelper("RTZVA");
tstHelper("RTZVA'AM");
tstHelper("RTZVA'I");
tstHelper("RTZVA'O");
tstHelper("RTZVAS");
tstHelper("RTZVI");
tstHelper("RTZWA");
tstHelper("RTZWA'AM");
tstHelper("RTZWA'I");
tstHelper("RTZWAS");
tstHelper("RU");
tstHelper("R'U");
tstHelper("RU'AM");
tstHelper("RU'ANG");
tstHelper("RUB");
tstHelper("RUD");
tstHelper("RU'I");
tstHelper("RUL");
tstHelper("RUM");
tstHelper("RUN");
tstHelper("RUNG");
tstHelper("RUNGS");
tstHelper("RU'O");
tstHelper("RUS");
tstHelper("RUT");
tstHelper("RVA");
tstHelper("RVA'I");
tstHelper("RVAS");
tstHelper("RWA");
tstHelper("RWA'ANG");
tstHelper("RWA'I");
tstHelper("RYA");
tstHelper("R+YA");
tstHelper("RY'A");
tstHelper("R+YA'I");
tstHelper("RYA'I");
tstHelper("RYAS");
tstHelper("R+Y'I");
tstHelper("RYYA");
tstHelper("RZDOGS");
tstHelper("S");
tstHelper("SA");
tstHelper("S'A");
tstHelper("SA'");
tstHelper("SA'AM");
tstHelper("SA'ANG");
tstHelper("SAB");
tstHelper("SAD");
tstHelper("SADDHARMA");
tstHelper("SAG");
tstHelper("SAHA");
tstHelper("S'A-H'A");
tstHelper("SA-HO");
tstHelper("SA'I");
tstHelper("SAKD");
tstHelper("SAL");
tstHelper("SAm");
tstHelper("SAM");
tstHelper("S'AM");
tstHelper("SAmBHA");
tstHelper("SAMS");
tstHelper("SAN");
tstHelper("SANG");
tstHelper("SANG-GHA");
tstHelper("SANGS");
tstHelper("SANS");
tstHelper("SA'O");
tstHelper("SAPTA");
tstHelper("SAR");
tstHelper("S'AR");
tstHelper("SARBA");
tstHelper("SARDZA");
tstHelper("SAS");
tstHelper("SBA");
tstHelper("SBABS");
tstHelper("SBAD");
tstHelper("SBAGS");
tstHelper("SBA'I");
tstHelper("SBAL");
tstHelper("SBAM");
tstHelper("SBAMS");
tstHelper("SBANG");
tstHelper("SBANGS");
tstHelper("SBA'O");
tstHelper("SBAR");
tstHelper("SBAS");
tstHelper("SBED");
tstHelper("SBENGS");
tstHelper("SBO");
tstHelper("SBOBS");
tstHelper("SBOGS");
tstHelper("SBOM");
tstHelper("SBOMS");
tstHelper("SBOR");
tstHelper("SBOS");
tstHelper("SBRA");
tstHelper("SBRAD");
tstHelper("SBRA'I");
tstHelper("SBRAM");
tstHelper("SBRAN");
tstHelper("SBRANG");
tstHelper("SBRAS");
tstHelper("SBREBS");
tstHelper("SBREL");
tstHelper("SBRENG");
tstHelper("SBRENGS");
tstHelper("SBRIN");
tstHelper("SBRING");
tstHelper("SBRO");
tstHelper("SBRO'AM");
tstHelper("SBRON");
tstHelper("SBRO'O");
tstHelper("SBRU");
tstHelper("SBRUG");
tstHelper("SBRUGS");
tstHelper("SBRUL");
tstHelper("SBRUM");
tstHelper("SBRUS");
tstHelper("SBU");
tstHelper("SBUB");
tstHelper("SBUBS");
tstHelper("SBUD");
tstHelper("SBUG");
tstHelper("SBUN");
tstHelper("SBUR");
tstHelper("SBYAD");
tstHelper("SBYAN");
tstHelper("SBYANG");
tstHelper("SBYANGS");
tstHelper("SBYAR");
tstHelper("SBYE");
tstHelper("SBYED");
tstHelper("SBYEN");
tstHelper("SBYI");
tstHelper("SBYIB");
tstHelper("SBYI'I");
tstHelper("SBYIL");
tstHelper("SBYIN");
tstHelper("SBYIR");
tstHelper("SBYO");
tstHelper("SBYOD");
tstHelper("SBYOMS");
tstHelper("SBYON");
tstHelper("SBYONG");
tstHelper("SBYONGS");
tstHelper("SBYOR");
tstHelper("SBYOS");
tstHelper("SBYUG");
tstHelper("SBYUGS");
tstHelper("SCAL");
tstHelper("SDA");
tstHelper("SDAD");
tstHelper("SDAGS");
tstHelper("SDAM");
tstHelper("SDAN");
tstHelper("SDANG");
tstHelper("SDANGS");
tstHelper("SDAR");
tstHelper("SDAS");
tstHelper("SDE");
tstHelper("SDE'AM");
tstHelper("SDEB");
tstHelper("SDEB");
tstHelper("SDEG");
tstHelper("SDE'I");
tstHelper("SDEM");
tstHelper("SDENG");
tstHelper("SDE'O");
tstHelper("SDER");
tstHelper("SDES");
tstHelper("SDE'U");
tstHelper("SDE'U'I");
tstHelper("SDIG");
tstHelper("SDIGS");
tstHelper("SDINGS");
tstHelper("SDO");
tstHelper("SDOD");
tstHelper("SDOG");
tstHelper("SDOGS");
tstHelper("SDO'I");
tstHelper("SDOM");
tstHelper("SDOMS");
tstHelper("SDON");
tstHelper("SDONG");
tstHelper("SDOR");
tstHelper("SDOS");
tstHelper("SDU");
tstHelper("SDUD");
tstHelper("SDUG");
tstHelper("SDUM");
tstHelper("SDUMS");
tstHelper("SDUN");
tstHelper("SDUR");
tstHelper("SDUS");
tstHelper("SE");
tstHelper("SED");
tstHelper("SEEMS");
tstHelper("SEG");
tstHelper("SEGS");
tstHelper("SEHS");
tstHelper("SE'I");
tstHelper("SEIS");
tstHelper("SEL");
tstHelper("SEM");
tstHelper("SEMS");
tstHelper("SEN");
tstHelper("SENG");
tstHelper("SENG-");
tstHelper("SENG-DGE'I");
tstHelper("SEN-GE");
tstHelper("SENGEGA'I");
tstHelper("SENGGE");
tstHelper("SENG-GE");
tstHelper("SENG-GE");
tstHelper("SENGGE'AM");
tstHelper("SENG-GE'I");
tstHelper("SENGGE'I");
tstHelper("SENGGES");
tstHelper("SENG-GES");
tstHelper("SER");
tstHelper("SESM");
tstHelper("SE'U");
tstHelper("SE'U'I");
tstHelper("SGA");
tstHelper("SGAD");
tstHelper("SGA'I");
tstHelper("SGAL");
tstHelper("SGAM");
tstHelper("SGANG");
tstHelper("SGAR");
tstHelper("SGEG");
tstHelper("SGE'U");
tstHelper("SGO");
tstHelper("SGO'AM");
tstHelper("SGOG");
tstHelper("SGO'I");
tstHelper("SGOM");
tstHelper("SGOMS");
tstHelper("SGONG");
tstHelper("SGO'O");
tstHelper("SGOR");
tstHelper("SGOS");
tstHelper("SGRA");
tstHelper("SGRA'AM");
tstHelper("SGRA'ANG");
tstHelper("SGRAB");
tstHelper("SGRAG");
tstHelper("SGRA'I");
tstHelper("SGRAL");
tstHelper("SGRANG");
tstHelper("SGRA'O");
tstHelper("SGRAR");
tstHelper("SGRAS");
tstHelper("SGRE");
tstHelper("SGREGS");
tstHelper("SGREN");
tstHelper("SGRENG");
tstHelper("SGRENGS");
tstHelper("SGRIB");
tstHelper("SGRIG");
tstHelper("SGRIL");
tstHelper("SGRIM");
tstHelper("SGRIMS");
tstHelper("SGRIN");
tstHelper("SGRO");
tstHelper("SGROG");
tstHelper("SGROGS");
tstHelper("SGROL");
tstHelper("SGROM");
tstHelper("SGRON");
tstHelper("SGROS");
tstHelper("SGRU");
tstHelper("SGRUB");
tstHelper("SGRUBS");
tstHelper("SGRUL");
tstHelper("SGRUM");
tstHelper("SGRUN");
tstHelper("SGRUNG");
tstHelper("SGUGS");
tstHelper("SGUL");
tstHelper("SGUR");
tstHelper("SGYE");
tstHelper("SGYED");
tstHelper("SGYEGS");
tstHelper("SGYEL");
tstHelper("SGYE'U");
tstHelper("SGYI");
tstHelper("SGYID");
tstHelper("SGYIGS");
tstHelper("SGYIN");
tstHelper("SGYING");
tstHelper("SGYOGS");
tstHelper("SGYONG");
tstHelper("SGYOR");
tstHelper("SGYU");
tstHelper("SGYU'AM");
tstHelper("SGYU'ANG");
tstHelper("SGYUG");
tstHelper("SGYU'I");
tstHelper("SGYUR");
tstHelper("SGYUS");
tstHelper("shA");
tstHelper("sh'A");
tstHelper("sHA");
tstHelper("SHA");
tstHelper("SH'A");
tstHelper("SHA'");
tstHelper("SHA'AM");
tstHelper("SHA'ANG");
tstHelper("SHAD");
tstHelper("SHAG");
tstHelper("SHAGS");
tstHelper("shA'I");
tstHelper("SHA'I");
tstHelper("shAK");
tstHelper("SH'A-KA");
tstHelper("SH'AKYA");
tstHelper("SH'A-KYA");
tstHelper("SHA'KYA");
tstHelper("SHA'-KYA");
tstHelper("SH'A-KYA'I");
tstHelper("SH'A-KYA'I");
tstHelper("SH'AKYA'I");
tstHelper("SHA'KYA'I");
tstHelper("SHAKYA'I");
tstHelper("SH'A-KYAS");
tstHelper("SH'AKYATHUB");
tstHelper("SH'AKYI");
tstHelper("SH'A-KY'I");
tstHelper("SHAL");
tstHelper("SHAM");
tstHelper("SH'AM");
tstHelper("SH'AMBA'I'I");
tstHelper("SH'AMBA'IRA");
tstHelper("SHAMBHI'I");
tstHelper("SH'AMB'I");
tstHelper("SH'AMB'I'I");
tstHelper("SH'AMB'IR");
tstHelper("SH'AMB'IRA");
tstHelper("SHAMS");
tstHelper("SHAn");
tstHelper("SHAN");
tstHelper("SHANG");
tstHelper("SHANGS");
tstHelper("SH'ANTA");
tstHelper("SH'A-NTE");
tstHelper("SH'ANTI");
tstHelper("SHANTIm");
tstHelper("SH'ANTIm");
tstHelper("sh'APAn");
tstHelper("SHAR");
tstHelper("SH'ARI'I");
tstHelper("SHAS");
tstHelper("SHATA'I");
tstHelper("SHD");
tstHelper("SHE");
tstHelper("SHE'AM");
tstHelper("SHED");
tstHelper("SHEG");
tstHelper("SHEGS");
tstHelper("SHEL");
tstHelper("SHEMS");
tstHelper("SHEN");
tstHelper("SHENG");
tstHelper("SHER");
tstHelper("SHER");
tstHelper("SHES");
tstHelper("shI");
tstHelper("sHI");
tstHelper("SHI");
tstHelper("SH'I");
tstHelper("SHI'AM");
tstHelper("SHI'ANG");
tstHelper("SHIB");
tstHelper("SHID");
tstHelper("SHIG");
tstHelper("SHIGS");
tstHelper("SHI'I");
tstHelper("SHIL");
tstHelper("SHIN");
tstHelper("SHING");
tstHelper("SHINGS");
tstHelper("SHI'O");
tstHelper("SHIR");
tstHelper("SHIRshA");
tstHelper("SHIRshAD");
tstHelper("SHIS");
tstHelper("SH'KA");
tstHelper("SH'KYA");
tstHelper("SHLO");
tstHelper("SHLOO");
tstHelper("SHMA");
tstHelper("SHO");
tstHelper("S+HO");
tstHelper("SHOB");
tstHelper("SHOD");
tstHelper("SHOG");
tstHelper("SHOGS");
tstHelper("SHOL");
tstHelper("SHOM");
tstHelper("SHOMS");
tstHelper("SHON");
tstHelper("SHONG");
tstHelper("SHOR");
tstHelper("SHOS");
tstHelper("SHRA");
tstHelper("SHRADDHA");
tstHelper("SHRADDH'A");
tstHelper("SHR'I");
tstHelper("SHR'I'I");
tstHelper("SHRI'I");
tstHelper("SHRim");
tstHelper("SHRU");
tstHelper("shtA");
tstHelper("shtE");
tstHelper("shthA'I");
tstHelper("shtRA");
tstHelper("SHU");
tstHelper("SHU'AM");
tstHelper("SHUBS");
tstHelper("SHUD");
tstHelper("SHU-DADHI");
tstHelper("SHUDDHA");
tstHelper("SHUG");
tstHelper("SHUGS");
tstHelper("SHU'I");
tstHelper("SHUL");
tstHelper("SHUM");
tstHelper("SHUN");
tstHelper("SHUR");
tstHelper("SHUS");
tstHelper("sh'VA");
tstHelper("SHVA");
tstHelper("SHVAD");
tstHelper("SHVATTHA'I");
tstHelper("SHWA");
tstHelper("SHWANG-THA'I");
tstHelper("shYA");
tstHelper("sHYA");
tstHelper("SHYA");
tstHelper("SI");
tstHelper("S'I");
tstHelper("SIDDHI");
tstHelper("SI-DIdhI");
tstHelper("S'I'I");
tstHelper("SI'I");
tstHelper("SIL");
tstHelper("SIm");
tstHelper("SIM");
tstHelper("SIN");
tstHelper("S'IN");
tstHelper("S'INA");
tstHelper("SING");
tstHelper("SINGGA");
tstHelper("SINGGHA");
tstHelper("SINGHA");
tstHelper("SING-HA");
tstHelper("SIR");
tstHelper("S'IR");
tstHelper("S'IRA");
tstHelper("SKA");
tstHelper("SKA'");
tstHelper("SKABS");
tstHelper("SKAD");
tstHelper("SKAG");
tstHelper("SKAL");
tstHelper("SKAM");
tstHelper("SKAMS");
tstHelper("SKAN");
tstHelper("SKANG");
tstHelper("SKAR");
tstHelper("SKAS");
tstHelper("SKE");
tstHelper("SKED");
tstHelper("SKEGS");
tstHelper("SKEM");
tstHelper("SKEMS");
tstHelper("SKO");
tstHelper("SKOL");
tstHelper("SKOM");
tstHelper("SKOMS");
tstHelper("SKON");
tstHelper("SKONG");
tstHelper("SKONGS");
tstHelper("SKO'O");
tstHelper("SKOR");
tstHelper("SKOS");
tstHelper("SKRA");
tstHelper("SKRA'AM");
tstHelper("SKRA'ANG");
tstHelper("SKRABS");
tstHelper("SKRAD");
tstHelper("SKRAG");
tstHelper("SKRA'I");
tstHelper("SKRAL");
tstHelper("SKRAN");
tstHelper("SKRANGS");
tstHelper("SKRAS");
tstHelper("SKRIN");
tstHelper("SKRO");
tstHelper("SKROD");
tstHelper("SKROGS");
tstHelper("SKROM");
tstHelper("SKRUN");
tstHelper("SKRUR");
tstHelper("SKU");
tstHelper("SKU'AM");
tstHelper("SKU'ANG");
tstHelper("SKUD");
tstHelper("SKUG");
tstHelper("SKUGS");
tstHelper("SKU'I");
tstHelper("SKUL");
tstHelper("SKUM");
tstHelper("SKUN");
tstHelper("SKUNG");
tstHelper("SKU'O");
tstHelper("SKUR");
tstHelper("SKUS");
tstHelper("SKYA");
tstHelper("SKYAB");
tstHelper("SKYABS");
tstHelper("SKYAD");
tstHelper("SKYAG");
tstHelper("SKYAGS");
tstHelper("SKYA'I");
tstHelper("SKYANG");
tstHelper("SKYANGS");
tstHelper("SKYA'O");
tstHelper("SKYAR");
tstHelper("SKYAS");
tstHelper("SKYE");
tstHelper("SKYEB");
tstHelper("SKYED");
tstHelper("SKYEGS");
tstHelper("SKYE'I");
tstHelper("SKYEL");
tstHelper("SKYEMS");
tstHelper("SKYEN");
tstHelper("SKYENGS");
tstHelper("SKYE'O");
tstHelper("SKYER");
tstHelper("SKYES");
tstHelper("SKYI");
tstHelper("SKYIBS");
tstHelper("SKYID");
tstHelper("SKYIGS");
tstHelper("SKYIL");
tstHelper("SKYIM");
tstHelper("SKYIN");
tstHelper("SKYIS");
tstHelper("SKYO");
tstHelper("SKYOB");
tstHelper("SKYOBS");
tstHelper("SKYOD");
tstHelper("SKYOG");
tstHelper("SKYOGS");
tstHelper("SKYOL");
tstHelper("SKYON");
tstHelper("SKYONG");
tstHelper("SKYONGS");
tstHelper("SKYOR");
tstHelper("SKYOS");
tstHelper("SKYU");
tstHelper("SKYUD");
tstHelper("SKYUG");
tstHelper("SKYUGS");
tstHelper("SKYUNG");
tstHelper("SKYUR");
tstHelper("SLA");
tstHelper("SLA'AM");
tstHelper("SLAB");
tstHelper("SLAD");
tstHelper("SLA'I");
tstHelper("SLAN");
tstHelper("SLANG");
tstHelper("SLA'O");
tstHelper("SLAR");
tstHelper("SLAS");
tstHelper("SLE");
tstHelper("SLEB");
tstHelper("SLEBS");
tstHelper("SLEGS");
tstHelper("SLEN");
tstHelper("SLO");
tstHelper("SLOB");
tstHelper("SLOBS");
tstHelper("SLOD");
tstHelper("SLOGS");
tstHelper("SLOM");
tstHelper("SLON");
tstHelper("SLONG");
tstHelper("SLONGS");
tstHelper("SLU");
tstHelper("SLUS");
tstHelper("SMA");
tstHelper("SMAD");
tstHelper("SMAG");
tstHelper("SMAN");
tstHelper("SMANG");
tstHelper("SMARS");
tstHelper("SMAS");
tstHelper("SME");
tstHelper("SMEL");
tstHelper("SMES");
tstHelper("SMIG");
tstHelper("SMIN");
tstHelper("SMOD");
tstHelper("SMOM");
tstHelper("SMON");
tstHelper("SMOS");
tstHelper("SMRA");
tstHelper("SMRA'AM");
tstHelper("SMRA'ANG");
tstHelper("SMRAB");
tstHelper("SMRA'BA'I");
tstHelper("SMRA'I");
tstHelper("SMRAN");
tstHelper("SMRA'O");
tstHelper("SMRAR");
tstHelper("SMRAS");
tstHelper("SMRE");
tstHelper("SMREG");
tstHelper("SMRER");
tstHelper("SMRES");
tstHelper("SMRi");
tstHelper("SMRI");
tstHelper("SMRIG");
tstHelper("SMRIN");
tstHelper("SMROS");
tstHelper("SMUG");
tstHelper("SMYAGS");
tstHelper("SMYAM");
tstHelper("SMYAN");
tstHelper("SMYANG");
tstHelper("SMYANGS");
tstHelper("SMYIG");
tstHelper("SMYON");
tstHelper("SMYOS");
tstHelper("SMYU");
tstHelper("SMYUG");
tstHelper("SMYUGS");
tstHelper("SMYUNG");
tstHelper("SMYUR");
tstHelper("SNA");
tstHelper("SNA'AM");
tstHelper("SNA'ANG");
tstHelper("SNABS");
tstHelper("SNAD");
tstHelper("SNAG");
tstHelper("SNAGS");
tstHelper("SNA'I");
tstHelper("SNAM");
tstHelper("SNAMS");
tstHelper("SNAN");
tstHelper("SNANG");
tstHelper("SNA'O");
tstHelper("SNAR");
tstHelper("SNAS");
tstHelper("SNEL");
tstHelper("SNGA");
tstHelper("SNGAD");
tstHelper("SNGA-GHA");
tstHelper("SNGAGS");
tstHelper("SNGAL");
tstHelper("SNGAM");
tstHelper("SNGAN");
tstHelper("SNGANG");
tstHelper("SNGANGS");
tstHelper("SNGAR");
tstHelper("SNGAS");
tstHelper("SNGE");
tstHelper("SNGEB");
tstHelper("SNGEM");
tstHelper("SNGER");
tstHelper("SNGE'U");
tstHelper("SNGE'U'I");
tstHelper("SNGIG");
tstHelper("SNGO");
tstHelper("SNGOD");
tstHelper("SNGOGS");
tstHelper("SNGO'I");
tstHelper("SNGOM");
tstHelper("SNGON");
tstHelper("SNGONG");
tstHelper("SNGO'O");
tstHelper("SNGOR");
tstHelper("SNGOS");
tstHelper("SNGUG");
tstHelper("SNI");
tstHelper("SNIN");
tstHelper("SNOD");
tstHelper("SNOL");
tstHelper("SNOM");
tstHelper("SNOMS");
tstHelper("SNON");
tstHelper("SNONG");
tstHelper("SNREL");
tstHelper("SNRON");
tstHelper("SNUBS");
tstHelper("SNUM");
tstHelper("SNUMS");
tstHelper("SNUN");
tstHelper("SNYA");
tstHelper("SNYAD");
tstHelper("SNYAM");
tstHelper("SNYAM'AM");
tstHelper("SNYAMS");
tstHelper("SNYAN");
tstHelper("SNYE");
tstHelper("SNYED");
tstHelper("SNYEGS");
tstHelper("SNYEM");
tstHelper("SNYEMS");
tstHelper("SNYEN");
tstHelper("SNYENG");
tstHelper("SNYES");
tstHelper("SNYI");
tstHelper("SNYID");
tstHelper("SNYIGN");
tstHelper("SNYIGS");
tstHelper("SNYIL");
tstHelper("SNYIM");
tstHelper("SNYING");
tstHelper("SNYIR");
tstHelper("SNYOD");
tstHelper("SNYOGS");
tstHelper("SNYOL");
tstHelper("SNYOM");
tstHelper("SNYOMS");
tstHelper("SNYON");
tstHelper("SNYONG");
tstHelper("SNYONS");
tstHelper("SNYOSM");
tstHelper("SNYUG");
tstHelper("SNYUGS");
tstHelper("SNYUN");
tstHelper("SO");
tstHelper("'SO");
tstHelper("SO'AM");
tstHelper("SOBS");
tstHelper("SOD");
tstHelper("SOG");
tstHelper("SOGS");
tstHelper("SO-HO");
tstHelper("SO'I");
tstHelper("SO'I'O");
tstHelper("SOL");
tstHelper("SOM");
tstHelper("SOMS");
tstHelper("SON");
tstHelper("SONG");
tstHelper("SONGS");
tstHelper("SOO");
tstHelper("SOR");
tstHelper("SOS");
tstHelper("SOSL");
tstHelper("SPA");
tstHelper("SPABS");
tstHelper("SPAD");
tstHelper("SPAGS");
tstHelper("SPAL");
tstHelper("SPANG");
tstHelper("SPANGS");
tstHelper("SPAR");
tstHelper("SPAS");
tstHelper("SPEL");
tstHelper("SPEN");
tstHelper("SPHRUL");
tstHelper("SPO");
tstHelper("SPOB");
tstHelper("SPOBS");
tstHelper("SPOD");
tstHelper("SPOGS");
tstHelper("SPOL");
tstHelper("SPOM");
tstHelper("SPONG");
tstHelper("SPONGS");
tstHelper("SPOR");
tstHelper("SPOS");
tstHelper("SPRA");
tstHelper("SPRAD");
tstHelper("SPRAN");
tstHelper("SPRANG");
tstHelper("SPRANGS");
tstHelper("SPRA'O");
tstHelper("SPRAS");
tstHelper("SPREBS");
tstHelper("SPREL");
tstHelper("SPRENGS");
tstHelper("SPRE'U");
tstHelper("SPRE'U'I");
tstHelper("SPRE'UR");
tstHelper("SPRE'US");
tstHelper("SPRID");
tstHelper("SPRIN");
tstHelper("SPRING");
tstHelper("SPRIS");
tstHelper("SPRO");
tstHelper("SPRO'AM");
tstHelper("SPROB");
tstHelper("SPROD");
tstHelper("SPROG");
tstHelper("SPRO'I");
tstHelper("SPRON");
tstHelper("SPRO'O");
tstHelper("SPROS");
tstHelper("SPRUG");
tstHelper("SPRUGS");
tstHelper("SPRUL");
tstHelper("SPRUM");
tstHelper("SPRUS");
tstHelper("SPU");
tstHelper("SPU'");
tstHelper("SPU'AM");
tstHelper("SPUD");
tstHelper("SPUG");
tstHelper("SPU'I");
tstHelper("SPUN");
tstHelper("SPUNG");
tstHelper("SPUNGS");
tstHelper("SPUR");
tstHelper("SPUS");
tstHelper("SPYA");
tstHelper("SPYAD");
tstHelper("SPYAGS");
tstHelper("SPYAN");
tstHelper("SPYANG");
tstHelper("SPYANGS");
tstHelper("SPYAR");
tstHelper("SPYED");
tstHelper("SPYES");
tstHelper("SPYI");
tstHelper("SPYIG");
tstHelper("SPYI'I");
tstHelper("SPYIL");
tstHelper("SPYIN");
tstHelper("SPYIR");
tstHelper("SPYI'U");
tstHelper("SPYO");
tstHelper("SPYOD");
tstHelper("SPYOMS");
tstHelper("SPYON");
tstHelper("SPYONG");
tstHelper("SPYO'O");
tstHelper("SPYOR");
tstHelper("SPYOS");
tstHelper("SPYUG");
tstHelper("SPYUGS");
tstHelper("SRA");
tstHelper("SRAB");
tstHelper("SRABS");
tstHelper("SRAD");
tstHelper("SRAM");
tstHelper("SRAN");
tstHelper("SRANG");
tstHelper("SRAR");
tstHelper("SRAS");
tstHelper("SRE");
tstHelper("SRED");
tstHelper("SREG");
tstHelper("SREGS");
tstHelper("SREL");
tstHelper("SREN");
tstHelper("SRENG");
tstHelper("SRE'O");
tstHelper("SRGYA");
tstHelper("SRI");
tstHelper("SRID");
tstHelper("SRIL");
tstHelper("SRIN");
tstHelper("SRING");
tstHelper("SRINGS");
tstHelper("SRO");
tstHelper("SROD");
tstHelper("SROG");
tstHelper("SROGS");
tstHelper("SROL");
tstHelper("SRONG");
tstHelper("SRONGS");
tstHelper("SROS");
tstHelper("SRU");
tstHelper("SRUB");
tstHelper("SRUBS");
tstHelper("SRUD");
tstHelper("SRUG");
tstHelper("SRU'I");
tstHelper("SRUL");
tstHelper("SRUN");
tstHelper("SRUNG");
tstHelper("SRUNGS");
tstHelper("SSAM");
tstHelper("SSGRA");
tstHelper("SSKYES");
tstHelper("STA");
tstHelper("ST'A");
tstHelper("STABS");
tstHelper("STAG");
tstHelper("STAL");
tstHelper("STAM");
tstHelper("STAN");
tstHelper("STANG");
tstHelper("STANGS");
tstHelper("STAR");
tstHelper("STE");
tstHelper("STED");
tstHelper("STEG");
tstHelper("STEGS");
tstHelper("STEN");
tstHelper("STENG");
tstHelper("STENGS");
tstHelper("STE'O");
tstHelper("STER");
tstHelper("STES");
tstHelper("STE'U");
tstHelper("STE'UR");
tstHelper("STHA");
tstHelper("STH'U");
tstHelper("STI");
tstHelper("STIGS");
tstHelper("STI'I");
tstHelper("STIL");
tstHelper("STING");
tstHelper("STIR");
tstHelper("STIS");
tstHelper("STO");
tstHelper("STOB");
tstHelper("STOBS");
tstHelper("STOD");
tstHelper("STOGS");
tstHelper("STON");
tstHelper("STONG");
tstHelper("STONGS");
tstHelper("STOR");
tstHelper("STOS");
tstHelper("STRIN");
tstHelper("STU");
tstHelper("STUG");
tstHelper("STUN");
tstHelper("STUNG");
tstHelper("STXAL");
tstHelper("STZA");
tstHelper("STZAL");
tstHelper("STZAM");
tstHelper("STZANG");
tstHelper("STZOGS");
tstHelper("STZOL");
tstHelper("STZUR");
tstHelper("STZUS");
tstHelper("SU");
tstHelper("S'U");
tstHelper("SU'AM");
tstHelper("SU'ANG");
tstHelper("SU-BH'A");
tstHelper("SUBS");
tstHelper("SUD");
tstHelper("SUG");
tstHelper("SU'I");
tstHelper("SUL");
tstHelper("SUM");
tstHelper("SUN");
tstHelper("SUNG");
tstHelper("SUNGS");
tstHelper("SU'O");
tstHelper("SUR");
tstHelper("S'UR");
tstHelper("SURENDRA");
tstHelper("SUS");
tstHelper("SVA");
tstHelper("SV'A");
tstHelper("SVA'AHA");
tstHelper("SV'AH'A");
tstHelper("SVAHA'A");
tstHelper("SWA");
tstHelper("SW'A-H'A");
tstHelper("SYA");
tstHelper("SY'A");
tstHelper("tA");
tstHelper("t'A");
tstHelper("TA");
tstHelper("T'A");
tstHelper("TA'");
tstHelper("TAB");
tstHelper("TADYA");
tstHelper("TA-DYA");
tstHelper("TAG");
tstHelper("tA'I");
tstHelper("TA'I");
tstHelper("T'AKshA");
tstHelper("TAL");
tstHelper("TAm");
tstHelper("T'Am");
tstHelper("TAM");
tstHelper("TAMS");
tstHelper("TAN");
tstHelper("TANG");
tstHelper("TA-PAL");
tstHelper("TAR");
tstHelper("TAS");
tstHelper("tE");
tstHelper("TE");
tstHelper("TE'");
tstHelper("TE'AM");
tstHelper("TE'DAS");
tstHelper("TEG");
tstHelper("TEN");
tstHelper("TENG");
tstHelper("TENGS");
tstHelper("TE'O");
tstHelper("TES");
tstHelper("TE'U");
tstHelper("TE'U'AM");
tstHelper("TE'U'I");
tstHelper("thA");
tstHelper("THA");
tstHelper("'THA'");
tstHelper("TH'A");
tstHelper("THA'");
tstHelper("THAB");
tstHelper("'THAB");
tstHelper("THABS");
tstHelper("'THABS");
tstHelper("THAD");
tstHelper("'THAD");
tstHelper("THAG");
tstHelper("'THAG");
tstHelper("THAGS");
tstHelper("THA'I");
tstHelper("THAL");
tstHelper("THAM");
tstHelper("'THAM");
tstHelper("THAMD");
tstHelper("THAMS");
tstHelper("'THAMS");
tstHelper("THAN");
tstHelper("THANG");
tstHelper("THAR");
tstHelper("'THAR");
tstHelper("THAS");
tstHelper("'THAS");
tstHelper("THASM");
tstHelper("THE");
tstHelper("THEB");
tstHelper("'THEB");
tstHelper("THEBS");
tstHelper("THEG");
tstHelper("THEGS");
tstHelper("THEM");
tstHelper("THEN");
tstHelper("'THEN");
tstHelper("THENG");
tstHelper("'THENG");
tstHelper("THER");
tstHelper("THE'U");
tstHelper("THI");
tstHelper("THIB");
tstHelper("THIBS");
tstHelper("THIG");
tstHelper("THIGS");
tstHelper("THIL");
tstHelper("'THIL");
tstHelper("THILA'I");
tstHelper("THIM");
tstHelper("THING");
tstHelper("'THING");
tstHelper("THIS");
tstHelper("THO");
tstHelper("THOB");
tstHelper("'THOB");
tstHelper("THOBS");
tstHelper("THOD");
tstHelper("THOG");
tstHelper("'THOG");
tstHelper("THOGS");
tstHelper("'THOM");
tstHelper("THON");
tstHelper("'THON");
tstHelper("THONG");
tstHelper("'THONG");
tstHelper("THONGS");
tstHelper("THOR");
tstHelper("'THOR");
tstHelper("THOS");
tstHelper("THRIG");
tstHelper("thU");
tstHelper("THU");
tstHelper("THUB");
tstHelper("'THUB");
tstHelper("THUBS");
tstHelper("THUD");
tstHelper("'THUD");
tstHelper("THUG");
tstHelper("THUGS");
tstHelper("'THUGS");
tstHelper("THU'I");
tstHelper("THUL");
tstHelper("'THUL");
tstHelper("THUM");
tstHelper("THUN");
tstHelper("'THUN");
tstHelper("THUNG");
tstHelper("'THUNG");
tstHelper("THUNGS");
tstHelper("'THUNGS");
tstHelper("THU'O");
tstHelper("THUR");
tstHelper("tI");
tstHelper("t'I");
tstHelper("TI");
tstHelper("T'I");
tstHelper("TIG");
tstHelper("TI'I");
tstHelper("t'IK");
tstHelper("TIL");
tstHelper("TIN");
tstHelper("TIN-DU");
tstHelper("tING");
tstHelper("TING");
tstHelper("TING-GA");
tstHelper("TIR");
tstHelper("TI'U");
tstHelper("TO");
tstHelper("TOBS");
tstHelper("TOG");
tstHelper("TOGS");
tstHelper("TO'I");
tstHelper("TOL");
tstHelper("TON");
tstHelper("TONG");
tstHelper("TONZAD");
tstHelper("TOR");
tstHelper("TPA");
tstHelper("TP'A");
tstHelper("TP'U");
tstHelper("TRA");
tstHelper("TRAD");
tstHelper("TRANG");
tstHelper("TRAS");
tstHelper("TRE");
tstHelper("TREE");
tstHelper("TRE'I");
tstHelper("TRES");
tstHelper("TRI");
tstHelper("TRON");
tstHelper("TRYA");
tstHelper("TSA");
tstHelper("'TSA'");
tstHelper("TS'A");
tstHelper("TSA'");
tstHelper("TSA'AM");
tstHelper("TSAB");
tstHelper("TSABS");
tstHelper("TSAD");
tstHelper("'TSAD");
tstHelper("'TSAG");
tstHelper("TSAGS");
tstHelper("TSA'I");
tstHelper("TSAL");
tstHelper("'TSAL");
tstHelper("TSAM");
tstHelper("'TSAM");
tstHelper("TSAMS");
tstHelper("'TSAMS");
tstHelper("TSAN");
tstHelper("TSANG");
tstHelper("'TSANG");
tstHelper("TSANGS");
tstHelper("'TSANGS");
tstHelper("TSA'O");
tstHelper("TSAR");
tstHelper("'TSAR");
tstHelper("TSAS");
tstHelper("TSE");
tstHelper("'TSE");
tstHelper("TSE'AM");
tstHelper("TSE'ANG");
tstHelper("TSED");
tstHelper("'TSED");
tstHelper("TSEG");
tstHelper("'TSEG");
tstHelper("TSEGS");
tstHelper("'TSE'I");
tstHelper("TSE'I");
tstHelper("TSEL");
tstHelper("TSEM");
tstHelper("'TSEM");
tstHelper("TSEMS");
tstHelper("TSEN");
tstHelper("TSE'O");
tstHelper("TSER");
tstHelper("'TSER");
tstHelper("TSES");
tstHelper("TSI");
tstHelper("'TSI");
tstHelper("TSIBS");
tstHelper("TSID");
tstHelper("TSIG");
tstHelper("'TSIG");
tstHelper("TSIGS");
tstHelper("TSIL");
tstHelper("TSIM");
tstHelper("TSIN");
tstHelper("TSING");
tstHelper("TSIR");
tstHelper("'TSIR");
tstHelper("TSIS");
tstHelper("TSO");
tstHelper("'TSO");
tstHelper("'TSO'AM");
tstHelper("'TSOB");
tstHelper("TSOBS");
tstHelper("TSOD");
tstHelper("'TSOD");
tstHelper("TSOG");
tstHelper("'TSOG");
tstHelper("TSOGS");
tstHelper("'TSOGS");
tstHelper("'TSO'I");
tstHelper("TSO'I");
tstHelper("TSOL");
tstHelper("'TSOL");
tstHelper("TSOM");
tstHelper("'TSOM");
tstHelper("TSOMS");
tstHelper("TSON");
tstHelper("TSONG");
tstHelper("'TSONG");
tstHelper("TSONGS");
tstHelper("'TSO'O");
tstHelper("TSOR");
tstHelper("'TSOR");
tstHelper("TSOS");
tstHelper("'TSOS");
tstHelper("TSRA");
tstHelper("TSU");
tstHelper("TSUB");
tstHelper("TSUD");
tstHelper("TSUGS");
tstHelper("TSUL");
tstHelper("TSUN");
tstHelper("TSUNG");
tstHelper("TSUNGS");
tstHelper("TSUR");
tstHelper("TSUS");
tstHelper("TSUUL");
tstHelper("TSVA");
tstHelper("TSVA'I");
tstHelper("TSVA'O");
tstHelper("TSVAR");
tstHelper("TSVAS");
tstHelper("TSWA");
tstHelper("TSWA'I");
tstHelper("TTA");
tstHelper("ttE");
tstHelper("TTHA");
tstHelper("tu");
tstHelper("tU");
tstHelper("TU");
tstHelper("TU'ANG");
tstHelper("TUD");
tstHelper("TUGS");
tstHelper("TUM");
tstHelper("TUN");
tstHelper("TUNG");
tstHelper("TU'O");
tstHelper("TUR");
tstHelper("TV'A");
tstHelper("TVAm");
tstHelper("TWA");
tstHelper("TYA");
tstHelper("TY'A");
tstHelper("TYA'");
tstHelper("TY'A'I");
tstHelper("TYA-''I");
tstHelper("TYA'I");
tstHelper("TYAm");
tstHelper("TYA-NTA");
tstHelper("tYO");
tstHelper("TZA");
tstHelper("TZ'A");
tstHelper("TZAB");
tstHelper("TZAG");
tstHelper("TZ'A'I");
tstHelper("TZA'I");
tstHelper("'TZAL");
tstHelper("TZAm");
tstHelper("TZAM");
tstHelper("TZAMP");
tstHelper("TZAMPA");
tstHelper("TZAM-PA");
tstHelper("TZAMS");
tstHelper("TZAN");
tstHelper("TZA-ndA");
tstHelper("TZANDA");
tstHelper("TZANDAN");
tstHelper("TZAN-DAN");
tstHelper("TZANDRA");
tstHelper("TZANDRA'I");
tstHelper("TZANDRAS");
tstHelper("TZANG");
tstHelper("TZANGN");
tstHelper("TZANGS");
tstHelper("TZ'AR");
tstHelper("TZARYA");
tstHelper("TZ'ARYA");
tstHelper("TZAS");
tstHelper("TZ'AS");
tstHelper("TZATSA");
tstHelper("TZE");
tstHelper("TZEG");
tstHelper("TZE'I");
tstHelper("TZER");
tstHelper("TZES");
tstHelper("TZE-TATE");
tstHelper("TZI");
tstHelper("TZI'I");
tstHelper("TZIN");
tstHelper("TZI-ttI");
tstHelper("TZO");
tstHelper("TZO'AM");
tstHelper("TZOD");
tstHelper("TZOG");
tstHelper("TZO'I");
tstHelper("TZOL");
tstHelper("TZOM");
tstHelper("TZONG");
tstHelper("TZOR");
tstHelper("TZTSA");
tstHelper("TZTS'A");
tstHelper("TZTSE");
tstHelper("TZTSED");
tstHelper("TZU");
tstHelper("TZUG");
tstHelper("TZUGS");
tstHelper("TZUN");
tstHelper("TZVA");
tstHelper("TZYU");
tstHelper("'U");
tstHelper("'UG");
tstHelper("'U'I");
tstHelper("'UR");
tstHelper("WA");
tstHelper("W'A");
tstHelper("WA'");
tstHelper("WA'AM");
tstHelper("WA'I");
tstHelper("WAm");
tstHelper("WAM");
tstHelper("WANDRA");
tstHelper("WANG");
tstHelper("WAR");
tstHelper("WARMA");
tstHelper("WARM'A");
tstHelper("WARMMA");
tstHelper("WAS");
tstHelper("WEN");
tstHelper("WENDRA");
tstHelper("WER");
tstHelper("xNYA");
tstHelper("YA");
tstHelper("Y'A");
tstHelper("YAB");
tstHelper("YABOD");
tstHelper("YAD");
tstHelper("YAG");
tstHelper("Y'A'I");
tstHelper("YA'I");
tstHelper("YAL");
tstHelper("YAm");
tstHelper("YAM");
tstHelper("YAMS");
tstHelper("YAN");
tstHelper("YANG");
tstHelper("YANGH");
tstHelper("YANGS");
tstHelper("YAR");
tstHelper("Y'AR");
tstHelper("YAS");
tstHelper("YASTH'A");
tstHelper("YE");
tstHelper("YED");
tstHelper("YEGS");
tstHelper("YENGS");
tstHelper("YER");
tstHelper("YI");
tstHelper("YIB");
tstHelper("YID");
tstHelper("YIG");
tstHelper("YIN");
tstHelper("YIND");
tstHelper("YING");
tstHelper("YINGS");
tstHelper("YI'O");
tstHelper("YIR");
tstHelper("YIS");
tstHelper("YISS");
tstHelper("YO");
tstHelper("YO'AM");
tstHelper("YOD");
tstHelper("YOG");
tstHelper("YOGS");
tstHelper("YOL");
tstHelper("YON");
tstHelper("YONG");
tstHelper("YONGS");
tstHelper("YONG-SU");
tstHelper("YOR");
tstHelper("YOS");
tstHelper("YU");
tstHelper("YUB");
tstHelper("YUD");
tstHelper("YUG");
tstHelper("YUGS");
tstHelper("YUKTI");
tstHelper("YUL");
tstHelper("YUM");
tstHelper("YUN");
tstHelper("YUNG");
tstHelper("YUNGS");
tstHelper("YUR");
tstHelper("YU'U");
tstHelper("YUYE");
tstHelper("ZA");
tstHelper("ZA'AM");
tstHelper("ZA'ANG");
tstHelper("ZAB");
tstHelper("ZABS");
tstHelper("ZAD");
tstHelper("ZAG");
tstHelper("ZAGS");
tstHelper("ZA'I");
tstHelper("ZAL");
tstHelper("ZAM");
tstHelper("ZAN");
tstHelper("ZANG");
tstHelper("ZANGS");
tstHelper("ZA'O");
tstHelper("ZAR");
tstHelper("ZAS");
tstHelper("ZE");
tstHelper("ZE'AM");
tstHelper("ZED");
tstHelper("ZEGS");
tstHelper("ZE'I");
tstHelper("ZEL");
tstHelper("ZEN");
tstHelper("ZE'O");
tstHelper("ZER");
tstHelper("ZES");
tstHelper("ZE'U");
tstHelper("ZHA");
tstHelper("ZHABS");
tstHelper("ZHAG");
tstHelper("ZHAGS");
tstHelper("ZHA'I");
tstHelper("ZHAL");
tstHelper("ZHAM");
tstHelper("ZHAN");
tstHelper("ZHANG");
tstHelper("ZHAR");
tstHelper("ZHAS");
tstHelper("ZHE");
tstHelper("ZHE'AM");
tstHelper("ZHED");
tstHelper("ZHEG");
tstHelper("ZHE'I");
tstHelper("ZHEN");
tstHelper("ZHENG");
tstHelper("ZHE'O");
tstHelper("ZHER");
tstHelper("ZHES");
tstHelper("ZHI");
tstHelper("ZHIB");
tstHelper("ZHIG");
tstHelper("ZHIGN");
tstHelper("ZHIGS");
tstHelper("ZHI'I");
tstHelper("ZHIL");
tstHelper("ZHIM");
tstHelper("ZHIN");
tstHelper("'ZHIN");
tstHelper("ZHING");
tstHelper("ZHINGS");
tstHelper("ZHI'O");
tstHelper("ZHIR");
tstHelper("ZHIS");
tstHelper("ZHO");
tstHelper("ZHO'AM");
tstHelper("ZHOG");
tstHelper("ZHOGS");
tstHelper("ZHO'I");
tstHelper("ZHOL");
tstHelper("ZHOM");
tstHelper("ZHON");
tstHelper("ZHOR");
tstHelper("ZHOS");
tstHelper("ZHU");
tstHelper("ZHU'AM");
tstHelper("ZHUG");
tstHelper("ZHUGS");
tstHelper("ZHUM");
tstHelper("ZHUN");
tstHelper("ZHU'O");
tstHelper("ZHUR");
tstHelper("ZHUS");
tstHelper("ZHVA");
tstHelper("ZHVA'I");
tstHelper("ZHWA");
tstHelper("ZI");
tstHelper("ZID");
tstHelper("ZIL");
tstHelper("ZIM");
tstHelper("ZIN");
tstHelper("ZING");
tstHelper("ZLA");
tstHelper("ZLA'ANG");
tstHelper("ZLAB");
tstHelper("ZLA'I");
tstHelper("ZLAR");
tstHelper("ZLAS");
tstHelper("ZLI");
tstHelper("ZLO");
tstHelper("ZLOG");
tstHelper("ZLOGS");
tstHelper("ZLOS");
tstHelper("ZLUM");
tstHelper("ZO");
tstHelper("ZOD");
tstHelper("ZO'I");
tstHelper("ZOL");
tstHelper("ZOM");
tstHelper("ZONG");
tstHelper("ZOR");
tstHelper("ZOS");
tstHelper("ZU");
tstHelper("ZUD");
tstHelper("ZUG");
tstHelper("ZUGS");
tstHelper("ZUL");
tstHelper("ZUM");
tstHelper("ZUMS");
tstHelper("ZUN");
tstHelper("ZUNG");
tstHelper("'ZUNG");
tstHelper("ZUNGS");
tstHelper("ZUR");
}
private static void shelp(String s, String expectedErrors) {
shelp(s, expectedErrors, null);
}
private static void shelp(String s, String expectedErrors, String expectedScan) {
StringBuffer errors = new StringBuffer();
ArrayList al = ACIPTshegBarScanner.scan(s, errors, -1);
if (null != expectedScan) {
if (!al.toString().equals(expectedScan)) {
System.out.println("Scanning " + s + " into tsheg bars was expected to cause the following scan:");
System.out.println(expectedScan);
System.out.println("Instead, it caused the following scan:");
System.out.println(al);
assertTrue(false);
}
}
if (null != expectedErrors) {
if (!expectedErrors.equals(errors.toString())) {
System.out.println("Scanning " + s + " into tsheg bars was expected to cause the following errors:");
System.out.print(expectedErrors);
System.out.println("Instead, it caused the following errors:");
System.out.print(errors);
assertTrue(false);
}
}
}
/** Tests {@link ACIPTshegBarScanner#scan(String, StringBuffer, int)}. */
public void testScanner() {
shelp("Pm KA", "", "[TIBETAN_NON_PUNCTUATION:{Pm}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{KA}]");
shelp("KA (KHA\nGA)", "", "[TIBETAN_NON_PUNCTUATION:{KA}, TIBETAN_PUNCTUATION:{ }, START_PAREN:{(}, TIBETAN_NON_PUNCTUATION:{KHA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{GA}, END_PAREN:{)}]");
shelp("LA...SGRUB",
"",
"[TIBETAN_NON_PUNCTUATION:{LA}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_NON_PUNCTUATION:{SGRUB}]");
shelp("PAS... LA",
"",
"[TIBETAN_NON_PUNCTUATION:{PAS}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, WARNING:{A non-breaking tsheg, '.', appeared, but not like \"...,\" or \".,\" or \".dA\" or \".DA\".}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{LA}]");
shelp("^GONG SA,",
"",
"[TIBETAN_PUNCTUATION:{^}, TIBETAN_NON_PUNCTUATION:{GONG}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{SA}, TIBETAN_PUNCTUATION:{,}]");
shelp("^ GONG SA,",
"",
"[TIBETAN_PUNCTUATION:{^}, TIBETAN_NON_PUNCTUATION:{GONG}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{SA}, TIBETAN_PUNCTUATION:{,}]");
shelp("^\nGONG SA,",
"",
"[TIBETAN_PUNCTUATION:{^}, TIBETAN_NON_PUNCTUATION:{GONG}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{SA}, TIBETAN_PUNCTUATION:{,}]");
shelp("^\rGONG SA,",
"",
"[TIBETAN_PUNCTUATION:{^}, TIBETAN_NON_PUNCTUATION:{GONG}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{SA}, TIBETAN_PUNCTUATION:{,}]");
shelp("^\r\nGONG SA,",
"",
"[TIBETAN_PUNCTUATION:{^}, TIBETAN_NON_PUNCTUATION:{GONG}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{SA}, TIBETAN_PUNCTUATION:{,}]");
// FIXME: what should this be? We treat {^ GONG SA} like
// {^GONG SA}, but {^ GONG SA} isn't so obvious. We give an
// error.
shelp("^ GONG SA,",
"",
"[ERROR:{The ACIP {^} must precede a tsheg bar.}, TIBETAN_PUNCTUATION:{ }, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{GONG}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{SA}, TIBETAN_PUNCTUATION:{,}]");
shelp("^\n\nGONG SA,",
"",
"[ERROR:{The ACIP {^} must precede a tsheg bar.}, TIBETAN_PUNCTUATION:{\n}, TIBETAN_PUNCTUATION:{\n}, TIBETAN_NON_PUNCTUATION:{GONG}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{SA}, TIBETAN_PUNCTUATION:{,}]");
shelp("", "", "[]");
shelp("[DD]", "");
shelp("[",
"Offset 0: Found an illegal open bracket (in context, this is [). Perhaps there is a [#COMMENT] written incorrectly as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], or an unmatched open bracket?\nOffset END: Truly unmatched open bracket found.\n");
shelp("{",
"Offset 0: Found an illegal open bracket (in context, this is {). Perhaps there is a [#COMMENT] written incorrectly as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], or an unmatched open bracket?\nOffset END: Truly unmatched open bracket found.\n");
shelp("DD", "");
shelp("DD]",
"Offset 2: Found a truly unmatched close bracket, ']'.\nOffset 2: Found a closing bracket without a matching open bracket. Perhaps a [#COMMENT] incorrectly written as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], caused this.\n");
shelp("///NYA", "Offset 1: Found //, which could be legal (the Unicode would be \\u0F3C\\u0F3D), but is likely in an illegal construct like //NYA\\\\.\nOffset END: Slashes are supposed to occur in pairs, but the input had an unmatched '/' character.\n");
shelp("/NYA/", "");
shelp("[?][BP][LS][DD1][DD2][DDD][DR][# (<{A COMMENT)}>]", "");
shelp("[LS][# A [[[[[COMMENT][LS]",
"Offset 9: Found an open bracket within a [#COMMENT]-style comment. Brackets may not appear in comments.\n"
+ "Offset 10: Found an open bracket within a [#COMMENT]-style comment. Brackets may not appear in comments.\n"
+ "Offset 11: Found an open bracket within a [#COMMENT]-style comment. Brackets may not appear in comments.\n"
+ "Offset 12: Found an open bracket within a [#COMMENT]-style comment. Brackets may not appear in comments.\n"
+ "Offset 13: Found an open bracket within a [#COMMENT]-style comment. Brackets may not appear in comments.\n");
shelp("[ILLEGAL COMMENT]",
"Offset 0: Found an illegal open bracket (in context, this is [ILLEGAL C...). Perhaps there is a [#COMMENT] written incorrectly as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], or an unmatched open bracket?\nOffset 16: Found a closing bracket without a matching open bracket. Perhaps a [#COMMENT] incorrectly written as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], caused this.\n");
shelp("(BSKYABS GRO)", "");
shelp("BSKYABS GRO)", "Offset 11: Unexpected closing parenthesis, ), found.\n");
shelp("BSKYABS GRO(", "Offset END: Unmatched open parenthesis, (, found.\n");
shelp("((NESTAGE))", "Offset 1: Found an illegal open parenthesis, (. Nesting of parentheses is not allowed.\nOffset 10: Unexpected closing parenthesis, ), found.\n");
shelp("(BA)(PA)NYA(CA)", "");
shelp("NYAx", "");
shelp("NYA x", "");
shelp("[# A PARTIAL COM", "Offset END: Unmatched open bracket found. A comment does not terminate.\n");
shelp("[* BSKYABS ", "Offset END: Unmatched open bracket found. A correction does not terminate.\n");
shelp("SKYABS [*BSKYABS?] GRO [?]", "");
shelp(" SKYABS GRO ", "");
shelp("SKYABS [*BSKYABS] GRO [?]", "", "[TIBETAN_NON_PUNCTUATION:{SKYABS}, TIBETAN_PUNCTUATION:{ }, CORRECTION_START:{[*}, TIBETAN_NON_PUNCTUATION:{BSKYABS}, PROBABLE_CORRECTION:{]}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{GRO}, TIBETAN_PUNCTUATION:{ }, QUESTION:{[?]}]");
shelp("[*RVA]", "", "[CORRECTION_START:{[*}, TIBETAN_NON_PUNCTUATION:{RVA}, PROBABLE_CORRECTION:{]}]");
shelp("[*RVA?]", "", "[CORRECTION_START:{[*}, TIBETAN_NON_PUNCTUATION:{RVA}, POSSIBLE_CORRECTION:{?]}]");
shelp("[* RVA ]", "", "[CORRECTION_START:{[*}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{RVA}, TIBETAN_PUNCTUATION:{ }, PROBABLE_CORRECTION:{]}]");
shelp("[*RVA ?]", "", "[CORRECTION_START:{[*}, TIBETAN_NON_PUNCTUATION:{RVA}, TIBETAN_PUNCTUATION:{ }, POSSIBLE_CORRECTION:{?]}]");
shelp("[*RVA? ]",
"Offset 5: The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.\n",
"[CORRECTION_START:{[*}, TIBETAN_NON_PUNCTUATION:{RVA}, ERROR:{The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.}, TIBETAN_PUNCTUATION:{ }, PROBABLE_CORRECTION:{]}]");
shelp("[*LINE BREAK]", "", "[CORRECTION_START:{[*}, LATIN:{LINE BREAK}, PROBABLE_CORRECTION:{]}]");
shelp("[*LINE BREAK?]", "", "[CORRECTION_START:{[*}, LATIN:{LINE BREAK}, POSSIBLE_CORRECTION:{?]}]");
shelp("[*\n\t\r LINEYO ?]", "", "[CORRECTION_START:{[*}, LATIN:{\n\t\r LINEYO }, POSSIBLE_CORRECTION:{?]}]");
shelp("[*\n\t\r LINEYO ]", "", "[CORRECTION_START:{[*}, LATIN:{\n\t\r LINEYO }, PROBABLE_CORRECTION:{]}]");
shelp("[*DATA INCOMPLETE HERE?]", "", "[CORRECTION_START:{[*}, LATIN:{DATA INCOMPLETE HERE}, POSSIBLE_CORRECTION:{?]}]");
shelp("[*THIS\r\nWAS SUPPOSED TO BE THE SIXTH CATEGORY; THE CATEGORIES MENTIONED\r\nABOVE SEEM TO BE OUT OF ORDER THROUGH THIS SECTION]\r\n", "");
shelp("x o % : m", "");
shelp("AAx AAo AA% AA: AAm", "");
shelp("/NYA ", "Offset END: Slashes are supposed to occur in pairs, but the input had an unmatched '/' character.\n");
shelp("(NYA ", "Offset END: Unmatched open parenthesis, (, found.\n");
shelp("[*NYA ", "Offset END: Unmatched open bracket found. A correction does not terminate.\n");
shelp("[?]", "", "[QUESTION:{[?]}]");
shelp("?",
"Offset 0: The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.\n",
"[ERROR:{The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.}]");
shelp("KHAN~ BAR ", "Offset 4: Found an illegal character, ~, with ordinal 126.\n");
shelp("[* Correction with []]",
"Offset 5: Found an illegal character, r, with ordinal 114.\nOffset 6: Found an illegal character, r, with ordinal 114.\nOffset 7: Found an illegal character, e, with ordinal 101.\nOffset 8: Found an illegal character, c, with ordinal 99.\nOffset 14: Found an illegal character, w, with ordinal 119.\nOffset 19: Found an illegal open bracket (in context, this is []]). Perhaps there is a [#COMMENT] written incorrectly as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], or an unmatched open bracket?\nOffset 21: Found a closing bracket without a matching open bracket. Perhaps a [#COMMENT] incorrectly written as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], caused this.\n");
shelp(",NGES ? PA",
"Offset 6: The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.\n",
"[TIBETAN_PUNCTUATION:{,}, TIBETAN_NON_PUNCTUATION:{NGES}, TIBETAN_PUNCTUATION:{ }, ERROR:{The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{PA}]");
// FIXME: just until we treat viramas correctly:
if (false) {
uhelp("1\\", "\u0f21\u0f84");
uhelp(" 1\\ ", "\u0f0b\u0f21\u0f84\u0f0b");
}
shelp("K\\,",
"Offset 1: Found a backslash, \\, which the ACIP Tibetan Input Code standard says represents a Sanskrit virama. In practice, though, this is so often misused (to represent U+0F3D) that {\\} always generates this error. If you want a Sanskrit virama, change the input document to use {\\u0F84} instead of {\\}. If you want U+0F3D, use {/NYA/} or {/NYA\\u0F3D}.\n",
"[TIBETAN_NON_PUNCTUATION:{K}, ERROR:{Found a backslash, \\, which the ACIP Tibetan Input Code standard says represents a Sanskrit virama. In practice, though, this is so often misused (to represent U+0F3D) that {\\} always generates this error. If you want a Sanskrit virama, change the input document to use {\\u0F84} instead of {\\}. If you want U+0F3D, use {/NYA/} or {/NYA\\u0F3D}.}, TIBETAN_PUNCTUATION:{,}]");
shelp("MTHAR%", "", "[TIBETAN_NON_PUNCTUATION:{MTHAR}, TSHEG_BAR_ADORNMENT:{%}, WARNING:{The ACIP {%} is treated by this converter as U+0F35, but sometimes might represent U+0F14 in practice. To avoid seeing this warning again, change the input to use {\\u0F35} instead of {%}.}]");
shelp("MTHARo", "", "[TIBETAN_NON_PUNCTUATION:{MTHAR}, TSHEG_BAR_ADORNMENT:{o}]");
shelp("MTHARx", "", "[TIBETAN_NON_PUNCTUATION:{MTHAR}, TSHEG_BAR_ADORNMENT:{x}]");
shelp("MTHAR\n%", "", "[TIBETAN_NON_PUNCTUATION:{MTHAR}, TIBETAN_PUNCTUATION:{ }, ERROR:{The ACIP % must be glued to the end of a tsheg bar, but this one was not}, WARNING:{The ACIP {%} is treated by this converter as U+0F35, but sometimes might represent U+0F14 in practice. To avoid seeing this warning again, change the input to use {\\u0F35} instead of {%}.}]");
shelp("MTHAR x", "", "[TIBETAN_NON_PUNCTUATION:{MTHAR}, TIBETAN_PUNCTUATION:{ }, ERROR:{The ACIP x must be glued to the end of a tsheg bar, but this one was not}]");
shelp("PHYIR;", "", "[TIBETAN_NON_PUNCTUATION:{PHYIR}, TIBETAN_PUNCTUATION:{;}]");
shelp("......,DAM ",
"",
"[TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{,}, TIBETAN_NON_PUNCTUATION:{DAM}, TIBETAN_PUNCTUATION:{ }]");
shelp("NGO.,", "", "[TIBETAN_NON_PUNCTUATION:{NGO}, TIBETAN_PUNCTUATION:{.}, TIBETAN_PUNCTUATION:{,}]");
// Test that we handle some known comments that occur in
// illegal syntax:
shelp("[text missing]", "", "[COMMENT:{[#text missing]}]");
{
// In {G'EEm: ,MDO}, is the space a tsheg? We say no
// right now. In the other, {G'EEm ,MDO}, it's not a
// tsheg because you don't need a tsheg after GA. But in
// the first, do you need a tsheg after {:}? (FIXME)
shelp("G'EEm: ,MDO",
"",
"[TIBETAN_NON_PUNCTUATION:{G'EEm:}, TIBETAN_PUNCTUATION:{ }, TIBETAN_PUNCTUATION:{,}, TIBETAN_NON_PUNCTUATION:{MDO}]");
shelp("G'EEm ,MDO",
"",
"[TIBETAN_NON_PUNCTUATION:{G'EEm}, TIBETAN_PUNCTUATION:{ }, TIBETAN_PUNCTUATION:{,}, TIBETAN_NON_PUNCTUATION:{MDO}]");
}
shelp("KA KHA\n\nGA NGA \nTA THA\n\nDA NA\n",
"",
"[TIBETAN_NON_PUNCTUATION:{KA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{KHA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_PUNCTUATION:{\n}, TIBETAN_PUNCTUATION:{\n}, TIBETAN_NON_PUNCTUATION:{GA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{NGA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{TA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{THA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_PUNCTUATION:{\n}, TIBETAN_PUNCTUATION:{\n}, TIBETAN_NON_PUNCTUATION:{DA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{NA}, TIBETAN_PUNCTUATION:{ }]");
shelp("[FIRST][SECOND][MISSING PAGE][MISSING FOLIO]", "");
shelp("[THE INITIAL PART OF THIS TEXT WAS INPUT BY THE SERA MEY LIBRARY IN\nTIBETAN FONT AND NEEDS TO BE REDONE BY DOUBLE INPUT]\r\n\r\n", "", "[COMMENT:{[#THE INITIAL PART OF THIS TEXT WAS INPUT BY THE SERA MEY LIBRARY IN\nTIBETAN FONT AND NEEDS TO BE REDONE BY DOUBLE INPUT]}, TIBETAN_PUNCTUATION:{\r\n}, TIBETAN_PUNCTUATION:{\r\n}]");
shelp("[THE INITIAL PART OF THIS TEXT WAS INPUT BY THE SERA MEY LIBRARY IN\r\nTIBETAN FONT AND NEEDS TO BE REDONE BY DOUBLE INPUT]\r\n\r\n", "", "[COMMENT:{[#THE INITIAL PART OF THIS TEXT WAS INPUT BY THE SERA MEY LIBRARY IN\r\nTIBETAN FONT AND NEEDS TO BE REDONE BY DOUBLE INPUT]}, TIBETAN_PUNCTUATION:{\r\n}, TIBETAN_PUNCTUATION:{\r\n}]");
// Test folio markers:
shelp("@01A.3 ", "", "[FOLIO_MARKER:{@01A.3}, TIBETAN_PUNCTUATION:{ }]");
shelp("@001 ", "", "[FOLIO_MARKER:{@001}, TIBETAN_PUNCTUATION:{ }]");
shelp("@19-20A",
"Offset 0: Found an illegal at sign, @ (in context, this is @19-20A). @012B is an example of a legal folio marker.\n",
"[ERROR:{Found an illegal at sign, @ (in context, this is @19-20A). @012B is an example of a legal folio marker.}, TIBETAN_NON_PUNCTUATION:{19-20A}]"); // FIXME: yes it occurs in the kangyur.
shelp("@[7B]", "");
shelp("@012A.3KA",
"",
"[FOLIO_MARKER:{@012A.3}, TIBETAN_NON_PUNCTUATION:{KA}]");
shelp("@012A.34",
"Offset 0: Found an illegal at sign, @ (in context, this is @012A.34). This folio marker has a period, '.', at the end of it, which is illegal.\n",
"[ERROR:{Found an illegal at sign, @ (in context, this is @012A.34). This folio marker has a period, '.', at the end of it, which is illegal.}, TIBETAN_NON_PUNCTUATION:{34}]");
shelp("@[07B]", "");
shelp("@[00007B]", "");
shelp("@7B", "");
shelp("@07B", "");
shelp("@00007B", "", "[FOLIO_MARKER:{@00007B}]");
shelp("@00007 ", "", "[FOLIO_MARKER:{@00007}, TIBETAN_PUNCTUATION:{ }]");
shelp("@B00007KA", "", "[FOLIO_MARKER:{@B00007}, TIBETAN_NON_PUNCTUATION:{KA}]");
shelp("@[00007A]KA", "", "[FOLIO_MARKER:{@[00007A]}, TIBETAN_NON_PUNCTUATION:{KA}]");
shelp("GA-YENG", "", "[TIBETAN_NON_PUNCTUATION:{GA-YENG}]");
shelp("N+YA", "", "[TIBETAN_NON_PUNCTUATION:{N+YA}]");
shelp("{ DD }", "", "[DD:{{ DD }}]"); // TD3790E2.ACT
shelp("{ BP }", "", "[BP:{{ BP }}]"); // TD3790E2.ACT
// LOW-PRIORITY FIXME: support nested comments.
shelp("[# This is a [# nested comment] don't you know?]KA KHA GA NGA",
"Offset 13: Found an open bracket within a [#COMMENT]-style comment. Brackets may not appear in comments.\nOffset 38: Found an illegal character, y, with ordinal 121.\nOffset 40: Found an illegal character, u, with ordinal 117.\nOffset 42: Found an illegal character, k, with ordinal 107.\nOffset 45: Found an illegal character, w, with ordinal 119.\nOffset 46: The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.\nOffset 47: Found a truly unmatched close bracket, ']'.\nOffset 47: Found a closing bracket without a matching open bracket. Perhaps a [#COMMENT] incorrectly written as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], caused this.\n",
"[ERROR:{Found an open bracket within a [#COMMENT]-style comment. Brackets may not appear in comments.}, COMMENT:{[# This is a [# nested comment]}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{d}, TSHEG_BAR_ADORNMENT:{o}, TIBETAN_NON_PUNCTUATION:{n't}, TIBETAN_PUNCTUATION:{ }, ERROR:{Found an illegal character, y, with ordinal 121.}, ERROR:{The ACIP o must be glued to the end of a tsheg bar, but this one was not}, ERROR:{Found an illegal character, u, with ordinal 117.}, TIBETAN_PUNCTUATION:{ }, ERROR:{Found an illegal character, k, with ordinal 107.}, TIBETAN_NON_PUNCTUATION:{n}, TSHEG_BAR_ADORNMENT:{o}, ERROR:{Found an illegal character, w, with ordinal 119.}, ERROR:{The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.}, ERROR:{Found a truly unmatched close bracket, ']'.}, ERROR:{Found a closing bracket without a matching open bracket. Perhaps a [#COMMENT] incorrectly written as [COMMENT], or a [*CORRECTION] written incorrectly as [CORRECTION], caused this.}, TIBETAN_NON_PUNCTUATION:{KA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{KHA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{GA}, TIBETAN_PUNCTUATION:{ }, TIBETAN_NON_PUNCTUATION:{NGA}]");
shelp("//NYA\\\\",
"Offset 1: Found //, which could be legal (the Unicode would be \\u0F3C\\u0F3D), but is likely in an illegal construct like //NYA\\\\.\nOffset 5: Found a backslash, \\, which the ACIP Tibetan Input Code standard says represents a Sanskrit virama. In practice, though, this is so often misused (to represent U+0F3D) that {\\} always generates this error. If you want a Sanskrit virama, change the input document to use {\\u0F84} instead of {\\}. If you want U+0F3D, use {/NYA/} or {/NYA\\u0F3D}.\nOffset 6: Found a backslash, \\, which the ACIP Tibetan Input Code standard says represents a Sanskrit virama. In practice, though, this is so often misused (to represent U+0F3D) that {\\} always generates this error. If you want a Sanskrit virama, change the input document to use {\\u0F84} instead of {\\}. If you want U+0F3D, use {/NYA/} or {/NYA\\u0F3D}.\n",
"[START_SLASH:{/}, ERROR:{Found //, which could be legal (the Unicode would be \\u0F3C\\u0F3D), but is likely in an illegal construct like //NYA\\\\.}, END_SLASH:{/}, TIBETAN_NON_PUNCTUATION:{NYA}, ERROR:{Found a backslash, \\, which the ACIP Tibetan Input Code standard says represents a Sanskrit virama. In practice, though, this is so often misused (to represent U+0F3D) that {\\} always generates this error. If you want a Sanskrit virama, change the input document to use {\\u0F84} instead of {\\}. If you want U+0F3D, use {/NYA/} or {/NYA\\u0F3D}.}, ERROR:{Found a backslash, \\, which the ACIP Tibetan Input Code standard says represents a Sanskrit virama. In practice, though, this is so often misused (to represent U+0F3D) that {\\} always generates this error. If you want a Sanskrit virama, change the input document to use {\\u0F84} instead of {\\}. If you want U+0F3D, use {/NYA/} or {/NYA\\u0F3D}.}]");
}
private static void uhelp(String acip) {
uhelp(acip, null);
}
private static void uhelp(String acip, String expectedUnicode) {
uhelp(acip, expectedUnicode, "Most");
}
private static void uhelp(String acip, String expectedUnicode, String warningLevel) {
StringBuffer errors = new StringBuffer();
String unicode = ACIPConverter.convertToUnicodeText(acip, errors, null, true, warningLevel);
if (null == unicode) {
if (null != expectedUnicode && "none" != expectedUnicode) {
System.out.println("No unicode exists for " + acip + " but you expected " + org.thdl.tib.text.tshegbar.UnicodeUtils.unicodeStringToPrettyString(expectedUnicode));
assertTrue(false);
}
System.out.println("Unicode for " + acip + " can't be had; errors are " + errors);
} else {
if (null != expectedUnicode && !expectedUnicode.equals(unicode)) {
System.out.println("The unicode for\n '" + acip + "'\nis\n '" + org.thdl.tib.text.tshegbar.UnicodeUtils.unicodeStringToPrettyString(unicode) + "',\nbut you expected\n '" + org.thdl.tib.text.tshegbar.UnicodeUtils.unicodeStringToPrettyString(expectedUnicode) + "'");
assertTrue(false);
}
}
}
public void testNearlyAmbiguousBecauseOfPrefixRules() {
/* From R0021F.ACE: ambiguous Tibetan/Sanskrit:
BDA'
B+DA
DBANG
D+BA
DGA'
D+GA
DGRA
D+GRA
DGYES
D+GYA
DMAR
D+MA
GDA'
G+DA
GNAD
G+NA
MNA'
M+NA
*/
uhelp("B+NA", "\u0f56\u0fa3");
uhelp("BNA", "[#WARNING CONVERTING ACIP DOCUMENT: Warning: We're going with {B+NA}, but only because our knowledge of prefix rules says that {B}{NA} is not a legal Tibetan tsheg bar (\"syllable\")]\u0f56\u0fa3");
uhelp("^GONG SA", "\u0f38\u0f42\u0f7c\u0f44\u0f0b\u0f66");
uhelp("^ GONG SA", "\u0f38\u0f42\u0f7c\u0f44\u0f0b\u0f66");
uhelp("^\rGONG SA", "\u0f38\u0f42\u0f7c\u0f44\u0f0b\u0f66");
uhelp("^\r\nGONG SA", "\u0f38\u0f42\u0f7c\u0f44\u0f0b\u0f66");
uhelp("^\nGONG SA", "\u0f38\u0f42\u0f7c\u0f44\u0f0b\u0f66");
uhelp("^ GONG SA", "[#ERROR CONVERTING ACIP DOCUMENT: Lexical error: The ACIP {^} must precede a tsheg bar.] \u0f42\u0f7c\u0f44\u0f0b\u0f66");
uhelp("BGLA", "\u0f56\u0f42\u0fb3");
uhelp("BLCAG", "\u0f56\u0f63\u0f95\u0f42");
uhelp("DBA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP DBA has been interpreted as two stacks, not one, but you may wish to confirm that the original text had two stacks as it would be an easy mistake to make to see one stack and forget to input it with '+' characters.]\u0f51\u0f56");
uhelp("DMAR", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP DMAR has been interpreted as two stacks, not one, but you may wish to confirm that the original text had two stacks as it would be an easy mistake to make to see one stack and forget to input it with '+' characters.]\u0f51\u0f58\u0f62");
uhelp("D+BA", "\u0f51\u0fa6");
uhelp("MNA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP MNA has been interpreted as two stacks, not one, but you may wish to confirm that the original text had two stacks as it would be an easy mistake to make to see one stack and forget to input it with '+' characters.]\u0f58\u0f53");
uhelp("DGRA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP DGRA has been interpreted as two stacks, not one, but you may wish to confirm that the original text had two stacks as it would be an easy mistake to make to see one stack and forget to input it with '+' characters.]\u0f51\u0f42\u0fb2");
uhelp("D+GRA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a stack of three or more consonants in D+GRA that uses at least one '+' but does not use a '+' between each consonant.]\u0f51\u0f92\u0fb2");
uhelp("DGYA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP DGYA has been interpreted as two stacks, not one, but you may wish to confirm that the original text had two stacks as it would be an easy mistake to make to see one stack and forget to input it with '+' characters.]\u0f51\u0f42\u0fb1");
}
public void testACIPConversion() {
uhelp("KO&HAm,", "\u0F40\u0F7C\u0F85\u0F67\u0F7E\u0F0D");
uhelp("x", "[#ERROR CONVERTING ACIP DOCUMENT: Lexical error: The ACIP x must be glued to the end of a tsheg bar, but this one was not]");
uhelp("o", "[#ERROR CONVERTING ACIP DOCUMENT: Lexical error: The ACIP o must be glued to the end of a tsheg bar, but this one was not]");
uhelp("%", "[#ERROR CONVERTING ACIP DOCUMENT: Lexical error: The ACIP % must be glued to the end of a tsheg bar, but this one was not][#WARNING CONVERTING ACIP DOCUMENT: Lexical warning: The ACIP {%} is treated by this converter as U+0F35, but sometimes might represent U+0F14 in practice. To avoid seeing this warning again, change the input to use {\\u0F35} instead of {%}.]");
uhelp(":", "[#ERROR CONVERTING ACIP DOCUMENT: The tsheg bar (\"syllable\") : has these errors: Cannot convert ACIP A: because A: is a \"vowel\" without an associated consonant]");
uhelp("m", "[#ERROR CONVERTING ACIP DOCUMENT: The tsheg bar (\"syllable\") m has these errors: Cannot convert ACIP Am because Am is a \"vowel\" without an associated consonant]");
uhelp("N+YA", "\u0f53\u0fb1");
uhelp("NA+YA", "\u0f53\u0fb1"); // FIXME: warn about the extra A
uhelp("NE+YA", "[#ERROR CONVERTING ACIP DOCUMENT: The tsheg bar (\"syllable\") NE+YA has these errors: Cannot convert ACIP NE+-YA because + is not an ACIP consonant]");
uhelp("tRAStA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {t+RA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f4a\u0fb2\u0f66\u0f9a");
uhelp("DZHDZHA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP DZHDZHA was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.]\u0f5b\u0fb7\u0fab\u0fb7"); // tricky because DZHDZA is not in TMW but DZHDZHA is
uhelp("DZHDZA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP DZHDZA was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.][#WARNING CONVERTING ACIP DOCUMENT: The ACIP {DZH+DZA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f5b\u0fb7\u0fab");
uhelp("P+S+N+YA", "\u0f54\u0fb6\u0fa3\u0fb1");
uhelp("P+S+NYA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {P+S+NYA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f54\u0fb6\u0f99");
uhelp("PSNYA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP PSNYA was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.][#WARNING CONVERTING ACIP DOCUMENT: The ACIP {P+S+NYA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f54\u0fb6\u0f99"); // Is this P+S+N+YA? No, it's P+S+NYA. But warn!
uhelp("NNYA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP NNYA was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.][#WARNING CONVERTING ACIP DOCUMENT: The ACIP {N+NYA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f53\u0f99");
uhelp("GHNYA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP GHNYA was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.]\u0f42\u0fb7\u0f99");
// TS+NYA and T+S+N+YA are both legal, so what is TSNYA?
// Private correspondence with Robert Chilton says that it is
// TS+NYA, but he warns that such are suspect.
uhelp("THAG PA", "\u0f50\u0f42\u0f0b\u0f54");
uhelp("KA \nKHA\n\nGA", "\u0f40\u0f0b\u0f41\u0f0b\n\n\u0f42");
uhelp("KA%\nKHA", "\u0f40\u0f35[#WARNING CONVERTING ACIP DOCUMENT: Lexical warning: The ACIP {%} is treated by this converter as U+0F35, but sometimes might represent U+0F14 in practice. To avoid seeing this warning again, change the input to use {\\u0F35} instead of {%}.]\u0f0b\u0f41");
uhelp("KA%", "\u0f40\u0f35[#WARNING CONVERTING ACIP DOCUMENT: Lexical warning: The ACIP {%} is treated by this converter as U+0F35, but sometimes might represent U+0F14 in practice. To avoid seeing this warning again, change the input to use {\\u0F35} instead of {%}.]");
uhelp("KAo", "\u0f40\u0f37");
uhelp("KAo\n\nKA", "\u0f40\u0f37\u0f0b\n\n\u0f40");
uhelp("KAo\nKHA", "\u0f40\u0f37\u0f0b\u0f41");
uhelp("KAo KHA", "\u0f40\u0f37\u0f0b\u0f41");
uhelp("KA KAo KHA", "\u0f40\u0f0b\u0f40\u0f37\u0f0b\u0f41");
uhelp("KAx", "\u0f40[#ERROR CONVERTING ACIP DOCUMENT: This converter cannot convert the ACIP {x} to Tibetan because it is unclear what the result should be.]");
uhelp("G+DHA", "\u0f42\u0fa1\u0fb7");
uhelp("P'EE", "\u0f54\u0f71\u0f7b");
uhelp("BA ? HA", "\u0f56\u0f0b[#ERROR CONVERTING ACIP DOCUMENT: Lexical error: The ACIP {?}, found alone, may intend U+0F08, but it may intend a question mark, i.e. '?', in the output. It may even mean that the original text could not be deciphered with certainty, like the ACIP {[?]} does.] \u0f67");
uhelp("KA", "\u0f40");
uhelp("\\u0F35", "\u0F35");
uhelp("\\uF035", "[#ERROR CONVERTING ACIP DOCUMENT: The Unicode escape '\uf035' with ordinal 61493 is in the private-use area (PUA) of Unicode and will thus not be written out into the output lest you think other tools will be able to understand this non-standard construction.]");
uhelp("KI", "\u0f40\u0f72");
uhelp("KO", "\u0f40\u0f7c");
uhelp("KE", "\u0f40\u0f7a");
uhelp("KU", "\u0f40\u0f74");
uhelp("KOO", "\u0f40\u0f7d");
uhelp("KEE", "\u0f40\u0f7b");
uhelp("KEEm", "\u0f40\u0f7b\u0f7e");
uhelp("KEEm:", "\u0f40\u0f7b\u0f7e\u0f7f");
uhelp("KEE:", "\u0f40\u0f7b\u0f7f");
uhelp("K'I", "\u0f40\u0f71\u0f72");
uhelp("K'O", "\u0f40\u0f71\u0f7c");
uhelp("K'E", "\u0f40\u0f71\u0f7a");
uhelp("K'U", "\u0f40\u0f71\u0f74");
uhelp("K'OO", "\u0f40\u0f71\u0f7d");
uhelp("K'EE", "\u0f40\u0f71\u0f7b");
uhelp("K'EEm", "\u0f40\u0f71\u0f7b\u0f7e");
tstHelper("K'EEm:", "{K'EEm:}",
new String[] { "{K'EEm:}" },
new String[] { },
"{K'EEm:}");
uhelp("K'EEm:", "\u0f40\u0f71\u0f7b\u0f7e\u0f7f");
uhelp("K'EE:", "\u0f40\u0f71\u0f7b\u0f7f");
uhelp("K'A:", "\u0f40\u0f71\u0f7f");
uhelp("RYA", "\u0f6a\u0fbb");
uhelp("R+YA", "\u0f6a\u0fbb");
uhelp("RVA", "\u0f62\u0fad");
uhelp("R+VA", "\u0f62\u0fad");
uhelp("RWA", "\u0f6a\u0fba");
uhelp("R+WA", "\u0f6a\u0fba");
uhelp("RSHA", "\u0f6a\u0fb4", "None");
uhelp("R+SHA", "\u0f6a\u0fb4", "None");
uhelp("RSHYA", "\u0f6a\u0fb4\u0fb1", "None");
uhelp("R+SH+YA", "\u0f6a\u0fb4\u0fb1", "None");
uhelp("Rsh", "\u0f6a\u0fb5", "None");
uhelp("R+sh", "\u0f6a\u0fb5", "None");
uhelp("Rshn", "\u0f6a\u0fb5\u0f9e", "None");
uhelp("R+sh+n", "\u0f6a\u0fb5\u0f9e", "None");
uhelp("RshnY", "\u0f6a\u0fb5\u0f9e\u0fb1", "None");
uhelp("R+sh+n+Y", "\u0f6a\u0fb5\u0f9e\u0fb1", "None");
uhelp("R+shn+Y", "\u0f6a\u0fb5\u0f9e\u0fb1", "None");
uhelp("RshMA", "\u0f6a\u0fb5\u0fa8", "None");
uhelp("R+sh+M", "\u0f6a\u0fb5\u0fa8", "None");
uhelp("RshYA", "\u0f6a\u0fb5\u0fb1", "None");
uhelp("R+sh+Y", "\u0f6a\u0fb5\u0fb1", "None");
uhelp("RS", "\u0f6a\u0fb6", "None");
uhelp("R+S", "\u0f6a\u0fb6", "None");
uhelp("WWA", "\u0f5d\u0fba");
uhelp("W+WA", "\u0f5d\u0fba");
tstHelper("Km:", "{KAm:}",
new String[] { "{KAm:}" },
new String[] { },
"{KAm:}");
uhelp("Km:", "\u0f40\u0f7e\u0f7f");
uhelp("KAm:", "\u0f40\u0f7e\u0f7f");
uhelp("Km", "\u0f40\u0f7e");
uhelp("KAm", "\u0f40\u0f7e");
uhelp("K:", "\u0f40\u0f7f");
uhelp("KA:", "\u0f40\u0f7f");
uhelp("*", "\u0f04\u0f05");
uhelp("#", "\u0f04\u0f05\u0f05");
uhelp("/NY'EE/", "\u0f3C\u0f49\u0F71\u0F7B\u0f3D");
uhelp("*#HUm: G+DHOO GRO`;.,",
"\u0f04\u0f05\u0f04\u0f05\u0f05\u0f67\u0f74\u0f7e\u0f7f\u0f0b\u0f42\u0fa1\u0fb7\u0f7d\u0f0b\u0f42\u0fb2\u0f7c\u0f08\u0f11\u0f0c\u0f0d");
uhelp("*#HUm: K+DHA GRO`;.,",
"\u0f04\u0f05\u0f04\u0f05\u0f05\u0f67\u0f74\u0f7e\u0f7f\u0f0b[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {K+DHA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f40\u0fa1\u0fb7\u0f0b\u0f42\u0fb2\u0f7c\u0f08\u0f11\u0f0c\u0f0d");
uhelp("HA,\nHA\n\nHA", "\u0f67\u0f0d \u0f67\u0f0b\n\n\u0f67");
uhelp("NGA,", "\u0f44\u0f0c\u0f0d");
uhelp("NGA,\nHA\n\nHA", "\u0f44\u0f0c\u0f0d \u0f67\u0f0b\n\n\u0f67");
uhelp("MDO,\n\nKA\n\nHA", "\u0f58\u0f51\u0f7c\u0f0d\n\n\u0f40\u0f0b\n\n\u0f67");
uhelp("GA ,HA", "\u0f42 \u0f0d\u0f67");
uhelp("GA ,HA", "\u0f42 \u0f0d\u0f67");
uhelp("GU ,HA", "\u0f42\u0f74\u0f0b\u0f0d\u0f67");
uhelp("MA ,HA", "\u0f58\u0f0b\u0f0d\u0f67");
uhelp("GA HA", "\u0f42\u0f0b\u0f67");
uhelp("GU, ,KHO", "\u0f42\u0f74\u0f0d \u0f0d\u0f41\u0f7c");
uhelp("GU ,KHO", "\u0f42\u0f74\u0f0b \u0f0d\u0f41\u0f7c"); // FIXME: missing a shad after GU, warn about that.
uhelp("GA HA", "\u0f42\u0f0b \u0f67");
uhelp("BCWA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {B+C+WA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f56\u0f95\u0fba");
uhelp("'KYO", "[#WARNING CONVERTING ACIP DOCUMENT: Warning: We're going with {'+K+YO}, but only because our knowledge of prefix rules says that {'}{K+YO} is not a legal Tibetan tsheg bar (\"syllable\")][#WARNING CONVERTING ACIP DOCUMENT: The ACIP {'+K+YO} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f60\u0f90\u0fb1\u0f7c");
uhelp("WA", "\u0f5d");
uhelp("W", "\u0f5d");
uhelp("WO", "\u0f5d\u0f7c");
uhelp("WWA", "\u0f5d\u0fba");
uhelp("W+WA", "\u0f5d\u0fba");
uhelp("WNA", "\u0f5d\u0fa3");
uhelp("WN", "\u0f5d\u0fa3");
uhelp("W+NA", "\u0f5d\u0fa3");
uhelp("W+N", "\u0f5d\u0fa3");
uhelp("W+YA", "\u0f5d\u0fb1");
uhelp("W+Y", "\u0f5d\u0fb1");
uhelp("WYA", "\u0f5d\u0fb1");
uhelp("WY", "\u0f5d\u0fb1");
uhelp("WR", "\u0f5d\u0fb2");
uhelp("WRA", "\u0f5d\u0fb2");
uhelp("W+RA", "\u0f5d\u0fb2");
uhelp("W+R", "\u0f5d\u0fb2");
uhelp("BCWA", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {B+C+WA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f56\u0f95\u0fba");
uhelp("BCW", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {B+C+W} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f56\u0f95\u0fba");
uhelp("BCWO", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {B+C+WO} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f56\u0f95\u0fba\u0f7c");
uhelp("BCVA", "\u0f56\u0f45\u0fad");
uhelp("BCV", "\u0f56\u0f45\u0fad");
uhelp("BCV'O", "\u0f56\u0f45\u0fad\u0f71\u0f7c");
uhelp("BCV'A", "\u0f56\u0f45\u0fad\u0f71");
uhelp("BCV'", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP {B+C+V+'} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f56\u0f95\u0fad\u0fb0");
uhelp("GYA", "\u0f42\u0fb1");
uhelp("GY", "\u0f42\u0fb1");
uhelp("G-YA", "\u0f42\u0f61");
uhelp("GA-YA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a useless disambiguator in GA-YA.]\u0f42\u0f61");
uhelp("GA-YO", "[#WARNING CONVERTING ACIP DOCUMENT: There is a useless disambiguator in GA-YO.]\u0f42\u0f61\u0F7c");
uhelp("RTZVA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP RTZVA was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.]\u0f62\u0fa9\u0fad");
uhelp("RTZWA", "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP RTZWA was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.][#WARNING CONVERTING ACIP DOCUMENT: The ACIP {R+TZ+WA} cannot be represented with the TibetanMachine or TibetanMachineWeb fonts because no such glyph exists in these fonts.]\u0f62\u0fa9\u0fba");
}
public void testFixedFormSubjoinedConsonants() {
// Usual subjoined RA:
uhelp("n+d+R", "\u0f4e\u0f9c\u0fb2");
// Full-form subjoined RA:
uhelp("K+sh+R", "\u0f40\u0fb5\u0fbc");
uhelp("n+d+R+Y",
// ... with usual subjoined YA:
"\u0f4e\u0f9c\u0fbc\u0fb1");
// Full-form subjoined YA:
uhelp("n+d+Y", "\u0f4e\u0f9c\u0fbb");
uhelp("Y+Y", "\u0f61\u0fbb");
uhelp("R+Y", "\u0f6a\u0fbb");
uhelp("RVA R+VEE RWA R+WEE YYA Y+YEE ndRYA n+d+R+YEE KshR K+sh+REE ndY n+d+YEE,",
"\u0f62\u0fad\u0f0b" // RVA
+ "\u0f62\u0fad\u0f7b\u0f0b" //R+VEE
+ "\u0f6a\u0fba\u0f0b" // RWA
+ "\u0f6a\u0fba\u0f7b\u0f0b" // R+WEE
+ "\u0f61\u0fbb\u0f0b" // YYA
+ "\u0f61\u0fbb\u0f7b\u0f0b" // Y+YEE
+ "\u0f4e\u0f9c\u0fbc\u0fb1\u0f0b" // ndRYA
+ "\u0f4e\u0f9c\u0fbc\u0fb1\u0f7b\u0f0b" // n+d+R+YEE
+ "[#WARNING CONVERTING ACIP DOCUMENT: There is a chance that the ACIP KshR was intended to represent more consonants than we parsed it as representing -- NNYA, e.g., means N+NYA, but you can imagine seeing N+N+YA and typing NNYA for it too.]\u0f40\u0fb5\u0fbc\u0f0b" // KshR
+ "\u0f40\u0fb5\u0fbc\u0f7b\u0f0b" // K+sh+REE
+ "\u0f4e\u0f9c\u0fbb\u0f0b" // ndY
+ "\u0f4e\u0f9c\u0fbb\u0f7b\u0f0d" // n+d+YEE
); // DLC FIXME: test the TMW for these, too, it was broken once.
}
/** Tests some more tsheg bars, these from Dr. Lacey's critical
edition of Mahavyutpatti.
<p>These are courtesy Peter E. Hauer, Linguasoft. Taken from
ACIP's website, but that copy was overridden by one with
corrections sent to Peter by Robert Chilton. */
public void testMV() {
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("From MV:");
System.out.println("");
System.out.println("");
System.out.println("");
tstHelper("'BANGS");
tstHelper("'BAR");
tstHelper("'BLTAS");
tstHelper("'BRA");
tstHelper("'BRA'I");
tstHelper("'BRANG");
tstHelper("'BRAS");
tstHelper("'BRED");
tstHelper("'BREG");
tstHelper("'BREL");
tstHelper("'BRIM");
tstHelper("'BRU'I");
tstHelper("'BUL");
tstHelper("'BUS");
tstHelper("'BYAMS");
tstHelper("'BYED");
tstHelper("'BYES");
tstHelper("'BYIN");
tstHelper("'BYOD");
tstHelper("'BYOR");
tstHelper("'BYUNG");
tstHelper("'CHED");
tstHelper("'CHI");
tstHelper("'CHING");
tstHelper("'CHONGS");
tstHelper("'CHOS");
tstHelper("'DAB");
tstHelper("'DAGS");
tstHelper("'DAS");
tstHelper("'DEBS");
tstHelper("'DI");
tstHelper("'DOD");
tstHelper("'DOM");
tstHelper("'DOMS");
tstHelper("'DON");
tstHelper("'DOR");
tstHelper("'DRA");
tstHelper("'DRAD");
tstHelper("'DRAMS");
tstHelper("'DRANG");
tstHelper("'DRED");
tstHelper("'DREL");
tstHelper("'DRI");
tstHelper("'DRIM");
tstHelper("'DROS");
tstHelper("'DRUB");
tstHelper("'DRUBS");
tstHelper("'DU");
tstHelper("'DUD");
tstHelper("'DUG");
tstHelper("'DUGS");
tstHelper("'DZAM");
tstHelper("'DZE");
tstHelper("'DZEM");
tstHelper("'DZES");
tstHelper("'DZIN");
tstHelper("'DZUM");
tstHelper("'DZUMS");
tstHelper("'GAG");
tstHelper("'GED");
tstHelper("'GI");
tstHelper("'GOG");
tstHelper("'GRAMS");
tstHelper("'GRES");
tstHelper("'GRIM");
tstHelper("'GRIMS");
tstHelper("'GRO");
tstHelper("'GRO'O");
tstHelper("'GRON");
tstHelper("'GRUS");
tstHelper("'GU");
tstHelper("'GYED");
tstHelper("'GYEGS");
tstHelper("'GYOD");
tstHelper("'GYUG");
tstHelper("'GYUR");
tstHelper("'JAL");
tstHelper("'JAM");
tstHelper("'JAS");
tstHelper("'JIG");
tstHelper("'JIGS");
tstHelper("'JOMS");
tstHelper("'JUG");
tstHelper("'KHAS");
tstHelper("'KHOG");
tstHelper("'KHOGS");
tstHelper("'KHOR");
tstHelper("'KHRAMS");
tstHelper("'KHRANG");
tstHelper("'KHRAS");
tstHelper("'KHREN");
tstHelper("'KHRUG");
tstHelper("'KHRUMS");
tstHelper("'KHUMS");
tstHelper("'KHYAN");
tstHelper("'KHYIL");
tstHelper("'KOD");
tstHelper("'KRAM");
tstHelper("'KRIGS");
tstHelper("'LREG");
tstHelper("'MTHUN");
tstHelper("'MTSAMS");
tstHelper("'OD");
tstHelper("'OG");
tstHelper("'ONGS");
tstHelper("'PHAGS");
tstHelper("'PHEN");
tstHelper("'PHO");
tstHelper("'PHOG");
tstHelper("'PHOGS");
tstHelper("'PHONGS");
tstHelper("'PHRED");
tstHelper("'PHREN");
tstHelper("'PHROG");
tstHelper("'PHROGS");
tstHelper("'PHRUL");
tstHelper("'PHYAM");
tstHelper("'PHYES");
tstHelper("'PHYIS");
tstHelper("'PRUL");
tstHelper("'SPONG");
tstHelper("'THAB");
tstHelper("'THABS");
tstHelper("'THAL");
tstHelper("'THAM");
tstHelper("'THAMS");
tstHelper("'THANG");
tstHelper("'THANGS");
tstHelper("'THAR");
tstHelper("'THO");
tstHelper("'THOB");
tstHelper("'THOG");
tstHelper("'THOP");
tstHelper("'THUL");
tstHelper("'THUN");
tstHelper("'THUNG");
tstHelper("'TSAM");
tstHelper("'TSAMS");
tstHelper("'TSE");
tstHelper("'TSEB");
tstHelper("'TSED");
tstHelper("'TSO");
tstHelper("'TSO'O");
tstHelper("'TSOL");
tstHelper("'TSOR");
tstHelper("'TSOS");
tstHelper("'TUN");
tstHelper("'TUNG");
tstHelper("'UR");
tstHelper("1");
tstHelper("A'M");
tstHelper("AA");
tstHelper("AAE");
tstHelper("AAI");
tstHelper("AAMRA'I");
tstHelper("AAR");
tstHelper("AASMA");
tstHelper("AE");
tstHelper("AIN");
tstHelper("AINDA");
tstHelper("AIndRANYILA");
tstHelper("AOOL");
tstHelper("AOOS");
tstHelper("AOm");
tstHelper("AU");
tstHelper("AUDPA");
tstHelper("AUDPALA");
tstHelper("AUDPALA'I");
tstHelper("AUT");
tstHelper("AUTPALA'I");
tstHelper("B'I");
tstHelper("BA");
tstHelper("BA'");
tstHelper("BA'A");
tstHelper("BA'AR");
tstHelper("BA'I");
tstHelper("BA'O");
tstHelper("BA'THUNG");
tstHelper("BAA'");
tstHelper("BAG");
tstHelper("BAI");
tstHelper("BAL");
tstHelper("BAM");
tstHelper("BAN");
tstHelper("BANDU");
tstHelper("BANG");
tstHelper("BAR");
tstHelper("BAR'");
tstHelper("BAS");
tstHelper("BAT");
tstHelper("BCA'");
tstHelper("BCAD");
tstHelper("BCAGS");
tstHelper("BCAS");
tstHelper("BCDU");
tstHelper("BCHA");
tstHelper("BCHU");
tstHelper("BCO");
tstHelper("BCOR");
tstHelper("BCU");
tstHelper("BCUD");
tstHelper("BCUG");
tstHelper("BCUGS");
tstHelper("BCUR");
tstHelper("BCUS");
tstHelper("BDA");
tstHelper("BDAG");
tstHelper("BDAR");
tstHelper("BDE");
tstHelper("BDEG");
tstHelper("BDUD");
tstHelper("BDUN");
tstHelper("BE'I");
tstHelper("BE'U");
tstHelper("BEE");
tstHelper("BEEdURYA'I");
tstHelper("BGAG");
tstHelper("BGANG");
tstHelper("BGCUD");
tstHelper("BGE");
tstHelper("BGO");
tstHelper("BGOD");
tstHelper("BGRAD");
tstHelper("BGRANG");
tstHelper("BGREL");
tstHelper("BGRES");
tstHelper("BHA");
tstHelper("BHA'I");
tstHelper("BHI");
tstHelper("BHINTA");
tstHelper("BHINY");
tstHelper("BI");
tstHelper("BIM");
tstHelper("BIMBA");
tstHelper("BIN");
tstHelper("BING");
tstHelper("BIsnU");
tstHelper("BKABS");
tstHelper("BKHI");
tstHelper("BKOD");
tstHelper("BKRAM");
tstHelper("BKRES");
tstHelper("BKRI");
tstHelper("BKRIS");
tstHelper("BKROL");
tstHelper("BKRUGS");
tstHelper("BKYANG");
tstHelper("BLA");
tstHelper("BLAS");
tstHelper("BLO");
tstHelper("BLTAN");
tstHelper("BLUGS");
tstHelper("BNYIS");
tstHelper("BO");
tstHelper("BO'I");
tstHelper("BO'O");
tstHelper("BON");
tstHelper("BONG");
tstHelper("BOR");
tstHelper("BPAG");
tstHelper("BRAG");
tstHelper("BRAL");
tstHelper("BRAM");
tstHelper("BRDEG");
tstHelper("BRDUM");
tstHelper("BRDUNGS");
tstHelper("BRDZES");
tstHelper("BRGOD");
tstHelper("BRGYA");
tstHelper("BRGYA'I");
tstHelper("BRGYAD");
tstHelper("BRGYAL");
tstHelper("BRING");
tstHelper("BRJID");
tstHelper("BRJOD");
tstHelper("BRKU");
tstHelper("BRKUR");
tstHelper("BRLAD");
tstHelper("BRLANG");
tstHelper("BRLANGS");
tstHelper("BRNGAS");
tstHelper("BRNGOD");
tstHelper("BRNGOGS");
tstHelper("BRNGOS");
tstHelper("BRNGUBS");
tstHelper("BRNYAN");
tstHelper("BRONG");
tstHelper("BRTAN");
tstHelper("BRTEG");
tstHelper("BRTEGS");
tstHelper("BRTEN");
tstHelper("BRTON");
tstHelper("BRTUL");
tstHelper("BRTZAGS");
tstHelper("BRTZAN");
tstHelper("BRTZANG");
tstHelper("BRTZEGS");
tstHelper("BRTZENGS");
tstHelper("BRTZER");
tstHelper("BRTZI");
tstHelper("BRTZIBS");
tstHelper("BRTZIS");
tstHelper("BRTZOGS");
tstHelper("BRTZON");
tstHelper("BRUNGS");
tstHelper("BSAGS");
tstHelper("BSAL");
tstHelper("BSANGS");
tstHelper("BSBRUGS");
tstHelper("BSDUNGS");
tstHelper("BSDUS");
tstHelper("BSEG");
tstHelper("BSGRAGS");
tstHelper("BSGRE");
tstHelper("BSGRENG");
tstHelper("BSGRES");
tstHelper("BSGRUB");
tstHelper("BSGRUNGS");
tstHelper("BSGUR");
tstHelper("BSGYINGS");
tstHelper("BSGYUR");
tstHelper("BSHAD");
tstHelper("BSHAMS");
tstHelper("BSHES");
tstHelper("BSHUNG");
tstHelper("BSIG");
tstHelper("BSIL");
tstHelper("BSING");
tstHelper("BSKHYED");
tstHelper("BSKOD");
tstHelper("BSKOR");
tstHelper("BSKOS");
tstHelper("BSKRANGS");
tstHelper("BSKRI");
tstHelper("BSKRIS");
tstHelper("BSKROD");
tstHelper("BSKYANG");
tstHelper("BSKYED");
tstHelper("BSKYENG");
tstHelper("BSKYIMS");
tstHelper("BSKYIS");
tstHelper("BSKYOD");
tstHelper("BSLAS");
tstHelper("BSNAN");
tstHelper("BSNGAGS");
tstHelper("BSNGAL");
tstHelper("BSNUM");
tstHelper("BSNUN");
tstHelper("BSNYAGS");
tstHelper("BSNYUNG");
tstHelper("BSREG");
tstHelper("BSREL");
tstHelper("BSRUBS");
tstHelper("BSRUNG");
tstHelper("BSTAN");
tstHelper("BSTOBS");
tstHelper("BSTOD");
tstHelper("BSTUS");
tstHelper("BSTZIS");
tstHelper("BTA'");
tstHelper("BTAB");
tstHelper("BTAM");
tstHelper("BTANG");
tstHelper("BTER");
tstHelper("BTUB");
tstHelper("BTUL");
tstHelper("BTZAM");
tstHelper("BTZAN");
tstHelper("BTZER");
tstHelper("BTZI");
tstHelper("BTZUB");
tstHelper("BTZUGS");
tstHelper("BTZVA");
tstHelper("BU");
tstHelper("BU'I");
tstHelper("BU'O");
tstHelper("BUR");
tstHelper("BYA");
tstHelper("BYA'A");
tstHelper("BYA'O");
tstHelper("BYAL");
tstHelper("BYAN");
tstHelper("BYANG");
tstHelper("BYAS");
tstHelper("BYE");
tstHelper("BYE'U");
tstHelper("BYED");
tstHelper("BYENG");
tstHelper("BYIN");
tstHelper("BYIS");
tstHelper("BYOD");
tstHelper("BYOL");
tstHelper("BYUGS");
tstHelper("BYUL");
tstHelper("BYUNG");
tstHelper("BZA'");
tstHelper("BZANG");
tstHelper("BZHAG");
tstHelper("BZHI");
tstHelper("BZHIGS");
tstHelper("BZHIN");
tstHelper("BZHING");
tstHelper("BZHUBS");
tstHelper("BZHUGS");
tstHelper("BZLOS");
tstHelper("BZUN");
tstHelper("BZUNG");
tstHelper("CA");
tstHelper("CA'I");
tstHelper("CAD");
tstHelper("CAN");
tstHelper("CANG");
tstHelper("CAn");
tstHelper("CE");
tstHelper("CES");
tstHelper("CHA");
tstHelper("CHAD");
tstHelper("CHAGS");
tstHelper("CHANG");
tstHelper("CHAS");
tstHelper("CHE");
tstHelper("CHE'I");
tstHelper("CHEN");
tstHelper("CHER");
tstHelper("CHO");
tstHelper("CHOMS");
tstHelper("CHOS");
tstHelper("CHU");
tstHelper("CHU'I");
tstHelper("CHUB");
tstHelper("CHUMS");
tstHelper("CHUNG");
tstHelper("CHUNG'U");
tstHelper("CHUNGS");
tstHelper("CIG");
tstHelper("CING");
tstHelper("CO");
tstHelper("CONG");
tstHelper("COR");
tstHelper("COS");
tstHelper("CYA");
tstHelper("D'U");
tstHelper("DA");
tstHelper("DA'I");
tstHelper("DA'URYA");
tstHelper("DAD");
tstHelper("DAG");
tstHelper("DAGS");
tstHelper("DAM");
tstHelper("DAMBA");
tstHelper("DAN");
tstHelper("DANG");
tstHelper("DAR");
tstHelper("DAU");
tstHelper("DBA'");
tstHelper("DBA'I");
tstHelper("DBAG");
tstHelper("DBANG");
tstHelper("DBU'I");
tstHelper("DBUG");
tstHelper("DBUGS");
tstHelper("DBYANGS");
tstHelper("DBYAR");
tstHelper("DBYE");
tstHelper("DBYE'I");
tstHelper("DBYES");
tstHelper("DBYINS");
tstHelper("DBYIR");
tstHelper("DE");
tstHelper("DE'I");
tstHelper("DENG");
tstHelper("DGA");
tstHelper("DGA'");
tstHelper("DGAB");
tstHelper("DGAG");
tstHelper("DGE");
tstHelper("DGRA");
tstHelper("DGRA'I");
tstHelper("DGU'I");
tstHelper("DGYE'O");
tstHelper("DHA");
tstHelper("DHA'");
tstHelper("DHA'I");
tstHelper("DHANU");
tstHelper("DHU");
tstHelper("DI");
tstHelper("DI'I");
tstHelper("DIG");
tstHelper("DJOGS");
tstHelper("DKA'");
tstHelper("DKAR");
tstHelper("DKOD");
tstHelper("DKRI");
tstHelper("DKRUGS");
tstHelper("DKU");
tstHelper("DKUGS");
tstHelper("DKUS");
tstHelper("DKYIL");
tstHelper("DMA");
tstHelper("DMAN");
tstHelper("DMAR");
tstHelper("DMEL");
tstHelper("DMIGS");
tstHelper("DMYIGS");
tstHelper("DNGOS");
tstHelper("DO");
tstHelper("DOG");
tstHelper("DON");
tstHelper("DONG");
tstHelper("DOR");
tstHelper("DPA");
tstHelper("DPA'");
tstHelper("DPAG");
tstHelper("DPAL");
tstHelper("DPAS");
tstHelper("DPE");
tstHelper("DPER");
tstHelper("DPON");
tstHelper("DPRAL");
tstHelper("DPUN");
tstHelper("DPUNG");
tstHelper("DPYA'");
tstHelper("DPYID");
tstHelper("DPYINGS");
tstHelper("DPYOD");
tstHelper("DRA");
tstHelper("DRAG");
tstHelper("DRAN");
tstHelper("DRANG");
tstHelper("DRE'U");
tstHelper("DREGS");
tstHelper("DRI");
tstHelper("DRID");
tstHelper("DRIN");
tstHelper("DRNGUBS");
tstHelper("DROS");
tstHelper("DRUG");
tstHelper("DSPYOD");
tstHelper("DTAR");
tstHelper("DU");
tstHelper("DU'I");
tstHelper("DUG");
tstHelper("DUNG");
tstHelper("DUS");
tstHelper("DVAGS");
tstHelper("DW'A");
tstHelper("DZAM");
tstHelper("DZAMBU");
tstHelper("DZAMBU'I");
tstHelper("DZI");
tstHelper("DZIN");
tstHelper("DZOGS");
tstHelper("G-YAS");
tstHelper("G-YOR");
tstHelper("G-YUM");
tstHelper("G-YUNG");
tstHelper("GA");
tstHelper("GA'A");
tstHelper("GA'I");
tstHelper("GAL");
tstHelper("GAM");
tstHelper("GAMS");
tstHelper("GAN");
tstHelper("GANG");
tstHelper("GAR");
tstHelper("GAS");
tstHelper("GAU");
tstHelper("GAmGA'I");
tstHelper("GAn");
tstHelper("GAndI");
tstHelper("GBA");
tstHelper("GCIG");
tstHelper("GCIN");
tstHelper("GCOL");
tstHelper("GCONG");
tstHelper("GDAGS");
tstHelper("GDEGS");
tstHelper("GDGAS");
tstHelper("GDOL");
tstHelper("GDONGS");
tstHelper("GDUD");
tstHelper("GDUG");
tstHelper("GDUGS");
tstHelper("GDUN");
tstHelper("GE");
tstHelper("GE'I");
tstHelper("GENGS");
tstHelper("GHI");
tstHelper("GHOM");
tstHelper("GI");
tstHelper("GIR");
tstHelper("GIS");
tstHelper("GLA");
tstHelper("GLAB");
tstHelper("GLAL");
tstHelper("GLANG");
tstHelper("GLO");
tstHelper("GLONGS");
tstHelper("GLUGS");
tstHelper("GNA'I");
tstHelper("GNAD");
tstHelper("GNAS");
tstHelper("GNGER");
tstHelper("GNOD");
tstHelper("GNON");
tstHelper("GNYA'");
tstHelper("GNYAR");
tstHelper("GNYE'U");
tstHelper("GNYEN");
tstHelper("GNYER");
tstHelper("GNYI");
tstHelper("GNYIS");
tstHelper("GO");
tstHelper("GO'I");
tstHelper("GONG");
tstHelper("GOOTAMA");
tstHelper("GOS");
tstHelper("GRAG");
tstHelper("GRAGS");
tstHelper("GRANGS");
tstHelper("GRANS");
tstHelper("GREG");
tstHelper("GRO");
tstHelper("GRO'I");
tstHelper("GROG");
tstHelper("GROGS");
tstHelper("GROR");
tstHelper("GRUNGS");
tstHelper("GRUR");
tstHelper("GSAL");
tstHelper("GSANG");
tstHelper("GSAR");
tstHelper("GSDEGS");
tstHelper("GSEB");
tstHelper("GSEG");
tstHelper("GSER");
tstHelper("GSHE");
tstHelper("GSHE'");
tstHelper("GSHEGS");
tstHelper("GSHING");
tstHelper("GSIGS");
tstHelper("GSO");
tstHelper("GSOL");
tstHelper("GSOS");
tstHelper("GSRUNG");
tstHelper("GSUM");
tstHelper("GSUNGS");
tstHelper("GTA'");
tstHelper("GTAGS");
tstHelper("GTAM");
tstHelper("GTAMS");
tstHelper("GTAN");
tstHelper("GTEGS");
tstHelper("GTING");
tstHelper("GTOGS");
tstHelper("GTOL");
tstHelper("GTONG");
tstHelper("GTUBS");
tstHelper("GTUM");
tstHelper("GTZAB");
tstHelper("GTZAD");
tstHelper("GTZANG");
tstHelper("GTZUG");
tstHelper("GTZUGS");
tstHelper("GU");
tstHelper("GU'O");
tstHelper("GYA");
tstHelper("GYAN");
tstHelper("GYAR");
tstHelper("GYAS");
tstHelper("GYES");
tstHelper("GYI");
tstHelper("GYIR");
tstHelper("GYIS");
tstHelper("GYO");
tstHelper("GYOR");
tstHelper("GYUL");
tstHelper("GYUR");
tstHelper("GZANG");
tstHelper("GZAR");
tstHelper("GZENG");
tstHelper("GZENGS");
tstHelper("GZES");
tstHelper("GZHA'I");
tstHelper("GZHAG");
tstHelper("GZHAL");
tstHelper("GZHAN");
tstHelper("GZHANG");
tstHelper("GZHEL");
tstHelper("GZHI");
tstHelper("GZHIG");
tstHelper("GZHON");
tstHelper("GZHUNG");
tstHelper("GZI");
tstHelper("GZIL");
tstHelper("GZUGS");
tstHelper("GZUNG");
tstHelper("GZUNGS");
tstHelper("GZUNGS'I");
tstHelper("GndA'I");
tstHelper("GndAA'I");
tstHelper("H'A");
tstHelper("HA");
tstHelper("HAB");
tstHelper("HAM");
tstHelper("HANG");
tstHelper("HETU");
tstHelper("HETUR");
tstHelper("HU");
tstHelper("HUD");
tstHelper("JA");
tstHelper("JAA'");
tstHelper("JI");
tstHelper("JIGS");
tstHelper("JO");
tstHelper("JO'U");
tstHelper("K'AU");
tstHelper("KA");
tstHelper("KA'A");
tstHelper("KA'ASHI");
tstHelper("KA'ASHI'I");
tstHelper("KA'I");
tstHelper("KA'U");
tstHelper("KAA'");
tstHelper("KAL");
tstHelper("KAM");
tstHelper("KAR");
tstHelper("KARAnA");
tstHelper("KE'U");
tstHelper("KGRAG");
tstHelper("KHA");
tstHelper("KHAMS");
tstHelper("KHANG");
tstHelper("KHANS");
tstHelper("KHE'U");
tstHelper("KHRA");
tstHelper("KHRAM");
tstHelper("KHRI");
tstHelper("KHRIG");
tstHelper("KHRIS");
tstHelper("KHUD");
tstHelper("KHUG");
tstHelper("KHYAB");
tstHelper("KHYAD");
tstHelper("KHYE'U");
tstHelper("KHYE'US");
tstHelper("KHYED");
tstHelper("KHYIM");
tstHelper("KHYOD");
tstHelper("KHYON");
tstHelper("KI");
tstHelper("KKU");
tstHelper("KLU'I");
tstHelper("KLUG");
tstHelper("KO");
tstHelper("KOO");
tstHelper("KOOSHAMBHI");
tstHelper("KOS");
tstHelper("KRIS");
tstHelper("KROL");
tstHelper("KROS");
tstHelper("KTI");
tstHelper("KU");
tstHelper("KULA");
tstHelper("KUM");
tstHelper("KUN");
tstHelper("KUR");
tstHelper("KY");
tstHelper("KYA");
tstHelper("KYA'I");
tstHelper("KYANG");
tstHelper("KYE");
tstHelper("KYI");
tstHelper("KYIS");
tstHelper("KYOD");
tstHelper("KsI");
tstHelper("L'A");
tstHelper("LA");
tstHelper("LA$GCAGS");
tstHelper("LA'A");
tstHelper("LA'I");
tstHelper("LAG");
tstHelper("LAM");
tstHelper("LAN");
tstHelper("LANDA");
tstHelper("LANG");
tstHelper("LANGGA");
tstHelper("LANGS");
tstHelper("LAR");
tstHelper("LAS");
tstHelper("LBA");
tstHelper("LBANG");
tstHelper("LCAG");
tstHelper("LCAGS");
tstHelper("LCAM");
tstHelper("LCAMS");
tstHelper("LCE");
tstHelper("LCE'U");
tstHelper("LDAN");
tstHelper("LDIBS");
tstHelper("LDOB");
tstHelper("LDOG");
tstHelper("LDOGS");
tstHelper("LDONGS");
tstHelper("LE");
tstHelper("LE'I");
tstHelper("LE'U'I");
tstHelper("LE'UR");
tstHelper("LEB");
tstHelper("LED");
tstHelper("LEGS");
tstHelper("LEN");
tstHelper("LENDRA");
tstHelper("LHA");
tstHelper("LHAG");
tstHelper("LHAL");
tstHelper("LHAN");
tstHelper("LHONGS");
tstHelper("LHUN");
tstHelper("LHUNG");
tstHelper("LI");
tstHelper("LI'I");
tstHelper("LIN");
tstHelper("LJAB");
tstHelper("LJANG");
tstHelper("LJIB");
tstHelper("LJIBS");
tstHelper("LKOG");
tstHelper("LNGA");
tstHelper("LNGA'I");
tstHelper("LNGA'I'I");
tstHelper("LNGOG");
tstHelper("LO");
tstHelper("LOBS");
tstHelper("LOGS");
tstHelper("LTA");
tstHelper("LTAR");
tstHelper("LTU");
tstHelper("LTUN");
tstHelper("LTUNG");
tstHelper("LU");
tstHelper("LU'I");
tstHelper("LUGS");
tstHelper("LUM");
tstHelper("LUS");
tstHelper("MA");
tstHelper("MA'A");
tstHelper("MA'I");
tstHelper("MAL");
tstHelper("MAN");
tstHelper("MANDA");
tstHelper("MANG");
tstHelper("MANYDZU");
tstHelper("MAR");
tstHelper("MAS");
tstHelper("MBI");
tstHelper("MCHAN");
tstHelper("MCHED");
tstHelper("MCHING");
tstHelper("MCHOD");
tstHelper("MCHOG");
tstHelper("MCHU");
tstHelper("MCHUR");
tstHelper("MDA'");
tstHelper("MDANGS");
tstHelper("MDAS");
tstHelper("MDO'I");
tstHelper("MDOG");
tstHelper("MDON");
tstHelper("MDUD");
tstHelper("MDUN");
tstHelper("MDZAD");
tstHelper("MDZES");
tstHelper("MDZOS");
tstHelper("ME");
tstHelper("ME'I");
tstHelper("MED");
tstHelper("MGA");
tstHelper("MGO");
tstHelper("MGO'I");
tstHelper("MGOS");
tstHelper("MGRON");
tstHelper("MI");
tstHelper("MI'I");
tstHelper("MID");
tstHelper("MIG");
tstHelper("MING");
tstHelper("MKHA'");
tstHelper("MKHA'I");
tstHelper("MKHAH");
tstHelper("MKHAN");
tstHelper("MKHAS");
tstHelper("MKHEN");
tstHelper("MKHRANG");
tstHelper("MKHREN");
tstHelper("MKHYEN");
tstHelper("MMING");
tstHelper("MNGAGS");
tstHelper("MNGAS");
tstHelper("MNGON");
tstHelper("MNYA'");
tstHelper("MNYAM");
tstHelper("MNYUNG");
tstHelper("MO");
tstHelper("MO'I");
tstHelper("MO'U");
tstHelper("MON");
tstHelper("MONGS");
tstHelper("MONS");
tstHelper("MOS");
tstHelper("MTHA'");
tstHelper("MTHAB");
tstHelper("MTHAN");
tstHelper("MTHANGS");
tstHelper("MTHAR");
tstHelper("MTHO");
tstHelper("MTHONG");
tstHelper("MTHU");
tstHelper("MTHUM");
tstHelper("MTHUN");
tstHelper("MTHUNG");
tstHelper("MTHUS");
tstHelper("MTON");
tstHelper("MTONG");
tstHelper("MTSA");
tstHelper("MTSAMS");
tstHelper("MTSAN");
tstHelper("MTSANS");
tstHelper("MTSO'I");
tstHelper("MTSONG");
tstHelper("MTSOS");
tstHelper("MTSUNG");
tstHelper("MTSUNGS");
tstHelper("MU");
tstHelper("MUG");
tstHelper("MYA");
tstHelper("MYANG");
tstHelper("MYAS");
tstHelper("MYID");
tstHelper("MYOG");
tstHelper("MYONG");
tstHelper("MYOS");
tstHelper("MYUNG");
tstHelper("N'I");
tstHelper("NA");
tstHelper("NA'I");
tstHelper("NAD");
tstHelper("NAG");
tstHelper("NAM");
tstHelper("NANG");
tstHelper("NAS");
tstHelper("NDA");
tstHelper("NE");
tstHelper("NE'U");
tstHelper("NES");
tstHelper("NGA");
tstHelper("NGA'I");
tstHelper("NGAB");
tstHelper("NGAG");
tstHelper("NGAL");
tstHelper("NGAN");
tstHelper("NGE");
tstHelper("NGE'I");
tstHelper("NGES");
tstHelper("NGO");
tstHelper("NGOR");
tstHelper("NGU'I");
tstHelper("NI");
tstHelper("NI'A");
tstHelper("NIG");
tstHelper("NIMITTA");
tstHelper("NIS");
tstHelper("NO");
tstHelper("NOG");
tstHelper("NOGS");
tstHelper("NONG");
tstHelper("NU");
tstHelper("NU'I");
tstHelper("NUB");
tstHelper("NYA");
tstHelper("NYAMS");
tstHelper("NYAN");
tstHelper("NYDZU");
tstHelper("NYE");
tstHelper("NYE'U");
tstHelper("NYEN");
tstHelper("NYES");
tstHelper("NYI");
tstHelper("NYID");
tstHelper("NYING");
tstHelper("NYON");
tstHelper("NYUG");
tstHelper("OD");
tstHelper("PA");
tstHelper("PA'A");
tstHelper("PA'I");
tstHelper("PA'LA");
tstHelper("PA'O");
tstHelper("PAD");
tstHelper("PADMA");
tstHelper("PADMA'I");
tstHelper("PAG");
tstHelper("PALA");
tstHelper("PANG");
tstHelper("PAR");
tstHelper("PARU");
tstHelper("PAS");
tstHelper("PA");
tstHelper("PHA");
tstHelper("PHAN");
tstHelper("PHEG");
tstHelper("PHI");
tstHelper("PHIN");
tstHelper("PHIR");
tstHelper("PHOD");
tstHelper("PHOG");
tstHelper("PHRA");
tstHelper("PHRAG");
tstHelper("PHRAN");
tstHelper("PHREN");
tstHelper("PHRENG");
tstHelper("PHROGS");
tstHelper("PHRUG");
tstHelper("PHUDG");
tstHelper("PHUN");
tstHelper("PHUNG");
tstHelper("PHUR");
tstHelper("PHYAG");
tstHelper("PHYE");
tstHelper("PHYI");
tstHelper("PHYIN");
tstHelper("PHYIR");
tstHelper("PHYIS");
tstHelper("PHYOGS");
tstHelper("PHYUN");
tstHelper("PHYUNG");
tstHelper("PHYUNGS");
tstHelper("PI");
tstHelper("PINGKA");
tstHelper("PO");
tstHelper("PO'I");
tstHelper("PO'i");
tstHelper("POR");
tstHelper("POS");
tstHelper("PRA");
tstHelper("PRAKshVA");
tstHelper("PRAL");
tstHelper("PRASIDDHA");
tstHelper("PRI");
tstHelper("PRONG");
tstHelper("PUN");
tstHelper("PUNANA'A");
tstHelper("PUS");
tstHelper("PYE");
tstHelper("R'AGA");
tstHelper("RA");
tstHelper("RA'");
tstHelper("RA'A");
tstHelper("RA'I");
tstHelper("RAA'");
tstHelper("RAB");
tstHelper("RABS");
tstHelper("RAG");
tstHelper("RAL");
tstHelper("RAN");
tstHelper("RANG");
tstHelper("RAS");
tstHelper("RAndABA");
tstHelper("RBOD");
tstHelper("RBYAR");
tstHelper("RDAS");
tstHelper("RDE'U");
tstHelper("RDEG");
tstHelper("RDO");
tstHelper("RDOB");
tstHelper("RDOBS");
tstHelper("RDUM");
tstHelper("RDZAS");
tstHelper("RDZI");
tstHelper("RDZOGS");
tstHelper("RDZU");
tstHelper("RDZUL");
tstHelper("RENGS");
tstHelper("RGOD");
tstHelper("RGOG");
tstHelper("RGOS");
tstHelper("RGYA");
tstHelper("RGYAL");
tstHelper("RGYAN");
tstHelper("RGYANG");
tstHelper("RGYAS");
tstHelper("RGYES");
tstHelper("RGYU");
tstHelper("RGYUD");
tstHelper("RGYUN");
tstHelper("RGYUS");
tstHelper("RI");
tstHelper("RI'I");
tstHelper("RIGS");
tstHelper("RIL");
tstHelper("RIM");
tstHelper("RIN");
tstHelper("RING");
tstHelper("RIS");
tstHelper("RJE");
tstHelper("RJE'U");
tstHelper("RJES");
tstHelper("RJO");
tstHelper("RKA'I");
tstHelper("RKANG");
tstHelper("RKO");
tstHelper("RKU");
tstHelper("RKUN");
tstHelper("RKYEN");
tstHelper("RLABS");
tstHelper("RLE'O");
tstHelper("RLING");
tstHelper("RMAL");
tstHelper("RMEL");
tstHelper("RMONG");
tstHelper("RMONGS");
tstHelper("RMUS");
tstHelper("RMYANGS");
tstHelper("RNA");
tstHelper("RNABS");
tstHelper("RNAM");
tstHelper("RNAMS");
tstHelper("RNGA'U");
tstHelper("RNGAB");
tstHelper("RNGANGS");
tstHelper("RNGE");
tstHelper("RNGOG");
tstHelper("RNGU");
tstHelper("RNGUS");
tstHelper("RNOGS");
tstHelper("RO");
tstHelper("ROL");
tstHelper("RSBOD");
tstHelper("RTAG");
tstHelper("RTE'");
tstHelper("RTEN");
tstHelper("RTOL");
tstHelper("RTUL");
tstHelper("RTYAM");
tstHelper("RTZA");
tstHelper("RTZAL");
tstHelper("RTZE");
tstHelper("RTZENGS");
tstHelper("RTZI");
tstHelper("RTZIBS");
tstHelper("RTZIS");
tstHelper("RTZUB");
tstHelper("RTZUBS");
tstHelper("RU");
tstHelper("RUL");
tstHelper("RUNG");
tstHelper("RUNGS");
tstHelper("RYA");
tstHelper("RYA'I");
tstHelper("RYAL");
tstHelper("SA");
tstHelper("SA'");
tstHelper("SA'A");
tstHelper("SA'I");
tstHelper("SA'O");
tstHelper("SAG");
tstHelper("SANG");
tstHelper("SANGS");
tstHelper("SBANG");
tstHelper("SBNYEN");
tstHelper("SBRANG");
tstHelper("SBRAS");
tstHelper("SBREL");
tstHelper("SBRING");
tstHelper("SBRIS");
tstHelper("SBROS");
tstHelper("SBRUGS");
tstHelper("SBRUL");
tstHelper("SBRUNG");
tstHelper("SBU");
tstHelper("SBUNGS");
tstHelper("SBUR");
tstHelper("SBYAN");
tstHelper("SBYANGS");
tstHelper("SBYANS");
tstHelper("SBYAR");
tstHelper("SBYER");
tstHelper("SBYI");
tstHelper("SBYIN");
tstHelper("SBYIR");
tstHelper("SBYO");
tstHelper("SBYOR");
tstHelper("SBYU");
tstHelper("SBYUG");
tstHelper("SBYUGS");
tstHelper("SDAGS");
tstHelper("SDAN");
tstHelper("SDBUGS");
tstHelper("SDE");
tstHelper("SDE'U");
tstHelper("SDIG");
tstHelper("SDOD");
tstHelper("SDON");
tstHelper("SDONG");
tstHelper("SDUG");
tstHelper("SE'I");
tstHelper("SEMS");
tstHelper("SENG");
tstHelper("SER");
tstHelper("SGA");
tstHelper("SGO'U");
tstHelper("SGOGS");
tstHelper("SGRA");
tstHelper("SGRAR");
tstHelper("SGRE'U");
tstHelper("SGREL");
tstHelper("SGRON");
tstHelper("SGRUB");
tstHelper("SGRUP");
tstHelper("SGUB");
tstHelper("SGUG");
tstHelper("SGUN");
tstHelper("SGYE'O");
tstHelper("SGYES");
tstHelper("SGYOD");
tstHelper("SGYUNG");
tstHelper("SH'A");
tstHelper("SH'AKYA");
tstHelper("SHA");
tstHelper("SHA'");
tstHelper("SHA'A");
tstHelper("SHAA'");
tstHelper("SHAA'RI'I");
tstHelper("SHAL");
tstHelper("SHAM");
tstHelper("SHAN");
tstHelper("SHANG");
tstHelper("SHAR");
tstHelper("SHEG");
tstHelper("SHES");
tstHelper("SHI");
tstHelper("SHI'A");
tstHelper("SHIG");
tstHelper("SHIN");
tstHelper("SHING");
tstHelper("SHOG");
tstHelper("SHRU");
tstHelper("SHRUT");
tstHelper("SHVA");
tstHelper("SI");
tstHelper("SI'I");
tstHelper("SING");
tstHelper("SKA");
tstHelper("SKABS");
tstHelper("SKAD");
tstHelper("SKAM");
tstHelper("SKANG");
tstHelper("SKAR");
tstHelper("SKARI");
tstHelper("SKE");
tstHelper("SKEGS");
tstHelper("SKEL");
tstHelper("SKHANG");
tstHelper("SKO");
tstHelper("SKONG");
tstHelper("SKOR");
tstHelper("SKRA'I");
tstHelper("SKRED");
tstHelper("SKUD");
tstHelper("SKYAN");
tstHelper("SKYANG");
tstHelper("SKYE");
tstHelper("SKYE'O");
tstHelper("SKYE'U");
tstHelper("SKYED");
tstHelper("SKYEGS");
tstHelper("SKYEN");
tstHelper("SKYES");
tstHelper("SKYIMS");
tstHelper("SKYO");
tstHelper("SKYOB");
tstHelper("SKYONG");
tstHelper("SKYONGS");
tstHelper("SLABS");
tstHelper("SLAR");
tstHelper("SLE'O");
tstHelper("SLO");
tstHelper("SLOB");
tstHelper("SLONG");
tstHelper("SLOP");
tstHelper("SMA");
tstHelper("SMAD");
tstHelper("SMAM");
tstHelper("SMAN");
tstHelper("SMEL");
tstHelper("SMOD");
tstHelper("SMON");
tstHelper("SMONGS");
tstHelper("SMRA");
tstHelper("SMRA'I");
tstHelper("SMRA'O");
tstHelper("SMUNG");
tstHelper("SMYANGS");
tstHelper("SMYUG");
tstHelper("SMYUNG");
tstHelper("SNA");
tstHelper("SNABS");
tstHelper("SNAMG");
tstHelper("SNAR");
tstHelper("SNGAGS");
tstHelper("SNGANG");
tstHelper("SNGANGS");
tstHelper("SNGO");
tstHelper("SNGO'I");
tstHelper("SNGOGS");
tstHelper("SNGON");
tstHelper("SNOD");
tstHelper("SNRA");
tstHelper("SNREL");
tstHelper("SNRON");
tstHelper("SNUM");
tstHelper("SNYA");
tstHelper("SNYAM");
tstHelper("SNYEG");
tstHelper("SNYEGS");
tstHelper("SNYER");
tstHelper("SNYIL");
tstHelper("SNYING");
tstHelper("SNYOD");
tstHelper("SNYOMS");
tstHelper("SO");
tstHelper("SO'I");
tstHelper("SOGS");
tstHelper("SONG");
tstHelper("SOR");
tstHelper("SPANG");
tstHelper("SPANGS");
tstHelper("SPOBS");
tstHelper("SPRAS");
tstHelper("SPRE'U'I");
tstHelper("SPRIN");
tstHelper("SPRO");
tstHelper("SPRUGS");
tstHelper("SPU");
tstHelper("SPUNGS");
tstHelper("SPYAD");
tstHelper("SPYAN");
tstHelper("SPYANG");
tstHelper("SPYI");
tstHelper("SPYI'I");
tstHelper("SPYI'U");
tstHelper("SPYIR");
tstHelper("SPYIS");
tstHelper("SPYOD");
tstHelper("SPYON");
tstHelper("SPYONG");
tstHelper("SPYOOD");
tstHelper("SPYOR");
tstHelper("SPYUGS");
tstHelper("SRAL");
tstHelper("SRAN");
tstHelper("SRAS");
tstHelper("SREG");
tstHelper("SRI");
tstHelper("SRID");
tstHelper("SRIN");
tstHelper("SRJOD");
tstHelper("SRO");
tstHelper("SROG");
tstHelper("SROL");
tstHelper("SRONG");
tstHelper("SRUNG");
tstHelper("SRUNGS");
tstHelper("STE");
tstHelper("STED");
tstHelper("STENG");
tstHelper("STENGS");
tstHelper("STHA");
tstHelper("STOB");
tstHelper("STOBS");
tstHelper("STOD");
tstHelper("STON");
tstHelper("STONG");
tstHelper("STUG");
tstHelper("STUGS");
tstHelper("STZAGS");
tstHelper("SU");
tstHelper("SUM");
tstHelper("SZHON");
tstHelper("Si");
tstHelper("T'A");
tstHelper("T'A'I");
tstHelper("TA");
tstHelper("TA'A");
tstHelper("TAA'I");
tstHelper("TAMBA");
tstHelper("TE");
tstHelper("TE'U");
tstHelper("TE'U'I");
tstHelper("THA");
tstHelper("THABS");
tstHelper("THAD");
tstHelper("THAG");
tstHelper("THAL");
tstHelper("THAMS");
tstHelper("THE");
tstHelper("THE'U");
tstHelper("THED");
tstHelper("THEG");
tstHelper("THI");
tstHelper("THIB");
tstHelper("THIM");
tstHelper("THIMS");
tstHelper("THIN");
tstHelper("THING");
tstHelper("THOB");
tstHelper("THOD");
tstHelper("THOGS");
tstHelper("THOS");
tstHelper("THUB");
tstHelper("THUG");
tstHelper("THUGS");
tstHelper("THUNG");
tstHelper("THUR");
tstHelper("TI");
tstHelper("TI'");
tstHelper("TI'A");
tstHelper("TI'I");
tstHelper("TIG");
tstHelper("TING");
tstHelper("TKA'A");
tstHelper("TOG");
tstHelper("TOR");
tstHelper("TPA");
tstHelper("TRA'AI");
tstHelper("TRE");
tstHelper("TRYAM");
tstHelper("TSAD");
tstHelper("TSAL");
tstHelper("TSANG");
tstHelper("TSANGS");
tstHelper("TSE");
tstHelper("TSE'U");
tstHelper("TSEGS");
tstHelper("TSER");
tstHelper("TSIG");
tstHelper("TSIGS");
tstHelper("TSOD");
tstHelper("TSOGS");
tstHelper("TSOM");
tstHelper("TSON");
tstHelper("TSONG");
tstHelper("TSOR");
tstHelper("TSOS");
tstHelper("TSUGS");
tstHelper("TSUL");
tstHelper("TSUR");
tstHelper("TU");
tstHelper("TUB");
tstHelper("TUD");
tstHelper("TUS");
tstHelper("TYA'I");
tstHelper("TZ'A");
tstHelper("TZA");
tstHelper("TZAM");
tstHelper("TZAMMI");
tstHelper("TZAMPAKA");
tstHelper("TZAN");
tstHelper("TZANDA");
tstHelper("TZANDAN");
tstHelper("TZE'U");
tstHelper("TZER");
tstHelper("TZI");
tstHelper("TZIB");
tstHelper("WA");
tstHelper("WA'A");
tstHelper("WAM");
tstHelper("WANG");
tstHelper("X");
tstHelper("YA");
tstHelper("YA'A");
tstHelper("YA'AnA");
tstHelper("YA'I");
tstHelper("YAN");
tstHelper("YANG");
tstHelper("YANGS");
tstHelper("YAS");
tstHelper("YAmGU");
tstHelper("YE");
tstHelper("YI");
tstHelper("YID");
tstHelper("YIN");
tstHelper("YOL");
tstHelper("YONGS");
tstHelper("YU");
tstHelper("YUG");
tstHelper("YUL");
tstHelper("ZAD");
tstHelper("ZAG");
tstHelper("ZAN");
tstHelper("ZAR");
tstHelper("ZDOG");
tstHelper("ZE'I");
tstHelper("ZER");
tstHelper("ZHA'I");
tstHelper("ZHABS");
tstHelper("ZHAL");
tstHelper("ZHE");
tstHelper("ZHEN");
tstHelper("ZHENG");
tstHelper("ZHER");
tstHelper("ZHES");
tstHelper("ZHES'O");
tstHelper("ZHI");
tstHelper("ZHI'I");
tstHelper("ZHIG");
tstHelper("ZHIGS");
tstHelper("ZHIN");
tstHelper("ZHING");
tstHelper("ZHON");
tstHelper("ZHUGS");
tstHelper("ZHUS");
tstHelper("ZI'I");
tstHelper("ZIL");
tstHelper("ZING");
tstHelper("ZLA");
tstHelper("ZLOG");
tstHelper("ZLOS");
tstHelper("ZLUM");
tstHelper("ZUG");
tstHelper("ZUL");
tstHelper("ZUNG");
tstHelper("d'U");
tstHelper("dA");
tstHelper("dALA");
tstHelper("dI");
tstHelper("dU");
tstHelper("nA");
tstHelper("nA'I");
tstHelper("nDA'A");
tstHelper("nE");
tstHelper("nI");
tstHelper("nYAGRO");
tstHelper("ndI");
tstHelper("shKA");
}
}
// S0011N.ACT contains [SMON TSIG 'DI'I RTZOM MING MI GSAL,], why the brackets? IS all this really a correction? Or were parentheses and not brackets intended? FIXME
// FIXME: [THE FOLLOWIN... appears, so [#comment] or [comment] is possible. [BLANK PAGE] [MISSING PAGE] [FIRST] [SECOND] [DD1] [DD2] [46A.2] [THE ... [FOLLOWING... [PAGE ... [THESE ... @[7B] [SW: OK] [A FIRST... [ADDENDUM... [END ... [Additional [Some [Note [MISSING [DDD] [INCOMPLETE [LINE [DATA
// [A pair of ... which is part of the text! S0200A.ACE
// [D] is a correction, eh?
// FIXME -- HOW DO YOU TREAT THESE?
// BDE 'BA' ZHIG RGYUN DU BSTEN, ,YENGS KYANG THUB NA [GNYEN PO,)
// 'BYONGS [BLO,) S0375M.ACT
/* FIXME: BDEm: is different than BDE for us, is that OK?
uhelp("BDEm:", "[#WARNING CONVERTING ACIP DOCUMENT: The ACIP BDEm: has been interpreted as two stacks, not one, but you may wish to confirm that the original text had two stacks as it would be an easy mistake to make to see one stack and forget to input it with '+' characters.]PLACEHOLDER");
tstHelper("BDA:", "{B}{DA:}",
new String[] { "{B+DA:}", "{B}{DA:}" },
new String[] { "{B}{DA:}" },
"{B}{DA:}");
tstHelper("BDEm:", "{B}{DEm:}",
new String[] { "{B+DEm:}", "{B}{DEm:}" },
new String[] { "{B}{DEm:}" },
"{B}{DEm:}"); */
// FIXME DOC: the line SDIG PA'I GROGS PO'I LAG TU SON PAR 'GYUR PA is followed by a blank line. Note that it's "PA", not "PA ", ending it. We autocorrect to the latter.
// DLC FIXME: @0B1 isn't handled correctly! DLC
// FIXME: S6814M6.ACT have BA'I and 'AO, what should these convert to?
// FIXME: test EWTS {pouM}
// FIXME: TMW->ACIP doesn't do {KHA (KA)}. Bug 838486
// FIXME: VERIFY WE DO THIS.
//
// By normal Tibetan & Dzongkha spelling, writing, and input rules
// Tibetan script stacks should be entered and written: 1 headline
// consonant (0F40->0F6A), any subjoined consonant(s) (0F90->
// 0F9C), achung (0F71), shabkyu (0F74), any above headline
// vowel(s) (0F72 0F7A 0F7B 0F7C 0F7D and 0F80) ; any ngaro (0F7E,
// 0F82 and 0F83)
// FIXME: KAo isn't converting. See bug #838594
// FIXME: NYAx isn't converting. See bug #838595
// FIXME : handle ^GONG, and "^ GONG". See Bug #838593
// FIXME: the file ACIP_SHRI should be made into an ACIP->TMW automated test case
// FIXME: test that RY, RW, RSH, RSHY, Rsh, Rshn, RshnY, RshM, RshY,
// and RS have associated TMW glyphs.