
#include "generic.h"
#include "lfptypes.h"

#include "define.h"

#ifdef PC
 #include <math.h>
#endif

extern	SI	LFPSqrt(UI);
extern	SW	LFPAsin(int);
extern	SW	LFPAtn (int,int );
extern	short int sin_tbl[];

#ifndef abs
 #define abs(A)  ( ((A) > 0) ? (A) : -(A))
#endif

SW sin_tbl[]={
 0,50,101,151,201,251,302,352,
 402,452,503,553,603,653,704,754,
 804,854,904,955,1005,1055,1105,1155,
 1205,1255,1306,1356,1406,1456,1506,1556,
 1606,1656,1706,1756,1806,1856,1906,1956,
 2006,2055,2105,2155,2205,2255,2305,2354,
 2404,2454,2503,2553,2603,2652,2702,2752,
 2801,2851,2900,2949,2999,3048,3098,3147,
 3196,3246,3295,3344,3393,3442,3492,3541,
 3590,3639,3688,3737,3786,3835,3883,3932,
 3981,4030,4078,4127,4176,4224,4273,4321,
 4370,4418,4467,4515,4563,4612,4660,4708,
 4756,4804,4852,4900,4948,4996,5044,5092,
 5139,5187,5235,5282,5330,5377,5425,5472,
 5520,5567,5614,5661,5708,5756,5803,5850,
 5897,5943,5990,6037,6084,6130,6177,6223,
 6270,6316,6363,6409,6455,6501,6547,6593,
 6639,6685,6731,6777,6823,6868,6914,6960,
 7005,7050,7096,7141,7186,7231,7277,7322,
 7366,7411,7456,7501,7545,7590,7635,7679,
 7723,7768,7812,7856,7900,7944,7988,8032,
 8076,8119,8163,8207,8250,8293,8337,8380,
 8423,8466,8509,8552,8595,8638,8680,8723,
 8765,8808,8850,8892,8935,8977,9019,9061,
 9102,9144,9186,9227,9269,9310,9352,9393,
 9434,9475,9516,9557,9598,9638,9679,9720,
 9760,9800,9841,9881,9921,9961,10001,10040,
 10080,10120,10159,10198,10238,10277,10316,10355,
 10394,10433,10471,10510,10549,10587,10625,10663,
 10702,10740,10778,10815,10853,10891,10928,10966,
 11003,11040,11077,11114,11151,11188,11224,11261,
 11297,11334,11370,11406,11442,11478,11514,11550,
 11585,11621,11656,11691,11727,11762,11797,11831,
 11866,11901,11935,11970,12004,12038,12072,12106,
 12140,12173,12207,12241,12274,12307,12340,12373,
 12406,12439,12472,12504,12537,12569,12601,12633,
 12665,12697,12729,12760,12792,12823,12854,12885,
 12916,12947,12978,13009,13039,13069,13100,13130,
 13160,13190,13219,13249,13279,13308,13337,13366,
 13395,13424,13453,13482,13510,13538,13567,13595,
 13623,13651,13678,13706,13733,13761,13788,13815,
 13842,13869,13896,13922,13949,13975,14001,14027,
 14053,14079,14104,14130,14155,14181,14206,14231,
 14256,14280,14305,14329,14354,14378,14402,14426,
 14449,14473,14497,14520,14543,14566,14589,14612,
 14635,14657,14680,14702,14724,14746,14768,14789,
 14811,14832,14854,14875,14896,14917,14937,14958,
 14978,14999,15019,15039,15059,15079,15098,15118,
 15137,15156,15175,15194,15213,15231,15250,15268,
 15286,15304,15322,15340,15357,15375,15392,15409,
 15426,15443,15460,15476,15493,15509,15525,15541,
 15557,15573,15588,15604,15619,15634,15649,15664,
 15679,15693,15707,15722,15736,15750,15763,15777,
 15791,15804,15817,15830,15843,15856,15868,15881,
 15893,15905,15917,15929,15941,15952,15964,15975,
 15986,15997,16008,16018,16029,16039,16049,16059,
 16069,16079,16089,16098,16107,16116,16125,16134,
 16143,16151,16160,16168,16176,16184,16192,16199,
 16207,16214,16221,16228,16235,16242,16248,16255,
 16261,16267,16273,16279,16284,16290,16295,16300,
 16305,16310,16315,16319,16324,16328,16332,16336,
 16340,16343,16347,16350,16353,16356,16359,16362,
 16364,16367,16369,16371,16373,16375,16376,16378,
 16379,16380,16381,16382,16383,16383,16384,16384,
 16384,16384,16384,16383,16383,16382,16381,16380,
 16379,16378,16376,16375,16373,16371,16369,16367,
 16364,16362,16359,16356,16353,16350,16347,16343,
 16340,16336,16332,16328,16324,16319,16315,16310,
 16305,16300,16295,16290,16284,16279,16273,16267,
 16261,16255,16248,16242,16235,16228,16221,16214,
 16207,16199,16192,16184,16176,16168,16160,16151,
 16143,16134,16125,16116,16107,16098,16088,16079,
 16069,16059,16049,16039,16029,16018,16008,15997,
 15986,15975,15964,15952,15941,15929,15917,15905,
 15893,15881,15868,15856,15843,15830,15817,15804,
 15790,15777,15763,15750,15736,15722,15707,15693,
 15678,15664,15649,15634,15619,15604,15588,15573,
 15557,15541,15525,15509,15493,15476,15460,15443,
 15426,15409,15392,15375,15357,15340,15322,15304,
 15286,15268,15250,15231,15213,15194,15175,15156,
 15137,15118,15098,15078,15059,15039,15019,14999,
 14978,14958,14937,14917,14896,14875,14854,14832,
 14811,14789,14768,14746,14724,14702,14679,14657,
 14635,14612,14589,14566,14543,14520,14496,14473,
 14449,14426,14402,14378,14353,14329,14305,14280,
 14255,14231,14206,14181,14155,14130,14104,14079,
 14053,14027,14001,13975,13949,13922,13896,13869,
 13842,13815,13788,13761,13733,13706,13678,13651,
 13623,13595,13567,13538,13510,13482,13453,13424,
 13395,13366,13337,13308,13278,13249,13219,13190,
 13160,13130,13100,13069,13039,13008,12978,12947,
 12916,12885,12854,12823,12792,12760,12728,12697,
 12665,12633,12601,12569,12536,12504,12471,12439,
 12406,12373,12340,12307,12274,12240,12207,12173,
 12140,12106,12072,12038,12004,11969,11935,11901,
 11866,11831,11796,11762,11726,11691,11656,11621,
 11585,11550,11514,11478,11442,11406,11370,11334,
 11297,11261,11224,11188,11151,11114,11077,11040,
 11003,10965,10928,10891,10853,10815,10777,10740,
 10702,10663,10625,10587,10548,10510,10471,10433,
 10394,10355,10316,10277,10238,10198,10159,10119,
 10080,10040,10000,9961,9921,9881,9840,9800,
 9760,9719,9679,9638,9598,9557,9516,9475,
 9434,9393,9352,9310,9269,9227,9186,9144,
 9102,9061,9019,8977,8935,8892,8850,8808,
 8765,8723,8680,8638,8595,8552,8509,8466,
 8423,8380,8337,8293,8250,8206,8163,8119,
 8076,8032,7988,7944,7900,7856,7812,7768,
 7723,7679,7634,7590,7545,7501,7456,7411,
 7366,7321,7276,7231,7186,7141,7096,7050,
 7005,6959,6914,6868,6823,6777,6731,6685,
 6639,6593,6547,6501,6455,6409,6363,6316,
 6270,6223,6177,6130,6084,6037,5990,5943,
 5896,5849,5803,5755,5708,5661,5614,5567,
 5519,5472,5425,5377,5330,5282,5235,5187,
 5139,5091,5044,4996,4948,4900,4852,4804,
 4756,4708,4660,4611,4563,4515,4467,4418,
 4370,4321,4273,4224,4176,4127,4078,4030,
 3981,3932,3883,3834,3786,3737,3688,3639,
 3590,3541,3491,3442,3393,3344,3295,3246,
 3196,3147,3098,3048,2999,2949,2900,2850,
 2801,2751,2702,2652,2603,2553,2503,2454,
 2404,2354,2304,2255,2205,2155,2105,2055,
 2005,1956,1906,1856,1806,1756,1706,1656,
 1606,1556,1506,1456,1406,1355,1305,1255,
 1205,1155,1105,1055,1005,954,904,854,
 804,754,703,653,603,553,502,452,
 402,352,301,251,201,151,100,50,
 0,-50,-101,-151,-201,-251,-302,-352,
-402,-452,-503,-553,-603,-653,-704,-754,
-804,-854,-904,-955,-1005,-1055,-1105,-1155,
-1205,-1256,-1306,-1356,-1406,-1456,-1506,-1556,
-1606,-1656,-1706,-1756,-1806,-1856,-1906,-1956,
-2006,-2056,-2105,-2155,-2205,-2255,-2305,-2354,
-2404,-2454,-2504,-2553,-2603,-2652,-2702,-2752,
-2801,-2851,-2900,-2950,-2999,-3048,-3098,-3147,
-3196,-3246,-3295,-3344,-3393,-3443,-3492,-3541,
-3590,-3639,-3688,-3737,-3786,-3835,-3884,-3932,
-3981,-4030,-4079,-4127,-4176,-4224,-4273,-4321,
-4370,-4418,-4467,-4515,-4563,-4612,-4660,-4708,
-4756,-4804,-4852,-4900,-4948,-4996,-5044,-5092,
-5139,-5187,-5235,-5282,-5330,-5378,-5425,-5472,
-5520,-5567,-5614,-5661,-5709,-5756,-5803,-5850,
-5897,-5944,-5990,-6037,-6084,-6130,-6177,-6224,
-6270,-6316,-6363,-6409,-6455,-6501,-6548,-6594,
-6640,-6686,-6731,-6777,-6823,-6869,-6914,-6960,
-7005,-7051,-7096,-7141,-7186,-7232,-7277,-7322,
-7367,-7411,-7456,-7501,-7546,-7590,-7635,-7679,
-7723,-7768,-7812,-7856,-7900,-7944,-7988,-8032,
-8076,-8119,-8163,-8207,-8250,-8293,-8337,-8380,
-8423,-8466,-8509,-8552,-8595,-8638,-8680,-8723,
-8766,-8808,-8850,-8893,-8935,-8977,-9019,-9061,
-9103,-9144,-9186,-9228,-9269,-9310,-9352,-9393,
-9434,-9475,-9516,-9557,-9598,-9639,-9679,-9720,
-9760,-9800,-9841,-9881,-9921,-9961,-10001,-10040,
-10080,-10120,-10159,-10199,-10238,-10277,-10316,-10355,
-10394,-10433,-10472,-10510,-10549,-10587,-10625,-10664,
-10702,-10740,-10778,-10815,-10853,-10891,-10928,-10966,
-11003,-11040,-11077,-11114,-11151,-11188,-11225,-11261,
-11298,-11334,-11370,-11406,-11442,-11478,-11514,-11550,
-11585,-11621,-11656,-11691,-11727,-11762,-11797,-11831,
-11866,-11901,-11935,-11970,-12004,-12038,-12072,-12106,
-12140,-12174,-12207,-12241,-12274,-12307,-12340,-12373,
-12406,-12439,-12472,-12504,-12537,-12569,-12601,-12633,
-12665,-12697,-12729,-12760,-12792,-12823,-12854,-12885,
-12916,-12947,-12978,-13009,-13039,-13069,-13100,-13130,
-13160,-13190,-13219,-13249,-13279,-13308,-13337,-13366,
-13395,-13424,-13453,-13482,-13510,-13539,-13567,-13595,
-13623,-13651,-13678,-13706,-13734,-13761,-13788,-13815,
-13842,-13869,-13896,-13922,-13949,-13975,-14001,-14027,
-14053,-14079,-14105,-14130,-14155,-14181,-14206,-14231,
-14256,-14280,-14305,-14329,-14354,-14378,-14402,-14426,
-14449,-14473,-14497,-14520,-14543,-14566,-14589,-14612,
-14635,-14657,-14680,-14702,-14724,-14746,-14768,-14789,
-14811,-14832,-14854,-14875,-14896,-14917,-14937,-14958,
-14978,-14999,-15019,-15039,-15059,-15079,-15098,-15118,
-15137,-15156,-15175,-15194,-15213,-15231,-15250,-15268,
-15286,-15304,-15322,-15340,-15357,-15375,-15392,-15409,
-15426,-15443,-15460,-15476,-15493,-15509,-15525,-15541,
-15557,-15573,-15588,-15604,-15619,-15634,-15649,-15664,
-15679,-15693,-15707,-15722,-15736,-15750,-15763,-15777,
-15791,-15804,-15817,-15830,-15843,-15856,-15868,-15881,
-15893,-15905,-15917,-15929,-15941,-15952,-15964,-15975,
-15986,-15997,-16008,-16018,-16029,-16039,-16049,-16059,
-16069,-16079,-16089,-16098,-16107,-16116,-16125,-16134,
-16143,-16151,-16160,-16168,-16176,-16184,-16192,-16199,
-16207,-16214,-16221,-16228,-16235,-16242,-16248,-16255,
-16261,-16267,-16273,-16279,-16284,-16290,-16295,-16300,
-16305,-16310,-16315,-16319,-16324,-16328,-16332,-16336,
-16340,-16343,-16347,-16350,-16353,-16356,-16359,-16362,
-16364,-16367,-16369,-16371,-16373,-16375,-16376,-16378,
-16379,-16380,-16381,-16382,-16383,-16383,-16384,-16384,
-16384,-16384,-16384,-16383,-16383,-16382,-16381,-16380,
-16379,-16378,-16376,-16375,-16373,-16371,-16369,-16367,
-16364,-16362,-16359,-16356,-16353,-16350,-16347,-16343,
-16340,-16336,-16332,-16328,-16324,-16319,-16315,-16310,
-16305,-16300,-16295,-16290,-16284,-16279,-16273,-16267,
-16261,-16255,-16248,-16242,-16235,-16228,-16221,-16214,
-16207,-16199,-16192,-16184,-16176,-16168,-16160,-16151,
-16143,-16134,-16125,-16116,-16107,-16098,-16088,-16079,
-16069,-16059,-16049,-16039,-16029,-16018,-16008,-15997,
-15986,-15975,-15964,-15952,-15941,-15929,-15917,-15905,
-15893,-15881,-15868,-15856,-15843,-15830,-15817,-15804,
-15790,-15777,-15763,-15750,-15736,-15722,-15707,-15693,
-15678,-15664,-15649,-15634,-15619,-15604,-15588,-15573,
-15557,-15541,-15525,-15509,-15493,-15476,-15460,-15443,
-15426,-15409,-15392,-15375,-15357,-15340,-15322,-15304,
-15286,-15268,-15250,-15231,-15213,-15194,-15175,-15156,
-15137,-15117,-15098,-15078,-15059,-15039,-15019,-14999,
-14978,-14958,-14937,-14917,-14896,-14875,-14854,-14832,
-14811,-14789,-14768,-14746,-14724,-14702,-14679,-14657,
-14634,-14612,-14589,-14566,-14543,-14520,-14496,-14473,
-14449,-14426,-14402,-14378,-14353,-14329,-14305,-14280,
-14255,-14231,-14206,-14180,-14155,-14130,-14104,-14079,
-14053,-14027,-14001,-13975,-13948,-13922,-13895,-13869,
-13842,-13815,-13788,-13761,-13733,-13706,-13678,-13651,
-13623,-13595,-13567,-13538,-13510,-13481,-13453,-13424,
-13395,-13366,-13337,-13308,-13278,-13249,-13219,-13189,
-13160,-13130,-13099,-13069,-13039,-13008,-12978,-12947,
-12916,-12885,-12854,-12823,-12791,-12760,-12728,-12697,
-12665,-12633,-12601,-12569,-12536,-12504,-12471,-12439,
-12406,-12373,-12340,-12307,-12274,-12240,-12207,-12173,
-12140,-12106,-12072,-12038,-12004,-11969,-11935,-11901,
-11866,-11831,-11796,-11761,-11726,-11691,-11656,-11621,
-11585,-11549,-11514,-11478,-11442,-11406,-11370,-11334,
-11297,-11261,-11224,-11188,-11151,-11114,-11077,-11040,
-11003,-10965,-10928,-10890,-10853,-10815,-10777,-10739,
-10701,-10663,-10625,-10587,-10548,-10510,-10471,-10433,
-10394,-10355,-10316,-10277,-10238,-10198,-10159,-10119,
-10080,-10040,-10000,-9960,-9920,-9880,-9840,-9800,
-9760,-9719,-9679,-9638,-9598,-9557,-9516,-9475,
-9434,-9393,-9351,-9310,-9269,-9227,-9186,-9144,
-9102,-9060,-9018,-8976,-8934,-8892,-8850,-8808,
-8765,-8723,-8680,-8637,-8595,-8552,-8509,-8466,
-8423,-8380,-8336,-8293,-8250,-8206,-8163,-8119,
-8075,-8032,-7988,-7944,-7900,-7856,-7812,-7767,
-7723,-7679,-7634,-7590,-7545,-7501,-7456,-7411,
-7366,-7321,-7276,-7231,-7186,-7141,-7096,-7050,
-7005,-6959,-6914,-6868,-6823,-6777,-6731,-6685,
-6639,-6593,-6547,-6501,-6455,-6409,-6362,-6316,
-6270,-6223,-6177,-6130,-6083,-6037,-5990,-5943,
-5896,-5849,-5802,-5755,-5708,-5661,-5614,-5567,
-5519,-5472,-5425,-5377,-5330,-5282,-5234,-5187,
-5139,-5091,-5044,-4996,-4948,-4900,-4852,-4804,
-4756,-4708,-4659,-4611,-4563,-4515,-4466,-4418,
-4370,-4321,-4273,-4224,-4175,-4127,-4078,-4029,
-3981,-3932,-3883,-3834,-3785,-3736,-3688,-3639,
-3589,-3540,-3491,-3442,-3393,-3344,-3295,-3245,
-3196,-3147,-3097,-3048,-2999,-2949,-2900,-2850,
-2801,-2751,-2702,-2652,-2602,-2553,-2503,-2453,
-2404,-2354,-2304,-2255,-2205,-2155,-2105,-2055,
-2005,-1955,-1905,-1856,-1806,-1756,-1706,-1656,
-1606,-1556,-1506,-1456,-1405,-1355,-1305,-1255,
-1205,-1155,-1105,-1055,-1004,-954,-904,-854,
-804,-753,-703,-653,-603,-553,-502,-452,
-402,-352,-301,-251,-201,-151,-100,-50,
};


