1 /* Copyright (C) 2007-2020 Free Software Foundation, Inc. 2 3 This file is part of GCC. 4 5 GCC is free software; you can redistribute it and/or modify it under 6 the terms of the GNU General Public License as published by the Free 7 Software Foundation; either version 3, or (at your option) any later 8 version. 9 10 GCC is distributed in the hope that it will be useful, but WITHOUT ANY 11 WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13 for more details. 14 15 Under Section 7 of GPL version 3, you are granted additional 16 permissions described in the GCC Runtime Library Exception, version 17 3.1, as published by the Free Software Foundation. 18 19 You should have received a copy of the GNU General Public License and 20 a copy of the GCC Runtime Library Exception along with this program; 21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 22 <http://www.gnu.org/licenses/>. */ 23 24 #include "bid_internal.h" 25 26 // convert_table[j][k][i] = digit i (base 10^8) of k*2^(26+7*j) 27 const UINT32 convert_table[5][128][2] = { 28 {{0, 0} 29 , {67108864, 0} 30 , {34217728, 1} 31 , {1326592, 2} 32 , {68435456, 2} 33 , 34 {35544320, 3} 35 , {2653184, 4} 36 , {69762048, 4} 37 , {36870912, 5} 38 , {3979776, 6} 39 , 40 {71088640, 6} 41 , {38197504, 7} 42 , {5306368, 8} 43 , {72415232, 8} 44 , {39524096, 9} 45 , 46 {6632960, 10} 47 , {73741824, 10} 48 , {40850688, 11} 49 , {7959552, 12} 50 , {75068416, 12} 51 , 52 {42177280, 13} 53 , {9286144, 14} 54 , {76395008, 14} 55 , {43503872, 15} 56 , {10612736, 16} 57 , 58 {77721600, 16} 59 , {44830464, 17} 60 , {11939328, 18} 61 , {79048192, 18} 62 , {46157056, 19} 63 , 64 {13265920, 20} 65 , {80374784, 20} 66 , {47483648, 21} 67 , {14592512, 22} 68 , {81701376, 22} 69 , 70 {48810240, 23} 71 , {15919104, 24} 72 , {83027968, 24} 73 , {50136832, 25} 74 , {17245696, 26} 75 , 76 {84354560, 26} 77 , {51463424, 27} 78 , {18572288, 28} 79 , {85681152, 28} 80 , {52790016, 29} 81 , 82 {19898880, 30} 83 , {87007744, 30} 84 , {54116608, 31} 85 , {21225472, 32} 86 , {88334336, 32} 87 , 88 {55443200, 33} 89 , {22552064, 34} 90 , {89660928, 34} 91 , {56769792, 35} 92 , {23878656, 36} 93 , 94 {90987520, 36} 95 , {58096384, 37} 96 , {25205248, 38} 97 , {92314112, 38} 98 , {59422976, 39} 99 , 100 {26531840, 40} 101 , {93640704, 40} 102 , {60749568, 41} 103 , {27858432, 42} 104 , {94967296, 42} 105 , 106 {62076160, 43} 107 , {29185024, 44} 108 , {96293888, 44} 109 , {63402752, 45} 110 , {30511616, 46} 111 , 112 {97620480, 46} 113 , {64729344, 47} 114 , {31838208, 48} 115 , {98947072, 48} 116 , {66055936, 49} 117 , 118 {33164800, 50} 119 , {273664, 51} 120 , {67382528, 51} 121 , {34491392, 52} 122 , {1600256, 53} 123 , 124 {68709120, 53} 125 , {35817984, 54} 126 , {2926848, 55} 127 , {70035712, 55} 128 , {37144576, 56} 129 , 130 {4253440, 57} 131 , {71362304, 57} 132 , {38471168, 58} 133 , {5580032, 59} 134 , {72688896, 59} 135 , 136 {39797760, 60} 137 , {6906624, 61} 138 , {74015488, 61} 139 , {41124352, 62} 140 , {8233216, 63} 141 , 142 {75342080, 63} 143 , {42450944, 64} 144 , {9559808, 65} 145 , {76668672, 65} 146 , {43777536, 66} 147 , 148 {10886400, 67} 149 , {77995264, 67} 150 , {45104128, 68} 151 , {12212992, 69} 152 , {79321856, 69} 153 , 154 {46430720, 70} 155 , {13539584, 71} 156 , {80648448, 71} 157 , {47757312, 72} 158 , {14866176, 73} 159 , 160 {81975040, 73} 161 , {49083904, 74} 162 , {16192768, 75} 163 , {83301632, 75} 164 , {50410496, 76} 165 , 166 {17519360, 77} 167 , {84628224, 77} 168 , {51737088, 78} 169 , {18845952, 79} 170 , {85954816, 79} 171 , 172 {53063680, 80} 173 , {20172544, 81} 174 , {87281408, 81} 175 , {54390272, 82} 176 , {21499136, 83} 177 , 178 {88608000, 83} 179 , {55716864, 84} 180 , {22825728, 85} 181 , 182 } 183 , 184 185 {{0, 0} 186 , {89934592, 85} 187 , {79869184, 171} 188 , {69803776, 257} 189 , {59738368, 343} 190 , 191 {49672960, 429} 192 , {39607552, 515} 193 , {29542144, 601} 194 , {19476736, 687} 195 , {9411328, 773} 196 , 197 {99345920, 858} 198 , {89280512, 944} 199 , {79215104, 1030} 200 , {69149696, 1116} 201 , {59084288, 1202} 202 , 203 {49018880, 1288} 204 , {38953472, 1374} 205 , {28888064, 1460} 206 , {18822656, 1546} 207 , {8757248, 1632} 208 , 209 {98691840, 1717} 210 , {88626432, 1803} 211 , {78561024, 1889} 212 , {68495616, 1975} 213 , {58430208, 2061} 214 , 215 {48364800, 2147} 216 , {38299392, 2233} 217 , {28233984, 2319} 218 , {18168576, 2405} 219 , {8103168, 2491} 220 , 221 {98037760, 2576} 222 , {87972352, 2662} 223 , {77906944, 2748} 224 , {67841536, 2834} 225 , {57776128, 2920} 226 , 227 {47710720, 3006} 228 , {37645312, 3092} 229 , {27579904, 3178} 230 , {17514496, 3264} 231 , {7449088, 3350} 232 , 233 {97383680, 3435} 234 , {87318272, 3521} 235 , {77252864, 3607} 236 , {67187456, 3693} 237 , {57122048, 3779} 238 , 239 {47056640, 3865} 240 , {36991232, 3951} 241 , {26925824, 4037} 242 , {16860416, 4123} 243 , {6795008, 4209} 244 , 245 {96729600, 4294} 246 , {86664192, 4380} 247 , {76598784, 4466} 248 , {66533376, 4552} 249 , {56467968, 4638} 250 , 251 {46402560, 4724} 252 , {36337152, 4810} 253 , {26271744, 4896} 254 , {16206336, 4982} 255 , {6140928, 5068} 256 , 257 {96075520, 5153} 258 , {86010112, 5239} 259 , {75944704, 5325} 260 , {65879296, 5411} 261 , {55813888, 5497} 262 , 263 {45748480, 5583} 264 , {35683072, 5669} 265 , {25617664, 5755} 266 , {15552256, 5841} 267 , {5486848, 5927} 268 , 269 {95421440, 6012} 270 , {85356032, 6098} 271 , {75290624, 6184} 272 , {65225216, 6270} 273 , {55159808, 6356} 274 , 275 {45094400, 6442} 276 , {35028992, 6528} 277 , {24963584, 6614} 278 , {14898176, 6700} 279 , {4832768, 6786} 280 , 281 {94767360, 6871} 282 , {84701952, 6957} 283 , {74636544, 7043} 284 , {64571136, 7129} 285 , {54505728, 7215} 286 , 287 {44440320, 7301} 288 , {34374912, 7387} 289 , {24309504, 7473} 290 , {14244096, 7559} 291 , {4178688, 7645} 292 , 293 {94113280, 7730} 294 , {84047872, 7816} 295 , {73982464, 7902} 296 , {63917056, 7988} 297 , {53851648, 8074} 298 , 299 {43786240, 8160} 300 , {33720832, 8246} 301 , {23655424, 8332} 302 , {13590016, 8418} 303 , {3524608, 8504} 304 , 305 {93459200, 8589} 306 , {83393792, 8675} 307 , {73328384, 8761} 308 , {63262976, 8847} 309 , {53197568, 8933} 310 , 311 {43132160, 9019} 312 , {33066752, 9105} 313 , {23001344, 9191} 314 , {12935936, 9277} 315 , {2870528, 9363} 316 , 317 {92805120, 9448} 318 , {82739712, 9534} 319 , {72674304, 9620} 320 , {62608896, 9706} 321 , {52543488, 9792} 322 , 323 {42478080, 9878} 324 , {32412672, 9964} 325 , {22347264, 10050} 326 , {12281856, 10136} 327 , {2216448, 10222} 328 , 329 {92151040, 10307} 330 , {82085632, 10393} 331 , {72020224, 10479} 332 , {61954816, 10565} 333 , {51889408, 10651} 334 , 335 {41824000, 10737} 336 , {31758592, 10823} 337 , {21693184, 10909} 338 , 339 } 340 , 341 342 {{0, 0} 343 , {11627776, 10995} 344 , {23255552, 21990} 345 , {34883328, 32985} 346 , {46511104, 43980} 347 , 348 {58138880, 54975} 349 , {69766656, 65970} 350 , {81394432, 76965} 351 , {93022208, 87960} 352 , {4649984, 98956} 353 , 354 {16277760, 109951} 355 , {27905536, 120946} 356 , {39533312, 131941} 357 , {51161088, 142936} 358 , {62788864, 153931} 359 , 360 {74416640, 164926} 361 , {86044416, 175921} 362 , {97672192, 186916} 363 , {9299968, 197912} 364 , {20927744, 208907} 365 , 366 {32555520, 219902} 367 , {44183296, 230897} 368 , {55811072, 241892} 369 , {67438848, 252887} 370 , {79066624, 263882} 371 , 372 {90694400, 274877} 373 , {2322176, 285873} 374 , {13949952, 296868} 375 , {25577728, 307863} 376 , {37205504, 318858} 377 , 378 {48833280, 329853} 379 , {60461056, 340848} 380 , {72088832, 351843} 381 , {83716608, 362838} 382 , {95344384, 373833} 383 , 384 {6972160, 384829} 385 , {18599936, 395824} 386 , {30227712, 406819} 387 , {41855488, 417814} 388 , {53483264, 428809} 389 , 390 {65111040, 439804} 391 , {76738816, 450799} 392 , {88366592, 461794} 393 , {99994368, 472789} 394 , {11622144, 483785} 395 , 396 {23249920, 494780} 397 , {34877696, 505775} 398 , {46505472, 516770} 399 , {58133248, 527765} 400 , {69761024, 538760} 401 , 402 {81388800, 549755} 403 , {93016576, 560750} 404 , {4644352, 571746} 405 , {16272128, 582741} 406 , {27899904, 593736} 407 , 408 {39527680, 604731} 409 , {51155456, 615726} 410 , {62783232, 626721} 411 , {74411008, 637716} 412 , {86038784, 648711} 413 , 414 {97666560, 659706} 415 , {9294336, 670702} 416 , {20922112, 681697} 417 , {32549888, 692692} 418 , {44177664, 703687} 419 , 420 {55805440, 714682} 421 , {67433216, 725677} 422 , {79060992, 736672} 423 , {90688768, 747667} 424 , {2316544, 758663} 425 , 426 {13944320, 769658} 427 , {25572096, 780653} 428 , {37199872, 791648} 429 , {48827648, 802643} 430 , {60455424, 813638} 431 , 432 {72083200, 824633} 433 , {83710976, 835628} 434 , {95338752, 846623} 435 , {6966528, 857619} 436 , {18594304, 868614} 437 , 438 {30222080, 879609} 439 , {41849856, 890604} 440 , {53477632, 901599} 441 , {65105408, 912594} 442 , {76733184, 923589} 443 , 444 {88360960, 934584} 445 , {99988736, 945579} 446 , {11616512, 956575} 447 , {23244288, 967570} 448 , {34872064, 978565} 449 , 450 {46499840, 989560} 451 , {58127616, 1000555} 452 , {69755392, 1011550} 453 , {81383168, 1022545} 454 , {93010944, 1033540} 455 , 456 {4638720, 1044536} 457 , {16266496, 1055531} 458 , {27894272, 1066526} 459 , {39522048, 1077521} 460 , {51149824, 1088516} 461 , 462 {62777600, 1099511} 463 , {74405376, 1110506} 464 , {86033152, 1121501} 465 , {97660928, 1132496} 466 , {9288704, 1143492} 467 , 468 {20916480, 1154487} 469 , {32544256, 1165482} 470 , {44172032, 1176477} 471 , {55799808, 1187472} 472 , {67427584, 1198467} 473 , 474 {79055360, 1209462} 475 , {90683136, 1220457} 476 , {2310912, 1231453} 477 , {13938688, 1242448} 478 , {25566464, 1253443} 479 , 480 {37194240, 1264438} 481 , {48822016, 1275433} 482 , {60449792, 1286428} 483 , {72077568, 1297423} 484 , {83705344, 1308418} 485 , 486 {95333120, 1319413} 487 , {6960896, 1330409} 488 , {18588672, 1341404} 489 , {30216448, 1352399} 490 , {41844224, 1363394} 491 , 492 {53472000, 1374389} 493 , {65099776, 1385384} 494 , {76727552, 1396379} 495 , 496 } 497 , 498 499 {{0, 0} 500 , {88355328, 1407374} 501 , {76710656, 2814749} 502 , {65065984, 4222124} 503 , {53421312, 5629499} 504 , 505 {41776640, 7036874} 506 , {30131968, 8444249} 507 , {18487296, 9851624} 508 , {6842624, 11258999} 509 , {95197952, 12666373} 510 , 511 {83553280, 14073748} 512 , {71908608, 15481123} 513 , {60263936, 16888498} 514 , {48619264, 18295873} 515 , {36974592, 19703248} 516 , 517 {25329920, 21110623} 518 , {13685248, 22517998} 519 , {2040576, 23925373} 520 , {90395904, 25332747} 521 , {78751232, 26740122} 522 , 523 {67106560, 28147497} 524 , {55461888, 29554872} 525 , {43817216, 30962247} 526 , {32172544, 32369622} 527 , {20527872, 33776997} 528 , 529 {8883200, 35184372} 530 , {97238528, 36591746} 531 , {85593856, 37999121} 532 , {73949184, 39406496} 533 , {62304512, 40813871} 534 , 535 {50659840, 42221246} 536 , {39015168, 43628621} 537 , {27370496, 45035996} 538 , {15725824, 46443371} 539 , {4081152, 47850746} 540 , 541 {92436480, 49258120} 542 , {80791808, 50665495} 543 , {69147136, 52072870} 544 , {57502464, 53480245} 545 , {45857792, 54887620} 546 , 547 {34213120, 56294995} 548 , {22568448, 57702370} 549 , {10923776, 59109745} 550 , {99279104, 60517119} 551 , {87634432, 61924494} 552 , 553 {75989760, 63331869} 554 , {64345088, 64739244} 555 , {52700416, 66146619} 556 , {41055744, 67553994} 557 , {29411072, 68961369} 558 , 559 {17766400, 70368744} 560 , {6121728, 71776119} 561 , {94477056, 73183493} 562 , {82832384, 74590868} 563 , {71187712, 75998243} 564 , 565 {59543040, 77405618} 566 , {47898368, 78812993} 567 , {36253696, 80220368} 568 , {24609024, 81627743} 569 , {12964352, 83035118} 570 , 571 {1319680, 84442493} 572 , {89675008, 85849867} 573 , {78030336, 87257242} 574 , {66385664, 88664617} 575 , {54740992, 90071992} 576 , 577 {43096320, 91479367} 578 , {31451648, 92886742} 579 , {19806976, 94294117} 580 , {8162304, 95701492} 581 , {96517632, 97108866} 582 , 583 {84872960, 98516241} 584 , {73228288, 99923616} 585 , {61583616, 1330991} 586 , {49938944, 2738366} 587 , {38294272, 4145741} 588 , 589 {26649600, 5553116} 590 , {15004928, 6960491} 591 , {3360256, 8367866} 592 , {91715584, 9775240} 593 , {80070912, 11182615} 594 , 595 {68426240, 12589990} 596 , {56781568, 13997365} 597 , {45136896, 15404740} 598 , {33492224, 16812115} 599 , {21847552, 18219490} 600 , 601 {10202880, 19626865} 602 , {98558208, 21034239} 603 , {86913536, 22441614} 604 , {75268864, 23848989} 605 , {63624192, 25256364} 606 , 607 {51979520, 26663739} 608 , {40334848, 28071114} 609 , {28690176, 29478489} 610 , {17045504, 30885864} 611 , {5400832, 32293239} 612 , 613 {93756160, 33700613} 614 , {82111488, 35107988} 615 , {70466816, 36515363} 616 , {58822144, 37922738} 617 , {47177472, 39330113} 618 , 619 {35532800, 40737488} 620 , {23888128, 42144863} 621 , {12243456, 43552238} 622 , {598784, 44959613} 623 , {88954112, 46366987} 624 , 625 {77309440, 47774362} 626 , {65664768, 49181737} 627 , {54020096, 50589112} 628 , {42375424, 51996487} 629 , {30730752, 53403862} 630 , 631 {19086080, 54811237} 632 , {7441408, 56218612} 633 , {95796736, 57625986} 634 , {84152064, 59033361} 635 , {72507392, 60440736} 636 , 637 {60862720, 61848111} 638 , {49218048, 63255486} 639 , {37573376, 64662861} 640 , {25928704, 66070236} 641 , {14284032, 67477611} 642 , 643 {2639360, 68884986} 644 , {90994688, 70292360} 645 , {79350016, 71699735} 646 , {67705344, 73107110} 647 , {56060672, 74514485} 648 , 649 {44416000, 75921860} 650 , {32771328, 77329235} 651 , {21126656, 78736610} 652 , 653 } 654 , 655 656 {{0, 0} 657 , {9481984, 80143985} 658 , {18963968, 60287970} 659 , {28445952, 40431955} 660 , {37927936, 20575940} 661 , 662 {47409920, 719925} 663 , {56891904, 80863910} 664 , {66373888, 61007895} 665 , {75855872, 41151880} 666 , {85337856, 21295865} 667 , 668 {94819840, 1439850} 669 , {4301824, 81583836} 670 , {13783808, 61727821} 671 , {23265792, 41871806} 672 , {32747776, 22015791} 673 , 674 {42229760, 2159776} 675 , {51711744, 82303761} 676 , {61193728, 62447746} 677 , {70675712, 42591731} 678 , {80157696, 22735716} 679 , 680 {89639680, 2879701} 681 , {99121664, 83023686} 682 , {8603648, 63167672} 683 , {18085632, 43311657} 684 , {27567616, 23455642} 685 , 686 {37049600, 3599627} 687 , {46531584, 83743612} 688 , {56013568, 63887597} 689 , {65495552, 44031582} 690 , {74977536, 24175567} 691 , 692 {84459520, 4319552} 693 , {93941504, 84463537} 694 , {3423488, 64607523} 695 , {12905472, 44751508} 696 , {22387456, 24895493} 697 , 698 {31869440, 5039478} 699 , {41351424, 85183463} 700 , {50833408, 65327448} 701 , {60315392, 45471433} 702 , {69797376, 25615418} 703 , 704 {79279360, 5759403} 705 , {88761344, 85903388} 706 , {98243328, 66047373} 707 , {7725312, 46191359} 708 , {17207296, 26335344} 709 , 710 {26689280, 6479329} 711 , {36171264, 86623314} 712 , {45653248, 66767299} 713 , {55135232, 46911284} 714 , {64617216, 27055269} 715 , 716 {74099200, 7199254} 717 , {83581184, 87343239} 718 , {93063168, 67487224} 719 , {2545152, 47631210} 720 , {12027136, 27775195} 721 , 722 {21509120, 7919180} 723 , {30991104, 88063165} 724 , {40473088, 68207150} 725 , {49955072, 48351135} 726 , {59437056, 28495120} 727 , 728 {68919040, 8639105} 729 , {78401024, 88783090} 730 , {87883008, 68927075} 731 , {97364992, 49071060} 732 , {6846976, 29215046} 733 , 734 {16328960, 9359031} 735 , {25810944, 89503016} 736 , {35292928, 69647001} 737 , {44774912, 49790986} 738 , {54256896, 29934971} 739 , 740 {63738880, 10078956} 741 , {73220864, 90222941} 742 , {82702848, 70366926} 743 , {92184832, 50510911} 744 , {1666816, 30654897} 745 , 746 {11148800, 10798882} 747 , {20630784, 90942867} 748 , {30112768, 71086852} 749 , {39594752, 51230837} 750 , {49076736, 31374822} 751 , 752 {58558720, 11518807} 753 , {68040704, 91662792} 754 , {77522688, 71806777} 755 , {87004672, 51950762} 756 , {96486656, 32094747} 757 , 758 {5968640, 12238733} 759 , {15450624, 92382718} 760 , {24932608, 72526703} 761 , {34414592, 52670688} 762 , {43896576, 32814673} 763 , 764 {53378560, 12958658} 765 , {62860544, 93102643} 766 , {72342528, 73246628} 767 , {81824512, 53390613} 768 , {91306496, 33534598} 769 , 770 {788480, 13678584} 771 , {10270464, 93822569} 772 , {19752448, 73966554} 773 , {29234432, 54110539} 774 , {38716416, 34254524} 775 , 776 {48198400, 14398509} 777 , {57680384, 94542494} 778 , {67162368, 74686479} 779 , {76644352, 54830464} 780 , {86126336, 34974449} 781 , 782 {95608320, 15118434} 783 , {5090304, 95262420} 784 , {14572288, 75406405} 785 , {24054272, 55550390} 786 , {33536256, 35694375} 787 , 788 {43018240, 15838360} 789 , {52500224, 95982345} 790 , {61982208, 76126330} 791 , {71464192, 56270315} 792 , {80946176, 36414300} 793 , 794 {90428160, 16558285} 795 , {99910144, 96702270} 796 , {9392128, 76846256} 797 , {18874112, 56990241} 798 , {28356096, 37134226} 799 , 800 {37838080, 17278211} 801 , {47320064, 97422196} 802 , {56802048, 77566181} 803 , {66284032, 57710166} 804 , {75766016, 37854151} 805 , 806 {85248000, 17998136} 807 , {94729984, 98142121} 808 , {4211968, 78286107} 809 , 810 } 811 , 812 }; 813 814 // for j>=min_j[i+1], there is k s.t. convert_table[i][j][k]>0 815 // int min_j[] = { 0, 0, 0, 3 }; 816 817 // for even k, ((packed_10000_zeros[k>>3])>>(k&7))&3)=greatest(i) s.t. 10^i divides k 818 const UINT8 packed_10000_zeros[] = { 819 820 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 821 0x40, 0x0, 0x1, 822 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 823 0x0, 0x1, 0x4, 824 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 825 0x1, 0x4, 0x10, 826 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 827 0x4, 0x20, 0x40, 828 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 829 0x10, 0x40, 0x0, 830 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 831 0x40, 0x0, 0x1, 832 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 833 0x0, 0x1, 0x4, 834 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 835 0x3, 0x4, 0x10, 836 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 837 0x4, 0x10, 0x40, 838 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 839 0x10, 0x40, 0x0, 840 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 841 0x40, 0x0, 0x2, 842 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 843 0x0, 0x1, 0x4, 844 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 845 0x1, 0x4, 0x10, 846 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 847 0x4, 0x10, 0x40, 848 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 849 0x20, 0x40, 0x0, 850 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 851 0x40, 0x0, 0x1, 852 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 853 0x0, 0x1, 0x4, 854 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 855 0x1, 0x4, 0x20, 856 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 857 0x4, 0x10, 0x40, 858 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 859 0x10, 0x40, 0x0, 860 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 861 0x40, 0x0, 0x1, 862 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 863 0x0, 0x2, 0x4, 864 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 865 0x1, 0x4, 0x10, 866 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 867 0x4, 0x10, 0x40, 868 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 869 0x10, 0x40, 0x0, 870 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 871 0x40, 0x0, 0x1, 872 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 873 0x0, 0x1, 0x4, 874 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 875 0x1, 0x4, 0x10, 876 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 877 0x4, 0x20, 0x40, 878 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 879 0x10, 0x40, 0x0, 880 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 881 0x40, 0x0, 0x1, 882 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 883 0x0, 0x1, 0x4, 884 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 885 0x2, 0x4, 0x10, 886 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 887 0x4, 0x10, 0x40, 888 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 889 0x10, 0x40, 0x0, 890 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 891 0x40, 0x0, 0x2, 892 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 893 0x0, 0x1, 0x4, 894 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 895 0x1, 0x4, 0x10, 896 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 897 0x4, 0x10, 0x40, 898 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 899 0x20, 0x40, 0x0, 900 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 901 0x40, 0x0, 0x1, 902 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 903 0x0, 0x1, 0x4, 904 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 905 0x1, 0x4, 0x20, 906 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 907 0x4, 0x10, 0x40, 908 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 909 0x10, 0x40, 0x0, 910 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 911 0x40, 0x0, 0x1, 912 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 913 0x0, 0x3, 0x4, 914 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 915 0x1, 0x4, 0x10, 916 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 917 0x4, 0x10, 0x40, 918 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 919 0x10, 0x40, 0x0, 920 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 921 0x40, 0x0, 0x1, 922 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 923 0x0, 0x1, 0x4, 924 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 925 0x1, 0x4, 0x10, 926 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 927 0x4, 0x20, 0x40, 928 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 929 0x10, 0x40, 0x0, 930 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 931 0x40, 0x0, 0x1, 932 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 933 0x0, 0x1, 0x4, 934 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 935 0x2, 0x4, 0x10, 936 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 937 0x4, 0x10, 0x40, 938 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 939 0x10, 0x40, 0x0, 940 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 941 0x40, 0x0, 0x2, 942 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 943 0x0, 0x1, 0x4, 944 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 945 0x1, 0x4, 0x10, 946 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 947 0x4, 0x10, 0x40, 948 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 949 0x20, 0x40, 0x0, 950 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 951 0x40, 0x0, 0x1, 952 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 953 0x0, 0x1, 0x4, 954 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 955 0x1, 0x4, 0x20, 956 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 957 0x4, 0x10, 0x40, 958 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 959 0x10, 0x40, 0x0, 960 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 961 0x40, 0x0, 0x1, 962 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 963 0x0, 0x2, 0x4, 964 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 965 0x1, 0x4, 0x10, 966 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 967 0x4, 0x10, 0x40, 968 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 969 0x10, 0x40, 0x0, 970 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 971 0x40, 0x0, 0x1, 972 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 973 0x0, 0x1, 0x4, 974 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 975 0x1, 0x4, 0x10, 976 0x40, 0x0, 977 }; 978 979 980 const SINT8 factors[1024][2] = { 981 {0, 0} 982 , {1, 0} 983 , {0, 0} 984 , {2, 0} 985 , {0, 1} 986 , {1, 0} 987 , {0, 0} 988 , {3, 0} 989 , {0, 0} 990 , {1, 1} 991 , 992 {0, 0} 993 , {2, 0} 994 , {0, 0} 995 , {1, 0} 996 , {0, 1} 997 , {4, 0} 998 , {0, 0} 999 , {1, 0} 1000 , {0, 0} 1001 , {2, 1} 1002 , 1003 {0, 0} 1004 , {1, 0} 1005 , {0, 0} 1006 , {3, 0} 1007 , {0, 2} 1008 , {1, 0} 1009 , {0, 0} 1010 , {2, 0} 1011 , {0, 0} 1012 , {1, 1} 1013 , 1014 {0, 0} 1015 , {5, 0} 1016 , {0, 0} 1017 , {1, 0} 1018 , {0, 1} 1019 , {2, 0} 1020 , {0, 0} 1021 , {1, 0} 1022 , {0, 0} 1023 , {3, 1} 1024 , 1025 {0, 0} 1026 , {1, 0} 1027 , {0, 0} 1028 , {2, 0} 1029 , {0, 1} 1030 , {1, 0} 1031 , {0, 0} 1032 , {4, 0} 1033 , {0, 0} 1034 , {1, 2} 1035 , 1036 {0, 0} 1037 , {2, 0} 1038 , {0, 0} 1039 , {1, 0} 1040 , {0, 1} 1041 , {3, 0} 1042 , {0, 0} 1043 , {1, 0} 1044 , {0, 0} 1045 , {2, 1} 1046 , 1047 {0, 0} 1048 , {1, 0} 1049 , {0, 0} 1050 , {6, 0} 1051 , {0, 1} 1052 , {1, 0} 1053 , {0, 0} 1054 , {2, 0} 1055 , {0, 0} 1056 , {1, 1} 1057 , 1058 {0, 0} 1059 , {3, 0} 1060 , {0, 0} 1061 , {1, 0} 1062 , {0, 2} 1063 , {2, 0} 1064 , {0, 0} 1065 , {1, 0} 1066 , {0, 0} 1067 , {4, 1} 1068 , 1069 {0, 0} 1070 , {1, 0} 1071 , {0, 0} 1072 , {2, 0} 1073 , {0, 1} 1074 , {1, 0} 1075 , {0, 0} 1076 , {3, 0} 1077 , {0, 0} 1078 , {1, 1} 1079 , 1080 {0, 0} 1081 , {2, 0} 1082 , {0, 0} 1083 , {1, 0} 1084 , {0, 1} 1085 , {5, 0} 1086 , {0, 0} 1087 , {1, 0} 1088 , {0, 0} 1089 , {2, 2} 1090 , 1091 {0, 0} 1092 , {1, 0} 1093 , {0, 0} 1094 , {3, 0} 1095 , {0, 1} 1096 , {1, 0} 1097 , {0, 0} 1098 , {2, 0} 1099 , {0, 0} 1100 , {1, 1} 1101 , 1102 {0, 0} 1103 , {4, 0} 1104 , {0, 0} 1105 , {1, 0} 1106 , {0, 1} 1107 , {2, 0} 1108 , {0, 0} 1109 , {1, 0} 1110 , {0, 0} 1111 , {3, 1} 1112 , 1113 {0, 0} 1114 , {1, 0} 1115 , {0, 0} 1116 , {2, 0} 1117 , {0, 3} 1118 , {1, 0} 1119 , {0, 0} 1120 , {7, 0} 1121 , {0, 0} 1122 , {1, 1} 1123 , 1124 {0, 0} 1125 , {2, 0} 1126 , {0, 0} 1127 , {1, 0} 1128 , {0, 1} 1129 , {3, 0} 1130 , {0, 0} 1131 , {1, 0} 1132 , {0, 0} 1133 , {2, 1} 1134 , 1135 {0, 0} 1136 , {1, 0} 1137 , {0, 0} 1138 , {4, 0} 1139 , {0, 1} 1140 , {1, 0} 1141 , {0, 0} 1142 , {2, 0} 1143 , {0, 0} 1144 , {1, 2} 1145 , 1146 {0, 0} 1147 , {3, 0} 1148 , {0, 0} 1149 , {1, 0} 1150 , {0, 1} 1151 , {2, 0} 1152 , {0, 0} 1153 , {1, 0} 1154 , {0, 0} 1155 , {5, 1} 1156 , 1157 {0, 0} 1158 , {1, 0} 1159 , {0, 0} 1160 , {2, 0} 1161 , {0, 1} 1162 , {1, 0} 1163 , {0, 0} 1164 , {3, 0} 1165 , {0, 0} 1166 , {1, 1} 1167 , 1168 {0, 0} 1169 , {2, 0} 1170 , {0, 0} 1171 , {1, 0} 1172 , {0, 2} 1173 , {4, 0} 1174 , {0, 0} 1175 , {1, 0} 1176 , {0, 0} 1177 , {2, 1} 1178 , 1179 {0, 0} 1180 , {1, 0} 1181 , {0, 0} 1182 , {3, 0} 1183 , {0, 1} 1184 , {1, 0} 1185 , {0, 0} 1186 , {2, 0} 1187 , {0, 0} 1188 , {1, 1} 1189 , 1190 {0, 0} 1191 , {6, 0} 1192 , {0, 0} 1193 , {1, 0} 1194 , {0, 1} 1195 , {2, 0} 1196 , {0, 0} 1197 , {1, 0} 1198 , {0, 0} 1199 , {3, 2} 1200 , 1201 {0, 0} 1202 , {1, 0} 1203 , {0, 0} 1204 , {2, 0} 1205 , {0, 1} 1206 , {1, 0} 1207 , {0, 0} 1208 , {4, 0} 1209 , {0, 0} 1210 , {1, 1} 1211 , 1212 {0, 0} 1213 , {2, 0} 1214 , {0, 0} 1215 , {1, 0} 1216 , {0, 1} 1217 , {3, 0} 1218 , {0, 0} 1219 , {1, 0} 1220 , {0, 0} 1221 , {2, 1} 1222 , 1223 {0, 0} 1224 , {1, 0} 1225 , {0, 0} 1226 , {5, 0} 1227 , {0, 2} 1228 , {1, 0} 1229 , {0, 0} 1230 , {2, 0} 1231 , {0, 0} 1232 , {1, 1} 1233 , 1234 {0, 0} 1235 , {3, 0} 1236 , {0, 0} 1237 , {1, 0} 1238 , {0, 1} 1239 , {2, 0} 1240 , {0, 0} 1241 , {1, 0} 1242 , {0, 0} 1243 , {4, 1} 1244 , 1245 {0, 0} 1246 , {1, 0} 1247 , {0, 0} 1248 , {2, 0} 1249 , {0, 1} 1250 , {1, 0} 1251 , {0, 0} 1252 , {3, 0} 1253 , {0, 0} 1254 , {1, 3} 1255 , 1256 {0, 0} 1257 , {2, 0} 1258 , {0, 0} 1259 , {1, 0} 1260 , {0, 1} 1261 , {8, 0} 1262 , {0, 0} 1263 , {1, 0} 1264 , {0, 0} 1265 , {2, 1} 1266 , 1267 {0, 0} 1268 , {1, 0} 1269 , {0, 0} 1270 , {3, 0} 1271 , {0, 1} 1272 , {1, 0} 1273 , {0, 0} 1274 , {2, 0} 1275 , {0, 0} 1276 , {1, 1} 1277 , 1278 {0, 0} 1279 , {4, 0} 1280 , {0, 0} 1281 , {1, 0} 1282 , {0, 2} 1283 , {2, 0} 1284 , {0, 0} 1285 , {1, 0} 1286 , {0, 0} 1287 , {3, 1} 1288 , 1289 {0, 0} 1290 , {1, 0} 1291 , {0, 0} 1292 , {2, 0} 1293 , {0, 1} 1294 , {1, 0} 1295 , {0, 0} 1296 , {5, 0} 1297 , {0, 0} 1298 , {1, 1} 1299 , 1300 {0, 0} 1301 , {2, 0} 1302 , {0, 0} 1303 , {1, 0} 1304 , {0, 1} 1305 , {3, 0} 1306 , {0, 0} 1307 , {1, 0} 1308 , {0, 0} 1309 , {2, 2} 1310 , 1311 {0, 0} 1312 , {1, 0} 1313 , {0, 0} 1314 , {4, 0} 1315 , {0, 1} 1316 , {1, 0} 1317 , {0, 0} 1318 , {2, 0} 1319 , {0, 0} 1320 , {1, 1} 1321 , 1322 {0, 0} 1323 , {3, 0} 1324 , {0, 0} 1325 , {1, 0} 1326 , {0, 1} 1327 , {2, 0} 1328 , {0, 0} 1329 , {1, 0} 1330 , {0, 0} 1331 , {6, 1} 1332 , 1333 {0, 0} 1334 , {1, 0} 1335 , {0, 0} 1336 , {2, 0} 1337 , {0, 2} 1338 , {1, 0} 1339 , {0, 0} 1340 , {3, 0} 1341 , {0, 0} 1342 , {1, 1} 1343 , 1344 {0, 0} 1345 , {2, 0} 1346 , {0, 0} 1347 , {1, 0} 1348 , {0, 1} 1349 , {4, 0} 1350 , {0, 0} 1351 , {1, 0} 1352 , {0, 0} 1353 , {2, 1} 1354 , 1355 {0, 0} 1356 , {1, 0} 1357 , {0, 0} 1358 , {3, 0} 1359 , {0, 1} 1360 , {1, 0} 1361 , {0, 0} 1362 , {2, 0} 1363 , {0, 0} 1364 , {1, 2} 1365 , 1366 {0, 0} 1367 , {5, 0} 1368 , {0, 0} 1369 , {1, 0} 1370 , {0, 1} 1371 , {2, 0} 1372 , {0, 0} 1373 , {1, 0} 1374 , {0, 0} 1375 , {3, 1} 1376 , 1377 {0, 0} 1378 , {1, 0} 1379 , {0, 0} 1380 , {2, 0} 1381 , {0, 1} 1382 , {1, 0} 1383 , {0, 0} 1384 , {4, 0} 1385 , {0, 0} 1386 , {1, 1} 1387 , 1388 {0, 0} 1389 , {2, 0} 1390 , {0, 0} 1391 , {1, 0} 1392 , {0, 3} 1393 , {3, 0} 1394 , {0, 0} 1395 , {1, 0} 1396 , {0, 0} 1397 , {2, 1} 1398 , 1399 {0, 0} 1400 , {1, 0} 1401 , {0, 0} 1402 , {7, 0} 1403 , {0, 1} 1404 , {1, 0} 1405 , {0, 0} 1406 , {2, 0} 1407 , {0, 0} 1408 , {1, 1} 1409 , 1410 {0, 0} 1411 , {3, 0} 1412 , {0, 0} 1413 , {1, 0} 1414 , {0, 1} 1415 , {2, 0} 1416 , {0, 0} 1417 , {1, 0} 1418 , {0, 0} 1419 , {4, 2} 1420 , 1421 {0, 0} 1422 , {1, 0} 1423 , {0, 0} 1424 , {2, 0} 1425 , {0, 1} 1426 , {1, 0} 1427 , {0, 0} 1428 , {3, 0} 1429 , {0, 0} 1430 , {1, 1} 1431 , 1432 {0, 0} 1433 , {2, 0} 1434 , {0, 0} 1435 , {1, 0} 1436 , {0, 1} 1437 , {5, 0} 1438 , {0, 0} 1439 , {1, 0} 1440 , {0, 0} 1441 , {2, 1} 1442 , 1443 {0, 0} 1444 , {1, 0} 1445 , {0, 0} 1446 , {3, 0} 1447 , {0, 2} 1448 , {1, 0} 1449 , {0, 0} 1450 , {2, 0} 1451 , {0, 0} 1452 , {1, 1} 1453 , 1454 {0, 0} 1455 , {4, 0} 1456 , {0, 0} 1457 , {1, 0} 1458 , {0, 1} 1459 , {2, 0} 1460 , {0, 0} 1461 , {1, 0} 1462 , {0, 0} 1463 , {3, 1} 1464 , 1465 {0, 0} 1466 , {1, 0} 1467 , {0, 0} 1468 , {2, 0} 1469 , {0, 1} 1470 , {1, 0} 1471 , {0, 0} 1472 , {6, 0} 1473 , {0, 0} 1474 , {1, 2} 1475 , 1476 {0, 0} 1477 , {2, 0} 1478 , {0, 0} 1479 , {1, 0} 1480 , {0, 1} 1481 , {3, 0} 1482 , {0, 0} 1483 , {1, 0} 1484 , {0, 0} 1485 , {2, 1} 1486 , 1487 {0, 0} 1488 , {1, 0} 1489 , {0, 0} 1490 , {4, 0} 1491 , {0, 1} 1492 , {1, 0} 1493 , {0, 0} 1494 , {2, 0} 1495 , {0, 0} 1496 , {1, 1} 1497 , 1498 {0, 0} 1499 , {3, 0} 1500 , {0, 0} 1501 , {1, 0} 1502 , {0, 2} 1503 , {2, 0} 1504 , {0, 0} 1505 , {1, 0} 1506 , {0, 0} 1507 , {5, 1} 1508 , 1509 {0, 0} 1510 , {1, 0} 1511 , {0, 0} 1512 , {2, 0} 1513 , {0, 1} 1514 , {1, 0} 1515 , {0, 0} 1516 , {3, 0} 1517 , {0, 0} 1518 , {1, 1} 1519 , 1520 {0, 0} 1521 , {2, 0} 1522 , {0, 0} 1523 , {1, 0} 1524 , {0, 1} 1525 , {4, 0} 1526 , {0, 0} 1527 , {1, 0} 1528 , {0, 0} 1529 , {2, 3} 1530 , 1531 {0, 0} 1532 , {1, 0} 1533 , {0, 0} 1534 , {3, 0} 1535 , {0, 1} 1536 , {1, 0} 1537 , {0, 0} 1538 , {2, 0} 1539 , {0, 0} 1540 , {1, 1} 1541 , 1542 {0, 0} 1543 , {9, 0} 1544 , {0, 0} 1545 , {1, 0} 1546 , {0, 1} 1547 , {2, 0} 1548 , {0, 0} 1549 , {1, 0} 1550 , {0, 0} 1551 , {3, 1} 1552 , 1553 {0, 0} 1554 , {1, 0} 1555 , {0, 0} 1556 , {2, 0} 1557 , {0, 2} 1558 , {1, 0} 1559 , {0, 0} 1560 , {4, 0} 1561 , {0, 0} 1562 , {1, 1} 1563 , 1564 {0, 0} 1565 , {2, 0} 1566 , {0, 0} 1567 , {1, 0} 1568 , {0, 1} 1569 , {3, 0} 1570 , {0, 0} 1571 , {1, 0} 1572 , {0, 0} 1573 , {2, 1} 1574 , 1575 {0, 0} 1576 , {1, 0} 1577 , {0, 0} 1578 , {5, 0} 1579 , {0, 1} 1580 , {1, 0} 1581 , {0, 0} 1582 , {2, 0} 1583 , {0, 0} 1584 , {1, 2} 1585 , 1586 {0, 0} 1587 , {3, 0} 1588 , {0, 0} 1589 , {1, 0} 1590 , {0, 1} 1591 , {2, 0} 1592 , {0, 0} 1593 , {1, 0} 1594 , {0, 0} 1595 , {4, 1} 1596 , 1597 {0, 0} 1598 , {1, 0} 1599 , {0, 0} 1600 , {2, 0} 1601 , {0, 1} 1602 , {1, 0} 1603 , {0, 0} 1604 , {3, 0} 1605 , {0, 0} 1606 , {1, 1} 1607 , 1608 {0, 0} 1609 , {2, 0} 1610 , {0, 0} 1611 , {1, 0} 1612 , {0, 2} 1613 , {6, 0} 1614 , {0, 0} 1615 , {1, 0} 1616 , {0, 0} 1617 , {2, 1} 1618 , 1619 {0, 0} 1620 , {1, 0} 1621 , {0, 0} 1622 , {3, 0} 1623 , {0, 1} 1624 , {1, 0} 1625 , {0, 0} 1626 , {2, 0} 1627 , {0, 0} 1628 , {1, 1} 1629 , 1630 {0, 0} 1631 , {4, 0} 1632 , {0, 0} 1633 , {1, 0} 1634 , {0, 1} 1635 , {2, 0} 1636 , {0, 0} 1637 , {1, 0} 1638 , {0, 0} 1639 , {3, 2} 1640 , 1641 {0, 0} 1642 , {1, 0} 1643 , {0, 0} 1644 , {2, 0} 1645 , {0, 1} 1646 , {1, 0} 1647 , {0, 0} 1648 , {5, 0} 1649 , {0, 0} 1650 , {1, 1} 1651 , 1652 {0, 0} 1653 , {2, 0} 1654 , {0, 0} 1655 , {1, 0} 1656 , {0, 1} 1657 , {3, 0} 1658 , {0, 0} 1659 , {1, 0} 1660 , {0, 0} 1661 , {2, 1} 1662 , 1663 {0, 0} 1664 , {1, 0} 1665 , {0, 0} 1666 , {4, 0} 1667 , {0, 4} 1668 , {1, 0} 1669 , {0, 0} 1670 , {2, 0} 1671 , {0, 0} 1672 , {1, 1} 1673 , 1674 {0, 0} 1675 , {3, 0} 1676 , {0, 0} 1677 , {1, 0} 1678 , {0, 1} 1679 , {2, 0} 1680 , {0, 0} 1681 , {1, 0} 1682 , {0, 0} 1683 , {7, 1} 1684 , 1685 {0, 0} 1686 , {1, 0} 1687 , {0, 0} 1688 , {2, 0} 1689 , {0, 1} 1690 , {1, 0} 1691 , {0, 0} 1692 , {3, 0} 1693 , {0, 0} 1694 , {1, 2} 1695 , 1696 {0, 0} 1697 , {2, 0} 1698 , {0, 0} 1699 , {1, 0} 1700 , {0, 1} 1701 , {4, 0} 1702 , {0, 0} 1703 , {1, 0} 1704 , {0, 0} 1705 , {2, 1} 1706 , 1707 {0, 0} 1708 , {1, 0} 1709 , {0, 0} 1710 , {3, 0} 1711 , {0, 1} 1712 , {1, 0} 1713 , {0, 0} 1714 , {2, 0} 1715 , {0, 0} 1716 , {1, 1} 1717 , 1718 {0, 0} 1719 , {5, 0} 1720 , {0, 0} 1721 , {1, 0} 1722 , {0, 2} 1723 , {2, 0} 1724 , {0, 0} 1725 , {1, 0} 1726 , {0, 0} 1727 , {3, 1} 1728 , 1729 {0, 0} 1730 , {1, 0} 1731 , {0, 0} 1732 , {2, 0} 1733 , {0, 1} 1734 , {1, 0} 1735 , {0, 0} 1736 , {4, 0} 1737 , {0, 0} 1738 , {1, 1} 1739 , 1740 {0, 0} 1741 , {2, 0} 1742 , {0, 0} 1743 , {1, 0} 1744 , {0, 1} 1745 , {3, 0} 1746 , {0, 0} 1747 , {1, 0} 1748 , {0, 0} 1749 , {2, 2} 1750 , 1751 {0, 0} 1752 , {1, 0} 1753 , {0, 0} 1754 , {6, 0} 1755 , {0, 1} 1756 , {1, 0} 1757 , {0, 0} 1758 , {2, 0} 1759 , {0, 0} 1760 , {1, 1} 1761 , 1762 {0, 0} 1763 , {3, 0} 1764 , {0, 0} 1765 , {1, 0} 1766 , {0, 1} 1767 , {2, 0} 1768 , {0, 0} 1769 , {1, 0} 1770 , {0, 0} 1771 , {4, 1} 1772 , 1773 {0, 0} 1774 , {1, 0} 1775 , {0, 0} 1776 , {2, 0} 1777 , {0, 2} 1778 , {1, 0} 1779 , {0, 0} 1780 , {3, 0} 1781 , {0, 0} 1782 , {1, 1} 1783 , 1784 {0, 0} 1785 , {2, 0} 1786 , {0, 0} 1787 , {1, 0} 1788 , {0, 1} 1789 , {5, 0} 1790 , {0, 0} 1791 , {1, 0} 1792 , {0, 0} 1793 , {2, 1} 1794 , 1795 {0, 0} 1796 , {1, 0} 1797 , {0, 0} 1798 , {3, 0} 1799 , {0, 1} 1800 , {1, 0} 1801 , {0, 0} 1802 , {2, 0} 1803 , {0, 0} 1804 , {1, 3} 1805 , 1806 {0, 0} 1807 , {4, 0} 1808 , {0, 0} 1809 , {1, 0} 1810 , {0, 1} 1811 , {2, 0} 1812 , {0, 0} 1813 , {1, 0} 1814 , {0, 0} 1815 , {3, 1} 1816 , 1817 {0, 0} 1818 , {1, 0} 1819 , {0, 0} 1820 , {2, 0} 1821 , {0, 1} 1822 , {1, 0} 1823 , {0, 0} 1824 , {8, 0} 1825 , {0, 0} 1826 , {1, 1} 1827 , 1828 {0, 0} 1829 , {2, 0} 1830 , {0, 0} 1831 , {1, 0} 1832 , {0, 2} 1833 , {3, 0} 1834 , {0, 0} 1835 , {1, 0} 1836 , {0, 0} 1837 , {2, 1} 1838 , 1839 {0, 0} 1840 , {1, 0} 1841 , {0, 0} 1842 , {4, 0} 1843 , {0, 1} 1844 , {1, 0} 1845 , {0, 0} 1846 , {2, 0} 1847 , {0, 0} 1848 , {1, 1} 1849 , 1850 {0, 0} 1851 , {3, 0} 1852 , {0, 0} 1853 , {1, 0} 1854 , {0, 1} 1855 , {2, 0} 1856 , {0, 0} 1857 , {1, 0} 1858 , {0, 0} 1859 , {5, 2} 1860 , 1861 {0, 0} 1862 , {1, 0} 1863 , {0, 0} 1864 , {2, 0} 1865 , {0, 1} 1866 , {1, 0} 1867 , {0, 0} 1868 , {3, 0} 1869 , {0, 0} 1870 , {1, 1} 1871 , 1872 {0, 0} 1873 , {2, 0} 1874 , {0, 0} 1875 , {1, 0} 1876 , {0, 1} 1877 , {4, 0} 1878 , {0, 0} 1879 , {1, 0} 1880 , {0, 0} 1881 , {2, 1} 1882 , 1883 {0, 0} 1884 , {1, 0} 1885 , {0, 0} 1886 , {3, 0} 1887 , {0, 2} 1888 , {1, 0} 1889 , {0, 0} 1890 , {2, 0} 1891 , {0, 0} 1892 , {1, 1} 1893 , 1894 {0, 0} 1895 , {6, 0} 1896 , {0, 0} 1897 , {1, 0} 1898 , {0, 1} 1899 , {2, 0} 1900 , {0, 0} 1901 , {1, 0} 1902 , {0, 0} 1903 , {3, 1} 1904 , 1905 {0, 0} 1906 , {1, 0} 1907 , {0, 0} 1908 , {2, 0} 1909 , {0, 1} 1910 , {1, 0} 1911 , {0, 0} 1912 , {4, 0} 1913 , {0, 0} 1914 , {1, 2} 1915 , 1916 {0, 0} 1917 , {2, 0} 1918 , {0, 0} 1919 , {1, 0} 1920 , {0, 1} 1921 , {3, 0} 1922 , {0, 0} 1923 , {1, 0} 1924 , {0, 0} 1925 , {2, 1} 1926 , 1927 {0, 0} 1928 , {1, 0} 1929 , {0, 0} 1930 , {5, 0} 1931 , {0, 1} 1932 , {1, 0} 1933 , {0, 0} 1934 , {2, 0} 1935 , {0, 0} 1936 , {1, 1} 1937 , 1938 {0, 0} 1939 , {3, 0} 1940 , {0, 0} 1941 , {1, 0} 1942 , {0, 3} 1943 , {2, 0} 1944 , {0, 0} 1945 , {1, 0} 1946 , {0, 0} 1947 , {4, 1} 1948 , 1949 {0, 0} 1950 , {1, 0} 1951 , {0, 0} 1952 , {2, 0} 1953 , {0, 1} 1954 , {1, 0} 1955 , {0, 0} 1956 , {3, 0} 1957 , {0, 0} 1958 , {1, 1} 1959 , 1960 {0, 0} 1961 , {2, 0} 1962 , {0, 0} 1963 , {1, 0} 1964 , {0, 1} 1965 , {7, 0} 1966 , {0, 0} 1967 , {1, 0} 1968 , {0, 0} 1969 , {2, 2} 1970 , 1971 {0, 0} 1972 , {1, 0} 1973 , {0, 0} 1974 , {3, 0} 1975 , {0, 1} 1976 , {1, 0} 1977 , {0, 0} 1978 , {2, 0} 1979 , {0, 0} 1980 , {1, 1} 1981 , 1982 {0, 0} 1983 , {4, 0} 1984 , {0, 0} 1985 , {1, 0} 1986 , {0, 1} 1987 , {2, 0} 1988 , {0, 0} 1989 , {1, 0} 1990 , {0, 0} 1991 , {3, 1} 1992 , 1993 {0, 0} 1994 , {1, 0} 1995 , {0, 0} 1996 , {2, 0} 1997 , {0, 2} 1998 , {1, 0} 1999 , {0, 0} 2000 , {5, 0} 2001 , {0, 0} 2002 , {1, 1} 2003 , 2004 {0, 0} 2005 , {2, 0} 2006 , {0, 0} 2007 , {1, 0} 2008 , {0, 1} 2009 , {3, 0} 2010 , {0, 0} 2011 , {1, 0} 2012 , {0, 0} 2013 , {2, 1} 2014 , 2015 {0, 0} 2016 , {1, 0} 2017 , {0, 0} 2018 , {4, 0} 2019 , {0, 1} 2020 , {1, 0} 2021 , {0, 0} 2022 , {2, 0} 2023 , {0, 0} 2024 , {1, 2} 2025 , 2026 {0, 0} 2027 , {3, 0} 2028 , {0, 0} 2029 , {1, 0} 2030 , {0, 1} 2031 , {2, 0} 2032 , {0, 0} 2033 , {1, 0} 2034 , {0, 0} 2035 , {6, 1} 2036 , 2037 {0, 0} 2038 , {1, 0} 2039 , {0, 0} 2040 , {2, 0} 2041 , {0, 1} 2042 , {1, 0} 2043 , {0, 0} 2044 , {3, 0} 2045 , {0, 0} 2046 , {1, 1} 2047 , 2048 {0, 0} 2049 , {2, 0} 2050 , {0, 0} 2051 , {1, 0} 2052 , {0, 2} 2053 , {4, 0} 2054 , {0, 0} 2055 , {1, 0} 2056 , {0, 0} 2057 , {2, 1} 2058 , 2059 {0, 0} 2060 , {1, 0} 2061 , {0, 0} 2062 , {3, 0} 2063 , {0, 1} 2064 , {1, 0} 2065 , {0, 0} 2066 , {2, 0} 2067 , {0, 0} 2068 , {1, 1} 2069 , 2070 {0, 0} 2071 , {5, 0} 2072 , {0, 0} 2073 , {1, 0} 2074 , {0, 1} 2075 , {2, 0} 2076 , {0, 0} 2077 , {1, 0} 2078 , {0, 0} 2079 , {3, 3} 2080 , 2081 {0, 0} 2082 , {1, 0} 2083 , {0, 0} 2084 , {2, 0} 2085 , {0, 1} 2086 , {1, 0} 2087 , {0, 0} 2088 , {4, 0} 2089 , {0, 0} 2090 , {1, 1} 2091 , 2092 {0, 0} 2093 , {2, 0} 2094 , {0, 0} 2095 , {1, 0} 2096 , {0, 1} 2097 , {3, 0} 2098 , {0, 0} 2099 , {1, 0} 2100 , {0, 0} 2101 , {2, 1} 2102 , 2103 {0, 0} 2104 , {1, 0} 2105 , {0, 0} 2106 , {10, 0} 2107 , 2108 }; 2109