node-ejs-renderer/node_modules/three/examples/jsm/libs/mmdparser.module.js
2024-06-09 13:55:01 -04:00

11531 lines
155 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) {
console.error('unknown char code ' + key + '.');
return str;
}
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: CharsetEncoder,
Parser: Parser
};
export { MMDParser, CharsetEncoder, Parser };