UW atn_tbl[]={
 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,10,
 10,11,11,12,13,13,14,15,15,16,17,17,18,18,19,20,
 20,21,22,22,23,24,24,25,25,26,27,27,28,29,29,30,
 30,31,32,32,33,34,34,35,36,36,37,37,38,39,39,40,
 41,41,42,42,43,44,44,45,46,46,47,47,48,49,49,50,
 51,51,52,52,53,54,54,55,55,56,57,57,58,59,59,60,
 60,61,62,62,63,63,64,65,65,66,67,67,68,68,69,70,
 70,71,71,72,73,73,74,74,75,76,76,77,77,78,79,79,
 80,80,81,82,82,83,83,84,85,85,86,86,87,88,88,89,
 89,90,91,91,92,92,93,93,94,95,95,96,96,97,98,98,
 99,99,100,100,101,102,102,103,103,104,104,105,106,106,107,107,
 108,108,109,110,110,111,111,112,112,113,114,114,115,115,116,116,
 117,117,118,119,119,120,120,121,121,122,122,123,124,124,125,125,
 126,126,127,127,128,129,129,130,130,131,131,132,132,133,133,134,
 134,135,135,136,137,137,138,138,139,139,140,140,141,141,142,142,
 143,143,144,144,145,145,146,147,147,148,148,149,149,150,150,151,
 151,152,152,153,153,154,154,155,155,156,156,157,157,158,158,159,
 159,160,160,161,161,162,162,163,163,164,164,165,165,166,166,167,
 167,167,168,168,169,169,170,170,171,171,172,172,173,173,174,174,
 175,175,176,176,177,177,177,178,178,179,179,180,180,181,181,182,
 182,183,183,183,184,184,185,185,186,186,187,187,188,188,188,189,
 189,190,190,191,191,192,192,192,193,193,194,194,195,195,195,196,
 196,197,197,198,198,198,199,199,200,200,201,201,201,202,202,203,
 203,204,204,204,205,205,206,206,206,207,207,208,208,209,209,209,
 210,210,211,211,211,212,212,213,213,213,214,214,215,215,215,216,
 216,217,217,217,218,218,219,219,219,220,220,220,221,221,222,222,
 222,223,223,224,224,224,225,225,225,226,226,227,227,227,228,228,
 228,229,229,230,230,230,231,231,231,232,232,232,233,233,234,234,
 234,235,235,235,236,236,236,237,237,238,238,238,239,239,239,240,
 240,240,241,241,241,242,242,242,243,243,243,244,244,244,245,245,
 245,246,246,247,247,247,248,248,248,249,249,249,250,250,250,250,
 251,251,251,252,252,252,253,253,253,254,254,254,255,255,255,256,
 256
};


