-
Notifications
You must be signed in to change notification settings - Fork 8
/
utils_datasets.py
361 lines (355 loc) · 39.9 KB
/
utils_datasets.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
import os
UKB_IDS_PATH = os.path.join('meta_data', 'ukb_ids.npy')
UKB_TIMESERIES_PATH = os.path.join(os.pardir, 'uk_biobank_dataset', 'desikan_ts', 'ts_raw')
UKB_PHENOTYPE_PATH = os.path.join('meta_data', 'Main_Covars.csv')
STRUCT_COLUMNS = ['l_bankssts', 'l_caudalanteriorcingulate', 'l_caudalmiddlefrontal', 'l_cuneus', 'l_entorhinal',
'l_fusiform', 'l_inferiorparietal', 'l_inferiortemporal', 'l_isthmuscingulate', 'l_lateraloccipital',
'l_lateralorbitofrontal', 'l_lingual', 'l_medialorbitofrontal', 'l_middletemporal',
'l_parahippocampal', 'l_paracentral', 'l_parsopercularis', 'l_parsorbitalis', 'l_parstriangularis',
'l_pericalcarine', 'l_postcentral', 'l_posteriorcingulate', 'l_precentral', 'l_precuneus',
'l_rostralanteriorcingulate', 'l_rostralmiddlefrontal', 'l_superiorfrontal', 'l_superiorparietal',
'l_superiortemporal', 'l_supramarginal', 'l_frontalpole', 'l_temporalpole', 'l_transversetemporal',
'l_insula', 'r_bankssts', 'r_caudalanteriorcingulate', 'r_caudalmiddlefrontal', 'r_cuneus',
'r_entorhinal', 'r_fusiform', 'r_inferiorparietal', 'r_inferiortemporal', 'r_isthmuscingulate',
'r_lateraloccipital', 'r_lateralorbitofrontal', 'r_lingual', 'r_medialorbitofrontal',
'r_middletemporal', 'r_parahippocampal', 'r_paracentral', 'r_parsopercularis', 'r_parsorbitalis',
'r_parstriangularis', 'r_pericalcarine', 'r_postcentral', 'r_posteriorcingulate', 'r_precentral',
'r_precuneus', 'r_rostralanteriorcingulate', 'r_rostralmiddlefrontal', 'r_superiorfrontal',
'r_superiorparietal', 'r_superiortemporal', 'r_supramarginal', 'r_frontalpole', 'r_temporalpole',
'r_transversetemporal', 'r_insula']
NODE_FEATURES_NAMES = ['thck', 'area', 'numvert', 'grayvol', 'thckstd', 'meancurv', 'gauscurv', 'foldind', 'curvind',
'myel']
DESIKAN_TRACKS = [100206, 100307, 100408, 100610, 101107, 101309, 101410, 101915, 102008, 102311, 102513, 102614,
102715, 102816, 103010, 103111, 103212, 103414, 103515, 103818, 104012, 104416, 104820, 105014,
105115, 105216, 105620, 105923, 106016, 106319, 106521, 106824, 107018, 107321, 107422, 107725,
108020, 108121, 108222, 108323, 108525, 108828, 109123, 109830, 110007, 110411, 110613, 111009,
111211, 111312, 111413, 111514, 111716, 112112, 112314, 112516, 112819, 112920, 113215, 113316,
113619, 113821, 113922, 114116, 114217, 114318, 114419, 114621, 114823, 115017, 115219, 115320,
115724, 115825, 116221, 116423, 116524, 116726, 117021, 117122, 117324, 117930, 118023, 118124,
118225, 118528, 118730, 118831, 118932, 119025, 119126, 119732, 119833, 120010, 120111, 120212,
120414, 120515, 120717, 121416, 121618, 121719, 121921, 122317, 122418, 122620, 122822, 123117,
123420, 123521, 123723, 123824, 123925, 124220, 124422, 124624, 124826, 125222, 125424, 125525,
126325, 126426, 126628, 127226, 127327, 127630, 127731, 127832, 127933, 128026, 128127, 128632,
128935, 129028, 129129, 129331, 129634, 129937, 130013, 130114, 130316, 130417, 130518, 130619,
130720, 130821, 130922, 131217, 131419, 131722, 131823, 131924, 132017, 132118, 133019, 133625,
133827, 133928, 134021, 134223, 134324, 134425, 134627, 134728, 134829, 135124, 135225, 135528,
135629, 135730, 135932, 136126, 136227, 136631, 136732, 136833, 137027, 137128, 137229, 137431,
137532, 137633, 137936, 138130, 138231, 138332, 138534, 138837, 139233, 139435, 139637, 139839,
140117, 140319, 140420, 140824, 140925, 141119, 141422, 141826, 142828, 143224, 143325, 143426,
143830, 144125, 144226, 144428, 144731, 144832, 144933, 145127, 145632, 145834, 146129, 146331,
146432, 146533, 146634, 146735, 146836, 146937, 147030, 147636, 147737, 148032, 148133, 148335,
148436, 148840, 148941, 149236, 149337, 149539, 149741, 149842, 150019, 150524, 150625, 150726,
150928, 151021, 151223, 151324, 151425, 151526, 151627, 151728, 151829, 151930, 152225, 152427,
152831, 153025, 153126, 153227, 153429, 153631, 153732, 153833, 153934, 154229, 154330, 154431,
154532, 154734, 154835, 154936, 155231, 155635, 155938, 156031, 156233, 156334, 156435, 156536,
156637, 157336, 157437, 157942, 158035, 158136, 158338, 158540, 158843, 159138, 159239, 159340,
159744, 159946, 160123, 160729, 160830, 160931, 161327, 161630, 161731, 161832, 162026, 162228,
162329, 162733, 162935, 163129, 163331, 163432, 163836, 164030, 164131, 164636, 164939, 165032,
165436, 165638, 165840, 165941, 166438, 166640, 167036, 167238, 167440, 167743, 168139, 168240,
168341, 168745, 168947, 169040, 169343, 169444, 169545, 169747, 169949, 170631, 170934, 171330,
171431, 171532, 171633, 172029, 172130, 172332, 172433, 172534, 172635, 172938, 173132, 173233,
173334, 173435, 173536, 173637, 173738, 173839, 173940, 174437, 174841, 175035, 175136, 175237,
175338, 175439, 175540, 175742, 176037, 176239, 176441, 176542, 176744, 176845, 177140, 177241,
177342, 177645, 177746, 178142, 178243, 178647, 178748, 178849, 178950, 179245, 179346, 179952,
180129, 180230, 180432, 180533, 180735, 180836, 180937, 181131, 181232, 181636, 182032, 182436,
182739, 182840, 183034, 183337, 183741, 185038, 185139, 185341, 185442, 185846, 185947, 186040,
186141, 186444, 186545, 186848, 187143, 187345, 187547, 187850, 188145, 188347, 188448, 188549,
188751, 189349, 189450, 189652, 190031, 191033, 191235, 191336, 191437, 191841, 191942, 192035,
192136, 192237, 192439, 192540, 192641, 192843, 193239, 193441, 193845, 194140, 194443, 194645,
194746, 194847, 195041, 195445, 195647, 195849, 195950, 196144, 196346, 196750, 196851, 196952,
197348, 197550, 197651, 198047, 198249, 198350, 198451, 198653, 198855, 199150, 199251, 199352,
199453, 199655, 199958, 200008, 200109, 200210, 200311, 200513, 200614, 200917, 201111, 201414,
201515, 201818, 202113, 202719, 202820, 203418, 203923, 204016, 204218, 204319, 204420, 204521,
204622, 205119, 205220, 205725, 205826, 206222, 206323, 206525, 206727, 206828, 206929, 207123,
207426, 208024, 208125, 208226, 208327, 208428, 208630, 209127, 209228, 209329, 209834, 209935,
210011, 210112, 210415, 210617, 211114, 211215, 211316, 211417, 211619, 211720, 211821, 211922,
212015, 212116, 212217, 212318, 212419, 212823, 213017, 213421, 213522, 214019, 214221, 214423,
214524, 214625, 214726, 217126, 217429, 219231, 220721, 221319, 223929, 224022, 227432, 227533,
228434, 231928, 233326, 236130, 237334, 238033, 239944, 245333, 246133, 248238, 248339, 249947,
250427, 250932, 251833, 255639, 255740, 256540, 257542, 257845, 257946, 263436, 268749, 268850,
270332, 274542, 275645, 280739, 280941, 281135, 283543, 284646, 285345, 285446, 286347, 286650,
287248, 289555, 290136, 293748, 295146, 297655, 298051, 298455, 299154, 299760, 300618, 300719,
303119, 303624, 304020, 304727, 305830, 307127, 308129, 308331, 309636, 310621, 311320, 314225,
316633, 316835, 317332, 318637, 320826, 321323, 322224, 325129, 329440, 329844, 330324, 333330,
334635, 336841, 339847, 341834, 342129, 346137, 346945, 348545, 349244, 350330, 351938, 352132,
352738, 353740, 355239, 356948, 358144, 360030, 361234, 361941, 362034, 365343, 366042, 366446,
368551, 368753, 371843, 376247, 377451, 378756, 378857, 379657, 380036, 381038, 381543, 382242,
385046, 385450, 386250, 387959, 389357, 390645, 391748, 392447, 392750, 393247, 393550, 394956,
395251, 395756, 395958, 397154, 397760, 397861, 406432, 406836, 412528, 414229, 415837, 422632,
424939, 429040, 432332, 433839, 436239, 436845, 441939, 445543, 448347, 449753, 453441, 456346,
459453, 465852, 467351, 473952, 475855, 479762, 480141, 481951, 485757, 486759, 492754, 495255,
497865, 499566, 500222, 506234, 510326, 512835, 513736, 517239, 519950, 520228, 521331, 522434,
523032, 524135, 525541, 529549, 529953, 530635, 531536, 536647, 540436, 541943, 545345, 547046,
548250, 549757, 553344, 555348, 555651, 557857, 559053, 561242, 561444, 562345, 562446, 565452,
566454, 567052, 567961, 568963, 570243, 571144, 571548, 572045, 573249, 573451, 576255, 579665,
579867, 580044, 580347, 580650, 580751, 581349, 581450, 583858, 585256, 585862, 586460, 587664,
588565, 592455, 594156, 597869, 598568, 599065, 599469, 599671, 601127, 604537, 609143, 611938,
613538, 614439, 615744, 616645, 617748, 618952, 620434, 622236, 623844, 626648, 627549, 627852,
628248, 633847, 638049, 644044, 645450, 645551, 647858, 654350, 654754, 656253, 656657, 657659,
660951, 663755, 664757, 665254, 667056, 668361, 671855, 672756, 673455, 677766, 677968, 679568,
679770, 680250, 680957, 683256, 685058, 686969, 690152, 693461, 693764, 695768, 700634, 702133,
704238, 705341, 706040, 707749, 709551, 713239, 715041, 715647, 715950, 720337, 724446, 725751,
727553, 727654, 729254, 729557, 731140, 732243, 734045, 735148, 737960, 742549, 744553, 748258,
749058, 749361, 751348, 751550, 753150, 753251, 756055, 759869, 761957, 765056, 766563, 767464,
769064, 770352, 771354, 773257, 779370, 782561, 783462, 784565, 786569, 788876, 789373, 792564,
792766, 792867, 793465, 800941, 802844, 803240, 810439, 810843, 812746, 814649, 816653, 818859,
820745, 825048, 826353, 826454, 833148, 833249, 835657, 837560, 837964, 841349, 843151, 844961,
845458, 849264, 849971, 852455, 856463, 856766, 856968, 857263, 859671, 861456, 865363, 867468,
870861, 871762, 871964, 872158, 872562, 872764, 873968, 877168, 877269, 880157, 882161, 885975,
887373, 889579, 891667, 894067, 894673, 894774, 896778, 896879, 898176, 899885, 901038, 901139,
901442, 904044, 907656, 910241, 910443, 912447, 917255, 917558, 919966, 922854, 923755, 930449,
932554, 937160, 947668, 951457, 952863, 955465, 957974, 958976, 959574, 965367, 965771, 966975,
972566, 978578, 979984, 983773, 984472, 987983, 990366, 991267, 992673, 992774, 993675, 994273,
996782]
# Only for people with the 4 scans
# Removed because bad in some directions: 119732, 171431, 183337, 196952, 202820, 284646, 317332, 751550
DESIKAN_COMPLETE_TS = [100206, 100307, 100408, 100610, 101006, 101107, 101309, 101915, 102008, 102109, 102311, 102513,
102614, 102715, 102816, 103010, 103111, 103212, 103414, 103515, 103818, 104012, 104416, 104820,
105014, 105115, 105216, 105620, 105923, 106016, 106319, 106521, 106824, 107018, 107321, 107422,
107725, 108020, 108121, 108222, 108323, 108525, 108828, 109123, 109325, 109830, 110007, 110411,
110613, 111009, 111211, 111312, 111413, 111514, 111716, 112112, 112314, 112516, 112920, 113215,
113316, 113619, 113922, 114217, 114318, 114419, 114621, 114823, 114924, 115017, 115219, 115320,
115724, 115825, 116524, 116726, 117021, 117122, 117324, 117930, 118023, 118124, 118225, 118528,
118730, 118831, 118932, 119025, 119126, 120111, 120212, 120414, 120515, 120717, 121416,
121618, 121921, 122317, 122620, 122822, 123117, 123420, 123521, 123723, 123824, 123925, 124220,
124422, 124624, 124826, 125222, 125424, 125525, 126325, 126426, 126628, 127226, 127327, 127630,
127731, 127832, 127933, 128026, 128127, 128632, 128935, 129028, 129129, 129331, 129634, 130013,
130114, 130316, 130417, 130518, 130619, 130720, 130821, 130922, 131217, 131419, 131722, 131823,
131924, 132017, 132118, 133019, 133625, 133827, 133928, 134021, 134223, 134324, 134425, 134627,
134728, 134829, 135124, 135225, 135528, 135629, 135730, 135932, 136126, 136227, 136631, 136732,
136833, 137027, 137128, 137229, 137431, 137532, 137633, 137936, 138130, 138231, 138332, 138534,
138837, 139233, 139435, 139637, 139839, 140117, 140319, 140824, 140925, 141119, 141422, 141826,
142828, 143224, 143325, 143426, 143830, 144125, 144226, 144428, 144731, 144832, 144933, 145127,
145632, 145834, 146129, 146331, 146432, 146533, 146735, 146836, 146937, 147030, 147636, 147737,
148032, 148133, 148335, 148436, 148840, 148941, 149236, 149337, 149539, 149741, 149842, 150423,
150625, 150726, 150928, 151223, 151324, 151425, 151526, 151627, 151728, 151829, 151930, 152225,
152427, 152831, 153025, 153126, 153227, 153429, 153631, 153732, 153833, 153934, 154229, 154330,
154431, 154532, 154734, 154835, 154936, 155635, 155938, 156031, 156233, 156334, 156435, 156536,
156637, 157336, 157437, 157942, 158035, 158136, 158338, 158540, 158843, 159138, 159239, 159340,
159441, 159744, 160123, 160729, 160830, 161327, 161630, 161731, 161832, 162026, 162228, 162329,
162733, 162935, 163129, 163331, 163432, 163836, 164030, 164131, 164636, 164939, 165032, 165436,
165638, 165840, 165941, 166438, 166640, 167036, 167238, 167440, 167743, 168139, 168240, 168341,
168745, 168947, 169040, 169343, 169444, 169545, 169949, 170631, 171330, 171532, 171633,
172029, 172130, 172332, 172433, 172534, 172938, 173334, 173435, 173536, 173637, 173738, 173839,
173940, 174437, 174841, 175035, 175136, 175237, 175338, 175439, 175540, 175742, 176037, 176239,
176441, 176542, 176744, 176845, 177140, 177241, 177645, 177746, 178142, 178243, 178647, 178748,
178849, 178950, 179245, 179346, 180129, 180230, 180432, 180533, 180735, 180836, 180937, 181131,
181232, 181636, 182032, 182436, 182739, 182840, 183034, 185038, 185139, 185341, 185442,
185846, 185947, 186040, 186141, 186444, 186545, 186848, 187143, 187345, 187547, 187850, 188145,
188347, 188448, 188549, 188751, 189349, 189450, 189652, 190031, 191033, 191235, 191336, 191437,
191841, 191942, 192035, 192136, 192237, 192439, 192540, 192641, 192843, 193239, 193845, 194140,
194443, 194645, 194746, 194847, 195041, 195445, 195647, 195849, 195950, 196144, 196346, 196750,
197348, 197550, 198047, 198249, 198350, 198451, 198653, 198855, 199150, 199251, 199352,
199453, 199655, 199958, 200008, 200109, 200311, 200513, 200614, 200917, 201111, 201414, 201515,
201818, 202113, 202719, 203418, 203923, 204016, 204218, 204319, 204420, 204521, 204622,
205119, 205220, 205725, 205826, 206222, 206323, 206525, 206727, 206828, 206929, 207123, 207426,
208024, 208125, 208226, 208327, 208630, 209127, 209228, 209329, 209834, 209935, 210011, 210112,
210415, 210617, 211114, 211215, 211316, 211417, 211619, 211720, 211821, 211922, 212015, 212116,
212217, 212318, 212419, 212823, 213017, 213421, 213522, 214019, 214221, 214423, 214524, 214625,
214726, 217126, 217429, 219231, 220721, 221319, 223929, 224022, 227432, 227533, 228434, 231928,
233326, 236130, 237334, 238033, 239136, 239944, 245333, 246133, 248339, 249947, 250427, 250932,
251833, 255639, 255740, 256540, 257542, 257845, 257946, 263436, 268749, 268850, 270332, 274542,
275645, 280739, 280941, 281135, 283543, 285345, 285446, 286347, 286650, 287248, 289555,
290136, 293748, 295146, 297655, 298051, 298455, 299154, 299760, 300618, 300719, 303119, 303624,
304020, 304727, 305830, 307127, 308129, 308331, 309636, 310621, 311320, 314225, 316633, 316835,
318637, 320826, 321323, 322224, 325129, 329440, 329844, 330324, 333330, 334635, 336841,
339847, 341834, 342129, 346137, 346945, 348545, 349244, 350330, 352132, 352738, 353740, 356948,
358144, 360030, 361234, 361941, 365343, 366042, 366446, 368551, 368753, 371843, 376247, 377451,
378756, 378857, 379657, 380036, 381038, 381543, 382242, 385046, 385450, 386250, 387959, 389357,
390645, 391748, 392447, 392750, 393247, 393550, 394956, 395251, 395756, 395958, 397154, 397760,
397861, 401422, 406432, 406836, 412528, 413934, 414229, 415837, 419239, 421226, 422632, 424939,
429040, 432332, 433839, 436239, 436845, 441939, 445543, 448347, 449753, 453441, 453542, 454140,
456346, 459453, 461743, 463040, 465852, 467351, 468050, 469961, 475855, 479762, 480141, 481042,
481951, 485757, 486759, 495255, 497865, 499566, 500222, 506234, 510225, 510326, 512835, 513130,
513736, 516742, 517239, 518746, 519647, 519950, 520228, 522434, 523032, 524135, 525541, 529549,
529953, 530635, 531536, 531940, 536647, 540436, 541640, 541943, 545345, 547046, 548250, 552241,
552544, 553344, 555348, 555651, 555954, 557857, 558657, 558960, 559053, 559457, 561242, 561444,
561949, 562345, 562446, 565452, 566454, 567052, 567759, 567961, 568963, 570243, 571144, 572045,
573249, 573451, 576255, 578057, 579665, 579867, 580044, 580347, 580650, 580751, 581349, 581450,
583858, 585256, 585862, 586460, 587664, 588565, 589567, 590047, 592455, 594156, 597869, 598568,
599065, 599469, 599671, 601127, 604537, 609143, 611938, 613538, 614439, 615441, 615744, 616645,
617748, 618952, 620434, 622236, 623844, 626648, 627549, 627852, 628248, 633847, 634748, 635245,
638049, 644246, 645450, 645551, 647858, 654350, 654754, 656253, 656657, 657659, 660951, 662551,
663755, 664757, 665254, 667056, 668361, 671855, 672756, 673455, 675661, 677766, 677968, 679568,
679770, 680250, 680452, 680957, 683256, 685058, 686969, 687163, 690152, 692964, 693764, 694362,
695768, 698168, 700634, 702133, 704238, 705341, 706040, 707749, 709551, 713239, 715041, 715647,
715950, 720337, 723141, 724446, 725751, 727553, 727654, 728454, 729254, 729557, 731140, 732243,
734045, 735148, 737960, 742549, 744553, 748258, 748662, 749058, 749361, 751348, 753150,
753251, 756055, 757764, 759869, 760551, 761957, 763557, 765056, 765864, 767464, 769064, 770352,
771354, 773257, 774663, 779370, 782561, 783462, 784565, 788674, 788876, 789373, 792564,
792766, 792867, 793465, 800941, 802844, 803240, 804646, 809252, 810843, 812746, 814548, 814649,
815247, 816653, 818455, 818859, 820745, 825048, 825553, 825654, 826353, 826454, 827052, 828862,
832651, 833148, 833249, 835657, 837560, 837964, 841349, 843151, 844961, 845458, 849264, 849971,
852455, 856766, 856968, 857263, 859671, 861456, 865363, 867468, 869472, 870861, 871762, 871964,
872158, 872562, 872764, 873968, 877168, 877269, 878776, 878877, 880157, 882161, 884064, 885975,
886674, 887373, 888678, 889579, 891667, 894067, 894673, 894774, 896778, 896879, 898176, 899885,
901038, 901139, 901442, 902242, 904044, 905147, 907656, 908860, 910241, 910443, 911849, 912447,
917255, 917558, 919966, 922854, 923755, 926862, 927359, 930449, 932554, 933253, 937160, 942658,
943862, 947668, 951457, 952863, 955465, 957974, 958976, 959574, 962058, 965367, 965771, 966975,
969476, 970764, 971160, 978578, 979984, 983773, 984472, 987074, 987983, 989987, 990366, 991267,
992673, 992774, 993675, 994273, 996782]
UKB_WITHOUT_BMI = [1000531, 1006841, 1007645, 1009385, 1011364, 1022920, 1023146, 1023629, 1025225, 1025416, 1028600,
1029922, 1036245, 1037847, 1038603, 1040242, 1040783, 1052008, 1054651, 1059341, 1060261, 1066576,
1068132, 1069518, 1074090, 1083253, 1087493, 1088530, 1090309, 1091233, 1091490, 1091513, 1095573,
1096420, 1100685, 1101292, 1101896, 1103589, 1105255, 1109910, 1111640, 1118787, 1120861, 1124352,
1129316, 1132191, 1136818, 1140926, 1141490, 1148305, 1152081, 1154550, 1156121, 1167753, 1173162,
1173867, 1174833, 1179153, 1181291, 1184103, 1186662, 1187131, 1193044, 1200704, 1208431, 1212343,
1215045, 1215905, 1217446, 1218306, 1218539, 1219134, 1222346, 1222401, 1223314, 1225740, 1226955,
1228925, 1229994, 1230025, 1230074, 1230564, 1233395, 1235334, 1237930, 1244201, 1245890, 1253057,
1253989, 1255170, 1256929, 1257205, 1258891, 1261223, 1270028, 1282218, 1288311, 1294720, 1294956,
1297982, 1303823, 1304392, 1304550, 1305852, 1306217, 1310360, 1317124, 1328031, 1328753, 1331164,
1332458, 1335167, 1350938, 1355099, 1358914, 1360088, 1360544, 1365973, 1368872, 1368971, 1369233,
1384389, 1385117, 1401283, 1401624, 1404204, 1408376, 1412900, 1417188, 1418338, 1418519, 1423325,
1425505, 1426979, 1430519, 1431319, 1431737, 1436159, 1436488, 1438573, 1440811, 1443943, 1448419,
1450297, 1450950, 1456526, 1458079, 1460149, 1461035, 1462077, 1462419, 1462525, 1464978, 1465545,
1467395, 1469314, 1476025, 1478923, 1480917, 1488515, 1491983, 1501296, 1501641, 1502177, 1509733,
1512042, 1515734, 1516427, 1516707, 1525989, 1527120, 1529182, 1534126, 1537024, 1539624, 1547919,
1552957, 1555874, 1558056, 1558941, 1559657, 1569768, 1572062, 1576917, 1577357, 1578334, 1578805,
1578864, 1582782, 1584989, 1594932, 1596816, 1597471, 1597941, 1598125, 1601502, 1602629, 1605478,
1610582, 1613093, 1615419, 1620705, 1627659, 1630698, 1637694, 1641809, 1643680, 1663732, 1666335,
1670160, 1672778, 1677605, 1680144, 1680279, 1683532, 1689961, 1691332, 1694048, 1695371, 1699393,
1704967, 1705128, 1705657, 1706021, 1708030, 1709781, 1710429, 1712296, 1714868, 1722736, 1723467,
1724876, 1725529, 1727554, 1727720, 1728168, 1729952, 1730975, 1731247, 1737779, 1750846, 1751547,
1756071, 1757776, 1758556, 1758969, 1762369, 1768138, 1768292, 1769371, 1774970, 1777593, 1787569,
1789103, 1791033, 1795687, 1795755, 1800808, 1802778, 1805302, 1806308, 1806588, 1810446, 1812228,
1814462, 1814628, 1816667, 1817806, 1821533, 1838686, 1839537, 1841480, 1842661, 1843155, 1844269,
1845001, 1845755, 1846632, 1847271, 1847823, 1848177, 1848613, 1853480, 1861574, 1864579, 1866275,
1866505, 1866811, 1870017, 1870690, 1870828, 1872976, 1875859, 1875961, 1876718, 1877260, 1878536,
1888946, 1889395, 1892958, 1898448, 1914773, 1915544, 1918266, 1918843, 1921715, 1926252, 1933367,
1934184, 1934904, 1938415, 1939015, 1939249, 1942839, 1944694, 1946205, 1946685, 1949699, 1951875,
1952792, 1953269, 1954027, 1956417, 1956692, 1957003, 1957775, 1959505, 1960090, 1966945, 1971125,
1971307, 1971664, 1976758, 1978366, 1983885, 1984430, 1985245, 1986115, 1986263, 1986349, 1995607,
1996177, 1997033, 2003793, 2004629, 2010340, 2012292, 2018723, 2020796, 2024767, 2027324, 2029569,
2031795, 2034350, 2034810, 2040115, 2041585, 2042338, 2047752, 2048525, 2056286, 2063588, 2063920,
2064491, 2066898, 2067329, 2070712, 2071039, 2074133, 2074880, 2084878, 2088087, 2091006, 2094541,
2096269, 2097741, 2098099, 2101163, 2114010, 2114297, 2115394, 2119651, 2121019, 2121893, 2123343,
2123797, 2139652, 2141030, 2142437, 2142470, 2146654, 2148676, 2153434, 2156048, 2160563, 2162676,
2171263, 2172094, 2175346, 2181162, 2182705, 2183351, 2184616, 2190846, 2194138, 2196694, 2198135,
2198629, 2199959, 2212700, 2217002, 2219355, 2222792, 2229042, 2232483, 2233457, 2243670, 2244404,
2246703, 2248337, 2248341, 2250641, 2251073, 2257273, 2260223, 2262370, 2262813, 2266000, 2268035,
2276702, 2280306, 2286798, 2286932, 2287431, 2288183, 2290758, 2293048, 2294216, 2295513, 2297669,
2298454, 2300511, 2302523, 2308973, 2313266, 2313673, 2315594, 2317972, 2323652, 2326113, 2326605,
2326716, 2331089, 2333693, 2334972, 2337625, 2337819, 2340073, 2341454, 2342878, 2343335, 2346707,
2355836, 2364539, 2365518, 2370052, 2370211, 2373709, 2375538, 2379320, 2391392, 2391691, 2394535,
2399977, 2400437, 2403514, 2407045, 2414128, 2414169, 2415490, 2418650, 2418818, 2420311, 2422408,
2422601, 2424104, 2424758, 2428055, 2435127, 2435746, 2437851, 2440340, 2443289, 2446463, 2447017,
2456031, 2463566, 2467638, 2467710, 2471189, 2476170, 2476464, 2491015, 2492995, 2493187, 2493851,
2500653, 2502339, 2507249, 2511733, 2520748, 2524015, 2524871, 2525461, 2526849, 2529654, 2531799,
2532999, 2541500, 2553615, 2555143, 2556600, 2557472, 2559542, 2560152, 2562200, 2563503, 2564449,
2564775, 2565184, 2565889, 2567428, 2568280, 2568585, 2575174, 2580780, 2583362, 2585110, 2587398,
2589133, 2593433, 2595633, 2596156, 2597774, 2599312, 2604008, 2605208, 2605546, 2609234, 2617861,
2618037, 2618925, 2623002, 2626450, 2628306, 2629981, 2634252, 2636607, 2639082, 2641635, 2643966,
2647761, 2651217, 2652894, 2659290, 2664282, 2667644, 2669162, 2669222, 2670633, 2674048, 2678412,
2678464, 2679556, 2683587, 2684449, 2685738, 2689688, 2690040, 2696769, 2696819, 2697608, 2705501,
2709009, 2711931, 2716666, 2718684, 2725192, 2726819, 2729782, 2731740, 2734217, 2734710, 2735905,
2736933, 2743412, 2749306, 2749351, 2750738, 2750872, 2756714, 2757072, 2757735, 2759283, 2760541,
2763505, 2764259, 2767412, 2767767, 2769520, 2773286, 2774530, 2775755, 2779307, 2783176, 2787391,
2791567, 2791714, 2794758, 2794899, 2796349, 2799925, 2800868, 2802761, 2804663, 2811958, 2815447,
2815652, 2815748, 2821676, 2823613, 2824041, 2824651, 2825764, 2825814, 2826751, 2828205, 2833281,
2834840, 2837153, 2841348, 2841574, 2844010, 2845514, 2846586, 2850375, 2856776, 2858617, 2859766,
2860788, 2866141, 2867503, 2869500, 2871089, 2873010, 2877832, 2879725, 2880353, 2883533, 2887290,
2889255, 2897880, 2898191, 2900756, 2900836, 2904999, 2907321, 2908526, 2909052, 2909069, 2910339,
2911177, 2914410, 2916455, 2916583, 2920575, 2921820, 2922108, 2924663, 2925177, 2927119, 2927448,
2928044, 2930555, 2932112, 2933174, 2934260, 2934648, 2937100, 2937445, 2941977, 2943140, 2945715,
2945782, 2950351, 2950420, 2951149, 2961075, 2964524, 2970900, 2977932, 2979620, 2980160, 2980567,
2986506, 2987686, 2990436, 2991694, 2994549, 3005319, 3005381, 3005768, 3008467, 3021154, 3024368,
3024781, 3026854, 3029704, 3032654, 3036396, 3039544, 3044084, 3046823, 3049034, 3051531, 3052346,
3053219, 3053628, 3061547, 3066103, 3066865, 3068146, 3071870, 3072429, 3073417, 3074139, 3078025,
3081932, 3085115, 3086173, 3093295, 3094242, 3110879, 3111342, 3115636, 3116450, 3121430, 3130420,
3131562, 3132983, 3133842, 3138135, 3139933, 3146719, 3147455, 3155933, 3157065, 3173957, 3173966,
3180520, 3181529, 3187171, 3193568, 3199661, 3202979, 3203345, 3203771, 3206382, 3209062, 3210698,
3211785, 3212855, 3214700, 3218104, 3218406, 3218943, 3221130, 3223856, 3223899, 3224528, 3225310,
3227415, 3227973, 3230758, 3232821, 3234169, 3242594, 3245166, 3247178, 3249113, 3253128, 3253401,
3259197, 3264939, 3272355, 3282612, 3283396, 3287151, 3290457, 3290494, 3290703, 3292623, 3299312,
3302143, 3305738, 3313907, 3317041, 3317107, 3318412, 3318799, 3321570, 3323855, 3323920, 3329505,
3330996, 3335360, 3336481, 3338469, 3341762, 3344521, 3344717, 3345350, 3347216, 3347919, 3352165,
3352274, 3355790, 3359360, 3365232, 3366017, 3369576, 3375148, 3377394, 3380182, 3384503, 3386657,
3388233, 3389141, 3390209, 3401690, 3402428, 3404885, 3405310, 3407333, 3407752, 3408580, 3415620,
3417019, 3418126, 3423119, 3423352, 3429500, 3431354, 3434962, 3434996, 3435724, 3438890, 3454685,
3455094, 3467130, 3470590, 3473517, 3476196, 3476732, 3476950, 3483390, 3484283, 3486038, 3487212,
3494984, 3498297, 3500647, 3503474, 3504778, 3512171, 3512719, 3515854, 3519057, 3519156, 3520635,
3522251, 3523466, 3523584, 3525397, 3528853, 3530362, 3530728, 3532712, 3532739, 3534714, 3534765,
3536214, 3547250, 3548024, 3550180, 3551554, 3551651, 3551967, 3552245, 3552323, 3555957, 3557004,
3558508, 3563489, 3564927, 3565775, 3567409, 3567948, 3572671, 3575041, 3582796, 3587108, 3589333,
3589595, 3590619, 3591083, 3596119, 3596762, 3606389, 3607093, 3607130, 3610778, 3611568, 3612714,
3616084, 3619811, 3620092, 3621411, 3622207, 3628137, 3635738, 3639369, 3640371, 3644668, 3645563,
3647742, 3649000, 3649299, 3652978, 3657927, 3659308, 3660813, 3661323, 3661622, 3662448, 3663312,
3669656, 3671190, 3673706, 3674645, 3675055, 3677176, 3683400, 3684304, 3685624, 3685763, 3685838,
3691191, 3692813, 3697122, 3697259, 3700699, 3703226, 3703365, 3706273, 3706871, 3708376, 3715981,
3723117, 3725182, 3727005, 3734238, 3734386, 3735832, 3741931, 3743430, 3744199, 3747537, 3747667,
3748670, 3750302, 3752925, 3754229, 3759568, 3760923, 3762525, 3766843, 3767867, 3768176, 3769669,
3771197, 3771220, 3771475, 3775026, 3776179, 3780804, 3781554, 3790419, 3790580, 3791895, 3792386,
3793208, 3795384, 3796081, 3798717, 3799309, 3800729, 3800885, 3802622, 3803792, 3806200, 3807425,
3809367, 3810524, 3811233, 3812289, 3812396, 3813142, 3813199, 3813804, 3815697, 3818681, 3819843,
3822560, 3823036, 3823188, 3824561, 3826428, 3829875, 3831667, 3832021, 3833611, 3835422, 3837874,
3839404, 3841100, 3841671, 3842957, 3858217, 3861552, 3861686, 3865431, 3874455, 3876426, 3878487,
3878604, 3879302, 3883074, 3883789, 3888266, 3888796, 3889559, 3893939, 3897625, 3899464, 3904572,
3907598, 3910793, 3915649, 3918432, 3921334, 3927346, 3928921, 3931124, 3931659, 3934930, 3936323,
3944935, 3946785, 3949929, 3950075, 3953745, 3954583, 3957709, 3958403, 3964629, 3967635, 3969061,
3977580, 3980264, 3984803, 3985121, 3995450, 4001350, 4005614, 4006975, 4008077, 4009210, 4010863,
4012096, 4013652, 4014857, 4020122, 4020463, 4026184, 4026725, 4029814, 4032209, 4034137, 4035067,
4035099, 4044295, 4044721, 4052005, 4053170, 4062008, 4065020, 4065438, 4068155, 4069813, 4070604,
4072330, 4074280, 4077279, 4077554, 4078824, 4079271, 4083784, 4085170, 4086811, 4092439, 4093086,
4093146, 4099911, 4100311, 4101005, 4101218, 4104488, 4105654, 4106724, 4109068, 4111156, 4111265,
4111307, 4112772, 4113536, 4120072, 4121105, 4123075, 4129755, 4130129, 4130405, 4132729, 4135134,
4137533, 4138148, 4138519, 4140859, 4143458, 4143481, 4144244, 4153002, 4153400, 4159187, 4159284,
4161442, 4162600, 4164549, 4165080, 4168680, 4169057, 4171874, 4172425, 4178223, 4180512, 4183594,
4184094, 4185352, 4189141, 4193173, 4196100, 4198643, 4198804, 4207132, 4207345, 4211593, 4213367,
4213410, 4214379, 4217538, 4221074, 4222390, 4223078, 4223601, 4224282, 4224436, 4224597, 4229488,
4229986, 4235544, 4238279, 4238821, 4240322, 4244118, 4244719, 4246539, 4250650, 4251583, 4251938,
4253043, 4261221, 4261342, 4262957, 4267460, 4268789, 4272731, 4273278, 4273283, 4273842, 4277479,
4278407, 4284798, 4286558, 4286671, 4288885, 4291553, 4292637, 4294766, 4307292, 4310199, 4315377,
4315518, 4326059, 4326524, 4327466, 4327819, 4329713, 4330719, 4346036, 4347501, 4349446, 4351206,
4351446, 4352459, 4353216, 4355022, 4357107, 4361751, 4363639, 4366471, 4370364, 4374620, 4379995,
4384898, 4387280, 4387343, 4387571, 4396454, 4396784, 4399398, 4404665, 4405020, 4408685, 4410562,
4413683, 4414757, 4418096, 4418191, 4419226, 4425060, 4427472, 4430018, 4434719, 4436953, 4446454,
4447635, 4450275, 4452620, 4452909, 4455016, 4456096, 4459168, 4464480, 4464907, 4465668, 4467281,
4467793, 4469728, 4472611, 4473670, 4474258, 4477018, 4477354, 4477851, 4477865, 4478582, 4489907,
4495226, 4497481, 4501630, 4502323, 4502933, 4503336, 4507169, 4509633, 4511393, 4511945, 4513650,
4517731, 4523398, 4526685, 4532285, 4534049, 4537905, 4539349, 4539459, 4540233, 4545162, 4550673,
4555471, 4560338, 4562349, 4562418, 4563284, 4563666, 4563764, 4563944, 4564165, 4564312, 4564585,
4564982, 4571001, 4574522, 4577852, 4578338, 4591484, 4593950, 4594125, 4594621, 4600531, 4604442,
4605567, 4607748, 4610676, 4616806, 4616963, 4618324, 4618815, 4625048, 4625453, 4628185, 4628209,
4628813, 4629507, 4636405, 4637871, 4639110, 4640416, 4640441, 4647260, 4648268, 4655004, 4657547,
4658895, 4662383, 4666199, 4671798, 4671919, 4675809, 4679753, 4680740, 4682349, 4687692, 4692022,
4693650, 4696897, 4697193, 4698416, 4699980, 4701881, 4705344, 4708631, 4709652, 4710069, 4710508,
4713437, 4715730, 4719674, 4719930, 4720268, 4722529, 4729328, 4732210, 4734108, 4734263, 4744095,
4746218, 4748563, 4749594, 4750186, 4752640, 4757184, 4760628, 4761470, 4764227, 4764784, 4765190,
4766657, 4767304, 4768910, 4768976, 4778761, 4782147, 4782719, 4782763, 4784058, 4788776, 4789390,
4789993, 4791079, 4794256, 4802087, 4802384, 4807513, 4810580, 4812709, 4815515, 4817031, 4824247,
4825342, 4825590, 4829681, 4836047, 4836888, 4837752, 4838426, 4842736, 4846801, 4848742, 4849271,
4850191, 4855394, 4855861, 4862464, 4877219, 4877761, 4879752, 4883565, 4888705, 4897036, 4901689,
4901838, 4902721, 4902750, 4905243, 4922726, 4927934, 4931460, 4932628, 4939616, 4943406, 4944101,
4945334, 4947423, 4947992, 4949646, 4952053, 4955788, 4962501, 4962599, 4962894, 4970712, 4975170,
4976349, 4977313, 4979771, 4983695, 4986529, 4990616, 4996609, 4996678, 5002703, 5003528, 5008093,
5014644, 5016003, 5019475, 5021479, 5023081, 5025435, 5035926, 5037778, 5042738, 5045484, 5046359,
5046875, 5051507, 5056315, 5061589, 5066192, 5066256, 5069180, 5070728, 5070930, 5071531, 5077044,
5079596, 5079891, 5081966, 5082205, 5097539, 5098082, 5103842, 5104862, 5110272, 5120296, 5124097,
5134622, 5135182, 5139251, 5140523, 5143437, 5148390, 5148422, 5149139, 5152714, 5157579, 5159995,
5165346, 5165907, 5166788, 5167024, 5169579, 5170250, 5171702, 5173018, 5177759, 5180919, 5183820,
5187802, 5189839, 5191718, 5192170, 5195484, 5199049, 5202176, 5202442, 5205983, 5209722, 5213457,
5214279, 5214614, 5227259, 5227361, 5233241, 5233555, 5241562, 5243939, 5244686, 5248751, 5252956,
5264604, 5268096, 5268128, 5268438, 5271348, 5271653, 5276459, 5277715, 5278416, 5281240, 5283882,
5286362, 5289410, 5292470, 5300957, 5301927, 5305784, 5315296, 5318900, 5322769, 5328797, 5334860,
5336304, 5339802, 5341042, 5345322, 5345499, 5346653, 5368064, 5368616, 5369848, 5372036, 5375104,
5376817, 5377265, 5379176, 5382732, 5384592, 5390469, 5390766, 5391784, 5396838, 5397068, 5398824,
5402302, 5414584, 5417972, 5419378, 5419907, 5419963, 5427918, 5428215, 5429453, 5431305, 5434639,
5438792, 5438879, 5439129, 5439331, 5441214, 5441862, 5442598, 5445320, 5445710, 5447489, 5449336,
5449934, 5450071, 5450806, 5456404, 5464564, 5467694, 5473644, 5476954, 5481642, 5481858, 5484870,
5485605, 5485621, 5487943, 5489290, 5499162, 5499921, 5500707, 5501498, 5504827, 5506221, 5506301,
5508885, 5509927, 5511845, 5515812, 5517858, 5527237, 5532242, 5534638, 5547246, 5547341, 5548071,
5548229, 5548360, 5550141, 5550382, 5551420, 5553150, 5554901, 5556602, 5559235, 5559540, 5564183,
5567153, 5568279, 5569024, 5570345, 5571354, 5578097, 5581885, 5589336, 5589538, 5590110, 5592710,
5596327, 5597452, 5597782, 5597870, 5601733, 5603599, 5613422, 5620600, 5626978, 5627392, 5628545,
5631949, 5632154, 5632220, 5636733, 5641051, 5643107, 5644787, 5645104, 5647621, 5648755, 5648902,
5648970, 5650796, 5653193, 5658177, 5660193, 5661896, 5666209, 5666329, 5668153, 5668195, 5671645,
5674942, 5675085, 5678367, 5679069, 5679076, 5680060, 5681912, 5692922, 5695560, 5696975, 5698204,
5700259, 5700574, 5701445, 5704022, 5708194, 5708717, 5709990, 5712551, 5713749, 5715149, 5728969,
5733441, 5734059, 5734474, 5734865, 5747894, 5751770, 5756617, 5756825, 5757387, 5759021, 5766789,
5769400, 5770256, 5775040, 5775446, 5777617, 5780767, 5782605, 5782784, 5782955, 5783272, 5784560,
5787048, 5789133, 5790318, 5793645, 5795476, 5799607, 5802446, 5803570, 5807979, 5808618, 5811236,
5811699, 5814264, 5817316, 5818851, 5821015, 5822811, 5823657, 5825078, 5827942, 5829567, 5829580,
5838675, 5846534, 5853329, 5854174, 5856268, 5857826, 5861081, 5874166, 5874459, 5883980, 5893829,
5901643, 5904504, 5911004, 5913313, 5915485, 5921941, 5953792, 5956097, 5958384, 5958726, 5968543,
5976739, 5981287, 5982223, 5984963, 5985501, 5988409, 5992389, 5992730, 5993824, 6004177, 6011369,
6016642, 6018196, 6018825, 6019757, 6021484]