/* The following code was generated by JFlex */

package jadx.gui.ui.codearea;

import java.io.*;

import javax.swing.text.Segment;

import org.fife.ui.rsyntaxtextarea.*;

/**
 * 用于Smali代码高亮
 * MartinKay@qq.com
 */

@SuppressWarnings("checkstyle:all")
public class SmaliTokenMaker extends AbstractJFlexCTokenMaker {

	/** This character denotes the end of file */
	public static final int YYEOF = -1;

	/** initial size of the lookahead buffer */
	private static final int ZZ_BUFFERSIZE = 16384;

	/** lexical states */
	public static final int EOL_COMMENT = 1;
	public static final int YYINITIAL = 0;

	/**
	 * Translates characters to character classes
	 */
	private static final String ZZ_CMAP_PACKED =
			"\11\0\1\21\1\10\1\0\1\21\1\17\22\0\1\77\1\54\1\15" +
					"\1\20\1\1\1\35\1\35\1\7\1\37\1\37\1\35\1\40\1\35" +
					"\1\25\1\23\1\41\1\4\1\66\1\16\1\72\1\71\1\6\1\67" +
					"\1\6\1\76\1\3\1\45\1\50\1\55\1\54\1\56\1\35\1\36" +
					"\1\5\1\53\1\53\1\53\1\5\1\53\2\1\1\52\1\52\1\1" +
					"\1\47\6\1\1\52\2\1\1\51\3\1\1\52\1\37\1\11\1\37" +
					"\1\17\1\2\1\0\1\31\1\14\1\60\1\61\1\24\1\30\1\62" +
					"\1\42\1\44\1\70\1\73\1\32\1\65\1\13\1\63\1\43\1\74" +
					"\1\27\1\33\1\26\1\12\1\57\1\46\1\22\1\64\1\75\1\34" +
					"\1\17\1\34\1\35\uff81\0";