SW sqrts[]={
0x0,0x80,0xb5,0xdd,0x100,0x11e,0x139,0x152,0x16a,0x180,0x194,0x1a8,0x1bb,0x1cd,0x1de,0x1ef,
0x200,0x20f,0x21f,0x22d,0x23c,0x24a,0x258,0x265,0x273,0x280,0x28c,0x299,0x2a5,0x2b1,0x2bd,0x2c8,
0x2d4,0x2df,0x2ea,0x2f5,0x300,0x30a,0x315,0x31f,0x329,0x333,0x33d,0x347,0x351,0x35a,0x364,0x36d,
0x376,0x380,0x389,0x392,0x39b,0x3a3,0x3ac,0x3b5,0x3bd,0x3c6,0x3ce,0x3d7,0x3df,0x3e7,0x3ef,0x3f7,
0x400,0x407,0x40f,0x417,0x41f,0x427,0x42e,0x436,0x43e,0x445,0x44d,0x454,0x45b,0x463,0x46a,0x471,
0x478,0x480,0x487,0x48e,0x495,0x49c,0x4a3,0x4a9,0x4b0,0x4b7,0x4be,0x4c5,0x4cb,0x4d2,0x4d9,0x4df,
0x4e6,0x4ec,0x4f3,0x4f9,0x500,0x506,0x50c,0x513,0x519,0x51f,0x525,0x52c,0x532,0x538,0x53e,0x544,
0x54a,0x550,0x556,0x55c,0x562,0x568,0x56e,0x574,0x57a,0x580,0x585,0x58b,0x591,0x597,0x59c,0x5a2,
0x5a8,0x5ad,0x5b3,0x5b9,0x5be,0x5c4,0x5c9,0x5cf,0x5d4,0x5da,0x5df,0x5e5,0x5ea,0x5ef,0x5f5,0x5fa,
0x600,0x605,0x60a,0x60f,0x615,0x61a,0x61f,0x624,0x62a,0x62f,0x634,0x639,0x63e,0x643,0x648,0x64e,
0x653,0x658,0x65d,0x662,0x667,0x66c,0x671,0x676,0x67b,0x680,0x684,0x689,0x68e,0x693,0x698,0x69d,
0x6a2,0x6a6,0x6ab,0x6b0,0x6b5,0x6ba,0x6be,0x6c3,0x6c8,0x6cc,0x6d1,0x6d6,0x6db,0x6df,0x6e4,0x6e8,
0x6ed,0x6f2,0x6f6,0x6fb,0x700,0x704,0x709,0x70d,0x712,0x716,0x71b,0x71f,0x724,0x728,0x72d,0x731,
0x736,0x73a,0x73e,0x743,0x747,0x74c,0x750,0x754,0x759,0x75d,0x761,0x766,0x76a,0x76e,0x773,0x777,
0x77b,0x780,0x784,0x788,0x78c,0x790,0x795,0x799,0x79d,0x7a1,0x7a6,0x7aa,0x7ae,0x7b2,0x7b6,0x7ba,
0x7be,0x7c3,0x7c7,0x7cb,0x7cf,0x7d3,0x7d7,0x7db,0x7df,0x7e3,0x7e7,0x7eb,0x7ef,0x7f3,0x7f7,0x7fb,
0x800,0x803,0x807,0x80b,0x80f,0x813,0x817,0x81b,0x81f,0x823,0x827,0x82b,0x82f,0x833,0x837,0x83b,
0x83f,0x842,0x846,0x84a,0x84e,0x852,0x856,0x85a,0x85d,0x861,0x865,0x869,0x86d,0x870,0x874,0x878,
0x87c,0x880,0x883,0x887,0x88b,0x88f,0x892,0x896,0x89a,0x89d,0x8a1,0x8a5,0x8a9,0x8ac,0x8b0,0x8b4,
0x8b7,0x8bb,0x8bf,0x8c2,0x8c6,0x8ca,0x8cd,0x8d1,0x8d4,0x8d8,0x8dc,0x8df,0x8e3,0x8e6,0x8ea,0x8ee,
0x8f1,0x8f5,0x8f8,0x8fc,0x900,0x903,0x907,0x90a,0x90e,0x911,0x915,0x918,0x91c,0x91f,0x923,0x926,
0x92a,0x92d,0x931,0x934,0x938,0x93b,0x93f,0x942,0x946,0x949,0x94c,0x950,0x953,0x957,0x95a,0x95e,
0x961,0x964,0x968,0x96b,0x96f,0x972,0x975,0x979,0x97c,0x980,0x983,0x986,0x98a,0x98d,0x990,0x994,
0x997,0x99a,0x99e,0x9a1,0x9a4,0x9a8,0x9ab,0x9ae,0x9b2,0x9b5,0x9b8,0x9bb,0x9bf,0x9c2,0x9c5,0x9c9,
0x9cc,0x9cf,0x9d2,0x9d6,0x9d9,0x9dc,0x9df,0x9e3,0x9e6,0x9e9,0x9ec,0x9ef,0x9f3,0x9f6,0x9f9,0x9fc,
0xa00,0xa03,0xa06,0xa09,0xa0c,0xa0f,0xa13,0xa16,0xa19,0xa1c,0xa1f,0xa22,0xa26,0xa29,0xa2c,0xa2f,
0xa32,0xa35,0xa38,0xa3c,0xa3f,0xa42,0xa45,0xa48,0xa4b,0xa4e,0xa51,0xa54,0xa58,0xa5b,0xa5e,0xa61,
0xa64,0xa67,0xa6a,0xa6d,0xa70,0xa73,0xa76,0xa79,0xa7c,0xa80,0xa83,0xa86,0xa89,0xa8c,0xa8f,0xa92,
0xa95,0xa98,0xa9b,0xa9e,0xaa1,0xaa4,0xaa7,0xaaa,0xaad,0xab0,0xab3,0xab6,0xab9,0xabc,0xabf,0xac2,
0xac5,0xac8,0xacb,0xace,0xad1,0xad4,0xad6,0xad9,0xadc,0xadf,0xae2,0xae5,0xae8,0xaeb,0xaee,0xaf1,
0xaf4,0xaf7,0xafa,0xafd,0xb00,0xb02,0xb05,0xb08,0xb0b,0xb0e,0xb11,0xb14,0xb17,0xb1a,0xb1c,0xb1f,
0xb22,0xb25,0xb28,0xb2b,0xb2e,0xb31,0xb33,0xb36,0xb39,0xb3c,0xb3f,0xb42,0xb44,0xb47,0xb4a,0xb4d,
0xb50,0xb53,0xb55,0xb58,0xb5b,0xb5e,0xb61,0xb64,0xb66,0xb69,0xb6c,0xb6f,0xb72,0xb74,0xb77,0xb7a,
0xb7d,0xb80,0xb82,0xb85,0xb88,0xb8b,0xb8d,0xb90,0xb93,0xb96,0xb98,0xb9b,0xb9e,0xba1,0xba3,0xba6,
0xba9,0xbac,0xbae,0xbb1,0xbb4,0xbb7,0xbb9,0xbbc,0xbbf,0xbc2,0xbc4,0xbc7,0xbca,0xbcc,0xbcf,0xbd2,
0xbd5,0xbd7,0xbda,0xbdd,0xbdf,0xbe2,0xbe5,0xbe7,0xbea,0xbed,0xbef,0xbf2,0xbf5,0xbf7,0xbfa,0xbfd,
0xc00,0xc02,0xc05,0xc07,0xc0a,0xc0d,0xc0f,0xc12,0xc15,0xc17,0xc1a,0xc1d,0xc1f,0xc22,0xc25,0xc27,
0xc2a,0xc2d,0xc2f,0xc32,0xc34,0xc37,0xc3a,0xc3c,0xc3f,0xc41,0xc44,0xc47,0xc49,0xc4c,0xc4e,0xc51,
0xc54,0xc56,0xc59,0xc5b,0xc5e,0xc61,0xc63,0xc66,0xc68,0xc6b,0xc6e,0xc70,0xc73,0xc75,0xc78,0xc7a,
0xc7d,0xc80,0xc82,0xc85,0xc87,0xc8a,0xc8c,0xc8f,0xc91,0xc94,0xc96,0xc99,0xc9c,0xc9e,0xca1,0xca3,
0xca6,0xca8,0xcab,0xcad,0xcb0,0xcb2,0xcb5,0xcb7,0xcba,0xcbc,0xcbf,0xcc1,0xcc4,0xcc6,0xcc9,0xccb,
0xcce,0xcd0,0xcd3,0xcd5,0xcd8,0xcda,0xcdd,0xcdf,0xce2,0xce4,0xce7,0xce9,0xcec,0xcee,0xcf1,0xcf3,
0xcf6,0xcf8,0xcfb,0xcfd,0xd00,0xd02,0xd04,0xd07,0xd09,0xd0c,0xd0e,0xd11,0xd13,0xd16,0xd18,0xd1a,
0xd1d,0xd1f,0xd22,0xd24,0xd27,0xd29,0xd2c,0xd2e,0xd30,0xd33,0xd35,0xd38,0xd3a,0xd3c,0xd3f,0xd41,
0xd44,0xd46,0xd49,0xd4b,0xd4d,0xd50,0xd52,0xd55,0xd57,0xd59,0xd5c,0xd5e,0xd61,0xd63,0xd65,0xd68,
0xd6a,0xd6c,0xd6f,0xd71,0xd74,0xd76,0xd78,0xd7b,0xd7d,0xd80,0xd82,0xd84,0xd87,0xd89,0xd8b,0xd8e,
0xd90,0xd92,0xd95,0xd97,0xd99,0xd9c,0xd9e,0xda1,0xda3,0xda5,0xda8,0xdaa,0xdac,0xdaf,0xdb1,0xdb3,
0xdb6,0xdb8,0xdba,0xdbd,0xdbf,0xdc1,0xdc4,0xdc6,0xdc8,0xdcb,0xdcd,0xdcf,0xdd1,0xdd4,0xdd6,0xdd8,
0xddb,0xddd,0xddf,0xde2,0xde4,0xde6,0xde9,0xdeb,0xded,0xdef,0xdf2,0xdf4,0xdf6,0xdf9,0xdfb,0xdfd,
0xe00,0xe02,0xe04,0xe06,0xe09,0xe0b,0xe0d,0xe0f,0xe12,0xe14,0xe16,0xe19,0xe1b,0xe1d,0xe1f,0xe22,
0xe24,0xe26,0xe28,0xe2b,0xe2d,0xe2f,0xe31,0xe34,0xe36,0xe38,0xe3a,0xe3d,0xe3f,0xe41,0xe43,0xe46,
0xe48,0xe4a,0xe4c,0xe4f,0xe51,0xe53,0xe55,0xe58,0xe5a,0xe5c,0xe5e,0xe60,0xe63,0xe65,0xe67,0xe69,
0xe6c,0xe6e,0xe70,0xe72,0xe74,0xe77,0xe79,0xe7b,0xe7d,0xe80,0xe82,0xe84,0xe86,0xe88,0xe8b,0xe8d,
0xe8f,0xe91,0xe93,0xe96,0xe98,0xe9a,0xe9c,0xe9e,0xea0,0xea3,0xea5,0xea7,0xea9,0xeab,0xeae,0xeb0,
0xeb2,0xeb4,0xeb6,0xeb8,0xebb,0xebd,0xebf,0xec1,0xec3,0xec5,0xec8,0xeca,0xecc,0xece,0xed0,0xed2,
0xed5,0xed7,0xed9,0xedb,0xedd,0xedf,0xee2,0xee4,0xee6,0xee8,0xeea,0xeec,0xeee,0xef1,0xef3,0xef5,
0xef7,0xef9,0xefb,0xefd,0xf00,0xf02,0xf04,0xf06,0xf08,0xf0a,0xf0c,0xf0e,0xf11,0xf13,0xf15,0xf17,
0xf19,0xf1b,0xf1d,0xf1f,0xf21,0xf24,0xf26,0xf28,0xf2a,0xf2c,0xf2e,0xf30,0xf32,0xf34,0xf37,0xf39,
0xf3b,0xf3d,0xf3f,0xf41,0xf43,0xf45,0xf47,0xf49,0xf4c,0xf4e,0xf50,0xf52,0xf54,0xf56,0xf58,0xf5a,
0xf5c,0xf5e,0xf60,0xf62,0xf65,0xf67,0xf69,0xf6b,0xf6d,0xf6f,0xf71,0xf73,0xf75,0xf77,0xf79,0xf7b,
0xf7d,0xf80,0xf82,0xf84,0xf86,0xf88,0xf8a,0xf8c,0xf8e,0xf90,0xf92,0xf94,0xf96,0xf98,0xf9a,0xf9c,
0xf9e,0xfa0,0xfa2,0xfa4,0xfa7,0xfa9,0xfab,0xfad,0xfaf,0xfb1,0xfb3,0xfb5,0xfb7,0xfb9,0xfbb,0xfbd,
0xfbf,0xfc1,0xfc3,0xfc5,0xfc7,0xfc9,0xfcb,0xfcd,0xfcf,0xfd1,0xfd3,0xfd5,0xfd7,0xfd9,0xfdb,0xfdd,
0xfdf,0xfe1,0xfe3,0xfe5,0xfe7,0xfe9,0xfeb,0xfed,0xfef,0xff1,0xff3,0xff5,0xff7,0xff9,0xffb,0xffd,
0x1000,0x1001,0x1003,0x1005,0x1007,0x1009,0x100b,0x100d,0x100f,0x1011,0x1013,0x1015,0x1017,0x1019,0x101b,0x101d,
0x101f,0x1021,0x1023,0x1025,0x1027,0x1029,0x102b,0x102d,0x102f,0x1031,0x1033,0x1035,0x1037,0x1039,0x103b,0x103d,
0x103f,0x1041,0x1043,0x1045,0x1047,0x1049,0x104b,0x104d,0x104f,0x1051,0x1053,0x1055,0x1057,0x1059,0x105a,0x105c,
0x105e,0x1060,0x1062,0x1064,0x1066,0x1068,0x106a,0x106c,0x106e,0x1070,0x1072,0x1074,0x1076,0x1078,0x107a,0x107c,
0x107e,0x1080,0x1081,0x1083,0x1085,0x1087,0x1089,0x108b,0x108d,0x108f,0x1091,0x1093,0x1095,0x1097,0x1099,0x109b,
0x109c,0x109e,0x10a0,0x10a2,0x10a4,0x10a6,0x10a8,0x10aa,0x10ac,0x10ae,0x10b0,0x10b2,0x10b4,0x10b5,0x10b7,0x10b9,
0x10bb,0x10bd,0x10bf,0x10c1,0x10c3,0x10c5,0x10c7,0x10c9,0x10ca,0x10cc,0x10ce,0x10d0,0x10d2,0x10d4,0x10d6,0x10d8,
0x10da,0x10dc,0x10dd,0x10df,0x10e1,0x10e3,0x10e5,0x10e7,0x10e9,0x10eb,0x10ed,0x10ef,0x10f0,0x10f2,0x10f4,0x10f6,
0x10f8,0x10fa,0x10fc,0x10fe,0x1100,0x1101,0x1103,0x1105,0x1107,0x1109,0x110b,0x110d,0x110f,0x1110,0x1112,0x1114,
0x1116,0x1118,0x111a,0x111c,0x111e,0x111f,0x1121,0x1123,0x1125,0x1127,0x1129,0x112b,0x112c,0x112e,0x1130,0x1132,
0x1134,0x1136,0x1138,0x1139,0x113b,0x113d,0x113f,0x1141,0x1143,0x1145,0x1146,0x1148,0x114a,0x114c,0x114e,0x1150,
0x1152,0x1153,0x1155,0x1157,0x1159,0x115b,0x115d,0x115e,0x1160,0x1162,0x1164,0x1166,0x1168,0x116a,0x116b,0x116d,
0x116f,0x1171,0x1173,0x1175,0x1176,0x1178,0x117a,0x117c,0x117e,0x1180,0x1181,0x1183,0x1185,0x1187,0x1189,0x118a,
0x118c,0x118e,0x1190,0x1192,0x1194,0x1195,0x1197,0x1199,0x119b,0x119d,0x119e,0x11a0,0x11a2,0x11a4,0x11a6,0x11a8,
0x11a9,0x11ab,0x11ad,0x11af,0x11b1,0x11b2,0x11b4,0x11b6,0x11b8,0x11ba,0x11bb,0x11bd,0x11bf,0x11c1,0x11c3,0x11c4,
0x11c6,0x11c8,0x11ca,0x11cc,0x11cd,0x11cf,0x11d1,0x11d3,0x11d5,0x11d6,0x11d8,0x11da,0x11dc,0x11de,0x11df,0x11e1,
0x11e3,0x11e5,0x11e7,0x11e8,0x11ea,0x11ec,0x11ee,0x11ef,0x11f1,0x11f3,0x11f5,0x11f7,0x11f8,0x11fa,0x11fc,0x11fe,
0x1200,0x1201,0x1203,0x1205,0x1207,0x1208,0x120a,0x120c,0x120e,0x120f,0x1211,0x1213,0x1215,0x1217,0x1218,0x121a,
0x121c,0x121e,0x121f,0x1221,0x1223,0x1225,0x1226,0x1228,0x122a,0x122c,0x122d,0x122f,0x1231,0x1233,0x1235,0x1236,
0x1238,0x123a,0x123c,0x123d,0x123f,0x1241,0x1243,0x1244,0x1246,0x1248,0x124a,0x124b,0x124d,0x124f,0x1251,0x1252,
0x1254,0x1256,0x1258,0x1259,0x125b,0x125d,0x125f,0x1260,0x1262,0x1264,0x1265,0x1267,0x1269,0x126b,0x126c,0x126e,
0x1270,0x1272,0x1273,0x1275,0x1277,0x1279,0x127a,0x127c,0x127e,0x1280,0x1281,0x1283,0x1285,0x1286,0x1288,0x128a,
0x128c,0x128d,0x128f,0x1291,0x1292,0x1294,0x1296,0x1298,0x1299,0x129b,0x129d,0x129f,0x12a0,0x12a2,0x12a4,0x12a5,
0x12a7,0x12a9,0x12ab,0x12ac,0x12ae,0x12b0,0x12b1,0x12b3,0x12b5,0x12b7,0x12b8,0x12ba,0x12bc,0x12bd,0x12bf,0x12c1,
0x12c2,0x12c4,0x12c6,0x12c8,0x12c9,0x12cb,0x12cd,0x12ce,0x12d0,0x12d2,0x12d4,0x12d5,0x12d7,0x12d9,0x12da,0x12dc,
0x12de,0x12df,0x12e1,0x12e3,0x12e4,0x12e6,0x12e8,0x12ea,0x12eb,0x12ed,0x12ef,0x12f0,0x12f2,0x12f4,0x12f5,0x12f7,
0x12f9,0x12fa,0x12fc,0x12fe,0x1300,0x1301,0x1303,0x1305,0x1306,0x1308,0x130a,0x130b,0x130d,0x130f,0x1310,0x1312,
0x1314,0x1315,0x1317,0x1319,0x131a,0x131c,0x131e,0x131f,0x1321,0x1323,0x1324,0x1326,0x1328,0x1329,0x132b,0x132d,
0x132e,0x1330,0x1332,0x1333,0x1335,0x1337,0x1338,0x133a,0x133c,0x133d,0x133f,0x1341,0x1342,0x1344,0x1346,0x1347,
0x1349,0x134b,0x134c,0x134e,0x1350,0x1351,0x1353,0x1355,0x1356,0x1358,0x135a,0x135b,0x135d,0x135f,0x1360,0x1362,
0x1364,0x1365,0x1367,0x1368,0x136a,0x136c,0x136d,0x136f,0x1371,0x1372,0x1374,0x1376,0x1377,0x1379,0x137b,0x137c,
0x137e,0x1380,0x1381,0x1383,0x1384,0x1386,0x1388,0x1389,0x138b,0x138d,0x138e,0x1390,0x1392,0x1393,0x1395,0x1396,
0x1398,0x139a,0x139b,0x139d,0x139f,0x13a0,0x13a2,0x13a3,0x13a5,0x13a7,0x13a8,0x13aa,0x13ac,0x13ad,0x13af,0x13b0,
0x13b2,0x13b4,0x13b5,0x13b7,0x13b9,0x13ba,0x13bc,0x13bd,0x13bf,0x13c1,0x13c2,0x13c4,0x13c6,0x13c7,0x13c9,0x13ca,
0x13cc,0x13ce,0x13cf,0x13d1,0x13d3,0x13d4,0x13d6,0x13d7,0x13d9,0x13db,0x13dc,0x13de,0x13df,0x13e1,0x13e3,0x13e4,
0x13e6,0x13e7,0x13e9,0x13eb,0x13ec,0x13ee,0x13ef,0x13f1,0x13f3,0x13f4,0x13f6,0x13f7,0x13f9,0x13fb,0x13fc,0x13fe,
0x1400,0x1401,0x1403,0x1404,0x1406,0x1407,0x1409,0x140b,0x140c,0x140e,0x140f,0x1411,0x1413,0x1414,0x1416,0x1417,
0x1419,0x141b,0x141c,0x141e,0x141f,0x1421,0x1423,0x1424,0x1426,0x1427,0x1429,0x142b,0x142c,0x142e,0x142f,0x1431,
0x1432,0x1434,0x1436,0x1437,0x1439,0x143a,0x143c,0x143e,0x143f,0x1441,0x1442,0x1444,0x1445,0x1447,0x1449,0x144a,
0x144c,0x144d,0x144f,0x1450,0x1452,0x1454,0x1455,0x1457,0x1458,0x145a,0x145b,0x145d,0x145f,0x1460,0x1462,0x1463,
0x1465,0x1466,0x1468,0x146a,0x146b,0x146d,0x146e,0x1470,0x1471,0x1473,0x1475,0x1476,0x1478,0x1479,0x147b,0x147c,
0x147e,0x1480,0x1481,0x1483,0x1484,0x1486,0x1487,0x1489,0x148a,0x148c,0x148e,0x148f,0x1491,0x1492,0x1494,0x1495,
0x1497,0x1498,0x149a,0x149c,0x149d,0x149f,0x14a0,0x14a2,0x14a3,0x14a5,0x14a6,0x14a8,0x14a9,0x14ab,0x14ad,0x14ae,
0x14b0,0x14b1,0x14b3,0x14b4,0x14b6,0x14b7,0x14b9,0x14ba,0x14bc,0x14be,0x14bf,0x14c1,0x14c2,0x14c4,0x14c5,0x14c7,
0x14c8,0x14ca,0x14cb,0x14cd,0x14cf,0x14d0,0x14d2,0x14d3,0x14d5,0x14d6,0x14d8,0x14d9,0x14db,0x14dc,0x14de,0x14df,
0x14e1,0x14e2,0x14e4,0x14e6,0x14e7,0x14e9,0x14ea,0x14ec,0x14ed,0x14ef,0x14f0,0x14f2,0x14f3,0x14f5,0x14f6,0x14f8,
0x14f9,0x14fb,0x14fc,0x14fe,0x1500,0x1501,0x1503,0x1504,0x1506,0x1507,0x1509,0x150a,0x150c,0x150d,0x150f,0x1510,
0x1512,0x1513,0x1515,0x1516,0x1518,0x1519,0x151b,0x151c,0x151e,0x151f,0x1521,0x1522,0x1524,0x1525,0x1527,0x1528,
0x152a,0x152c,0x152d,0x152f,0x1530,0x1532,0x1533,0x1535,0x1536,0x1538,0x1539,0x153b,0x153c,0x153e,0x153f,0x1541,
0x1542,0x1544,0x1545,0x1547,0x1548,0x154a,0x154b,0x154d,0x154e,0x1550,0x1551,0x1553,0x1554,0x1556,0x1557,0x1559,
0x155a,0x155c,0x155d,0x155f,0x1560,0x1562,0x1563,0x1565,0x1566,0x1568,0x1569,0x156b,0x156c,0x156e,0x156f,0x1571,
0x1572,0x1574,0x1575,0x1577,0x1578,0x157a,0x157b,0x157d,0x157e,0x1580,0x1581,0x1582,0x1584,0x1585,0x1587,0x1588,
0x158a,0x158b,0x158d,0x158e,0x1590,0x1591,0x1593,0x1594,0x1596,0x1597,0x1599,0x159a,0x159c,0x159d,0x159f,0x15a0,
0x15a2,0x15a3,0x15a5,0x15a6,0x15a8,0x15a9,0x15aa,0x15ac,0x15ad,0x15af,0x15b0,0x15b2,0x15b3,0x15b5,0x15b6,0x15b8,
0x15b9,0x15bb,0x15bc,0x15be,0x15bf,0x15c1,0x15c2,0x15c4,0x15c5,0x15c6,0x15c8,0x15c9,0x15cb,0x15cc,0x15ce,0x15cf,
0x15d1,0x15d2,0x15d4,0x15d5,0x15d7,0x15d8,0x15da,0x15db,0x15dc,0x15de,0x15df,0x15e1,0x15e2,0x15e4,0x15e5,0x15e7,
0x15e8,0x15ea,0x15eb,0x15ed,0x15ee,0x15ef,0x15f1,0x15f2,0x15f4,0x15f5,0x15f7,0x15f8,0x15fa,0x15fb,0x15fd,0x15fe,
0x1600,0x1601,0x1602,0x1604,0x1605,0x1607,0x1608,0x160a,0x160b,0x160d,0x160e,0x160f,0x1611,0x1612,0x1614,0x1615,
0x1617,0x1618,0x161a,0x161b,0x161d,0x161e,0x161f,0x1621,0x1622,0x1624,0x1625,0x1627,0x1628,0x162a,0x162b,0x162c,
0x162e,0x162f,0x1631,0x1632,0x1634,0x1635,0x1637,0x1638,0x1639,0x163b,0x163c,0x163e,0x163f,0x1641,0x1642,0x1643,
0x1645,0x1646,0x1648,0x1649,0x164b,0x164c,0x164e,0x164f,0x1650,0x1652,0x1653,0x1655,0x1656,0x1658,0x1659,0x165a,
0x165c,0x165d,0x165f,0x1660,0x1662,0x1663,0x1664,0x1666,0x1667,0x1669,0x166a,0x166c,0x166d,0x166e,0x1670,0x1671,
0x1673,0x1674,0x1676,0x1677,0x1678,0x167a,0x167b,0x167d,0x167e,0x1680,0x1681,0x1682,0x1684,0x1685,0x1687,0x1688,
0x1689,0x168b,0x168c,0x168e,0x168f,0x1691,0x1692,0x1693,0x1695,0x1696,0x1698,0x1699,0x169a,0x169c,0x169d,0x169f,
0x16a0,0x16a2,0x16a3,0x16a4,0x16a6,0x16a7,0x16a9,0x16aa,0x16ab,0x16ad,0x16ae,0x16b0,0x16b1,0x16b2,0x16b4,0x16b5,
0x16b7,0x16b8,0x16ba,0x16bb,0x16bc,0x16be,0x16bf,0x16c1,0x16c2,0x16c3,0x16c5,0x16c6,0x16c8,0x16c9,0x16ca,0x16cc,
0x16cd,0x16cf,0x16d0,0x16d1,0x16d3,0x16d4,0x16d6,0x16d7,0x16d8,0x16da,0x16db,0x16dd,0x16de,0x16df,0x16e1,0x16e2,
0x16e4,0x16e5,0x16e6,0x16e8,0x16e9,0x16eb,0x16ec,0x16ed,0x16ef,0x16f0,0x16f2,0x16f3,0x16f4,0x16f6,0x16f7,0x16f9,
0x16fa,0x16fb,0x16fd,0x16fe,0x1700,0x1701,0x1702,0x1704,0x1705,0x1706,0x1708,0x1709,0x170b,0x170c,0x170d,0x170f,
0x1710,0x1712,0x1713,0x1714,0x1716,0x1717,0x1718,0x171a,0x171b,0x171d,0x171e,0x171f,0x1721,0x1722,0x1724,0x1725,
0x1726,0x1728,0x1729,0x172a,0x172c,0x172d,0x172f,0x1730,0x1731,0x1733,0x1734,0x1736,0x1737,0x1738,0x173a,0x173b,
0x173c,0x173e,0x173f,0x1741,0x1742,0x1743,0x1745,0x1746,0x1747,0x1749,0x174a,0x174c,0x174d,0x174e,0x1750,0x1751,
0x1752,0x1754,0x1755,0x1757,0x1758,0x1759,0x175b,0x175c,0x175d,0x175f,0x1760,0x1761,0x1763,0x1764,0x1766,0x1767,
0x1768,0x176a,0x176b,0x176c,0x176e,0x176f,0x1771,0x1772,0x1773,0x1775,0x1776,0x1777,0x1779,0x177a,0x177b,0x177d,
0x177e,0x1780,0x1781,0x1782,0x1784,0x1785,0x1786,0x1788,0x1789,0x178a,0x178c,0x178d,0x178e,0x1790,0x1791,0x1793,
0x1794,0x1795,0x1797,0x1798,0x1799,0x179b,0x179c,0x179d,0x179f,0x17a0,0x17a1,0x17a3,0x17a4,0x17a6,0x17a7,0x17a8,
0x17aa,0x17ab,0x17ac,0x17ae,0x17af,0x17b0,0x17b2,0x17b3,0x17b4,0x17b6,0x17b7,0x17b8,0x17ba,0x17bb,0x17bc,0x17be,
0x17bf,0x17c1,0x17c2,0x17c3,0x17c5,0x17c6,0x17c7,0x17c9,0x17ca,0x17cb,0x17cd,0x17ce,0x17cf,0x17d1,0x17d2,0x17d3,
0x17d5,0x17d6,0x17d7,0x17d9,0x17da,0x17db,0x17dd,0x17de,0x17df,0x17e1,0x17e2,0x17e3,0x17e5,0x17e6,0x17e7,0x17e9,
0x17ea,0x17eb,0x17ed,0x17ee,0x17ef,0x17f1,0x17f2,0x17f3,0x17f5,0x17f6,0x17f7,0x17f9,0x17fa,0x17fb,0x17fd,0x17fe,
0x1800,0x1801,0x1802,0x1803,0x1805,0x1806,0x1807,0x1809,0x180a,0x180b,0x180d,0x180e,0x180f,0x1811,0x1812,0x1813,
0x1815,0x1816,0x1817,0x1819,0x181a,0x181b,0x181d,0x181e,0x181f,0x1821,0x1822,0x1823,0x1825,0x1826,0x1827,0x1829,
0x182a,0x182b,0x182d,0x182e,0x182f,0x1831,0x1832,0x1833,0x1835,0x1836,0x1837,0x1839,0x183a,0x183b,0x183d,0x183e,
0x183f,0x1840,0x1842,0x1843,0x1844,0x1846,0x1847,0x1848,0x184a,0x184b,0x184c,0x184e,0x184f,0x1850,0x1852,0x1853,
0x1854,0x1856,0x1857,0x1858,0x185a,0x185b,0x185c,0x185d,0x185f,0x1860,0x1861,0x1863,0x1864,0x1865,0x1867,0x1868,
0x1869,0x186b,0x186c,0x186d,0x186e,0x1870,0x1871,0x1872,0x1874,0x1875,0x1876,0x1878,0x1879,0x187a,0x187c,0x187d,
0x187e,0x1880,0x1881,0x1882,0x1883,0x1885,0x1886,0x1887,0x1889,0x188a,0x188b,0x188d,0x188e,0x188f,0x1890,0x1892,
0x1893,0x1894,0x1896,0x1897,0x1898,0x189a,0x189b,0x189c,0x189d,0x189f,0x18a0,0x18a1,0x18a3,0x18a4,0x18a5,0x18a7,
0x18a8,0x18a9,0x18aa,0x18ac,0x18ad,0x18ae,0x18b0,0x18b1,0x18b2,0x18b4,0x18b5,0x18b6,0x18b7,0x18b9,0x18ba,0x18bb,
0x18bd,0x18be,0x18bf,0x18c0,0x18c2,0x18c3,0x18c4,0x18c6,0x18c7,0x18c8,0x18ca,0x18cb,0x18cc,0x18cd,0x18cf,0x18d0,
0x18d1,0x18d3,0x18d4,0x18d5,0x18d6,0x18d8,0x18d9,0x18da,0x18dc,0x18dd,0x18de,0x18df,0x18e1,0x18e2,0x18e3,0x18e5,
0x18e6,0x18e7,0x18e8,0x18ea,0x18eb,0x18ec,0x18ee,0x18ef,0x18f0,0x18f1,0x18f3,0x18f4,0x18f5,0x18f7,0x18f8,0x18f9,
0x18fa,0x18fc,0x18fd,0x18fe,0x1900,0x1901,0x1902,0x1903,0x1905,0x1906,0x1907,0x1908,0x190a,0x190b,0x190c,0x190e,
0x190f,0x1910,0x1911,0x1913,0x1914,0x1915,0x1916,0x1918,0x1919,0x191a,0x191c,0x191d,0x191e,0x191f,0x1921,0x1922,
0x1923,0x1925,0x1926,0x1927,0x1928,0x192a,0x192b,0x192c,0x192d,0x192f,0x1930,0x1931,0x1932,0x1934,0x1935,0x1936,
0x1938,0x1939,0x193a,0x193b,0x193d,0x193e,0x193f,0x1940,0x1942,0x1943,0x1944,0x1946,0x1947,0x1948,0x1949,0x194b,
0x194c,0x194d,0x194e,0x1950,0x1951,0x1952,0x1953,0x1955,0x1956,0x1957,0x1958,0x195a,0x195b,0x195c,0x195e,0x195f,
0x1960,0x1961,0x1963,0x1964,0x1965,0x1966,0x1968,0x1969,0x196a,0x196b,0x196d,0x196e,0x196f,0x1970,0x1972,0x1973,
0x1974,0x1975,0x1977,0x1978,0x1979,0x197a,0x197c,0x197d,0x197e,0x1980,0x1981,0x1982,0x1983,0x1985,0x1986,0x1987,
0x1988,0x198a,0x198b,0x198c,0x198d,0x198f,0x1990,0x1991,0x1992,0x1994,0x1995,0x1996,0x1997,0x1999,0x199a,0x199b,
0x199c,0x199e,0x199f,0x19a0,0x19a1,0x19a3,0x19a4,0x19a5,0x19a6,0x19a8,0x19a9,0x19aa,0x19ab,0x19ad,0x19ae,0x19af,
0x19b0,0x19b2,0x19b3,0x19b4,0x19b5,0x19b6,0x19b8,0x19b9,0x19ba,0x19bb,0x19bd,0x19be,0x19bf,0x19c0,0x19c2,0x19c3,
0x19c4,0x19c5,0x19c7,0x19c8,0x19c9,0x19ca,0x19cc,0x19cd,0x19ce,0x19cf,0x19d1,0x19d2,0x19d3,0x19d4,0x19d6,0x19d7,
0x19d8,0x19d9,0x19da,0x19dc,0x19dd,0x19de,0x19df,0x19e1,0x19e2,0x19e3,0x19e4,0x19e6,0x19e7,0x19e8,0x19e9,0x19eb,
0x19ec,0x19ed,0x19ee,0x19ef,0x19f1,0x19f2,0x19f3,0x19f4,0x19f6,0x19f7,0x19f8,0x19f9,0x19fb,0x19fc,0x19fd,0x19fe,
0x1a00,0x1a01,0x1a02,0x1a03,0x1a04,0x1a06,0x1a07,0x1a08,0x1a09,0x1a0b,0x1a0c,0x1a0d,0x1a0e,0x1a0f,0x1a11,0x1a12,
0x1a13,0x1a14,0x1a16,0x1a17,0x1a18,0x1a19,0x1a1b,0x1a1c,0x1a1d,0x1a1e,0x1a1f,0x1a21,0x1a22,0x1a23,0x1a24,0x1a26,
0x1a27,0x1a28,0x1a29,0x1a2a,0x1a2c,0x1a2d,0x1a2e,0x1a2f,0x1a31,0x1a32,0x1a33,0x1a34,0x1a35,0x1a37,0x1a38,0x1a39,
0x1a3a,0x1a3c,0x1a3d,0x1a3e,0x1a3f,0x1a40,0x1a42,0x1a43,0x1a44,0x1a45,0x1a47,0x1a48,0x1a49,0x1a4a,0x1a4b,0x1a4d,
0x1a4e,0x1a4f,0x1a50,0x1a51,0x1a53,0x1a54,0x1a55,0x1a56,0x1a58,0x1a59,0x1a5a,0x1a5b,0x1a5c,0x1a5e,0x1a5f,0x1a60,
0x1a61,0x1a62,0x1a64,0x1a65,0x1a66,0x1a67,0x1a69,0x1a6a,0x1a6b,0x1a6c,0x1a6d,0x1a6f,0x1a70,0x1a71,0x1a72,0x1a73,
0x1a75,0x1a76,0x1a77,0x1a78,0x1a79,0x1a7b,0x1a7c,0x1a7d,0x1a7e,0x1a80,0x1a81,0x1a82,0x1a83,0x1a84,0x1a86,0x1a87,
0x1a88,0x1a89,0x1a8a,0x1a8c,0x1a8d,0x1a8e,0x1a8f,0x1a90,0x1a92,0x1a93,0x1a94,0x1a95,0x1a96,0x1a98,0x1a99,0x1a9a,
0x1a9b,0x1a9c,0x1a9e,0x1a9f,0x1aa0,0x1aa1,0x1aa2,0x1aa4,0x1aa5,0x1aa6,0x1aa7,0x1aa8,0x1aaa,0x1aab,0x1aac,0x1aad,
0x1aae,0x1ab0,0x1ab1,0x1ab2,0x1ab3,0x1ab4,0x1ab6,0x1ab7,0x1ab8,0x1ab9,0x1aba,0x1abc,0x1abd,0x1abe,0x1abf,0x1ac0,
0x1ac2,0x1ac3,0x1ac4,0x1ac5,0x1ac6,0x1ac8,0x1ac9,0x1aca,0x1acb,0x1acc,0x1ace,0x1acf,0x1ad0,0x1ad1,0x1ad2,0x1ad4,
0x1ad5,0x1ad6,0x1ad7,0x1ad8,0x1ad9,0x1adb,0x1adc,0x1add,0x1ade,0x1adf,0x1ae1,0x1ae2,0x1ae3,0x1ae4,0x1ae5,0x1ae7,
0x1ae8,0x1ae9,0x1aea,0x1aeb,0x1aed,0x1aee,0x1aef,0x1af0,0x1af1,0x1af2,0x1af4,0x1af5,0x1af6,0x1af7,0x1af8,0x1afa,
0x1afb,0x1afc,0x1afd,0x1afe,0x1b00,0x1b01,0x1b02,0x1b03,0x1b04,0x1b05,0x1b07,0x1b08,0x1b09,0x1b0a,0x1b0b,0x1b0d,
0x1b0e,0x1b0f,0x1b10,0x1b11,0x1b12,0x1b14,0x1b15,0x1b16,0x1b17,0x1b18,0x1b1a,0x1b1b,0x1b1c,0x1b1d,0x1b1e,0x1b1f,
0x1b21,0x1b22,0x1b23,0x1b24,0x1b25,0x1b27,0x1b28,0x1b29,0x1b2a,0x1b2b,0x1b2c,0x1b2e,0x1b2f,0x1b30,0x1b31,0x1b32,
0x1b33,0x1b35,0x1b36,0x1b37,0x1b38,0x1b39,0x1b3b,0x1b3c,0x1b3d,0x1b3e,0x1b3f,0x1b40,0x1b42,0x1b43,0x1b44,0x1b45,
0x1b46,0x1b47,0x1b49,0x1b4a,0x1b4b,0x1b4c,0x1b4d,0x1b4e,0x1b50,0x1b51,0x1b52,0x1b53,0x1b54,0x1b55,0x1b57,0x1b58,
0x1b59,0x1b5a,0x1b5b,0x1b5d,0x1b5e,0x1b5f,0x1b60,0x1b61,0x1b62,0x1b64,0x1b65,0x1b66,0x1b67,0x1b68,0x1b69,0x1b6b,
0x1b6c,0x1b6d,0x1b6e,0x1b6f,0x1b70,0x1b72,0x1b73,0x1b74,0x1b75,0x1b76,0x1b77,0x1b79,0x1b7a,0x1b7b,0x1b7c,0x1b7d,
0x1b7e,0x1b80,0x1b81,0x1b82,0x1b83,0x1b84,0x1b85,0x1b86,0x1b88,0x1b89,0x1b8a,0x1b8b,0x1b8c,0x1b8d,0x1b8f,0x1b90,
0x1b91,0x1b92,0x1b93,0x1b94,0x1b96,0x1b97,0x1b98,0x1b99,0x1b9a,0x1b9b,0x1b9d,0x1b9e,0x1b9f,0x1ba0,0x1ba1,0x1ba2,
0x1ba3,0x1ba5,0x1ba6,0x1ba7,0x1ba8,0x1ba9,0x1baa,0x1bac,0x1bad,0x1bae,0x1baf,0x1bb0,0x1bb1,0x1bb3,0x1bb4,0x1bb5,
0x1bb6,0x1bb7,0x1bb8,0x1bb9,0x1bbb,0x1bbc,0x1bbd,0x1bbe,0x1bbf,0x1bc0,0x1bc2,0x1bc3,0x1bc4,0x1bc5,0x1bc6,0x1bc7,
0x1bc8,0x1bca,0x1bcb,0x1bcc,0x1bcd,0x1bce,0x1bcf,0x1bd0,0x1bd2,0x1bd3,0x1bd4,0x1bd5,0x1bd6,0x1bd7,0x1bd9,0x1bda,
0x1bdb,0x1bdc,0x1bdd,0x1bde,0x1bdf,0x1be1,0x1be2,0x1be3,0x1be4,0x1be5,0x1be6,0x1be7,0x1be9,0x1bea,0x1beb,0x1bec,
0x1bed,0x1bee,0x1bef,0x1bf1,0x1bf2,0x1bf3,0x1bf4,0x1bf5,0x1bf6,0x1bf7,0x1bf9,0x1bfa,0x1bfb,0x1bfc,0x1bfd,0x1bfe,
0x1c00,0x1c01,0x1c02,0x1c03,0x1c04,0x1c05,0x1c06,0x1c07,0x1c09,0x1c0a,0x1c0b,0x1c0c,0x1c0d,0x1c0e,0x1c0f,0x1c11,
0x1c12,0x1c13,0x1c14,0x1c15,0x1c16,0x1c17,0x1c19,0x1c1a,0x1c1b,0x1c1c,0x1c1d,0x1c1e,0x1c1f,0x1c21,0x1c22,0x1c23,
0x1c24,0x1c25,0x1c26,0x1c27,0x1c29,0x1c2a,0x1c2b,0x1c2c,0x1c2d,0x1c2e,0x1c2f,0x1c30,0x1c32,0x1c33,0x1c34,0x1c35,
0x1c36,0x1c37,0x1c38,0x1c3a,0x1c3b,0x1c3c,0x1c3d,0x1c3e,0x1c3f,0x1c40,0x1c41,0x1c43,0x1c44,0x1c45,0x1c46,0x1c47,
0x1c48,0x1c49,0x1c4b,0x1c4c,0x1c4d,0x1c4e,0x1c4f,0x1c50,0x1c51,0x1c52,0x1c54,0x1c55,0x1c56,0x1c57,0x1c58,0x1c59,
0x1c5a,0x1c5b,0x1c5d,0x1c5e,0x1c5f,0x1c60,0x1c61,0x1c62,0x1c63,0x1c65,0x1c66,0x1c67,0x1c68,0x1c69,0x1c6a,0x1c6b,
0x1c6c,0x1c6e,0x1c6f,0x1c70,0x1c71,0x1c72,0x1c73,0x1c74,0x1c75,0x1c77,0x1c78,0x1c79,0x1c7a,0x1c7b,0x1c7c,0x1c7d,
0x1c7e,0x1c80,0x1c81,0x1c82,0x1c83,0x1c84,0x1c85,0x1c86,0x1c87,0x1c88,0x1c8a,0x1c8b,0x1c8c,0x1c8d,0x1c8e,0x1c8f,
0x1c90,0x1c91,0x1c93,0x1c94,0x1c95,0x1c96,0x1c97,0x1c98,0x1c99,0x1c9a,0x1c9c,0x1c9d,0x1c9e,0x1c9f,0x1ca0,0x1ca1,
0x1ca2,0x1ca3,0x1ca4,0x1ca6,0x1ca7,0x1ca8,0x1ca9,0x1caa,0x1cab,0x1cac,0x1cad,0x1caf,0x1cb0,0x1cb1,0x1cb2,0x1cb3,
0x1cb4,0x1cb5,0x1cb6,0x1cb7,0x1cb9,0x1cba,0x1cbb,0x1cbc,0x1cbd,0x1cbe,0x1cbf,0x1cc0,0x1cc1,0x1cc3,0x1cc4,0x1cc5,
0x1cc6,0x1cc7,0x1cc8,0x1cc9,0x1cca,0x1ccb,0x1ccd,0x1cce,0x1ccf,0x1cd0,0x1cd1,0x1cd2,0x1cd3,0x1cd4,0x1cd5,0x1cd7,
0x1cd8,0x1cd9,0x1cda,0x1cdb,0x1cdc,0x1cdd,0x1cde,0x1cdf,0x1ce1,0x1ce2,0x1ce3,0x1ce4,0x1ce5,0x1ce6,0x1ce7,0x1ce8,
0x1ce9,0x1ceb,0x1cec,0x1ced,0x1cee,0x1cef,0x1cf0,0x1cf1,0x1cf2,0x1cf3,0x1cf4,0x1cf6,0x1cf7,0x1cf8,0x1cf9,0x1cfa,
0x1cfb,0x1cfc,0x1cfd,0x1cfe,0x1d00,0x1d01,0x1d02,0x1d03,0x1d04,0x1d05,0x1d06,0x1d07,0x1d08,0x1d09,0x1d0b,0x1d0c,
0x1d0d,0x1d0e,0x1d0f,0x1d10,0x1d11,0x1d12,0x1d13,0x1d14,0x1d16,0x1d17,0x1d18,0x1d19,0x1d1a,0x1d1b,0x1d1c,0x1d1d,
0x1d1e,0x1d1f,0x1d21,0x1d22,0x1d23,0x1d24,0x1d25,0x1d26,0x1d27,0x1d28,0x1d29,0x1d2a,0x1d2c,0x1d2d,0x1d2e,0x1d2f,
0x1d30,0x1d31,0x1d32,0x1d33,0x1d34,0x1d35,0x1d36,0x1d38,0x1d39,0x1d3a,0x1d3b,0x1d3c,0x1d3d,0x1d3e,0x1d3f,0x1d40,
0x1d41,0x1d43,0x1d44,0x1d45,0x1d46,0x1d47,0x1d48,0x1d49,0x1d4a,0x1d4b,0x1d4c,0x1d4d,0x1d4f,0x1d50,0x1d51,0x1d52,
0x1d53,0x1d54,0x1d55,0x1d56,0x1d57,0x1d58,0x1d59,0x1d5b,0x1d5c,0x1d5d,0x1d5e,0x1d5f,0x1d60,0x1d61,0x1d62,0x1d63,
0x1d64,0x1d65,0x1d67,0x1d68,0x1d69,0x1d6a,0x1d6b,0x1d6c,0x1d6d,0x1d6e,0x1d6f,0x1d70,0x1d71,0x1d72,0x1d74,0x1d75,
0x1d76,0x1d77,0x1d78,0x1d79,0x1d7a,0x1d7b,0x1d7c,0x1d7d,0x1d7e,0x1d80,0x1d81,0x1d82,0x1d83,0x1d84,0x1d85,0x1d86,
0x1d87,0x1d88,0x1d89,0x1d8a,0x1d8b,0x1d8d,0x1d8e,0x1d8f,0x1d90,0x1d91,0x1d92,0x1d93,0x1d94,0x1d95,0x1d96,0x1d97,
0x1d98,0x1d99,0x1d9b,0x1d9c,0x1d9d,0x1d9e,0x1d9f,0x1da0,0x1da1,0x1da2,0x1da3,0x1da4,0x1da5,0x1da6,0x1da8,0x1da9,
0x1daa,0x1dab,0x1dac,0x1dad,0x1dae,0x1daf,0x1db0,0x1db1,0x1db2,0x1db3,0x1db4,0x1db6,0x1db7,0x1db8,0x1db9,0x1dba,
0x1dbb,0x1dbc,0x1dbd,0x1dbe,0x1dbf,0x1dc0,0x1dc1,0x1dc2,0x1dc4,0x1dc5,0x1dc6,0x1dc7,0x1dc8,0x1dc9,0x1dca,0x1dcb,
0x1dcc,0x1dcd,0x1dce,0x1dcf,0x1dd0,0x1dd1,0x1dd3,0x1dd4,0x1dd5,0x1dd6,0x1dd7,0x1dd8,0x1dd9,0x1dda,0x1ddb,0x1ddc,
0x1ddd,0x1dde,0x1ddf,0x1de1,0x1de2,0x1de3,0x1de4,0x1de5,0x1de6,0x1de7,0x1de8,0x1de9,0x1dea,0x1deb,0x1dec,0x1ded,
0x1dee,0x1def,0x1df1,0x1df2,0x1df3,0x1df4,0x1df5,0x1df6,0x1df7,0x1df8,0x1df9,0x1dfa,0x1dfb,0x1dfc,0x1dfd,0x1dfe,
0x1e00,0x1e01,0x1e02,0x1e03,0x1e04,0x1e05,0x1e06,0x1e07,0x1e08,0x1e09,0x1e0a,0x1e0b,0x1e0c,0x1e0d,0x1e0e,0x1e0f,
0x1e11,0x1e12,0x1e13,0x1e14,0x1e15,0x1e16,0x1e17,0x1e18,0x1e19,0x1e1a,0x1e1b,0x1e1c,0x1e1d,0x1e1e,0x1e1f,0x1e20,
0x1e22,0x1e23,0x1e24,0x1e25,0x1e26,0x1e27,0x1e28,0x1e29,0x1e2a,0x1e2b,0x1e2c,0x1e2d,0x1e2e,0x1e2f,0x1e30,0x1e31,
0x1e33,0x1e34,0x1e35,0x1e36,0x1e37,0x1e38,0x1e39,0x1e3a,0x1e3b,0x1e3c,0x1e3d,0x1e3e,0x1e3f,0x1e40,0x1e41,0x1e42,
0x1e43,0x1e45,0x1e46,0x1e47,0x1e48,0x1e49,0x1e4a,0x1e4b,0x1e4c,0x1e4d,0x1e4e,0x1e4f,0x1e50,0x1e51,0x1e52,0x1e53,
0x1e54,0x1e55,0x1e56,0x1e58,0x1e59,0x1e5a,0x1e5b,0x1e5c,0x1e5d,0x1e5e,0x1e5f,0x1e60,0x1e61,0x1e62,0x1e63,0x1e64,
0x1e65,0x1e66,0x1e67,0x1e68,0x1e69,0x1e6a,0x1e6c,0x1e6d,0x1e6e,0x1e6f,0x1e70,0x1e71,0x1e72,0x1e73,0x1e74,0x1e75,
0x1e76,0x1e77,0x1e78,0x1e79,0x1e7a,0x1e7b,0x1e7c,0x1e7d,0x1e7e,0x1e80,0x1e81,0x1e82,0x1e83,0x1e84,0x1e85,0x1e86,
0x1e87,0x1e88,0x1e89,0x1e8a,0x1e8b,0x1e8c,0x1e8d,0x1e8e,0x1e8f,0x1e90,0x1e91,0x1e92,0x1e93,0x1e94,0x1e96,0x1e97,
0x1e98,0x1e99,0x1e9a,0x1e9b,0x1e9c,0x1e9d,0x1e9e,0x1e9f,0x1ea0,0x1ea1,0x1ea2,0x1ea3,0x1ea4,0x1ea5,0x1ea6,0x1ea7,
0x1ea8,0x1ea9,0x1eaa,0x1eab,0x1eac,0x1eae,0x1eaf,0x1eb0,0x1eb1,0x1eb2,0x1eb3,0x1eb4,0x1eb5,0x1eb6,0x1eb7,0x1eb8,
0x1eb9,0x1eba,0x1ebb,0x1ebc,0x1ebd,0x1ebe,0x1ebf,0x1ec0,0x1ec1,0x1ec2,0x1ec3,0x1ec4,0x1ec5,0x1ec7,0x1ec8,0x1ec9,
0x1eca,0x1ecb,0x1ecc,0x1ecd,0x1ece,0x1ecf,0x1ed0,0x1ed1,0x1ed2,0x1ed3,0x1ed4,0x1ed5,0x1ed6,0x1ed7,0x1ed8,0x1ed9,
0x1eda,0x1edb,0x1edc,0x1edd,0x1ede,0x1edf,0x1ee0,0x1ee2,0x1ee3,0x1ee4,0x1ee5,0x1ee6,0x1ee7,0x1ee8,0x1ee9,0x1eea,
0x1eeb,0x1eec,0x1eed,0x1eee,0x1eef,0x1ef0,0x1ef1,0x1ef2,0x1ef3,0x1ef4,0x1ef5,0x1ef6,0x1ef7,0x1ef8,0x1ef9,0x1efa,
0x1efb,0x1efc,0x1efd,0x1efe,0x1f00,0x1f01,0x1f02,0x1f03,0x1f04,0x1f05,0x1f06,0x1f07,0x1f08,0x1f09,0x1f0a,0x1f0b,
0x1f0c,0x1f0d,0x1f0e,0x1f0f,0x1f10,0x1f11,0x1f12,0x1f13,0x1f14,0x1f15,0x1f16,0x1f17,0x1f18,0x1f19,0x1f1a,0x1f1b,
0x1f1c,0x1f1d,0x1f1e,0x1f1f,0x1f20,0x1f21,0x1f23,0x1f24,0x1f25,0x1f26,0x1f27,0x1f28,0x1f29,0x1f2a,0x1f2b,0x1f2c,
0x1f2d,0x1f2e,0x1f2f,0x1f30,0x1f31,0x1f32,0x1f33,0x1f34,0x1f35,0x1f36,0x1f37,0x1f38,0x1f39,0x1f3a,0x1f3b,0x1f3c,
0x1f3d,0x1f3e,0x1f3f,0x1f40,0x1f41,0x1f42,0x1f43,0x1f44,0x1f45,0x1f46,0x1f47,0x1f48,0x1f49,0x1f4b,0x1f4c,0x1f4d,
0x1f4e,0x1f4f,0x1f50,0x1f51,0x1f52,0x1f53,0x1f54,0x1f55,0x1f56,0x1f57,0x1f58,0x1f59,0x1f5a,0x1f5b,0x1f5c,0x1f5d,
0x1f5e,0x1f5f,0x1f60,0x1f61,0x1f62,0x1f63,0x1f64,0x1f65,0x1f66,0x1f67,0x1f68,0x1f69,0x1f6a,0x1f6b,0x1f6c,0x1f6d,
0x1f6e,0x1f6f,0x1f70,0x1f71,0x1f72,0x1f73,0x1f74,0x1f75,0x1f76,0x1f77,0x1f78,0x1f79,0x1f7a,0x1f7b,0x1f7c,0x1f7d,
0x1f7e,0x1f80,0x1f81,0x1f82,0x1f83,0x1f84,0x1f85,0x1f86,0x1f87,0x1f88,0x1f89,0x1f8a,0x1f8b,0x1f8c,0x1f8d,0x1f8e,
0x1f8f,0x1f90,0x1f91,0x1f92,0x1f93,0x1f94,0x1f95,0x1f96,0x1f97,0x1f98,0x1f99,0x1f9a,0x1f9b,0x1f9c,0x1f9d,0x1f9e,
0x1f9f,0x1fa0,0x1fa1,0x1fa2,0x1fa3,0x1fa4,0x1fa5,0x1fa6,0x1fa7,0x1fa8,0x1fa9,0x1faa,0x1fab,0x1fac,0x1fad,0x1fae,
0x1faf,0x1fb0,0x1fb1,0x1fb2,0x1fb3,0x1fb4,0x1fb5,0x1fb6,0x1fb7,0x1fb8,0x1fb9,0x1fba,0x1fbb,0x1fbc,0x1fbd,0x1fbe,
0x1fbf,0x1fc0,0x1fc1,0x1fc2,0x1fc3,0x1fc4,0x1fc5,0x1fc6,0x1fc7,0x1fc8,0x1fc9,0x1fca,0x1fcb,0x1fcc,0x1fcd,0x1fce,
0x1fcf,0x1fd0,0x1fd1,0x1fd2,0x1fd3,0x1fd4,0x1fd5,0x1fd6,0x1fd7,0x1fd8,0x1fd9,0x1fda,0x1fdb,0x1fdc,0x1fdd,0x1fde,
0x1fdf,0x1fe0,0x1fe1,0x1fe2,0x1fe3,0x1fe4,0x1fe5,0x1fe6,0x1fe7,0x1fe8,0x1fe9,0x1fea,0x1feb,0x1fec,0x1fed,0x1fee,
0x1fef,0x1ff0,0x1ff1,0x1ff2,0x1ff3,0x1ff4,0x1ff5,0x1ff6,0x1ff7,0x1ff8,0x1ff9,0x1ffa,0x1ffb,0x1ffc,0x1ffd,0x1ffe,
0x2000,
};



