diff options
author | Araq <rumpf_a@web.de> | 2017-12-07 15:58:46 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2017-12-07 15:58:46 +0100 |
commit | 226532f8f39e8d37d392282ed57aa891c0e69736 (patch) | |
tree | 3658c550a82aa15a1669ee535866371c79f4923e | |
parent | 7c9a3161daaf971303779c9d2199474b2d955082 (diff) | |
download | Nim-226532f8f39e8d37d392282ed57aa891c0e69736.tar.gz |
cleanup todo.txt
-rw-r--r-- | lib/system/mmdisp.nim | 3 | ||||
-rw-r--r-- | tests/fragmentation/data.nim | 7629 | ||||
-rw-r--r-- | tests/fragmentation/tfragment_alloc.nim | 19 | ||||
-rw-r--r-- | tests/fragmentation/tfragment_gc.nim | 16 | ||||
-rw-r--r-- | todo.txt | 2 |
5 files changed, 7666 insertions, 3 deletions
diff --git a/lib/system/mmdisp.nim b/lib/system/mmdisp.nim index d65d8a10e..9ac039e19 100644 --- a/lib/system/mmdisp.nim +++ b/lib/system/mmdisp.nim @@ -42,7 +42,8 @@ type # Page size of the system; in most cases 4096 bytes. For exotic OS or # CPU this needs to be changed: const - PageShift = when defined(cpu16): 8 else: 12 + PageShift = when defined(cpu16): 8 else: 12 # \ + # my tests showed no improvments for using larger page sizes. PageSize = 1 shl PageShift PageMask = PageSize-1 diff --git a/tests/fragmentation/data.nim b/tests/fragmentation/data.nim new file mode 100644 index 000000000..d14123c0f --- /dev/null +++ b/tests/fragmentation/data.nim @@ -0,0 +1,7629 @@ + +const sizes* = [ + 643584, + 140800, + 802, + 2464928, + 488122, + 1161601, + 861051, + 1413, + 389, + 2412032, + 328704, + 323488, + 484864, + 31232, + 38400, + 87552, + 328704, + 242176, + 55808, + 32256, + 15360, + 15080, + 567074, + 1390, + 1390, + 366080, + 186536, + 314368, + 4154, + 3017582, + 62658, + 3874662, + 227, + 126616, + 290, + 261792, + 287, + 151200, + 293, + 34976, + 293, + 28840, + 296, + 20664, + 314, + 223232, + 288, + 53248, + 326, + 12800, + 312, + 473600, + 306, + 2676224, + 308, + 2846720, + 308, + 563712, + 308, + 567296, + 308, + 576000, + 308, + 577024, + 308, + 577536, + 308, + 577536, + 308, + 578560, + 308, + 578560, + 308, + 145920, + 310, + 159232, + 312, + 364544, + 310, + 178176, + 312, + 8032448, + 323, + 29392, + 332, + 35112, + 394, + 85768, + 371, + 88864, + 385, + 23840, + 385, + 176128, + 386, + 126976, + 389, + 24800, + 401, + 118784, + 379, + 21792, + 385, + 259152, + 385, + 172032, + 389, + 40960, + 389, + 114688, + 403, + 57344, + 407, + 7680, + 407, + 126216, + 373, + 29952, + 367, + 148768, + 385, + 27384, + 362, + 24832, + 362, + 50944, + 364, + 20136, + 302, + 32416, + 293, + 69296, + 305, + 36016, + 308, + 89784, + 305, + 5120, + 305, + 49152, + 320, + 30424, + 331, + 12288, + 326, + 62976, + 69120, + 72192, + 503808, + 77824, + 382144, + 163840, + 88728, + 1581, + 1718096, + 66728, + 82172, + 116756, + 4554752, + 59342, + 45794, + 39284, + 66384, + 60294, + 83748, + 83748, + 262148, + 20320, + 28288, + 382, + 3072, + 4222976, + 161, + 1737888, + 2975744, + 487424, + 258048, + 113664, + 372736, + 261632, + 5287936, + 80896, + 89600, + 503808, + 77824, + 554176, + 163840, + 84632, + 1581, + 1714000, + 66728, + 82172, + 116756, + 4571136, + 59342, + 45794, + 39284, + 66384, + 60294, + 83748, + 83748, + 262148, + 20320, + 28288, + 4006400, + 161, + 2256032, + 3150336, + 503296, + 245760, + 133120, + 358400, + 283136, + 5296128, + 10752, + 507904, + 315392, + 11264, + 921600, + 7680, + 118784, + 166560, + 13312, + 5120, + 18768, + 52736, + 8192, + 77824, + 6656, + 106496, + 389120, + 733184, + 53248, + 36864, + 36864, + 655360, + 139264, + 802816, + 169864, + 77824, + 10752, + 94208, + 17808, + 40960, + 36864, + 749568, + 45056, + 188416, + 28672, + 16384, + 69632, + 102400, + 11776, + 10752, + 290816, + 36864, + 36864, + 667648, + 53248, + 49152, + 200704, + 45056, + 40960, + 77824, + 10240, + 9216, + 77504, + 161472, + 163528, + 26304, + 26312, + 96448, + 99016, + 19648, + 19656, + 127680, + 127680, + 364224, + 323272, + 73408, + 71368, + 24776, + 138944, + 128200, + 27328, + 48832, + 37576, + 32960, + 52928, + 40128, + 89792, + 80584, + 25792, + 499392, + 504520, + 163520, + 167624, + 36032, + 36040, + 138944, + 127688, + 4208320, + 4839104, + 77504, + 81608, + 2768576, + 2757832, + 331456, + 321728, + 65224, + 65216, + 56008, + 163520, + 154816, + 48832, + 77504, + 62656, + 48832, + 77504, + 50888, + 57024, + 47296, + 52928, + 40640, + 71360, + 71360, + 22208, + 22208, + 57024, + 45768, + 48832, + 48840, + 3720896, + 4037832, + 790208, + 868040, + 230592, + 230592, + 20160, + 20160, + 29376, + 31944, + 1355456, + 1419976, + 839360, + 851656, + 32960, + 36040, + 179904, + 265920, + 85696, + 85696, + 33472, + 33472, + 392896, + 391872, + 397008, + 48832, + 48832, + 48832, + 48832, + 52928, + 48832, + 48832, + 57024, + 36032, + 36032, + 48832, + 48840, + 48840, + 48832, + 52928, + 48832, + 48832, + 57024, + 36032, + 36032, + 48848, + 48848, + 48848, + 48848, + 52944, + 48848, + 48848, + 57040, + 36048, + 36048, + 57024, + 45760, + 20160, + 20160, + 34528, + 13024, + 397312, + 5120, + 28672, + 659456, + 372736, + 110592, + 9216, + 9728, + 61440, + 28672, + 5632, + 41984, + 29736, + 20056, + 216632, + 110184, + 27032, + 37472, + 31592, + 24376, + 102728, + 280912, + 27472, + 27936, + 23392, + 56624, + 57216, + 38744, + 51016, + 36696, + 48896, + 53024, + 32032, + 34120, + 34120, + 20256, + 107848, + 109928, + 1267040, + 46984, + 496544, + 1174384, + 762288, + 101744, + 32664, + 95712, + 48480, + 365344, + 98448, + 86440, + 35312, + 37704, + 75664, + 101672, + 47912, + 15872, + 11168, + 22856, + 22856, + 506616, + 556824, + 61784, + 30008, + 44848, + 81816, + 31528, + 32768, + 12800, + 27000, + 155000, + 14712, + 14712, + 14712, + 15224, + 14712, + 15224, + 14712, + 14712, + 14712, + 15736, + 14712, + 13688, + 14200, + 122232, + 14200, + 14200, + 14200, + 14200, + 14200, + 14200, + 14712, + 13688, + 14200, + 14200, + 15224, + 14200, + 13688, + 13176, + 978296, + 1580408, + 134520, + 15224, + 15736, + 15736, + 15736, + 15736, + 15736, + 16248, + 15736, + 15736, + 15224, + 16760, + 15224, + 14712, + 15224, + 171384, + 175480, + 159096, + 171384, + 179576, + 171384, + 191864, + 175480, + 175480, + 171384, + 216440, + 167288, + 155000, + 155000, + 40312, + 27000, + 48504, + 14200, + 14200, + 14712, + 14200, + 14200, + 14200, + 14712, + 13688, + 14200, + 14200, + 14712, + 14712, + 13688, + 14200, + 52600, + 56696, + 146704, + 21792, + 286720, + 15360, + 13824, + 7168, + 7168, + 421888, + 36864, + 36864, + 110592, + 4608, + 4096, + 29576, + 29576, + 29576, + 29576, + 40840, + 30088, + 32136, + 27368, + 27528, + 315392, + 381, + 3072, + 1318, + 3072, + 375, + 3072, + 378, + 3072, + 598016, + 53248, + 32768, + 110592, + 43696, + 5283840, + 196608, + 139264, + 397312, + 249856, + 163840, + 864256, + 372736, + 532480, + 36864, + 5632, + 110592, + 5120, + 129664, + 110592, + 10752, + 3203072, + 163840, + 45056, + 57344, + 8192, + 425984, + 81920, + 28672, + 49152, + 671744, + 61440, + 53248, + 2879488, + 229376, + 15360, + 397312, + 684032, + 57344, + 110592, + 356352, + 696320, + 462848, + 53248, + 163840, + 11776, + 98304, + 470240, + 47328, + 745472, + 36864, + 974848, + 397312, + 5062656, + 544768, + 401408, + 290816, + 36864, + 188416, + 28672, + 40960, + 630784, + 81920, + 6144, + 24576, + 32768, + 446464, + 65536, + 126976, + 53248, + 131072, + 11776, + 389120, + 3010560, + 278528, + 253952, + 143360, + 13824, + 258048, + 77824, + 237568, + 16896, + 212992, + 307200, + 32768, + 970752, + 131072, + 11776, + 98304, + 270336, + 28672, + 5992448, + 73728, + 36864, + 491520, + 32768, + 569344, + 69632, + 114688, + 40960, + 692224, + 65536, + 28672, + 77824, + 3584, + 229376, + 32768, + 4096, + 16896, + 139264, + 131072, + 11264, + 15360, + 1282048, + 335872, + 49152, + 634880, + 835584, + 81920, + 98304, + 622592, + 61440, + 7168, + 839680, + 81920, + 5025792, + 434176, + 12288, + 3584, + 1142784, + 188416, + 1630208, + 311296, + 540672, + 36864, + 507904, + 102400, + 2056192, + 139264, + 167936, + 172032, + 4096, + 380928, + 8192, + 40960, + 4096, + 98304, + 7168, + 10584, + 81080, + 23376, + 1257472, + 90112, + 94208, + 5120, + 150168, + 25600, + 2553856, + 69120, + 220672, + 51712, + 1349120, + 1349120, + 167424, + 786432, + 515584, + 291328, + 1681920, + 33792, + 102400, + 102912, + 60928, + 44032, + 631296, + 44544, + 11776, + 408576, + 138752, + 1849856, + 13824, + 33280, + 44544, + 17920, + 11776, + 9153536, + 150016, + 13824, + 24576, + 293888, + 651264, + 818176, + 17920, + 141312, + 64512, + 583168, + 58368, + 830976, + 109568, + 65536, + 24576, + 771584, + 1545728, + 1540608, + 11776, + 144896, + 11776, + 18944, + 67584, + 65536, + 17920, + 848896, + 43520, + 30720, + 27648, + 1935872, + 127488, + 11264, + 44032, + 583168, + 11264, + 67584, + 632320, + 38400, + 8470528, + 127488, + 257536, + 30720, + 111104, + 286720, + 1711616, + 64000, + 240128, + 22016, + 86528, + 174080, + 16896, + 531456, + 17920, + 23552, + 20992, + 20992, + 22528, + 20992, + 19456, + 19456, + 20992, + 20992, + 11500544, + 12260864, + 368128, + 14345216, + 29184, + 29184, + 84480, + 64512, + 925696, + 8003072, + 141312, + 978432, + 2305024, + 6658048, + 1116160, + 1593344, + 1059328, + 777216, + 214016, + 627200, + 11935232, + 1840640, + 12438528, + 5466624, + 86528, + 98816, + 3358720, + 145408, + 126976, + 73728, + 78848, + 94208, + 348672, + 76288, + 2347008, + 2347008, + 2176512, + 237056, + 1130496, + 416768, + 713216, + 1126400, + 61440, + 163328, + 158208, + 61440, + 2173952, + 681472, + 33792, + 15580160, + 16565248, + 463360, + 19202560, + 47104, + 116736, + 89088, + 10677248, + 192512, + 1320448, + 3324416, + 8741888, + 1639936, + 2320384, + 1482752, + 11899392, + 1028608, + 296448, + 921600, + 15390720, + 2292224, + 17390080, + 6968320, + 125952, + 136192, + 4978176, + 193536, + 169984, + 104960, + 43520, + 300, + 112128, + 536, + 110592, + 536, + 112128, + 536, + 2664448, + 1060, + 2664448, + 1060, + 2664448, + 1060, + 71168, + 572, + 72192, + 572, + 71168, + 572, + 131072, + 2416, + 82944, + 3084, + 12800, + 3508, + 15872, + 3576, + 1321984, + 1364, + 653312, + 2124, + 18492416, + 2048, + 6656, + 344, + 1219584, + 416, + 548864, + 2444, + 6656, + 344, + 11776, + 1008, + 54272, + 404, + 63488, + 404, + 64000, + 404, + 624640, + 5752, + 624640, + 5720, + 89600, + 1736, + 164352, + 1096, + 178688, + 1096, + 16384, + 352, + 326656, + 1368, + 315392, + 1368, + 699392, + 1004, + 54784, + 360, + 75776, + 352, + 69120, + 352, + 61440, + 352, + 62976, + 352, + 61952, + 352, + 53760, + 360, + 61440, + 352, + 62464, + 352, + 33280, + 320, + 23552, + 368, + 26112, + 360, + 26624, + 324, + 26112, + 360, + 27648, + 320, + 27136, + 320, + 27136, + 320, + 28160, + 360, + 27648, + 320, + 27648, + 320, + 27648, + 320, + 33280, + 320, + 27648, + 320, + 26112, + 360, + 29696, + 320, + 31232, + 360, + 26112, + 360, + 27648, + 320, + 25088, + 328, + 27648, + 320, + 26624, + 320, + 25088, + 328, + 25088, + 328, + 25088, + 328, + 27648, + 320, + 26112, + 360, + 27136, + 320, + 27136, + 320, + 27648, + 320, + 23552, + 368, + 26624, + 320, + 25600, + 320, + 25600, + 320, + 29696, + 320, + 27648, + 320, + 26624, + 324, + 1927168, + 928, + 2015232, + 928, + 414720, + 588, + 426496, + 588, + 327680, + 708, + 1290240, + 2608, + 83456, + 308, + 86016, + 308, + 109056, + 308, + 100352, + 348, + 86016, + 308, + 109056, + 308, + 83968, + 308, + 87040, + 308, + 76800, + 312, + 87040, + 308, + 88576, + 348, + 79360, + 348, + 79872, + 308, + 75264, + 312, + 87552, + 308, + 76800, + 312, + 86528, + 308, + 88064, + 308, + 80384, + 348, + 88576, + 308, + 83456, + 308, + 79872, + 308, + 96768, + 308, + 86528, + 308, + 78848, + 348, + 82944, + 308, + 88576, + 308, + 87552, + 308, + 79360, + 348, + 69120, + 352, + 83968, + 308, + 88064, + 308, + 82944, + 308, + 70144, + 352, + 80384, + 348, + 75264, + 312, + 96768, + 308, + 10240, + 364, + 9728, + 364, + 9728, + 364, + 9728, + 364, + 9728, + 364, + 9728, + 364, + 10240, + 364, + 9216, + 368, + 9216, + 368, + 163840, + 8280, + 242176, + 2980, + 210432, + 360, + 244224, + 360, + 209408, + 360, + 212480, + 360, + 192512, + 364, + 206336, + 360, + 224768, + 360, + 193536, + 364, + 206336, + 360, + 872960, + 1232, + 1231872, + 1056, + 809472, + 888, + 809472, + 992, + 3544576, + 2160, + 3544576, + 2056, + 3580928, + 2220, + 2396160, + 2568, + 145408, + 316, + 160256, + 316, + 145408, + 316, + 195584, + 364, + 140288, + 316, + 126464, + 324, + 144896, + 316, + 160256, + 316, + 139264, + 316, + 216064, + 356, + 212992, + 356, + 144896, + 316, + 139264, + 316, + 140288, + 316, + 196608, + 364, + 132608, + 316, + 128000, + 324, + 249344, + 356, + 181760, + 316, + 142848, + 316, + 228864, + 356, + 144896, + 316, + 147456, + 316, + 141824, + 316, + 144896, + 316, + 214528, + 356, + 210944, + 356, + 181760, + 316, + 140288, + 320, + 142848, + 316, + 141824, + 316, + 210432, + 356, + 128000, + 324, + 132608, + 316, + 140288, + 320, + 126464, + 324, + 147456, + 316, + 26624, + 364, + 24576, + 364, + 22016, + 368, + 29696, + 364, + 22528, + 368, + 24576, + 364, + 24576, + 364, + 24576, + 364, + 25088, + 364, + 2791936, + 2000, + 161280, + 1048, + 169472, + 1048, + 5100032, + 2612, + 5506560, + 1728, + 8192, + 380, + 101888, + 5804, + 104960, + 3332, + 99328, + 2872, + 8704, + 388, + 35328, + 368, + 11244032, + 5592, + 11244032, + 5592, + 10870784, + 5256, + 10744320, + 7916, + 540160, + 744, + 408064, + 720, + 58368, + 4604, + 58368, + 4604, + 52736, + 5008, + 1554432, + 4636, + 2222080, + 6712, + 7168, + 384, + 6656, + 400, + 6656, + 372, + 272384, + 3816, + 235008, + 2760, + 8192, + 368, + 625664, + 5764, + 563200, + 6720, + 9728, + 392, + 7168, + 404, + 415744, + 4688, + 1320960, + 6228, + 7168, + 376, + 1756160, + 4992, + 1961472, + 6552, + 244736, + 360, + 2317824, + 6480, + 1916928, + 4832, + 6656, + 400, + 8192, + 372, + 7168, + 372, + 405504, + 4152, + 411136, + 5580, + 83456, + 1784, + 84992, + 2280, + 6943744, + 6676, + 8638976, + 9976, + 16384, + 368, + 366080, + 5696, + 294912, + 6460, + 366080, + 5696, + 8192, + 380, + 384000, + 364, + 622592, + 8296, + 564224, + 7396, + 359936, + 4004, + 700416, + 6276, + 7168, + 372, + 1648640, + 6952, + 1498624, + 4620, + 38912, + 360, + 6656, + 396, + 8255488, + 5060, + 7553024, + 5084, + 8255488, + 5060, + 8048640, + 8684, + 4229120, + 7476, + 4243456, + 9716, + 57344, + 372, + 483840, + 4016, + 484352, + 4468, + 20480, + 364, + 6948352, + 8444, + 5271552, + 5800, + 9728, + 364, + 12800, + 376, + 273920, + 2708, + 114176, + 2116, + 256512, + 6212, + 186368, + 6428, + 1016320, + 3228, + 379904, + 7256, + 508928, + 6568, + 470528, + 5128, + 468480, + 3764, + 13023232, + 5424, + 12046336, + 7648, + 13023232, + 5424, + 23040, + 352, + 1604096, + 700, + 625664, + 708, + 608256, + 656, + 722944, + 3524, + 1263104, + 4232, + 243200, + 3632, + 60928, + 720, + 1249280, + 2216, + 233472, + 1212, + 110080, + 1104, + 1939456, + 2864, + 289792, + 1632, + 241664, + 2956, + 535040, + 3040, + 25088, + 688, + 38400, + 544, + 24576, + 1816, + 10240, + 600, + 10752, + 1516, + 68096, + 1056, + 75776, + 424, + 723968, + 2076, + 1162240, + 1976, + 117248, + 760, + 117248, + 3696, + 140800, + 892, + 998400, + 708, + 1829888, + 10068, + 3081216, + 10696, + 1305600, + 4820, + 172032, + 1524, + 7168, + 304, + 578048, + 2232, + 505856, + 2232, + 7168, + 288, + 149504, + 856, + 38400, + 464, + 196608, + 1268, + 198656, + 1268, + 752128, + 2188, + 799232, + 2188, + 164864, + 1912, + 197120, + 1912, + 261632, + 1552, + 259584, + 1552, + 601600, + 1372, + 583680, + 1372, + 19968, + 832, + 19968, + 832, + 375296, + 1556, + 373248, + 1556, + 44032, + 2192, + 44032, + 1696, + 148992, + 1272, + 148992, + 1272, + 71168, + 988, + 71168, + 988, + 108032, + 2516, + 96768, + 1772, + 1223680, + 3812, + 1895936, + 4020, + 560128, + 708, + 392192, + 656, + 1083904, + 2364, + 294400, + 1948, + 446464, + 1620, + 451072, + 1620, + 1251840, + 432, + 611840, + 5216, + 47104, + 620, + 53248, + 620, + 501760, + 3572, + 200192, + 3312, + 2404352, + 580, + 1298944, + 876, + 783360, + 772, + 111104, + 504, + 491008, + 748, + 580096, + 1784, + 6215680, + 696, + 1199616, + 1832, + 1252864, + 2000, + 314880, + 1076, + 346112, + 2008, + 11637248, + 2264, + 1553920, + 3336, + 311296, + 1268, + 259584, + 1652, + 1376256, + 2196, + 1782784, + 3148, + 516096, + 1248, + 1872896, + 3692, + 377856, + 316, + 96256, + 608, + 62464, + 804, + 338432, + 1500, + 296960, + 1512, + 396800, + 1652, + 329216, + 1424, + 859648, + 2168, + 2535424, + 3688, + 1282560, + 2192, + 4596736, + 5784, + 2210816, + 2420, + 139776, + 760, + 4002304, + 4776, + 4817920, + 3500, + 26624, + 352, + 488448, + 2188, + 1078272, + 5188, + 808448, + 5548, + 76288, + 1496, + 50688, + 688, + 603648, + 4856, + 600064, + 3928, + 49152, + 368, + 491008, + 3236, + 487936, + 3120, + 144896, + 2216, + 1013248, + 6708, + 805888, + 6448, + 114688, + 320, + 104448, + 328, + 103936, + 328, + 112128, + 320, + 113152, + 320, + 114688, + 320, + 110592, + 320, + 113664, + 320, + 136192, + 320, + 122880, + 320, + 110592, + 320, + 111616, + 324, + 113152, + 320, + 1485824, + 4928, + 690688, + 10996, + 737280, + 12228, + 108032, + 924, + 101888, + 740, + 6156288, + 4976, + 6376448, + 6200, + 548352, + 1492, + 441344, + 1168, + 1564672, + 8060, + 1538560, + 7084, + 169472, + 368, + 521216, + 4180, + 133632, + 2348, + 134144, + 2348, + 1046016, + 8576, + 1351680, + 4732, + 1823232, + 1872, + 829440, + 3820, + 781312, + 3720, + 5850112, + 10748, + 4831232, + 10408, + 119296, + 2012, + 118784, + 2012, + 19456, + 1652, + 9411584, + 320, + 9260032, + 320, + 367616, + 4564, + 360960, + 4372, + 69632, + 7804, + 68608, + 6724, + 1329152, + 7692, + 1319424, + 6936, + 2029568, + 3088, + 115200, + 4584, + 139776, + 5012, + 2570752, + 1576, + 43520, + 2792, + 42496, + 2792, + 842752, + 7988, + 2548224, + 11824, + 5488128, + 1760, + 260096, + 7020, + 706048, + 3612, + 740352, + 5040, + 16384, + 380, + 235520, + 2536, + 264704, + 2652, + 4364288, + 8256, + 4176896, + 6204, + 16559104, + 3220, + 107008, + 2052, + 1103872, + 3264, + 1098752, + 3056, + 1177600, + 3856, + 1028608, + 3404, + 663552, + 2212, + 665088, + 2396, + 140288, + 560, + 90112, + 2736, + 141824, + 1284, + 6045184, + 13232, + 4726784, + 12052, + 176640, + 4388, + 626688, + 3868, + 621568, + 3868, + 1908224, + 1820, + 704512, + 4976, + 700928, + 4584, + 2672128, + 7920, + 2396160, + 7872, + 4750848, + 4916, + 4597248, + 5928, + 345600, + 7092, + 318976, + 7204, + 31744, + 676, + 32256, + 676, + 593920, + 3824, + 615936, + 4292, + 1656320, + 9112, + 1626112, + 9324, + 177152, + 2020, + 5765632, + 5816, + 56320, + 2228, + 61952, + 2228, + 1814528, + 3612, + 6656, + 380, + 16896, + 456, + 31744, + 844, + 3265024, + 9080, + 4318720, + 11204, + 192512, + 784, + 188416, + 784, + 627200, + 11148, + 681472, + 11644, + 1456640, + 4156, + 306176, + 2064, + 305152, + 1908, + 2410496, + 9624, + 3928576, + 10028, + 3820544, + 9056, + 5166080, + 3392, + 417792, + 1840, + 17920, + 720, + 17920, + 720, + 732672, + 5100, + 832512, + 5676, + 1738752, + 4948, + 1936896, + 452, + 1940480, + 452, + 68608, + 3424, + 68608, + 3428, + 211456, + 4428, + 203776, + 4120, + 467456, + 3208, + 423936, + 4084, + 701952, + 5048, + 474624, + 5268, + 2202112, + 6132, + 136704, + 2432, + 136704, + 2432, + 10240, + 372, + 35840, + 824, + 35840, + 824, + 365568, + 5700, + 365568, + 6176, + 155648, + 2168, + 156160, + 2168, + 24064, + 1004, + 35840, + 1392, + 337408, + 4956, + 341504, + 4688, + 77312, + 5412, + 79360, + 6264, + 2067456, + 10360, + 435712, + 448, + 1226240, + 5600, + 1228800, + 5952, + 16384, + 324, + 16896, + 324, + 16896, + 324, + 16896, + 328, + 15872, + 332, + 16896, + 324, + 17920, + 324, + 16384, + 324, + 16896, + 324, + 16896, + 324, + 15872, + 332, + 16896, + 324, + 18432, + 324, + 99328, + 776, + 2295296, + 8784, + 1970176, + 7988, + 175104, + 7768, + 183808, + 8200, + 23552, + 1244, + 364032, + 4316, + 955904, + 6660, + 1570304, + 8804, + 1491968, + 8444, + 725504, + 528, + 729088, + 528, + 172544, + 928, + 411648, + 7312, + 294400, + 3532, + 313344, + 3416, + 48640, + 984, + 48128, + 984, + 48128, + 1760, + 160768, + 900, + 160768, + 900, + 3207680, + 2016, + 155136, + 4012, + 312320, + 4680, + 287232, + 2888, + 288768, + 2888, + 898560, + 4116, + 894464, + 4116, + 15360, + 364, + 2923520, + 6556, + 103936, + 2668, + 115200, + 4552, + 93696, + 920, + 87552, + 920, + 384512, + 1976, + 374784, + 1976, + 122368, + 2456, + 4463616, + 2788, + 1618432, + 1200, + 69632, + 1672, + 18432, + 328, + 23040, + 1268, + 13824, + 328, + 80384, + 2132, + 363008, + 5288, + 363520, + 5776, + 47616, + 2808, + 206848, + 1952, + 214016, + 2120, + 1050624, + 6560, + 1114112, + 7476, + 1883648, + 1708, + 710144, + 9276, + 937472, + 12088, + 3946496, + 10876, + 3973632, + 11776, + 6656, + 372, + 56832, + 2452, + 2269696, + 10188, + 300544, + 4128, + 299520, + 3920, + 1971712, + 7600, + 1007104, + 3108, + 9728, + 384, + 7168, + 364, + 32256, + 512, + 28672, + 512, + 640000, + 1636, + 24064, + 1976, + 272896, + 3096, + 167936, + 3860, + 1135616, + 4944, + 96768, + 1772, + 1086464, + 10516, + 1362944, + 7912, + 62976, + 656, + 63488, + 656, + 63488, + 656, + 115712, + 320, + 115200, + 320, + 895488, + 9612, + 11264, + 336, + 271360, + 2784, + 394240, + 9496, + 53760, + 784, + 360448, + 6288, + 84480, + 2488, + 588288, + 7708, + 724480, + 7052, + 2811392, + 12416, + 2999296, + 10636, + 34304, + 332, + 38400, + 336, + 38400, + 336, + 1101312, + 4140, + 1100288, + 4072, + 13824, + 332, + 13312, + 332, + 13824, + 332, + 12800, + 336, + 11776, + 372, + 13312, + 332, + 13312, + 332, + 13312, + 332, + 15360, + 332, + 13312, + 332, + 13824, + 332, + 12800, + 336, + 13312, + 332, + 13312, + 332, + 125952, + 3308, + 128000, + 3688, + 431616, + 2860, + 442880, + 3348, + 2013184, + 1400, + 660992, + 5236, + 1506816, + 5124, + 707584, + 3248, + 706560, + 3248, + 1534976, + 572, + 1537536, + 572, + 2013696, + 3344, + 2031616, + 3344, + 57856, + 2364, + 205824, + 1748, + 739328, + 1232, + 741376, + 1232, + 67584, + 1316, + 1430528, + 2832, + 429568, + 620, + 455680, + 620, + 1007616, + 5588, + 1282048, + 2624, + 1265152, + 2628, + 4728320, + 7148, + 4441600, + 6448, + 4735488, + 5152, + 3809280, + 5136, + 4013568, + 5852, + 97280, + 1332, + 978432, + 3564, + 72704, + 2504, + 28672, + 376, + 2288640, + 7400, + 2407936, + 7308, + 901632, + 8740, + 972288, + 9456, + 1052160, + 6812, + 1026560, + 6528, + 1321472, + 9780, + 837120, + 8460, + 288768, + 1108, + 308736, + 1108, + 1195520, + 1948, + 1198080, + 1948, + 181248, + 5368, + 144384, + 4900, + 776704, + 348, + 157696, + 5076, + 60928, + 444, + 60928, + 444, + 209920, + 5220, + 246784, + 756, + 246272, + 756, + 604672, + 8528, + 24064, + 564, + 24064, + 564, + 47104, + 556, + 44032, + 556, + 321536, + 2176, + 332288, + 2176, + 204288, + 2388, + 204800, + 2440, + 107008, + 912, + 82432, + 1448, + 87552, + 1996, + 89088, + 372, + 922112, + 4576, + 508928, + 1944, + 528896, + 1996, + 5450240, + 2776, + 3680768, + 15000, + 3721728, + 16696, + 845312, + 9152, + 3270656, + 4144, + 1602048, + 852, + 1606656, + 852, + 36864, + 564, + 39936, + 564, + 214016, + 3144, + 576000, + 4544, + 580096, + 4468, + 627200, + 6596, + 1623040, + 11196, + 1107456, + 9700, + 2272256, + 13208, + 2289152, + 13624, + 1189376, + 704, + 1203712, + 704, + 470528, + 6616, + 451584, + 5508, + 143360, + 1388, + 143360, + 1388, + 55296, + 2920, + 55808, + 2920, + 82944, + 2444, + 82944, + 2444, + 2862592, + 3168, + 7680, + 372, + 68096, + 1124, + 67584, + 1124, + 1022976, + 1240, + 193024, + 2660, + 193536, + 2660, + 2833408, + 1172, + 195072, + 1564, + 512000, + 2840, + 131072, + 3096, + 313344, + 2100, + 89088, + 2136, + 86016, + 2136, + 1243648, + 1840, + 1280512, + 1840, + 778752, + 1040, + 10240, + 388, + 420864, + 1660, + 3430400, + 5764, + 1161216, + 736, + 2591232, + 9460, + 1972224, + 8028, + 583168, + 6348, + 468992, + 6044, + 553472, + 4172, + 551424, + 3364, + 1433600, + 2712, + 677376, + 2552, + 1743872, + 5072, + 1784320, + 5540, + 1024512, + 2564, + 1110016, + 3572, + 5252096, + 11496, + 5855744, + 13532, + 18944, + 1000, + 12800, + 424, + 149504, + 512, + 9216, + 312, + 84480, + 1308, + 20992, + 992, + 17920, + 996, + 36352, + 1096, + 15872, + 996, + 1478144, + 1736, + 83968, + 432, + 1655296, + 2292, + 1654272, + 2200, + 604160, + 560, + 27136, + 2024, + 43520, + 656, + 21504, + 1316, + 26624, + 324, + 412160, + 2000, + 163840, + 724, + 155136, + 724, + 1257472, + 7584, + 1146368, + 3468, + 18944, + 324, + 2123264, + 5428, + 2144768, + 6080, + 57344, + 896, + 80384, + 1284, + 1655808, + 1172, + 260608, + 1280, + 908800, + 1356, + 532480, + 1196, + 46592, + 340, + 61440, + 300, + 50176, + 300, + 49664, + 300, + 50176, + 300, + 49152, + 300, + 48640, + 300, + 49664, + 300, + 49664, + 300, + 48640, + 300, + 49664, + 300, + 42496, + 340, + 46080, + 300, + 50176, + 300, + 44032, + 304, + 50176, + 300, + 43008, + 340, + 48128, + 300, + 38400, + 344, + 49664, + 300, + 43008, + 340, + 44032, + 340, + 54272, + 300, + 50176, + 300, + 44032, + 304, + 48128, + 300, + 43520, + 340, + 50176, + 300, + 49152, + 300, + 44032, + 304, + 44032, + 304, + 61440, + 300, + 52736, + 340, + 54272, + 300, + 46080, + 300, + 49664, + 300, + 36864, + 344, + 17920, + 308, + 16896, + 312, + 17920, + 308, + 17408, + 308, + 17920, + 308, + 17920, + 308, + 17920, + 308, + 17920, + 308, + 16896, + 312, + 17408, + 308, + 17920, + 308, + 18432, + 308, + 17920, + 308, + 17408, + 308, + 18432, + 308, + 17920, + 308, + 18432, + 308, + 19456, + 308, + 20480, + 308, + 18432, + 308, + 16384, + 312, + 20480, + 308, + 16384, + 312, + 17920, + 308, + 18432, + 308, + 18432, + 308, + 17408, + 308, + 19456, + 308, + 721408, + 1540, + 20518056, + 176, + 25554944, + 176, + 17408, + 1464, + 17408, + 1620, + 78848, + 296, + 118784, + 740, + 2226688, + 1360, + 2097664, + 1360, + 2452992, + 16100, + 2390528, + 15368, + 19825152, + 2436, + 536064, + 1252, + 12187136, + 1832, + 26112, + 2080, + 26112, + 2080, + 26112, + 2084, + 26112, + 2084, + 25088, + 1760, + 25600, + 2088, + 25088, + 2088, + 25088, + 1756, + 25088, + 2084, + 25088, + 2084, + 23552, + 2100, + 23552, + 2100, + 23552, + 2100, + 23552, + 2100, + 168960, + 1064, + 171520, + 1064, + 168960, + 1064, + 6656, + 372, + 7168, + 368, + 12288, + 704, + 14848, + 816, + 3638784, + 856, + 3638272, + 856, + 3700736, + 856, + 11264, + 484, + 68096, + 732, + 68096, + 732, + 68096, + 732, + 118272, + 924, + 933376, + 1352, + 933376, + 1352, + 942080, + 1352, + 683008, + 10132, + 768512, + 3312, + 768000, + 3312, + 230912, + 1488, + 200704, + 1876, + 148480, + 2048, + 391680, + 2204, + 391680, + 2204, + 395264, + 2204, + 13061632, + 620, + 10336768, + 620, + 5653504, + 2256, + 6656, + 348, + 7680, + 304, + 1251840, + 1980, + 796672, + 1984, + 812544, + 2324, + 8192, + 316, + 8704, + 304, + 181248, + 3020, + 252928, + 728, + 176128, + 2856, + 9728, + 356, + 174080, + 3208, + 10752, + 360, + 1075712, + 556, + 9216, + 360, + 150016, + 1260, + 993792, + 864, + 27648, + 300, + 9489920, + 900, + 7684608, + 900, + 7966720, + 1540, + 2586624, + 708, + 1241600, + 1180, + 1172992, + 1336, + 1838592, + 1196, + 10906624, + 2396, + 11145728, + 2580, + 31232, + 312, + 6656, + 360, + 10752, + 316, + 10240, + 316, + 8192, + 308, + 8192, + 308, + 9216, + 320, + 8704, + 312, + 460800, + 768, + 1172992, + 752, + 247808, + 1088, + 1645568, + 584, + 8704, + 308, + 391680, + 536, + 769536, + 1100, + 243200, + 8192, + 304, + 3034624, + 1732, + 8192, + 296, + 283648, + 424, + 8192, + 316, + 8704, + 316, + 6656, + 352, + 6656, + 360, + 19968, + 316, + 8192, + 304, + 9216, + 304, + 9216, + 300, + 8192, + 296, + 10752, + 308, + 26242048, + 2764, + 1180672, + 764, + 36864, + 592, + 522752, + 536, + 9728, + 304, + 128000, + 420, + 273920, + 300, + 26624, + 316, + 8704, + 312, + 1382912, + 3572, + 2391552, + 3368, + 1316864, + 3200, + 8192, + 312, + 8704, + 304, + 8192, + 316, + 636928, + 1956, + 251904, + 752, + 8192, + 312, + 35328, + 1368, + 811520, + 1276, + 306176, + 644, + 408576, + 1240, + 12288, + 316, + 102400, + 504, + 8192, + 308, + 2842112, + 1100, + 19456, + 300, + 32256, + 332, + 31744, + 316, + 9216, + 324, + 9728, + 324, + 14336, + 308, + 36352, + 560, + 9728, + 320, + 805888, + 912, + 221696, + 932, + 802304, + 592, + 19939840, + 3948, + 8192, + 304, + 8192, + 316, + 886784, + 3224, + 1123840, + 3024, + 8192, + 316, + 9216, + 308, + 8704, + 300, + 8704, + 308, + 719360, + 924, + 702464, + 972, + 13918208, + 4076, + 13918208, + 3972, + 257024, + 432, + 94720, + 600, + 1904640, + 1580, + 122880, + 1372, + 122368, + 1252, + 13563392, + 1720, + 4451328, + 2520, + 2031616, + 572, + 7577088, + 748, + 15872, + 636, + 10240, + 308, + 8704, + 308, + 9728, + 308, + 395776, + 872, + 8704, + 304, + 9728, + 300, + 240640, + 2288, + 1309184, + 3864, + 93696, + 292, + 93696, + 292, + 95232, + 292, + 635392, + 572, + 629248, + 572, + 629248, + 572, + 474624, + 3184, + 130560, + 2420, + 84480, + 3088, + 153088, + 3444, + 227840, + 3116, + 339456, + 1420, + 708096, + 5904, + 999936, + 7792, + 1446400, + 2340, + 1404928, + 2340, + 4345344, + 14076, + 4835328, + 15864, + 411136, + 1556, + 411648, + 1556, + 605696, + 1076, + 605184, + 1024, + 13824, + 808, + 183296, + 1680, + 185856, + 1680, + 347136, + 1428, + 141824, + 340, + 222720, + 344, + 721920, + 2112, + 4110336, + 1348, + 248832, + 3588, + 249344, + 3680, + 98816, + 2896, + 99328, + 3012, + 7753728, + 852, + 7665664, + 852, + 7665664, + 852, + 154112, + 892, + 155648, + 892, + 154112, + 892, + 457216, + 1660, + 133632, + 2716, + 137216, + 888, + 136704, + 888, + 136704, + 888, + 118272, + 1832, + 122368, + 736, + 135680, + 736, + 135680, + 736, + 63488, + 300, + 80384, + 572, + 81920, + 572, + 80384, + 572, + 104960, + 3084, + 166912, + 2416, + 14848, + 3508, + 18944, + 3576, + 267264, + 300, + 1542656, + 1364, + 765952, + 2124, + 23862784, + 2048, + 596480, + 2444, + 72704, + 404, + 72704, + 404, + 61440, + 404, + 129024, + 504, + 105984, + 540, + 108032, + 1736, + 28160, + 320, + 30720, + 320, + 26112, + 328, + 28160, + 324, + 28160, + 320, + 28160, + 324, + 29184, + 320, + 26112, + 328, + 28672, + 320, + 28672, + 320, + 26112, + 328, + 27136, + 320, + 28672, + 320, + 34304, + 320, + 28672, + 320, + 27648, + 320, + 27648, + 320, + 29184, + 320, + 26112, + 328, + 28672, + 320, + 27136, + 320, + 34304, + 320, + 29184, + 320, + 30720, + 320, + 28672, + 320, + 29184, + 320, + 28672, + 320, + 28672, + 320, + 2295296, + 928, + 2386432, + 928, + 561664, + 588, + 445952, + 708, + 577536, + 588, + 88064, + 308, + 88576, + 308, + 97792, + 308, + 81408, + 308, + 88064, + 308, + 77824, + 312, + 89088, + 308, + 97792, + 308, + 89088, + 308, + 83968, + 308, + 87040, + 308, + 84480, + 308, + 85504, + 308, + 81408, + 308, + 89600, + 308, + 110080, + 308, + 87552, + 308, + 110080, + 308, + 76288, + 312, + 84480, + 308, + 89600, + 308, + 83968, + 308, + 87552, + 308, + 88576, + 308, + 87040, + 308, + 76288, + 312, + 85504, + 308, + 77824, + 312, + 288768, + 2980, + 193536, + 8280, + 1096192, + 1232, + 1049088, + 992, + 1049088, + 888, + 4356608, + 2160, + 4356608, + 2056, + 2875904, + 2568, + 161792, + 316, + 127488, + 324, + 146432, + 316, + 148480, + 316, + 146432, + 316, + 144384, + 316, + 141312, + 316, + 148480, + 316, + 145920, + 316, + 129024, + 324, + 141312, + 316, + 182784, + 316, + 141824, + 320, + 142848, + 316, + 127488, + 324, + 146432, + 316, + 133632, + 316, + 161792, + 316, + 140288, + 316, + 144384, + 316, + 129024, + 324, + 133632, + 316, + 140288, + 316, + 141824, + 320, + 142848, + 316, + 145920, + 316, + 146432, + 316, + 182784, + 316, + 190464, + 1048, + 6645760, + 2612, + 7172608, + 1728, + 130048, + 5804, + 129536, + 3332, + 14091776, + 5592, + 13456896, + 7916, + 13585920, + 5256, + 671232, + 744, + 65536, + 5008, + 71168, + 4604, + 2784256, + 6712, + 339456, + 3816, + 709120, + 6720, + 1713152, + 6228, + 2441216, + 6552, + 2871296, + 6480, + 541184, + 5580, + 93696, + 2280, + 11535872, + 9976, + 473600, + 5696, + 386048, + 6460, + 800768, + 8296, + 953344, + 6276, + 2007040, + 6952, + 11059712, + 5060, + 10085888, + 5084, + 10799104, + 8684, + 5849600, + 9716, + 633344, + 4468, + 9155072, + 8444, + 327168, + 2708, + 235008, + 6428, + 1310720, + 3228, + 476160, + 7256, + 634368, + 5128, + 16174592, + 5424, + 15025152, + 7648, + 1963008, + 700, + 308224, + 3632, + 82944, + 720, + 1541632, + 2216, + 304640, + 1212, + 132608, + 1104, + 2478592, + 2864, + 383488, + 1632, + 302592, + 2956, + 29184, + 688, + 50176, + 544, + 30208, + 1816, + 12800, + 600, + 13312, + 1516, + 79872, + 1056, + 94720, + 424, + 148992, + 760, + 148992, + 3696, + 221696, + 892, + 225280, + 1524, + 8704, + 304, + 8192, + 288, + 188416, + 856, + 53760, + 464, + 1364480, + 2364, + 91648, + 500, + 1593856, + 432, + 2812416, + 580, + 135680, + 504, + 664064, + 328, + 626688, + 748, + 548864, + 1120, + 720896, + 1784, + 1544192, + 1832, + 1606144, + 2000, + 4137472, + 3300, + 7470592, + 2380, + 387584, + 1076, + 440320, + 2008, + 739840, + 1608, + 13512704, + 2264, + 1871360, + 3336, + 381440, + 1268, + 332288, + 1652, + 1762304, + 2196, + 214016, + 1252, + 2290176, + 3148, + 671232, + 1248, + 1467392, + 2232, + 80896, + 608, + 2438144, + 3692, + 489984, + 316, + 117760, + 608, + 437760, + 1500, + 377344, + 1512, + 175616, + 760, + 744448, + 3928, + 111616, + 320, + 112640, + 324, + 123904, + 320, + 113152, + 320, + 114176, + 320, + 114176, + 320, + 111616, + 320, + 116224, + 320, + 105472, + 328, + 114688, + 320, + 105472, + 328, + 137216, + 320, + 115712, + 320, + 882688, + 12228, + 155136, + 2348, + 144384, + 2012, + 23040, + 1652, + 89600, + 7804, + 161280, + 5012, + 754688, + 3868, + 34304, + 676, + 816128, + 11644, + 372736, + 1908, + 551424, + 5268, + 86016, + 6264, + 16896, + 332, + 17920, + 324, + 17920, + 324, + 18944, + 324, + 17920, + 324, + 18432, + 324, + 19968, + 324, + 17408, + 332, + 17920, + 324, + 17920, + 324, + 17920, + 324, + 17920, + 324, + 17920, + 328, + 241152, + 8200, + 919040, + 528, + 913408, + 528, + 371712, + 2888, + 1105920, + 4116, + 2182656, + 1708, + 1213440, + 12088, + 524288, + 9496, + 460800, + 6288, + 3119616, + 12416, + 47104, + 336, + 14848, + 332, + 16384, + 332, + 14848, + 332, + 13824, + 336, + 13824, + 336, + 14336, + 332, + 14336, + 332, + 14336, + 332, + 14848, + 332, + 14848, + 332, + 14848, + 332, + 14336, + 332, + 14336, + 332, + 913920, + 3248, + 2378240, + 3344, + 998912, + 1232, + 60416, + 556, + 233472, + 2388, + 4872192, + 16696, + 1746432, + 852, + 1432576, + 704, + 1444352, + 704, + 98304, + 2444, + 218112, + 2660, + 4998144, + 716, + 5272064, + 716, + 240128, + 1564, + 1604608, + 1840, + 1565696, + 1840, + 1565696, + 1840, + 1497088, + 736, + 22016, + 1000, + 14848, + 424, + 1531392, + 2684, + 188928, + 512, + 10240, + 312, + 97792, + 1308, + 24064, + 992, + 20480, + 996, + 44544, + 1096, + 18432, + 996, + 31744, + 2024, + 51712, + 656, + 25600, + 1316, + 35328, + 324, + 611328, + 1444, + 526848, + 2000, + 26112, + 324, + 7213568, + 1568, + 2115072, + 1172, + 316416, + 1280, + 646144, + 1196, + 1097216, + 1356, + 47104, + 300, + 50688, + 300, + 51200, + 300, + 51200, + 300, + 51200, + 300, + 45056, + 304, + 49664, + 300, + 47104, + 300, + 51200, + 300, + 49664, + 300, + 50688, + 300, + 62464, + 300, + 51200, + 300, + 50688, + 300, + 50688, + 300, + 49664, + 300, + 55296, + 300, + 45056, + 304, + 51200, + 300, + 45056, + 304, + 50688, + 300, + 55296, + 300, + 49664, + 300, + 51200, + 300, + 62464, + 300, + 51200, + 300, + 50688, + 300, + 45056, + 304, + 19456, + 308, + 19456, + 308, + 18944, + 308, + 19456, + 308, + 18944, + 308, + 18944, + 308, + 22016, + 308, + 22016, + 308, + 20992, + 308, + 18944, + 308, + 19456, + 308, + 18432, + 308, + 18944, + 308, + 19456, + 308, + 18944, + 308, + 19456, + 308, + 19456, + 308, + 17920, + 312, + 18944, + 308, + 18432, + 308, + 19456, + 308, + 17920, + 312, + 19456, + 308, + 17920, + 312, + 20992, + 308, + 19456, + 308, + 18944, + 308, + 17920, + 312, + 910848, + 1540, + 22551712, + 176, + 98816, + 296, + 139264, + 740, + 2679296, + 1360, + 2817024, + 1360, + 23356416, + 2436, + 650752, + 1252, + 14530048, + 1832, + 29696, + 2080, + 29184, + 2084, + 26624, + 2100, + 13312, + 484, + 73728, + 732, + 73728, + 732, + 74240, + 732, + 143872, + 924, + 303104, + 1488, + 12712448, + 620, + 7215616, + 2256, + 9216, + 304, + 1687552, + 1980, + 1063424, + 1984, + 1082880, + 2324, + 9728, + 316, + 10752, + 304, + 349696, + 728, + 1405440, + 556, + 169984, + 1260, + 1175552, + 864, + 31744, + 300, + 10212352, + 900, + 9414656, + 1540, + 3118080, + 708, + 1555456, + 1180, + 1391616, + 1336, + 2229760, + 1196, + 12569600, + 2396, + 35328, + 312, + 12288, + 316, + 12800, + 316, + 9216, + 308, + 9216, + 308, + 10240, + 320, + 10240, + 312, + 1125376, + 1128, + 547328, + 768, + 1424384, + 752, + 295424, + 1088, + 1996288, + 584, + 10752, + 308, + 486912, + 536, + 1000960, + 1100, + 334336, + 9216, + 304, + 9728, + 296, + 338944, + 424, + 9216, + 316, + 10240, + 316, + 22528, + 316, + 9216, + 304, + 10752, + 304, + 10752, + 300, + 9216, + 296, + 12800, + 308, + 2764, + 1433600, + 764, + 642048, + 536, + 314880, + 300, + 10240, + 312, + 1701888, + 3200, + 3041280, + 3368, + 1785344, + 3572, + 9216, + 312, + 10240, + 304, + 9728, + 316, + 867840, + 1948, + 300544, + 752, + 10240, + 312, + 41984, + 1368, + 932352, + 1276, + 345600, + 644, + 517120, + 1240, + 15360, + 316, + 111104, + 504, + 9216, + 308, + 3349504, + 1100, + 24576, + 300, + 36864, + 332, + 36352, + 316, + 10752, + 324, + 10752, + 324, + 16896, + 308, + 41472, + 560, + 11264, + 320, + 950272, + 912, + 260608, + 932, + 989184, + 592, + 24750080, + 3948, + 9216, + 304, + 9216, + 316, + 917504, + 3224, + 1547776, + 3024, + 9216, + 316, + 10752, + 308, + 10752, + 300, + 9728, + 308, + 872448, + 924, + 814592, + 972, + 16530944, + 4076, + 16530944, + 3972, + 290304, + 432, + 111616, + 600, + 2162688, + 1580, + 15892480, + 1720, + 5285888, + 2520, + 2543616, + 572, + 8998912, + 748, + 18944, + 636, + 10240, + 308, + 11776, + 308, + 11264, + 308, + 480256, + 872, + 10240, + 304, + 11264, + 300, + 267264, + 2288, + 108544, + 292, + 107008, + 292, + 107008, + 292, + 841728, + 572, + 847872, + 572, + 842240, + 572, + 219136, + 304, + 105984, + 3088, + 167424, + 2420, + 292352, + 3116, + 195584, + 3444, + 1740288, + 2340, + 1792000, + 2340, + 5146624, + 1348, + 176640, + 892, + 174592, + 892, + 174592, + 892, + 611840, + 1660, + 154112, + 888, + 155648, + 888, + 154112, + 888, + 197632, + 1832, + 301609, + 338048, + 64512, + 135, + 16384, + 3170304, + 1474560, + 1474560, + 16384, + 3170304, + 1024, + 1024, + 4096, + 77728, + 77728, + 4669, + 1224608, + 1209752, + 115616, + 76696, + 76704, + 45472, + 75680, + 75680, + 45472, + 79264, + 79264, + 45984, + 80288, + 80288, + 46488, + 74144, + 74144, + 74136, + 74144, + 44960, + 77728, + 77728, + 45984, + 77728, + 77728, + 75168, + 75168, + 76704, + 76704, + 45472, + 79264, + 79264, + 79256, + 79264, + 45984, + 76704, + 76696, + 78752, + 78752, + 45984, + 77216, + 77216, + 45472, + 67488, + 67488, + 42912, + 66976, + 66976, + 42912, + 75680, + 75680, + 75680, + 75672, + 1056664, + 75680, + 75680, + 45472, + 77728, + 77728, + 45472, + 77728, + 77720, + 45976, + 76704, + 76704, + 45472, + 76696, + 76704, + 45984, + 54176, + 76192, + 76192, + 77208, + 77216, + 44960, + 77216, + 77216, + 76704, + 76704, + 77216, + 77216, + 76192, + 76192, + 44960, + 75168, + 75168, + 45472, + 77208, + 77216, + 4662, + 6534, + 63904, + 63904, + 42400, + 63904, + 63904, + 42400, + 3695719, + 3878410, + 1985867, + 2373000, + 174959, + 177414, + 143754, + 145419, + 162331, + 164347, + 154427, + 156245, + 44859, + 85862, + 86178, + 49091, + 77728, + 395314, + 1, + 95648, + 99744, + 76704, + 45472, + 75672, + 45472, + 79264, + 45984, + 80288, + 46496, + 74144, + 74144, + 44960, + 77728, + 45984, + 77720, + 75160, + 76696, + 45472, + 79264, + 79264, + 45984, + 76696, + 78752, + 45976, + 77208, + 45472, + 67488, + 42904, + 66976, + 42912, + 75672, + 75680, + 812440, + 75672, + 45472, + 77728, + 45472, + 77728, + 45984, + 76704, + 45472, + 76696, + 45984, + 83352, + 54176, + 76184, + 77208, + 44960, + 77216, + 76704, + 77216, + 76192, + 44952, + 75168, + 45472, + 77216, + 4662, + 63904, + 42400, + 63904, + 42392, + 92576, + 12704, + 12192, + 67584, + 1477720, + 7680, + 7680, + 962048, + 958976, + 6480, + 34390, + 136606, + 136606, + 156118, + 556304, + 556304, + 556304, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 8774, + 8774, + 8774, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 136606, + 556304, + 556304, + 556304, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 8774, + 2560, + 1024, + 15360, + 10752, + 2560, + 12288, + 52736, + 6656, + 3072, + 8582, + 3, + 16777270, + 4606392, + 70144, + 808, + 1233, + 2222, + 2090, + 1120, + 1317, + 2038, + 2574, + 1544, + 1215, + 1277, + 2053, + 2088, + 1560, + 1815, + 2177, + 1483, + 846, + 1590, + 2724, + 1676, + 2430, + 1197, + 1429, + 1310, + 1873, + 1914, + 13868, + 8116, + 5632, + 11423, + 78336, + 6996, + 5120, + 1151, + 1848, + 1898, + 1137, + 1802, + 2593, + 4506, + 2839, + 410, + 1093, + 610, + 848, + 422, + 12109, + 5756, + 2092, + 5260, + 3584, + 5120, + 2620, + 80896, + 4680, + 3584, + 229, + 12800, + 592, + 1963, + 1068, + 1080, + 701, + 369, + 711, + 1485, + 540, + 613, + 3148, + 1390, + 2432, + 1488, + 1282, + 711, + 531, + 682, + 468, + 3728, + 9216, + 15256, + 152064, + 3280, + 8192, + 1219, + 2204, + 382, + 1470, + 734, + 347, + 2381, + 370, + 1069, + 832, + 1943, + 11026, + 1535, + 714, + 17920, + 11776, + 1141, + 1029, + 610, + 384, + 141662, + 8016, + 13824, + 29602, + 176128, + 7380, + 11776, + 22718, + 1636, + 2557, + 2804, + 1756, + 1223, + 7091, + 6746, + 1323, + 1139, + 5106, + 1825, + 1624, + 15593, + 2462, + 1932, + 2563, + 1575, + 3258, + 1591, + 1921, + 2920, + 2226, + 20053, + 10426, + 894, + 4608, + 7152, + 78848, + 814, + 4096, + 1050, + 2221, + 5322, + 858, + 779, + 5310, + 1861, + 4670, + 6144, + 17152, + 17920, + 4106, + 5632, + 1200, + 1200, + 1192, + 1204, + 3594, + 1206, + 1192, + 1131, + 1131, + 1123, + 1135, + 2313, + 1137, + 1123, + 8508, + 40057, + 1648, + 15872, + 20463, + 1062, + 7168, + 14398, + 2560, + 972, + 6144, + 1022, + 918, + 1398, + 1737, + 1445, + 1185, + 747, + 1218, + 1307, + 712, + 1331, + 1022, + 1277, + 43151, + 4245, + 3898, + 9216, + 25149, + 55808, + 3496, + 8192, + 2351, + 2054, + 660, + 248, + 321, + 3578, + 1242, + 1770, + 2523, + 2706, + 2691, + 2270, + 1902, + 1276, + 476, + 34272, + 408, + 4096, + 3977, + 2560, + 396, + 3584, + 2214, + 10719, + 751, + 427, + 1150, + 796, + 4968, + 37376, + 63654, + 79360, + 4368, + 28160, + 10240, + 27648, + 5063, + 2292, + 712, + 5480, + 2769, + 446, + 218, + 526, + 3584, + 2800, + 44032, + 504, + 3584, + 22016, + 137, + 252, + 181, + 17920, + 5966, + 164860, + 489984, + 14848, + 5366, + 951, + 770, + 9728, + 12213, + 23982, + 11079, + 567, + 54687, + 3011, + 7220, + 13312, + 23306, + 66560, + 6424, + 11264, + 42483, + 16946, + 453, + 49790, + 5766, + 3584, + 2653, + 85504, + 5062, + 3584, + 2755, + 311, + 879, + 1004, + 717, + 2301, + 2009, + 540, + 1537, + 836, + 1365, + 510, + 488, + 5025, + 651, + 11264, + 2194, + 1402, + 1224, + 1576, + 868, + 1592, + 384, + 1468, + 1556, + 1530, + 1736, + 16622, + 75264, + 9216, + 1732, + 1176, + 1014, + 1324, + 760, + 1240, + 358, + 1180, + 1234, + 1180, + 1198, + 27598, + 781, + 3102, + 2192, + 3130, + 2135, + 3091, + 389, + 3053, + 3160, + 3137, + 3144, + 3051, + 1626, + 1712, + 1695, + 1711, + 1564, + 1326, + 772, + 1492, + 2048, + 21039, + 6740, + 16384, + 28156, + 64512, + 6210, + 13312, + 4208, + 607, + 4161, + 2886, + 1025, + 555, + 377, + 1274, + 663, + 490, + 2004, + 1078, + 1402, + 4082, + 1459, + 2770, + 1100, + 663, + 757, + 654, + 746, + 1052, + 760, + 2089, + 636, + 1394, + 640, + 10752, + 1314, + 20594, + 5772, + 10752, + 13349, + 81408, + 5012, + 9216, + 838, + 2078, + 548, + 2218, + 913, + 945, + 962, + 1775, + 909, + 931, + 1491, + 47126, + 4108, + 6656, + 12750, + 78848, + 3694, + 6144, + 2672, + 3062, + 94720, + 949, + 62743, + 1154, + 5120, + 7501, + 2560, + 1064, + 4608, + 8826, + 25358, + 1396, + 1332, + 22025, + 370, + 7680, + 11953, + 12800, + 330, + 6656, + 1408, + 2046, + 2749, + 1158, + 1051, + 1078, + 2763, + 11286, + 1226, + 1220, + 1221, + 1604, + 6656, + 7379, + 67584, + 1464, + 5632, + 729, + 1129, + 645, + 3054, + 838, + 394, + 5120, + 4621, + 64512, + 392, + 4608, + 592, + 645, + 471, + 1248, + 7168, + 6613, + 81920, + 1188, + 6144, + 139, + 1084, + 1204, + 1082, + 645, + 1928, + 4192, + 18369, + 4979, + 7110, + 1390, + 6656, + 11429, + 78848, + 1310, + 6144, + 1120, + 805, + 5314, + 2613, + 1016, + 1097, + 591, + 3211, + 2542, + 4273, + 344, + 402, + 1584, + 408, + 1341, + 414, + 222486, + 65, + 74064, + 22528, + 22528, + 133, + 966656, + 966656, + 4176, + 44632, + 2560, + 1024, + 13824, + 9728, + 2560, + 11264, + 45568, + 6656, + 3072, + 4848952, + 4669136, + 10976, + 10976, + 11520, + 10976, + 11488, + 12288, + 13248, + 12800, + 13200, + 12720, + 9280, + 9504, + 9856, + 10064, + 9792, + 12304, + 12256, + 12336, + 12384, + 10976, + 12288, + 10224, + 10608, + 9472, + 10240, + 35808, + 36672, + 36656, + 37296, + 36672, + 37472, + 80896, + 70000, + 80896, + 70000, + 916684, + 866652, + 653588, + 649244, + 189124, + 182112, + 182096, + 189264, + 183276, + 188976, + 186728, + 182208, + 180452, + 188932, + 183412, + 184020, + 167620, + 414772, + 410464, + 415776, + 410988, + 10992, + 13552, + 17760, + 1330156, + 1297136, + 1094912, + 1133324, + 963568, + 1056136, + 1723352, + 809512, + 857200, + 822568, + 219524, + 227628, + 227684, + 229412, + 7216, + 6352, + 6672, + 6672, + 7232, + 7216, + 6336, + 5168, + 4320, + 5200, + 4640, + 5168, + 5168, + 4304, + 245572, + 229444, + 226704, + 224248, + 445180, + 383780, + 452056, + 392232, + 448368, + 451860, + 448788, + 455620, + 262288, + 276064, + 270728, + 281096, + 26432, + 26544, + 23440, + 35888, + 36032, + 31760, + 794216, + 793256, + 577340, + 23408, + 23440, + 25024, + 23440, + 25024, + 31712, + 31776, + 33344, + 31808, + 33360, + 667232, + 5600, + 12896, + 672300, + 611212, + 345208, + 611556, + 720012, + 631992, + 580168, + 576004, + 643852, + 313856, + 235848, + 241972, + 333636, + 341072, + 332036, + 338776, + 363200, + 316440, + 331128, + 338140, + 330012, + 65, + 57948, + 36336, + 36816, + 36656, + 876784, + 879640, + 9248, + 8384, + 8368, + 8704, + 9232, + 9248, + 8368, + 6192, + 5328, + 5344, + 5648, + 5280, + 6192, + 5312, + 84241, + 140748, + 154188, + 1805996, + 229912, + 228504, + 271648, + 250668, + 263504, + 269048, + 271832, + 249924, + 266156, + 272460, + 219644, + 207484, + 208428, + 138196, + 143448, + 136176, + 139324, + 143684, + 135328, + 139800, + 140268, + 141608, + 159464, + 140808, + 136228, + 211780, + 66660, + 75340, + 77384, + 76356, + 76352, + 76084, + 75832, + 76104, + 74244, + 74476, + 69916, + 68464, + 71600, + 82744, + 75980, + 70896, + 26040, + 26489, + 29779, + 43318, + 11056, + 12400, + 10032, + 573308, + 40264, + 5680, + 6512, + 214808, + 12896, + 14432, + 10656, + 304568, + 41584, + 38480, + 6528, + 7728, + 327420, + 393764, + 386264, + 117092, + 327516, + 13457192, + 12598388, + 5083240, + 27652, + 9533888, + 9749256, + 840752, + 291356, + 271860, + 8704, + 290236, + 9214528, + 21402208, + 14439388, + 12875900, + 23648676, + 16246936, + 12004804, + 301876, + 78272, + 272840, + 304076, + 309956, + 306076, + 298668, + 295152, + 1422772, + 1377980, + 1462828, + 75160, + 69316, + 206612, + 472216, + 419976, + 336672, + 413712, + 94412, + 99464, + 74520, + 76972, + 74200, + 76300, + 78136, + 76184, + 78756, + 74944, + 73820, + 76080, + 77632, + 73660, + 77284, + 73352, + 13312, + 11056, + 12384, + 17760, + 12288, + 202428, + 173700, + 173080, + 596924, + 581228, + 925736, + 914092, + 509768, + 878372, + 816540, + 523052, + 324448, + 351908, + 1690384, + 1383320, + 441372, + 941172, + 439396, + 448756, + 2454648, + 62944, + 65392, + 59024, + 89456, + 95488, + 84080, + 57936, + 59952, + 60752, + 63296, + 61024, + 81728, + 85360, + 86256, + 90736, + 84848, + 18214352, + 17064020, + 944436, + 932572, + 997912, + 987736, + 25216, + 32512, + 24672, + 20448, + 37952, + 19904, + 26112, + 24784, + 28912, + 24832, + 29200, + 21504, + 19600, + 23120, + 19760, + 23008, + 69232, + 73216, + 65456, + 72192, + 95840, + 67328, + 90336, + 102400, + 64656, + 66464, + 65328, + 68848, + 64400, + 89856, + 92032, + 90288, + 98256, + 89456, + 18087936, + 5680, + 12896, + 257052, + 71000, + 839004, + 768964, + 68260, + 60480, + 2576, + 1110940, + 1093272, + 826840, + 884748, + 254448, + 244240, + 225940, + 252300, + 243284, + 211316, + 223308, + 163324, + 166940, + 163128, + 165288, + 164360, + 157596, + 161736, + 160860, + 166668, + 155584, + 159576, + 158924, + 229848, + 5168, + 5168, + 5232, + 6160, + 5120, + 5552, + 5184, + 5184, + 5200, + 5184, + 6128, + 5184, + 7232, + 6272, + 6304, + 6272, + 5952, + 6528, + 5376, + 7168, + 5360, + 5376, + 6112, + 5600, + 6112, + 5168, + 7104, + 7648, + 6656, + 8704, + 7280, + 6608, + 7008, + 6912, + 6912, + 122784, + 84776, + 14542540, + 13827216, + 13760848, + 13697012, + 3869801, + 2964, + 1555440, + 12958, + 16, + 6686208, + 3592, + 3936, + 358328, + 3912, + 788768, + 354016, + 3944, + 25675936, + 3368788, + 1000444, + 2475780, + 2470724, + 2944004, + 93962, + 398424, + 696279, + 278216, + 278216, + 95294, + 24285, + 76827, + 75202, + 79881, + 91664, + 73901, + 63945, + 94637, + 47381, + 76837, + 75209, + 78636, + 87270, + 73848, + 63938, + 123207, + 170846, + 163655, + 167149, + 190382, + 153710, + 181388, + 192658, + 161077, + 155948, + 173135, + 167996, + 175365, + 175142, + 193292, + 176173, + 208311, + 184305, + 152003, + 166960, + 191011, + 172588, + 179346, + 181738, + 193635, + 172483, + 173778, + 196545, + 168973, + 133549, + 137150, + 133821, + 135595, + 137643, + 133803, + 135918, + 138784, + 134220, + 134548, + 133996, + 136312, + 134303, + 140091, + 139146, + 134894, + 142998, + 136681, + 134007, + 136206, + 137845, + 134156, + 135178, + 137714, + 139707, + 138470, + 136571, + 141663, + 136969, + 820959, + 837651, + 841715, + 852003, + 858806, + 815642, + 836702, + 862614, + 816732, + 829627, + 824255, + 838193, + 831598, + 855467, + 849236, + 832468, + 890837, + 856899, + 821074, + 813929, + 851738, + 822220, + 834980, + 854788, + 859328, + 857391, + 831954, + 870512, + 851084, + 60199, + 54388, + 55658, + 55914, + 55229, + 54883, + 55844, + 56461, + 55369, + 55528, + 55209, + 55065, + 55780, + 54999, + 55374, + 55329, + 58244, + 55876, + 55263, + 54598, + 55896, + 55350, + 55013, + 55676, + 55948, + 55812, + 57234, + 56767, + 55447, + 51921, + 50525, + 50600, + 51372, + 50556, + 50003, + 50750, + 51665, + 52094, + 50200, + 50176, + 50753, + 50648, + 50991, + 51055, + 50490, + 51838, + 50686, + 50748, + 49804, + 50825, + 50376, + 50348, + 50585, + 50627, + 50823, + 52845, + 50831, + 50655, + 80529, + 1180712, + 1177049, + 1166899, + 1170755, + 1174183, + 1156877, + 1163286, + 1172109, + 1175470, + 1161012, + 1156568, + 1165993, + 1158947, + 1176781, + 1181107, + 1161986, + 1193441, + 1171979, + 1157102, + 1168877, + 1180549, + 1160990, + 1163072, + 1172432, + 1180765, + 1171788, + 1165080, + 1184896, + 1166673, + 234710, + 68593, + 17013, + 29907, + 43386, + 230849, + 219577, + 60300, + 15070, + 29907, + 39939, + 1586, + 77849, + 19410, + 610, + 32573, + 1584, + 2409, + 41256, + 10954, + 610, + 19250, + 975360, + 18432, + 286208, + 9728, + 2546176, + 103936, + 2139136, + 65536, + 257024, + 7680, + 321, + 26605, + 8686, + 8762, + 30720, + 7702016, + 199168, + 210432, + 516, + 4, + 117416, + 116608, + 1462, + 20071, + 1392, + 294680, + 9766, + 162, + 22020, + 1527, + 82, + 2560, + 2560, + 147456, + 812544, + 8017408, + 7378944, + 40310, + 40310, + 33170, + 33170, + 177806, + 177806, + 2589632, + 7390720, + 46287, + 48350, + 1618106, + 912766, + 1331040, + 528404, + 1322024, + 404904, + 893472, + 377968, + 429472, + 7393280, + 188278, + 3692612, + 16629137, + 1523154, + 1562816, + 127488, + 319, + 1346, + 8685, + 5632, + 5120, + 162, + 167, + 765, + 977, + 565, + 766, + 368, + 1136, + 883, + 1064, + 417, + 354, + 354, + 354, + 529, + 612, + 791, + 2085, + 406, + 406, + 542, + 595, + 747, + 1881, + 354, + 354, + 354, + 529, + 529, + 612, + 612, + 791, + 791, + 2085, + 2085, + 642, + 1232, + 2946, + 2946, + 4048, + 4901, + 8060, + 22343, + 2851, + 2851, + 3886, + 4751, + 7782, + 21801, + 2946, + 2946, + 4048, + 4901, + 8060, + 22343, + 569, + 375, + 977, + 977, + 1252, + 1826, + 2338, + 5709, + 1010, + 1010, + 1270, + 1775, + 2227, + 5481, + 977, + 977, + 1252, + 1826, + 2338, + 5709, + 893, + 569, + 569, + 689, + 911, + 1250, + 2924, + 526, + 526, + 736, + 864, + 1199, + 2811, + 569, + 569, + 689, + 911, + 1250, + 2924, + 741, + 175, + 184, + 583, + 1185, + 508, + 496, + 434, + 857, + 654, + 835, + 353, + 547, + 1357, + 324, + 618, + 502, + 4, + 1648, + 1624, + 8000, + 861, + 1011, + 991, + 1005, + 1058, + 945, + 963, + 939, + 945, + 945, + 905, + 947, + 914, + 930, + 877, + 897, + 884, + 912, + 901, + 897, + 906, + 900, + 885, + 891, + 906, + 906, + 866, + 872, + 928, + 904, + 886, + 931, + 881, + 857, + 897, + 877, + 904, + 889, + 901, + 885, + 839, + 866, + 892, + 908, + 920, + 893, + 901, + 933, + 874, + 880, + 872, + 872, + 896, + 877, + 873, + 869, + 868, + 826, + 820, + 823, + 814, + 817, + 802, + 846, + 1009, + 1003, + 988, + 823, + 829, + 808, + 814, + 796, + 805, + 832, + 838, + 862, + 838, + 829, + 803, + 799, + 808, + 827, + 823, + 823, + 862, + 850, + 838, + 841, + 847, + 829, + 838, + 814, + 799, + 808, + 790, + 814, + 835, + 817, + 835, + 823, + 844, + 838, + 814, + 817, + 808, + 811, + 832, + 826, + 826, + 829, + 823, + 844, + 823, + 814, + 829, + 832, + 841, + 855, + 832, + 823, + 850, + 814, + 820, + 823, + 826, + 829, + 829, + 876, + 817, + 835, + 814, + 817, + 826, + 847, + 826, + 826, + 820, + 835, + 796, + 793, + 859, + 799, + 796, + 864, + 832, + 832, + 787, + 808, + 885, + 891, + 882, + 878, + 1002, + 1002, + 1017, + 1005, + 1003, + 1015, + 1037, + 1004, + 1036, + 1038, + 1011, + 1077, + 1068, + 1053, + 1005, + 1001, + 1033, + 1038, + 1050, + 1035, + 1006, + 1048, + 1057, + 1057, + 1050, + 1038, + 1017, + 1017, + 1020, + 1018, + 948, + 1035, + 1037, + 1033, + 981, + 972, + 1036, + 1042, + 1054, + 1018, + 964, + 998, + 991, + 976, + 982, + 976, + 970, + 979, + 976, + 1024, + 952, + 955, + 1018, + 973, + 958, + 1007, + 921, + 1050, + 961, + 975, + 981, + 954, + 958, + 1000, + 979, + 981, + 964, + 973, + 970, + 964, + 968, + 1010, + 1012, + 1027, + 1046, + 1012, + 1004, + 977, + 967, + 976, + 999, + 1005, + 1018, + 1012, + 982, + 974, + 972, + 1001, + 998, + 998, + 968, + 971, + 1022, + 1016, + 995, + 977, + 1002, + 1008, + 1026, + 1006, + 1011, + 1036, + 990, + 999, + 1006, + 966, + 1020, + 975, + 929, + 962, + 953, + 1016, + 1048, + 1000, + 1032, + 1000, + 1032, + 1008, + 1040, + 982, + 991, + 988, + 982, + 983, + 998, + 1016, + 979, + 976, + 987, + 1013, + 1025, + 1009, + 1003, + 974, + 951, + 978, + 969, + 954, + 975, + 975, + 969, + 969, + 956, + 972, + 974, + 1001, + 1001, + 1017, + 996, + 1000, + 1024, + 1009, + 987, + 984, + 993, + 1023, + 1053, + 986, + 1011, + 1030, + 1011, + 1030, + 991, + 991, + 975, + 1009, + 987, + 954, + 978, + 969, + 966, + 949, + 982, + 974, + 956, + 989, + 989, + 982, + 956, + 956, + 941, + 956, + 986, + 974, + 920, + 980, + 1056, + 1056, + 1052, + 1009, + 1014, + 1020, + 1008, + 999, + 998, + 1020, + 984, + 932, + 929, + 953, + 967, + 920, + 932, + 920, + 940, + 973, + 962, + 1022, + 1008, + 944, + 957, + 1045, + 953, + 952, + 943, + 952, + 973, + 952, + 962, + 938, + 981, + 984, + 984, + 998, + 975, + 818, + 470294, + 1202, + 1181, + 1045, + 1135, + 1019, + 981, + 1153, + 1019, + 962, + 851, + 961, + 1206, + 1011, + 913, + 830, + 1164, + 865, + 1232, + 898, + 991, + 970, + 1206, + 1168, + 1169, + 1214, + 982, + 937, + 924, + 973, + 937, + 956, + 946, + 1030, + 1154, + 1048, + 978, + 1011, + 1074, + 837, + 1116, + 1020, + 1000, + 969, + 1116, + 991, + 1159, + 1036, + 1014, + 912, + 1092, + 1067, + 988, + 998, + 1055, + 881, + 866, + 1019, + 1089, + 966, + 1024, + 1118, + 1114, + 923, + 925, + 959, + 961, + 1000, + 1206, + 821, + 991, + 824, + 929, + 979, + 1061, + 1156, + 1131, + 944, + 1183, + 995, + 1105, + 1022, + 983, + 1020, + 920, + 1039, + 954, + 1048, + 1042, + 1118, + 974, + 1243, + 1016, + 930, + 1030, + 1068, + 1130, + 938, + 981, + 1149, + 1074, + 959, + 956, + 919, + 941, + 950, + 1006, + 1020, + 913, + 1033, + 867, + 843, + 1149, + 957, + 1068, + 964, + 941, + 914, + 999, + 937, + 837, + 1000, + 1089, + 963, + 998, + 1022, + 1149, + 832, + 855, + 980, + 807, + 1062, + 938, + 947, + 979, + 1022, + 992, + 1030, + 998, + 1014, + 961, + 940, + 957, + 827, + 1153, + 866, + 1114, + 921, + 1012, + 944, + 1151, + 887, + 1060, + 937, + 912, + 1077, + 923, + 1037, + 1071, + 1192, + 986, + 985, + 968, + 994, + 1004, + 824, + 1176, + 990, + 1040, + 947, + 1062, + 1232, + 938, + 1148, + 1032, + 911, + 895, + 743, + 774, + 846, + 5877760, + 95104, + 504, + 1043968, + 53760, + 36, + 36, + 829, + 54230, + 45, + 45, + 811, + 52828, + 42, + 42, + 1055, + 166446, + 65, + 65, + 444, + 98700, + 53, + 53, + 444, + 98752, + 33, + 33, + 381, + 1288, + 36, + 36, + 6067, + 1517020, + 11222, + 20076, + 4034, + 10124, + 4510, + 4150, + 10500, + 3816, + 7532, + 2500, + 7060, + 3124, + 7660, + 2560, + 7612, + 23024, + 28740, + 9932, + 14572, + 6256, + 12140, + 124744, + 46912, + 64756, + 31, + 7177, + 995542, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 819516, + 6537, + 819516, + 30, + 7177, + 997498, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 819522, + 6537, + 819522, + 36, + 318, + 42996, + 357050, + 2242, + 6108, + 7442, + 4242, + 7500, + 3228, + 3686, + 52958, + 3754, + 7356, + 8924, + 2766, + 2846, + 2770, + 1479, + 2558, + 89110, + 6336, + 10140, + 8106, + 12492, + 17880, + 5428, + 5946, + 4008, + 1648, + 5276, + 3424, + 8372, + 6578, + 10812, + 8294, + 11572, + 3202, + 7772, + 37872, + 15974, + 16396, + 28690, + 53252, + 32834, + 20812, + 4288, + 10052, + 4746, + 7788, + 12934, + 19588, + 1154, + 1012, + 2764, + 7052, + 1008, + 690, + 3972, + 1060, + 1022, + 1128, + 692, + 3964, + 2100, + 1062, + 2306, + 6252, + 1416, + 962, + 972, + 1056, + 4500, + 1264, + 2870, + 7748, + 1992, + 1158, + 4676, + 1130, + 4612, + 1164, + 4684, + 1136, + 4636, + 1158, + 4668, + 1158, + 4700, + 1154, + 4660, + 1136, + 4644, + 1104, + 4564, + 1148, + 4652, + 1152, + 4692, + 1190, + 4764, + 1156, + 4692, + 1136, + 4628, + 1162, + 4692, + 1132, + 4620, + 1154, + 4684, + 1128, + 4668, + 1150, + 4660, + 3140, + 1202, + 2452, + 5604, + 5776, + 1546, + 1406, + 1120, + 700, + 3844, + 680, + 4012, + 1116, + 4532, + 7646, + 1316, + 1014, + 1128, + 2570, + 6876, + 1472, + 960, + 1032, + 1044, + 2572, + 1178, + 1080, + 4548, + 1180, + 1344, + 1010, + 1078, + 1114, + 1240, + 1806, + 5380, + 1680, + 5396, + 666, + 3940, + 1006, + 2326, + 6324, + 1144, + 4644, + 1356, + 1010, + 1028, + 6106, + 974, + 1126, + 1478, + 1058, + 4500, + 2694, + 6996, + 2652, + 6972, + 1162, + 3266, + 1176, + 1108, + 1842, + 1084, + 1208, + 1112, + 4580, + 1016, + 1182, + 7232, + 12444, + 31632, + 29344, + 29344, + 8156, + 7756, + 12784, + 17044, + 3426, + 7668, + 3952, + 584, + 39622, + 78064, + 2826, + 7496, + 6270, + 8332, + 110927, + 3108, + 8700, + 975476, + 500344, + 975476, + 35700, + 2230, + 6460, + 5792, + 10036, + 700038, + 5324, + 7326, + 4418, + 8124, + 2058, + 5276, + 3698, + 2314, + 6044, + 10572, + 105198, + 103572, + 68300, + 2554, + 7484, + 4156, + 10156, + 7744, + 4148, + 8660, + 5154, + 9460, + 3958, + 9700, + 70670, + 34596, + 4572, + 3716, + 9768, + 20532, + 1786, + 6036, + 26824, + 31580, + 3724, + 7516, + 4070, + 8156, + 11662, + 12916, + 11968, + 14052, + 13876, + 18172, + 15402, + 22036, + 9956, + 12724, + 10380, + 13964, + 8122, + 12612, + 12616, + 16692, + 4166, + 27662, + 73928, + 153148, + 34544, + 10586, + 34544, + 34544, + 10586, + 34544, + 34544, + 10586, + 34544, + 34544, + 34544, + 34544, + 34544, + 34544, + 34544, + 34544, + 34544, + 229, + 10586, + 229, + 4134, + 7628, + 4010, + 7148, + 60840, + 7160, + 11332, + 6450, + 9740, + 84218, + 118548, + 68062, + 134140, + 26432, + 9832, + 18844, + 2864, + 6574, + 12300, + 17868, + 27084, + 22396, + 27068, + 5378, + 9844, + 145968, + 156116, + 4588, + 8668, + 4754, + 93080, + 107772, + 65972, + 13482, + 80568, + 171806, + 5730, + 27262, + 19720, + 120372, + 28978, + 8198, + 15558, + 49800, + 14466, + 105144, + 20416, + 25830, + 88896, + 24836, + 55742, + 63380, + 8450, + 29398, + 25790, + 12086, + 137326, + 26092, + 56996, + 7526, + 12050, + 243776, + 56662, + 11166, + 23974, + 118782, + 111928, + 107186, + 45598, + 26536, + 19476, + 18622, + 266006, + 86868, + 35708, + 152552, + 19952, + 31048, + 82068, + 22124, + 89728, + 47188, + 98330, + 89444, + 98810, + 104296, + 1574382, + 94068, + 152526, + 205386, + 80412, + 216596, + 126054, + 38968, + 5028, + 66028, + 100404, + 144846, + 40530, + 35686, + 137064, + 88352, + 28582, + 8938, + 11452, + 20706, + 46182, + 44850, + 19038, + 10228, + 88788, + 72772, + 16954, + 143864, + 97254, + 254856, + 10430, + 16894, + 832958, + 24040, + 5732, + 106688, + 23304, + 9538, + 9602, + 8244, + 8322, + 76410, + 23248, + 12244, + 24678, + 24328, + 8714, + 16054, + 17254, + 8372, + 29516, + 142858, + 9088, + 61202, + 38408, + 111000, + 21148, + 6480, + 75332, + 15414, + 103226, + 24976, + 81708, + 85148, + 158182, + 53316, + 27596, + 13248, + 98472, + 10102, + 43146, + 58978, + 230698, + 55956, + 91872, + 32492, + 36630, + 26488, + 36130, + 19834, + 25730, + 18860, + 71780, + 44666, + 27150, + 6068, + 23790, + 61154, + 99100, + 6860, + 4858, + 31168, + 242920, + 75430, + 216056, + 103516, + 157736, + 207412, + 13974, + 15700, + 8942, + 11804, + 318550, + 364956, + 3200, + 8972, + 2388, + 4126, + 5912, + 12516, + 86462, + 76452, + 9070, + 790436, + 1176964, + 61436, + 2190, + 3682, + 3864, + 4182, + 3864, + 768, + 49, + 49, + 49, + 705, + 131728, + 47, + 47, + 705, + 135800, + 43838, + 5884, + 11804, + 60908, + 69412, + 58210, + 98652, + 31186, + 37644, + 3452, + 7972, + 26808, + 38398, + 3852, + 7828, + 1044, + 7892, + 13524, + 33988, + 3386, + 2208, + 25160, + 2982, + 2712, + 6404, + 176484, + 125868, + 51026, + 62572, + 29228, + 40564, + 12568, + 22628, + 19112, + 68176, + 60244, + 30092, + 40810, + 248286, + 551212, + 5276, + 6980, + 30894, + 31930, + 434302, + 98426, + 71644, + 2656, + 10542, + 13516, + 723666, + 83830, + 99418, + 97762, + 329418, + 273392, + 261692, + 37444, + 3174, + 4370, + 13582, + 45834, + 101928, + 19080, + 430184, + 82502, + 13446, + 2140, + 6166, + 87594, + 93928, + 2460, + 214348, + 2154, + 83726, + 35016, + 4186, + 4794, + 8618, + 307862, + 285242, + 64914, + 24424, + 23620, + 5292, + 8186, + 11886, + 33690, + 268356, + 110094, + 40642, + 230496, + 2380, + 5136, + 6788, + 95530, + 8470, + 13622, + 15068, + 33734, + 6066, + 116538, + 34764, + 6694, + 7100, + 3798, + 8272, + 3442, + 398670, + 136934, + 319876, + 28282, + 991868, + 15784, + 1014176, + 243844, + 526428, + 45578, + 3010, + 7756, + 15134, + 2678, + 18102, + 8926, + 10148, + 2818, + 8236, + 20190, + 20596, + 6955, + 1046848, + 369, + 1046848, + 369, + 12338, + 3113, + 91662, + 471312, + 76048, + 15032, + 3130, + 128374, + 530416, + 75288, + 16920, + 3096, + 139821, + 486344, + 75288, + 125728, + 89872, + 89144, + 90608, + 404752, + 1028, + 19667, + 28511, + 65288, + 11194, + 155192, + 315888, + 36472, + 316736, + 13916, + 3066, + 126310, + 401376, + 76048, + 12420, + 3066, + 115628, + 400656, + 75288, + 125728, + 89144, + 89872, + 404072, + 212, + 121440, + 2810, + 60778, + 155128, + 36472, + 54392, + 35424, + 9033, + 6668, + 117460, + 187392, + 36472, + 61632, + 404072, + 121440, + 10476, + 3114, + 87177, + 495376, + 73480, + 13106, + 3130, + 122503, + 501216, + 73512, + 19440, + 2716, + 191560, + 302464, + 11126, + 3093, + 89526, + 497424, + 73480, + 13024, + 3097, + 154115, + 498672, + 76784, + 16988, + 3097, + 190046, + 499184, + 76784, + 9802, + 3097, + 42986, + 499184, + 76784, + 11446, + 3315, + 140902, + 302296, + 36472, + 125728, + 90608, + 91936, + 101216, + 89888, + 90608, + 89888, + 89144, + 98496, + 60608, + 404752, + 1081, + 9697, + 2777, + 20667, + 138512, + 64168, + 14848, + 3049, + 132659, + 411120, + 89072, + 36472, + 92144, + 405488, + 256, + 19667, + 28511, + 65288, + 9311, + 166032, + 36472, + 316736, + 12590, + 3050, + 87645, + 271024, + 68264, + 14850, + 3050, + 153989, + 370968, + 73512, + 11362, + 3050, + 117277, + 370968, + 73512, + 36472, + 125728, + 92864, + 91936, + 92448, + 89872, + 79720, + 404072, + 256, + 9732, + 3046, + 84534, + 357856, + 76232, + 9782, + 3075, + 20816, + 131584, + 73480, + 5174, + 2939, + 12442, + 3114, + 92354, + 468752, + 73480, + 15038, + 3130, + 128291, + 529392, + 73512, + 17742, + 3097, + 176198, + 523248, + 76784, + 11729, + 3097, + 44389, + 522736, + 76784, + 36472, + 125728, + 90608, + 91936, + 89888, + 90608, + 80672, + 404752, + 1083, + 11897, + 2743, + 22579, + 131344, + 73480, + 16770, + 3049, + 144852, + 442864, + 89072, + 36472, + 92144, + 80880, + 405488, + 260, + 12717, + 3043, + 56912, + 318944, + 89072, + 19667, + 28511, + 2236928, + 2239488, + 48464, + 65288, + 11361, + 156656, + 10997, + 10224, + 8796, + 12249, + 8148, + 9369, + 8944, + 10400, + 494960, + 503664, + 473968, + 10758, + 12146, + 483184, + 163696, + 10046, + 10040, + 165232, + 8657, + 9915, + 71952, + 279024, + 60752, + 316400, + 36472, + 316736, + 1721576, + 16797, + 3050, + 162256, + 352024, + 73512, + 13277, + 3050, + 126428, + 352024, + 73512, + 36472, + 125728, + 91936, + 92448, + 89872, + 80672, + 404072, + 268, + 11656, + 3046, + 91773, + 388040, + 76232, + 11904, + 3075, + 22837, + 133392, + 73480, + 121440, + 12423, + 3114, + 92426, + 468752, + 73480, + 15026, + 3130, + 128070, + 529392, + 73512, + 19440, + 2716, + 191560, + 302464, + 13073, + 3093, + 94851, + 469264, + 73480, + 14946, + 3097, + 163489, + 470512, + 76784, + 18910, + 3097, + 199105, + 523248, + 76784, + 11725, + 3097, + 45051, + 522736, + 76784, + 11446, + 3315, + 140902, + 302296, + 36472, + 125728, + 90608, + 91936, + 101216, + 89888, + 90608] diff --git a/tests/fragmentation/tfragment_alloc.nim b/tests/fragmentation/tfragment_alloc.nim new file mode 100644 index 000000000..6ee8322c7 --- /dev/null +++ b/tests/fragmentation/tfragment_alloc.nim @@ -0,0 +1,19 @@ + + + +include system/ansi_c + +import strutils, data + +proc main = + var m = 0 + for i in 0..1000_000: + let size = sizes[i mod sizes.len] + let p = alloc(size) + if p == nil: + quit "could not serve request!" + dealloc p + # c_fprintf(stdout, "iteration: %ld size: %ld\n", i, size) + +main() +echo formatSize getOccupiedMem(), " / ", formatSize getTotalMem() diff --git a/tests/fragmentation/tfragment_gc.nim b/tests/fragmentation/tfragment_gc.nim new file mode 100644 index 000000000..41f86136c --- /dev/null +++ b/tests/fragmentation/tfragment_gc.nim @@ -0,0 +1,16 @@ + + + +#include system/ansi_c + +import strutils, data + +proc main = + var m = 0 + for i in 0..1000_000: + let size = sizes[i mod sizes.len] + let p = newString(size) + # c_fprintf(stdout, "iteration: %ld size: %ld\n", i, size) + +main() +echo formatSize getOccupiedMem(), " / ", formatSize getTotalMem() diff --git a/todo.txt b/todo.txt index bc68c2168..1fae1ddac 100644 --- a/todo.txt +++ b/todo.txt @@ -31,7 +31,6 @@ Not critical for 1.0 - pragmas need 'bindSym' support - pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work reliably with user-defined pragmas -- memory manager: add a measure of fragmentation - we need a magic thisModule symbol - optimize 'genericReset'; 'newException' leads to code bloat @@ -52,7 +51,6 @@ Bugs GC == -- use slightly bigger blocks in the allocator - resizing of strings/sequences could take into account the memory that is allocated |