	/**
	 * Translates characters to character classes
	 */
	private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);

	/**
	 * Translates DFA states to action switch labels.
	 */
	private static final int[] ZZ_ACTION = zzUnpackAction();

	private static final String ZZ_ACTION_PACKED_0 =
			"\2\0\2\1\2\2\1\3\1\4\3\1\1\5\1\6" +
					"\1\7\12\1\1\10\1\11\1\12\4\1\2\13\1\12" +
					"\5\1\1\14\1\15\3\14\1\0\1\16\1\0\2\16" +
					"\1\3\1\17\1\0\1\3\5\1\2\5\1\20\1\21" +
					"\12\0\1\1\1\10\23\1\1\12\5\1\6\0\1\13" +
					"\1\0\15\1\5\0\1\21\1\0\1\22\1\3\1\23" +
					"\2\3\1\17\1\3\5\1\1\24\1\1\1\5\1\25" +
					"\1\5\20\0\35\1\7\0\10\1\1\0\2\1\5\0" +
					"\1\3\2\0\1\1\1\0\1\1\1\5\22\0\1\26" +
					"\1\27\3\1\1\0\7\1\1\24\1\1\1\0\2\1" +
					"\1\0\6\1\1\0\2\1\11\0\4\1\1\0\3\1" +
					"\1\24\2\0\1\1\1\24\2\0\1\30\1\0\1\3" +
					"\6\0\1\1\1\5\6\0\1\31\13\0\2\1\3\0" +
					"\2\1\1\0\3\1\3\0\2\1\1\0\6\1\1\0" +
					"\2\1\1\24\5\0\3\1\1\24\1\0\2\1\3\0" +
					"\1\1\5\0\1\3\6\0\1\5\7\0\1\31\4\0" +
					"\1\31\1\1\1\24\4\0\1\1\1\0\2\1\10\0" +
					"\1\1\1\0\3\1\1\0\2\1\1\24\3\0\1\32" +
					"\2\1\2\0\1\1\1\0\2\1\3\0\1\24\1\1" +
					"\23\0\1\1\7\0\2\1\10\0\1\24\1\1\1\24" +
					"\1\0\2\1\1\0\1\1\11\0\1\1\1\0\1\1" +
					"\2\0\1\1\22\0\1\24\3\0\1\1\12\0\1\1" +
					"\1\0\1\1\15\0\1\1\1\0\1\1\25\0\1\1" +
					"\22\0\1\1\10\0\1\24\26\0\1\24\2\0\1\1" +
					"\35\0\1\24\3\0\1\24\6\0\1\24\50\0\1\26";

	private static int[] zzUnpackAction() {
		int[] result = new int[701];
		int offset = 0;
		offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
		return result;
	}

	private static int zzUnpackAction(String packed, int offset, int[] result) {
		int i = 0; /* index in packed string */
		int j = offset; /* index in unpacked array */
		int l = packed.length();
		while (i < l) {
			int count = packed.charAt(i++);
			int value = packed.charAt(i++);
			do
				result[j++] = value;
			while (--count > 0);
		}
		return j;
	}

	/**
	 * Translates a state to a row index in the transition table
	 */
	private static final int[] ZZ_ROWMAP = zzUnpackRowMap();

	private static final String ZZ_ROWMAP_PACKED_0 =
			"\0\0\0\100\0\200\0\300\0\u0100\0\u0140\0\u0180\0\200" +
					"\0\u01c0\0\u0200\0\u0240\0\u0280\0\200\0\u02c0\0\u0300\0\u0340" +
					"\0\u0380\0\u03c0\0\u0400\0\u0440\0\u0480\0\u04c0\0\u0500\0\u0540" +
					"\0\200\0\200\0\u0580\0\u05c0\0\u0600\0\u0640\0\u0680\0\300" +
					"\0\u06c0\0\u0700\0\u0740\0\u0780\0\u07c0\0\u0800\0\u0840\0\u0880" +
					"\0\200\0\u08c0\0\u0900\0\u0940\0\u0980\0\u09c0\0\u0a00\0\u0a40" +
					"\0\u0a80\0\u0ac0\0\200\0\u0b00\0\u0b40\0\u0b80\0\u0bc0\0\u0c00" +
					"\0\u0c40\0\u0c80\0\u0cc0\0\u0d00\0\200\0\u0d40\0\u0d80\0\u0dc0" +
					"\0\u0e00\0\u0e40\0\u0e80\0\u0ec0\0\u0f00\0\u0f40\0\u0f80\0\u0fc0" +
					"\0\u1000\0\u1040\0\u1080\0\u10c0\0\u1100\0\u1140\0\u1180\0\u11c0" +
					"\0\u1200\0\u1240\0\u1280\0\u12c0\0\u1300\0\u1340\0\u1380\0\u13c0" +
					"\0\u1400\0\u1440\0\u1480\0\u14c0\0\u1500\0\u1540\0\u1580\0\u15c0" +
					"\0\u1600\0\u1640\0\u1680\0\u16c0\0\u1700\0\u1740\0\u1780\0\u17c0" +
					"\0\u1800\0\200\0\u1840\0\u06c0\0\u1880\0\u18c0\0\u1900\0\u1940" +
					"\0\u1980\0\u19c0\0\u1a00\0\u1a40\0\u1a80\0\u1ac0\0\u1b00\0\u1b40" +
					"\0\u1b80\0\u1bc0\0\u1c00\0\u1c40\0\u1c80\0\u1cc0\0\u1d00\0\u0a80" +
					"\0\u1d40\0\200\0\u1d80\0\u1dc0\0\u0b00\0\u1e00\0\u1e40\0\u1e80" +
					"\0\u1ec0\0\u1f00\0\u1f40\0\300\0\u1f80\0\u1fc0\0\200\0\u2000" +
					"\0\u2040\0\u2080\0\u20c0\0\u2100\0\u2140\0\u2180\0\u21c0\0\u2200" +
					"\0\u2240\0\u2280\0\u22c0\0\u2300\0\u2340\0\u2380\0\u23c0\0\u2400" +
					"\0\u2440\0\u2480\0\u24c0\0\u2500\0\u2540\0\u2580\0\u25c0\0\u2600" +
					"\0\u2640\0\u2680\0\u26c0\0\u2700\0\u2740\0\u2780\0\u27c0\0\u2800" +
					"\0\u2840\0\u2880\0\u28c0\0\u2900\0\u2940\0\u2980\0\u29c0\0\u2a00" +
					"\0\u2a40\0\u2a80\0\u2ac0\0\u2b00\0\u2b40\0\u2b80\0\u2bc0\0\u2c00" +
					"\0\u2c40\0\u2c80\0\u2cc0\0\u2d00\0\u2d40\0\u2d80\0\u2dc0\0\u2e00" +
					"\0\u2e40\0\u2e80\0\u2ec0\0\u2f00\0\u2f40\0\u2f80\0\u2fc0\0\u3000" +
					"\0\u3040\0\u3080\0\u30c0\0\u3100\0\u3140\0\u3180\0\u31c0\0\u3200" +
					"\0\u3240\0\u3280\0\u32c0\0\u3300\0\u3340\0\u3380\0\u33c0\0\u3400" +
					"\0\u3440\0\u3480\0\u34c0\0\u3500\0\u3540\0\u3580\0\u35c0\0\u3600" +
					"\0\u3640\0\u3680\0\u36c0\0\u3700\0\u3740\0\300\0\300\0\u3780" +
					"\0\u37c0\0\u3800\0\u3840\0\u3880\0\u38c0\0\u3900\0\u3940\0\u3980" +
					"\0\u39c0\0\u3a00\0\u3a40\0\u3a80\0\u3ac0\0\u3b00\0\u3b40\0\u3b80" +
					"\0\u3bc0\0\u3c00\0\u3c40\0\u3c80\0\u3cc0\0\u3d00\0\u3d40\0\u3d80" +
					"\0\u3dc0\0\u3e00\0\u3e40\0\u3e80\0\u3ec0\0\u3f00\0\u3f40\0\u3f80" +
					"\0\u3fc0\0\u4000\0\u4040\0\u4080\0\u40c0\0\u4100\0\u4140\0\u4180" +
					"\0\u41c0\0\u4200\0\u4240\0\u4280\0\u42c0\0\u4300\0\u4340\0\u4380" +
					"\0\u43c0\0\u4400\0\u4440\0\u4480\0\u44c0\0\u4500\0\u4540\0\u4580" +
					"\0\u45c0\0\u4600\0\u4640\0\u4680\0\u46c0\0\u4700\0\u4740\0\u4780" +
					"\0\u47c0\0\u4800\0\200\0\u4840\0\u4880\0\u48c0\0\u4900\0\u4940" +
					"\0\u4980\0\u49c0\0\u4a00\0\u4a40\0\u4a80\0\u4ac0\0\u4b00\0\u4b40" +
					"\0\u4b80\0\u4bc0\0\u4c00\0\u4c40\0\u4c80\0\u4cc0\0\u4d00\0\u4d40" +
					"\0\u4d80\0\u4dc0\0\u4e00\0\u4e40\0\u4e80\0\u4ec0\0\u4f00\0\u4f40" +
					"\0\u4f80\0\u4fc0\0\u5000\0\u5040\0\u5080\0\u50c0\0\u5100\0\u5140" +
					"\0\u5180\0\u51c0\0\u5200\0\u5240\0\u5280\0\u52c0\0\u5300\0\u5340" +
					"\0\u5380\0\u53c0\0\u5400\0\u5440\0\u5480\0\u54c0\0\u5500\0\u5540" +
					"\0\u5580\0\u55c0\0\u5600\0\u5640\0\u4400\0\u5680\0\u56c0\0\u5700" +
					"\0\u5740\0\u5780\0\u57c0\0\u5800\0\u5840\0\u5880\0\u58c0\0\u5900" +
					"\0\u5940\0\u5980\0\u59c0\0\u5a00\0\u5a40\0\u4a80\0\u5a80\0\u5ac0" +
					"\0\u5b00\0\u5b40\0\u5b80\0\u5bc0\0\u5c00\0\u5c40\0\u5c80\0\u5cc0" +
					"\0\u5d00\0\u5d40\0\u5d80\0\u5dc0\0\u5e00\0\u5e40\0\u5e80\0\u5ec0" +
					"\0\u5f00\0\u5f40\0\u5f80\0\u5fc0\0\u6000\0\u6040\0\u6080\0\u60c0" +
					"\0\u6100\0\u6140\0\u6180\0\u61c0\0\u6200\0\200\0\u6240\0\u6280" +
					"\0\u62c0\0\u6300\0\u6340\0\u6380\0\u63c0\0\u6400\0\u6440\0\u6480" +
					"\0\u64c0\0\u6500\0\u6540\0\u6580\0\u65c0\0\u6600\0\u6640\0\u6680" +
					"\0\u66c0\0\u6700\0\u6740\0\u6780\0\u67c0\0\u6800\0\u6840\0\u6880" +
					"\0\u68c0\0\u6900\0\u6940\0\u6980\0\u69c0\0\u6a00\0\u6a40\0\u6a80" +
					"\0\u6ac0\0\u6b00\0\u6b40\0\u6b80\0\u6bc0\0\u6c00\0\u6c40\0\u6c80" +
					"\0\u6cc0\0\u6d00\0\u6d40\0\u6d80\0\u6dc0\0\u6e00\0\u6e40\0\u6e80" +
					"\0\u6ec0\0\u6f00\0\u6f40\0\u6f80\0\u6fc0\0\u7000\0\u7040\0\u7080" +
					"\0\u70c0\0\u7100\0\u7140\0\u7180\0\u71c0\0\u7200\0\u7240\0\u7280" +
					"\0\u72c0\0\u7300\0\u7340\0\u7380\0\u73c0\0\u7400\0\u7440\0\u7480" +
					"\0\u74c0\0\u7500\0\u7540\0\u7580\0\u75c0\0\u7600\0\u7640\0\u7680" +
					"\0\u76c0\0\u7700\0\u7740\0\u7780\0\u77c0\0\u7800\0\u7840\0\u7880" +
					"\0\u78c0\0\u7900\0\u7940\0\u7980\0\u79c0\0\u7a00\0\u7a40\0\u7a80" +
					"\0\u7ac0\0\u7b00\0\u7b40\0\u7b80\0\u7bc0\0\u7c00\0\u7c40\0\u7c80" +
					"\0\u7cc0\0\u7d00\0\u7d40\0\u7d80\0\u7dc0\0\u7e00\0\u7e40\0\u7e80" +
					"\0\u7ec0\0\u7f00\0\u7f40\0\u7f80\0\u7fc0\0\u8000\0\u8040\0\u8080" +
					"\0\u80c0\0\u8100\0\u8140\0\u8180\0\u81c0\0\u8200\0\u8240\0\u8280" +
					"\0\u82c0\0\u8300\0\u8340\0\u8380\0\u83c0\0\u8400\0\u8440\0\u8480" +
					"\0\u84c0\0\u8500\0\u8540\0\u8580\0\u85c0\0\u8600\0\u8640\0\u8680" +
					"\0\u86c0\0\u8700\0\u8740\0\u8780\0\u87c0\0\u8800\0\u8840\0\u8880" +
					"\0\u88c0\0\u8900\0\u8940\0\u8980\0\u89c0\0\u8a00\0\u8a40\0\u8a80" +
					"\0\u8ac0\0\u8b00\0\u8b40\0\u8b80\0\u8bc0\0\u8c00\0\u8c40\0\u8c80" +
					"\0\u8cc0\0\u8d00\0\u8d40\0\u8d80\0\u8dc0\0\u8e00\0\u8e40\0\u8e80" +
					"\0\u8ec0\0\u8f00\0\u8f40\0\u8f80\0\u8fc0\0\u9000\0\u9040\0\u9080" +
					"\0\u90c0\0\u9100\0\u9140\0\u9180\0\u91c0\0\u9200\0\u9240\0\u9280" +
					"\0\u92c0\0\u9300\0\u9340\0\u9380\0\u93c0\0\u9400\0\u9440\0\u9480" +
					"\0\u94c0\0\u9500\0\u9540\0\u9580\0\u95c0\0\u9600\0\u9640\0\u9680" +
					"\0\u96c0\0\u9700\0\u9740\0\u9780\0\u97c0\0\u9800\0\u9840\0\u9880" +
					"\0\u98c0\0\u9900\0\u9940\0\u9980\0\u99c0\0\u9a00\0\u9a40\0\u9a80" +
					"\0\u9ac0\0\u9b00\0\u9b40\0\u9b80\0\u9bc0\0\u9c00\0\u9c40\0\u9c80" +
					"\0\u9cc0\0\u9d00\0\u9d40\0\u9d80\0\u9dc0\0\u9e00\0\u9e40\0\u9e80" +
					"\0\u9ec0\0\u9f00\0\u9f40\0\u9f80\0\u9fc0\0\ua000\0\ua040\0\ua080" +
					"\0\ua0c0\0\ua100\0\ua140\0\ua180\0\ua1c0\0\ua200\0\ua240\0\ua280" +
					"\0\ua2c0\0\ua300\0\ua340\0\ua380\0\ua3c0\0\ua400\0\ua440\0\ua480" +
					"\0\ua4c0\0\ua500\0\ua540\0\ua580\0\ua5c0\0\ua600\0\ua640\0\ua680" +
					"\0\ua6c0\0\ua700\0\ua740\0\ua780\0\ua7c0\0\ua800\0\ua840\0\ua880" +
					"\0\ua8c0\0\ua900\0\ua940\0\ua980\0\200";

	private static int[] zzUnpackRowMap() {
		int[] result = new int[701];
		int offset = 0;
		offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
		return result;
	}

	private static int zzUnpackRowMap(String packed, int offset, int[] result) {
		int i = 0; /* index in packed string */
		int j = offset; /* index in unpacked array */
		int l = packed.length();
		while (i < l) {
			int high = packed.charAt(i++) << 16;
			result[j++] = high | packed.charAt(i++);
		}
		return j;
	}

	/**
	 * The transition table of the DFA
	 */
	private static final int[] ZZ_TRANS = zzUnpackTrans();

	private static final String ZZ_TRANS_PACKED_0 =
			"\1\3\2\4\1\5\1\6\1\4\1\5\1\7\1\10" +
					"\1\3\1\11\1\12\1\13\1\14\1\5\1\3\1\15" +
					"\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25" +
					"\1\26\1\27\1\30\1\31\1\3\1\32\1\31\1\3" +
					"\1\32\1\4\1\33\1\34\1\35\1\4\1\36\1\37" +
					"\1\40\2\41\3\32\1\42\1\43\1\44\1\45\1\46" +
					"\1\4\1\47\2\5\1\4\2\5\3\4\1\5\1\16" +
					"\10\50\1\51\17\50\1\52\11\50\1\53\3\50\1\54" +
					"\31\50\101\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\1\0\3\56" +
					"\2\5\1\56\1\5\2\0\4\56\1\0\1\5\1\0" +
					"\1\56\1\0\1\56\1\57\1\60\1\0\6\56\2\0" +
					"\1\56\3\0\3\56\1\0\2\56\1\0\3\56\3\0" +
					"\7\56\2\5\1\56\2\5\3\56\1\5\1\0\3\56" +
					"\2\5\1\56\1\5\2\0\4\56\1\0\1\5\1\0" +
					"\1\56\1\0\1\61\1\57\1\60\1\0\6\56\2\0" +
					"\1\56\3\0\3\56\1\0\2\56\1\0\3\56\3\0" +
					"\7\56\2\5\1\56\2\5\3\56\1\5\1\0\7\62" +
					"\1\63\1\64\1\65\66\62\1\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\5\4\1\66\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\67\1\0\3\4\1\70" +
					"\2\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\4\4\1\71\13\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\1\4" +
					"\1\72\4\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\1\0\10\14\1\73\1\74\3\14\1\75" +
					"\62\14\21\0\1\16\55\0\1\16\1\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\4\4\1\46\13\4\4\0\2\76\1\0\1\76" +
					"\7\0\1\76\5\0\1\77\2\0\1\100\1\101\1\102" +
					"\1\103\1\104\7\0\1\105\1\106\13\0\1\107\4\0" +
					"\1\110\2\76\1\0\2\76\3\0\1\76\2\0\6\4" +
					"\2\0\1\55\1\4\1\111\1\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\57\0\1\112\22\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\1\4\1\113\4\4\6\0\1\114" +
					"\2\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\115\1\0\5\4\1\116\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\3\4\1\117\1\120\1\4\6\0\2\4\1\121" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\1\4\1\122\1\123\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\1\4\1\124\4\4\6\0" +
					"\1\4\1\125\1\4\1\0\2\4\1\0\3\4\3\0" +
					"\2\4\1\126\1\127\14\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\4\4\1\130\13\4\2\0\6\4\2\0\1\55\1\131" +
					"\2\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\1\132\5\4\6\0\1\133\1\134\1\4\1\0\2\4" +
					"\1\0\3\4\3\0\3\4\1\127\1\4\1\135\12\4" +
					"\2\0\2\4\2\136\1\4\1\136\2\0\1\55\1\137" +
					"\2\4\1\0\1\136\3\0\1\4\1\0\1\4\1\0" +
					"\1\4\1\140\1\4\1\141\2\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\7\4\2\136\1\4\2\136" +
					"\3\4\1\136\2\0\6\4\2\0\1\55\1\4\1\142" +
					"\1\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\2\4\1\143\3\4\6\0\1\4\1\125\1\4\1\0" +
					"\2\4\1\0\3\4\3\0\3\4\1\127\14\4\27\0" +
					"\1\144\2\0\1\145\11\0\1\146\14\0\1\147\1\0" +
					"\1\150\16\0\6\36\2\0\1\55\3\36\1\0\1\36" +
					"\3\0\1\36\1\0\1\36\1\0\6\36\5\0\1\151" +
					"\3\36\1\0\2\36\1\152\3\36\3\0\20\36\26\0" +
					"\1\153\53\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\1\4\1\36\1\152\1\4\2\154\3\0\20\4" +
					"\2\0\2\4\2\136\1\4\1\136\2\0\1\55\3\4" +
					"\1\0\1\136\3\0\1\4\1\0\1\4\1\0\3\4" +
					"\1\155\2\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\4\4\1\156\2\4\2\136\1\4\2\136\3\4" +
					"\1\136\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\1\157" +
					"\2\4\1\0\2\4\1\0\3\4\3\0\4\4\1\160" +
					"\1\4\1\161\11\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\162\1\0\6\4" +
					"\6\0\2\4\1\163\1\0\2\4\1\0\3\4\3\0" +
					"\4\4\1\164\13\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\4\4" +
					"\1\165\13\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\1\4\1\166" +
					"\4\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\1\167\2\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\4\4\1\170" +
					"\13\4\1\0\10\50\1\0\17\50\1\0\11\50\1\0" +
					"\3\50\1\0\31\50\26\0\1\171\15\0\1\172\61\0" +
					"\1\173\117\0\1\174\43\0\1\175\65\0\7\56\2\0" +
					"\4\56\1\0\1\56\1\0\1\56\1\0\1\56\1\0" +
					"\1\56\1\0\6\56\2\0\1\56\3\0\3\56\1\0" +
					"\2\56\1\0\3\56\3\0\20\56\4\0\2\76\1\0" +
					"\1\76\7\0\1\76\47\0\2\76\1\0\2\76\3\0" +
					"\1\76\1\0\3\56\2\176\1\56\1\176\2\0\4\56" +
					"\1\0\1\176\1\0\1\56\1\0\1\56\1\0\1\56" +
					"\1\177\6\56\2\0\1\56\1\0\1\177\1\0\3\56" +
					"\1\0\2\56\1\0\3\56\3\0\7\56\2\176\1\56" +
					"\2\176\3\56\1\176\1\0\3\56\4\200\2\0\3\56" +
					"\1\200\1\0\1\200\1\0\1\56\1\0\1\56\1\0" +
					"\1\200\1\0\2\56\2\200\2\56\2\0\1\56\3\0" +
					"\3\56\1\0\2\56\1\0\2\56\1\200\3\0\1\56" +
					"\2\200\4\56\2\200\1\56\2\200\3\56\1\200\1\0" +
					"\7\201\1\202\1\0\67\201\7\0\1\202\70\0\4\201" +
					"\1\203\1\201\1\204\1\205\1\0\1\62\1\206\3\62" +
					"\1\203\7\201\3\62\35\201\1\203\1\204\1\201\1\204" +
					"\1\203\5\201\1\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\1\207\2\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\1\210\1\4\1\0\3\4\3\0\3\4\1\211\14\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\1\212\5\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\213\5\4\6\0\1\4\1\214\1\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\2\4\1\215\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\1\0\11\73\1\216\3\73" +
					"\1\217\66\73\1\14\1\73\2\14\1\0\1\14\1\220" +
					"\4\14\7\73\3\14\35\73\2\14\1\73\2\14\5\73" +
					"\3\56\2\76\1\56\1\76\2\0\4\56\1\0\1\76" +
					"\1\0\1\56\1\0\1\56\1\0\1\60\1\0\6\56" +
					"\2\0\1\56\3\0\3\56\1\0\2\56\1\0\3\56" +
					"\3\0\7\56\2\76\1\56\2\76\3\56\1\76\14\0" +
					"\1\221\110\0\1\222\117\0\1\223\46\0\1\224\13\0" +
					"\1\225\114\0\1\226\16\0\1\227\26\0\1\230\30\0" +
					"\1\231\17\0\1\232\43\0\1\233\1\0\1\234\133\0" +
					"\1\235\43\0\1\236\1\237\71\0\1\240\54\0\6\4" +
					"\2\0\1\55\1\241\2\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\2\112\2\0\1\112" +
					"\4\0\3\112\5\0\1\112\1\0\1\112\1\0\6\112" +
					"\6\0\3\112\1\0\2\112\1\0\3\112\1\0\11\112" +
					"\2\0\1\112\2\0\3\112\3\0\6\4\2\0\1\55" +
					"\1\242\2\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\3\4\1\243\2\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\1\4\1\244\4\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\1\245" +
					"\5\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\6\4\1\246\11\4\2\0\6\4\2\0\1\55\1\247" +
					"\2\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\4\4\1\250\1\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\4\4\1\251\13\4\2\0" +
					"\6\4\2\0\1\55\1\4\1\252\1\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\4\4\1\253\1\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\1\4\1\254\1\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\2\4\1\166" +
					"\15\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\5\4\1\255\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\1\4\1\256\4\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\1\257\2\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\2\4\1\246\15\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\257\1\0\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\1\4\1\260\1\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\2\4\1\261\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\1\4\1\262\1\4\1\263\2\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\4\1\264\2\4\1\264\1\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\1\257\2\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\3\4\1\265\2\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\1\4\1\266\1\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\2\4" +
					"\2\136\1\4\1\136\2\0\1\55\3\4\1\0\1\136" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\7\4\2\136\1\4" +
					"\2\136\3\4\1\136\2\0\6\4\2\0\1\55\2\4" +
					"\1\267\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\2\4" +
					"\1\270\1\0\2\4\1\0\3\4\3\0\4\4\1\271" +
					"\13\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\1\4\1\272\16\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\1\273\4\4\1\274\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\1\275\17\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\276\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\30\0\1\277\77\0" +
					"\1\300\103\0\1\301\75\0\1\302\31\0\1\303\77\0" +
					"\1\304\15\0\6\151\3\0\3\151\1\0\1\151\3\0" +
					"\1\151\1\0\1\151\1\0\6\151\5\0\4\151\1\0" +
					"\2\151\1\152\3\151\3\0\20\151\57\0\1\32\22\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\1\4\1\305\4\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\4\4\1\306\1\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\307" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\1\4\1\310" +
					"\1\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\1\4" +
					"\1\311\1\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\1\4\1\312\16\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\1\246\17\4\2\0\6\4\2\0" +
					"\1\55\1\313\2\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\1\314" +
					"\5\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\315\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\4\4\1\246\1\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\1\4\1\316\1\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\1\317\17\4\44\0\1\320\66\0" +
					"\1\321\73\0\1\322\117\0\1\323\34\0\4\324\5\0" +
					"\1\324\1\0\1\324\5\0\1\324\3\0\2\324\21\0" +
					"\1\324\4\0\2\324\4\0\2\324\1\0\2\324\3\0" +
					"\1\324\1\0\3\56\2\176\1\56\1\176\2\0\4\56" +
					"\1\0\1\176\1\0\1\56\1\0\1\56\1\0\1\56" +
					"\1\0\6\56\2\0\1\56\3\0\3\56\1\0\2\56" +
					"\1\0\3\56\3\0\7\56\2\176\1\56\2\176\3\56" +
					"\1\176\4\0\2\176\1\0\1\176\7\0\1\176\47\0" +
					"\2\176\1\0\2\176\3\0\1\176\1\0\7\201\1\63" +
					"\1\0\73\201\1\204\1\201\1\204\1\202\1\0\5\201" +
					"\1\204\47\201\2\204\1\201\2\204\11\201\1\62\1\201" +
					"\1\62\1\202\1\0\5\201\1\62\47\201\2\62\1\201" +
					"\2\62\10\201\4\325\1\63\1\0\3\201\1\325\1\201" +
					"\1\325\5\201\1\325\3\201\2\325\21\201\1\325\4\201" +
					"\2\325\4\201\2\325\1\201\2\325\3\201\1\325\1\201" +
					"\1\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\1\4\1\264\4\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\326\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\327" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\2\4" +
					"\1\330\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\331\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\2\4\1\332\15\4\1\0\10\73\1\0\72\73\4\333" +
					"\2\73\1\216\2\73\1\333\1\217\1\333\5\73\1\333" +
					"\3\73\2\333\21\73\1\333\4\73\2\333\4\73\2\333" +
					"\1\73\2\333\3\73\1\333\1\73\61\0\1\334\51\0" +
					"\1\335\26\0\1\336\41\0\1\337\66\0\1\340\113\0" +
					"\1\341\63\0\1\342\144\0\1\343\62\0\1\344\65\0" +
					"\1\345\60\0\1\346\150\0\1\347\43\0\1\350\30\0" +
					"\1\351\62\0\1\352\62\0\1\353\102\0\1\354\74\0" +
					"\1\355\52\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\6\4\1\356\11\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\357\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\1\4\1\360\1\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\4\4\1\361\13\4\2\0\6\4\2\0\1\55\1\362" +
					"\2\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\363\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\2\4\1\364\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\5\4\1\242\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\3\4\1\365" +
					"\2\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\3\4\1\366\2\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\4\4\1\367\1\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\4\4\1\370\13\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\371\5\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\3\4\1\372\2\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\1\373" +
					"\5\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\3\4\1\374\14\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\375\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\2\4\1\376\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\1\377" +
					"\5\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\u0100\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\4\1\u0101\4\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\1\u0102\5\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\4\4" +
					"\1\377\1\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\1\u0103\17\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\1\u0104\5\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\14\4\1\u0105\3\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\u0106" +
					"\1\u0107\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\1\u0108\5\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\4\4\1\u0109\13\4\14\0" +
					"\1\u010a\10\0\1\u010b\5\0\1\u010c\27\0\1\u010c\101\0" +
					"\1\u010d\42\0\1\u010e\116\0\1\u010f\57\0\1\u0110\64\0" +
					"\1\u0111\112\0\1\u0112\52\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\3\4" +
					"\1\u0113\2\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\3\4\1\u0114" +
					"\2\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\1\4\1\u0115\16\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\5\4\1\u0116\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\u0117\4\4\1\u0118\1\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\3\4\1\u0118\14\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\4\4\1\u0119\1\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\2\4\1\u011a\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\4\4\1\u011b\13\4\33\0\1\u011c\11\0\1\u011d\34\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\2\4\1\u011e\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\u011f" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\46\0\1\u0120\56\0\1\320\116\0\1\u0121" +
					"\57\0\1\u0122\57\0\4\u0123\5\0\1\u0123\1\0\1\u0123" +
					"\5\0\1\u0123\3\0\2\u0123\21\0\1\u0123\4\0\2\u0123" +
					"\4\0\2\u0123\1\0\2\u0123\3\0\1\u0123\1\0\3\201" +
					"\4\u0124\1\63\1\0\3\201\1\u0124\1\201\1\u0124\5\201" +
					"\1\u0124\3\201\2\u0124\21\201\1\u0124\4\201\2\u0124\4\201" +
					"\2\u0124\1\201\2\u0124\3\201\1\u0124\1\201\31\0\1\u0125" +
					"\12\0\1\u0126\63\0\1\u0127\1\0\1\u0128\11\0\1\u0129" +
					"\14\0\1\u012a\17\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\1\u012b\17\4" +
					"\33\0\1\u0128\11\0\1\u0129\34\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\3\4\1\u012b\14\4\1\0\3\73\4\u012c\2\73\1\216" +
					"\2\73\1\u012c\1\217\1\u012c\5\73\1\u012c\3\73\2\u012c" +
					"\21\73\1\u012c\4\73\2\u012c\4\73\2\u012c\1\73\2\u012c" +
					"\3\73\1\u012c\1\73\77\0\1\u012d\26\0\1\u012e\115\0" +
					"\1\u012f\65\0\1\u0130\130\0\1\u0131\45\0\1\u0132\72\0" +
					"\1\u0133\104\0\1\u0134\72\0\1\u0135\102\0\1\u0136\77\0" +
					"\1\u0137\102\0\1\u0138\76\0\1\u0139\141\0\1\u013a\36\0" +
					"\1\u013b\125\0\1\u013c\52\0\1\u013d\106\0\1\u013e\36\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\5\4\1\u013f\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\3\4\1\0\1\214\1\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\1\4" +
					"\1\u0140\4\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\31\0\1\u0141\1\0\1\u011c\11\0\1\u011d" +
					"\14\0\1\u0142\17\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\u0143\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\1\u0144\5\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\4\4\1\356\1\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\u0145\1\u0146" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\1\u0147\5\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\1\4\1\u0148\4\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\5\4\1\u0149\12\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\u014a\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\u014b\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\31\0" +
					"\1\u0141\1\0\1\u011c\11\0\1\u014c\14\0\1\u0142\17\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\1\4\1\u014d\16\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\2\4\1\u014e\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\33\0\1\u011c\11\0\1\u014f" +
					"\34\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\5\4\1\u0150\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\2\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\1\u0151\2\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\3\4\1\u0152\2\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\u0153\1\0\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\u0154\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\1\4\1\u0155\4\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\27\0\1\u0156\52\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\3\4\1\u0157\2\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\14\4\1\u0158\3\4\25\0\1\u0159\147\0\1\u0159" +
					"\27\0\1\u0159\1\0\1\u0159\53\0\1\u015a\126\0\1\u015b" +
					"\112\0\1\u015c\113\0\1\u015d\100\0\1\u015e\101\0\1\u015e" +
					"\15\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\1\4\1\u015f\4\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\1\u0160\5\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\14\4\1\u0161\3\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\1\u0162\5\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\33\0\1\u0128\46\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\u0163" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\3\4\1\u0164\2\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\4\4\1\u0165\1\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\6\4\5\0\1\u0166\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\64\0\1\u0167\27\0" +
					"\1\u0168\65\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\1\u0169\5\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\u016a\6\4\5\0\1\u016b\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\42\0\1\u016c\71\0" +
					"\1\320\11\0\1\u0120\33\0\1\u0122\1\u016d\4\u0122\1\u016d" +
					"\2\0\3\u0122\1\0\1\u0122\1\0\1\u016d\1\0\1\u0122" +
					"\1\u016d\1\u0122\1\u016d\6\u0122\1\0\4\u016d\4\u0122\1\u016d" +
					"\2\u0122\1\u016d\3\u0122\1\u016d\2\0\20\u0122\4\0\4\u016e" +
					"\5\0\1\u016e\1\0\1\u016e\5\0\1\u016e\3\0\2\u016e" +
					"\21\0\1\u016e\4\0\2\u016e\4\0\2\u016e\1\0\2\u016e" +
					"\3\0\1\u016e\1\0\3\201\4\u016f\1\63\1\0\3\201" +
					"\1\u016f\1\201\1\u016f\5\201\1\u016f\3\201\2\u016f\21\201" +
					"\1\u016f\4\201\2\u016f\4\201\2\u016f\1\201\2\u016f\3\201" +
					"\1\u016f\1\201\27\0\1\u0170\63\0\1\u0171\116\0\1\u0172" +
					"\130\0\1\u0173\27\0\1\u0174\147\0\1\u0175\15\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\356\1\0\6\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\1\0\3\73\4\u0176\2\73\1\216" +
					"\2\73\1\u0176\1\217\1\u0176\5\73\1\u0176\3\73\2\u0176" +
					"\21\73\1\u0176\4\73\2\u0176\4\73\2\u0176\1\73\2\u0176" +
					"\3\73\1\u0176\1\73\30\0\1\101\1\102\1\u0177\1\u0178" +
					"\7\0\1\u0179\21\0\1\110\43\0\1\u017a\101\0\1\u017b" +
					"\125\0\1\u0133\44\0\1\u017c\135\0\1\u017d\45\0\1\u017e" +
					"\74\0\1\u0133\103\0\1\u017f\124\0\1\342\102\0\1\u0180" +
					"\101\0\1\u0133\36\0\1\u0181\77\0\1\u0182\115\0\1\u0183" +
					"\70\0\1\u0133\127\0\1\u0130\15\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\2\4\1\u0184\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\1\4\1\u0185" +
					"\1\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\33\0\1\u0186\130\0\1\u0187\60\0\1\u0188\34\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\u0189\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\2\4\1\u018a\15\4\32\0\1\u018b\47\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\3\4\1\u018c\2\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\3\4\1\u018d\2\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\u018e\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\15\0\1\u018f\16\0\1\u0190\12\0\1\u0191\11\0\1\u0192" +
					"\2\0\1\u0193\42\0\1\u0194\64\0\1\u0195\65\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\u0196\5\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\1\4\1\356\16\4\14\0\1\u0197\65\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\u0198" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\263\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\1\u012b\5\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\1\4\1\u0199\16\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\2\4\1\u0198\15\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\2\4" +
					"\1\u019a\3\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\64\0\1\u019b\15\0\6\4\2\0\1\55" +
					"\1\4\1\u019c\1\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\u019d\1\0\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\76\0\1\u019e\26\0\1\303\6\0\1\u019f\130\0\1\u015e" +
					"\41\0\1\u01a0\113\0\1\u01a1\37\0\1\u01a2\76\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\6\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\3\4\1\u01a3\14\4\2\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\2\4\1\u01a4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\u01a5\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\u01a6\1\4\1\u01a7\4\4\5\0" +
					"\1\u01a8\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\31\0\1\u0127\30\0\1\u012a\17\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\1\4\1\u01a9\4\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\2\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\u01aa\1\0\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\67\0\1\u01ab\3\0\1\u01ac\20\0\1\u01ad\112\0\1\u01ae" +
					"\52\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\4\4\1\u01af\13\4\25\0" +
					"\1\u01b0\2\0\1\u01b1\16\0\1\u01b2\14\0\1\u01b3\44\0" +
					"\1\u01b4\35\0\1\u01ab\52\0\1\u0122\41\0\4\4\5\0" +
					"\1\4\1\0\1\4\5\0\1\4\3\0\2\4\21\0" +
					"\1\4\4\0\2\4\4\0\2\4\1\0\2\4\3\0" +
					"\1\4\1\0\3\201\4\62\1\63\1\0\3\201\1\62" +
					"\1\201\1\62\5\201\1\62\3\201\2\62\21\201\1\62" +
					"\4\201\2\62\4\201\2\62\1\201\2\62\3\201\1\62" +
					"\1\201\27\0\1\u01b5\103\0\1\u01b6\127\0\1\u01b7\27\0" +
					"\1\u01b8\112\0\1\u019e\63\0\1\u01b9\65\0\3\73\4\14" +
					"\2\73\1\216\2\73\1\14\1\217\1\14\5\73\1\14" +
					"\3\73\2\14\21\73\1\14\4\73\2\14\4\73\2\14" +
					"\1\73\2\14\3\73\1\14\1\73\63\0\1\u01ba\57\0" +
					"\1\231\65\0\1\234\75\0\1\u01bb\76\0\1\u01bc\102\0" +
					"\1\u01bd\73\0\1\u01be\76\0\1\u01bf\135\0\1\u01c0\76\0" +
					"\1\u01bf\103\0\1\u01c1\43\0\1\u01c2\47\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\u01c3" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\u01c4\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\64\0" +
					"\1\u01c5\26\0\1\u01c6\100\0\1\u01c7\112\0\1\u01c8\52\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\u01c9\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\30\0\1\u01ca\51\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\u01cb\5\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\2\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\1\4\1\u01cc\16\4\33\0\1\u01cd\130\0\1\u01ce\1\u01cf" +
					"\55\0\1\u01d0\101\0\1\u01d1\75\0\1\u01d2\51\0\1\u01d3" +
					"\146\0\1\u01d4\42\0\1\u01d5\52\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\2\4\1\u01d6\3\4\6\0\3\4\1\0\2\4\1\0" +
					"\3\4\3\0\20\4\27\0\1\u01d7\52\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\u01d8\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\1\u01d9\5\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\3\4\1\u01da\2\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\26\0" +
					"\1\u01db\53\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\1\4\1\u01dc\16\4" +
					"\2\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\u01dd\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\27\0\1\u01de\131\0" +
					"\1\u01df\21\0\1\u01a2\26\0\1\u01e0\47\0\6\u01a2\3\0" +
					"\3\u01a2\1\0\1\u01a2\3\0\1\u01a2\1\0\1\u01a2\1\0" +
					"\6\u01a2\6\0\3\u01a2\1\0\2\u01a2\1\0\3\u01a2\3\0" +
					"\20\u01a2\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\5\4\1\356\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\2\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\0\4\4\1\u012b\1\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\61\0\1\u01e1" +
					"\52\0\1\u01e2\12\0\1\u01e3\11\0\1\u01e4\4\0\1\u01e5" +
					"\13\0\6\4\2\0\1\55\1\u01e6\2\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\43\0\1\u01e7" +
					"\23\0\1\u01ab\2\0\1\u019e\7\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\u01e8\1\0" +
					"\6\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\2\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\u01e9\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\20\4\70\0\1\u019e" +
					"\26\0\1\u019e\143\0\1\u01d5\56\0\1\u01ea\37\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\4\1\u01eb\4\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\23\0\1\u01ec\101\0" +
					"\1\u01ed\117\0\1\u01ee\47\0\1\u01ef\112\0\1\u01f0\101\0" +
					"\1\u01f1\74\0\1\u01f2\102\0\1\u0174\130\0\1\u019e\31\0" +
					"\1\u01f3\143\0\1\u01f4\45\0\1\u01f5\75\0\1\u01f6\101\0" +
					"\1\u01f7\132\0\1\u01f8\43\0\1\u01f9\64\0\1\342\111\0" +
					"\1\u01fa\105\0\1\u01fb\46\0\6\4\2\0\1\55\1\4" +
					"\1\u01cc\1\4\1\0\1\4\3\0\1\4\1\0\1\4" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\47\0\1\u0191\10\0\1\u01fc\3\0\1\u0193" +
					"\45\0\1\u0195\62\0\1\u01fd\111\0\1\u01fe\134\0\1\u01ff" +
					"\27\0\1\u0200\113\0\1\u0201\51\0\6\4\2\0\1\55" +
					"\3\4\1\0\1\4\3\0\1\4\1\0\1\4\1\0" +
					"\6\4\6\0\2\4\1\u0202\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\1\356\5\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\25\0\1\u0203\136\0\1\u0204\42\0\1\u0205\134\0\1\u0206" +
					"\75\0\1\u0205\47\0\1\u0207\136\0\1\u0208\34\0\1\u0209" +
					"\113\0\1\u020a\37\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\1\4\1\356\1\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\42\0\1\u020b\71\0\1\u020c\45\0\6\4\2\0" +
					"\1\55\3\4\1\0\1\4\3\0\1\4\1\0\1\u020d" +
					"\1\0\6\4\6\0\3\4\1\0\2\4\1\0\3\4" +
					"\3\0\20\4\2\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\1\4\1\u012b" +
					"\16\4\15\0\1\u020e\13\0\1\u0127\1\0\1\u0128\1\u0190" +
					"\24\0\1\u0192\1\u012a\17\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\u020f\1\0\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\34\0\1\u0210\7\0\1\u0211\1\u0212\12\0\1\u0213\1\u0214" +
					"\1\u0215\47\0\1\u0216\110\0\1\u015e\67\0\1\u0217\76\0" +
					"\1\u0218\74\0\1\u0219\115\0\1\u021a\65\0\1\u021b\71\0" +
					"\1\u021c\54\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\1\4\1\u021d\16\4" +
					"\45\0\1\u021e\34\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\0\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\2\4\1\u021f" +
					"\15\4\27\0\1\u0220\67\0\1\u0221\13\0\1\u0222\46\0" +
					"\6\4\2\0\1\55\3\4\1\0\1\4\3\0\1\4" +
					"\1\0\1\4\1\u0223\6\4\6\0\3\4\1\0\2\4" +
					"\1\0\3\4\3\0\20\4\61\0\1\u0224\52\0\1\u0225" +
					"\125\0\1\u0226\106\0\1\u0227\72\0\1\u0228\100\0\1\u019e" +
					"\44\0\1\u0229\100\0\1\u0205\76\0\1\u01fb\145\0\1\u022a" +
					"\27\0\1\u013d\114\0\1\u022b\64\0\1\u022c\101\0\1\u022d" +
					"\57\0\1\u022e\116\0\1\u0133\130\0\1\u022f\46\0\1\u0230" +
					"\106\0\1\u0231\63\0\1\u0232\76\0\1\u0233\104\0\1\u0234" +
					"\47\0\6\4\2\0\1\55\3\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\4\4\1\u0235\13\4\14\0" +
					"\1\u0236\116\0\1\u0237\71\0\1\u019e\102\0\1\u0174\77\0" +
					"\1\u019e\74\0\1\u0238\103\0\1\u0127\13\0\1\u0129\14\0" +
					"\1\u012a\34\0\1\u0221\77\0\1\u0221\13\0\1\u0239\113\0" +
					"\1\u023a\32\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\2\4\1\356\15\4" +
					"\65\0\1\u01cf\14\0\6\4\2\0\1\55\3\4\1\0" +
					"\1\4\3\0\1\4\1\0\1\4\1\u023b\6\4\6\0" +
					"\3\4\1\0\2\4\1\0\3\4\3\0\20\4\13\0" +
					"\1\u023c\13\0\1\u023d\134\0\1\u023e\27\0\1\u023f\130\0" +
					"\1\u0240\45\0\1\u0241\131\0\1\u0242\62\0\1\u0243\102\0" +
					"\1\u015e\100\0\1\u0174\73\0\1\u0244\131\0\1\u0245\47\0" +
					"\1\u0246\74\0\1\u0247\52\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\0\1\u0248" +
					"\5\4\6\0\3\4\1\0\2\4\1\0\3\4\3\0" +
					"\20\4\63\0\1\u0249\16\0\6\4\2\0\1\55\3\4" +
					"\1\0\1\4\3\0\1\4\1\0\1\4\1\u024a\6\4" +
					"\6\0\3\4\1\0\2\4\1\0\3\4\3\0\20\4" +
					"\64\0\1\u024b\45\0\1\u024c\112\0\1\u024d\57\0\1\u024e" +
					"\77\0\1\u024f\65\0\1\u0250\111\0\1\u0251\77\0\1\u0252" +
					"\140\0\1\u0253\25\0\1\u0254\116\0\1\u0177\130\0\1\u0255" +
					"\42\0\1\u0256\117\0\1\u0257\57\0\1\u013d\115\0\1\u0258" +
					"\57\0\1\u01d5\105\0\1\u0239\77\0\1\u0128\11\0\1\u0129" +
					"\14\0\1\u012a\64\0\1\u0259\115\0\1\u025a\14\0\6\4" +
					"\2\0\1\55\1\4\1\356\1\4\1\0\1\4\3\0" +
					"\1\4\1\0\1\4\1\0\6\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\63\0\1\u025b\41\0" +
					"\1\u025c\133\0\1\u0174\63\0\1\u025d\77\0\1\u025e\116\0" +
					"\1\u025f\57\0\1\u0260\65\0\1\u0261\100\0\1\u0262\73\0" +
					"\1\u0263\100\0\1\u0264\103\0\1\u0265\73\0\1\u0266\76\0" +
					"\1\u015e\115\0\1\u0267\57\0\1\u0268\106\0\1\u0269\106\0" +
					"\1\u026a\36\0\6\4\2\0\1\55\3\4\1\0\1\4" +
					"\3\0\1\4\1\0\1\4\1\0\6\4\6\0\3\4" +
					"\1\0\2\4\1\0\3\4\3\0\4\4\1\u026b\13\4" +
					"\43\0\1\u0253\70\0\1\u026c\71\0\1\u026d\133\0\1\u026e" +
					"\44\0\1\u026f\64\0\1\u0270\6\0\1\u0271\120\0\1\u0272" +
					"\66\0\1\u0273\106\0\1\u016b\116\0\1\u0274\105\0\1\u01ab" +
					"\71\0\1\u0205\32\0\1\u0133\115\0\1\u0133\112\0\1\u0275" +
					"\114\0\1\u019e\43\0\1\u0276\77\0\1\u0277\100\0\1\u0278" +
					"\102\0\1\u0279\74\0\1\u027a\77\0\1\u027b\101\0\1\u019e" +
					"\73\0\1\u027c\101\0\1\u027d\135\0\1\u027e\37\0\1\u027f" +
					"\101\0\1\u0280\77\0\1\u0281\75\0\1\u0282\66\0\1\u0283" +
					"\125\0\1\u0284\71\0\1\u019e\127\0\1\u0285\15\0\6\4" +
					"\2\0\1\55\3\4\1\0\1\4\3\0\1\4\1\0" +
					"\1\4\1\0\1\4\1\356\4\4\6\0\3\4\1\0" +
					"\2\4\1\0\3\4\3\0\20\4\65\0\1\u0286\43\0" +
					"\1\u0127\1\0\1\u0128\11\0\1\u0129\114\0\1\u0207\104\0" +
					"\1\u01ab\7\0\1\u019e\27\0\1\u0287\115\0\1\u0174\61\0" +
					"\1\u0288\77\0\1\u0289\77\0\1\u0251\77\0\1\u028a\102\0" +
					"\1\u028b\127\0\1\u028c\60\0\1\u019e\50\0\1\u019e\162\0" +
					"\1\u019e\61\0\1\u0278\46\0\1\u028d\114\0\1\u028e\120\0" +
					"\1\u028f\41\0\1\u0290\62\0\1\u0291\150\0\1\u0292\74\0" +
					"\1\u0293\101\0\1\u0294\57\0\1\u01e7\23\0\1\u01ab\3\0" +
					"\1\u01ac\66\0\1\u0295\31\0\1\u0296\110\0\1\u0207\117\0" +
					"\1\u0297\60\0\1\u0298\132\0\1\u0299\46\0\1\u029a\101\0" +
					"\1\u029b\107\0\1\u029c\116\0\1\u028d\102\0\1\u029d\44\0" +
					"\1\u029e\100\0\1\u029f\133\0\1\u028d\40\0\1\u028d\112\0" +
					"\1\u02a0\63\0\1\u02a1\132\0\1\u02a2\102\0\1\u0279\62\0" +
					"\1\u0191\14\0\1\u0193\56\0\1\u0133\64\0\1\u02a3\76\0" +
					"\1\u02a4\100\0\1\u02a5\77\0\1\u02a6\101\0\1\u02a7\100\0" +
					"\1\u028d\135\0\1\u02a8\35\0\1\u02a9\13\0\1\u02aa\77\0" +
					"\1\u02ab\66\0\1\u02ac\77\0\1\u019e\77\0\1\u02ad\111\0" +
					"\1\u02ae\114\0\1\u02af\31\0\1\u02b0\151\0\1\u02b1\44\0" +
					"\1\u02b2\75\0\1\u02b3\134\0\1\u028d\26\0\1\u02b4\126\0" +
					"\1\u027d\61\0\1\u028d\140\0\1\u02b5\55\0\1\u0205\47\0" +
					"\1\u02b6\147\0\1\u02b7\76\0\1\u0205\31\0\1\u02b8\144\0" +
					"\1\u01f3\31\0\1\u02b9\147\0\1\u019e\60\0\1\u02ba\130\0" +
					"\1\u02bb\26\0\1\u02bc\134\0\1\u02bd\16\0";

	private static int[] zzUnpackTrans() {
		int[] result = new int[43456];
		int offset = 0;
		offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
		return result;
	}

	private static int zzUnpackTrans(String packed, int offset, int[] result) {
		int i = 0; /* index in packed string */
		int j = offset; /* index in unpacked array */
		int l = packed.length();
		while (i < l) {
			int count = packed.charAt(i++);
			int value = packed.charAt(i++);
			value--;
			do
				result[j++] = value;
			while (--count > 0);
		}
		return j;
	}

	/* error codes */
	private static final int ZZ_UNKNOWN_ERROR = 0;
	private static final int ZZ_NO_MATCH = 1;
	private static final int ZZ_PUSHBACK_2BIG = 2;

	/* error messages for the codes above */
	private static final String ZZ_ERROR_MSG[] = {
			"Unkown internal scanner error",
			"Error: could not match input",
			"Error: pushback value was too large"
	};

	/**
	 * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
	 */
	private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();

	private static final String ZZ_ATTRIBUTE_PACKED_0 =
			"\2\0\1\11\4\1\1\11\4\1\1\11\13\1\2\11" +
					"\16\1\1\11\3\1\1\0\1\1\1\0\3\1\1\11" +
					"\1\0\10\1\1\11\1\1\12\0\33\1\6\0\1\11" +
					"\1\0\15\1\5\0\1\1\1\0\2\1\1\11\14\1" +
					"\1\11\1\1\20\0\35\1\7\0\10\1\1\0\2\1" +
					"\5\0\1\1\2\0\1\1\1\0\2\1\22\0\5\1" +
					"\1\0\11\1\1\0\2\1\1\0\6\1\1\0\2\1" +
					"\11\0\4\1\1\0\4\1\2\0\2\1\2\0\1\1" +
					"\1\0\1\1\6\0\2\1\6\0\1\11\13\0\2\1" +
					"\3\0\2\1\1\0\3\1\3\0\2\1\1\0\6\1" +
					"\1\0\3\1\5\0\4\1\1\0\2\1\3\0\1\1" +
					"\5\0\1\1\6\0\1\1\7\0\1\1\4\0\3\1" +
					"\4\0\1\1\1\0\2\1\10\0\1\1\1\0\3\1" +
					"\1\0\2\1\1\11\3\0\3\1\2\0\1\1\1\0" +
					"\2\1\3\0\2\1\23\0\1\1\7\0\2\1\10\0" +
					"\3\1\1\0\2\1\1\0\1\1\11\0\1\1\1\0" +
					"\1\1\2\0\1\1\22\0\1\1\3\0\1\1\12\0" +
					"\1\1\1\0\1\1\15\0\1\1\1\0\1\1\25\0" +
					"\1\1\22\0\1\1\10\0\1\1\26\0\1\1\2\0" +
					"\1\1\35\0\1\1\3\0\1\1\6\0\1\1\50\0" +
					"\1\11";

	private static int[] zzUnpackAttribute() {
		int[] result = new int[701];
		int offset = 0;
		offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
		return result;
	}

	private static int zzUnpackAttribute(String packed, int offset, int[] result) {
		int i = 0; /* index in packed string */
		int j = offset; /* index in unpacked array */
		int l = packed.length();
		while (i < l) {
			int count = packed.charAt(i++);
			int value = packed.charAt(i++);
			do
				result[j++] = value;
			while (--count > 0);
		}
		return j;
	}

	/** the input device */
	private Reader zzReader;

	/** the current state of the DFA */
	private int zzState;

	/** the current lexical state */
	private int zzLexicalState = YYINITIAL;

	/**
	 * this buffer contains the current text to be matched and is
	 * the source of the yytext() string
	 */
	private char zzBuffer[];

	/** the textposition at the last accepting state */
	private int zzMarkedPos;

	/** the textposition at the last state to be included in yytext */
	private int zzPushbackPos;

	/** the current text position in the buffer */
	private int zzCurrentPos;

	/** startRead marks the beginning of the yytext() string in the buffer */
	private int zzStartRead;

	/**
	 * endRead marks the last character in the buffer, that has been read
	 * from input
	 */
	private int zzEndRead;

	/** number of newlines encountered up to the start of the matched text */
	private int yyline;

	/** the number of characters up to the start of the matched text */
	private int yychar;

	/**
	 * the number of characters from the last newline up to the start of the
	 * matched text
	 */
	private int yycolumn;

	/**
	 * zzAtBOL == true <=> the scanner is currently at the beginning of a line
	 */
	private boolean zzAtBOL = true;

	/** zzAtEOF == true <=> the scanner is at the EOF */
	private boolean zzAtEOF;

	/* user code: */

	/**
	 * Constructor. This must be here because JFlex does not generate a
	 * no-parameter constructor.
	 */
	public SmaliTokenMaker() {
	}

	/**
	 * Adds the token specified to the current linked list of tokens.
	 *
	 * @param tokenType The token's type.
	 * @see #addToken(int, int, int)
	 */
	private void addHyperlinkToken(int start, int end, int tokenType) {
		int so = start + offsetShift;
		addToken(zzBuffer, start, end, tokenType, so, true);
	}

	/**
	 * Adds the token specified to the current linked list of tokens.
	 *
	 * @param tokenType The token's type.
	 */
	private void addToken(int tokenType) {
		addToken(zzStartRead, zzMarkedPos - 1, tokenType);
	}

	/**
	 * Adds the token specified to the current linked list of tokens.
	 *
	 * @param tokenType The token's type.
	 * @see #addHyperlinkToken(int, int, int)
	 */
	private void addToken(int start, int end, int tokenType) {
		int so = start + offsetShift;
		addToken(zzBuffer, start, end, tokenType, so, false);
	}

	/**
	 * Adds the token specified to the current linked list of tokens.
	 *
	 * @param array       The character array.
	 * @param start       The starting offset in the array.
	 * @param end         The ending offset in the array.
	 * @param tokenType   The token's type.
	 * @param startOffset The offset in the document at which this token
	 *                    occurs.
	 * @param hyperlink   Whether this token is a hyperlink.
	 */
	public void addToken(char[] array, int start, int end, int tokenType,
			int startOffset, boolean hyperlink) {
		super.addToken(array, start, end, tokenType, startOffset, hyperlink);
		zzStartRead = zzMarkedPos;
	}

	/**
	 * {@inheritDoc}
	 */
	public String[] getLineCommentStartAndEnd(int languageIndex) {
		return new String[] { "#", null };
	}

	/**
	 * Returns the first token in the linked list of tokens generated
	 * from <code>text</code>. This method must be implemented by
	 * subclasses so they can correctly implement syntax highlighting.
	 *
	 * @param text             The text from which to get tokens.
	 * @param initialTokenType The token type we should start with.
	 * @param startOffset      The offset into the document at which
	 *                         <code>text</code> starts.
	 * @return The first <code>Token</code> in a linked list representing
	 *         the syntax highlighted text.
	 */
	public Token getTokenList(Segment text, int initialTokenType, int startOffset) {

		resetTokenList();
		this.offsetShift = -text.offset + startOffset;

		// Start off in the proper state.
		int state = Token.NULL;
		switch (initialTokenType) {
			/* No multi-line comments */
			/* No documentation comments */
			default:
				state = Token.NULL;
		}

		s = text;
		try {
			yyreset(zzReader);
			yybegin(state);
			return yylex();
		} catch (IOException ioe) {
			ioe.printStackTrace();
			return new TokenImpl();
		}

	}

	/**
	 * Refills the input buffer.
	 *
	 * @return <code>true</code> if EOF was reached, otherwise
	 *         <code>false</code>.
	 */
	private boolean zzRefill() {
		return zzCurrentPos >= s.offset + s.count;
	}

	/**
	 * Resets the scanner to read from a new input stream.
	 * Does not close the old reader.
	 *
	 * All internal variables are reset, the old input stream
	 * <b>cannot</b> be reused (internal buffer is discarded and lost).
	 * Lexical state is set to <tt>YY_INITIAL</tt>.
	 *
	 * @param reader the new input stream
	 */
	public final void yyreset(Reader reader) {
		// 's' has been updated.
		zzBuffer = s.array;
		/*
		 * We replaced the line below with the two below it because zzRefill
		 * no longer "refills" the buffer (since the way we do it, it's always
		 * "full" the first time through, since it points to the segment's
		 * array). So, we assign zzEndRead here.
		 */
		// zzStartRead = zzEndRead = s.offset;
		zzStartRead = s.offset;
		zzEndRead = zzStartRead + s.count - 1;
		zzCurrentPos = zzMarkedPos = zzPushbackPos = s.offset;
		zzLexicalState = YYINITIAL;
		zzReader = reader;
		zzAtBOL = true;
		zzAtEOF = false;
	}

	/**
	 * Creates a new scanner
	 * There is also a java.io.InputStream version of this constructor.
	 *
	 * @param in the java.io.Reader to read input from.
	 */
	public SmaliTokenMaker(Reader in) {
		this.zzReader = in;
	}

	/**
	 * Creates a new scanner.
	 * There is also java.io.Reader version of this constructor.
	 *
	 * @param in the java.io.Inputstream to read input from.
	 */
	public SmaliTokenMaker(InputStream in) {
		this(new InputStreamReader(in));
	}

	/**
	 * Unpacks the compressed character translation table.
	 *
	 * @param packed the packed character translation table
	 * @return the unpacked character translation table
	 */
	private static char[] zzUnpackCMap(String packed) {
		char[] map = new char[0x10000];
		int i = 0; /* index in packed string */
		int j = 0; /* index in unpacked array */
		while (i < 188) {
			int count = packed.charAt(i++);
			char value = packed.charAt(i++);
			do
				map[j++] = value;
			while (--count > 0);
		}
		return map;
	}

	/**
	 * Closes the input stream.
	 */
	public final void yyclose() throws IOException {
		zzAtEOF = true; /* indicate end of file */
		zzEndRead = zzStartRead; /* invalidate buffer */

		if (zzReader != null)
			zzReader.close();
	}

	/**
	 * Enters a new lexical state
	 *
	 * @param newState the new lexical state
	 */
	public final void yybegin(int newState) {
		zzLexicalState = newState;
	}

	/**
	 * Returns the text matched by the current regular expression.
	 */
	public final String yytext() {
		return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
	}

	/**
	 * Returns the character at position <tt>pos</tt> from the
	 * matched text.
	 *
	 * It is equivalent to yytext().charAt(pos), but faster
	 *
	 * @param pos the position of the character to fetch.
	 *            A value from 0 to yylength()-1.
	 *
	 * @return the character at position pos
	 */
	public final char yycharat(int pos) {
		return zzBuffer[zzStartRead + pos];
	}

	/**
	 * Returns the length of the matched text region.
	 */
	public final int yylength() {
		return zzMarkedPos - zzStartRead;
	}

	/**
	 * Reports an error that occured while scanning.
	 *
	 * In a wellformed scanner (no or only correct usage of
	 * yypushback(int) and a match-all fallback rule) this method
	 * will only be called with things that "Can't Possibly Happen".
	 * If this method is called, something is seriously wrong
	 * (e.g. a JFlex bug producing a faulty scanner etc.).
	 *
	 * Usual syntax/scanner level error handling should be done
	 * in error fallback rules.
	 *
	 * @param errorCode the code of the errormessage to display
	 */
	private void zzScanError(int errorCode) {
		String message;
		try {
			message = ZZ_ERROR_MSG[errorCode];
		} catch (ArrayIndexOutOfBoundsException e) {
			message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
		}

		throw new Error(message);
	}

	/**
	 * Pushes the specified amount of characters back into the input stream.
	 *
	 * They will be read again by then next call of the scanning method
	 *
	 * @param number the number of characters to be read again.
	 *               This number must not be greater than yylength()!
	 */
	public void yypushback(int number) {
		if (number > yylength())
			zzScanError(ZZ_PUSHBACK_2BIG);

		zzMarkedPos -= number;
	}

	/**
	 * Resumes scanning until the next regular expression is matched,
	 * the end of input is encountered or an I/O-Error occurs.
	 *
	 * @return the next token
	 * @exception IOException if any I/O-Error occurs
	 */
	public Token yylex() throws IOException {
		int zzInput;
		int zzAction;

		// cached fields:
		int zzCurrentPosL;
		int zzMarkedPosL;
		int zzEndReadL = zzEndRead;
		char[] zzBufferL = zzBuffer;
		char[] zzCMapL = ZZ_CMAP;

		int[] zzTransL = ZZ_TRANS;
		int[] zzRowMapL = ZZ_ROWMAP;
		int[] zzAttrL = ZZ_ATTRIBUTE;

		while (true) {
			zzMarkedPosL = zzMarkedPos;

			zzAction = -1;

			zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;

			zzState = zzLexicalState;

			zzForAction: {
				while (true) {

					if (zzCurrentPosL < zzEndReadL)
						zzInput = zzBufferL[zzCurrentPosL++];
					else if (zzAtEOF) {
						zzInput = YYEOF;
						break zzForAction;
					} else {
						// store back cached positions
						zzCurrentPos = zzCurrentPosL;
						zzMarkedPos = zzMarkedPosL;
						boolean eof = zzRefill();
						// get translated positions and possibly new buffer
						zzCurrentPosL = zzCurrentPos;
						zzMarkedPosL = zzMarkedPos;
						zzBufferL = zzBuffer;
						zzEndReadL = zzEndRead;
						if (eof) {
							zzInput = YYEOF;
							break zzForAction;
						} else {
							zzInput = zzBufferL[zzCurrentPosL++];
						}
					}
					int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];
					if (zzNext == -1)
						break zzForAction;
					zzState = zzNext;

					int zzAttributes = zzAttrL[zzState];
					if ((zzAttributes & 1) == 1) {
						zzAction = zzState;
						zzMarkedPosL = zzCurrentPosL;
						if ((zzAttributes & 8) == 8)
							break zzForAction;
					}

				}
			}

			// store back cached position
			zzMarkedPos = zzMarkedPosL;

			switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
				case 4: {
					addNullToken();
					return firstToken;
				}
				case 27:
					break;
				case 19: {
					addToken(Token.LITERAL_CHAR);
				}
				case 28:
					break;
				case 26: {
					addToken(Token.MARKUP_TAG_NAME);
				}
				case 29:
					break;
				case 7: {
					addToken(Token.WHITESPACE);
				}
				case 30:
					break;
				case 18: {
					addToken(Token.LITERAL_NUMBER_HEXADECIMAL);
				}
				case 31:
					break;
				case 21: {
					addToken(Token.ERROR_STRING_DOUBLE);
				}
				case 32:
					break;
				case 17: {
					addToken(Token.LITERAL_NUMBER_FLOAT);
				}
				case 33:
					break;
				case 22: {
					addToken(Token.RESERVED_WORD);
				}
				case 34:
					break;
				case 8: {
					addToken(Token.SEPARATOR);
				}
				case 35:
					break;
				case 10: {
					addToken(Token.VARIABLE);
				}
				case 36:
					break;
				case 1: {
					addToken(Token.IDENTIFIER);
				}
				case 37:
					break;
				case 13: {
					addToken(start, zzStartRead - 1, Token.COMMENT_EOL);
					addNullToken();
					return firstToken;
				}
				case 38:
					break;
				case 20: {
					addToken(Token.FUNCTION);
				}
				case 39:
					break;
				case 3: {
					addToken(Token.ERROR_CHAR);
					addNullToken();
					return firstToken;
				}
				case 40:
					break;
				case 5: {
					addToken(Token.ERROR_STRING_DOUBLE);
					addNullToken();
					return firstToken;
				}
				case 41:
					break;
				case 11: {
					addToken(Token.DATA_TYPE);
				}
				case 42:
					break;
				case 15: {
					addToken(Token.ERROR_CHAR);
				}
				case 43:
					break;
				case 23: {
					addToken(Token.LITERAL_BOOLEAN);
				}
				case 44:
					break;
				case 16: {
					addToken(Token.LITERAL_STRING_DOUBLE_QUOTE);
				}
				case 45:
					break;
				case 24: {
					int temp = zzStartRead;
					addToken(start, zzStartRead - 1, Token.COMMENT_EOL);
					addHyperlinkToken(temp, zzMarkedPos - 1, Token.COMMENT_EOL);
					start = zzMarkedPos;
				}
				case 46:
					break;
				case 25: {
					addToken(Token.RESERVED_WORD_2);
				}
				case 47:
					break;
				case 14: {
					addToken(Token.ERROR_NUMBER_FORMAT);
				}
				case 48:
					break;
				case 6: {
					start = zzMarkedPos - 1;
					yybegin(EOL_COMMENT);
				}
				case 49:
					break;
				case 2: {
					addToken(Token.LITERAL_NUMBER_DECIMAL_INT);
				}
				case 50:
					break;
				case 9: {
					addToken(Token.OPERATOR);
				}
				case 51:
					break;
				case 12: {
				}
				case 52:
					break;
				default:
					if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
						zzAtEOF = true;
						switch (zzLexicalState) {
							case EOL_COMMENT: {
								addToken(start, zzStartRead - 1, Token.COMMENT_EOL);
								addNullToken();
								return firstToken;
							}
							case 702:
								break;
							case YYINITIAL: {
								addNullToken();
								return firstToken;
							}
							case 703:
								break;
							default:
								return null;
						}
					} else {
						zzScanError(ZZ_NO_MATCH);
					}
			}
		}
	}

}