SI	LFPSqrt(UI sqr)
{
SI x;

	x	= 0;
	while (sqr>=0x1000)
	{
		sqr>>=2;
		x++;
	};
	sqr	= sqrts[sqr];

	x	-= 7;
	if (x>0)	sqr <<= x;
	else		sqr >>= -x;
	return sqr;
}

int pythag(int x, int y)
{
	x	= abs(x)>>8;
	y	= abs(y)>>8;
	if (x > y)	return (x*0xf6) + (y*0x66);
	else		return (x*0x66) + (y*0xf6);
}




SW LFPAtn (int x,int y)
{
bool neg_flag,ob_flag,g45_flag;
SW tmp;

/*	x>>=12; */
/*	y>>=12; */


	neg_flag = ob_flag = g45_flag = FALSE;
	if (y<0)
	{
		y = -y;
		neg_flag = TRUE;
	}
	if (x<0)
	{
		x =-x;
		ob_flag	= TRUE;
	}
	if (y>x)
	{
		while(x>=0x8000)
		{
			y >>= 2;
			x >>= 2;
		}
		if (y==0) tmp = 0;
		else	  tmp = 0x4000 - (SW)(atn_tbl[ ((x<<16)/y) >> 7 ] << 5);
	}
	else
	{
		while (y>=0x8000)
		{
			y >>= 2;
			x >>= 2;
		}

		if (x==0) tmp = 0;
		else	  tmp = (SW) atn_tbl[ ((y<<16)/x) >> 7 ] << 5;
	}

	if (ob_flag)	tmp = 0x8000 - tmp;
	if (neg_flag)	tmp	= -tmp;
	return tmp;
}


