1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-04 10:19:24 +02:00
Oinktube/node_modules/three/examples/jsm/libs/mmdparser.module.js
2023-12-11 11:59:56 -03:00

11535 lines
174 KiB
JavaScript

/**
* @author Takahiro / https://github.com/takahirox
*
* Simple CharsetEncoder.
*/
function CharsetEncoder() {
}
/*
* Converts from Shift_JIS Uint8Array data to Unicode strings.
*/
CharsetEncoder.prototype.s2u = function ( uint8Array ) {
var t = this.s2uTable;
var str = '';
var p = 0;
while ( p < uint8Array.length ) {
var key = uint8Array[ p ++ ];
if ( ! ( ( key >= 0x00 && key <= 0x7e ) ||
( key >= 0xa1 && key <= 0xdf ) ) &&
p < uint8Array.length ) {
key = ( key << 8 ) | uint8Array[ p ++ ];
}
if ( t[ key ] === undefined ) {
throw 'unknown char code ' + key + '.';
}
str += String.fromCharCode( t[ key ] );
}
return str;
};
CharsetEncoder.prototype.s2uTable = {
0: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 8,
9: 9,
10: 10,
11: 11,
12: 12,
13: 13,
14: 14,
15: 15,
16: 16,
17: 17,
18: 18,
19: 19,
20: 20,
21: 21,
22: 22,
23: 23,
24: 24,
25: 25,
26: 26,
27: 27,
28: 28,
29: 29,
30: 30,
31: 31,
32: 32,
33: 33,
34: 34,
35: 35,
36: 36,
37: 37,
38: 38,
39: 39,
40: 40,
41: 41,
42: 42,
43: 43,
44: 44,
45: 45,
46: 46,
47: 47,
48: 48,
49: 49,
50: 50,
51: 51,
52: 52,
53: 53,
54: 54,
55: 55,
56: 56,
57: 57,
58: 58,
59: 59,
60: 60,
61: 61,
62: 62,
63: 63,
64: 64,
65: 65,
66: 66,
67: 67,
68: 68,
69: 69,
70: 70,
71: 71,
72: 72,
73: 73,
74: 74,
75: 75,
76: 76,
77: 77,
78: 78,
79: 79,
80: 80,
81: 81,
82: 82,
83: 83,
84: 84,
85: 85,
86: 86,
87: 87,
88: 88,
89: 89,
90: 90,
91: 91,
92: 92,
93: 93,
94: 94,
95: 95,
96: 96,
97: 97,
98: 98,
99: 99,
100: 100,
101: 101,
102: 102,
103: 103,
104: 104,
105: 105,
106: 106,
107: 107,
108: 108,
109: 109,
110: 110,
111: 111,
112: 112,
113: 113,
114: 114,
115: 115,
116: 116,
117: 117,
118: 118,
119: 119,
120: 120,
121: 121,
122: 122,
123: 123,
124: 124,
125: 125,
126: 126,
161: 65377,
162: 65378,
163: 65379,
164: 65380,
165: 65381,
166: 65382,
167: 65383,
168: 65384,
169: 65385,
170: 65386,
171: 65387,
172: 65388,
173: 65389,
174: 65390,
175: 65391,
176: 65392,
177: 65393,
178: 65394,
179: 65395,
180: 65396,
181: 65397,
182: 65398,
183: 65399,
184: 65400,
185: 65401,
186: 65402,
187: 65403,
188: 65404,
189: 65405,
190: 65406,
191: 65407,
192: 65408,
193: 65409,
194: 65410,
195: 65411,
196: 65412,
197: 65413,
198: 65414,
199: 65415,
200: 65416,
201: 65417,
202: 65418,
203: 65419,
204: 65420,
205: 65421,
206: 65422,
207: 65423,
208: 65424,
209: 65425,
210: 65426,
211: 65427,
212: 65428,
213: 65429,
214: 65430,
215: 65431,
216: 65432,
217: 65433,
218: 65434,
219: 65435,
220: 65436,
221: 65437,
222: 65438,
223: 65439,
33088: 12288,
33089: 12289,
33090: 12290,
33091: 65292,
33092: 65294,
33093: 12539,
33094: 65306,
33095: 65307,
33096: 65311,
33097: 65281,
33098: 12443,
33099: 12444,
33100: 180,
33101: 65344,
33102: 168,
33103: 65342,
33104: 65507,
33105: 65343,
33106: 12541,
33107: 12542,
33108: 12445,
33109: 12446,
33110: 12291,
33111: 20189,
33112: 12293,
33113: 12294,
33114: 12295,
33115: 12540,
33116: 8213,
33117: 8208,
33118: 65295,
33119: 65340,
33120: 65374,
33121: 8741,
33122: 65372,
33123: 8230,
33124: 8229,
33125: 8216,
33126: 8217,
33127: 8220,
33128: 8221,
33129: 65288,
33130: 65289,
33131: 12308,
33132: 12309,
33133: 65339,
33134: 65341,
33135: 65371,
33136: 65373,
33137: 12296,
33138: 12297,
33139: 12298,
33140: 12299,
33141: 12300,
33142: 12301,
33143: 12302,
33144: 12303,
33145: 12304,
33146: 12305,
33147: 65291,
33148: 65293,
33149: 177,
33150: 215,
33152: 247,
33153: 65309,
33154: 8800,
33155: 65308,
33156: 65310,
33157: 8806,
33158: 8807,
33159: 8734,
33160: 8756,
33161: 9794,
33162: 9792,
33163: 176,
33164: 8242,
33165: 8243,
33166: 8451,
33167: 65509,
33168: 65284,
33169: 65504,
33170: 65505,
33171: 65285,
33172: 65283,
33173: 65286,
33174: 65290,
33175: 65312,
33176: 167,
33177: 9734,
33178: 9733,
33179: 9675,
33180: 9679,
33181: 9678,
33182: 9671,
33183: 9670,
33184: 9633,
33185: 9632,
33186: 9651,
33187: 9650,
33188: 9661,
33189: 9660,
33190: 8251,
33191: 12306,
33192: 8594,
33193: 8592,
33194: 8593,
33195: 8595,
33196: 12307,
33208: 8712,
33209: 8715,
33210: 8838,
33211: 8839,
33212: 8834,
33213: 8835,
33214: 8746,
33215: 8745,
33224: 8743,
33225: 8744,
33226: 65506,
33227: 8658,
33228: 8660,
33229: 8704,
33230: 8707,
33242: 8736,
33243: 8869,
33244: 8978,
33245: 8706,
33246: 8711,
33247: 8801,
33248: 8786,
33249: 8810,
33250: 8811,
33251: 8730,
33252: 8765,
33253: 8733,
33254: 8757,
33255: 8747,
33256: 8748,
33264: 8491,
33265: 8240,
33266: 9839,
33267: 9837,
33268: 9834,
33269: 8224,
33270: 8225,
33271: 182,
33276: 9711,
33359: 65296,
33360: 65297,
33361: 65298,
33362: 65299,
33363: 65300,
33364: 65301,
33365: 65302,
33366: 65303,
33367: 65304,
33368: 65305,
33376: 65313,
33377: 65314,
33378: 65315,
33379: 65316,
33380: 65317,
33381: 65318,
33382: 65319,
33383: 65320,
33384: 65321,
33385: 65322,
33386: 65323,
33387: 65324,
33388: 65325,
33389: 65326,
33390: 65327,
33391: 65328,
33392: 65329,
33393: 65330,
33394: 65331,
33395: 65332,
33396: 65333,
33397: 65334,
33398: 65335,
33399: 65336,
33400: 65337,
33401: 65338,
33409: 65345,
33410: 65346,
33411: 65347,
33412: 65348,
33413: 65349,
33414: 65350,
33415: 65351,
33416: 65352,
33417: 65353,
33418: 65354,
33419: 65355,
33420: 65356,
33421: 65357,
33422: 65358,
33423: 65359,
33424: 65360,
33425: 65361,
33426: 65362,
33427: 65363,
33428: 65364,
33429: 65365,
33430: 65366,
33431: 65367,
33432: 65368,
33433: 65369,
33434: 65370,
33439: 12353,
33440: 12354,
33441: 12355,
33442: 12356,
33443: 12357,
33444: 12358,
33445: 12359,
33446: 12360,
33447: 12361,
33448: 12362,
33449: 12363,
33450: 12364,
33451: 12365,
33452: 12366,
33453: 12367,
33454: 12368,
33455: 12369,
33456: 12370,
33457: 12371,
33458: 12372,
33459: 12373,
33460: 12374,
33461: 12375,
33462: 12376,
33463: 12377,
33464: 12378,
33465: 12379,
33466: 12380,
33467: 12381,
33468: 12382,
33469: 12383,
33470: 12384,
33471: 12385,
33472: 12386,
33473: 12387,
33474: 12388,
33475: 12389,
33476: 12390,
33477: 12391,
33478: 12392,
33479: 12393,
33480: 12394,
33481: 12395,
33482: 12396,
33483: 12397,
33484: 12398,
33485: 12399,
33486: 12400,
33487: 12401,
33488: 12402,
33489: 12403,
33490: 12404,
33491: 12405,
33492: 12406,
33493: 12407,
33494: 12408,
33495: 12409,
33496: 12410,
33497: 12411,
33498: 12412,
33499: 12413,
33500: 12414,
33501: 12415,
33502: 12416,
33503: 12417,
33504: 12418,
33505: 12419,
33506: 12420,
33507: 12421,
33508: 12422,
33509: 12423,
33510: 12424,
33511: 12425,
33512: 12426,
33513: 12427,
33514: 12428,
33515: 12429,
33516: 12430,
33517: 12431,
33518: 12432,
33519: 12433,
33520: 12434,
33521: 12435,
33600: 12449,
33601: 12450,
33602: 12451,
33603: 12452,
33604: 12453,
33605: 12454,
33606: 12455,
33607: 12456,
33608: 12457,
33609: 12458,
33610: 12459,
33611: 12460,
33612: 12461,
33613: 12462,
33614: 12463,
33615: 12464,
33616: 12465,
33617: 12466,
33618: 12467,
33619: 12468,
33620: 12469,
33621: 12470,
33622: 12471,
33623: 12472,
33624: 12473,
33625: 12474,
33626: 12475,
33627: 12476,
33628: 12477,
33629: 12478,
33630: 12479,
33631: 12480,
33632: 12481,
33633: 12482,
33634: 12483,
33635: 12484,
33636: 12485,
33637: 12486,
33638: 12487,
33639: 12488,
33640: 12489,
33641: 12490,
33642: 12491,
33643: 12492,
33644: 12493,
33645: 12494,
33646: 12495,
33647: 12496,
33648: 12497,
33649: 12498,
33650: 12499,
33651: 12500,
33652: 12501,
33653: 12502,
33654: 12503,
33655: 12504,
33656: 12505,
33657: 12506,
33658: 12507,
33659: 12508,
33660: 12509,
33661: 12510,
33662: 12511,
33664: 12512,
33665: 12513,
33666: 12514,
33667: 12515,
33668: 12516,
33669: 12517,
33670: 12518,
33671: 12519,
33672: 12520,
33673: 12521,
33674: 12522,
33675: 12523,
33676: 12524,
33677: 12525,
33678: 12526,
33679: 12527,
33680: 12528,
33681: 12529,
33682: 12530,
33683: 12531,
33684: 12532,
33685: 12533,
33686: 12534,
33695: 913,
33696: 914,
33697: 915,
33698: 916,
33699: 917,
33700: 918,
33701: 919,
33702: 920,
33703: 921,
33704: 922,
33705: 923,
33706: 924,
33707: 925,
33708: 926,
33709: 927,
33710: 928,
33711: 929,
33712: 931,
33713: 932,
33714: 933,
33715: 934,
33716: 935,
33717: 936,
33718: 937,
33727: 945,
33728: 946,
33729: 947,
33730: 948,
33731: 949,
33732: 950,
33733: 951,
33734: 952,
33735: 953,
33736: 954,
33737: 955,
33738: 956,
33739: 957,
33740: 958,
33741: 959,
33742: 960,
33743: 961,
33744: 963,
33745: 964,
33746: 965,
33747: 966,
33748: 967,
33749: 968,
33750: 969,
33856: 1040,
33857: 1041,
33858: 1042,
33859: 1043,
33860: 1044,
33861: 1045,
33862: 1025,
33863: 1046,
33864: 1047,
33865: 1048,
33866: 1049,
33867: 1050,
33868: 1051,
33869: 1052,
33870: 1053,
33871: 1054,
33872: 1055,
33873: 1056,
33874: 1057,
33875: 1058,
33876: 1059,
33877: 1060,
33878: 1061,
33879: 1062,
33880: 1063,
33881: 1064,
33882: 1065,
33883: 1066,
33884: 1067,
33885: 1068,
33886: 1069,
33887: 1070,
33888: 1071,
33904: 1072,
33905: 1073,
33906: 1074,
33907: 1075,
33908: 1076,
33909: 1077,
33910: 1105,
33911: 1078,
33912: 1079,
33913: 1080,
33914: 1081,
33915: 1082,
33916: 1083,
33917: 1084,
33918: 1085,
33920: 1086,
33921: 1087,
33922: 1088,
33923: 1089,
33924: 1090,
33925: 1091,
33926: 1092,
33927: 1093,
33928: 1094,
33929: 1095,
33930: 1096,
33931: 1097,
33932: 1098,
33933: 1099,
33934: 1100,
33935: 1101,
33936: 1102,
33937: 1103,
33951: 9472,
33952: 9474,
33953: 9484,
33954: 9488,
33955: 9496,
33956: 9492,
33957: 9500,
33958: 9516,
33959: 9508,
33960: 9524,
33961: 9532,
33962: 9473,
33963: 9475,
33964: 9487,
33965: 9491,
33966: 9499,
33967: 9495,
33968: 9507,
33969: 9523,
33970: 9515,
33971: 9531,
33972: 9547,
33973: 9504,
33974: 9519,
33975: 9512,
33976: 9527,
33977: 9535,
33978: 9501,
33979: 9520,
33980: 9509,
33981: 9528,
33982: 9538,
34624: 9312,
34625: 9313,
34626: 9314,
34627: 9315,
34628: 9316,
34629: 9317,
34630: 9318,
34631: 9319,
34632: 9320,
34633: 9321,
34634: 9322,
34635: 9323,
34636: 9324,
34637: 9325,
34638: 9326,
34639: 9327,
34640: 9328,
34641: 9329,
34642: 9330,
34643: 9331,
34644: 8544,
34645: 8545,
34646: 8546,
34647: 8547,
34648: 8548,
34649: 8549,
34650: 8550,
34651: 8551,
34652: 8552,
34653: 8553,
34655: 13129,
34656: 13076,
34657: 13090,
34658: 13133,
34659: 13080,
34660: 13095,
34661: 13059,
34662: 13110,
34663: 13137,
34664: 13143,
34665: 13069,
34666: 13094,
34667: 13091,
34668: 13099,
34669: 13130,
34670: 13115,
34671: 13212,
34672: 13213,
34673: 13214,
34674: 13198,
34675: 13199,
34676: 13252,
34677: 13217,
34686: 13179,
34688: 12317,
34689: 12319,
34690: 8470,
34691: 13261,
34692: 8481,
34693: 12964,
34694: 12965,
34695: 12966,
34696: 12967,
34697: 12968,
34698: 12849,
34699: 12850,
34700: 12857,
34701: 13182,
34702: 13181,
34703: 13180,
34704: 8786,
34705: 8801,
34706: 8747,
34707: 8750,
34708: 8721,
34709: 8730,
34710: 8869,
34711: 8736,
34712: 8735,
34713: 8895,
34714: 8757,
34715: 8745,
34716: 8746,
34975: 20124,
34976: 21782,
34977: 23043,
34978: 38463,
34979: 21696,
34980: 24859,
34981: 25384,
34982: 23030,
34983: 36898,
34984: 33909,
34985: 33564,
34986: 31312,
34987: 24746,
34988: 25569,
34989: 28197,
34990: 26093,
34991: 33894,
34992: 33446,
34993: 39925,
34994: 26771,
34995: 22311,
34996: 26017,
34997: 25201,
34998: 23451,
34999: 22992,
35000: 34427,
35001: 39156,
35002: 32098,
35003: 32190,
35004: 39822,
35005: 25110,
35006: 31903,
35007: 34999,
35008: 23433,
35009: 24245,
35010: 25353,
35011: 26263,
35012: 26696,
35013: 38343,
35014: 38797,
35015: 26447,
35016: 20197,
35017: 20234,
35018: 20301,
35019: 20381,
35020: 20553,
35021: 22258,
35022: 22839,
35023: 22996,
35024: 23041,
35025: 23561,
35026: 24799,
35027: 24847,
35028: 24944,
35029: 26131,
35030: 26885,
35031: 28858,
35032: 30031,
35033: 30064,
35034: 31227,
35035: 32173,
35036: 32239,
35037: 32963,
35038: 33806,
35039: 34915,
35040: 35586,
35041: 36949,
35042: 36986,
35043: 21307,
35044: 20117,
35045: 20133,
35046: 22495,
35047: 32946,
35048: 37057,
35049: 30959,
35050: 19968,
35051: 22769,
35052: 28322,
35053: 36920,
35054: 31282,
35055: 33576,
35056: 33419,
35057: 39983,
35058: 20801,
35059: 21360,
35060: 21693,
35061: 21729,
35062: 22240,
35063: 23035,
35064: 24341,
35065: 39154,
35066: 28139,
35067: 32996,
35068: 34093,
35136: 38498,
35137: 38512,
35138: 38560,
35139: 38907,
35140: 21515,
35141: 21491,
35142: 23431,
35143: 28879,
35144: 32701,
35145: 36802,
35146: 38632,
35147: 21359,
35148: 40284,
35149: 31418,
35150: 19985,
35151: 30867,
35152: 33276,
35153: 28198,
35154: 22040,
35155: 21764,
35156: 27421,
35157: 34074,
35158: 39995,
35159: 23013,
35160: 21417,
35161: 28006,
35162: 29916,
35163: 38287,
35164: 22082,
35165: 20113,
35166: 36939,
35167: 38642,
35168: 33615,
35169: 39180,
35170: 21473,
35171: 21942,
35172: 23344,
35173: 24433,
35174: 26144,
35175: 26355,
35176: 26628,
35177: 27704,
35178: 27891,
35179: 27945,
35180: 29787,
35181: 30408,
35182: 31310,
35183: 38964,
35184: 33521,
35185: 34907,
35186: 35424,
35187: 37613,
35188: 28082,
35189: 30123,
35190: 30410,
35191: 39365,
35192: 24742,
35193: 35585,
35194: 36234,
35195: 38322,
35196: 27022,
35197: 21421,
35198: 20870,
35200: 22290,
35201: 22576,
35202: 22852,
35203: 23476,
35204: 24310,
35205: 24616,
35206: 25513,
35207: 25588,
35208: 27839,
35209: 28436,
35210: 28814,
35211: 28948,
35212: 29017,
35213: 29141,
35214: 29503,
35215: 32257,
35216: 33398,
35217: 33489,
35218: 34199,
35219: 36960,
35220: 37467,
35221: 40219,
35222: 22633,
35223: 26044,
35224: 27738,
35225: 29989,
35226: 20985,
35227: 22830,
35228: 22885,
35229: 24448,
35230: 24540,
35231: 25276,
35232: 26106,
35233: 27178,
35234: 27431,
35235: 27572,
35236: 29579,
35237: 32705,
35238: 35158,
35239: 40236,
35240: 40206,
35241: 40644,
35242: 23713,
35243: 27798,
35244: 33659,
35245: 20740,
35246: 23627,
35247: 25014,
35248: 33222,
35249: 26742,
35250: 29281,
35251: 20057,
35252: 20474,
35253: 21368,
35254: 24681,
35255: 28201,
35256: 31311,
35257: 38899,
35258: 19979,
35259: 21270,
35260: 20206,
35261: 20309,
35262: 20285,
35263: 20385,
35264: 20339,
35265: 21152,
35266: 21487,
35267: 22025,
35268: 22799,
35269: 23233,
35270: 23478,
35271: 23521,
35272: 31185,
35273: 26247,
35274: 26524,
35275: 26550,
35276: 27468,
35277: 27827,
35278: 28779,
35279: 29634,
35280: 31117,
35281: 31166,
35282: 31292,
35283: 31623,
35284: 33457,
35285: 33499,
35286: 33540,
35287: 33655,
35288: 33775,
35289: 33747,
35290: 34662,
35291: 35506,
35292: 22057,
35293: 36008,
35294: 36838,
35295: 36942,
35296: 38686,
35297: 34442,
35298: 20420,
35299: 23784,
35300: 25105,
35301: 29273,
35302: 30011,
35303: 33253,
35304: 33469,
35305: 34558,
35306: 36032,
35307: 38597,
35308: 39187,
35309: 39381,
35310: 20171,
35311: 20250,
35312: 35299,
35313: 22238,
35314: 22602,
35315: 22730,
35316: 24315,
35317: 24555,
35318: 24618,
35319: 24724,
35320: 24674,
35321: 25040,
35322: 25106,
35323: 25296,
35324: 25913,
35392: 39745,
35393: 26214,
35394: 26800,
35395: 28023,
35396: 28784,
35397: 30028,
35398: 30342,
35399: 32117,
35400: 33445,
35401: 34809,
35402: 38283,
35403: 38542,
35404: 35997,
35405: 20977,
35406: 21182,
35407: 22806,
35408: 21683,
35409: 23475,
35410: 23830,
35411: 24936,
35412: 27010,
35413: 28079,
35414: 30861,
35415: 33995,
35416: 34903,
35417: 35442,
35418: 37799,
35419: 39608,
35420: 28012,
35421: 39336,
35422: 34521,
35423: 22435,
35424: 26623,
35425: 34510,
35426: 37390,
35427: 21123,
35428: 22151,
35429: 21508,
35430: 24275,
35431: 25313,
35432: 25785,
35433: 26684,
35434: 26680,
35435: 27579,
35436: 29554,
35437: 30906,
35438: 31339,
35439: 35226,
35440: 35282,
35441: 36203,
35442: 36611,
35443: 37101,
35444: 38307,
35445: 38548,
35446: 38761,
35447: 23398,
35448: 23731,
35449: 27005,
35450: 38989,
35451: 38990,
35452: 25499,
35453: 31520,
35454: 27179,
35456: 27263,
35457: 26806,
35458: 39949,
35459: 28511,
35460: 21106,
35461: 21917,
35462: 24688,
35463: 25324,
35464: 27963,
35465: 28167,
35466: 28369,
35467: 33883,
35468: 35088,
35469: 36676,
35470: 19988,
35471: 39993,
35472: 21494,
35473: 26907,
35474: 27194,
35475: 38788,
35476: 26666,
35477: 20828,
35478: 31427,
35479: 33970,
35480: 37340,
35481: 37772,
35482: 22107,
35483: 40232,
35484: 26658,
35485: 33541,
35486: 33841,
35487: 31909,
35488: 21000,
35489: 33477,
35490: 29926,
35491: 20094,
35492: 20355,
35493: 20896,
35494: 23506,
35495: 21002,
35496: 21208,
35497: 21223,
35498: 24059,
35499: 21914,
35500: 22570,
35501: 23014,
35502: 23436,
35503: 23448,
35504: 23515,
35505: 24178,
35506: 24185,
35507: 24739,
35508: 24863,
35509: 24931,
35510: 25022,
35511: 25563,
35512: 25954,
35513: 26577,
35514: 26707,
35515: 26874,
35516: 27454,
35517: 27475,
35518: 27735,
35519: 28450,
35520: 28567,
35521: 28485,
35522: 29872,
35523: 29976,
35524: 30435,
35525: 30475,
35526: 31487,
35527: 31649,
35528: 31777,
35529: 32233,
35530: 32566,
35531: 32752,
35532: 32925,
35533: 33382,
35534: 33694,
35535: 35251,
35536: 35532,
35537: 36011,
35538: 36996,
35539: 37969,
35540: 38291,
35541: 38289,
35542: 38306,
35543: 38501,
35544: 38867,
35545: 39208,
35546: 33304,
35547: 20024,
35548: 21547,
35549: 23736,
35550: 24012,
35551: 29609,
35552: 30284,
35553: 30524,
35554: 23721,
35555: 32747,
35556: 36107,
35557: 38593,
35558: 38929,
35559: 38996,
35560: 39000,
35561: 20225,
35562: 20238,
35563: 21361,
35564: 21916,
35565: 22120,
35566: 22522,
35567: 22855,
35568: 23305,
35569: 23492,
35570: 23696,
35571: 24076,
35572: 24190,
35573: 24524,
35574: 25582,
35575: 26426,
35576: 26071,
35577: 26082,
35578: 26399,
35579: 26827,
35580: 26820,
35648: 27231,
35649: 24112,
35650: 27589,
35651: 27671,
35652: 27773,
35653: 30079,
35654: 31048,
35655: 23395,
35656: 31232,
35657: 32000,
35658: 24509,
35659: 35215,
35660: 35352,
35661: 36020,
35662: 36215,
35663: 36556,
35664: 36637,
35665: 39138,
35666: 39438,
35667: 39740,
35668: 20096,
35669: 20605,
35670: 20736,
35671: 22931,
35672: 23452,
35673: 25135,
35674: 25216,
35675: 25836,
35676: 27450,
35677: 29344,
35678: 30097,
35679: 31047,
35680: 32681,
35681: 34811,
35682: 35516,
35683: 35696,
35684: 25516,
35685: 33738,
35686: 38816,
35687: 21513,
35688: 21507,
35689: 21931,
35690: 26708,
35691: 27224,
35692: 35440,
35693: 30759,
35694: 26485,
35695: 40653,
35696: 21364,
35697: 23458,
35698: 33050,
35699: 34384,
35700: 36870,
35701: 19992,
35702: 20037,
35703: 20167,
35704: 20241,
35705: 21450,
35706: 21560,
35707: 23470,
35708: 24339,
35709: 24613,
35710: 25937,
35712: 26429,
35713: 27714,
35714: 27762,
35715: 27875,
35716: 28792,
35717: 29699,
35718: 31350,
35719: 31406,
35720: 31496,
35721: 32026,
35722: 31998,
35723: 32102,
35724: 26087,
35725: 29275,
35726: 21435,
35727: 23621,
35728: 24040,
35729: 25298,
35730: 25312,
35731: 25369,
35732: 28192,
35733: 34394,
35734: 35377,
35735: 36317,
35736: 37624,
35737: 28417,
35738: 31142,
35739: 39770,
35740: 20136,
35741: 20139,
35742: 20140,
35743: 20379,
35744: 20384,
35745: 20689,
35746: 20807,
35747: 31478,
35748: 20849,
35749: 20982,
35750: 21332,
35751: 21281,
35752: 21375,
35753: 21483,
35754: 21932,
35755: 22659,
35756: 23777,
35757: 24375,
35758: 24394,
35759: 24623,
35760: 24656,
35761: 24685,
35762: 25375,
35763: 25945,
35764: 27211,
35765: 27841,
35766: 29378,
35767: 29421,
35768: 30703,
35769: 33016,
35770: 33029,
35771: 33288,
35772: 34126,
35773: 37111,
35774: 37857,
35775: 38911,
35776: 39255,
35777: 39514,
35778: 20208,
35779: 20957,
35780: 23597,
35781: 26241,
35782: 26989,
35783: 23616,
35784: 26354,
35785: 26997,
35786: 29577,
35787: 26704,
35788: 31873,
35789: 20677,
35790: 21220,
35791: 22343,
35792: 24062,
35793: 37670,
35794: 26020,
35795: 27427,
35796: 27453,
35797: 29748,
35798: 31105,
35799: 31165,
35800: 31563,
35801: 32202,
35802: 33465,
35803: 33740,
35804: 34943,
35805: 35167,
35806: 35641,
35807: 36817,
35808: 37329,
35809: 21535,
35810: 37504,
35811: 20061,
35812: 20534,
35813: 21477,
35814: 21306,
35815: 29399,
35816: 29590,
35817: 30697,
35818: 33510,
35819: 36527,
35820: 39366,
35821: 39368,
35822: 39378,
35823: 20855,
35824: 24858,
35825: 34398,
35826: 21936,
35827: 31354,
35828: 20598,
35829: 23507,
35830: 36935,
35831: 38533,
35832: 20018,
35833: 27355,
35834: 37351,
35835: 23633,
35836: 23624,
35904: 25496,
35905: 31391,
35906: 27795,
35907: 38772,
35908: 36705,
35909: 31402,
35910: 29066,
35911: 38536,
35912: 31874,
35913: 26647,
35914: 32368,
35915: 26705,
35916: 37740,
35917: 21234,
35918: 21531,
35919: 34219,
35920: 35347,
35921: 32676,
35922: 36557,
35923: 37089,
35924: 21350,
35925: 34952,
35926: 31041,
35927: 20418,
35928: 20670,
35929: 21009,
35930: 20804,
35931: 21843,
35932: 22317,
35933: 29674,
35934: 22411,
35935: 22865,
35936: 24418,
35937: 24452,
35938: 24693,
35939: 24950,
35940: 24935,
35941: 25001,
35942: 25522,
35943: 25658,
35944: 25964,
35945: 26223,
35946: 26690,
35947: 28179,
35948: 30054,
35949: 31293,
35950: 31995,
35951: 32076,
35952: 32153,
35953: 32331,
35954: 32619,
35955: 33550,
35956: 33610,
35957: 34509,
35958: 35336,
35959: 35427,
35960: 35686,
35961: 36605,
35962: 38938,
35963: 40335,
35964: 33464,
35965: 36814,
35966: 39912,
35968: 21127,
35969: 25119,
35970: 25731,
35971: 28608,
35972: 38553,
35973: 26689,
35974: 20625,
35975: 27424,
35976: 27770,
35977: 28500,
35978: 31348,
35979: 32080,
35980: 34880,
35981: 35363,
35982: 26376,
35983: 20214,
35984: 20537,
35985: 20518,
35986: 20581,
35987: 20860,
35988: 21048,
35989: 21091,
35990: 21927,
35991: 22287,
35992: 22533,
35993: 23244,
35994: 24314,
35995: 25010,
35996: 25080,
35997: 25331,
35998: 25458,
35999: 26908,
36000: 27177,
36001: 29309,
36002: 29356,
36003: 29486,
36004: 30740,
36005: 30831,
36006: 32121,
36007: 30476,
36008: 32937,
36009: 35211,
36010: 35609,
36011: 36066,
36012: 36562,
36013: 36963,
36014: 37749,
36015: 38522,
36016: 38997,
36017: 39443,
36018: 40568,
36019: 20803,
36020: 21407,
36021: 21427,
36022: 24187,
36023: 24358,
36024: 28187,
36025: 28304,
36026: 29572,
36027: 29694,
36028: 32067,
36029: 33335,
36030: 35328,
36031: 35578,
36032: 38480,
36033: 20046,
36034: 20491,
36035: 21476,
36036: 21628,
36037: 22266,
36038: 22993,
36039: 23396,
36040: 24049,
36041: 24235,
36042: 24359,
36043: 25144,
36044: 25925,
36045: 26543,
36046: 28246,
36047: 29392,
36048: 31946,
36049: 34996,
36050: 32929,
36051: 32993,
36052: 33776,
36053: 34382,
36054: 35463,
36055: 36328,
36056: 37431,
36057: 38599,
36058: 39015,
36059: 40723,
36060: 20116,
36061: 20114,
36062: 20237,
36063: 21320,
36064: 21577,
36065: 21566,
36066: 23087,
36067: 24460,
36068: 24481,
36069: 24735,
36070: 26791,
36071: 27278,
36072: 29786,
36073: 30849,
36074: 35486,
36075: 35492,
36076: 35703,
36077: 37264,
36078: 20062,
36079: 39881,
36080: 20132,
36081: 20348,
36082: 20399,
36083: 20505,
36084: 20502,
36085: 20809,
36086: 20844,
36087: 21151,
36088: 21177,
36089: 21246,
36090: 21402,
36091: 21475,
36092: 21521,
36160: 21518,
36161: 21897,
36162: 22353,
36163: 22434,
36164: 22909,
36165: 23380,
36166: 23389,
36167: 23439,
36168: 24037,
36169: 24039,
36170: 24055,
36171: 24184,
36172: 24195,
36173: 24218,
36174: 24247,
36175: 24344,
36176: 24658,
36177: 24908,
36178: 25239,
36179: 25304,
36180: 25511,
36181: 25915,
36182: 26114,
36183: 26179,
36184: 26356,
36185: 26477,
36186: 26657,
36187: 26775,
36188: 27083,
36189: 27743,
36190: 27946,
36191: 28009,
36192: 28207,
36193: 28317,
36194: 30002,
36195: 30343,
36196: 30828,
36197: 31295,
36198: 31968,
36199: 32005,
36200: 32024,
36201: 32094,
36202: 32177,
36203: 32789,
36204: 32771,
36205: 32943,
36206: 32945,
36207: 33108,
36208: 33167,
36209: 33322,
36210: 33618,
36211: 34892,
36212: 34913,
36213: 35611,
36214: 36002,
36215: 36092,
36216: 37066,
36217: 37237,
36218: 37489,
36219: 30783,
36220: 37628,
36221: 38308,
36222: 38477,
36224: 38917,
36225: 39321,
36226: 39640,
36227: 40251,
36228: 21083,
36229: 21163,
36230: 21495,
36231: 21512,
36232: 22741,
36233: 25335,
36234: 28640,
36235: 35946,
36236: 36703,
36237: 40633,
36238: 20811,
36239: 21051,
36240: 21578,
36241: 22269,
36242: 31296,
36243: 37239,
36244: 40288,
36245: 40658,
36246: 29508,
36247: 28425,
36248: 33136,
36249: 29969,
36250: 24573,
36251: 24794,
36252: 39592,
36253: 29403,
36254: 36796,
36255: 27492,
36256: 38915,
36257: 20170,
36258: 22256,
36259: 22372,
36260: 22718,
36261: 23130,
36262: 24680,
36263: 25031,
36264: 26127,
36265: 26118,
36266: 26681,
36267: 26801,
36268: 28151,
36269: 30165,
36270: 32058,
36271: 33390,
36272: 39746,
36273: 20123,
36274: 20304,
36275: 21449,
36276: 21766,
36277: 23919,
36278: 24038,
36279: 24046,
36280: 26619,
36281: 27801,
36282: 29811,
36283: 30722,
36284: 35408,
36285: 37782,
36286: 35039,
36287: 22352,
36288: 24231,
36289: 25387,
36290: 20661,
36291: 20652,
36292: 20877,
36293: 26368,
36294: 21705,
36295: 22622,
36296: 22971,
36297: 23472,
36298: 24425,
36299: 25165,
36300: 25505,
36301: 26685,
36302: 27507,
36303: 28168,
36304: 28797,
36305: 37319,
36306: 29312,
36307: 30741,
36308: 30758,
36309: 31085,
36310: 25998,
36311: 32048,
36312: 33756,
36313: 35009,
36314: 36617,
36315: 38555,
36316: 21092,
36317: 22312,
36318: 26448,
36319: 32618,
36320: 36001,
36321: 20916,
36322: 22338,
36323: 38442,
36324: 22586,
36325: 27018,
36326: 32948,
36327: 21682,
36328: 23822,
36329: 22524,
36330: 30869,
36331: 40442,
36332: 20316,
36333: 21066,
36334: 21643,
36335: 25662,
36336: 26152,
36337: 26388,
36338: 26613,
36339: 31364,
36340: 31574,
36341: 32034,
36342: 37679,
36343: 26716,
36344: 39853,
36345: 31545,
36346: 21273,
36347: 20874,
36348: 21047,
36416: 23519,
36417: 25334,
36418: 25774,
36419: 25830,
36420: 26413,
36421: 27578,
36422: 34217,
36423: 38609,
36424: 30352,
36425: 39894,
36426: 25420,
36427: 37638,
36428: 39851,
36429: 30399,
36430: 26194,
36431: 19977,
36432: 20632,
36433: 21442,
36434: 23665,
36435: 24808,
36436: 25746,
36437: 25955,
36438: 26719,
36439: 29158,
36440: 29642,
36441: 29987,
36442: 31639,
36443: 32386,
36444: 34453,
36445: 35715,
36446: 36059,
36447: 37240,
36448: 39184,
36449: 26028,
36450: 26283,
36451: 27531,
36452: 20181,
36453: 20180,
36454: 20282,
36455: 20351,
36456: 21050,
36457: 21496,
36458: 21490,
36459: 21987,
36460: 22235,
36461: 22763,
36462: 22987,
36463: 22985,
36464: 23039,
36465: 23376,
36466: 23629,
36467: 24066,
36468: 24107,
36469: 24535,
36470: 24605,
36471: 25351,
36472: 25903,
36473: 23388,
36474: 26031,
36475: 26045,
36476: 26088,
36477: 26525,
36478: 27490,
36480: 27515,
36481: 27663,
36482: 29509,
36483: 31049,
36484: 31169,
36485: 31992,
36486: 32025,
36487: 32043,
36488: 32930,
36489: 33026,
36490: 33267,
36491: 35222,
36492: 35422,
36493: 35433,
36494: 35430,
36495: 35468,
36496: 35566,
36497: 36039,
36498: 36060,
36499: 38604,
36500: 39164,
36501: 27503,
36502: 20107,
36503: 20284,
36504: 20365,
36505: 20816,
36506: 23383,
36507: 23546,
36508: 24904,
36509: 25345,
36510: 26178,
36511: 27425,
36512: 28363,
36513: 27835,
36514: 29246,
36515: 29885,
36516: 30164,
36517: 30913,
36518: 31034,
36519: 32780,
36520: 32819,
36521: 33258,
36522: 33940,
36523: 36766,
36524: 27728,
36525: 40575,
36526: 24335,
36527: 35672,
36528: 40235,
36529: 31482,
36530: 36600,
36531: 23437,
36532: 38635,
36533: 19971,
36534: 21489,
36535: 22519,
36536: 22833,
36537: 23241,
36538: 23460,
36539: 24713,
36540: 28287,
36541: 28422,
36542: 30142,
36543: 36074,
36544: 23455,
36545: 34048,
36546: 31712,
36547: 20594,
36548: 26612,
36549: 33437,
36550: 23649,
36551: 34122,
36552: 32286,
36553: 33294,
36554: 20889,
36555: 23556,
36556: 25448,
36557: 36198,
36558: 26012,
36559: 29038,
36560: 31038,
36561: 32023,
36562: 32773,
36563: 35613,
36564: 36554,
36565: 36974,
36566: 34503,
36567: 37034,
36568: 20511,
36569: 21242,
36570: 23610,
36571: 26451,
36572: 28796,
36573: 29237,
36574: 37196,
36575: 37320,
36576: 37675,
36577: 33509,
36578: 23490,
36579: 24369,
36580: 24825,
36581: 20027,
36582: 21462,
36583: 23432,
36584: 25163,
36585: 26417,
36586: 27530,
36587: 29417,
36588: 29664,
36589: 31278,
36590: 33131,
36591: 36259,
36592: 37202,
36593: 39318,
36594: 20754,
36595: 21463,
36596: 21610,
36597: 23551,
36598: 25480,
36599: 27193,
36600: 32172,
36601: 38656,
36602: 22234,
36603: 21454,
36604: 21608,
36672: 23447,
36673: 23601,
36674: 24030,
36675: 20462,
36676: 24833,
36677: 25342,
36678: 27954,
36679: 31168,
36680: 31179,
36681: 32066,
36682: 32333,
36683: 32722,
36684: 33261,
36685: 33311,
36686: 33936,
36687: 34886,
36688: 35186,
36689: 35728,
36690: 36468,
36691: 36655,
36692: 36913,
36693: 37195,
36694: 37228,
36695: 38598,
36696: 37276,
36697: 20160,
36698: 20303,
36699: 20805,
36700: 21313,
36701: 24467,
36702: 25102,
36703: 26580,
36704: 27713,
36705: 28171,
36706: 29539,
36707: 32294,
36708: 37325,
36709: 37507,
36710: 21460,
36711: 22809,
36712: 23487,
36713: 28113,
36714: 31069,
36715: 32302,
36716: 31899,
36717: 22654,
36718: 29087,
36719: 20986,
36720: 34899,
36721: 36848,
36722: 20426,
36723: 23803,
36724: 26149,
36725: 30636,
36726: 31459,
36727: 33308,
36728: 39423,
36729: 20934,
36730: 24490,
36731: 26092,
36732: 26991,
36733: 27529,
36734: 28147,
36736: 28310,
36737: 28516,
36738: 30462,
36739: 32020,
36740: 24033,
36741: 36981,
36742: 37255,
36743: 38918,
36744: 20966,
36745: 21021,
36746: 25152,
36747: 26257,
36748: 26329,
36749: 28186,
36750: 24246,
36751: 32210,
36752: 32626,
36753: 26360,
36754: 34223,
36755: 34295,
36756: 35576,
36757: 21161,
36758: 21465,
36759: 22899,
36760: 24207,
36761: 24464,
36762: 24661,
36763: 37604,
36764: 38500,
36765: 20663,
36766: 20767,
36767: 21213,
36768: 21280,
36769: 21319,
36770: 21484,
36771: 21736,
36772: 21830,
36773: 21809,
36774: 22039,
36775: 22888,
36776: 22974,
36777: 23100,
36778: 23477,
36779: 23558,
36780: 23567,
36781: 23569,
36782: 23578,
36783: 24196,
36784: 24202,
36785: 24288,
36786: 24432,
36787: 25215,
36788: 25220,
36789: 25307,
36790: 25484,
36791: 25463,
36792: 26119,
36793: 26124,
36794: 26157,
36795: 26230,
36796: 26494,
36797: 26786,
36798: 27167,
36799: 27189,
36800: 27836,
36801: 28040,
36802: 28169,
36803: 28248,
36804: 28988,
36805: 28966,
36806: 29031,
36807: 30151,
36808: 30465,
36809: 30813,
36810: 30977,
36811: 31077,
36812: 31216,
36813: 31456,
36814: 31505,
36815: 31911,
36816: 32057,
36817: 32918,
36818: 33750,
36819: 33931,
36820: 34121,
36821: 34909,
36822: 35059,
36823: 35359,
36824: 35388,
36825: 35412,
36826: 35443,
36827: 35937,
36828: 36062,
36829: 37284,
36830: 37478,
36831: 37758,
36832: 37912,
36833: 38556,
36834: 38808,
36835: 19978,
36836: 19976,
36837: 19998,
36838: 20055,
36839: 20887,
36840: 21104,
36841: 22478,
36842: 22580,
36843: 22732,
36844: 23330,
36845: 24120,
36846: 24773,
36847: 25854,
36848: 26465,
36849: 26454,
36850: 27972,
36851: 29366,
36852: 30067,
36853: 31331,
36854: 33976,
36855: 35698,
36856: 37304,
36857: 37664,
36858: 22065,
36859: 22516,
36860: 39166,
36928: 25325,
36929: 26893,
36930: 27542,
36931: 29165,
36932: 32340,
36933: 32887,
36934: 33394,
36935: 35302,
36936: 39135,
36937: 34645,
36938: 36785,
36939: 23611,
36940: 20280,
36941: 20449,
36942: 20405,
36943: 21767,
36944: 23072,
36945: 23517,
36946: 23529,
36947: 24515,
36948: 24910,
36949: 25391,
36950: 26032,
36951: 26187,
36952: 26862,
36953: 27035,
36954: 28024,
36955: 28145,
36956: 30003,
36957: 30137,
36958: 30495,
36959: 31070,
36960: 31206,
36961: 32051,
36962: 33251,
36963: 33455,
36964: 34218,
36965: 35242,
36966: 35386,
36967: 36523,
36968: 36763,
36969: 36914,
36970: 37341,
36971: 38663,
36972: 20154,
36973: 20161,
36974: 20995,
36975: 22645,
36976: 22764,
36977: 23563,
36978: 29978,
36979: 23613,
36980: 33102,
36981: 35338,
36982: 36805,
36983: 38499,
36984: 38765,
36985: 31525,
36986: 35535,
36987: 38920,
36988: 37218,
36989: 22259,
36990: 21416,
36992: 36887,
36993: 21561,
36994: 22402,
36995: 24101,
36996: 25512,
36997: 27700,
36998: 28810,
36999: 30561,
37000: 31883,
37001: 32736,
37002: 34928,
37003: 36930,
37004: 37204,
37005: 37648,
37006: 37656,
37007: 38543,
37008: 29790,
37009: 39620,
37010: 23815,
37011: 23913,
37012: 25968,
37013: 26530,
37014: 36264,
37015: 38619,
37016: 25454,
37017: 26441,
37018: 26905,
37019: 33733,
37020: 38935,
37021: 38592,
37022: 35070,
37023: 28548,
37024: 25722,
37025: 23544,
37026: 19990,
37027: 28716,
37028: 30045,
37029: 26159,
37030: 20932,
37031: 21046,
37032: 21218,
37033: 22995,
37034: 24449,
37035: 24615,
37036: 25104,
37037: 25919,
37038: 25972,
37039: 26143,
37040: 26228,
37041: 26866,
37042: 26646,
37043: 27491,
37044: 28165,
37045: 29298,
37046: 29983,
37047: 30427,
37048: 31934,
37049: 32854,
37050: 22768,
37051: 35069,
37052: 35199,
37053: 35488,
37054: 35475,
37055: 35531,
37056: 36893,
37057: 37266,
37058: 38738,
37059: 38745,
37060: 25993,
37061: 31246,
37062: 33030,
37063: 38587,
37064: 24109,
37065: 24796,
37066: 25114,
37067: 26021,
37068: 26132,
37069: 26512,
37070: 30707,
37071: 31309,
37072: 31821,
37073: 32318,
37074: 33034,
37075: 36012,
37076: 36196,
37077: 36321,
37078: 36447,
37079: 30889,
37080: 20999,
37081: 25305,
37082: 25509,
37083: 25666,
37084: 25240,
37085: 35373,
37086: 31363,
37087: 31680,
37088: 35500,
37089: 38634,
37090: 32118,
37091: 33292,
37092: 34633,
37093: 20185,
37094: 20808,
37095: 21315,
37096: 21344,
37097: 23459,
37098: 23554,
37099: 23574,
37100: 24029,
37101: 25126,
37102: 25159,
37103: 25776,
37104: 26643,
37105: 26676,
37106: 27849,
37107: 27973,
37108: 27927,
37109: 26579,
37110: 28508,
37111: 29006,
37112: 29053,
37113: 26059,
37114: 31359,
37115: 31661,
37116: 32218,
37184: 32330,
37185: 32680,
37186: 33146,
37187: 33307,
37188: 33337,
37189: 34214,
37190: 35438,
37191: 36046,
37192: 36341,
37193: 36984,
37194: 36983,
37195: 37549,
37196: 37521,
37197: 38275,
37198: 39854,
37199: 21069,
37200: 21892,
37201: 28472,
37202: 28982,
37203: 20840,
37204: 31109,
37205: 32341,
37206: 33203,
37207: 31950,
37208: 22092,
37209: 22609,
37210: 23720,
37211: 25514,
37212: 26366,
37213: 26365,
37214: 26970,
37215: 29401,
37216: 30095,
37217: 30094,
37218: 30990,
37219: 31062,
37220: 31199,
37221: 31895,
37222: 32032,
37223: 32068,
37224: 34311,
37225: 35380,
37226: 38459,
37227: 36961,
37228: 40736,
37229: 20711,
37230: 21109,
37231: 21452,
37232: 21474,
37233: 20489,
37234: 21930,
37235: 22766,
37236: 22863,
37237: 29245,
37238: 23435,
37239: 23652,
37240: 21277,
37241: 24803,
37242: 24819,
37243: 25436,
37244: 25475,
37245: 25407,
37246: 25531,
37248: 25805,
37249: 26089,
37250: 26361,
37251: 24035,
37252: 27085,
37253: 27133,
37254: 28437,
37255: 29157,
37256: 20105,
37257: 30185,
37258: 30456,
37259: 31379,
37260: 31967,
37261: 32207,
37262: 32156,
37263: 32865,
37264: 33609,
37265: 33624,
37266: 33900,
37267: 33980,
37268: 34299,
37269: 35013,
37270: 36208,
37271: 36865,
37272: 36973,
37273: 37783,
37274: 38684,
37275: 39442,
37276: 20687,
37277: 22679,
37278: 24974,
37279: 33235,
37280: 34101,
37281: 36104,
37282: 36896,
37283: 20419,
37284: 20596,
37285: 21063,
37286: 21363,
37287: 24687,
37288: 25417,
37289: 26463,
37290: 28204,
37291: 36275,
37292: 36895,
37293: 20439,
37294: 23646,
37295: 36042,
37296: 26063,
37297: 32154,
37298: 21330,
37299: 34966,
37300: 20854,
37301: 25539,
37302: 23384,
37303: 23403,
37304: 23562,
37305: 25613,
37306: 26449,
37307: 36956,
37308: 20182,
37309: 22810,
37310: 22826,
37311: 27760,
37312: 35409,
37313: 21822,
37314: 22549,
37315: 22949,
37316: 24816,
37317: 25171,
37318: 26561,
37319: 33333,
37320: 26965,
37321: 38464,
37322: 39364,
37323: 39464,
37324: 20307,
37325: 22534,
37326: 23550,
37327: 32784,
37328: 23729,
37329: 24111,
37330: 24453,
37331: 24608,
37332: 24907,
37333: 25140,
37334: 26367,
37335: 27888,
37336: 28382,
37337: 32974,
37338: 33151,
37339: 33492,
37340: 34955,
37341: 36024,
37342: 36864,
37343: 36910,
37344: 38538,
37345: 40667,
37346: 39899,
37347: 20195,
37348: 21488,
37349: 22823,
37350: 31532,
37351: 37261,
37352: 38988,
37353: 40441,
37354: 28381,
37355: 28711,
37356: 21331,
37357: 21828,
37358: 23429,
37359: 25176,
37360: 25246,
37361: 25299,
37362: 27810,
37363: 28655,
37364: 29730,
37365: 35351,
37366: 37944,
37367: 28609,
37368: 35582,
37369: 33592,
37370: 20967,
37371: 34552,
37372: 21482,
37440: 21481,
37441: 20294,
37442: 36948,
37443: 36784,
37444: 22890,
37445: 33073,
37446: 24061,
37447: 31466,
37448: 36799,
37449: 26842,
37450: 35895,
37451: 29432,
37452: 40008,
37453: 27197,
37454: 35504,
37455: 20025,
37456: 21336,
37457: 22022,
37458: 22374,
37459: 25285,
37460: 25506,
37461: 26086,
37462: 27470,
37463: 28129,
37464: 28251,
37465: 28845,
37466: 30701,
37467: 31471,
37468: 31658,
37469: 32187,
37470: 32829,
37471: 32966,
37472: 34507,
37473: 35477,
37474: 37723,
37475: 22243,
37476: 22727,
37477: 24382,
37478: 26029,
37479: 26262,
37480: 27264,
37481: 27573,
37482: 30007,
37483: 35527,
37484: 20516,
37485: 30693,
37486: 22320,
37487: 24347,
37488: 24677,
37489: 26234,
37490: 27744,
37491: 30196,
37492: 31258,
37493: 32622,
37494: 33268,
37495: 34584,
37496: 36933,
37497: 39347,
37498: 31689,
37499: 30044,
37500: 31481,
37501: 31569,
37502: 33988,
37504: 36880,
37505: 31209,
37506: 31378,
37507: 33590,
37508: 23265,
37509: 30528,
37510: 20013,
37511: 20210,
37512: 23449,
37513: 24544,
37514: 25277,
37515: 26172,
37516: 26609,
37517: 27880,
37518: 34411,
37519: 34935,
37520: 35387,
37521: 37198,
37522: 37619,
37523: 39376,
37524: 27159,
37525: 28710,
37526: 29482,
37527: 33511,
37528: 33879,
37529: 36015,
37530: 19969,
37531: 20806,
37532: 20939,
37533: 21899,
37534: 23541,
37535: 24086,
37536: 24115,
37537: 24193,
37538: 24340,
37539: 24373,
37540: 24427,
37541: 24500,
37542: 25074,
37543: 25361,
37544: 26274,
37545: 26397,
37546: 28526,
37547: 29266,
37548: 30010,
37549: 30522,
37550: 32884,
37551: 33081,
37552: 33144,
37553: 34678,
37554: 35519,
37555: 35548,
37556: 36229,
37557: 36339,
37558: 37530,
37559: 38263,
37560: 38914,
37561: 40165,
37562: 21189,
37563: 25431,
37564: 30452,
37565: 26389,
37566: 27784,
37567: 29645,
37568: 36035,
37569: 37806,
37570: 38515,
37571: 27941,
37572: 22684,
37573: 26894,
37574: 27084,
37575: 36861,
37576: 37786,
37577: 30171,
37578: 36890,
37579: 22618,
37580: 26626,
37581: 25524,
37582: 27131,
37583: 20291,
37584: 28460,
37585: 26584,
37586: 36795,
37587: 34086,
37588: 32180,
37589: 37716,
37590: 26943,
37591: 28528,
37592: 22378,
37593: 22775,
37594: 23340,
37595: 32044,
37596: 29226,
37597: 21514,
37598: 37347,
37599: 40372,
37600: 20141,
37601: 20302,
37602: 20572,
37603: 20597,
37604: 21059,
37605: 35998,
37606: 21576,
37607: 22564,
37608: 23450,
37609: 24093,
37610: 24213,
37611: 24237,
37612: 24311,
37613: 24351,
37614: 24716,
37615: 25269,
37616: 25402,
37617: 25552,
37618: 26799,
37619: 27712,
37620: 30855,
37621: 31118,
37622: 31243,
37623: 32224,
37624: 33351,
37625: 35330,
37626: 35558,
37627: 36420,
37628: 36883,
37696: 37048,
37697: 37165,
37698: 37336,
37699: 40718,
37700: 27877,
37701: 25688,
37702: 25826,
37703: 25973,
37704: 28404,
37705: 30340,
37706: 31515,
37707: 36969,
37708: 37841,
37709: 28346,
37710: 21746,
37711: 24505,
37712: 25764,
37713: 36685,
37714: 36845,
37715: 37444,
37716: 20856,
37717: 22635,
37718: 22825,
37719: 23637,
37720: 24215,
37721: 28155,
37722: 32399,
37723: 29980,
37724: 36028,
37725: 36578,
37726: 39003,
37727: 28857,
37728: 20253,
37729: 27583,
37730: 28593,
37731: 30000,
37732: 38651,
37733: 20814,
37734: 21520,
37735: 22581,
37736: 22615,
37737: 22956,
37738: 23648,
37739: 24466,
37740: 26007,
37741: 26460,
37742: 28193,
37743: 30331,
37744: 33759,
37745: 36077,
37746: 36884,
37747: 37117,
37748: 37709,
37749: 30757,
37750: 30778,
37751: 21162,
37752: 24230,
37753: 22303,
37754: 22900,
37755: 24594,
37756: 20498,
37757: 20826,
37758: 20908,
37760: 20941,
37761: 20992,
37762: 21776,
37763: 22612,
37764: 22616,
37765: 22871,
37766: 23445,
37767: 23798,
37768: 23947,
37769: 24764,
37770: 25237,
37771: 25645,
37772: 26481,
37773: 26691,
37774: 26812,
37775: 26847,
37776: 30423,
37777: 28120,
37778: 28271,
37779: 28059,
37780: 28783,
37781: 29128,
37782: 24403,
37783: 30168,
37784: 31095,
37785: 31561,
37786: 31572,
37787: 31570,
37788: 31958,
37789: 32113,
37790: 21040,
37791: 33891,
37792: 34153,
37793: 34276,
37794: 35342,
37795: 35588,
37796: 35910,
37797: 36367,
37798: 36867,
37799: 36879,
37800: 37913,
37801: 38518,
37802: 38957,
37803: 39472,
37804: 38360,
37805: 20685,
37806: 21205,
37807: 21516,
37808: 22530,
37809: 23566,
37810: 24999,
37811: 25758,
37812: 27934,
37813: 30643,
37814: 31461,
37815: 33012,
37816: 33796,
37817: 36947,
37818: 37509,
37819: 23776,
37820: 40199,
37821: 21311,
37822: 24471,
37823: 24499,
37824: 28060,
37825: 29305,
37826: 30563,
37827: 31167,
37828: 31716,
37829: 27602,
37830: 29420,
37831: 35501,
37832: 26627,
37833: 27233,
37834: 20984,
37835: 31361,
37836: 26932,
37837: 23626,
37838: 40182,
37839: 33515,
37840: 23493,
37841: 37193,
37842: 28702,
37843: 22136,
37844: 23663,
37845: 24775,
37846: 25958,
37847: 27788,
37848: 35930,
37849: 36929,
37850: 38931,
37851: 21585,
37852: 26311,
37853: 37389,
37854: 22856,
37855: 37027,
37856: 20869,
37857: 20045,
37858: 20970,
37859: 34201,
37860: 35598,
37861: 28760,
37862: 25466,
37863: 37707,
37864: 26978,
37865: 39348,
37866: 32260,
37867: 30071,
37868: 21335,
37869: 26976,
37870: 36575,
37871: 38627,
37872: 27741,
37873: 20108,
37874: 23612,
37875: 24336,
37876: 36841,
37877: 21250,
37878: 36049,
37879: 32905,
37880: 34425,
37881: 24319,
37882: 26085,
37883: 20083,
37884: 20837,
37952: 22914,
37953: 23615,
37954: 38894,
37955: 20219,
37956: 22922,
37957: 24525,
37958: 35469,
37959: 28641,
37960: 31152,
37961: 31074,
37962: 23527,
37963: 33905,
37964: 29483,
37965: 29105,
37966: 24180,
37967: 24565,
37968: 25467,
37969: 25754,
37970: 29123,
37971: 31896,
37972: 20035,
37973: 24316,
37974: 20043,
37975: 22492,
37976: 22178,
37977: 24745,
37978: 28611,
37979: 32013,
37980: 33021,
37981: 33075,
37982: 33215,
37983: 36786,
37984: 35223,
37985: 34468,
37986: 24052,
37987: 25226,
37988: 25773,
37989: 35207,
37990: 26487,
37991: 27874,
37992: 27966,
37993: 29750,
37994: 30772,
37995: 23110,
37996: 32629,
37997: 33453,
37998: 39340,
37999: 20467,
38000: 24259,
38001: 25309,
38002: 25490,
38003: 25943,
38004: 26479,
38005: 30403,
38006: 29260,
38007: 32972,
38008: 32954,
38009: 36649,
38010: 37197,
38011: 20493,
38012: 22521,
38013: 23186,
38014: 26757,
38016: 26995,
38017: 29028,
38018: 29437,
38019: 36023,
38020: 22770,
38021: 36064,
38022: 38506,
38023: 36889,
38024: 34687,
38025: 31204,
38026: 30695,
38027: 33833,
38028: 20271,
38029: 21093,
38030: 21338,
38031: 25293,
38032: 26575,
38033: 27850,
38034: 30333,
38035: 31636,
38036: 31893,
38037: 33334,
38038: 34180,
38039: 36843,
38040: 26333,
38041: 28448,
38042: 29190,
38043: 32283,
38044: 33707,
38045: 39361,
38046: 40614,
38047: 20989,
38048: 31665,
38049: 30834,
38050: 31672,
38051: 32903,
38052: 31560,
38053: 27368,
38054: 24161,
38055: 32908,
38056: 30033,
38057: 30048,
38058: 20843,
38059: 37474,
38060: 28300,
38061: 30330,
38062: 37271,
38063: 39658,
38064: 20240,
38065: 32624,
38066: 25244,
38067: 31567,
38068: 38309,
38069: 40169,
38070: 22138,
38071: 22617,
38072: 34532,
38073: 38588,
38074: 20276,
38075: 21028,
38076: 21322,
38077: 21453,
38078: 21467,
38079: 24070,
38080: 25644,
38081: 26001,
38082: 26495,
38083: 27710,
38084: 27726,
38085: 29256,
38086: 29359,
38087: 29677,
38088: 30036,
38089: 32321,
38090: 33324,
38091: 34281,
38092: 36009,
38093: 31684,
38094: 37318,
38095: 29033,
38096: 38930,
38097: 39151,
38098: 25405,
38099: 26217,
38100: 30058,
38101: 30436,
38102: 30928,
38103: 34115,
38104: 34542,
38105: 21290,
38106: 21329,
38107: 21542,
38108: 22915,
38109: 24199,
38110: 24444,
38111: 24754,
38112: 25161,
38113: 25209,
38114: 25259,
38115: 26000,
38116: 27604,
38117: 27852,
38118: 30130,
38119: 30382,
38120: 30865,
38121: 31192,
38122: 32203,
38123: 32631,
38124: 32933,
38125: 34987,
38126: 35513,
38127: 36027,
38128: 36991,
38129: 38750,
38130: 39131,
38131: 27147,
38132: 31800,
38133: 20633,
38134: 23614,
38135: 24494,
38136: 26503,
38137: 27608,
38138: 29749,
38139: 30473,
38140: 32654,
38208: 40763,
38209: 26570,
38210: 31255,
38211: 21305,
38212: 30091,
38213: 39661,
38214: 24422,
38215: 33181,
38216: 33777,
38217: 32920,
38218: 24380,
38219: 24517,
38220: 30050,
38221: 31558,
38222: 36924,
38223: 26727,
38224: 23019,
38225: 23195,
38226: 32016,
38227: 30334,
38228: 35628,
38229: 20469,
38230: 24426,
38231: 27161,
38232: 27703,
38233: 28418,
38234: 29922,
38235: 31080,
38236: 34920,
38237: 35413,
38238: 35961,
38239: 24287,
38240: 25551,
38241: 30149,
38242: 31186,
38243: 33495,
38244: 37672,
38245: 37618,
38246: 33948,
38247: 34541,
38248: 39981,
38249: 21697,
38250: 24428,
38251: 25996,
38252: 27996,
38253: 28693,
38254: 36007,
38255: 36051,
38256: 38971,
38257: 25935,
38258: 29942,
38259: 19981,
38260: 20184,
38261: 22496,
38262: 22827,
38263: 23142,
38264: 23500,
38265: 20904,
38266: 24067,
38267: 24220,
38268: 24598,
38269: 25206,
38270: 25975,
38272: 26023,
38273: 26222,
38274: 28014,
38275: 29238,
38276: 31526,
38277: 33104,
38278: 33178,
38279: 33433,
38280: 35676,
38281: 36000,
38282: 36070,
38283: 36212,
38284: 38428,
38285: 38468,
38286: 20398,
38287: 25771,
38288: 27494,
38289: 33310,
38290: 33889,
38291: 34154,
38292: 37096,
38293: 23553,
38294: 26963,
38295: 39080,
38296: 33914,
38297: 34135,
38298: 20239,
38299: 21103,
38300: 24489,
38301: 24133,
38302: 26381,
38303: 31119,
38304: 33145,
38305: 35079,
38306: 35206,
38307: 28149,
38308: 24343,
38309: 25173,
38310: 27832,
38311: 20175,
38312: 29289,
38313: 39826,
38314: 20998,
38315: 21563,
38316: 22132,
38317: 22707,
38318: 24996,
38319: 25198,
38320: 28954,
38321: 22894,
38322: 31881,
38323: 31966,
38324: 32027,
38325: 38640,
38326: 25991,
38327: 32862,
38328: 19993,
38329: 20341,
38330: 20853,
38331: 22592,
38332: 24163,
38333: 24179,
38334: 24330,
38335: 26564,
38336: 20006,
38337: 34109,
38338: 38281,
38339: 38491,
38340: 31859,
38341: 38913,
38342: 20731,
38343: 22721,
38344: 30294,
38345: 30887,
38346: 21029,
38347: 30629,
38348: 34065,
38349: 31622,
38350: 20559,
38351: 22793,
38352: 29255,
38353: 31687,
38354: 32232,
38355: 36794,
38356: 36820,
38357: 36941,
38358: 20415,
38359: 21193,
38360: 23081,
38361: 24321,
38362: 38829,
38363: 20445,
38364: 33303,
38365: 37610,
38366: 22275,
38367: 25429,
38368: 27497,
38369: 29995,
38370: 35036,
38371: 36628,
38372: 31298,
38373: 21215,
38374: 22675,
38375: 24917,
38376: 25098,
38377: 26286,
38378: 27597,
38379: 31807,
38380: 33769,
38381: 20515,
38382: 20472,
38383: 21253,
38384: 21574,
38385: 22577,
38386: 22857,
38387: 23453,
38388: 23792,
38389: 23791,
38390: 23849,
38391: 24214,
38392: 25265,
38393: 25447,
38394: 25918,
38395: 26041,
38396: 26379,
38464: 27861,
38465: 27873,
38466: 28921,
38467: 30770,
38468: 32299,
38469: 32990,
38470: 33459,
38471: 33804,
38472: 34028,
38473: 34562,
38474: 35090,
38475: 35370,
38476: 35914,
38477: 37030,
38478: 37586,
38479: 39165,
38480: 40179,
38481: 40300,
38482: 20047,
38483: 20129,
38484: 20621,
38485: 21078,
38486: 22346,
38487: 22952,
38488: 24125,
38489: 24536,
38490: 24537,
38491: 25151,
38492: 26292,
38493: 26395,
38494: 26576,
38495: 26834,
38496: 20882,
38497: 32033,
38498: 32938,
38499: 33192,
38500: 35584,
38501: 35980,
38502: 36031,
38503: 37502,
38504: 38450,
38505: 21536,
38506: 38956,
38507: 21271,
38508: 20693,
38509: 21340,
38510: 22696,
38511: 25778,
38512: 26420,
38513: 29287,
38514: 30566,
38515: 31302,
38516: 37350,
38517: 21187,
38518: 27809,
38519: 27526,
38520: 22528,
38521: 24140,
38522: 22868,
38523: 26412,
38524: 32763,
38525: 20961,
38526: 30406,
38528: 25705,
38529: 30952,
38530: 39764,
38531: 40635,
38532: 22475,
38533: 22969,
38534: 26151,
38535: 26522,
38536: 27598,
38537: 21737,
38538: 27097,
38539: 24149,
38540: 33180,
38541: 26517,
38542: 39850,
38543: 26622,
38544: 40018,
38545: 26717,
38546: 20134,
38547: 20451,
38548: 21448,
38549: 25273,
38550: 26411,
38551: 27819,
38552: 36804,
38553: 20397,
38554: 32365,
38555: 40639,
38556: 19975,
38557: 24930,
38558: 28288,
38559: 28459,
38560: 34067,
38561: 21619,
38562: 26410,
38563: 39749,
38564: 24051,
38565: 31637,
38566: 23724,
38567: 23494,
38568: 34588,
38569: 28234,
38570: 34001,
38571: 31252,
38572: 33032,
38573: 22937,
38574: 31885,
38575: 27665,
38576: 30496,
38577: 21209,
38578: 22818,
38579: 28961,
38580: 29279,
38581: 30683,
38582: 38695,
38583: 40289,
38584: 26891,
38585: 23167,
38586: 23064,
38587: 20901,
38588: 21517,
38589: 21629,
38590: 26126,
38591: 30431,
38592: 36855,
38593: 37528,
38594: 40180,
38595: 23018,
38596: 29277,
38597: 28357,
38598: 20813,
38599: 26825,
38600: 32191,
38601: 32236,
38602: 38754,
38603: 40634,
38604: 25720,
38605: 27169,
38606: 33538,
38607: 22916,
38608: 23391,
38609: 27611,
38610: 29467,
38611: 30450,
38612: 32178,
38613: 32791,
38614: 33945,
38615: 20786,
38616: 26408,
38617: 40665,
38618: 30446,
38619: 26466,
38620: 21247,
38621: 39173,
38622: 23588,
38623: 25147,
38624: 31870,
38625: 36016,
38626: 21839,
38627: 24758,
38628: 32011,
38629: 38272,
38630: 21249,
38631: 20063,
38632: 20918,
38633: 22812,
38634: 29242,
38635: 32822,
38636: 37326,
38637: 24357,
38638: 30690,
38639: 21380,
38640: 24441,
38641: 32004,
38642: 34220,
38643: 35379,
38644: 36493,
38645: 38742,
38646: 26611,
38647: 34222,
38648: 37971,
38649: 24841,
38650: 24840,
38651: 27833,
38652: 30290,
38720: 35565,
38721: 36664,
38722: 21807,
38723: 20305,
38724: 20778,
38725: 21191,
38726: 21451,
38727: 23461,
38728: 24189,
38729: 24736,
38730: 24962,
38731: 25558,
38732: 26377,
38733: 26586,
38734: 28263,
38735: 28044,
38736: 29494,
38737: 29495,
38738: 30001,
38739: 31056,
38740: 35029,
38741: 35480,
38742: 36938,
38743: 37009,
38744: 37109,
38745: 38596,
38746: 34701,
38747: 22805,
38748: 20104,
38749: 20313,
38750: 19982,
38751: 35465,
38752: 36671,
38753: 38928,
38754: 20653,
38755: 24188,
38756: 22934,
38757: 23481,
38758: 24248,
38759: 25562,
38760: 25594,
38761: 25793,
38762: 26332,
38763: 26954,
38764: 27096,
38765: 27915,
38766: 28342,
38767: 29076,
38768: 29992,
38769: 31407,
38770: 32650,
38771: 32768,
38772: 33865,
38773: 33993,
38774: 35201,
38775: 35617,
38776: 36362,
38777: 36965,
38778: 38525,
38779: 39178,
38780: 24958,
38781: 25233,
38782: 27442,
38784: 27779,
38785: 28020,
38786: 32716,
38787: 32764,
38788: 28096,
38789: 32645,
38790: 34746,
38791: 35064,
38792: 26469,
38793: 33713,
38794: 38972,
38795: 38647,
38796: 27931,
38797: 32097,
38798: 33853,
38799: 37226,
38800: 20081,
38801: 21365,
38802: 23888,
38803: 27396,
38804: 28651,
38805: 34253,
38806: 34349,
38807: 35239,
38808: 21033,
38809: 21519,
38810: 23653,
38811: 26446,
38812: 26792,
38813: 29702,
38814: 29827,
38815: 30178,
38816: 35023,
38817: 35041,
38818: 37324,
38819: 38626,
38820: 38520,
38821: 24459,
38822: 29575,
38823: 31435,
38824: 33870,
38825: 25504,
38826: 30053,
38827: 21129,
38828: 27969,
38829: 28316,
38830: 29705,
38831: 30041,
38832: 30827,
38833: 31890,
38834: 38534,
38835: 31452,
38836: 40845,
38837: 20406,
38838: 24942,
38839: 26053,
38840: 34396,
38841: 20102,
38842: 20142,
38843: 20698,
38844: 20001,
38845: 20940,
38846: 23534,
38847: 26009,
38848: 26753,
38849: 28092,
38850: 29471,
38851: 30274,
38852: 30637,
38853: 31260,
38854: 31975,
38855: 33391,
38856: 35538,
38857: 36988,
38858: 37327,
38859: 38517,
38860: 38936,
38861: 21147,
38862: 32209,
38863: 20523,
38864: 21400,
38865: 26519,
38866: 28107,
38867: 29136,
38868: 29747,
38869: 33256,
38870: 36650,
38871: 38563,
38872: 40023,
38873: 40607,
38874: 29792,
38875: 22593,
38876: 28057,
38877: 32047,
38878: 39006,
38879: 20196,
38880: 20278,
38881: 20363,
38882: 20919,
38883: 21169,
38884: 23994,
38885: 24604,
38886: 29618,
38887: 31036,
38888: 33491,
38889: 37428,
38890: 38583,
38891: 38646,
38892: 38666,
38893: 40599,
38894: 40802,
38895: 26278,
38896: 27508,
38897: 21015,
38898: 21155,
38899: 28872,
38900: 35010,
38901: 24265,
38902: 24651,
38903: 24976,
38904: 28451,
38905: 29001,
38906: 31806,
38907: 32244,
38908: 32879,
38976: 34030,
38977: 36899,
38978: 37676,
38979: 21570,
38980: 39791,
38981: 27347,
38982: 28809,
38983: 36034,
38984: 36335,
38985: 38706,
38986: 21172,
38987: 23105,
38988: 24266,
38989: 24324,
38990: 26391,
38991: 27004,
38992: 27028,
38993: 28010,
38994: 28431,
38995: 29282,
38996: 29436,
38997: 31725,
38998: 32769,
38999: 32894,
39000: 34635,
39001: 37070,
39002: 20845,
39003: 40595,
39004: 31108,
39005: 32907,
39006: 37682,
39007: 35542,
39008: 20525,
39009: 21644,
39010: 35441,
39011: 27498,
39012: 36036,
39013: 33031,
39014: 24785,
39015: 26528,
39016: 40434,
39017: 20121,
39018: 20120,
39019: 39952,
39020: 35435,
39021: 34241,
39022: 34152,
39023: 26880,
39024: 28286,
39025: 30871,
39026: 33109,
39071: 24332,
39072: 19984,
39073: 19989,
39074: 20010,
39075: 20017,
39076: 20022,
39077: 20028,
39078: 20031,
39079: 20034,
39080: 20054,
39081: 20056,
39082: 20098,
39083: 20101,
39084: 35947,
39085: 20106,
39086: 33298,
39087: 24333,
39088: 20110,
39089: 20126,
39090: 20127,
39091: 20128,
39092: 20130,
39093: 20144,
39094: 20147,
39095: 20150,
39096: 20174,
39097: 20173,
39098: 20164,
39099: 20166,
39100: 20162,
39101: 20183,
39102: 20190,
39103: 20205,
39104: 20191,
39105: 20215,
39106: 20233,
39107: 20314,
39108: 20272,
39109: 20315,
39110: 20317,
39111: 20311,
39112: 20295,
39113: 20342,
39114: 20360,
39115: 20367,
39116: 20376,
39117: 20347,
39118: 20329,
39119: 20336,
39120: 20369,
39121: 20335,
39122: 20358,
39123: 20374,
39124: 20760,
39125: 20436,
39126: 20447,
39127: 20430,
39128: 20440,
39129: 20443,
39130: 20433,
39131: 20442,
39132: 20432,
39133: 20452,
39134: 20453,
39135: 20506,
39136: 20520,
39137: 20500,
39138: 20522,
39139: 20517,
39140: 20485,
39141: 20252,
39142: 20470,
39143: 20513,
39144: 20521,
39145: 20524,
39146: 20478,
39147: 20463,
39148: 20497,
39149: 20486,
39150: 20547,
39151: 20551,
39152: 26371,
39153: 20565,
39154: 20560,
39155: 20552,
39156: 20570,
39157: 20566,
39158: 20588,
39159: 20600,
39160: 20608,
39161: 20634,
39162: 20613,
39163: 20660,
39164: 20658,
39232: 20681,
39233: 20682,
39234: 20659,
39235: 20674,
39236: 20694,
39237: 20702,
39238: 20709,
39239: 20717,
39240: 20707,
39241: 20718,
39242: 20729,
39243: 20725,
39244: 20745,
39245: 20737,
39246: 20738,
39247: 20758,
39248: 20757,
39249: 20756,
39250: 20762,
39251: 20769,
39252: 20794,
39253: 20791,
39254: 20796,
39255: 20795,
39256: 20799,
39257: 20800,
39258: 20818,
39259: 20812,
39260: 20820,
39261: 20834,
39262: 31480,
39263: 20841,
39264: 20842,
39265: 20846,
39266: 20864,
39267: 20866,
39268: 22232,
39269: 20876,
39270: 20873,
39271: 20879,
39272: 20881,
39273: 20883,
39274: 20885,
39275: 20886,
39276: 20900,
39277: 20902,
39278: 20898,
39279: 20905,
39280: 20906,
39281: 20907,
39282: 20915,
39283: 20913,
39284: 20914,
39285: 20912,
39286: 20917,
39287: 20925,
39288: 20933,
39289: 20937,
39290: 20955,
39291: 20960,
39292: 34389,
39293: 20969,
39294: 20973,
39296: 20976,
39297: 20981,
39298: 20990,
39299: 20996,
39300: 21003,
39301: 21012,
39302: 21006,
39303: 21031,
39304: 21034,
39305: 21038,
39306: 21043,
39307: 21049,
39308: 21071,
39309: 21060,
39310: 21067,
39311: 21068,
39312: 21086,
39313: 21076,
39314: 21098,
39315: 21108,
39316: 21097,
39317: 21107,
39318: 21119,
39319: 21117,
39320: 21133,
39321: 21140,
39322: 21138,
39323: 21105,
39324: 21128,
39325: 21137,
39326: 36776,
39327: 36775,
39328: 21164,
39329: 21165,
39330: 21180,
39331: 21173,
39332: 21185,
39333: 21197,
39334: 21207,
39335: 21214,
39336: 21219,
39337: 21222,
39338: 39149,
39339: 21216,
39340: 21235,
39341: 21237,
39342: 21240,
39343: 21241,
39344: 21254,
39345: 21256,
39346: 30008,
39347: 21261,
39348: 21264,
39349: 21263,
39350: 21269,
39351: 21274,
39352: 21283,
39353: 21295,
39354: 21297,
39355: 21299,
39356: 21304,
39357: 21312,
39358: 21318,
39359: 21317,
39360: 19991,
39361: 21321,
39362: 21325,
39363: 20950,
39364: 21342,
39365: 21353,
39366: 21358,
39367: 22808,
39368: 21371,
39369: 21367,
39370: 21378,
39371: 21398,
39372: 21408,
39373: 21414,
39374: 21413,
39375: 21422,
39376: 21424,
39377: 21430,
39378: 21443,
39379: 31762,
39380: 38617,
39381: 21471,
39382: 26364,
39383: 29166,
39384: 21486,
39385: 21480,
39386: 21485,
39387: 21498,
39388: 21505,
39389: 21565,
39390: 21568,
39391: 21548,
39392: 21549,
39393: 21564,
39394: 21550,
39395: 21558,
39396: 21545,
39397: 21533,
39398: 21582,
39399: 21647,
39400: 21621,
39401: 21646,
39402: 21599,
39403: 21617,
39404: 21623,
39405: 21616,
39406: 21650,
39407: 21627,
39408: 21632,
39409: 21622,
39410: 21636,
39411: 21648,
39412: 21638,
39413: 21703,
39414: 21666,
39415: 21688,
39416: 21669,
39417: 21676,
39418: 21700,
39419: 21704,
39420: 21672,
39488: 21675,
39489: 21698,
39490: 21668,
39491: 21694,
39492: 21692,
39493: 21720,
39494: 21733,
39495: 21734,
39496: 21775,
39497: 21780,
39498: 21757,
39499: 21742,
39500: 21741,
39501: 21754,
39502: 21730,
39503: 21817,
39504: 21824,
39505: 21859,
39506: 21836,
39507: 21806,
39508: 21852,
39509: 21829,
39510: 21846,
39511: 21847,
39512: 21816,
39513: 21811,
39514: 21853,
39515: 21913,
39516: 21888,
39517: 21679,
39518: 21898,
39519: 21919,
39520: 21883,
39521: 21886,
39522: 21912,
39523: 21918,
39524: 21934,
39525: 21884,
39526: 21891,
39527: 21929,
39528: 21895,
39529: 21928,
39530: 21978,
39531: 21957,
39532: 21983,
39533: 21956,
39534: 21980,
39535: 21988,
39536: 21972,
39537: 22036,
39538: 22007,
39539: 22038,
39540: 22014,
39541: 22013,
39542: 22043,
39543: 22009,
39544: 22094,
39545: 22096,
39546: 29151,
39547: 22068,
39548: 22070,
39549: 22066,
39550: 22072,
39552: 22123,
39553: 22116,
39554: 22063,
39555: 22124,
39556: 22122,
39557: 22150,
39558: 22144,
39559: 22154,
39560: 22176,
39561: 22164,
39562: 22159,
39563: 22181,
39564: 22190,
39565: 22198,
39566: 22196,
39567: 22210,
39568: 22204,
39569: 22209,
39570: 22211,
39571: 22208,
39572: 22216,
39573: 22222,
39574: 22225,
39575: 22227,
39576: 22231,
39577: 22254,
39578: 22265,
39579: 22272,
39580: 22271,
39581: 22276,
39582: 22281,
39583: 22280,
39584: 22283,
39585: 22285,
39586: 22291,
39587: 22296,
39588: 22294,
39589: 21959,
39590: 22300,
39591: 22310,
39592: 22327,
39593: 22328,
39594: 22350,
39595: 22331,
39596: 22336,
39597: 22351,
39598: 22377,
39599: 22464,
39600: 22408,
39601: 22369,
39602: 22399,
39603: 22409,
39604: 22419,
39605: 22432,
39606: 22451,
39607: 22436,
39608: 22442,
39609: 22448,
39610: 22467,
39611: 22470,
39612: 22484,
39613: 22482,
39614: 22483,
39615: 22538,
39616: 22486,
39617: 22499,
39618: 22539,
39619: 22553,
39620: 22557,
39621: 22642,
39622: 22561,
39623: 22626,
39624: 22603,
39625: 22640,
39626: 27584,
39627: 22610,
39628: 22589,
39629: 22649,
39630: 22661,
39631: 22713,
39632: 22687,
39633: 22699,
39634: 22714,
39635: 22750,
39636: 22715,
39637: 22712,
39638: 22702,
39639: 22725,
39640: 22739,
39641: 22737,
39642: 22743,
39643: 22745,
39644: 22744,
39645: 22757,
39646: 22748,
39647: 22756,
39648: 22751,
39649: 22767,
39650: 22778,
39651: 22777,
39652: 22779,
39653: 22780,
39654: 22781,
39655: 22786,
39656: 22794,
39657: 22800,
39658: 22811,
39659: 26790,
39660: 22821,
39661: 22828,
39662: 22829,
39663: 22834,
39664: 22840,
39665: 22846,
39666: 31442,
39667: 22869,
39668: 22864,
39669: 22862,
39670: 22874,
39671: 22872,
39672: 22882,
39673: 22880,
39674: 22887,
39675: 22892,
39676: 22889,
39744: 22904,
39745: 22913,
39746: 22941,
39747: 20318,
39748: 20395,
39749: 22947,
39750: 22962,
39751: 22982,
39752: 23016,
39753: 23004,
39754: 22925,
39755: 23001,
39756: 23002,
39757: 23077,
39758: 23071,
39759: 23057,
39760: 23068,
39761: 23049,
39762: 23066,
39763: 23104,
39764: 23148,
39765: 23113,
39766: 23093,
39767: 23094,
39768: 23138,
39769: 23146,
39770: 23194,
39771: 23228,
39772: 23230,
39773: 23243,
39774: 23234,
39775: 23229,
39776: 23267,
39777: 23255,
39778: 23270,
39779: 23273,
39780: 23254,
39781: 23290,
39782: 23291,
39783: 23308,
39784: 23307,
39785: 23318,
39786: 23346,
39787: 23248,
39788: 23338,
39789: 23350,
39790: 23358,
39791: 23363,
39792: 23365,
39793: 23360,
39794: 23377,
39795: 23381,
39796: 23386,
39797: 23387,
39798: 23397,
39799: 23401,
39800: 23408,
39801: 23411,
39802: 23413,
39803: 23416,
39804: 25992,
39805: 23418,
39806: 23424,
39808: 23427,
39809: 23462,
39810: 23480,
39811: 23491,
39812: 23495,
39813: 23497,
39814: 23508,
39815: 23504,
39816: 23524,
39817: 23526,
39818: 23522,
39819: 23518,
39820: 23525,
39821: 23531,
39822: 23536,
39823: 23542,
39824: 23539,
39825: 23557,
39826: 23559,
39827: 23560,
39828: 23565,
39829: 23571,
39830: 23584,
39831: 23586,
39832: 23592,
39833: 23608,
39834: 23609,
39835: 23617,
39836: 23622,
39837: 23630,
39838: 23635,
39839: 23632,
39840: 23631,
39841: 23409,
39842: 23660,
39843: 23662,
39844: 20066,
39845: 23670,
39846: 23673,
39847: 23692,
39848: 23697,
39849: 23700,
39850: 22939,
39851: 23723,
39852: 23739,
39853: 23734,
39854: 23740,
39855: 23735,
39856: 23749,
39857: 23742,
39858: 23751,
39859: 23769,
39860: 23785,
39861: 23805,
39862: 23802,
39863: 23789,
39864: 23948,
39865: 23786,
39866: 23819,
39867: 23829,
39868: 23831,
39869: 23900,
39870: 23839,
39871: 23835,
39872: 23825,
39873: 23828,
39874: 23842,
39875: 23834,
39876: 23833,
39877: 23832,
39878: 23884,
39879: 23890,
39880: 23886,
39881: 23883,
39882: 23916,
39883: 23923,
39884: 23926,
39885: 23943,
39886: 23940,
39887: 23938,
39888: 23970,
39889: 23965,
39890: 23980,
39891: 23982,
39892: 23997,
39893: 23952,
39894: 23991,
39895: 23996,
39896: 24009,
39897: 24013,
39898: 24019,
39899: 24018,
39900: 24022,
39901: 24027,
39902: 24043,
39903: 24050,
39904: 24053,
39905: 24075,
39906: 24090,
39907: 24089,
39908: 24081,
39909: 24091,
39910: 24118,
39911: 24119,
39912: 24132,
39913: 24131,
39914: 24128,
39915: 24142,
39916: 24151,
39917: 24148,
39918: 24159,
39919: 24162,
39920: 24164,
39921: 24135,
39922: 24181,
39923: 24182,
39924: 24186,
39925: 40636,
39926: 24191,
39927: 24224,
39928: 24257,
39929: 24258,
39930: 24264,
39931: 24272,
39932: 24271,
40000: 24278,
40001: 24291,
40002: 24285,
40003: 24282,
40004: 24283,
40005: 24290,
40006: 24289,
40007: 24296,
40008: 24297,
40009: 24300,
40010: 24305,
40011: 24307,
40012: 24304,
40013: 24308,
40014: 24312,
40015: 24318,
40016: 24323,
40017: 24329,
40018: 24413,
40019: 24412,
40020: 24331,
40021: 24337,
40022: 24342,
40023: 24361,
40024: 24365,
40025: 24376,
40026: 24385,
40027: 24392,
40028: 24396,
40029: 24398,
40030: 24367,
40031: 24401,
40032: 24406,
40033: 24407,
40034: 24409,
40035: 24417,
40036: 24429,
40037: 24435,
40038: 24439,
40039: 24451,
40040: 24450,
40041: 24447,
40042: 24458,
40043: 24456,
40044: 24465,
40045: 24455,
40046: 24478,
40047: 24473,
40048: 24472,
40049: 24480,
40050: 24488,
40051: 24493,
40052: 24508,
40053: 24534,
40054: 24571,
40055: 24548,
40056: 24568,
40057: 24561,
40058: 24541,
40059: 24755,
40060: 24575,
40061: 24609,
40062: 24672,
40064: 24601,
40065: 24592,
40066: 24617,
40067: 24590,
40068: 24625,
40069: 24603,
40070: 24597,
40071: 24619,
40072: 24614,
40073: 24591,
40074: 24634,
40075: 24666,
40076: 24641,
40077: 24682,
40078: 24695,
40079: 24671,
40080: 24650,
40081: 24646,
40082: 24653,
40083: 24675,
40084: 24643,
40085: 24676,
40086: 24642,
40087: 24684,
40088: 24683,
40089: 24665,
40090: 24705,
40091: 24717,
40092: 24807,
40093: 24707,
40094: 24730,
40095: 24708,
40096: 24731,
40097: 24726,
40098: 24727,
40099: 24722,
40100: 24743,
40101: 24715,
40102: 24801,
40103: 24760,
40104: 24800,
40105: 24787,
40106: 24756,
40107: 24560,
40108: 24765,
40109: 24774,
40110: 24757,
40111: 24792,
40112: 24909,
40113: 24853,
40114: 24838,
40115: 24822,
40116: 24823,
40117: 24832,
40118: 24820,
40119: 24826,
40120: 24835,
40121: 24865,
40122: 24827,
40123: 24817,
40124: 24845,
40125: 24846,
40126: 24903,
40127: 24894,
40128: 24872,
40129: 24871,
40130: 24906,
40131: 24895,
40132: 24892,
40133: 24876,
40134: 24884,
40135: 24893,
40136: 24898,
40137: 24900,
40138: 24947,
40139: 24951,
40140: 24920,
40141: 24921,
40142: 24922,
40143: 24939,
40144: 24948,
40145: 24943,
40146: 24933,
40147: 24945,
40148: 24927,
40149: 24925,
40150: 24915,
40151: 24949,
40152: 24985,
40153: 24982,
40154: 24967,
40155: 25004,
40156: 24980,
40157: 24986,
40158: 24970,
40159: 24977,
40160: 25003,
40161: 25006,
40162: 25036,
40163: 25034,
40164: 25033,
40165: 25079,
40166: 25032,
40167: 25027,
40168: 25030,
40169: 25018,
40170: 25035,
40171: 32633,
40172: 25037,
40173: 25062,
40174: 25059,
40175: 25078,
40176: 25082,
40177: 25076,
40178: 25087,
40179: 25085,
40180: 25084,
40181: 25086,
40182: 25088,
40183: 25096,
40184: 25097,
40185: 25101,
40186: 25100,
40187: 25108,
40188: 25115,
40256: 25118,
40257: 25121,
40258: 25130,
40259: 25134,
40260: 25136,
40261: 25138,
40262: 25139,
40263: 25153,
40264: 25166,
40265: 25182,
40266: 25187,
40267: 25179,
40268: 25184,
40269: 25192,
40270: 25212,
40271: 25218,
40272: 25225,
40273: 25214,
40274: 25234,
40275: 25235,
40276: 25238,
40277: 25300,
40278: 25219,
40279: 25236,
40280: 25303,
40281: 25297,
40282: 25275,
40283: 25295,
40284: 25343,
40285: 25286,
40286: 25812,
40287: 25288,
40288: 25308,
40289: 25292,
40290: 25290,
40291: 25282,
40292: 25287,
40293: 25243,
40294: 25289,
40295: 25356,
40296: 25326,
40297: 25329,
40298: 25383,
40299: 25346,
40300: 25352,
40301: 25327,
40302: 25333,
40303: 25424,
40304: 25406,
40305: 25421,
40306: 25628,
40307: 25423,
40308: 25494,
40309: 25486,
40310: 25472,
40311: 25515,
40312: 25462,
40313: 25507,
40314: 25487,
40315: 25481,
40316: 25503,
40317: 25525,
40318: 25451,
40320: 25449,
40321: 25534,
40322: 25577,
40323: 25536,
40324: 25542,
40325: 25571,
40326: 25545,
40327: 25554,
40328: 25590,
40329: 25540,
40330: 25622,
40331: 25652,
40332: 25606,
40333: 25619,
40334: 25638,
40335: 25654,
40336: 25885,
40337: 25623,
40338: 25640,
40339: 25615,
40340: 25703,
40341: 25711,
40342: 25718,
40343: 25678,
40344: 25898,
40345: 25749,
40346: 25747,
40347: 25765,
40348: 25769,
40349: 25736,
40350: 25788,
40351: 25818,
40352: 25810,
40353: 25797,
40354: 25799,
40355: 25787,
40356: 25816,
40357: 25794,
40358: 25841,
40359: 25831,
40360: 33289,
40361: 25824,
40362: 25825,
40363: 25260,
40364: 25827,
40365: 25839,
40366: 25900,
40367: 25846,
40368: 25844,
40369: 25842,
40370: 25850,
40371: 25856,
40372: 25853,
40373: 25880,
40374: 25884,
40375: 25861,
40376: 25892,
40377: 25891,
40378: 25899,
40379: 25908,
40380: 25909,
40381: 25911,
40382: 25910,
40383: 25912,
40384: 30027,
40385: 25928,
40386: 25942,
40387: 25941,
40388: 25933,
40389: 25944,
40390: 25950,
40391: 25949,
40392: 25970,
40393: 25976,
40394: 25986,
40395: 25987,
40396: 35722,
40397: 26011,
40398: 26015,
40399: 26027,
40400: 26039,
40401: 26051,
40402: 26054,
40403: 26049,
40404: 26052,
40405: 26060,
40406: 26066,
40407: 26075,
40408: 26073,
40409: 26080,
40410: 26081,
40411: 26097,
40412: 26482,
40413: 26122,
40414: 26115,
40415: 26107,
40416: 26483,
40417: 26165,
40418: 26166,
40419: 26164,
40420: 26140,
40421: 26191,
40422: 26180,
40423: 26185,
40424: 26177,
40425: 26206,
40426: 26205,
40427: 26212,
40428: 26215,
40429: 26216,
40430: 26207,
40431: 26210,
40432: 26224,
40433: 26243,
40434: 26248,
40435: 26254,
40436: 26249,
40437: 26244,
40438: 26264,
40439: 26269,
40440: 26305,
40441: 26297,
40442: 26313,
40443: 26302,
40444: 26300,
40512: 26308,
40513: 26296,
40514: 26326,
40515: 26330,
40516: 26336,
40517: 26175,
40518: 26342,
40519: 26345,
40520: 26352,
40521: 26357,
40522: 26359,
40523: 26383,
40524: 26390,
40525: 26398,
40526: 26406,
40527: 26407,
40528: 38712,
40529: 26414,
40530: 26431,
40531: 26422,
40532: 26433,
40533: 26424,
40534: 26423,
40535: 26438,
40536: 26462,
40537: 26464,
40538: 26457,
40539: 26467,
40540: 26468,
40541: 26505,
40542: 26480,
40543: 26537,
40544: 26492,
40545: 26474,
40546: 26508,
40547: 26507,
40548: 26534,
40549: 26529,
40550: 26501,
40551: 26551,
40552: 26607,
40553: 26548,
40554: 26604,
40555: 26547,
40556: 26601,
40557: 26552,
40558: 26596,
40559: 26590,
40560: 26589,
40561: 26594,
40562: 26606,
40563: 26553,
40564: 26574,
40565: 26566,
40566: 26599,
40567: 27292,
40568: 26654,
40569: 26694,
40570: 26665,
40571: 26688,
40572: 26701,
40573: 26674,
40574: 26702,
40576: 26803,
40577: 26667,
40578: 26713,
40579: 26723,
40580: 26743,
40581: 26751,
40582: 26783,
40583: 26767,
40584: 26797,
40585: 26772,
40586: 26781,
40587: 26779,
40588: 26755,
40589: 27310,
40590: 26809,
40591: 26740,
40592: 26805,
40593: 26784,
40594: 26810,
40595: 26895,
40596: 26765,
40597: 26750,
40598: 26881,
40599: 26826,
40600: 26888,
40601: 26840,
40602: 26914,
40603: 26918,
40604: 26849,
40605: 26892,
40606: 26829,
40607: 26836,
40608: 26855,
40609: 26837,
40610: 26934,
40611: 26898,
40612: 26884,
40613: 26839,
40614: 26851,
40615: 26917,
40616: 26873,
40617: 26848,
40618: 26863,
40619: 26920,
40620: 26922,
40621: 26906,
40622: 26915,
40623: 26913,
40624: 26822,
40625: 27001,
40626: 26999,
40627: 26972,
40628: 27000,
40629: 26987,
40630: 26964,
40631: 27006,
40632: 26990,
40633: 26937,
40634: 26996,
40635: 26941,
40636: 26969,
40637: 26928,
40638: 26977,
40639: 26974,
40640: 26973,
40641: 27009,
40642: 26986,
40643: 27058,
40644: 27054,
40645: 27088,
40646: 27071,
40647: 27073,
40648: 27091,
40649: 27070,
40650: 27086,
40651: 23528,
40652: 27082,
40653: 27101,
40654: 27067,
40655: 27075,
40656: 27047,
40657: 27182,
40658: 27025,
40659: 27040,
40660: 27036,
40661: 27029,
40662: 27060,
40663: 27102,
40664: 27112,
40665: 27138,
40666: 27163,
40667: 27135,
40668: 27402,
40669: 27129,
40670: 27122,
40671: 27111,
40672: 27141,
40673: 27057,
40674: 27166,
40675: 27117,
40676: 27156,
40677: 27115,
40678: 27146,
40679: 27154,
40680: 27329,
40681: 27171,
40682: 27155,
40683: 27204,
40684: 27148,
40685: 27250,
40686: 27190,
40687: 27256,
40688: 27207,
40689: 27234,
40690: 27225,
40691: 27238,
40692: 27208,
40693: 27192,
40694: 27170,
40695: 27280,
40696: 27277,
40697: 27296,
40698: 27268,
40699: 27298,
40700: 27299,
40768: 27287,
40769: 34327,
40770: 27323,
40771: 27331,
40772: 27330,
40773: 27320,
40774: 27315,
40775: 27308,
40776: 27358,
40777: 27345,
40778: 27359,
40779: 27306,
40780: 27354,
40781: 27370,
40782: 27387,
40783: 27397,
40784: 34326,
40785: 27386,
40786: 27410,
40787: 27414,
40788: 39729,
40789: 27423,
40790: 27448,
40791: 27447,
40792: 30428,
40793: 27449,
40794: 39150,
40795: 27463,
40796: 27459,
40797: 27465,
40798: 27472,
40799: 27481,
40800: 27476,
40801: 27483,
40802: 27487,
40803: 27489,
40804: 27512,
40805: 27513,
40806: 27519,
40807: 27520,
40808: 27524,
40809: 27523,
40810: 27533,
40811: 27544,
40812: 27541,
40813: 27550,
40814: 27556,
40815: 27562,
40816: 27563,
40817: 27567,
40818: 27570,
40819: 27569,
40820: 27571,
40821: 27575,
40822: 27580,
40823: 27590,
40824: 27595,
40825: 27603,
40826: 27615,
40827: 27628,
40828: 27627,
40829: 27635,
40830: 27631,
40832: 40638,
40833: 27656,
40834: 27667,
40835: 27668,
40836: 27675,
40837: 27684,
40838: 27683,
40839: 27742,
40840: 27733,
40841: 27746,
40842: 27754,
40843: 27778,
40844: 27789,
40845: 27802,
40846: 27777,
40847: 27803,
40848: 27774,
40849: 27752,
40850: 27763,
40851: 27794,
40852: 27792,
40853: 27844,
40854: 27889,
40855: 27859,
40856: 27837,
40857: 27863,
40858: 27845,
40859: 27869,
40860: 27822,
40861: 27825,
40862: 27838,
40863: 27834,
40864: 27867,
40865: 27887,
40866: 27865,
40867: 27882,
40868: 27935,
40869: 34893,
40870: 27958,
40871: 27947,
40872: 27965,
40873: 27960,
40874: 27929,
40875: 27957,
40876: 27955,
40877: 27922,
40878: 27916,
40879: 28003,
40880: 28051,
40881: 28004,
40882: 27994,
40883: 28025,
40884: 27993,
40885: 28046,
40886: 28053,
40887: 28644,
40888: 28037,
40889: 28153,
40890: 28181,
40891: 28170,
40892: 28085,
40893: 28103,
40894: 28134,
40895: 28088,
40896: 28102,
40897: 28140,
40898: 28126,
40899: 28108,
40900: 28136,
40901: 28114,
40902: 28101,
40903: 28154,
40904: 28121,
40905: 28132,
40906: 28117,
40907: 28138,
40908: 28142,
40909: 28205,
40910: 28270,
40911: 28206,
40912: 28185,
40913: 28274,
40914: 28255,
40915: 28222,
40916: 28195,
40917: 28267,
40918: 28203,
40919: 28278,
40920: 28237,
40921: 28191,
40922: 28227,
40923: 28218,
40924: 28238,
40925: 28196,
40926: 28415,
40927: 28189,
40928: 28216,
40929: 28290,
40930: 28330,
40931: 28312,
40932: 28361,
40933: 28343,
40934: 28371,
40935: 28349,
40936: 28335,
40937: 28356,
40938: 28338,
40939: 28372,
40940: 28373,
40941: 28303,
40942: 28325,
40943: 28354,
40944: 28319,
40945: 28481,
40946: 28433,
40947: 28748,
40948: 28396,
40949: 28408,
40950: 28414,
40951: 28479,
40952: 28402,
40953: 28465,
40954: 28399,
40955: 28466,
40956: 28364,
57408: 28478,
57409: 28435,
57410: 28407,
57411: 28550,
57412: 28538,
57413: 28536,
57414: 28545,
57415: 28544,
57416: 28527,
57417: 28507,
57418: 28659,
57419: 28525,
57420: 28546,
57421: 28540,
57422: 28504,
57423: 28558,
57424: 28561,
57425: 28610,
57426: 28518,
57427: 28595,
57428: 28579,
57429: 28577,
57430: 28580,
57431: 28601,
57432: 28614,
57433: 28586,
57434: 28639,
57435: 28629,
57436: 28652,
57437: 28628,
57438: 28632,
57439: 28657,
57440: 28654,
57441: 28635,
57442: 28681,
57443: 28683,
57444: 28666,
57445: 28689,
57446: 28673,
57447: 28687,
57448: 28670,
57449: 28699,
57450: 28698,
57451: 28532,
57452: 28701,
57453: 28696,
57454: 28703,
57455: 28720,
57456: 28734,
57457: 28722,
57458: 28753,
57459: 28771,
57460: 28825,
57461: 28818,
57462: 28847,
57463: 28913,
57464: 28844,
57465: 28856,
57466: 28851,
57467: 28846,
57468: 28895,
57469: 28875,
57470: 28893,
57472: 28889,
57473: 28937,
57474: 28925,
57475: 28956,
57476: 28953,
57477: 29029,
57478: 29013,
57479: 29064,
57480: 29030,
57481: 29026,
57482: 29004,
57483: 29014,
57484: 29036,
57485: 29071,
57486: 29179,
57487: 29060,
57488: 29077,
57489: 29096,
57490: 29100,
57491: 29143,
57492: 29113,
57493: 29118,
57494: 29138,
57495: 29129,
57496: 29140,
57497: 29134,
57498: 29152,
57499: 29164,
57500: 29159,
57501: 29173,
57502: 29180,
57503: 29177,
57504: 29183,
57505: 29197,
57506: 29200,
57507: 29211,
57508: 29224,
57509: 29229,
57510: 29228,
57511: 29232,
57512: 29234,
57513: 29243,
57514: 29244,
57515: 29247,
57516: 29248,
57517: 29254,
57518: 29259,
57519: 29272,
57520: 29300,
57521: 29310,
57522: 29314,
57523: 29313,
57524: 29319,
57525: 29330,
57526: 29334,
57527: 29346,
57528: 29351,
57529: 29369,
57530: 29362,
57531: 29379,
57532: 29382,
57533: 29380,
57534: 29390,
57535: 29394,
57536: 29410,
57537: 29408,
57538: 29409,
57539: 29433,
57540: 29431,
57541: 20495,
57542: 29463,
57543: 29450,
57544: 29468,
57545: 29462,
57546: 29469,
57547: 29492,
57548: 29487,
57549: 29481,
57550: 29477,
57551: 29502,
57552: 29518,
57553: 29519,
57554: 40664,
57555: 29527,
57556: 29546,
57557: 29544,
57558: 29552,
57559: 29560,
57560: 29557,
57561: 29563,
57562: 29562,
57563: 29640,
57564: 29619,
57565: 29646,
57566: 29627,
57567: 29632,
57568: 29669,
57569: 29678,
57570: 29662,
57571: 29858,
57572: 29701,
57573: 29807,
57574: 29733,
57575: 29688,
57576: 29746,
57577: 29754,
57578: 29781,
57579: 29759,
57580: 29791,
57581: 29785,
57582: 29761,
57583: 29788,
57584: 29801,
57585: 29808,
57586: 29795,
57587: 29802,
57588: 29814,
57589: 29822,
57590: 29835,
57591: 29854,
57592: 29863,
57593: 29898,
57594: 29903,
57595: 29908,
57596: 29681,
57664: 29920,
57665: 29923,
57666: 29927,
57667: 29929,
57668: 29934,
57669: 29938,
57670: 29936,
57671: 29937,
57672: 29944,
57673: 29943,
57674: 29956,
57675: 29955,
57676: 29957,
57677: 29964,
57678: 29966,
57679: 29965,
57680: 29973,
57681: 29971,
57682: 29982,
57683: 29990,
57684: 29996,
57685: 30012,
57686: 30020,
57687: 30029,
57688: 30026,
57689: 30025,
57690: 30043,
57691: 30022,
57692: 30042,
57693: 30057,
57694: 30052,
57695: 30055,
57696: 30059,
57697: 30061,
57698: 30072,
57699: 30070,
57700: 30086,
57701: 30087,
57702: 30068,
57703: 30090,
57704: 30089,
57705: 30082,
57706: 30100,
57707: 30106,
57708: 30109,
57709: 30117,
57710: 30115,
57711: 30146,
57712: 30131,
57713: 30147,
57714: 30133,
57715: 30141,
57716: 30136,
57717: 30140,
57718: 30129,
57719: 30157,
57720: 30154,
57721: 30162,
57722: 30169,
57723: 30179,
57724: 30174,
57725: 30206,
57726: 30207,
57728: 30204,
57729: 30209,
57730: 30192,
57731: 30202,
57732: 30194,
57733: 30195,
57734: 30219,
57735: 30221,
57736: 30217,
57737: 30239,
57738: 30247,
57739: 30240,
57740: 30241,
57741: 30242,
57742: 30244,
57743: 30260,
57744: 30256,
57745: 30267,
57746: 30279,
57747: 30280,
57748: 30278,
57749: 30300,
57750: 30296,
57751: 30305,
57752: 30306,
57753: 30312,
57754: 30313,
57755: 30314,
57756: 30311,
57757: 30316,
57758: 30320,
57759: 30322,
57760: 30326,
57761: 30328,
57762: 30332,
57763: 30336,
57764: 30339,
57765: 30344,
57766: 30347,
57767: 30350,
57768: 30358,
57769: 30355,
57770: 30361,
57771: 30362,
57772: 30384,
57773: 30388,
57774: 30392,
57775: 30393,
57776: 30394,
57777: 30402,
57778: 30413,
57779: 30422,
57780: 30418,
57781: 30430,
57782: 30433,
57783: 30437,
57784: 30439,
57785: 30442,
57786: 34351,
57787: 30459,
57788: 30472,
57789: 30471,
57790: 30468,
57791: 30505,
57792: 30500,
57793: 30494,
57794: 30501,
57795: 30502,
57796: 30491,
57797: 30519,
57798: 30520,
57799: 30535,
57800: 30554,
57801: 30568,
57802: 30571,
57803: 30555,
57804: 30565,
57805: 30591,
57806: 30590,
57807: 30585,
57808: 30606,
57809: 30603,
57810: 30609,
57811: 30624,
57812: 30622,
57813: 30640,
57814: 30646,
57815: 30649,
57816: 30655,
57817: 30652,
57818: 30653,
57819: 30651,
57820: 30663,
57821: 30669,
57822: 30679,
57823: 30682,
57824: 30684,
57825: 30691,
57826: 30702,
57827: 30716,
57828: 30732,
57829: 30738,
57830: 31014,
57831: 30752,
57832: 31018,
57833: 30789,
57834: 30862,
57835: 30836,
57836: 30854,
57837: 30844,
57838: 30874,
57839: 30860,
57840: 30883,
57841: 30901,
57842: 30890,
57843: 30895,
57844: 30929,
57845: 30918,
57846: 30923,
57847: 30932,
57848: 30910,
57849: 30908,
57850: 30917,
57851: 30922,
57852: 30956,
57920: 30951,
57921: 30938,
57922: 30973,
57923: 30964,
57924: 30983,
57925: 30994,
57926: 30993,
57927: 31001,
57928: 31020,
57929: 31019,
57930: 31040,
57931: 31072,
57932: 31063,
57933: 31071,
57934: 31066,
57935: 31061,
57936: 31059,
57937: 31098,
57938: 31103,
57939: 31114,
57940: 31133,
57941: 31143,
57942: 40779,
57943: 31146,
57944: 31150,
57945: 31155,
57946: 31161,
57947: 31162,
57948: 31177,
57949: 31189,
57950: 31207,
57951: 31212,
57952: 31201,
57953: 31203,
57954: 31240,
57955: 31245,
57956: 31256,
57957: 31257,
57958: 31264,
57959: 31263,
57960: 31104,
57961: 31281,
57962: 31291,
57963: 31294,
57964: 31287,
57965: 31299,
57966: 31319,
57967: 31305,
57968: 31329,
57969: 31330,
57970: 31337,
57971: 40861,
57972: 31344,
57973: 31353,
57974: 31357,
57975: 31368,
57976: 31383,
57977: 31381,
57978: 31384,
57979: 31382,
57980: 31401,
57981: 31432,
57982: 31408,
57984: 31414,
57985: 31429,
57986: 31428,
57987: 31423,
57988: 36995,
57989: 31431,
57990: 31434,
57991: 31437,
57992: 31439,
57993: 31445,
57994: 31443,
57995: 31449,
57996: 31450,
57997: 31453,
57998: 31457,
57999: 31458,
58000: 31462,
58001: 31469,
58002: 31472,
58003: 31490,
58004: 31503,
58005: 31498,
58006: 31494,
58007: 31539,
58008: 31512,
58009: 31513,
58010: 31518,
58011: 31541,
58012: 31528,
58013: 31542,
58014: 31568,
58015: 31610,
58016: 31492,
58017: 31565,
58018: 31499,
58019: 31564,
58020: 31557,
58021: 31605,
58022: 31589,
58023: 31604,
58024: 31591,
58025: 31600,
58026: 31601,
58027: 31596,
58028: 31598,
58029: 31645,
58030: 31640,
58031: 31647,
58032: 31629,
58033: 31644,
58034: 31642,
58035: 31627,
58036: 31634,
58037: 31631,
58038: 31581,
58039: 31641,
58040: 31691,
58041: 31681,
58042: 31692,
58043: 31695,
58044: 31668,
58045: 31686,
58046: 31709,
58047: 31721,
58048: 31761,
58049: 31764,
58050: 31718,
58051: 31717,
58052: 31840,
58053: 31744,
58054: 31751,
58055: 31763,
58056: 31731,
58057: 31735,
58058: 31767,
58059: 31757,
58060: 31734,
58061: 31779,
58062: 31783,
58063: 31786,
58064: 31775,
58065: 31799,
58066: 31787,
58067: 31805,
58068: 31820,
58069: 31811,
58070: 31828,
58071: 31823,
58072: 31808,
58073: 31824,
58074: 31832,
58075: 31839,
58076: 31844,
58077: 31830,
58078: 31845,
58079: 31852,
58080: 31861,
58081: 31875,
58082: 31888,
58083: 31908,
58084: 31917,
58085: 31906,
58086: 31915,
58087: 31905,
58088: 31912,
58089: 31923,
58090: 31922,
58091: 31921,
58092: 31918,
58093: 31929,
58094: 31933,
58095: 31936,
58096: 31941,
58097: 31938,
58098: 31960,
58099: 31954,
58100: 31964,
58101: 31970,
58102: 39739,
58103: 31983,
58104: 31986,
58105: 31988,
58106: 31990,
58107: 31994,
58108: 32006,
58176: 32002,
58177: 32028,
58178: 32021,
58179: 32010,
58180: 32069,
58181: 32075,
58182: 32046,
58183: 32050,
58184: 32063,
58185: 32053,
58186: 32070,
58187: 32115,
58188: 32086,
58189: 32078,
58190: 32114,
58191: 32104,
58192: 32110,
58193: 32079,
58194: 32099,
58195: 32147,
58196: 32137,
58197: 32091,
58198: 32143,
58199: 32125,
58200: 32155,
58201: 32186,
58202: 32174,
58203: 32163,
58204: 32181,
58205: 32199,
58206: 32189,
58207: 32171,
58208: 32317,
58209: 32162,
58210: 32175,
58211: 32220,
58212: 32184,
58213: 32159,
58214: 32176,
58215: 32216,
58216: 32221,
58217: 32228,
58218: 32222,
58219: 32251,
58220: 32242,
58221: 32225,
58222: 32261,
58223: 32266,
58224: 32291,
58225: 32289,
58226: 32274,
58227: 32305,
58228: 32287,
58229: 32265,
58230: 32267,
58231: 32290,
58232: 32326,
58233: 32358,
58234: 32315,
58235: 32309,
58236: 32313,
58237: 32323,
58238: 32311,
58240: 32306,
58241: 32314,
58242: 32359,
58243: 32349,
58244: 32342,
58245: 32350,
58246: 32345,
58247: 32346,
58248: 32377,
58249: 32362,
58250: 32361,
58251: 32380,
58252: 32379,
58253: 32387,
58254: 32213,
58255: 32381,
58256: 36782,
58257: 32383,
58258: 32392,
58259: 32393,
58260: 32396,
58261: 32402,
58262: 32400,
58263: 32403,
58264: 32404,
58265: 32406,
58266: 32398,
58267: 32411,
58268: 32412,
58269: 32568,
58270: 32570,
58271: 32581,
58272: 32588,
58273: 32589,
58274: 32590,
58275: 32592,
58276: 32593,
58277: 32597,
58278: 32596,
58279: 32600,
58280: 32607,
58281: 32608,
58282: 32616,
58283: 32617,
58284: 32615,
58285: 32632,
58286: 32642,
58287: 32646,
58288: 32643,
58289: 32648,
58290: 32647,
58291: 32652,
58292: 32660,
58293: 32670,
58294: 32669,
58295: 32666,
58296: 32675,
58297: 32687,
58298: 32690,
58299: 32697,
58300: 32686,
58301: 32694,
58302: 32696,
58303: 35697,
58304: 32709,
58305: 32710,
58306: 32714,
58307: 32725,
58308: 32724,
58309: 32737,
58310: 32742,
58311: 32745,
58312: 32755,
58313: 32761,
58314: 39132,
58315: 32774,
58316: 32772,
58317: 32779,
58318: 32786,
58319: 32792,
58320: 32793,
58321: 32796,
58322: 32801,
58323: 32808,
58324: 32831,
58325: 32827,
58326: 32842,
58327: 32838,
58328: 32850,
58329: 32856,
58330: 32858,
58331: 32863,
58332: 32866,
58333: 32872,
58334: 32883,
58335: 32882,
58336: 32880,
58337: 32886,
58338: 32889,
58339: 32893,
58340: 32895,
58341: 32900,
58342: 32902,
58343: 32901,
58344: 32923,
58345: 32915,
58346: 32922,
58347: 32941,
58348: 20880,
58349: 32940,
58350: 32987,
58351: 32997,
58352: 32985,
58353: 32989,
58354: 32964,
58355: 32986,
58356: 32982,
58357: 33033,
58358: 33007,
58359: 33009,
58360: 33051,
58361: 33065,
58362: 33059,
58363: 33071,
58364: 33099,
58432: 38539,
58433: 33094,
58434: 33086,
58435: 33107,
58436: 33105,
58437: 33020,
58438: 33137,
58439: 33134,
58440: 33125,
58441: 33126,
58442: 33140,
58443: 33155,
58444: 33160,
58445: 33162,
58446: 33152,
58447: 33154,
58448: 33184,
58449: 33173,
58450: 33188,
58451: 33187,
58452: 33119,
58453: 33171,
58454: 33193,
58455: 33200,
58456: 33205,
58457: 33214,
58458: 33208,
58459: 33213,
58460: 33216,
58461: 33218,
58462: 33210,
58463: 33225,
58464: 33229,
58465: 33233,
58466: 33241,
58467: 33240,
58468: 33224,
58469: 33242,
58470: 33247,
58471: 33248,
58472: 33255,
58473: 33274,
58474: 33275,
58475: 33278,
58476: 33281,
58477: 33282,
58478: 33285,
58479: 33287,
58480: 33290,
58481: 33293,
58482: 33296,
58483: 33302,
58484: 33321,
58485: 33323,
58486: 33336,
58487: 33331,
58488: 33344,
58489: 33369,
58490: 33368,
58491: 33373,
58492: 33370,
58493: 33375,
58494: 33380,
58496: 33378,
58497: 33384,
58498: 33386,
58499: 33387,
58500: 33326,
58501: 33393,
58502: 33399,
58503: 33400,
58504: 33406,
58505: 33421,
58506: 33426,
58507: 33451,
58508: 33439,
58509: 33467,
58510: 33452,
58511: 33505,
58512: 33507,
58513: 33503,
58514: 33490,
58515: 33524,
58516: 33523,
58517: 33530,
58518: 33683,
58519: 33539,
58520: 33531,
58521: 33529,
58522: 33502,
58523: 33542,
58524: 33500,
58525: 33545,
58526: 33497,
58527: 33589,
58528: 33588,
58529: 33558,
58530: 33586,
58531: 33585,
58532: 33600,
58533: 33593,
58534: 33616,
58535: 33605,
58536: 33583,
58537: 33579,
58538: 33559,
58539: 33560,
58540: 33669,
58541: 33690,
58542: 33706,
58543: 33695,
58544: 33698,
58545: 33686,
58546: 33571,
58547: 33678,
58548: 33671,
58549: 33674,
58550: 33660,
58551: 33717,
58552: 33651,
58553: 33653,
58554: 33696,
58555: 33673,
58556: 33704,
58557: 33780,
58558: 33811,
58559: 33771,
58560: 33742,
58561: 33789,
58562: 33795,
58563: 33752,
58564: 33803,
58565: 33729,
58566: 33783,
58567: 33799,
58568: 33760,
58569: 33778,
58570: 33805,
58571: 33826,
58572: 33824,
58573: 33725,
58574: 33848,
58575: 34054,
58576: 33787,
58577: 33901,
58578: 33834,
58579: 33852,
58580: 34138,
58581: 33924,
58582: 33911,
58583: 33899,
58584: 33965,
58585: 33902,
58586: 33922,
58587: 33897,
58588: 33862,
58589: 33836,
58590: 33903,
58591: 33913,
58592: 33845,
58593: 33994,
58594: 33890,
58595: 33977,
58596: 33983,
58597: 33951,
58598: 34009,
58599: 33997,
58600: 33979,
58601: 34010,
58602: 34000,
58603: 33985,
58604: 33990,
58605: 34006,
58606: 33953,
58607: 34081,
58608: 34047,
58609: 34036,
58610: 34071,
58611: 34072,
58612: 34092,
58613: 34079,
58614: 34069,
58615: 34068,
58616: 34044,
58617: 34112,
58618: 34147,
58619: 34136,
58620: 34120,
58688: 34113,
58689: 34306,
58690: 34123,
58691: 34133,
58692: 34176,
58693: 34212,
58694: 34184,
58695: 34193,
58696: 34186,
58697: 34216,
58698: 34157,
58699: 34196,
58700: 34203,
58701: 34282,
58702: 34183,
58703: 34204,
58704: 34167,
58705: 34174,
58706: 34192,
58707: 34249,
58708: 34234,
58709: 34255,
58710: 34233,
58711: 34256,
58712: 34261,
58713: 34269,
58714: 34277,
58715: 34268,
58716: 34297,
58717: 34314,
58718: 34323,
58719: 34315,
58720: 34302,
58721: 34298,
58722: 34310,
58723: 34338,
58724: 34330,
58725: 34352,
58726: 34367,
58727: 34381,
58728: 20053,
58729: 34388,
58730: 34399,
58731: 34407,
58732: 34417,
58733: 34451,
58734: 34467,
58735: 34473,
58736: 34474,
58737: 34443,
58738: 34444,
58739: 34486,
58740: 34479,
58741: 34500,
58742: 34502,
58743: 34480,
58744: 34505,
58745: 34851,
58746: 34475,
58747: 34516,
58748: 34526,
58749: 34537,
58750: 34540,
58752: 34527,
58753: 34523,
58754: 34543,
58755: 34578,
58756: 34566,
58757: 34568,
58758: 34560,
58759: 34563,
58760: 34555,
58761: 34577,
58762: 34569,
58763: 34573,
58764: 34553,
58765: 34570,
58766: 34612,
58767: 34623,
58768: 34615,
58769: 34619,
58770: 34597,
58771: 34601,
58772: 34586,
58773: 34656,
58774: 34655,
58775: 34680,
58776: 34636,
58777: 34638,
58778: 34676,
58779: 34647,
58780: 34664,
58781: 34670,
58782: 34649,
58783: 34643,
58784: 34659,
58785: 34666,
58786: 34821,
58787: 34722,
58788: 34719,
58789: 34690,
58790: 34735,
58791: 34763,
58792: 34749,
58793: 34752,
58794: 34768,
58795: 38614,
58796: 34731,
58797: 34756,
58798: 34739,
58799: 34759,
58800: 34758,
58801: 34747,
58802: 34799,
58803: 34802,
58804: 34784,
58805: 34831,
58806: 34829,
58807: 34814,
58808: 34806,
58809: 34807,
58810: 34830,
58811: 34770,
58812: 34833,
58813: 34838,
58814: 34837,
58815: 34850,
58816: 34849,
58817: 34865,
58818: 34870,
58819: 34873,
58820: 34855,
58821: 34875,
58822: 34884,
58823: 34882,
58824: 34898,
58825: 34905,
58826: 34910,
58827: 34914,
58828: 34923,
58829: 34945,
58830: 34942,
58831: 34974,
58832: 34933,
58833: 34941,
58834: 34997,
58835: 34930,
58836: 34946,
58837: 34967,
58838: 34962,
58839: 34990,
58840: 34969,
58841: 34978,
58842: 34957,
58843: 34980,
58844: 34992,
58845: 35007,
58846: 34993,
58847: 35011,
58848: 35012,
58849: 35028,
58850: 35032,
58851: 35033,
58852: 35037,
58853: 35065,
58854: 35074,
58855: 35068,
58856: 35060,
58857: 35048,
58858: 35058,
58859: 35076,
58860: 35084,
58861: 35082,
58862: 35091,
58863: 35139,
58864: 35102,
58865: 35109,
58866: 35114,
58867: 35115,
58868: 35137,
58869: 35140,
58870: 35131,
58871: 35126,
58872: 35128,
58873: 35148,
58874: 35101,
58875: 35168,
58876: 35166,
58944: 35174,
58945: 35172,
58946: 35181,
58947: 35178,
58948: 35183,
58949: 35188,
58950: 35191,
58951: 35198,
58952: 35203,
58953: 35208,
58954: 35210,
58955: 35219,
58956: 35224,
58957: 35233,
58958: 35241,
58959: 35238,
58960: 35244,
58961: 35247,
58962: 35250,
58963: 35258,
58964: 35261,
58965: 35263,
58966: 35264,
58967: 35290,
58968: 35292,
58969: 35293,
58970: 35303,
58971: 35316,
58972: 35320,
58973: 35331,
58974: 35350,
58975: 35344,
58976: 35340,
58977: 35355,
58978: 35357,
58979: 35365,
58980: 35382,
58981: 35393,
58982: 35419,
58983: 35410,
58984: 35398,
58985: 35400,
58986: 35452,
58987: 35437,
58988: 35436,
58989: 35426,
58990: 35461,
58991: 35458,
58992: 35460,
58993: 35496,
58994: 35489,
58995: 35473,
58996: 35493,
58997: 35494,
58998: 35482,
58999: 35491,
59000: 35524,
59001: 35533,
59002: 35522,
59003: 35546,
59004: 35563,
59005: 35571,
59006: 35559,
59008: 35556,
59009: 35569,
59010: 35604,
59011: 35552,
59012: 35554,
59013: 35575,
59014: 35550,
59015: 35547,
59016: 35596,
59017: 35591,
59018: 35610,
59019: 35553,
59020: 35606,
59021: 35600,
59022: 35607,
59023: 35616,
59024: 35635,
59025: 38827,
59026: 35622,
59027: 35627,
59028: 35646,
59029: 35624,
59030: 35649,
59031: 35660,
59032: 35663,
59033: 35662,
59034: 35657,
59035: 35670,
59036: 35675,
59037: 35674,
59038: 35691,
59039: 35679,
59040: 35692,
59041: 35695,
59042: 35700,
59043: 35709,
59044: 35712,
59045: 35724,
59046: 35726,
59047: 35730,
59048: 35731,
59049: 35734,
59050: 35737,
59051: 35738,
59052: 35898,
59053: 35905,
59054: 35903,
59055: 35912,
59056: 35916,
59057: 35918,
59058: 35920,
59059: 35925,
59060: 35938,
59061: 35948,
59062: 35960,
59063: 35962,
59064: 35970,
59065: 35977,
59066: 35973,
59067: 35978,
59068: 35981,
59069: 35982,
59070: 35988,
59071: 35964,
59072: 35992,
59073: 25117,
59074: 36013,
59075: 36010,
59076: 36029,
59077: 36018,
59078: 36019,
59079: 36014,
59080: 36022,
59081: 36040,
59082: 36033,
59083: 36068,
59084: 36067,
59085: 36058,
59086: 36093,
59087: 36090,
59088: 36091,
59089: 36100,
59090: 36101,
59091: 36106,
59092: 36103,
59093: 36111,
59094: 36109,
59095: 36112,
59096: 40782,
59097: 36115,
59098: 36045,
59099: 36116,
59100: 36118,
59101: 36199,
59102: 36205,
59103: 36209,
59104: 36211,
59105: 36225,
59106: 36249,
59107: 36290,
59108: 36286,
59109: 36282,
59110: 36303,
59111: 36314,
59112: 36310,
59113: 36300,
59114: 36315,
59115: 36299,
59116: 36330,
59117: 36331,
59118: 36319,
59119: 36323,
59120: 36348,
59121: 36360,
59122: 36361,
59123: 36351,
59124: 36381,
59125: 36382,
59126: 36368,
59127: 36383,
59128: 36418,
59129: 36405,
59130: 36400,
59131: 36404,
59132: 36426,
59200: 36423,
59201: 36425,
59202: 36428,
59203: 36432,
59204: 36424,
59205: 36441,
59206: 36452,
59207: 36448,
59208: 36394,
59209: 36451,
59210: 36437,
59211: 36470,
59212: 36466,
59213: 36476,
59214: 36481,
59215: 36487,
59216: 36485,
59217: 36484,
59218: 36491,
59219: 36490,
59220: 36499,
59221: 36497,
59222: 36500,
59223: 36505,
59224: 36522,
59225: 36513,
59226: 36524,
59227: 36528,
59228: 36550,
59229: 36529,
59230: 36542,
59231: 36549,
59232: 36552,
59233: 36555,
59234: 36571,
59235: 36579,
59236: 36604,
59237: 36603,
59238: 36587,
59239: 36606,
59240: 36618,
59241: 36613,
59242: 36629,
59243: 36626,
59244: 36633,
59245: 36627,
59246: 36636,
59247: 36639,
59248: 36635,
59249: 36620,
59250: 36646,
59251: 36659,
59252: 36667,
59253: 36665,
59254: 36677,
59255: 36674,
59256: 36670,
59257: 36684,
59258: 36681,
59259: 36678,
59260: 36686,
59261: 36695,
59262: 36700,
59264: 36706,
59265: 36707,
59266: 36708,
59267: 36764,
59268: 36767,
59269: 36771,
59270: 36781,
59271: 36783,
59272: 36791,
59273: 36826,
59274: 36837,
59275: 36834,
59276: 36842,
59277: 36847,
59278: 36999,
59279: 36852,
59280: 36869,
59281: 36857,
59282: 36858,
59283: 36881,
59284: 36885,
59285: 36897,
59286: 36877,
59287: 36894,
59288: 36886,
59289: 36875,
59290: 36903,
59291: 36918,
59292: 36917,
59293: 36921,
59294: 36856,
59295: 36943,
59296: 36944,
59297: 36945,
59298: 36946,
59299: 36878,
59300: 36937,
59301: 36926,
59302: 36950,
59303: 36952,
59304: 36958,
59305: 36968,
59306: 36975,
59307: 36982,
59308: 38568,
59309: 36978,
59310: 36994,
59311: 36989,
59312: 36993,
59313: 36992,
59314: 37002,
59315: 37001,
59316: 37007,
59317: 37032,
59318: 37039,
59319: 37041,
59320: 37045,
59321: 37090,
59322: 37092,
59323: 25160,
59324: 37083,
59325: 37122,
59326: 37138,
59327: 37145,
59328: 37170,
59329: 37168,
59330: 37194,
59331: 37206,
59332: 37208,
59333: 37219,
59334: 37221,
59335: 37225,
59336: 37235,
59337: 37234,
59338: 37259,
59339: 37257,
59340: 37250,
59341: 37282,
59342: 37291,
59343: 37295,
59344: 37290,
59345: 37301,
59346: 37300,
59347: 37306,
59348: 37312,
59349: 37313,
59350: 37321,
59351: 37323,
59352: 37328,
59353: 37334,
59354: 37343,
59355: 37345,
59356: 37339,
59357: 37372,
59358: 37365,
59359: 37366,
59360: 37406,
59361: 37375,
59362: 37396,
59363: 37420,
59364: 37397,
59365: 37393,
59366: 37470,
59367: 37463,
59368: 37445,
59369: 37449,
59370: 37476,
59371: 37448,
59372: 37525,
59373: 37439,
59374: 37451,
59375: 37456,
59376: 37532,
59377: 37526,
59378: 37523,
59379: 37531,
59380: 37466,
59381: 37583,
59382: 37561,
59383: 37559,
59384: 37609,
59385: 37647,
59386: 37626,
59387: 37700,
59388: 37678,
59456: 37657,
59457: 37666,
59458: 37658,
59459: 37667,
59460: 37690,
59461: 37685,
59462: 37691,
59463: 37724,
59464: 37728,
59465: 37756,
59466: 37742,
59467: 37718,
59468: 37808,
59469: 37804,
59470: 37805,
59471: 37780,
59472: 37817,
59473: 37846,
59474: 37847,
59475: 37864,
59476: 37861,
59477: 37848,
59478: 37827,
59479: 37853,
59480: 37840,
59481: 37832,
59482: 37860,
59483: 37914,
59484: 37908,
59485: 37907,
59486: 37891,
59487: 37895,
59488: 37904,
59489: 37942,
59490: 37931,
59491: 37941,
59492: 37921,
59493: 37946,
59494: 37953,
59495: 37970,
59496: 37956,
59497: 37979,
59498: 37984,
59499: 37986,
59500: 37982,
59501: 37994,
59502: 37417,
59503: 38000,
59504: 38005,
59505: 38007,
59506: 38013,
59507: 37978,
59508: 38012,
59509: 38014,
59510: 38017,
59511: 38015,
59512: 38274,
59513: 38279,
59514: 38282,
59515: 38292,
59516: 38294,
59517: 38296,
59518: 38297,
59520: 38304,
59521: 38312,
59522: 38311,
59523: 38317,
59524: 38332,
59525: 38331,
59526: 38329,
59527: 38334,
59528: 38346,
59529: 28662,
59530: 38339,
59531: 38349,
59532: 38348,
59533: 38357,
59534: 38356,
59535: 38358,
59536: 38364,
59537: 38369,
59538: 38373,
59539: 38370,
59540: 38433,
59541: 38440,
59542: 38446,
59543: 38447,
59544: 38466,
59545: 38476,
59546: 38479,
59547: 38475,
59548: 38519,
59549: 38492,
59550: 38494,
59551: 38493,
59552: 38495,
59553: 38502,
59554: 38514,
59555: 38508,
59556: 38541,
59557: 38552,
59558: 38549,
59559: 38551,
59560: 38570,
59561: 38567,
59562: 38577,
59563: 38578,
59564: 38576,
59565: 38580,
59566: 38582,
59567: 38584,
59568: 38585,
59569: 38606,
59570: 38603,
59571: 38601,
59572: 38605,
59573: 35149,
59574: 38620,
59575: 38669,
59576: 38613,
59577: 38649,
59578: 38660,
59579: 38662,
59580: 38664,
59581: 38675,
59582: 38670,
59583: 38673,
59584: 38671,
59585: 38678,
59586: 38681,
59587: 38692,
59588: 38698,
59589: 38704,
59590: 38713,
59591: 38717,
59592: 38718,
59593: 38724,
59594: 38726,
59595: 38728,
59596: 38722,
59597: 38729,
59598: 38748,
59599: 38752,
59600: 38756,
59601: 38758,
59602: 38760,
59603: 21202,
59604: 38763,
59605: 38769,
59606: 38777,
59607: 38789,
59608: 38780,
59609: 38785,
59610: 38778,
59611: 38790,
59612: 38795,
59613: 38799,
59614: 38800,
59615: 38812,
59616: 38824,
59617: 38822,
59618: 38819,
59619: 38835,
59620: 38836,
59621: 38851,
59622: 38854,
59623: 38856,
59624: 38859,
59625: 38876,
59626: 38893,
59627: 40783,
59628: 38898,
59629: 31455,
59630: 38902,
59631: 38901,
59632: 38927,
59633: 38924,
59634: 38968,
59635: 38948,
59636: 38945,
59637: 38967,
59638: 38973,
59639: 38982,
59640: 38991,
59641: 38987,
59642: 39019,
59643: 39023,
59644: 39024,
59712: 39025,
59713: 39028,
59714: 39027,
59715: 39082,
59716: 39087,
59717: 39089,
59718: 39094,
59719: 39108,
59720: 39107,
59721: 39110,
59722: 39145,
59723: 39147,
59724: 39171,
59725: 39177,
59726: 39186,
59727: 39188,
59728: 39192,
59729: 39201,
59730: 39197,
59731: 39198,
59732: 39204,
59733: 39200,
59734: 39212,
59735: 39214,
59736: 39229,
59737: 39230,
59738: 39234,
59739: 39241,
59740: 39237,
59741: 39248,
59742: 39243,
59743: 39249,
59744: 39250,
59745: 39244,
59746: 39253,
59747: 39319,
59748: 39320,
59749: 39333,
59750: 39341,
59751: 39342,
59752: 39356,
59753: 39391,
59754: 39387,
59755: 39389,
59756: 39384,
59757: 39377,
59758: 39405,
59759: 39406,
59760: 39409,
59761: 39410,
59762: 39419,
59763: 39416,
59764: 39425,
59765: 39439,
59766: 39429,
59767: 39394,
59768: 39449,
59769: 39467,
59770: 39479,
59771: 39493,
59772: 39490,
59773: 39488,
59774: 39491,
59776: 39486,
59777: 39509,
59778: 39501,
59779: 39515,
59780: 39511,
59781: 39519,
59782: 39522,
59783: 39525,
59784: 39524,
59785: 39529,
59786: 39531,
59787: 39530,
59788: 39597,
59789: 39600,
59790: 39612,
59791: 39616,
59792: 39631,
59793: 39633,
59794: 39635,
59795: 39636,
59796: 39646,
59797: 39647,
59798: 39650,
59799: 39651,
59800: 39654,
59801: 39663,
59802: 39659,
59803: 39662,
59804: 39668,
59805: 39665,
59806: 39671,
59807: 39675,
59808: 39686,
59809: 39704,
59810: 39706,
59811: 39711,
59812: 39714,
59813: 39715,
59814: 39717,
59815: 39719,
59816: 39720,
59817: 39721,
59818: 39722,
59819: 39726,
59820: 39727,
59821: 39730,
59822: 39748,
59823: 39747,
59824: 39759,
59825: 39757,
59826: 39758,
59827: 39761,
59828: 39768,
59829: 39796,
59830: 39827,
59831: 39811,
59832: 39825,
59833: 39830,
59834: 39831,
59835: 39839,
59836: 39840,
59837: 39848,
59838: 39860,
59839: 39872,
59840: 39882,
59841: 39865,
59842: 39878,
59843: 39887,
59844: 39889,
59845: 39890,
59846: 39907,
59847: 39906,
59848: 39908,
59849: 39892,
59850: 39905,
59851: 39994,
59852: 39922,
59853: 39921,
59854: 39920,
59855: 39957,
59856: 39956,
59857: 39945,
59858: 39955,
59859: 39948,
59860: 39942,
59861: 39944,
59862: 39954,
59863: 39946,
59864: 39940,
59865: 39982,
59866: 39963,
59867: 39973,
59868: 39972,
59869: 39969,
59870: 39984,
59871: 40007,
59872: 39986,
59873: 40006,
59874: 39998,
59875: 40026,
59876: 40032,
59877: 40039,
59878: 40054,
59879: 40056,
59880: 40167,
59881: 40172,
59882: 40176,
59883: 40201,
59884: 40200,
59885: 40171,
59886: 40195,
59887: 40198,
59888: 40234,
59889: 40230,
59890: 40367,
59891: 40227,
59892: 40223,
59893: 40260,
59894: 40213,
59895: 40210,
59896: 40257,
59897: 40255,
59898: 40254,
59899: 40262,
59900: 40264,
59968: 40285,
59969: 40286,
59970: 40292,
59971: 40273,
59972: 40272,
59973: 40281,
59974: 40306,
59975: 40329,
59976: 40327,
59977: 40363,
59978: 40303,
59979: 40314,
59980: 40346,
59981: 40356,
59982: 40361,
59983: 40370,
59984: 40388,
59985: 40385,
59986: 40379,
59987: 40376,
59988: 40378,
59989: 40390,
59990: 40399,
59991: 40386,
59992: 40409,
59993: 40403,
59994: 40440,
59995: 40422,
59996: 40429,
59997: 40431,
59998: 40445,
59999: 40474,
60000: 40475,
60001: 40478,
60002: 40565,
60003: 40569,
60004: 40573,
60005: 40577,
60006: 40584,
60007: 40587,
60008: 40588,
60009: 40594,
60010: 40597,
60011: 40593,
60012: 40605,
60013: 40613,
60014: 40617,
60015: 40632,
60016: 40618,
60017: 40621,
60018: 38753,
60019: 40652,
60020: 40654,
60021: 40655,
60022: 40656,
60023: 40660,
60024: 40668,
60025: 40670,
60026: 40669,
60027: 40672,
60028: 40677,
60029: 40680,
60030: 40687,
60032: 40692,
60033: 40694,
60034: 40695,
60035: 40697,
60036: 40699,
60037: 40700,
60038: 40701,
60039: 40711,
60040: 40712,
60041: 30391,
60042: 40725,
60043: 40737,
60044: 40748,
60045: 40766,
60046: 40778,
60047: 40786,
60048: 40788,
60049: 40803,
60050: 40799,
60051: 40800,
60052: 40801,
60053: 40806,
60054: 40807,
60055: 40812,
60056: 40810,
60057: 40823,
60058: 40818,
60059: 40822,
60060: 40853,
60061: 40860,
60062: 40864,
60063: 22575,
60064: 27079,
60065: 36953,
60066: 29796,
60067: 20956,
60068: 29081,
60736: 32394,
60737: 35100,
60738: 37704,
60739: 37512,
60740: 34012,
60741: 20425,
60742: 28859,
60743: 26161,
60744: 26824,
60745: 37625,
60746: 26363,
60747: 24389,
60748: 20008,
60749: 20193,
60750: 20220,
60751: 20224,
60752: 20227,
60753: 20281,
60754: 20310,
60755: 20370,
60756: 20362,
60757: 20378,
60758: 20372,
60759: 20429,
60760: 20544,
60761: 20514,
60762: 20479,
60763: 20510,
60764: 20550,
60765: 20592,
60766: 20546,
60767: 20628,
60768: 20724,
60769: 20696,
60770: 20810,
60771: 20836,
60772: 20893,
60773: 20926,
60774: 20972,
60775: 21013,
60776: 21148,
60777: 21158,
60778: 21184,
60779: 21211,
60780: 21248,
60781: 21255,
60782: 21284,
60783: 21362,
60784: 21395,
60785: 21426,
60786: 21469,
60787: 64014,
60788: 21660,
60789: 21642,
60790: 21673,
60791: 21759,
60792: 21894,
60793: 22361,
60794: 22373,
60795: 22444,
60796: 22472,
60797: 22471,
60798: 64015,
60800: 64016,
60801: 22686,
60802: 22706,
60803: 22795,
60804: 22867,
60805: 22875,
60806: 22877,
60807: 22883,
60808: 22948,
60809: 22970,
60810: 23382,
60811: 23488,
60812: 29999,
60813: 23512,
60814: 23532,
60815: 23582,
60816: 23718,
60817: 23738,
60818: 23797,
60819: 23847,
60820: 23891,
60821: 64017,
60822: 23874,
60823: 23917,
60824: 23992,
60825: 23993,
60826: 24016,
60827: 24353,
60828: 24372,
60829: 24423,
60830: 24503,
60831: 24542,
60832: 24669,
60833: 24709,
60834: 24714,
60835: 24798,
60836: 24789,
60837: 24864,
60838: 24818,
60839: 24849,
60840: 24887,
60841: 24880,
60842: 24984,
60843: 25107,
60844: 25254,
60845: 25589,
60846: 25696,
60847: 25757,
60848: 25806,
60849: 25934,
60850: 26112,
60851: 26133,
60852: 26171,
60853: 26121,
60854: 26158,
60855: 26142,
60856: 26148,
60857: 26213,
60858: 26199,
60859: 26201,
60860: 64018,
60861: 26227,
60862: 26265,
60863: 26272,
60864: 26290,
60865: 26303,
60866: 26362,
60867: 26382,
60868: 63785,
60869: 26470,
60870: 26555,
60871: 26706,
60872: 26560,
60873: 26625,
60874: 26692,
60875: 26831,
60876: 64019,
60877: 26984,
60878: 64020,
60879: 27032,
60880: 27106,
60881: 27184,
60882: 27243,
60883: 27206,
60884: 27251,
60885: 27262,
60886: 27362,
60887: 27364,
60888: 27606,
60889: 27711,
60890: 27740,
60891: 27782,
60892: 27759,
60893: 27866,
60894: 27908,
60895: 28039,
60896: 28015,
60897: 28054,
60898: 28076,
60899: 28111,
60900: 28152,
60901: 28146,
60902: 28156,
60903: 28217,
60904: 28252,
60905: 28199,
60906: 28220,
60907: 28351,
60908: 28552,
60909: 28597,
60910: 28661,
60911: 28677,
60912: 28679,
60913: 28712,
60914: 28805,
60915: 28843,
60916: 28943,
60917: 28932,
60918: 29020,
60919: 28998,
60920: 28999,
60921: 64021,
60922: 29121,
60923: 29182,
60924: 29361,
60992: 29374,
60993: 29476,
60994: 64022,
60995: 29559,
60996: 29629,
60997: 29641,
60998: 29654,
60999: 29667,
61000: 29650,
61001: 29703,
61002: 29685,
61003: 29734,
61004: 29738,
61005: 29737,
61006: 29742,
61007: 29794,
61008: 29833,
61009: 29855,
61010: 29953,
61011: 30063,
61012: 30338,
61013: 30364,
61014: 30366,
61015: 30363,
61016: 30374,
61017: 64023,
61018: 30534,
61019: 21167,
61020: 30753,
61021: 30798,
61022: 30820,
61023: 30842,
61024: 31024,
61025: 64024,
61026: 64025,
61027: 64026,
61028: 31124,
61029: 64027,
61030: 31131,
61031: 31441,
61032: 31463,
61033: 64028,
61034: 31467,
61035: 31646,
61036: 64029,
61037: 32072,
61038: 32092,
61039: 32183,
61040: 32160,
61041: 32214,
61042: 32338,
61043: 32583,
61044: 32673,
61045: 64030,
61046: 33537,
61047: 33634,
61048: 33663,
61049: 33735,
61050: 33782,
61051: 33864,
61052: 33972,
61053: 34131,
61054: 34137,
61056: 34155,
61057: 64031,
61058: 34224,
61059: 64032,
61060: 64033,
61061: 34823,
61062: 35061,
61063: 35346,
61064: 35383,
61065: 35449,
61066: 35495,
61067: 35518,
61068: 35551,
61069: 64034,
61070: 35574,
61071: 35667,
61072: 35711,
61073: 36080,
61074: 36084,
61075: 36114,
61076: 36214,
61077: 64035,
61078: 36559,
61079: 64036,
61080: 64037,
61081: 36967,
61082: 37086,
61083: 64038,
61084: 37141,
61085: 37159,
61086: 37338,
61087: 37335,
61088: 37342,
61089: 37357,
61090: 37358,
61091: 37348,
61092: 37349,
61093: 37382,
61094: 37392,
61095: 37386,
61096: 37434,
61097: 37440,
61098: 37436,
61099: 37454,
61100: 37465,
61101: 37457,
61102: 37433,
61103: 37479,
61104: 37543,
61105: 37495,
61106: 37496,
61107: 37607,
61108: 37591,
61109: 37593,
61110: 37584,
61111: 64039,
61112: 37589,
61113: 37600,
61114: 37587,
61115: 37669,
61116: 37665,
61117: 37627,
61118: 64040,
61119: 37662,
61120: 37631,
61121: 37661,
61122: 37634,
61123: 37744,
61124: 37719,
61125: 37796,
61126: 37830,
61127: 37854,
61128: 37880,
61129: 37937,
61130: 37957,
61131: 37960,
61132: 38290,
61133: 63964,
61134: 64041,
61135: 38557,
61136: 38575,
61137: 38707,
61138: 38715,
61139: 38723,
61140: 38733,
61141: 38735,
61142: 38737,
61143: 38741,
61144: 38999,
61145: 39013,
61146: 64042,
61147: 64043,
61148: 39207,
61149: 64044,
61150: 39326,
61151: 39502,
61152: 39641,
61153: 39644,
61154: 39797,
61155: 39794,
61156: 39823,
61157: 39857,
61158: 39867,
61159: 39936,
61160: 40304,
61161: 40299,
61162: 64045,
61163: 40473,
61164: 40657,
61167: 8560,
61168: 8561,
61169: 8562,
61170: 8563,
61171: 8564,
61172: 8565,
61173: 8566,
61174: 8567,
61175: 8568,
61176: 8569,
61177: 65506,
61178: 65508,
61179: 65287,
61180: 65282,
61504: 57344,
61505: 57345,
61506: 57346,
61507: 57347,
61508: 57348,
61509: 57349,
61510: 57350,
61511: 57351,
61512: 57352,
61513: 57353,
61514: 57354,
61515: 57355,
61516: 57356,
61517: 57357,
61518: 57358,
61519: 57359,
61520: 57360,
61521: 57361,
61522: 57362,
61523: 57363,
61524: 57364,
61525: 57365,
61526: 57366,
61527: 57367,
61528: 57368,
61529: 57369,
61530: 57370,
61531: 57371,
61532: 57372,
61533: 57373,
61534: 57374,
61535: 57375,
61536: 57376,
61537: 57377,
61538: 57378,
61539: 57379,
61540: 57380,
61541: 57381,
61542: 57382,
61543: 57383,
61544: 57384,
61545: 57385,
61546: 57386,
61547: 57387,
61548: 57388,
61549: 57389,
61550: 57390,
61551: 57391,
61552: 57392,
61553: 57393,
61554: 57394,
61555: 57395,
61556: 57396,
61557: 57397,
61558: 57398,
61559: 57399,
61560: 57400,
61561: 57401,
61562: 57402,
61563: 57403,
61564: 57404,
61565: 57405,
61566: 57406,
61568: 57407,
61569: 57408,
61570: 57409,
61571: 57410,
61572: 57411,
61573: 57412,
61574: 57413,
61575: 57414,
61576: 57415,
61577: 57416,
61578: 57417,
61579: 57418,
61580: 57419,
61581: 57420,
61582: 57421,
61583: 57422,
61584: 57423,
61585: 57424,
61586: 57425,
61587: 57426,
61588: 57427,
61589: 57428,
61590: 57429,
61591: 57430,
61592: 57431,
61593: 57432,
61594: 57433,
61595: 57434,
61596: 57435,
61597: 57436,
61598: 57437,
61599: 57438,
61600: 57439,
61601: 57440,
61602: 57441,
61603: 57442,
61604: 57443,
61605: 57444,
61606: 57445,
61607: 57446,
61608: 57447,
61609: 57448,
61610: 57449,
61611: 57450,
61612: 57451,
61613: 57452,
61614: 57453,
61615: 57454,
61616: 57455,
61617: 57456,
61618: 57457,
61619: 57458,
61620: 57459,
61621: 57460,
61622: 57461,
61623: 57462,
61624: 57463,
61625: 57464,
61626: 57465,
61627: 57466,
61628: 57467,
61629: 57468,
61630: 57469,
61631: 57470,
61632: 57471,
61633: 57472,
61634: 57473,
61635: 57474,
61636: 57475,
61637: 57476,
61638: 57477,
61639: 57478,
61640: 57479,
61641: 57480,
61642: 57481,
61643: 57482,
61644: 57483,
61645: 57484,
61646: 57485,
61647: 57486,
61648: 57487,
61649: 57488,
61650: 57489,
61651: 57490,
61652: 57491,
61653: 57492,
61654: 57493,
61655: 57494,
61656: 57495,
61657: 57496,
61658: 57497,
61659: 57498,
61660: 57499,
61661: 57500,
61662: 57501,
61663: 57502,
61664: 57503,
61665: 57504,
61666: 57505,
61667: 57506,
61668: 57507,
61669: 57508,
61670: 57509,
61671: 57510,
61672: 57511,
61673: 57512,
61674: 57513,
61675: 57514,
61676: 57515,
61677: 57516,
61678: 57517,
61679: 57518,
61680: 57519,
61681: 57520,
61682: 57521,
61683: 57522,
61684: 57523,
61685: 57524,
61686: 57525,
61687: 57526,
61688: 57527,
61689: 57528,
61690: 57529,
61691: 57530,
61692: 57531,
61760: 57532,
61761: 57533,
61762: 57534,
61763: 57535,
61764: 57536,
61765: 57537,
61766: 57538,
61767: 57539,
61768: 57540,
61769: 57541,
61770: 57542,
61771: 57543,
61772: 57544,
61773: 57545,
61774: 57546,
61775: 57547,
61776: 57548,
61777: 57549,
61778: 57550,
61779: 57551,
61780: 57552,
61781: 57553,
61782: 57554,
61783: 57555,
61784: 57556,
61785: 57557,
61786: 57558,
61787: 57559,
61788: 57560,
61789: 57561,
61790: 57562,
61791: 57563,
61792: 57564,
61793: 57565,
61794: 57566,
61795: 57567,
61796: 57568,
61797: 57569,
61798: 57570,
61799: 57571,
61800: 57572,
61801: 57573,
61802: 57574,
61803: 57575,
61804: 57576,
61805: 57577,
61806: 57578,
61807: 57579,
61808: 57580,
61809: 57581,
61810: 57582,
61811: 57583,
61812: 57584,
61813: 57585,
61814: 57586,
61815: 57587,
61816: 57588,
61817: 57589,
61818: 57590,
61819: 57591,
61820: 57592,
61821: 57593,
61822: 57594,
61824: 57595,
61825: 57596,
61826: 57597,
61827: 57598,
61828: 57599,
61829: 57600,
61830: 57601,
61831: 57602,
61832: 57603,
61833: 57604,
61834: 57605,
61835: 57606,
61836: 57607,
61837: 57608,
61838: 57609,
61839: 57610,
61840: 57611,
61841: 57612,
61842: 57613,
61843: 57614,
61844: 57615,
61845: 57616,
61846: 57617,
61847: 57618,
61848: 57619,
61849: 57620,
61850: 57621,
61851: 57622,
61852: 57623,
61853: 57624,
61854: 57625,
61855: 57626,
61856: 57627,
61857: 57628,
61858: 57629,
61859: 57630,
61860: 57631,
61861: 57632,
61862: 57633,
61863: 57634,
61864: 57635,
61865: 57636,
61866: 57637,
61867: 57638,
61868: 57639,
61869: 57640,
61870: 57641,
61871: 57642,
61872: 57643,
61873: 57644,
61874: 57645,
61875: 57646,
61876: 57647,
61877: 57648,
61878: 57649,
61879: 57650,
61880: 57651,
61881: 57652,
61882: 57653,
61883: 57654,
61884: 57655,
61885: 57656,
61886: 57657,
61887: 57658,
61888: 57659,
61889: 57660,
61890: 57661,
61891: 57662,
61892: 57663,
61893: 57664,
61894: 57665,
61895: 57666,
61896: 57667,
61897: 57668,
61898: 57669,
61899: 57670,
61900: 57671,
61901: 57672,
61902: 57673,
61903: 57674,
61904: 57675,
61905: 57676,
61906: 57677,
61907: 57678,
61908: 57679,
61909: 57680,
61910: 57681,
61911: 57682,
61912: 57683,
61913: 57684,
61914: 57685,
61915: 57686,
61916: 57687,
61917: 57688,
61918: 57689,
61919: 57690,
61920: 57691,
61921: 57692,
61922: 57693,
61923: 57694,
61924: 57695,
61925: 57696,
61926: 57697,
61927: 57698,
61928: 57699,
61929: 57700,
61930: 57701,
61931: 57702,
61932: 57703,
61933: 57704,
61934: 57705,
61935: 57706,
61936: 57707,
61937: 57708,
61938: 57709,
61939: 57710,
61940: 57711,
61941: 57712,
61942: 57713,
61943: 57714,
61944: 57715,
61945: 57716,
61946: 57717,
61947: 57718,
61948: 57719,
62016: 57720,
62017: 57721,
62018: 57722,
62019: 57723,
62020: 57724,
62021: 57725,
62022: 57726,
62023: 57727,
62024: 57728,
62025: 57729,
62026: 57730,
62027: 57731,
62028: 57732,
62029: 57733,
62030: 57734,
62031: 57735,
62032: 57736,
62033: 57737,
62034: 57738,
62035: 57739,
62036: 57740,
62037: 57741,
62038: 57742,
62039: 57743,
62040: 57744,
62041: 57745,
62042: 57746,
62043: 57747,
62044: 57748,
62045: 57749,
62046: 57750,
62047: 57751,
62048: 57752,
62049: 57753,
62050: 57754,
62051: 57755,
62052: 57756,
62053: 57757,
62054: 57758,
62055: 57759,
62056: 57760,
62057: 57761,
62058: 57762,
62059: 57763,
62060: 57764,
62061: 57765,
62062: 57766,
62063: 57767,
62064: 57768,
62065: 57769,
62066: 57770,
62067: 57771,
62068: 57772,
62069: 57773,
62070: 57774,
62071: 57775,
62072: 57776,
62073: 57777,
62074: 57778,
62075: 57779,
62076: 57780,
62077: 57781,
62078: 57782,
62080: 57783,
62081: 57784,
62082: 57785,
62083: 57786,
62084: 57787,
62085: 57788,
62086: 57789,
62087: 57790,
62088: 57791,
62089: 57792,
62090: 57793,
62091: 57794,
62092: 57795,
62093: 57796,
62094: 57797,
62095: 57798,
62096: 57799,
62097: 57800,
62098: 57801,
62099: 57802,
62100: 57803,
62101: 57804,
62102: 57805,
62103: 57806,
62104: 57807,
62105: 57808,
62106: 57809,
62107: 57810,
62108: 57811,
62109: 57812,
62110: 57813,
62111: 57814,
62112: 57815,
62113: 57816,
62114: 57817,
62115: 57818,
62116: 57819,
62117: 57820,
62118: 57821,
62119: 57822,
62120: 57823,
62121: 57824,
62122: 57825,
62123: 57826,
62124: 57827,
62125: 57828,
62126: 57829,
62127: 57830,
62128: 57831,
62129: 57832,
62130: 57833,
62131: 57834,
62132: 57835,
62133: 57836,
62134: 57837,
62135: 57838,
62136: 57839,
62137: 57840,
62138: 57841,
62139: 57842,
62140: 57843,
62141: 57844,
62142: 57845,
62143: 57846,
62144: 57847,
62145: 57848,
62146: 57849,
62147: 57850,
62148: 57851,
62149: 57852,
62150: 57853,
62151: 57854,
62152: 57855,
62153: 57856,
62154: 57857,
62155: 57858,
62156: 57859,
62157: 57860,
62158: 57861,
62159: 57862,
62160: 57863,
62161: 57864,
62162: 57865,
62163: 57866,
62164: 57867,
62165: 57868,
62166: 57869,
62167: 57870,
62168: 57871,
62169: 57872,
62170: 57873,
62171: 57874,
62172: 57875,
62173: 57876,
62174: 57877,
62175: 57878,
62176: 57879,
62177: 57880,
62178: 57881,
62179: 57882,
62180: 57883,
62181: 57884,
62182: 57885,
62183: 57886,
62184: 57887,
62185: 57888,
62186: 57889,
62187: 57890,
62188: 57891,
62189: 57892,
62190: 57893,
62191: 57894,
62192: 57895,
62193: 57896,
62194: 57897,
62195: 57898,
62196: 57899,
62197: 57900,
62198: 57901,
62199: 57902,
62200: 57903,
62201: 57904,
62202: 57905,
62203: 57906,
62204: 57907,
62272: 57908,
62273: 57909,
62274: 57910,
62275: 57911,
62276: 57912,
62277: 57913,
62278: 57914,
62279: 57915,
62280: 57916,
62281: 57917,
62282: 57918,
62283: 57919,
62284: 57920,
62285: 57921,
62286: 57922,
62287: 57923,
62288: 57924,
62289: 57925,
62290: 57926,
62291: 57927,
62292: 57928,
62293: 57929,
62294: 57930,
62295: 57931,
62296: 57932,
62297: 57933,
62298: 57934,
62299: 57935,
62300: 57936,
62301: 57937,
62302: 57938,
62303: 57939,
62304: 57940,
62305: 57941,
62306: 57942,
62307: 57943,
62308: 57944,
62309: 57945,
62310: 57946,
62311: 57947,
62312: 57948,
62313: 57949,
62314: 57950,
62315: 57951,
62316: 57952,
62317: 57953,
62318: 57954,
62319: 57955,
62320: 57956,
62321: 57957,
62322: 57958,
62323: 57959,
62324: 57960,
62325: 57961,
62326: 57962,
62327: 57963,
62328: 57964,
62329: 57965,
62330: 57966,
62331: 57967,
62332: 57968,
62333: 57969,
62334: 57970,
62336: 57971,
62337: 57972,
62338: 57973,
62339: 57974,
62340: 57975,
62341: 57976,
62342: 57977,
62343: 57978,
62344: 57979,
62345: 57980,
62346: 57981,
62347: 57982,
62348: 57983,
62349: 57984,
62350: 57985,
62351: 57986,
62352: 57987,
62353: 57988,
62354: 57989,
62355: 57990,
62356: 57991,
62357: 57992,
62358: 57993,
62359: 57994,
62360: 57995,
62361: 57996,
62362: 57997,
62363: 57998,
62364: 57999,
62365: 58000,
62366: 58001,
62367: 58002,
62368: 58003,
62369: 58004,
62370: 58005,
62371: 58006,
62372: 58007,
62373: 58008,
62374: 58009,
62375: 58010,
62376: 58011,
62377: 58012,
62378: 58013,
62379: 58014,
62380: 58015,
62381: 58016,
62382: 58017,
62383: 58018,
62384: 58019,
62385: 58020,
62386: 58021,
62387: 58022,
62388: 58023,
62389: 58024,
62390: 58025,
62391: 58026,
62392: 58027,
62393: 58028,
62394: 58029,
62395: 58030,
62396: 58031,
62397: 58032,
62398: 58033,
62399: 58034,
62400: 58035,
62401: 58036,
62402: 58037,
62403: 58038,
62404: 58039,
62405: 58040,
62406: 58041,
62407: 58042,
62408: 58043,
62409: 58044,
62410: 58045,
62411: 58046,
62412: 58047,
62413: 58048,
62414: 58049,
62415: 58050,
62416: 58051,
62417: 58052,
62418: 58053,
62419: 58054,
62420: 58055,
62421: 58056,
62422: 58057,
62423: 58058,
62424: 58059,
62425: 58060,
62426: 58061,
62427: 58062,
62428: 58063,
62429: 58064,
62430: 58065,
62431: 58066,
62432: 58067,
62433: 58068,
62434: 58069,
62435: 58070,
62436: 58071,
62437: 58072,
62438: 58073,
62439: 58074,
62440: 58075,
62441: 58076,
62442: 58077,
62443: 58078,
62444: 58079,
62445: 58080,
62446: 58081,
62447: 58082,
62448: 58083,
62449: 58084,
62450: 58085,
62451: 58086,
62452: 58087,
62453: 58088,
62454: 58089,
62455: 58090,
62456: 58091,
62457: 58092,
62458: 58093,
62459: 58094,
62460: 58095,
62528: 58096,
62529: 58097,
62530: 58098,
62531: 58099,
62532: 58100,
62533: 58101,
62534: 58102,
62535: 58103,
62536: 58104,
62537: 58105,
62538: 58106,
62539: 58107,
62540: 58108,
62541: 58109,
62542: 58110,
62543: 58111,
62544: 58112,
62545: 58113,
62546: 58114,
62547: 58115,
62548: 58116,
62549: 58117,
62550: 58118,
62551: 58119,
62552: 58120,
62553: 58121,
62554: 58122,
62555: 58123,
62556: 58124,
62557: 58125,
62558: 58126,
62559: 58127,
62560: 58128,
62561: 58129,
62562: 58130,
62563: 58131,
62564: 58132,
62565: 58133,
62566: 58134,
62567: 58135,
62568: 58136,
62569: 58137,
62570: 58138,
62571: 58139,
62572: 58140,
62573: 58141,
62574: 58142,
62575: 58143,
62576: 58144,
62577: 58145,
62578: 58146,
62579: 58147,
62580: 58148,
62581: 58149,
62582: 58150,
62583: 58151,
62584: 58152,
62585: 58153,
62586: 58154,
62587: 58155,
62588: 58156,
62589: 58157,
62590: 58158,
62592: 58159,
62593: 58160,
62594: 58161,
62595: 58162,
62596: 58163,
62597: 58164,
62598: 58165,
62599: 58166,
62600: 58167,
62601: 58168,
62602: 58169,
62603: 58170,
62604: 58171,
62605: 58172,
62606: 58173,
62607: 58174,
62608: 58175,
62609: 58176,
62610: 58177,
62611: 58178,
62612: 58179,
62613: 58180,
62614: 58181,
62615: 58182,
62616: 58183,
62617: 58184,
62618: 58185,
62619: 58186,
62620: 58187,
62621: 58188,
62622: 58189,
62623: 58190,
62624: 58191,
62625: 58192,
62626: 58193,
62627: 58194,
62628: 58195,
62629: 58196,
62630: 58197,
62631: 58198,
62632: 58199,
62633: 58200,
62634: 58201,
62635: 58202,
62636: 58203,
62637: 58204,
62638: 58205,
62639: 58206,
62640: 58207,
62641: 58208,
62642: 58209,
62643: 58210,
62644: 58211,
62645: 58212,
62646: 58213,
62647: 58214,
62648: 58215,
62649: 58216,
62650: 58217,
62651: 58218,
62652: 58219,
62653: 58220,
62654: 58221,
62655: 58222,
62656: 58223,
62657: 58224,
62658: 58225,
62659: 58226,
62660: 58227,
62661: 58228,
62662: 58229,
62663: 58230,
62664: 58231,
62665: 58232,
62666: 58233,
62667: 58234,
62668: 58235,
62669: 58236,
62670: 58237,
62671: 58238,
62672: 58239,
62673: 58240,
62674: 58241,
62675: 58242,
62676: 58243,
62677: 58244,
62678: 58245,
62679: 58246,
62680: 58247,
62681: 58248,
62682: 58249,
62683: 58250,
62684: 58251,
62685: 58252,
62686: 58253,
62687: 58254,
62688: 58255,
62689: 58256,
62690: 58257,
62691: 58258,
62692: 58259,
62693: 58260,
62694: 58261,
62695: 58262,
62696: 58263,
62697: 58264,
62698: 58265,
62699: 58266,
62700: 58267,
62701: 58268,
62702: 58269,
62703: 58270,
62704: 58271,
62705: 58272,
62706: 58273,
62707: 58274,
62708: 58275,
62709: 58276,
62710: 58277,
62711: 58278,
62712: 58279,
62713: 58280,
62714: 58281,
62715: 58282,
62716: 58283,
62784: 58284,
62785: 58285,
62786: 58286,
62787: 58287,
62788: 58288,
62789: 58289,
62790: 58290,
62791: 58291,
62792: 58292,
62793: 58293,
62794: 58294,
62795: 58295,
62796: 58296,
62797: 58297,
62798: 58298,
62799: 58299,
62800: 58300,
62801: 58301,
62802: 58302,
62803: 58303,
62804: 58304,
62805: 58305,
62806: 58306,
62807: 58307,
62808: 58308,
62809: 58309,
62810: 58310,
62811: 58311,
62812: 58312,
62813: 58313,
62814: 58314,
62815: 58315,
62816: 58316,
62817: 58317,
62818: 58318,
62819: 58319,
62820: 58320,
62821: 58321,
62822: 58322,
62823: 58323,
62824: 58324,
62825: 58325,
62826: 58326,
62827: 58327,
62828: 58328,
62829: 58329,
62830: 58330,
62831: 58331,
62832: 58332,
62833: 58333,
62834: 58334,
62835: 58335,
62836: 58336,
62837: 58337,
62838: 58338,
62839: 58339,
62840: 58340,
62841: 58341,
62842: 58342,
62843: 58343,
62844: 58344,
62845: 58345,
62846: 58346,
62848: 58347,
62849: 58348,
62850: 58349,
62851: 58350,
62852: 58351,
62853: 58352,
62854: 58353,
62855: 58354,
62856: 58355,
62857: 58356,
62858: 58357,
62859: 58358,
62860: 58359,
62861: 58360,
62862: 58361,
62863: 58362,
62864: 58363,
62865: 58364,
62866: 58365,
62867: 58366,
62868: 58367,
62869: 58368,
62870: 58369,
62871: 58370,
62872: 58371,
62873: 58372,
62874: 58373,
62875: 58374,
62876: 58375,
62877: 58376,
62878: 58377,
62879: 58378,
62880: 58379,
62881: 58380,
62882: 58381,
62883: 58382,
62884: 58383,
62885: 58384,
62886: 58385,
62887: 58386,
62888: 58387,
62889: 58388,
62890: 58389,
62891: 58390,
62892: 58391,
62893: 58392,
62894: 58393,
62895: 58394,
62896: 58395,
62897: 58396,
62898: 58397,
62899: 58398,
62900: 58399,
62901: 58400,
62902: 58401,
62903: 58402,
62904: 58403,
62905: 58404,
62906: 58405,
62907: 58406,
62908: 58407,
62909: 58408,
62910: 58409,
62911: 58410,
62912: 58411,
62913: 58412,
62914: 58413,
62915: 58414,
62916: 58415,
62917: 58416,
62918: 58417,
62919: 58418,
62920: 58419,
62921: 58420,
62922: 58421,
62923: 58422,
62924: 58423,
62925: 58424,
62926: 58425,
62927: 58426,
62928: 58427,
62929: 58428,
62930: 58429,
62931: 58430,
62932: 58431,
62933: 58432,
62934: 58433,
62935: 58434,
62936: 58435,
62937: 58436,
62938: 58437,
62939: 58438,
62940: 58439,
62941: 58440,
62942: 58441,
62943: 58442,
62944: 58443,
62945: 58444,
62946: 58445,
62947: 58446,
62948: 58447,
62949: 58448,
62950: 58449,
62951: 58450,
62952: 58451,
62953: 58452,
62954: 58453,
62955: 58454,
62956: 58455,
62957: 58456,
62958: 58457,
62959: 58458,
62960: 58459,
62961: 58460,
62962: 58461,
62963: 58462,
62964: 58463,
62965: 58464,
62966: 58465,
62967: 58466,
62968: 58467,
62969: 58468,
62970: 58469,
62971: 58470,
62972: 58471,
63040: 58472,
63041: 58473,
63042: 58474,
63043: 58475,
63044: 58476,
63045: 58477,
63046: 58478,
63047: 58479,
63048: 58480,
63049: 58481,
63050: 58482,
63051: 58483,
63052: 58484,
63053: 58485,
63054: 58486,
63055: 58487,
63056: 58488,
63057: 58489,
63058: 58490,
63059: 58491,
63060: 58492,
63061: 58493,
63062: 58494,
63063: 58495,
63064: 58496,
63065: 58497,
63066: 58498,
63067: 58499,
63068: 58500,
63069: 58501,
63070: 58502,
63071: 58503,
63072: 58504,
63073: 58505,
63074: 58506,
63075: 58507,
63076: 58508,
63077: 58509,
63078: 58510,
63079: 58511,
63080: 58512,
63081: 58513,
63082: 58514,
63083: 58515,
63084: 58516,
63085: 58517,
63086: 58518,
63087: 58519,
63088: 58520,
63089: 58521,
63090: 58522,
63091: 58523,
63092: 58524,
63093: 58525,
63094: 58526,
63095: 58527,
63096: 58528,
63097: 58529,
63098: 58530,
63099: 58531,
63100: 58532,
63101: 58533,
63102: 58534,
63104: 58535,
63105: 58536,
63106: 58537,
63107: 58538,
63108: 58539,
63109: 58540,
63110: 58541,
63111: 58542,
63112: 58543,
63113: 58544,
63114: 58545,
63115: 58546,
63116: 58547,
63117: 58548,
63118: 58549,
63119: 58550,
63120: 58551,
63121: 58552,
63122: 58553,
63123: 58554,
63124: 58555,
63125: 58556,
63126: 58557,
63127: 58558,
63128: 58559,
63129: 58560,
63130: 58561,
63131: 58562,
63132: 58563,
63133: 58564,
63134: 58565,
63135: 58566,
63136: 58567,
63137: 58568,
63138: 58569,
63139: 58570,
63140: 58571,
63141: 58572,
63142: 58573,
63143: 58574,
63144: 58575,
63145: 58576,
63146: 58577,
63147: 58578,
63148: 58579,
63149: 58580,
63150: 58581,
63151: 58582,
63152: 58583,
63153: 58584,
63154: 58585,
63155: 58586,
63156: 58587,
63157: 58588,
63158: 58589,
63159: 58590,
63160: 58591,
63161: 58592,
63162: 58593,
63163: 58594,
63164: 58595,
63165: 58596,
63166: 58597,
63167: 58598,
63168: 58599,
63169: 58600,
63170: 58601,
63171: 58602,
63172: 58603,
63173: 58604,
63174: 58605,
63175: 58606,
63176: 58607,
63177: 58608,
63178: 58609,
63179: 58610,
63180: 58611,
63181: 58612,
63182: 58613,
63183: 58614,
63184: 58615,
63185: 58616,
63186: 58617,
63187: 58618,
63188: 58619,
63189: 58620,
63190: 58621,
63191: 58622,
63192: 58623,
63193: 58624,
63194: 58625,
63195: 58626,
63196: 58627,
63197: 58628,
63198: 58629,
63199: 58630,
63200: 58631,
63201: 58632,
63202: 58633,
63203: 58634,
63204: 58635,
63205: 58636,
63206: 58637,
63207: 58638,
63208: 58639,
63209: 58640,
63210: 58641,
63211: 58642,
63212: 58643,
63213: 58644,
63214: 58645,
63215: 58646,
63216: 58647,
63217: 58648,
63218: 58649,
63219: 58650,
63220: 58651,
63221: 58652,
63222: 58653,
63223: 58654,
63224: 58655,
63225: 58656,
63226: 58657,
63227: 58658,
63228: 58659,
63296: 58660,
63297: 58661,
63298: 58662,
63299: 58663,
63300: 58664,
63301: 58665,
63302: 58666,
63303: 58667,
63304: 58668,
63305: 58669,
63306: 58670,
63307: 58671,
63308: 58672,
63309: 58673,
63310: 58674,
63311: 58675,
63312: 58676,
63313: 58677,
63314: 58678,
63315: 58679,
63316: 58680,
63317: 58681,
63318: 58682,
63319: 58683,
63320: 58684,
63321: 58685,
63322: 58686,
63323: 58687,
63324: 58688,
63325: 58689,
63326: 58690,
63327: 58691,
63328: 58692,
63329: 58693,
63330: 58694,
63331: 58695,
63332: 58696,
63333: 58697,
63334: 58698,
63335: 58699,
63336: 58700,
63337: 58701,
63338: 58702,
63339: 58703,
63340: 58704,
63341: 58705,
63342: 58706,
63343: 58707,
63344: 58708,
63345: 58709,
63346: 58710,
63347: 58711,
63348: 58712,
63349: 58713,
63350: 58714,
63351: 58715,
63352: 58716,
63353: 58717,
63354: 58718,
63355: 58719,
63356: 58720,
63357: 58721,
63358: 58722,
63360: 58723,
63361: 58724,
63362: 58725,
63363: 58726,
63364: 58727,
63365: 58728,
63366: 58729,
63367: 58730,
63368: 58731,
63369: 58732,
63370: 58733,
63371: 58734,
63372: 58735,
63373: 58736,
63374: 58737,
63375: 58738,
63376: 58739,
63377: 58740,
63378: 58741,
63379: 58742,
63380: 58743,
63381: 58744,
63382: 58745,
63383: 58746,
63384: 58747,
63385: 58748,
63386: 58749,
63387: 58750,
63388: 58751,
63389: 58752,
63390: 58753,
63391: 58754,
63392: 58755,
63393: 58756,
63394: 58757,
63395: 58758,
63396: 58759,
63397: 58760,
63398: 58761,
63399: 58762,
63400: 58763,
63401: 58764,
63402: 58765,
63403: 58766,
63404: 58767,
63405: 58768,
63406: 58769,
63407: 58770,
63408: 58771,
63409: 58772,
63410: 58773,
63411: 58774,
63412: 58775,
63413: 58776,
63414: 58777,
63415: 58778,
63416: 58779,
63417: 58780,
63418: 58781,
63419: 58782,
63420: 58783,
63421: 58784,
63422: 58785,
63423: 58786,
63424: 58787,
63425: 58788,
63426: 58789,
63427: 58790,
63428: 58791,
63429: 58792,
63430: 58793,
63431: 58794,
63432: 58795,
63433: 58796,
63434: 58797,
63435: 58798,
63436: 58799,
63437: 58800,
63438: 58801,
63439: 58802,
63440: 58803,
63441: 58804,
63442: 58805,
63443: 58806,
63444: 58807,
63445: 58808,
63446: 58809,
63447: 58810,
63448: 58811,
63449: 58812,
63450: 58813,
63451: 58814,
63452: 58815,
63453: 58816,
63454: 58817,
63455: 58818,
63456: 58819,
63457: 58820,
63458: 58821,
63459: 58822,
63460: 58823,
63461: 58824,
63462: 58825,
63463: 58826,
63464: 58827,
63465: 58828,
63466: 58829,
63467: 58830,
63468: 58831,
63469: 58832,
63470: 58833,
63471: 58834,
63472: 58835,
63473: 58836,
63474: 58837,
63475: 58838,
63476: 58839,
63477: 58840,
63478: 58841,
63479: 58842,
63480: 58843,
63481: 58844,
63482: 58845,
63483: 58846,
63484: 58847,
63552: 58848,
63553: 58849,
63554: 58850,
63555: 58851,
63556: 58852,
63557: 58853,
63558: 58854,
63559: 58855,
63560: 58856,
63561: 58857,
63562: 58858,
63563: 58859,
63564: 58860,
63565: 58861,
63566: 58862,
63567: 58863,
63568: 58864,
63569: 58865,
63570: 58866,
63571: 58867,
63572: 58868,
63573: 58869,
63574: 58870,
63575: 58871,
63576: 58872,
63577: 58873,
63578: 58874,
63579: 58875,
63580: 58876,
63581: 58877,
63582: 58878,
63583: 58879,
63584: 58880,
63585: 58881,
63586: 58882,
63587: 58883,
63588: 58884,
63589: 58885,
63590: 58886,
63591: 58887,
63592: 58888,
63593: 58889,
63594: 58890,
63595: 58891,
63596: 58892,
63597: 58893,
63598: 58894,
63599: 58895,
63600: 58896,
63601: 58897,
63602: 58898,
63603: 58899,
63604: 58900,
63605: 58901,
63606: 58902,
63607: 58903,
63608: 58904,
63609: 58905,
63610: 58906,
63611: 58907,
63612: 58908,
63613: 58909,
63614: 58910,
63616: 58911,
63617: 58912,
63618: 58913,
63619: 58914,
63620: 58915,
63621: 58916,
63622: 58917,
63623: 58918,
63624: 58919,
63625: 58920,
63626: 58921,
63627: 58922,
63628: 58923,
63629: 58924,
63630: 58925,
63631: 58926,
63632: 58927,
63633: 58928,
63634: 58929,
63635: 58930,
63636: 58931,
63637: 58932,
63638: 58933,
63639: 58934,
63640: 58935,
63641: 58936,
63642: 58937,
63643: 58938,
63644: 58939,
63645: 58940,
63646: 58941,
63647: 58942,
63648: 58943,
63649: 58944,
63650: 58945,
63651: 58946,
63652: 58947,
63653: 58948,
63654: 58949,
63655: 58950,
63656: 58951,
63657: 58952,
63658: 58953,
63659: 58954,
63660: 58955,
63661: 58956,
63662: 58957,
63663: 58958,
63664: 58959,
63665: 58960,
63666: 58961,
63667: 58962,
63668: 58963,
63669: 58964,
63670: 58965,
63671: 58966,
63672: 58967,
63673: 58968,
63674: 58969,
63675: 58970,
63676: 58971,
63677: 58972,
63678: 58973,
63679: 58974,
63680: 58975,
63681: 58976,
63682: 58977,
63683: 58978,
63684: 58979,
63685: 58980,
63686: 58981,
63687: 58982,
63688: 58983,
63689: 58984,
63690: 58985,
63691: 58986,
63692: 58987,
63693: 58988,
63694: 58989,
63695: 58990,
63696: 58991,
63697: 58992,
63698: 58993,
63699: 58994,
63700: 58995,
63701: 58996,
63702: 58997,
63703: 58998,
63704: 58999,
63705: 59000,
63706: 59001,
63707: 59002,
63708: 59003,
63709: 59004,
63710: 59005,
63711: 59006,
63712: 59007,
63713: 59008,
63714: 59009,
63715: 59010,
63716: 59011,
63717: 59012,
63718: 59013,
63719: 59014,
63720: 59015,
63721: 59016,
63722: 59017,
63723: 59018,
63724: 59019,
63725: 59020,
63726: 59021,
63727: 59022,
63728: 59023,
63729: 59024,
63730: 59025,
63731: 59026,
63732: 59027,
63733: 59028,
63734: 59029,
63735: 59030,
63736: 59031,
63737: 59032,
63738: 59033,
63739: 59034,
63740: 59035,
64064: 8560,
64065: 8561,
64066: 8562,
64067: 8563,
64068: 8564,
64069: 8565,
64070: 8566,
64071: 8567,
64072: 8568,
64073: 8569,
64074: 8544,
64075: 8545,
64076: 8546,
64077: 8547,
64078: 8548,
64079: 8549,
64080: 8550,
64081: 8551,
64082: 8552,
64083: 8553,
64084: 65506,
64085: 65508,
64086: 65287,
64087: 65282,
64088: 12849,
64089: 8470,
64090: 8481,
64091: 8757,
64092: 32394,
64093: 35100,
64094: 37704,
64095: 37512,
64096: 34012,
64097: 20425,
64098: 28859,
64099: 26161,
64100: 26824,
64101: 37625,
64102: 26363,
64103: 24389,
64104: 20008,
64105: 20193,
64106: 20220,
64107: 20224,
64108: 20227,
64109: 20281,
64110: 20310,
64111: 20370,
64112: 20362,
64113: 20378,
64114: 20372,
64115: 20429,
64116: 20544,
64117: 20514,
64118: 20479,
64119: 20510,
64120: 20550,
64121: 20592,
64122: 20546,
64123: 20628,
64124: 20724,
64125: 20696,
64126: 20810,
64128: 20836,
64129: 20893,
64130: 20926,
64131: 20972,
64132: 21013,
64133: 21148,
64134: 21158,
64135: 21184,
64136: 21211,
64137: 21248,
64138: 21255,
64139: 21284,
64140: 21362,
64141: 21395,
64142: 21426,
64143: 21469,
64144: 64014,
64145: 21660,
64146: 21642,
64147: 21673,
64148: 21759,
64149: 21894,
64150: 22361,
64151: 22373,
64152: 22444,
64153: 22472,
64154: 22471,
64155: 64015,
64156: 64016,
64157: 22686,
64158: 22706,
64159: 22795,
64160: 22867,
64161: 22875,
64162: 22877,
64163: 22883,
64164: 22948,
64165: 22970,
64166: 23382,
64167: 23488,
64168: 29999,
64169: 23512,
64170: 23532,
64171: 23582,
64172: 23718,
64173: 23738,
64174: 23797,
64175: 23847,
64176: 23891,
64177: 64017,
64178: 23874,
64179: 23917,
64180: 23992,
64181: 23993,
64182: 24016,
64183: 24353,
64184: 24372,
64185: 24423,
64186: 24503,
64187: 24542,
64188: 24669,
64189: 24709,
64190: 24714,
64191: 24798,
64192: 24789,
64193: 24864,
64194: 24818,
64195: 24849,
64196: 24887,
64197: 24880,
64198: 24984,
64199: 25107,
64200: 25254,
64201: 25589,
64202: 25696,
64203: 25757,
64204: 25806,
64205: 25934,
64206: 26112,
64207: 26133,
64208: 26171,
64209: 26121,
64210: 26158,
64211: 26142,
64212: 26148,
64213: 26213,
64214: 26199,
64215: 26201,
64216: 64018,
64217: 26227,
64218: 26265,
64219: 26272,
64220: 26290,
64221: 26303,
64222: 26362,
64223: 26382,
64224: 63785,
64225: 26470,
64226: 26555,
64227: 26706,
64228: 26560,
64229: 26625,
64230: 26692,
64231: 26831,
64232: 64019,
64233: 26984,
64234: 64020,
64235: 27032,
64236: 27106,
64237: 27184,
64238: 27243,
64239: 27206,
64240: 27251,
64241: 27262,
64242: 27362,
64243: 27364,
64244: 27606,
64245: 27711,
64246: 27740,
64247: 27782,
64248: 27759,
64249: 27866,
64250: 27908,
64251: 28039,
64252: 28015,
64320: 28054,
64321: 28076,
64322: 28111,
64323: 28152,
64324: 28146,
64325: 28156,
64326: 28217,
64327: 28252,
64328: 28199,
64329: 28220,
64330: 28351,
64331: 28552,
64332: 28597,
64333: 28661,
64334: 28677,
64335: 28679,
64336: 28712,
64337: 28805,
64338: 28843,
64339: 28943,
64340: 28932,
64341: 29020,
64342: 28998,
64343: 28999,
64344: 64021,
64345: 29121,
64346: 29182,
64347: 29361,
64348: 29374,
64349: 29476,
64350: 64022,
64351: 29559,
64352: 29629,
64353: 29641,
64354: 29654,
64355: 29667,
64356: 29650,
64357: 29703,
64358: 29685,
64359: 29734,
64360: 29738,
64361: 29737,
64362: 29742,
64363: 29794,
64364: 29833,
64365: 29855,
64366: 29953,
64367: 30063,
64368: 30338,
64369: 30364,
64370: 30366,
64371: 30363,
64372: 30374,
64373: 64023,
64374: 30534,
64375: 21167,
64376: 30753,
64377: 30798,
64378: 30820,
64379: 30842,
64380: 31024,
64381: 64024,
64382: 64025,
64384: 64026,
64385: 31124,
64386: 64027,
64387: 31131,
64388: 31441,
64389: 31463,
64390: 64028,
64391: 31467,
64392: 31646,
64393: 64029,
64394: 32072,
64395: 32092,
64396: 32183,
64397: 32160,
64398: 32214,
64399: 32338,
64400: 32583,
64401: 32673,
64402: 64030,
64403: 33537,
64404: 33634,
64405: 33663,
64406: 33735,
64407: 33782,
64408: 33864,
64409: 33972,
64410: 34131,
64411: 34137,
64412: 34155,
64413: 64031,
64414: 34224,
64415: 64032,
64416: 64033,
64417: 34823,
64418: 35061,
64419: 35346,
64420: 35383,
64421: 35449,
64422: 35495,
64423: 35518,
64424: 35551,
64425: 64034,
64426: 35574,
64427: 35667,
64428: 35711,
64429: 36080,
64430: 36084,
64431: 36114,
64432: 36214,
64433: 64035,
64434: 36559,
64435: 64036,
64436: 64037,
64437: 36967,
64438: 37086,
64439: 64038,
64440: 37141,
64441: 37159,
64442: 37338,
64443: 37335,
64444: 37342,
64445: 37357,
64446: 37358,
64447: 37348,
64448: 37349,
64449: 37382,
64450: 37392,
64451: 37386,
64452: 37434,
64453: 37440,
64454: 37436,
64455: 37454,
64456: 37465,
64457: 37457,
64458: 37433,
64459: 37479,
64460: 37543,
64461: 37495,
64462: 37496,
64463: 37607,
64464: 37591,
64465: 37593,
64466: 37584,
64467: 64039,
64468: 37589,
64469: 37600,
64470: 37587,
64471: 37669,
64472: 37665,
64473: 37627,
64474: 64040,
64475: 37662,
64476: 37631,
64477: 37661,
64478: 37634,
64479: 37744,
64480: 37719,
64481: 37796,
64482: 37830,
64483: 37854,
64484: 37880,
64485: 37937,
64486: 37957,
64487: 37960,
64488: 38290,
64489: 63964,
64490: 64041,
64491: 38557,
64492: 38575,
64493: 38707,
64494: 38715,
64495: 38723,
64496: 38733,
64497: 38735,
64498: 38737,
64499: 38741,
64500: 38999,
64501: 39013,
64502: 64042,
64503: 64043,
64504: 39207,
64505: 64044,
64506: 39326,
64507: 39502,
64508: 39641,
64576: 39644,
64577: 39797,
64578: 39794,
64579: 39823,
64580: 39857,
64581: 39867,
64582: 39936,
64583: 40304,
64584: 40299,
64585: 64045,
64586: 40473,
64587: 40657
};
/**
* @author takahiro / https://github.com/takahirox
*/
function DataViewEx( buffer, littleEndian ) {
this.dv = new DataView( buffer );
this.offset = 0;
this.littleEndian = ( littleEndian !== undefined ) ? littleEndian : true;
this.encoder = new CharsetEncoder();
}
DataViewEx.prototype = {
constructor: DataViewEx,
getInt8: function () {
var value = this.dv.getInt8( this.offset );
this.offset += 1;
return value;
},
getInt8Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getInt8() );
}
return a;
},
getUint8: function () {
var value = this.dv.getUint8( this.offset );
this.offset += 1;
return value;
},
getUint8Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getUint8() );
}
return a;
},
getInt16: function () {
var value = this.dv.getInt16( this.offset, this.littleEndian );
this.offset += 2;
return value;
},
getInt16Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getInt16() );
}
return a;
},
getUint16: function () {
var value = this.dv.getUint16( this.offset, this.littleEndian );
this.offset += 2;
return value;
},
getUint16Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getUint16() );
}
return a;
},
getInt32: function () {
var value = this.dv.getInt32( this.offset, this.littleEndian );
this.offset += 4;
return value;
},
getInt32Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getInt32() );
}
return a;
},
getUint32: function () {
var value = this.dv.getUint32( this.offset, this.littleEndian );
this.offset += 4;
return value;
},
getUint32Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getUint32() );
}
return a;
},
getFloat32: function () {
var value = this.dv.getFloat32( this.offset, this.littleEndian );
this.offset += 4;
return value;
},
getFloat32Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getFloat32() );
}
return a;
},
getFloat64: function () {
var value = this.dv.getFloat64( this.offset, this.littleEndian );
this.offset += 8;
return value;
},
getFloat64Array: function ( size ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getFloat64() );
}
return a;
},
getIndex: function ( type, isUnsigned ) {
switch ( type ) {
case 1:
return ( isUnsigned === true ) ? this.getUint8() : this.getInt8();
case 2:
return ( isUnsigned === true ) ? this.getUint16() : this.getInt16();
case 4:
return this.getInt32(); // No Uint32
default:
throw 'unknown number type ' + type + ' exception.';
}
},
getIndexArray: function ( type, size, isUnsigned ) {
var a = [];
for ( var i = 0; i < size; i ++ ) {
a.push( this.getIndex( type, isUnsigned ) );
}
return a;
},
getChars: function ( size ) {
var str = '';
while ( size > 0 ) {
var value = this.getUint8();
size --;
if ( value === 0 ) {
break;
}
str += String.fromCharCode( value );
}
while ( size > 0 ) {
this.getUint8();
size --;
}
return str;
},
getSjisStringsAsUnicode: function ( size ) {
var a = [];
while ( size > 0 ) {
var value = this.getUint8();
size --;
if ( value === 0 ) {
break;
}
a.push( value );
}
while ( size > 0 ) {
this.getUint8();
size --;
}
return this.encoder.s2u( new Uint8Array( a ) );
},
getUnicodeStrings: function ( size ) {
var str = '';
while ( size > 0 ) {
var value = this.getUint16();
size -= 2;
if ( value === 0 ) {
break;
}
str += String.fromCharCode( value );
}
while ( size > 0 ) {
this.getUint8();
size --;
}
return str;
},
getTextBuffer: function () {
var size = this.getUint32();
return this.getUnicodeStrings( size );
}
};
/**
* @author takahiro / https://github.com/takahirox
*/
function DataCreationHelper() {
}
DataCreationHelper.prototype = {
constructor: DataCreationHelper,
leftToRightVector3: function ( v ) {
v[ 2 ] = - v[ 2 ];
},
leftToRightQuaternion: function ( q ) {
q[ 0 ] = - q[ 0 ];
q[ 1 ] = - q[ 1 ];
},
leftToRightEuler: function ( r ) {
r[ 0 ] = - r[ 0 ];
r[ 1 ] = - r[ 1 ];
},
leftToRightIndexOrder: function ( p ) {
var tmp = p[ 2 ];
p[ 2 ] = p[ 0 ];
p[ 0 ] = tmp;
},
leftToRightVector3Range: function ( v1, v2 ) {
var tmp = - v2[ 2 ];
v2[ 2 ] = - v1[ 2 ];
v1[ 2 ] = tmp;
},
leftToRightEulerRange: function ( r1, r2 ) {
var tmp1 = - r2[ 0 ];
var tmp2 = - r2[ 1 ];
r2[ 0 ] = - r1[ 0 ];
r2[ 1 ] = - r1[ 1 ];
r1[ 0 ] = tmp1;
r1[ 1 ] = tmp2;
}
};
/**
* @author takahiro / https://github.com/takahirox
*/
function Parser() {
}
Parser.prototype.parsePmd = function ( buffer, leftToRight ) {
var pmd = {};
var dv = new DataViewEx( buffer );
pmd.metadata = {};
pmd.metadata.format = 'pmd';
pmd.metadata.coordinateSystem = 'left';
var parseHeader = function () {
var metadata = pmd.metadata;
metadata.magic = dv.getChars( 3 );
if ( metadata.magic !== 'Pmd' ) {
throw 'PMD file magic is not Pmd, but ' + metadata.magic;
}
metadata.version = dv.getFloat32();
metadata.modelName = dv.getSjisStringsAsUnicode( 20 );
metadata.comment = dv.getSjisStringsAsUnicode( 256 );
};
var parseVertices = function () {
var parseVertex = function () {
var p = {};
p.position = dv.getFloat32Array( 3 );
p.normal = dv.getFloat32Array( 3 );
p.uv = dv.getFloat32Array( 2 );
p.skinIndices = dv.getUint16Array( 2 );
p.skinWeights = [ dv.getUint8() / 100 ];
p.skinWeights.push( 1.0 - p.skinWeights[ 0 ] );
p.edgeFlag = dv.getUint8();
return p;
};
var metadata = pmd.metadata;
metadata.vertexCount = dv.getUint32();
pmd.vertices = [];
for ( var i = 0; i < metadata.vertexCount; i ++ ) {
pmd.vertices.push( parseVertex() );
}
};
var parseFaces = function () {
var parseFace = function () {
var p = {};
p.indices = dv.getUint16Array( 3 );
return p;
};
var metadata = pmd.metadata;
metadata.faceCount = dv.getUint32() / 3;
pmd.faces = [];
for ( var i = 0; i < metadata.faceCount; i ++ ) {
pmd.faces.push( parseFace() );
}
};
var parseMaterials = function () {
var parseMaterial = function () {
var p = {};
p.diffuse = dv.getFloat32Array( 4 );
p.shininess = dv.getFloat32();
p.specular = dv.getFloat32Array( 3 );
p.ambient = dv.getFloat32Array( 3 );
p.toonIndex = dv.getInt8();
p.edgeFlag = dv.getUint8();
p.faceCount = dv.getUint32() / 3;
p.fileName = dv.getSjisStringsAsUnicode( 20 );
return p;
};
var metadata = pmd.metadata;
metadata.materialCount = dv.getUint32();
pmd.materials = [];
for ( var i = 0; i < metadata.materialCount; i ++ ) {
pmd.materials.push( parseMaterial() );
}
};
var parseBones = function () {
var parseBone = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 20 );
p.parentIndex = dv.getInt16();
p.tailIndex = dv.getInt16();
p.type = dv.getUint8();
p.ikIndex = dv.getInt16();
p.position = dv.getFloat32Array( 3 );
return p;
};
var metadata = pmd.metadata;
metadata.boneCount = dv.getUint16();
pmd.bones = [];
for ( var i = 0; i < metadata.boneCount; i ++ ) {
pmd.bones.push( parseBone() );
}
};
var parseIks = function () {
var parseIk = function () {
var p = {};
p.target = dv.getUint16();
p.effector = dv.getUint16();
p.linkCount = dv.getUint8();
p.iteration = dv.getUint16();
p.maxAngle = dv.getFloat32();
p.links = [];
for ( var i = 0; i < p.linkCount; i ++ ) {
var link = {};
link.index = dv.getUint16();
p.links.push( link );
}
return p;
};
var metadata = pmd.metadata;
metadata.ikCount = dv.getUint16();
pmd.iks = [];
for ( var i = 0; i < metadata.ikCount; i ++ ) {
pmd.iks.push( parseIk() );
}
};
var parseMorphs = function () {
var parseMorph = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 20 );
p.elementCount = dv.getUint32();
p.type = dv.getUint8();
p.elements = [];
for ( var i = 0; i < p.elementCount; i ++ ) {
p.elements.push( {
index: dv.getUint32(),
position: dv.getFloat32Array( 3 )
} );
}
return p;
};
var metadata = pmd.metadata;
metadata.morphCount = dv.getUint16();
pmd.morphs = [];
for ( var i = 0; i < metadata.morphCount; i ++ ) {
pmd.morphs.push( parseMorph() );
}
};
var parseMorphFrames = function () {
var parseMorphFrame = function () {
var p = {};
p.index = dv.getUint16();
return p;
};
var metadata = pmd.metadata;
metadata.morphFrameCount = dv.getUint8();
pmd.morphFrames = [];
for ( var i = 0; i < metadata.morphFrameCount; i ++ ) {
pmd.morphFrames.push( parseMorphFrame() );
}
};
var parseBoneFrameNames = function () {
var parseBoneFrameName = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 50 );
return p;
};
var metadata = pmd.metadata;
metadata.boneFrameNameCount = dv.getUint8();
pmd.boneFrameNames = [];
for ( var i = 0; i < metadata.boneFrameNameCount; i ++ ) {
pmd.boneFrameNames.push( parseBoneFrameName() );
}
};
var parseBoneFrames = function () {
var parseBoneFrame = function () {
var p = {};
p.boneIndex = dv.getInt16();
p.frameIndex = dv.getUint8();
return p;
};
var metadata = pmd.metadata;
metadata.boneFrameCount = dv.getUint32();
pmd.boneFrames = [];
for ( var i = 0; i < metadata.boneFrameCount; i ++ ) {
pmd.boneFrames.push( parseBoneFrame() );
}
};
var parseEnglishHeader = function () {
var metadata = pmd.metadata;
metadata.englishCompatibility = dv.getUint8();
if ( metadata.englishCompatibility > 0 ) {
metadata.englishModelName = dv.getSjisStringsAsUnicode( 20 );
metadata.englishComment = dv.getSjisStringsAsUnicode( 256 );
}
};
var parseEnglishBoneNames = function () {
var parseEnglishBoneName = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 20 );
return p;
};
var metadata = pmd.metadata;
if ( metadata.englishCompatibility === 0 ) {
return;
}
pmd.englishBoneNames = [];
for ( var i = 0; i < metadata.boneCount; i ++ ) {
pmd.englishBoneNames.push( parseEnglishBoneName() );
}
};
var parseEnglishMorphNames = function () {
var parseEnglishMorphName = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 20 );
return p;
};
var metadata = pmd.metadata;
if ( metadata.englishCompatibility === 0 ) {
return;
}
pmd.englishMorphNames = [];
for ( var i = 0; i < metadata.morphCount - 1; i ++ ) {
pmd.englishMorphNames.push( parseEnglishMorphName() );
}
};
var parseEnglishBoneFrameNames = function () {
var parseEnglishBoneFrameName = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 50 );
return p;
};
var metadata = pmd.metadata;
if ( metadata.englishCompatibility === 0 ) {
return;
}
pmd.englishBoneFrameNames = [];
for ( var i = 0; i < metadata.boneFrameNameCount; i ++ ) {
pmd.englishBoneFrameNames.push( parseEnglishBoneFrameName() );
}
};
var parseToonTextures = function () {
var parseToonTexture = function () {
var p = {};
p.fileName = dv.getSjisStringsAsUnicode( 100 );
return p;
};
pmd.toonTextures = [];
for ( var i = 0; i < 10; i ++ ) {
pmd.toonTextures.push( parseToonTexture() );
}
};
var parseRigidBodies = function () {
var parseRigidBody = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 20 );
p.boneIndex = dv.getInt16();
p.groupIndex = dv.getUint8();
p.groupTarget = dv.getUint16();
p.shapeType = dv.getUint8();
p.width = dv.getFloat32();
p.height = dv.getFloat32();
p.depth = dv.getFloat32();
p.position = dv.getFloat32Array( 3 );
p.rotation = dv.getFloat32Array( 3 );
p.weight = dv.getFloat32();
p.positionDamping = dv.getFloat32();
p.rotationDamping = dv.getFloat32();
p.restitution = dv.getFloat32();
p.friction = dv.getFloat32();
p.type = dv.getUint8();
return p;
};
var metadata = pmd.metadata;
metadata.rigidBodyCount = dv.getUint32();
pmd.rigidBodies = [];
for ( var i = 0; i < metadata.rigidBodyCount; i ++ ) {
pmd.rigidBodies.push( parseRigidBody() );
}
};
var parseConstraints = function () {
var parseConstraint = function () {
var p = {};
p.name = dv.getSjisStringsAsUnicode( 20 );
p.rigidBodyIndex1 = dv.getUint32();
p.rigidBodyIndex2 = dv.getUint32();
p.position = dv.getFloat32Array( 3 );
p.rotation = dv.getFloat32Array( 3 );
p.translationLimitation1 = dv.getFloat32Array( 3 );
p.translationLimitation2 = dv.getFloat32Array( 3 );
p.rotationLimitation1 = dv.getFloat32Array( 3 );
p.rotationLimitation2 = dv.getFloat32Array( 3 );
p.springPosition = dv.getFloat32Array( 3 );
p.springRotation = dv.getFloat32Array( 3 );
return p;
};
var metadata = pmd.metadata;
metadata.constraintCount = dv.getUint32();
pmd.constraints = [];
for ( var i = 0; i < metadata.constraintCount; i ++ ) {
pmd.constraints.push( parseConstraint() );
}
};
parseHeader();
parseVertices();
parseFaces();
parseMaterials();
parseBones();
parseIks();
parseMorphs();
parseMorphFrames();
parseBoneFrameNames();
parseBoneFrames();
parseEnglishHeader();
parseEnglishBoneNames();
parseEnglishMorphNames();
parseEnglishBoneFrameNames();
parseToonTextures();
parseRigidBodies();
parseConstraints();
if ( leftToRight === true ) this.leftToRightModel( pmd );
// console.log( pmd ); // for console debug
return pmd;
};
Parser.prototype.parsePmx = function ( buffer, leftToRight ) {
var pmx = {};
var dv = new DataViewEx( buffer );
pmx.metadata = {};
pmx.metadata.format = 'pmx';
pmx.metadata.coordinateSystem = 'left';
var parseHeader = function () {
var metadata = pmx.metadata;
metadata.magic = dv.getChars( 4 );
// Note: don't remove the last blank space.
if ( metadata.magic !== 'PMX ' ) {
throw 'PMX file magic is not PMX , but ' + metadata.magic;
}
metadata.version = dv.getFloat32();
if ( metadata.version !== 2.0 && metadata.version !== 2.1 ) {
throw 'PMX version ' + metadata.version + ' is not supported.';
}
metadata.headerSize = dv.getUint8();
metadata.encoding = dv.getUint8();
metadata.additionalUvNum = dv.getUint8();
metadata.vertexIndexSize = dv.getUint8();
metadata.textureIndexSize = dv.getUint8();
metadata.materialIndexSize = dv.getUint8();
metadata.boneIndexSize = dv.getUint8();
metadata.morphIndexSize = dv.getUint8();
metadata.rigidBodyIndexSize = dv.getUint8();
metadata.modelName = dv.getTextBuffer();
metadata.englishModelName = dv.getTextBuffer();
metadata.comment = dv.getTextBuffer();
metadata.englishComment = dv.getTextBuffer();
};
var parseVertices = function () {
var parseVertex = function () {
var p = {};
p.position = dv.getFloat32Array( 3 );
p.normal = dv.getFloat32Array( 3 );
p.uv = dv.getFloat32Array( 2 );
p.auvs = [];
for ( var i = 0; i < pmx.metadata.additionalUvNum; i ++ ) {
p.auvs.push( dv.getFloat32Array( 4 ) );
}
p.type = dv.getUint8();
var indexSize = metadata.boneIndexSize;
if ( p.type === 0 ) { // BDEF1
p.skinIndices = dv.getIndexArray( indexSize, 1 );
p.skinWeights = [ 1.0 ];
} else if ( p.type === 1 ) { // BDEF2
p.skinIndices = dv.getIndexArray( indexSize, 2 );
p.skinWeights = dv.getFloat32Array( 1 );
p.skinWeights.push( 1.0 - p.skinWeights[ 0 ] );
} else if ( p.type === 2 ) { // BDEF4
p.skinIndices = dv.getIndexArray( indexSize, 4 );
p.skinWeights = dv.getFloat32Array( 4 );
} else if ( p.type === 3 ) { // SDEF
p.skinIndices = dv.getIndexArray( indexSize, 2 );
p.skinWeights = dv.getFloat32Array( 1 );
p.skinWeights.push( 1.0 - p.skinWeights[ 0 ] );
p.skinC = dv.getFloat32Array( 3 );
p.skinR0 = dv.getFloat32Array( 3 );
p.skinR1 = dv.getFloat32Array( 3 );
// SDEF is not supported yet and is handled as BDEF2 so far.
// TODO: SDEF support
p.type = 1;
} else {
throw 'unsupport bone type ' + p.type + ' exception.';
}
p.edgeRatio = dv.getFloat32();
return p;
};
var metadata = pmx.metadata;
metadata.vertexCount = dv.getUint32();
pmx.vertices = [];
for ( var i = 0; i < metadata.vertexCount; i ++ ) {
pmx.vertices.push( parseVertex() );
}
};
var parseFaces = function () {
var parseFace = function () {
var p = {};
p.indices = dv.getIndexArray( metadata.vertexIndexSize, 3, true );
return p;
};
var metadata = pmx.metadata;
metadata.faceCount = dv.getUint32() / 3;
pmx.faces = [];
for ( var i = 0; i < metadata.faceCount; i ++ ) {
pmx.faces.push( parseFace() );
}
};
var parseTextures = function () {
var parseTexture = function () {
return dv.getTextBuffer();
};
var metadata = pmx.metadata;
metadata.textureCount = dv.getUint32();
pmx.textures = [];
for ( var i = 0; i < metadata.textureCount; i ++ ) {
pmx.textures.push( parseTexture() );
}
};
var parseMaterials = function () {
var parseMaterial = function () {
var p = {};
p.name = dv.getTextBuffer();
p.englishName = dv.getTextBuffer();
p.diffuse = dv.getFloat32Array( 4 );
p.specular = dv.getFloat32Array( 3 );
p.shininess = dv.getFloat32();
p.ambient = dv.getFloat32Array( 3 );
p.flag = dv.getUint8();
p.edgeColor = dv.getFloat32Array( 4 );
p.edgeSize = dv.getFloat32();
p.textureIndex = dv.getIndex( pmx.metadata.textureIndexSize );
p.envTextureIndex = dv.getIndex( pmx.metadata.textureIndexSize );
p.envFlag = dv.getUint8();
p.toonFlag = dv.getUint8();
if ( p.toonFlag === 0 ) {
p.toonIndex = dv.getIndex( pmx.metadata.textureIndexSize );
} else if ( p.toonFlag === 1 ) {
p.toonIndex = dv.getInt8();
} else {
throw 'unknown toon flag ' + p.toonFlag + ' exception.';
}
p.comment = dv.getTextBuffer();
p.faceCount = dv.getUint32() / 3;
return p;
};
var metadata = pmx.metadata;
metadata.materialCount = dv.getUint32();
pmx.materials = [];
for ( var i = 0; i < metadata.materialCount; i ++ ) {
pmx.materials.push( parseMaterial() );
}
};
var parseBones = function () {
var parseBone = function () {
var p = {};
p.name = dv.getTextBuffer();
p.englishName = dv.getTextBuffer();
p.position = dv.getFloat32Array( 3 );
p.parentIndex = dv.getIndex( pmx.metadata.boneIndexSize );
p.transformationClass = dv.getUint32();
p.flag = dv.getUint16();
if ( p.flag & 0x1 ) {
p.connectIndex = dv.getIndex( pmx.metadata.boneIndexSize );
} else {
p.offsetPosition = dv.getFloat32Array( 3 );
}
if ( p.flag & 0x100 || p.flag & 0x200 ) {
// Note: I don't think Grant is an appropriate name
// but I found that some English translated MMD tools use this term
// so I've named it Grant so far.
// I'd rename to more appropriate name from Grant later.
var grant = {};
grant.isLocal = ( p.flag & 0x80 ) !== 0 ? true : false;
grant.affectRotation = ( p.flag & 0x100 ) !== 0 ? true : false;
grant.affectPosition = ( p.flag & 0x200 ) !== 0 ? true : false;
grant.parentIndex = dv.getIndex( pmx.metadata.boneIndexSize );
grant.ratio = dv.getFloat32();
p.grant = grant;
}
if ( p.flag & 0x400 ) {
p.fixAxis = dv.getFloat32Array( 3 );
}
if ( p.flag & 0x800 ) {
p.localXVector = dv.getFloat32Array( 3 );
p.localZVector = dv.getFloat32Array( 3 );
}
if ( p.flag & 0x2000 ) {
p.key = dv.getUint32();
}
if ( p.flag & 0x20 ) {
var ik = {};
ik.effector = dv.getIndex( pmx.metadata.boneIndexSize );
ik.target = null;
ik.iteration = dv.getUint32();
ik.maxAngle = dv.getFloat32();
ik.linkCount = dv.getUint32();
ik.links = [];
for ( var i = 0; i < ik.linkCount; i ++ ) {
var link = {};
link.index = dv.getIndex( pmx.metadata.boneIndexSize );
link.angleLimitation = dv.getUint8();
if ( link.angleLimitation === 1 ) {
link.lowerLimitationAngle = dv.getFloat32Array( 3 );
link.upperLimitationAngle = dv.getFloat32Array( 3 );
}
ik.links.push( link );
}
p.ik = ik;
}
return p;
};
var metadata = pmx.metadata;
metadata.boneCount = dv.getUint32();
pmx.bones = [];
for ( var i = 0; i < metadata.boneCount; i ++ ) {
pmx.bones.push( parseBone() );
}
};
var parseMorphs = function () {
var parseMorph = function () {
var p = {};
p.name = dv.getTextBuffer();
p.englishName = dv.getTextBuffer();
p.panel = dv.getUint8();
p.type = dv.getUint8();
p.elementCount = dv.getUint32();
p.elements = [];
for ( var i = 0; i < p.elementCount; i ++ ) {
if ( p.type === 0 ) { // group morph
var m = {};
m.index = dv.getIndex( pmx.metadata.morphIndexSize );
m.ratio = dv.getFloat32();
p.elements.push( m );
} else if ( p.type === 1 ) { // vertex morph
var m = {};
m.index = dv.getIndex( pmx.metadata.vertexIndexSize, true );
m.position = dv.getFloat32Array( 3 );
p.elements.push( m );
} else if ( p.type === 2 ) { // bone morph
var m = {};
m.index = dv.getIndex( pmx.metadata.boneIndexSize );
m.position = dv.getFloat32Array( 3 );
m.rotation = dv.getFloat32Array( 4 );
p.elements.push( m );
} else if ( p.type === 3 ) { // uv morph
var m = {};
m.index = dv.getIndex( pmx.metadata.vertexIndexSize, true );
m.uv = dv.getFloat32Array( 4 );
p.elements.push( m );
} else if ( p.type === 4 ) { // additional uv1
// TODO: implement
} else if ( p.type === 5 ) { // additional uv2
// TODO: implement
} else if ( p.type === 6 ) { // additional uv3
// TODO: implement
} else if ( p.type === 7 ) { // additional uv4
// TODO: implement
} else if ( p.type === 8 ) { // material morph
var m = {};
m.index = dv.getIndex( pmx.metadata.materialIndexSize );
m.type = dv.getUint8();
m.diffuse = dv.getFloat32Array( 4 );
m.specular = dv.getFloat32Array( 3 );
m.shininess = dv.getFloat32();
m.ambient = dv.getFloat32Array( 3 );
m.edgeColor = dv.getFloat32Array( 4 );
m.edgeSize = dv.getFloat32();
m.textureColor = dv.getFloat32Array( 4 );
m.sphereTextureColor = dv.getFloat32Array( 4 );
m.toonColor = dv.getFloat32Array( 4 );
p.elements.push( m );
}
}
return p;
};
var metadata = pmx.metadata;
metadata.morphCount = dv.getUint32();
pmx.morphs = [];
for ( var i = 0; i < metadata.morphCount; i ++ ) {
pmx.morphs.push( parseMorph() );
}
};
var parseFrames = function () {
var parseFrame = function () {
var p = {};
p.name = dv.getTextBuffer();
p.englishName = dv.getTextBuffer();
p.type = dv.getUint8();
p.elementCount = dv.getUint32();
p.elements = [];
for ( var i = 0; i < p.elementCount; i ++ ) {
var e = {};
e.target = dv.getUint8();
e.index = ( e.target === 0 ) ? dv.getIndex( pmx.metadata.boneIndexSize ) : dv.getIndex( pmx.metadata.morphIndexSize );
p.elements.push( e );
}
return p;
};
var metadata = pmx.metadata;
metadata.frameCount = dv.getUint32();
pmx.frames = [];
for ( var i = 0; i < metadata.frameCount; i ++ ) {
pmx.frames.push( parseFrame() );
}
};
var parseRigidBodies = function () {
var parseRigidBody = function () {
var p = {};
p.name = dv.getTextBuffer();
p.englishName = dv.getTextBuffer();
p.boneIndex = dv.getIndex( pmx.metadata.boneIndexSize );
p.groupIndex = dv.getUint8();
p.groupTarget = dv.getUint16();
p.shapeType = dv.getUint8();
p.width = dv.getFloat32();
p.height = dv.getFloat32();
p.depth = dv.getFloat32();
p.position = dv.getFloat32Array( 3 );
p.rotation = dv.getFloat32Array( 3 );
p.weight = dv.getFloat32();
p.positionDamping = dv.getFloat32();
p.rotationDamping = dv.getFloat32();
p.restitution = dv.getFloat32();
p.friction = dv.getFloat32();
p.type = dv.getUint8();
return p;
};
var metadata = pmx.metadata;
metadata.rigidBodyCount = dv.getUint32();
pmx.rigidBodies = [];
for ( var i = 0; i < metadata.rigidBodyCount; i ++ ) {
pmx.rigidBodies.push( parseRigidBody() );
}
};
var parseConstraints = function () {
var parseConstraint = function () {
var p = {};
p.name = dv.getTextBuffer();
p.englishName = dv.getTextBuffer();
p.type = dv.getUint8();
p.rigidBodyIndex1 = dv.getIndex( pmx.metadata.rigidBodyIndexSize );
p.rigidBodyIndex2 = dv.getIndex( pmx.metadata.rigidBodyIndexSize );
p.position = dv.getFloat32Array( 3 );
p.rotation = dv.getFloat32Array( 3 );
p.translationLimitation1 = dv.getFloat32Array( 3 );
p.translationLimitation2 = dv.getFloat32Array( 3 );
p.rotationLimitation1 = dv.getFloat32Array( 3 );
p.rotationLimitation2 = dv.getFloat32Array( 3 );
p.springPosition = dv.getFloat32Array( 3 );
p.springRotation = dv.getFloat32Array( 3 );
return p;
};
var metadata = pmx.metadata;
metadata.constraintCount = dv.getUint32();
pmx.constraints = [];
for ( var i = 0; i < metadata.constraintCount; i ++ ) {
pmx.constraints.push( parseConstraint() );
}
};
parseHeader();
parseVertices();
parseFaces();
parseTextures();
parseMaterials();
parseBones();
parseMorphs();
parseFrames();
parseRigidBodies();
parseConstraints();
if ( leftToRight === true ) this.leftToRightModel( pmx );
// console.log( pmx ); // for console debug
return pmx;
};
Parser.prototype.parseVmd = function ( buffer, leftToRight ) {
var vmd = {};
var dv = new DataViewEx( buffer );
vmd.metadata = {};
vmd.metadata.coordinateSystem = 'left';
var parseHeader = function () {
var metadata = vmd.metadata;
metadata.magic = dv.getChars( 30 );
if ( metadata.magic !== 'Vocaloid Motion Data 0002' ) {
throw 'VMD file magic is not Vocaloid Motion Data 0002, but ' + metadata.magic;
}
metadata.name = dv.getSjisStringsAsUnicode( 20 );
};
var parseMotions = function () {
var parseMotion = function () {
var p = {};
p.boneName = dv.getSjisStringsAsUnicode( 15 );
p.frameNum = dv.getUint32();
p.position = dv.getFloat32Array( 3 );
p.rotation = dv.getFloat32Array( 4 );
p.interpolation = dv.getUint8Array( 64 );
return p;
};
var metadata = vmd.metadata;
metadata.motionCount = dv.getUint32();
vmd.motions = [];
for ( var i = 0; i < metadata.motionCount; i ++ ) {
vmd.motions.push( parseMotion() );
}
};
var parseMorphs = function () {
var parseMorph = function () {
var p = {};
p.morphName = dv.getSjisStringsAsUnicode( 15 );
p.frameNum = dv.getUint32();
p.weight = dv.getFloat32();
return p;
};
var metadata = vmd.metadata;
metadata.morphCount = dv.getUint32();
vmd.morphs = [];
for ( var i = 0; i < metadata.morphCount; i ++ ) {
vmd.morphs.push( parseMorph() );
}
};
var parseCameras = function () {
var parseCamera = function () {
var p = {};
p.frameNum = dv.getUint32();
p.distance = dv.getFloat32();
p.position = dv.getFloat32Array( 3 );
p.rotation = dv.getFloat32Array( 3 );
p.interpolation = dv.getUint8Array( 24 );
p.fov = dv.getUint32();
p.perspective = dv.getUint8();
return p;
};
var metadata = vmd.metadata;
metadata.cameraCount = dv.getUint32();
vmd.cameras = [];
for ( var i = 0; i < metadata.cameraCount; i ++ ) {
vmd.cameras.push( parseCamera() );
}
};
parseHeader();
parseMotions();
parseMorphs();
parseCameras();
if ( leftToRight === true ) this.leftToRightVmd( vmd );
// console.log( vmd ); // for console debug
return vmd;
};
Parser.prototype.parseVpd = function ( text, leftToRight ) {
var vpd = {};
vpd.metadata = {};
vpd.metadata.coordinateSystem = 'left';
vpd.bones = [];
var commentPatternG = /\/\/\w*(\r|\n|\r\n)/g;
var newlinePattern = /\r|\n|\r\n/;
var lines = text.replace( commentPatternG, '' ).split( newlinePattern );
function throwError() {
throw 'the file seems not vpd file.';
}
function checkMagic() {
if ( lines[ 0 ] !== 'Vocaloid Pose Data file' ) {
throwError();
}
}
function parseHeader() {
if ( lines.length < 4 ) {
throwError();
}
vpd.metadata.parentFile = lines[ 2 ];
vpd.metadata.boneCount = parseInt( lines[ 3 ] );
}
function parseBones() {
var boneHeaderPattern = /^\s*(Bone[0-9]+)\s*\{\s*(.*)$/;
var boneVectorPattern = /^\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*;/;
var boneQuaternionPattern = /^\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*,\s*(-?[0-9]+\.[0-9]+)\s*;/;
var boneFooterPattern = /^\s*}/;
var bones = vpd.bones;
var n = null;
var v = null;
var q = null;
for ( var i = 4; i < lines.length; i ++ ) {
var line = lines[ i ];
var result;
result = line.match( boneHeaderPattern );
if ( result !== null ) {
if ( n !== null ) {
throwError();
}
n = result[ 2 ];
}
result = line.match( boneVectorPattern );
if ( result !== null ) {
if ( v !== null ) {
throwError();
}
v = [
parseFloat( result[ 1 ] ),
parseFloat( result[ 2 ] ),
parseFloat( result[ 3 ] )
];
}
result = line.match( boneQuaternionPattern );
if ( result !== null ) {
if ( q !== null ) {
throwError();
}
q = [
parseFloat( result[ 1 ] ),
parseFloat( result[ 2 ] ),
parseFloat( result[ 3 ] ),
parseFloat( result[ 4 ] )
];
}
result = line.match( boneFooterPattern );
if ( result !== null ) {
if ( n === null || v === null || q === null ) {
throwError();
}
bones.push( {
name: n,
translation: v,
quaternion: q
} );
n = null;
v = null;
q = null;
}
}
if ( n !== null || v !== null || q !== null ) {
throwError();
}
}
checkMagic();
parseHeader();
parseBones();
if ( leftToRight === true ) this.leftToRightVpd( vpd );
// console.log( vpd ); // for console debug
return vpd;
};
Parser.prototype.mergeVmds = function ( vmds ) {
var v = {};
v.metadata = {};
v.metadata.name = vmds[ 0 ].metadata.name;
v.metadata.coordinateSystem = vmds[ 0 ].metadata.coordinateSystem;
v.metadata.motionCount = 0;
v.metadata.morphCount = 0;
v.metadata.cameraCount = 0;
v.motions = [];
v.morphs = [];
v.cameras = [];
for ( var i = 0; i < vmds.length; i ++ ) {
var v2 = vmds[ i ];
v.metadata.motionCount += v2.metadata.motionCount;
v.metadata.morphCount += v2.metadata.morphCount;
v.metadata.cameraCount += v2.metadata.cameraCount;
for ( var j = 0; j < v2.metadata.motionCount; j ++ ) {
v.motions.push( v2.motions[ j ] );
}
for ( var j = 0; j < v2.metadata.morphCount; j ++ ) {
v.morphs.push( v2.morphs[ j ] );
}
for ( var j = 0; j < v2.metadata.cameraCount; j ++ ) {
v.cameras.push( v2.cameras[ j ] );
}
}
return v;
};
Parser.prototype.leftToRightModel = function ( model ) {
if ( model.metadata.coordinateSystem === 'right' ) {
return;
}
model.metadata.coordinateSystem = 'right';
var helper = new DataCreationHelper();
for ( var i = 0; i < model.metadata.vertexCount; i ++ ) {
helper.leftToRightVector3( model.vertices[ i ].position );
helper.leftToRightVector3( model.vertices[ i ].normal );
}
for ( var i = 0; i < model.metadata.faceCount; i ++ ) {
helper.leftToRightIndexOrder( model.faces[ i ].indices );
}
for ( var i = 0; i < model.metadata.boneCount; i ++ ) {
helper.leftToRightVector3( model.bones[ i ].position );
}
// TODO: support other morph for PMX
for ( var i = 0; i < model.metadata.morphCount; i ++ ) {
var m = model.morphs[ i ];
if ( model.metadata.format === 'pmx' && m.type !== 1 ) {
// TODO: implement
continue;
}
for ( var j = 0; j < m.elements.length; j ++ ) {
helper.leftToRightVector3( m.elements[ j ].position );
}
}
for ( var i = 0; i < model.metadata.rigidBodyCount; i ++ ) {
helper.leftToRightVector3( model.rigidBodies[ i ].position );
helper.leftToRightEuler( model.rigidBodies[ i ].rotation );
}
for ( var i = 0; i < model.metadata.constraintCount; i ++ ) {
helper.leftToRightVector3( model.constraints[ i ].position );
helper.leftToRightEuler( model.constraints[ i ].rotation );
helper.leftToRightVector3Range( model.constraints[ i ].translationLimitation1, model.constraints[ i ].translationLimitation2 );
helper.leftToRightEulerRange( model.constraints[ i ].rotationLimitation1, model.constraints[ i ].rotationLimitation2 );
}
};
Parser.prototype.leftToRightVmd = function ( vmd ) {
if ( vmd.metadata.coordinateSystem === 'right' ) {
return;
}
vmd.metadata.coordinateSystem = 'right';
var helper = new DataCreationHelper();
for ( var i = 0; i < vmd.metadata.motionCount; i ++ ) {
helper.leftToRightVector3( vmd.motions[ i ].position );
helper.leftToRightQuaternion( vmd.motions[ i ].rotation );
}
for ( var i = 0; i < vmd.metadata.cameraCount; i ++ ) {
helper.leftToRightVector3( vmd.cameras[ i ].position );
helper.leftToRightEuler( vmd.cameras[ i ].rotation );
}
};
Parser.prototype.leftToRightVpd = function ( vpd ) {
if ( vpd.metadata.coordinateSystem === 'right' ) {
return;
}
vpd.metadata.coordinateSystem = 'right';
var helper = new DataCreationHelper();
for ( var i = 0; i < vpd.bones.length; i ++ ) {
helper.leftToRightVector3( vpd.bones[ i ].translation );
helper.leftToRightQuaternion( vpd.bones[ i ].quaternion );
}
};
var MMDParser = { CharsetEncoder, Parser };
export { MMDParser };