short int asin_tab[]={
0x0,0x2,0x5,0x7,0xa,0xc,0xf,0x11,0x14,0x16,0x19,0x1c,0x1e,0x21,0x23,0x26,
0x28,0x2b,0x2d,0x30,0x32,0x35,0x38,0x3a,0x3d,0x3f,0x42,0x44,0x47,0x49,0x4c,0x4e,
0x51,0x54,0x56,0x59,0x5b,0x5e,0x60,0x63,0x65,0x68,0x6a,0x6d,0x70,0x72,0x75,0x77,
0x7a,0x7c,0x7f,0x81,0x84,0x86,0x89,0x8c,0x8e,0x91,0x93,0x96,0x98,0x9b,0x9d,0xa0,
0xa2,0xa5,0xa8,0xaa,0xad,0xaf,0xb2,0xb4,0xb7,0xb9,0xbc,0xbe,0xc1,0xc4,0xc6,0xc9,
0xcb,0xce,0xd0,0xd3,0xd5,0xd8,0xdb,0xdd,0xe0,0xe2,0xe5,0xe7,0xea,0xec,0xef,0xf1,
0xf4,0xf7,0xf9,0xfc,0xfe,0x101,0x103,0x106,0x108,0x10b,0x10d,0x110,0x113,0x115,0x118,0x11a,
0x11d,0x11f,0x122,0x124,0x127,0x129,0x12c,0x12f,0x131,0x134,0x136,0x139,0x13b,0x13e,0x140,0x143,
0x146,0x148,0x14b,0x14d,0x150,0x152,0x155,0x157,0x15a,0x15c,0x15f,0x162,0x164,0x167,0x169,0x16c,
0x16e,0x171,0x173,0x176,0x178,0x17b,0x17e,0x180,0x183,0x185,0x188,0x18a,0x18d,0x18f,0x192,0x194,
0x197,0x19a,0x19c,0x19f,0x1a1,0x1a4,0x1a6,0x1a9,0x1ab,0x1ae,0x1b1,0x1b3,0x1b6,0x1b8,0x1bb,0x1bd,
0x1c0,0x1c2,0x1c5,0x1c7,0x1ca,0x1cd,0x1cf,0x1d2,0x1d4,0x1d7,0x1d9,0x1dc,0x1de,0x1e1,0x1e4,0x1e6,
0x1e9,0x1eb,0x1ee,0x1f0,0x1f3,0x1f5,0x1f8,0x1fa,0x1fd,0x200,0x202,0x205,0x207,0x20a,0x20c,0x20f,
0x211,0x214,0x216,0x219,0x21c,0x21e,0x221,0x223,0x226,0x228,0x22b,0x22d,0x230,0x233,0x235,0x238,
0x23a,0x23d,0x23f,0x242,0x244,0x247,0x249,0x24c,0x24f,0x251,0x254,0x256,0x259,0x25b,0x25e,0x260,
0x263,0x266,0x268,0x26b,0x26d,0x270,0x272,0x275,0x277,0x27a,0x27d,0x27f,0x282,0x284,0x287,0x289,
0x28c,0x28e,0x291,0x293,0x296,0x299,0x29b,0x29e,0x2a0,0x2a3,0x2a5,0x2a8,0x2aa,0x2ad,0x2b0,0x2b2,
0x2b5,0x2b7,0x2ba,0x2bc,0x2bf,0x2c1,0x2c4,0x2c7,0x2c9,0x2cc,0x2ce,0x2d1,0x2d3,0x2d6,0x2d8,0x2db,
0x2dd,0x2e0,0x2e3,0x2e5,0x2e8,0x2ea,0x2ed,0x2ef,0x2f2,0x2f4,0x2f7,0x2fa,0x2fc,0x2ff,0x301,0x304,
0x306,0x309,0x30b,0x30e,0x311,0x313,0x316,0x318,0x31b,0x31d,0x320,0x322,0x325,0x328,0x32a,0x32d,
0x32f,0x332,0x334,0x337,0x339,0x33c,0x33f,0x341,0x344,0x346,0x349,0x34b,0x34e,0x350,0x353,0x356,
0x358,0x35b,0x35d,0x360,0x362,0x365,0x367,0x36a,0x36d,0x36f,0x372,0x374,0x377,0x379,0x37c,0x37e,
0x381,0x384,0x386,0x389,0x38b,0x38e,0x390,0x393,0x395,0x398,0x39b,0x39d,0x3a0,0x3a2,0x3a5,0x3a7,
0x3aa,0x3ac,0x3af,0x3b2,0x3b4,0x3b7,0x3b9,0x3bc,0x3be,0x3c1,0x3c3,0x3c6,0x3c9,0x3cb,0x3ce,0x3d0,
0x3d3,0x3d5,0x3d8,0x3da,0x3dd,0x3e0,0x3e2,0x3e5,0x3e7,0x3ea,0x3ec,0x3ef,0x3f1,0x3f4,0x3f7,0x3f9,
0x3fc,0x3fe,0x401,0x403,0x406,0x409,0x40b,0x40e,0x410,0x413,0x415,0x418,0x41a,0x41d,0x420,0x422,
0x425,0x427,0x42a,0x42c,0x42f,0x431,0x434,0x437,0x439,0x43c,0x43e,0x441,0x443,0x446,0x449,0x44b,
0x44e,0x450,0x453,0x455,0x458,0x45a,0x45d,0x460,0x462,0x465,0x467,0x46a,0x46c,0x46f,0x471,0x474,
0x477,0x479,0x47c,0x47e,0x481,0x483,0x486,0x489,0x48b,0x48e,0x490,0x493,0x495,0x498,0x49a,0x49d,
0x4a0,0x4a2,0x4a5,0x4a7,0x4aa,0x4ac,0x4af,0x4b2,0x4b4,0x4b7,0x4b9,0x4bc,0x4be,0x4c1,0x4c3,0x4c6,
0x4c9,0x4cb,0x4ce,0x4d0,0x4d3,0x4d5,0x4d8,0x4db,0x4dd,0x4e0,0x4e2,0x4e5,0x4e7,0x4ea,0x4ed,0x4ef,
0x4f2,0x4f4,0x4f7,0x4f9,0x4fc,0x4fe,0x501,0x504,0x506,0x509,0x50b,0x50e,0x510,0x513,0x516,0x518,
0x51b,0x51d,0x520,0x522,0x525,0x528,0x52a,0x52d,0x52f,0x532,0x534,0x537,0x53a,0x53c,0x53f,0x541,
0x544,0x546,0x549,0x54b,0x54e,0x551,0x553,0x556,0x558,0x55b,0x55d,0x560,0x563,0x565,0x568,0x56a,
0x56d,0x56f,0x572,0x575,0x577,0x57a,0x57c,0x57f,0x581,0x584,0x587,0x589,0x58c,0x58e,0x591,0x593,
0x596,0x599,0x59b,0x59e,0x5a0,0x5a3,0x5a5,0x5a8,0x5ab,0x5ad,0x5b0,0x5b2,0x5b5,0x5b7,0x5ba,0x5bd,
0x5bf,0x5c2,0x5c4,0x5c7,0x5c9,0x5cc,0x5cf,0x5d1,0x5d4,0x5d6,0x5d9,0x5db,0x5de,0x5e1,0x5e3,0x5e6,
0x5e8,0x5eb,0x5ed,0x5f0,0x5f3,0x5f5,0x5f8,0x5fa,0x5fd,0x5ff,0x602,0x605,0x607,0x60a,0x60c,0x60f,
0x612,0x614,0x617,0x619,0x61c,0x61e,0x621,0x624,0x626,0x629,0x62b,0x62e,0x630,0x633,0x636,0x638,
0x63b,0x63d,0x640,0x642,0x645,0x648,0x64a,0x64d,0x64f,0x652,0x654,0x657,0x65a,0x65c,0x65f,0x661,
0x664,0x667,0x669,0x66c,0x66e,0x671,0x673,0x676,0x679,0x67b,0x67e,0x680,0x683,0x685,0x688,0x68b,
0x68d,0x690,0x692,0x695,0x698,0x69a,0x69d,0x69f,0x6a2,0x6a4,0x6a7,0x6aa,0x6ac,0x6af,0x6b1,0x6b4,
0x6b7,0x6b9,0x6bc,0x6be,0x6c1,0x6c3,0x6c6,0x6c9,0x6cb,0x6ce,0x6d0,0x6d3,0x6d5,0x6d8,0x6db,0x6dd,
0x6e0,0x6e2,0x6e5,0x6e8,0x6ea,0x6ed,0x6ef,0x6f2,0x6f4,0x6f7,0x6fa,0x6fc,0x6ff,0x701,0x704,0x707,
0x709,0x70c,0x70e,0x711,0x714,0x716,0x719,0x71b,0x71e,0x720,0x723,0x726,0x728,0x72b,0x72d,0x730,
0x733,0x735,0x738,0x73a,0x73d,0x73f,0x742,0x745,0x747,0x74a,0x74c,0x74f,0x752,0x754,0x757,0x759,
0x75c,0x75f,0x761,0x764,0x766,0x769,0x76b,0x76e,0x771,0x773,0x776,0x778,0x77b,0x77e,0x780,0x783,
0x785,0x788,0x78b,0x78d,0x790,0x792,0x795,0x798,0x79a,0x79d,0x79f,0x7a2,0x7a4,0x7a7,0x7aa,0x7ac,
0x7af,0x7b1,0x7b4,0x7b7,0x7b9,0x7bc,0x7be,0x7c1,0x7c4,0x7c6,0x7c9,0x7cb,0x7ce,0x7d1,0x7d3,0x7d6,
0x7d8,0x7db,0x7de,0x7e0,0x7e3,0x7e5,0x7e8,0x7ea,0x7ed,0x7f0,0x7f2,0x7f5,0x7f7,0x7fa,0x7fd,0x7ff,
0x802,0x804,0x807,0x80a,0x80c,0x80f,0x811,0x814,0x817,0x819,0x81c,0x81e,0x821,0x824,0x826,0x829,
0x82b,0x82e,0x831,0x833,0x836,0x838,0x83b,0x83e,0x840,0x843,0x845,0x848,0x84b,0x84d,0x850,0x852,
0x855,0x858,0x85a,0x85d,0x85f,0x862,0x865,0x867,0x86a,0x86c,0x86f,0x872,0x874,0x877,0x879,0x87c,
0x87f,0x881,0x884,0x886,0x889,0x88c,0x88e,0x891,0x893,0x896,0x899,0x89b,0x89e,0x8a0,0x8a3,0x8a6,
0x8a8,0x8ab,0x8ae,0x8b0,0x8b3,0x8b5,0x8b8,0x8bb,0x8bd,0x8c0,0x8c2,0x8c5,0x8c8,0x8ca,0x8cd,0x8cf,
0x8d2,0x8d5,0x8d7,0x8da,0x8dc,0x8df,0x8e2,0x8e4,0x8e7,0x8e9,0x8ec,0x8ef,0x8f1,0x8f4,0x8f7,0x8f9,
0x8fc,0x8fe,0x901,0x904,0x906,0x909,0x90b,0x90e,0x911,0x913,0x916,0x918,0x91b,0x91e,0x920,0x923,
0x926,0x928,0x92b,0x92d,0x930,0x933,0x935,0x938,0x93a,0x93d,0x940,0x942,0x945,0x947,0x94a,0x94d,
0x94f,0x952,0x955,0x957,0x95a,0x95c,0x95f,0x962,0x964,0x967,0x969,0x96c,0x96f,0x971,0x974,0x977,
0x979,0x97c,0x97e,0x981,0x984,0x986,0x989,0x98c,0x98e,0x991,0x993,0x996,0x999,0x99b,0x99e,0x9a0,
0x9a3,0x9a6,0x9a8,0x9ab,0x9ae,0x9b0,0x9b3,0x9b5,0x9b8,0x9bb,0x9bd,0x9c0,0x9c3,0x9c5,0x9c8,0x9ca,
0x9cd,0x9d0,0x9d2,0x9d5,0x9d7,0x9da,0x9dd,0x9df,0x9e2,0x9e5,0x9e7,0x9ea,0x9ec,0x9ef,0x9f2,0x9f4,
0x9f7,0x9fa,0x9fc,0x9ff,0xa01,0xa04,0xa07,0xa09,0xa0c,0xa0f,0xa11,0xa14,0xa16,0xa19,0xa1c,0xa1e,
0xa21,0xa24,0xa26,0xa29,0xa2c,0xa2e,0xa31,0xa33,0xa36,0xa39,0xa3b,0xa3e,0xa41,0xa43,0xa46,0xa48,
0xa4b,0xa4e,0xa50,0xa53,0xa56,0xa58,0xa5b,0xa5d,0xa60,0xa63,0xa65,0xa68,0xa6b,0xa6d,0xa70,0xa73,
0xa75,0xa78,0xa7a,0xa7d,0xa80,0xa82,0xa85,0xa88,0xa8a,0xa8d,0xa8f,0xa92,0xa95,0xa97,0xa9a,0xa9d,
0xa9f,0xaa2,0xaa5,0xaa7,0xaaa,0xaac,0xaaf,0xab2,0xab4,0xab7,0xaba,0xabc,0xabf,0xac2,0xac4,0xac7,
0xac9,0xacc,0xacf,0xad1,0xad4,0xad7,0xad9,0xadc,0xadf,0xae1,0xae4,0xae7,0xae9,0xaec,0xaee,0xaf1,
0xaf4,0xaf6,0xaf9,0xafc,0xafe,0xb01,0xb04,0xb06,0xb09,0xb0c,0xb0e,0xb11,0xb13,0xb16,0xb19,0xb1b,
0xb1e,0xb21,0xb23,0xb26,0xb29,0xb2b,0xb2e,0xb31,0xb33,0xb36,0xb38,0xb3b,0xb3e,0xb40,0xb43,0xb46,
0xb48,0xb4b,0xb4e,0xb50,0xb53,0xb56,0xb58,0xb5b,0xb5e,0xb60,0xb63,0xb65,0xb68,0xb6b,0xb6d,0xb70,
0xb73,0xb75,0xb78,0xb7b,0xb7d,0xb80,0xb83,0xb85,0xb88,0xb8b,0xb8d,0xb90,0xb93,0xb95,0xb98,0xb9b,
0xb9d,0xba0,0xba2,0xba5,0xba8,0xbaa,0xbad,0xbb0,0xbb2,0xbb5,0xbb8,0xbba,0xbbd,0xbc0,0xbc2,0xbc5,
0xbc8,0xbca,0xbcd,0xbd0,0xbd2,0xbd5,0xbd8,0xbda,0xbdd,0xbe0,0xbe2,0xbe5,0xbe8,0xbea,0xbed,0xbf0,
0xbf2,0xbf5,0xbf8,0xbfa,0xbfd,0xbff,0xc02,0xc05,0xc07,0xc0a,0xc0d,0xc0f,0xc12,0xc15,0xc17,0xc1a,
0xc1d,0xc1f,0xc22,0xc25,0xc27,0xc2a,0xc2d,0xc2f,0xc32,0xc35,0xc37,0xc3a,0xc3d,0xc3f,0xc42,0xc45,
0xc47,0xc4a,0xc4d,0xc4f,0xc52,0xc55,0xc57,0xc5a,0xc5d,0xc5f,0xc62,0xc65,0xc67,0xc6a,0xc6d,0xc6f,
0xc72,0xc75,0xc77,0xc7a,0xc7d,0xc7f,0xc82,0xc85,0xc87,0xc8a,0xc8d,0xc8f,0xc92,0xc95,0xc98,0xc9a,
0xc9d,0xca0,0xca2,0xca5,0xca8,0xcaa,0xcad,0xcb0,0xcb2,0xcb5,0xcb8,0xcba,0xcbd,0xcc0,0xcc2,0xcc5,
0xcc8,0xcca,0xccd,0xcd0,0xcd2,0xcd5,0xcd8,0xcda,0xcdd,0xce0,0xce2,0xce5,0xce8,0xcea,0xced,0xcf0,
0xcf3,0xcf5,0xcf8,0xcfb,0xcfd,0xd00,0xd03,0xd05,0xd08,0xd0b,0xd0d,0xd10,0xd13,0xd15,0xd18,0xd1b,
0xd1d,0xd20,0xd23,0xd25,0xd28,0xd2b,0xd2e,0xd30,0xd33,0xd36,0xd38,0xd3b,0xd3e,0xd40,0xd43,0xd46,
0xd48,0xd4b,0xd4e,0xd50,0xd53,0xd56,0xd59,0xd5b,0xd5e,0xd61,0xd63,0xd66,0xd69,0xd6b,0xd6e,0xd71,
0xd73,0xd76,0xd79,0xd7c,0xd7e,0xd81,0xd84,0xd86,0xd89,0xd8c,0xd8e,0xd91,0xd94,0xd96,0xd99,0xd9c,
0xd9f,0xda1,0xda4,0xda7,0xda9,0xdac,0xdaf,0xdb1,0xdb4,0xdb7,0xdba,0xdbc,0xdbf,0xdc2,0xdc4,0xdc7,
0xdca,0xdcc,0xdcf,0xdd2,0xdd5,0xdd7,0xdda,0xddd,0xddf,0xde2,0xde5,0xde7,0xdea,0xded,0xdf0,0xdf2,
0xdf5,0xdf8,0xdfa,0xdfd,0xe00,0xe02,0xe05,0xe08,0xe0b,0xe0d,0xe10,0xe13,0xe15,0xe18,0xe1b,0xe1e,
0xe20,0xe23,0xe26,0xe28,0xe2b,0xe2e,0xe30,0xe33,0xe36,0xe39,0xe3b,0xe3e,0xe41,0xe43,0xe46,0xe49,
0xe4c,0xe4e,0xe51,0xe54,0xe56,0xe59,0xe5c,0xe5f,0xe61,0xe64,0xe67,0xe69,0xe6c,0xe6f,0xe72,0xe74,
0xe77,0xe7a,0xe7c,0xe7f,0xe82,0xe85,0xe87,0xe8a,0xe8d,0xe8f,0xe92,0xe95,0xe98,0xe9a,0xe9d,0xea0,
0xea3,0xea5,0xea8,0xeab,0xead,0xeb0,0xeb3,0xeb6,0xeb8,0xebb,0xebe,0xec0,0xec3,0xec6,0xec9,0xecb,
0xece,0xed1,0xed4,0xed6,0xed9,0xedc,0xede,0xee1,0xee4,0xee7,0xee9,0xeec,0xeef,0xef2,0xef4,0xef7,
0xefa,0xefc,0xeff,0xf02,0xf05,0xf07,0xf0a,0xf0d,0xf10,0xf12,0xf15,0xf18,0xf1a,0xf1d,0xf20,0xf23,
0xf25,0xf28,0xf2b,0xf2e,0xf30,0xf33,0xf36,0xf39,0xf3b,0xf3e,0xf41,0xf43,0xf46,0xf49,0xf4c,0xf4e,
0xf51,0xf54,0xf57,0xf59,0xf5c,0xf5f,0xf62,0xf64,0xf67,0xf6a,0xf6d,0xf6f,0xf72,0xf75,0xf78,0xf7a,
0xf7d,0xf80,0xf82,0xf85,0xf88,0xf8b,0xf8d,0xf90,0xf93,0xf96,0xf98,0xf9b,0xf9e,0xfa1,0xfa3,0xfa6,
0xfa9,0xfac,0xfae,0xfb1,0xfb4,0xfb7,0xfb9,0xfbc,0xfbf,0xfc2,0xfc4,0xfc7,0xfca,0xfcd,0xfcf,0xfd2,
0xfd5,0xfd8,0xfda,0xfdd,0xfe0,0xfe3,0xfe5,0xfe8,0xfeb,0xfee,0xff0,0xff3,0xff6,0xff9,0xffb,0xffe,
0x1001,0x1004,0x1006,0x1009,0x100c,0x100f,0x1012,0x1014,0x1017,0x101a,0x101d,0x101f,0x1022,0x1025,0x1028,0x102a,
0x102d,0x1030,0x1033,0x1035,0x1038,0x103b,0x103e,0x1040,0x1043,0x1046,0x1049,0x104b,0x104e,0x1051,0x1054,0x1057,
0x1059,0x105c,0x105f,0x1062,0x1064,0x1067,0x106a,0x106d,0x106f,0x1072,0x1075,0x1078,0x107b,0x107d,0x1080,0x1083,
0x1086,0x1088,0x108b,0x108e,0x1091,0x1093,0x1096,0x1099,0x109c,0x109f,0x10a1,0x10a4,0x10a7,0x10aa,0x10ac,0x10af,
0x10b2,0x10b5,0x10b8,0x10ba,0x10bd,0x10c0,0x10c3,0x10c5,0x10c8,0x10cb,0x10ce,0x10d1,0x10d3,0x10d6,0x10d9,0x10dc,
0x10de,0x10e1,0x10e4,0x10e7,0x10ea,0x10ec,0x10ef,0x10f2,0x10f5,0x10f8,0x10fa,0x10fd,0x1100,0x1103,0x1105,0x1108,
0x110b,0x110e,0x1111,0x1113,0x1116,0x1119,0x111c,0x111f,0x1121,0x1124,0x1127,0x112a,0x112c,0x112f,0x1132,0x1135,
0x1138,0x113a,0x113d,0x1140,0x1143,0x1146,0x1148,0x114b,0x114e,0x1151,0x1154,0x1156,0x1159,0x115c,0x115f,0x1162,
0x1164,0x1167,0x116a,0x116d,0x1170,0x1172,0x1175,0x1178,0x117b,0x117e,0x1180,0x1183,0x1186,0x1189,0x118c,0x118e,
0x1191,0x1194,0x1197,0x119a,0x119c,0x119f,0x11a2,0x11a5,0x11a8,0x11aa,0x11ad,0x11b0,0x11b3,0x11b6,0x11b8,0x11bb,
0x11be,0x11c1,0x11c4,0x11c6,0x11c9,0x11cc,0x11cf,0x11d2,0x11d5,0x11d7,0x11da,0x11dd,0x11e0,0x11e3,0x11e5,0x11e8,
0x11eb,0x11ee,0x11f1,0x11f3,0x11f6,0x11f9,0x11fc,0x11ff,0x1202,0x1204,0x1207,0x120a,0x120d,0x1210,0x1212,0x1215,
0x1218,0x121b,0x121e,0x1221,0x1223,0x1226,0x1229,0x122c,0x122f,0x1232,0x1234,0x1237,0x123a,0x123d,0x1240,0x1242,
0x1245,0x1248,0x124b,0x124e,0x1251,0x1253,0x1256,0x1259,0x125c,0x125f,0x1262,0x1264,0x1267,0x126a,0x126d,0x1270,
0x1273,0x1275,0x1278,0x127b,0x127e,0x1281,0x1284,0x1286,0x1289,0x128c,0x128f,0x1292,0x1295,0x1297,0x129a,0x129d,
0x12a0,0x12a3,0x12a6,0x12a8,0x12ab,0x12ae,0x12b1,0x12b4,0x12b7,0x12b9,0x12bc,0x12bf,0x12c2,0x12c5,0x12c8,0x12cb,
0x12cd,0x12d0,0x12d3,0x12d6,0x12d9,0x12dc,0x12de,0x12e1,0x12e4,0x12e7,0x12ea,0x12ed,0x12f0,0x12f2,0x12f5,0x12f8,
0x12fb,0x12fe,0x1301,0x1303,0x1306,0x1309,0x130c,0x130f,0x1312,0x1315,0x1317,0x131a,0x131d,0x1320,0x1323,0x1326,
0x1329,0x132b,0x132e,0x1331,0x1334,0x1337,0x133a,0x133d,0x133f,0x1342,0x1345,0x1348,0x134b,0x134e,0x1351,0x1353,
0x1356,0x1359,0x135c,0x135f,0x1362,0x1365,0x1368,0x136a,0x136d,0x1370,0x1373,0x1376,0x1379,0x137c,0x137e,0x1381,
0x1384,0x1387,0x138a,0x138d,0x1390,0x1393,0x1395,0x1398,0x139b,0x139e,0x13a1,0x13a4,0x13a7,0x13aa,0x13ac,0x13af,
0x13b2,0x13b5,0x13b8,0x13bb,0x13be,0x13c1,0x13c3,0x13c6,0x13c9,0x13cc,0x13cf,0x13d2,0x13d5,0x13d8,0x13da,0x13dd,
0x13e0,0x13e3,0x13e6,0x13e9,0x13ec,0x13ef,0x13f2,0x13f4,0x13f7,0x13fa,0x13fd,0x1400,0x1403,0x1406,0x1409,0x140c,
0x140e,0x1411,0x1414,0x1417,0x141a,0x141d,0x1420,0x1423,0x1426,0x1428,0x142b,0x142e,0x1431,0x1434,0x1437,0x143a,
0x143d,0x1440,0x1442,0x1445,0x1448,0x144b,0x144e,0x1451,0x1454,0x1457,0x145a,0x145d,0x145f,0x1462,0x1465,0x1468,
0x146b,0x146e,0x1471,0x1474,0x1477,0x147a,0x147d,0x147f,0x1482,0x1485,0x1488,0x148b,0x148e,0x1491,0x1494,0x1497,
0x149a,0x149d,0x149f,0x14a2,0x14a5,0x14a8,0x14ab,0x14ae,0x14b1,0x14b4,0x14b7,0x14ba,0x14bd,0x14bf,0x14c2,0x14c5,
0x14c8,0x14cb,0x14ce,0x14d1,0x14d4,0x14d7,0x14da,0x14dd,0x14e0,0x14e3,0x14e5,0x14e8,0x14eb,0x14ee,0x14f1,0x14f4,
0x14f7,0x14fa,0x14fd,0x1500,0x1503,0x1506,0x1509,0x150b,0x150e,0x1511,0x1514,0x1517,0x151a,0x151d,0x1520,0x1523,
0x1526,0x1529,0x152c,0x152f,0x1532,0x1535,0x1537,0x153a,0x153d,0x1540,0x1543,0x1546,0x1549,0x154c,0x154f,0x1552,
0x1555,0x1558,0x155b,0x155e,0x1561,0x1564,0x1566,0x1569,0x156c,0x156f,0x1572,0x1575,0x1578,0x157b,0x157e,0x1581,
0x1584,0x1587,0x158a,0x158d,0x1590,0x1593,0x1596,0x1599,0x159c,0x159e,0x15a1,0x15a4,0x15a7,0x15aa,0x15ad,0x15b0,
0x15b3,0x15b6,0x15b9,0x15bc,0x15bf,0x15c2,0x15c5,0x15c8,0x15cb,0x15ce,0x15d1,0x15d4,0x15d7,0x15da,0x15dd,0x15e0,
0x15e3,0x15e5,0x15e8,0x15eb,0x15ee,0x15f1,0x15f4,0x15f7,0x15fa,0x15fd,0x1600,0x1603,0x1606,0x1609,0x160c,0x160f,
0x1612,0x1615,0x1618,0x161b,0x161e,0x1621,0x1624,0x1627,0x162a,0x162d,0x1630,0x1633,0x1636,0x1639,0x163c,0x163f,
0x1642,0x1645,0x1648,0x164b,0x164e,0x1651,0x1654,0x1657,0x1659,0x165c,0x165f,0x1662,0x1665,0x1668,0x166b,0x166e,
0x1671,0x1674,0x1677,0x167a,0x167d,0x1680,0x1683,0x1686,0x1689,0x168c,0x168f,0x1692,0x1695,0x1698,0x169b,0x169e,
0x16a1,0x16a4,0x16a7,0x16aa,0x16ad,0x16b0,0x16b3,0x16b6,0x16b9,0x16bc,0x16bf,0x16c2,0x16c5,0x16c8,0x16cb,0x16ce,
0x16d1,0x16d4,0x16d7,0x16da,0x16dd,0x16e0,0x16e3,0x16e6,0x16e9,0x16ec,0x16ef,0x16f2,0x16f5,0x16f8,0x16fb,0x16fe,
0x1701,0x1704,0x1707,0x170b,0x170e,0x1711,0x1714,0x1717,0x171a,0x171d,0x1720,0x1723,0x1726,0x1729,0x172c,0x172f,
0x1732,0x1735,0x1738,0x173b,0x173e,0x1741,0x1744,0x1747,0x174a,0x174d,0x1750,0x1753,0x1756,0x1759,0x175c,0x175f,
0x1762,0x1765,0x1768,0x176b,0x176e,0x1771,0x1774,0x1777,0x177a,0x177e,0x1781,0x1784,0x1787,0x178a,0x178d,0x1790,
0x1793,0x1796,0x1799,0x179c,0x179f,0x17a2,0x17a5,0x17a8,0x17ab,0x17ae,0x17b1,0x17b4,0x17b7,0x17ba,0x17bd,0x17c0,
0x17c4,0x17c7,0x17ca,0x17cd,0x17d0,0x17d3,0x17d6,0x17d9,0x17dc,0x17df,0x17e2,0x17e5,0x17e8,0x17eb,0x17ee,0x17f1,
0x17f4,0x17f7,0x17fb,0x17fe,0x1801,0x1804,0x1807,0x180a,0x180d,0x1810,0x1813,0x1816,0x1819,0x181c,0x181f,0x1822,
0x1825,0x1829,0x182c,0x182f,0x1832,0x1835,0x1838,0x183b,0x183e,0x1841,0x1844,0x1847,0x184a,0x184d,0x1851,0x1854,
0x1857,0x185a,0x185d,0x1860,0x1863,0x1866,0x1869,0x186c,0x186f,0x1872,0x1876,0x1879,0x187c,0x187f,0x1882,0x1885,
0x1888,0x188b,0x188e,0x1891,0x1894,0x1897,0x189b,0x189e,0x18a1,0x18a4,0x18a7,0x18aa,0x18ad,0x18b0,0x18b3,0x18b6,
0x18ba,0x18bd,0x18c0,0x18c3,0x18c6,0x18c9,0x18cc,0x18cf,0x18d2,0x18d5,0x18d9,0x18dc,0x18df,0x18e2,0x18e5,0x18e8,
0x18eb,0x18ee,0x18f1,0x18f5,0x18f8,0x18fb,0x18fe,0x1901,0x1904,0x1907,0x190a,0x190d,0x1911,0x1914,0x1917,0x191a,
0x191d,0x1920,0x1923,0x1926,0x192a,0x192d,0x1930,0x1933,0x1936,0x1939,0x193c,0x193f,0x1943,0x1946,0x1949,0x194c,
0x194f,0x1952,0x1955,0x1959,0x195c,0x195f,0x1962,0x1965,0x1968,0x196b,0x196e,0x1972,0x1975,0x1978,0x197b,0x197e,
0x1981,0x1984,0x1988,0x198b,0x198e,0x1991,0x1994,0x1997,0x199a,0x199e,0x19a1,0x19a4,0x19a7,0x19aa,0x19ad,0x19b1,
0x19b4,0x19b7,0x19ba,0x19bd,0x19c0,0x19c3,0x19c7,0x19ca,0x19cd,0x19d0,0x19d3,0x19d6,0x19da,0x19dd,0x19e0,0x19e3,
0x19e6,0x19e9,0x19ed,0x19f0,0x19f3,0x19f6,0x19f9,0x19fc,0x1a00,0x1a03,0x1a06,0x1a09,0x1a0c,0x1a0f,0x1a13,0x1a16,
0x1a19,0x1a1c,0x1a1f,0x1a22,0x1a26,0x1a29,0x1a2c,0x1a2f,0x1a32,0x1a36,0x1a39,0x1a3c,0x1a3f,0x1a42,0x1a45,0x1a49,
0x1a4c,0x1a4f,0x1a52,0x1a55,0x1a59,0x1a5c,0x1a5f,0x1a62,0x1a65,0x1a69,0x1a6c,0x1a6f,0x1a72,0x1a75,0x1a79,0x1a7c,
0x1a7f,0x1a82,0x1a85,0x1a89,0x1a8c,0x1a8f,0x1a92,0x1a95,0x1a99,0x1a9c,0x1a9f,0x1aa2,0x1aa5,0x1aa9,0x1aac,0x1aaf,
0x1ab2,0x1ab5,0x1ab9,0x1abc,0x1abf,0x1ac2,0x1ac6,0x1ac9,0x1acc,0x1acf,0x1ad2,0x1ad6,0x1ad9,0x1adc,0x1adf,0x1ae2,
0x1ae6,0x1ae9,0x1aec,0x1aef,0x1af3,0x1af6,0x1af9,0x1afc,0x1b00,0x1b03,0x1b06,0x1b09,0x1b0c,0x1b10,0x1b13,0x1b16,
0x1b19,0x1b1d,0x1b20,0x1b23,0x1b26,0x1b2a,0x1b2d,0x1b30,0x1b33,0x1b37,0x1b3a,0x1b3d,0x1b40,0x1b44,0x1b47,0x1b4a,
0x1b4d,0x1b51,0x1b54,0x1b57,0x1b5a,0x1b5e,0x1b61,0x1b64,0x1b67,0x1b6b,0x1b6e,0x1b71,0x1b74,0x1b78,0x1b7b,0x1b7e,
0x1b81,0x1b85,0x1b88,0x1b8b,0x1b8e,0x1b92,0x1b95,0x1b98,0x1b9c,0x1b9f,0x1ba2,0x1ba5,0x1ba9,0x1bac,0x1baf,0x1bb2,
0x1bb6,0x1bb9,0x1bbc,0x1bc0,0x1bc3,0x1bc6,0x1bc9,0x1bcd,0x1bd0,0x1bd3,0x1bd6,0x1bda,0x1bdd,0x1be0,0x1be4,0x1be7,
0x1bea,0x1bed,0x1bf1,0x1bf4,0x1bf7,0x1bfb,0x1bfe,0x1c01,0x1c05,0x1c08,0x1c0b,0x1c0e,0x1c12,0x1c15,0x1c18,0x1c1c,
0x1c1f,0x1c22,0x1c26,0x1c29,0x1c2c,0x1c2f,0x1c33,0x1c36,0x1c39,0x1c3d,0x1c40,0x1c43,0x1c47,0x1c4a,0x1c4d,0x1c51,
0x1c54,0x1c57,0x1c5b,0x1c5e,0x1c61,0x1c64,0x1c68,0x1c6b,0x1c6e,0x1c72,0x1c75,0x1c78,0x1c7c,0x1c7f,0x1c82,0x1c86,
0x1c89,0x1c8c,0x1c90,0x1c93,0x1c96,0x1c9a,0x1c9d,0x1ca0,0x1ca4,0x1ca7,0x1caa,0x1cae,0x1cb1,0x1cb4,0x1cb8,0x1cbb,
0x1cbe,0x1cc2,0x1cc5,0x1cc8,0x1ccc,0x1ccf,0x1cd3,0x1cd6,0x1cd9,0x1cdd,0x1ce0,0x1ce3,0x1ce7,0x1cea,0x1ced,0x1cf1,
0x1cf4,0x1cf7,0x1cfb,0x1cfe,0x1d02,0x1d05,0x1d08,0x1d0c,0x1d0f,0x1d12,0x1d16,0x1d19,0x1d1c,0x1d20,0x1d23,0x1d27,
0x1d2a,0x1d2d,0x1d31,0x1d34,0x1d37,0x1d3b,0x1d3e,0x1d42,0x1d45,0x1d48,0x1d4c,0x1d4f,0x1d53,0x1d56,0x1d59,0x1d5d,
0x1d60,0x1d63,0x1d67,0x1d6a,0x1d6e,0x1d71,0x1d74,0x1d78,0x1d7b,0x1d7f,0x1d82,0x1d85,0x1d89,0x1d8c,0x1d90,0x1d93,
0x1d96,0x1d9a,0x1d9d,0x1da1,0x1da4,0x1da7,0x1dab,0x1dae,0x1db2,0x1db5,0x1db9,0x1dbc,0x1dbf,0x1dc3,0x1dc6,0x1dca,
0x1dcd,0x1dd0,0x1dd4,0x1dd7,0x1ddb,0x1dde,0x1de2,0x1de5,0x1de8,0x1dec,0x1def,0x1df3,0x1df6,0x1dfa,0x1dfd,0x1e01,
0x1e04,0x1e07,0x1e0b,0x1e0e,0x1e12,0x1e15,0x1e19,0x1e1c,0x1e1f,0x1e23,0x1e26,0x1e2a,0x1e2d,0x1e31,0x1e34,0x1e38,
0x1e3b,0x1e3f,0x1e42,0x1e45,0x1e49,0x1e4c,0x1e50,0x1e53,0x1e57,0x1e5a,0x1e5e,0x1e61,0x1e65,0x1e68,0x1e6c,0x1e6f,
0x1e73,0x1e76,0x1e79,0x1e7d,0x1e80,0x1e84,0x1e87,0x1e8b,0x1e8e,0x1e92,0x1e95,0x1e99,0x1e9c,0x1ea0,0x1ea3,0x1ea7,
0x1eaa,0x1eae,0x1eb1,0x1eb5,0x1eb8,0x1ebc,0x1ebf,0x1ec3,0x1ec6,0x1eca,0x1ecd,0x1ed1,0x1ed4,0x1ed8,0x1edb,0x1edf,
0x1ee2,0x1ee6,0x1ee9,0x1eed,0x1ef0,0x1ef4,0x1ef7,0x1efb,0x1efe,0x1f02,0x1f05,0x1f09,0x1f0c,0x1f10,0x1f13,0x1f17,
0x1f1a,0x1f1e,0x1f21,0x1f25,0x1f29,0x1f2c,0x1f30,0x1f33,0x1f37,0x1f3a,0x1f3e,0x1f41,0x1f45,0x1f48,0x1f4c,0x1f4f,
0x1f53,0x1f56,0x1f5a,0x1f5e,0x1f61,0x1f65,0x1f68,0x1f6c,0x1f6f,0x1f73,0x1f76,0x1f7a,0x1f7e,0x1f81,0x1f85,0x1f88,
0x1f8c,0x1f8f,0x1f93,0x1f96,0x1f9a,0x1f9e,0x1fa1,0x1fa5,0x1fa8,0x1fac,0x1faf,0x1fb3,0x1fb7,0x1fba,0x1fbe,0x1fc1,
0x1fc5,0x1fc9,0x1fcc,0x1fd0,0x1fd3,0x1fd7,0x1fda,0x1fde,0x1fe2,0x1fe5,0x1fe9,0x1fec,0x1ff0,0x1ff4,0x1ff7,0x1ffb,
0x1ffe,0x2002,0x2006,0x2009,0x200d,0x2010,0x2014,0x2018,0x201b,0x201f,0x2022,0x2026,0x202a,0x202d,0x2031,0x2035,
0x2038,0x203c,0x203f,0x2043,0x2047,0x204a,0x204e,0x2052,0x2055,0x2059,0x205c,0x2060,0x2064,0x2067,0x206b,0x206f,
0x2072,0x2076,0x207a,0x207d,0x2081,0x2084,0x2088,0x208c,0x208f,0x2093,0x2097,0x209a,0x209e,0x20a2,0x20a5,0x20a9,
0x20ad,0x20b0,0x20b4,0x20b8,0x20bb,0x20bf,0x20c3,0x20c6,0x20ca,0x20ce,0x20d1,0x20d5,0x20d9,0x20dc,0x20e0,0x20e4,
0x20e7,0x20eb,0x20ef,0x20f3,0x20f6,0x20fa,0x20fe,0x2101,0x2105,0x2109,0x210c,0x2110,0x2114,0x2117,0x211b,0x211f,
0x2123,0x2126,0x212a,0x212e,0x2131,0x2135,0x2139,0x213d,0x2140,0x2144,0x2148,0x214b,0x214f,0x2153,0x2157,0x215a,
0x215e,0x2162,0x2166,0x2169,0x216d,0x2171,0x2174,0x2178,0x217c,0x2180,0x2183,0x2187,0x218b,0x218f,0x2192,0x2196,
0x219a,0x219e,0x21a1,0x21a5,0x21a9,0x21ad,0x21b0,0x21b4,0x21b8,0x21bc,0x21bf,0x21c3,0x21c7,0x21cb,0x21cf,0x21d2,
0x21d6,0x21da,0x21de,0x21e1,0x21e5,0x21e9,0x21ed,0x21f1,0x21f4,0x21f8,0x21fc,0x2200,0x2204,0x2207,0x220b,0x220f,
0x2213,0x2217,0x221a,0x221e,0x2222,0x2226,0x222a,0x222d,0x2231,0x2235,0x2239,0x223d,0x2240,0x2244,0x2248,0x224c,
0x2250,0x2254,0x2257,0x225b,0x225f,0x2263,0x2267,0x226b,0x226e,0x2272,0x2276,0x227a,0x227e,0x2282,0x2285,0x2289,
0x228d,0x2291,0x2295,0x2299,0x229d,0x22a0,0x22a4,0x22a8,0x22ac,0x22b0,0x22b4,0x22b8,0x22bb,0x22bf,0x22c3,0x22c7,
0x22cb,0x22cf,0x22d3,0x22d7,0x22da,0x22de,0x22e2,0x22e6,0x22ea,0x22ee,0x22f2,0x22f6,0x22fa,0x22fd,0x2301,0x2305,
0x2309,0x230d,0x2311,0x2315,0x2319,0x231d,0x2321,0x2325,0x2328,0x232c,0x2330,0x2334,0x2338,0x233c,0x2340,0x2344,
0x2348,0x234c,0x2350,0x2354,0x2358,0x235b,0x235f,0x2363,0x2367,0x236b,0x236f,0x2373,0x2377,0x237b,0x237f,0x2383,
0x2387,0x238b,0x238f,0x2393,0x2397,0x239b,0x239f,0x23a3,0x23a7,0x23ab,0x23af,0x23b3,0x23b7,0x23bb,0x23bf,0x23c2,
0x23c6,0x23ca,0x23ce,0x23d2,0x23d6,0x23da,0x23de,0x23e2,0x23e6,0x23ea,0x23ee,0x23f2,0x23f6,0x23fa,0x23fe,0x2403,
0x2407,0x240b,0x240f,0x2413,0x2417,0x241b,0x241f,0x2423,0x2427,0x242b,0x242f,0x2433,0x2437,0x243b,0x243f,0x2443,
0x2447,0x244b,0x244f,0x2453,0x2457,0x245b,0x245f,0x2463,0x2467,0x246c,0x2470,0x2474,0x2478,0x247c,0x2480,0x2484,
0x2488,0x248c,0x2490,0x2494,0x2498,0x249c,0x24a1,0x24a5,0x24a9,0x24ad,0x24b1,0x24b5,0x24b9,0x24bd,0x24c1,0x24c5,
0x24ca,0x24ce,0x24d2,0x24d6,0x24da,0x24de,0x24e2,0x24e6,0x24eb,0x24ef,0x24f3,0x24f7,0x24fb,0x24ff,0x2503,0x2508,
0x250c,0x2510,0x2514,0x2518,0x251c,0x2520,0x2525,0x2529,0x252d,0x2531,0x2535,0x2539,0x253e,0x2542,0x2546,0x254a,
0x254e,0x2552,0x2557,0x255b,0x255f,0x2563,0x2567,0x256c,0x2570,0x2574,0x2578,0x257c,0x2581,0x2585,0x2589,0x258d,
0x2591,0x2596,0x259a,0x259e,0x25a2,0x25a7,0x25ab,0x25af,0x25b3,0x25b7,0x25bc,0x25c0,0x25c4,0x25c8,0x25cd,0x25d1,
0x25d5,0x25d9,0x25de,0x25e2,0x25e6,0x25ea,0x25ef,0x25f3,0x25f7,0x25fb,0x2600,0x2604,0x2608,0x260d,0x2611,0x2615,
0x2619,0x261e,0x2622,0x2626,0x262b,0x262f,0x2633,0x2638,0x263c,0x2640,0x2644,0x2649,0x264d,0x2651,0x2656,0x265a,
0x265e,0x2663,0x2667,0x266b,0x2670,0x2674,0x2678,0x267d,0x2681,0x2685,0x268a,0x268e,0x2693,0x2697,0x269b,0x26a0,
0x26a4,0x26a8,0x26ad,0x26b1,0x26b5,0x26ba,0x26be,0x26c3,0x26c7,0x26cb,0x26d0,0x26d4,0x26d9,0x26dd,0x26e1,0x26e6,
0x26ea,0x26ef,0x26f3,0x26f7,0x26fc,0x2700,0x2705,0x2709,0x270e,0x2712,0x2716,0x271b,0x271f,0x2724,0x2728,0x272d,
0x2731,0x2736,0x273a,0x273e,0x2743,0x2747,0x274c,0x2750,0x2755,0x2759,0x275e,0x2762,0x2767,0x276b,0x2770,0x2774,
0x2779,0x277d,0x2782,0x2786,0x278b,0x278f,0x2794,0x2798,0x279d,0x27a1,0x27a6,0x27aa,0x27af,0x27b3,0x27b8,0x27bc,
0x27c1,0x27c6,0x27ca,0x27cf,0x27d3,0x27d8,0x27dc,0x27e1,0x27e5,0x27ea,0x27ef,0x27f3,0x27f8,0x27fc,0x2801,0x2805,
0x280a,0x280f,0x2813,0x2818,0x281c,0x2821,0x2826,0x282a,0x282f,0x2833,0x2838,0x283d,0x2841,0x2846,0x284b,0x284f,
0x2854,0x2859,0x285d,0x2862,0x2866,0x286b,0x2870,0x2874,0x2879,0x287e,0x2882,0x2887,0x288c,0x2890,0x2895,0x289a,
0x289f,0x28a3,0x28a8,0x28ad,0x28b1,0x28b6,0x28bb,0x28bf,0x28c4,0x28c9,0x28ce,0x28d2,0x28d7,0x28dc,0x28e1,0x28e5,
0x28ea,0x28ef,0x28f4,0x28f8,0x28fd,0x2902,0x2907,0x290b,0x2910,0x2915,0x291a,0x291e,0x2923,0x2928,0x292d,0x2932,
0x2936,0x293b,0x2940,0x2945,0x294a,0x294e,0x2953,0x2958,0x295d,0x2962,0x2967,0x296b,0x2970,0x2975,0x297a,0x297f,
0x2984,0x2988,0x298d,0x2992,0x2997,0x299c,0x29a1,0x29a6,0x29ab,0x29af,0x29b4,0x29b9,0x29be,0x29c3,0x29c8,0x29cd,
0x29d2,0x29d7,0x29dc,0x29e1,0x29e6,0x29ea,0x29ef,0x29f4,0x29f9,0x29fe,0x2a03,0x2a08,0x2a0d,0x2a12,0x2a17,0x2a1c,
0x2a21,0x2a26,0x2a2b,0x2a30,0x2a35,0x2a3a,0x2a3f,0x2a44,0x2a49,0x2a4e,0x2a53,0x2a58,0x2a5d,0x2a62,0x2a67,0x2a6c,
0x2a71,0x2a76,0x2a7b,0x2a80,0x2a85,0x2a8a,0x2a90,0x2a95,0x2a9a,0x2a9f,0x2aa4,0x2aa9,0x2aae,0x2ab3,0x2ab8,0x2abd,
0x2ac2,0x2ac8,0x2acd,0x2ad2,0x2ad7,0x2adc,0x2ae1,0x2ae6,0x2aec,0x2af1,0x2af6,0x2afb,0x2b00,0x2b05,0x2b0a,0x2b10,
0x2b15,0x2b1a,0x2b1f,0x2b24,0x2b2a,0x2b2f,0x2b34,0x2b39,0x2b3e,0x2b44,0x2b49,0x2b4e,0x2b53,0x2b59,0x2b5e,0x2b63,
0x2b68,0x2b6e,0x2b73,0x2b78,0x2b7d,0x2b83,0x2b88,0x2b8d,0x2b93,0x2b98,0x2b9d,0x2ba3,0x2ba8,0x2bad,0x2bb3,0x2bb8,
0x2bbd,0x2bc3,0x2bc8,0x2bcd,0x2bd3,0x2bd8,0x2bdd,0x2be3,0x2be8,0x2bed,0x2bf3,0x2bf8,0x2bfe,0x2c03,0x2c08,0x2c0e,
0x2c13,0x2c19,0x2c1e,0x2c24,0x2c29,0x2c2e,0x2c34,0x2c39,0x2c3f,0x2c44,0x2c4a,0x2c4f,0x2c55,0x2c5a,0x2c60,0x2c65,
0x2c6b,0x2c70,0x2c76,0x2c7b,0x2c81,0x2c86,0x2c8c,0x2c91,0x2c97,0x2c9c,0x2ca2,0x2ca8,0x2cad,0x2cb3,0x2cb8,0x2cbe,
0x2cc4,0x2cc9,0x2ccf,0x2cd4,0x2cda,0x2ce0,0x2ce5,0x2ceb,0x2cf1,0x2cf6,0x2cfc,0x2d02,0x2d07,0x2d0d,0x2d13,0x2d18,
0x2d1e,0x2d24,0x2d29,0x2d2f,0x2d35,0x2d3a,0x2d40,0x2d46,0x2d4c,0x2d51,0x2d57,0x2d5d,0x2d63,0x2d68,0x2d6e,0x2d74,
0x2d7a,0x2d80,0x2d85,0x2d8b,0x2d91,0x2d97,0x2d9d,0x2da3,0x2da8,0x2dae,0x2db4,0x2dba,0x2dc0,0x2dc6,0x2dcc,0x2dd2,
0x2dd8,0x2ddd,0x2de3,0x2de9,0x2def,0x2df5,0x2dfb,0x2e01,0x2e07,0x2e0d,0x2e13,0x2e19,0x2e1f,0x2e25,0x2e2b,0x2e31,
0x2e37,0x2e3d,0x2e43,0x2e49,0x2e4f,0x2e55,0x2e5b,0x2e61,0x2e67,0x2e6d,0x2e74,0x2e7a,0x2e80,0x2e86,0x2e8c,0x2e92,
0x2e98,0x2e9e,0x2ea5,0x2eab,0x2eb1,0x2eb7,0x2ebd,0x2ec4,0x2eca,0x2ed0,0x2ed6,0x2edc,0x2ee3,0x2ee9,0x2eef,0x2ef5,
0x2efc,0x2f02,0x2f08,0x2f0f,0x2f15,0x2f1b,0x2f22,0x2f28,0x2f2e,0x2f35,0x2f3b,0x2f41,0x2f48,0x2f4e,0x2f54,0x2f5b,
0x2f61,0x2f68,0x2f6e,0x2f75,0x2f7b,0x2f82,0x2f88,0x2f8e,0x2f95,0x2f9b,0x2fa2,0x2fa8,0x2faf,0x2fb6,0x2fbc,0x2fc3,
0x2fc9,0x2fd0,0x2fd6,0x2fdd,0x2fe4,0x2fea,0x2ff1,0x2ff7,0x2ffe,0x3005,0x300b,0x3012,0x3019,0x301f,0x3026,0x302d,
0x3034,0x303a,0x3041,0x3048,0x304f,0x3055,0x305c,0x3063,0x306a,0x3071,0x3078,0x307e,0x3085,0x308c,0x3093,0x309a,
0x30a1,0x30a8,0x30af,0x30b6,0x30bd,0x30c4,0x30cb,0x30d1,0x30d9,0x30e0,0x30e7,0x30ee,0x30f5,0x30fc,0x3103,0x310a,
0x3111,0x3118,0x311f,0x3126,0x312d,0x3135,0x313c,0x3143,0x314a,0x3151,0x3159,0x3160,0x3167,0x316e,0x3176,0x317d,
0x3184,0x318c,0x3193,0x319a,0x31a2,0x31a9,0x31b0,0x31b8,0x31bf,0x31c7,0x31ce,0x31d6,0x31dd,0x31e5,0x31ec,0x31f4,
0x31fb,0x3203,0x320a,0x3212,0x321a,0x3221,0x3229,0x3230,0x3238,0x3240,0x3248,0x324f,0x3257,0x325f,0x3266,0x326e,
0x3276,0x327e,0x3286,0x328e,0x3295,0x329d,0x32a5,0x32ad,0x32b5,0x32bd,0x32c5,0x32cd,0x32d5,0x32dd,0x32e5,0x32ed,
0x32f5,0x32fd,0x3305,0x330e,0x3316,0x331e,0x3326,0x332e,0x3337,0x333f,0x3347,0x334f,0x3358,0x3360,0x3368,0x3371,
0x3379,0x3382,0x338a,0x3393,0x339b,0x33a4,0x33ac,0x33b5,0x33bd,0x33c6,0x33cf,0x33d7,0x33e0,0x33e9,0x33f1,0x33fa,
0x3403,0x340c,0x3414,0x341d,0x3426,0x342f,0x3438,0x3441,0x344a,0x3453,0x345c,0x3465,0x346e,0x3477,0x3480,0x3489,
0x3493,0x349c,0x34a5,0x34ae,0x34b8,0x34c1,0x34ca,0x34d4,0x34dd,0x34e7,0x34f0,0x34fa,0x3503,0x350d,0x3516,0x3520,
0x352a,0x3533,0x353d,0x3547,0x3551,0x355a,0x3564,0x356e,0x3578,0x3582,0x358c,0x3596,0x35a0,0x35aa,0x35b5,0x35bf,
0x35c9,0x35d3,0x35de,0x35e8,0x35f2,0x35fd,0x3607,0x3612,0x361d,0x3627,0x3632,0x363c,0x3647,0x3652,0x365d,0x3668,
0x3673,0x367e,0x3689,0x3694,0x369f,0x36aa,0x36b5,0x36c1,0x36cc,0x36d7,0x36e3,0x36ee,0x36fa,0x3706,0x3711,0x371d,
0x3729,0x3735,0x3741,0x374d,0x3759,0x3765,0x3771,0x377d,0x378a,0x3796,0x37a2,0x37af,0x37bb,0x37c8,0x37d5,0x37e2,
0x37ef,0x37fc,0x3809,0x3816,0x3823,0x3830,0x383e,0x384b,0x3859,0x3867,0x3874,0x3882,0x3890,0x389e,0x38ad,0x38bb,
0x38c9,0x38d8,0x38e6,0x38f5,0x3904,0x3913,0x3922,0x3931,0x3941,0x3950,0x3960,0x3970,0x3980,0x3990,0x39a0,0x39b1,
0x39c1,0x39d2,0x39e3,0x39f4,0x3a05,0x3a17,0x3a29,0x3a3a,0x3a4d,0x3a5f,0x3a72,0x3a84,0x3a98,0x3aab,0x3abf,0x3ad3,
0x3ae7,0x3afb,0x3b10,0x3b26,0x3b3b,0x3b51,0x3b68,0x3b7f,0x3b96,0x3bae,0x3bc6,0x3bdf,0x3bf8,0x3c12,0x3c2d,0x3c49,
0x3c65,0x3c83,0x3ca1,0x3cc0,0x3ce1,0x3d03,0x3d27,0x3d4c,0x3d73,0x3d9e,0x3dcb,0x3dfc,0x3e33,0x3e70,0x3eba,0x3f19,
};


SW LFPAcos(int cos)
{
	return 0x4000-LFPAsin(cos);
}


SW LFPAsin(int sin)
{
	if (sin > 0)
	{
		if (sin >= 0x4000)	return 0x4000;
		return asin_tab[(sin+2)/4];
	}
	else
	{
		if (sin <=-0x4000)	return -0x4000;
		return -asin_tab[-(sin-2)/4];
	}
}


static	UB                  aub__sR250Buf [250];
static	UI                  ui___sR250Idx;





#define	TAP_MAX             250
#define	TAP_MIN             103

static	UB                  aub__sRndBuf [TAP_MAX];
static	UI                  ui___sRndIdx;

// **************************************************************************
// * ReadRandomByte ()                                                      *
// **************************************************************************
// * Read an 8-bit pseudo-random number                                     *
// **************************************************************************
// * Inputs  int  Seed value                                                *
// *                                                                        *
// * Output  -                                                              *
// *                                                                        *
// * N.B.    Algorithm taken from Dr. Dobb's Journal #176 (May 1991) -      *
// *         "A fast pseudo-random number generator - by W.L.Maier"         *
// *                                                                        *
// *         Generates random numbers in the range 0-255.                   *
// **************************************************************************

UI ReadRnd250(void)

	{

	// Local Variables.

	UI                  ui___i;
	UB                  ub___r;

	//

	ui___i = ui___sRndIdx + TAP_MIN;

	if (ui___sRndIdx >= (TAP_MAX-TAP_MIN))
		{
		ui___i = ui___sRndIdx - (TAP_MAX-TAP_MIN);
		}

	ub___r = aub__sRndBuf [ui___sRndIdx] ^ aub__sRndBuf[ui___i];

	aub__sRndBuf[ui___sRndIdx] = ub___r;

	if (++ui___sRndIdx >= TAP_MAX) ui___sRndIdx = 0;

	// All done.

	//printf("%d\n",ub___r);

	return (ub___r);
	}


global	void                InitRnd250       (void)

	{

	// Local Variables.

	UB *                pub__p;

	UI                  ui___i;
	UI                  ui___j;
	UB                  ub___msk;
	UB                  ub___msb;

	UI					ui___l;

	//

	ui___sRndIdx = 0;

	// Fill buffer with random values.
	//
	// The random values are generated by a statistically-poor-but-fast
	// 16-bit liner congruential generator.

	pub__p = &aub__sRndBuf[0];

	ui___j = 12345;

	for (ui___i = TAP_MAX; ui___i != 0; ui___i -= 1)
		{
		ui___j = (ui___j * 1277) & 65535;

		*pub__p++ = (ui___j >> 8);
		}

	// Take precausions to avoid degeneration into non-random
	// behaviour.
	// - Turn off bits left of diagonal.
	// - Turn on diagonal bit.

	ub___msb = 0x80u;
	ub___msk = 0xFFu;

	pub__p = &aub__sRndBuf[14];

	do	{
		pub__p[0] &= ub___msk;
		pub__p[0] |= ub___msb;
		pub__p    += 11;
		ub___msk >>= 1;
		ub___msb >>= 1;
		} while (ub___msb != 0);

	// Shake things up a bit.
#if defined(N64) && !defined(DEBUG)
	ui___l=osViGetCurrentLine();
#else
	ui___l=500;
#endif
	for (ui___i = 0; ui___i < ui___l; ui___i++)
		{
		ReadRnd250();
		}

	// All done.

	return;
	}








void AnglesToQuatPHR(Quat *q, short int *a)
{
int cxcy, sxcy, cxsy, sxsy;
int cx, cy, sx, sy, cz, sz;

	cx = LFPCos(a[0]/2);
	sx = LFPSin(a[0]/2);

	cy = LFPCos(a[1]/2);
	sy = LFPSin(a[1]/2);

	cz = LFPCos(a[2]/2);
	sz = LFPSin(a[2]/2);

	cxcy= cx*cy/0x4000;
	cxsy= cx*sy/0x4000;
	sxcy= sx*cy/0x4000;
	sxsy= sx*sy/0x4000;

	q->w = ( cxcy*cz - sxsy*sz)/0x4000;
	q->x = ( cxsy*sz + sxcy*cz)/0x4000;
	q->y = (-sxcy*sz + cxsy*cz)/0x4000;
	q->z = ( cxcy*sz + sxsy*cz)/0x4000;
}




/*
void AnglesToQuatFPHR(QuatF *q, short int *a)
{
float cxcy, cysx, cxsy, sysx;
float cx, cy, sx, sy, cz, sz;
float an;

	an = a[0]*3.14159/65536;
	cx = cos(an);
	sx = sin(an);

	an = a[1]*3.14159/65536;
	cy = cos(an);
	sy = sin(an);

	an = a[2]*3.14159/65536;
	cz = cos(an);
	sz = sin(an);

	cxcy= cx*cy;
	cxsy= cx*sy;
	cysx= cy*sx;
	sysx= sy*sx;

	q->w = ( cxcy*cz - sysx*sz);
	q->x = ( cxsy*sz + cysx*cz);
	q->y = (-cysx*sz + cxsy*cz);
	q->z = ( cxcy*sz + sysx*cz);
}
*/


void AnglesToQuatPRH(Quat *q, short int *a)
{
int czcx, czsx, szcx, szsx;
int cx, cy, sx, sy, cz, sz;

//	if (a[3]==-0x8000)
	if (1)
	{
		cx = LFPCos(a[0]/2);
		sx = LFPSin(a[0]/2);

		cz = LFPCos(a[1]/2);
		sz = LFPSin(a[1]/2);

		cy = LFPCos(a[2]/2);
		sy = LFPSin(a[2]/2);

		czcx = cz*cx/0x4000;
		czsx = cz*sx/0x4000;
		szcx = sz*cx/0x4000;
		szsx = sz*sx/0x4000;

		q->w = ( czcx*cy + szsx*sy)/0x4000;
		q->x = (-szcx*sy + czsx*cy)/0x4000;
		q->y = (-czcx*sy + szsx*cy)/0x4000;
		q->z = ( czsx*sy + szcx*cy)/0x4000;
	}
	else
	{
		q->w=a[0];
		q->x=a[1];
		q->y=a[2];
		q->z=a[3];
	}
}




/*
void AnglesToQuatFPRH(QuatF *q, short int *a)
{
float czcx, czsx, szcx, szsx;
float cx, cy, sx, sy, cz, sz;
float an;

	an = a[0]*3.14159/65536;
	cx = cos(an);
	sx = sin(an);

	an = a[2]*3.14159/65536;
	cy = cos(an);
	sy = sin(an);

	an = a[1]*3.14159/65536;
	cz = cos(an);
	sz = sin(an);

	czcx = cz*cx;
	czsx = cz*sx;
	szcx = sz*cx;
	szsx = sz*sx;

	q->w = ( czcx*cy + szsx*sy);
	q->x = (-szcx*sy + czsx*cy);
	q->y = ( czcx*sy - szsx*cy);
	q->z = ( czsx*sy + szcx*cy);
}
*/








void QuatMul(Quat *res, Quat *q1, Quat *q2)
{
int a, b, c, d, e, f, g, h;

	a = (q1->w + q1->x) * (q2->w + q2->x);
	b = (q1->z - q1->y) * (q2->y - q2->z);
	c = (q1->x - q1->w) * (q2->y + q2->z);
	d = (q1->y + q1->z) * (q2->x - q2->w);
	e = (q1->x + q1->z) * (q2->x + q2->y);
	f = (q1->x - q1->z) * (q2->x - q2->y);
	g = (q1->w + q1->y) * (q2->w - q2->z);
	h = (q1->w - q1->y) * (q2->w + q2->z);

	res->w = ( b + ((-e-f+g+h)/2))/0x4000;
	res->x = ( a - (( e+f+g+h)/2))/0x4000;
	res->y = (-c + (( e-f+g-h)/2))/0x4000;
	res->z = (-d + (( e-f-g+h)/2))/0x4000;

	/*
	unoptimised 
	res->w = (q1->w * q2->w - q1->x * q2->x - q1->y * q2->y - q1->z * q2->z)/0x4000;
	res->x = (q1->w * q2->x + q1->x * q2->w + q1->y * q2->z - q1->z * q2->y)/0x4000;
	res->y = (q1->w * q2->y + q1->y * q2->w + q1->z * q2->x - q1->x * q2->z)/0x4000;
	res->z = (q1->w * q2->z + q1->z * q2->w + q1->x * q2->y - q1->y * q2->x)/0x4000;
	*/
}


void InterpolateQuat(Quat *q1, Quat *q2, int t, Quat *res)
{
int scale;
int w, x, y, z;
int d, s1, s2;

	/*
	 * if dot product < 0, negate q2
	 */

	d = (q1->w*q2->w) + (q1->x*q2->x) + (q1->y*q2->y) + (q1->z*q2->z);
	if (d>0)	s2 = t;
	else		s2 = -t;

	s1 = 256-t;

	w = ((q1->w * s1) + (q2->w * s2)) >> 8;
	x = ((q1->x * s1) + (q2->x * s2)) >> 8;
	y = ((q1->y * s1) + (q2->y * s2)) >> 8;
	z = ((q1->z * s1) + (q2->z * s2)) >> 8;

	//normalize
	scale = LFPSqrt((w*w)+(x*x)+(y*y)+(z*z));
	scale = (0x4000*0x4000)/scale;

	w = (w*scale)>>14;
	x = (x*scale)>>14;
	y = (y*scale)>>14;
	z = (z*scale)>>14;

//	printf("%x, %x %x, %x, %x\n",w,x,y,z,scale);

	res->x = x;
	res->y = y;
	res->z = z;
	res->w = w;
}



void QuatToMatrix(matrix *m, Quat *q)
{
int wx, wy, wz, xx, yy, yz, xy, xz, zz;

	xx = (q->x * q->x);	xy = (q->x * q->y);	xz = (q->x * q->z);
	yy = (q->y * q->y);	yz = (q->y * q->z);	zz = (q->z * q->z);
	wx = (q->w * q->x);	wy = (q->w * q->y);	wz = (q->w * q->z);

	m->xX = (0x8000000 - yy - zz) / 0x2000;
	m->xY = (wz + xy) / 0x2000;
	m->xZ = (xz - wy) / 0x2000;

	m->yX = (xy - wz) / 0x2000;
	m->yY = (0x8000000 - xx - zz) / 0x2000;
	m->yZ = (yz + wx) / 0x2000;

	m->zX = (xz + wy) / 0x2000;
	m->zY = (yz - wx) / 0x2000;
	m->zZ = (0x8000000 - xx - yy) / 0x2000;

	/*
	{
		//unoptimized

		int w, x, y, z;
		w=q->w;
		x=q->x;
		y=q->y;
		z=q->z;

		m->xX = 0x4000 - (y*y + z*z)/0x2000;
		m->xY = (w*z + x*y)/0x2000;
		m->xZ = (x*z - w*y)/0x2000;

		m->yX = (x*y - w*z)/0x2000;
		m->yY = 0x4000 - (x*x + z*z)/0x2000;
		m->yZ = (y*z + w*x)/0x2000;

		m->zX = (x*z + w*y)/0x2000;
		m->zY = (y*z - w*x)/0x2000;
		m->zZ = 0x4000 - (x*x + y*y)/0x2000;
	}
	*/
}






void VecMulMat(vector *vs, matrix *m, vector *vd)
{
int x, y, z;

	x = (vs->x*m->xX + vs->y*m->yX + vs->z*m->zX)/0x4000;
	y = (vs->x*m->xY + vs->y*m->yY + vs->z*m->zY)/0x4000;
	z = (vs->x*m->xZ + vs->y*m->yZ + vs->z*m->zZ)/0x4000;

	vd->x = x;
	vd->y = y;
	vd->z = z;
}


void VecMulIMat(vector *vs, matrix *m, vector *vd)
{
int x, y, z;

	x = (vs->x*m->xX + vs->y*m->xY + vs->z*m->xZ)/0x4000;
	y = (vs->x*m->yX + vs->y*m->yY + vs->z*m->yZ)/0x4000;
	z = (vs->x*m->zX + vs->y*m->zY + vs->z*m->zZ)/0x4000;

	vd->x = x;
	vd->y = y;
	vd->z = z;
}



void Vec16MulMat(vector16 *vs, matrix *m, vector16 *vd)
{
int32 x, y, z;

	x = (vs->x*m->xX + vs->y*m->yX + vs->z*m->zX)/0x4000;
	y = (vs->x*m->xY + vs->y*m->yY + vs->z*m->zY)/0x4000;
	z = (vs->x*m->xZ + vs->y*m->yZ + vs->z*m->zZ)/0x4000;

	vd->x = x;
	vd->y = y;
	vd->z = z;
}


void MakeMatPRH(matrix *m,int p,int r,int h)
{
	long int pc,ps,hc,hs,rc,rs;
	long int rsps,rspc;

	pc=LFPCos(p); ps=LFPSin(p);
	rc=LFPCos(r); rs=LFPSin(r);
	hc=LFPCos(h); hs=LFPSin(h);

	rsps=(rs*ps)/16384;
	rspc=(rs*pc)/16384;

	m->xX=(rc*hc)>>14;
	m->xY=rs;
	m->xZ=(rc*hs)>>14;

	m->yX=((-hc*rspc) + (-ps*hs)) >> 14;
	m->yY=(pc*rc)>>14;
	m->yZ=((-hs*rspc) + (ps*hc)) >> 14;

	m->zX=((hc*rsps) + (-pc*hs)) >> 14;
	m->zY=(-ps*rc) >> 14;
	m->zZ=((hs*rsps) + (pc*hc)) >> 14;
}





void MatMulMat(matrix *v,matrix *m,matrix *v2)
{
	v2->xX=((v->xX*m->xX)+(v->xY*m->yX)+(v->xZ*m->zX)) / 16384;
	v2->xY=((v->xX*m->xY)+(v->xY*m->yY)+(v->xZ*m->zY)) / 16384;
	v2->xZ=((v->xX*m->xZ)+(v->xY*m->yZ)+(v->xZ*m->zZ)) / 16384;

	v2->yX=((v->yX*m->xX)+(v->yY*m->yX)+(v->yZ*m->zX)) / 16384;
	v2->yY=((v->yX*m->xY)+(v->yY*m->yY)+(v->yZ*m->zY)) / 16384;
	v2->yZ=((v->yX*m->xZ)+(v->yY*m->yZ)+(v->yZ*m->zZ)) / 16384;

	v2->zX=((v->zX*m->xX)+(v->zY*m->yX)+(v->zZ*m->zX)) / 16384;
	v2->zY=((v->zX*m->xY)+(v->zY*m->yY)+(v->zZ*m->zY)) / 16384;
	v2->zZ=((v->zX*m->xZ)+(v->zY*m->yZ)+(v->zZ*m->zZ)) / 16384;

}




void SlowNormalise(vector *v)
{
float x, y, z;
float d;

	x = v->x;
	y = v->y;
	z = v->z;

	#ifdef N64
	d = sqrtf(x*x + y*y + z*z);
	#else
	d = sqrt(x*x + y*y + z*z);
	#endif

	d /= 16384.0;
	
	if (d==0)	return;

	v->x = x/d;
	v->y = y/d;
	v->z = z/d;
}


void VecCrossVec(vector *v1, vector *v2, vector *res)
{
	res->x = (v1->y * v2->z) - (v1->z * v2->y);
	res->y = (v1->z * v2->x) - (v1->x * v2->z);
	res->z = (v1->x * v2->y) - (v1->y * v2->x);
}
















void IntToHexStr(UI a,char *s)
{
	UI i,j;
	char c;

	{
		*(s++)=' ';
	}

//	*s++ = '0';
//	*s++ = 'x';

	for(j=1;j<=a/16;j*=16);

	for(;j>0;j/=16)
	{
		c = (a/j)+'0';
		if (c>'9')	c += 'A'-'9'-1;
		*(s++)=c;
		a-=(a/j)*j;
	}
	*(s++)=0;
}


void IntToDecStr(int a,char *s)
{
	unsigned int i,j;
	char c;

	if(a<0)
	{
		*(s++)='-';
		a=-a;
	}

	for(j=1;j<=a;j*=10);
	if(a!=0) j/=10;
	for(;j>0;j/=10)
	{
		c = (a/j)+'0';
		*(s++)=c;
		a-=(a/j)*j;
	}
}


void MatInvert(matrix *l)			// Actually transpose.
{
	int t;

	t=l->xY; l->xY=l->yX; l->yX=t;
	t=l->xZ; l->xZ=l->zX; l->zX=t;
	t=l->zY; l->zY=l->yZ; l->yZ=t;
}
