X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=libgcc%2Fconfig%2Flibbid%2Fbid_convert_data.c;fp=libgcc%2Fconfig%2Flibbid%2Fbid_convert_data.c;h=fca394cb91ac7249d84c1d4afe70e85d6df60b79;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=0000000000000000000000000000000000000000;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libgcc/config/libbid/bid_convert_data.c b/libgcc/config/libbid/bid_convert_data.c new file mode 100644 index 00000000..fca394cb --- /dev/null +++ b/libgcc/config/libbid/bid_convert_data.c @@ -0,0 +1,2108 @@ +/* Copyright (C) 2007, 2009 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +. */ + +#include "bid_internal.h" + +// convert_table[j][k][i] = digit i (base 10^8) of k*2^(26+7*j) +const UINT32 convert_table[5][128][2] = { + {{0, 0} + , {67108864, 0} + , {34217728, 1} + , {1326592, 2} + , {68435456, 2} + , + {35544320, 3} + , {2653184, 4} + , {69762048, 4} + , {36870912, 5} + , {3979776, 6} + , + {71088640, 6} + , {38197504, 7} + , {5306368, 8} + , {72415232, 8} + , {39524096, 9} + , + {6632960, 10} + , {73741824, 10} + , {40850688, 11} + , {7959552, 12} + , {75068416, 12} + , + {42177280, 13} + , {9286144, 14} + , {76395008, 14} + , {43503872, 15} + , {10612736, 16} + , + {77721600, 16} + , {44830464, 17} + , {11939328, 18} + , {79048192, 18} + , {46157056, 19} + , + {13265920, 20} + , {80374784, 20} + , {47483648, 21} + , {14592512, 22} + , {81701376, 22} + , + {48810240, 23} + , {15919104, 24} + , {83027968, 24} + , {50136832, 25} + , {17245696, 26} + , + {84354560, 26} + , {51463424, 27} + , {18572288, 28} + , {85681152, 28} + , {52790016, 29} + , + {19898880, 30} + , {87007744, 30} + , {54116608, 31} + , {21225472, 32} + , {88334336, 32} + , + {55443200, 33} + , {22552064, 34} + , {89660928, 34} + , {56769792, 35} + , {23878656, 36} + , + {90987520, 36} + , {58096384, 37} + , {25205248, 38} + , {92314112, 38} + , {59422976, 39} + , + {26531840, 40} + , {93640704, 40} + , {60749568, 41} + , {27858432, 42} + , {94967296, 42} + , + {62076160, 43} + , {29185024, 44} + , {96293888, 44} + , {63402752, 45} + , {30511616, 46} + , + {97620480, 46} + , {64729344, 47} + , {31838208, 48} + , {98947072, 48} + , {66055936, 49} + , + {33164800, 50} + , {273664, 51} + , {67382528, 51} + , {34491392, 52} + , {1600256, 53} + , + {68709120, 53} + , {35817984, 54} + , {2926848, 55} + , {70035712, 55} + , {37144576, 56} + , + {4253440, 57} + , {71362304, 57} + , {38471168, 58} + , {5580032, 59} + , {72688896, 59} + , + {39797760, 60} + , {6906624, 61} + , {74015488, 61} + , {41124352, 62} + , {8233216, 63} + , + {75342080, 63} + , {42450944, 64} + , {9559808, 65} + , {76668672, 65} + , {43777536, 66} + , + {10886400, 67} + , {77995264, 67} + , {45104128, 68} + , {12212992, 69} + , {79321856, 69} + , + {46430720, 70} + , {13539584, 71} + , {80648448, 71} + , {47757312, 72} + , {14866176, 73} + , + {81975040, 73} + , {49083904, 74} + , {16192768, 75} + , {83301632, 75} + , {50410496, 76} + , + {17519360, 77} + , {84628224, 77} + , {51737088, 78} + , {18845952, 79} + , {85954816, 79} + , + {53063680, 80} + , {20172544, 81} + , {87281408, 81} + , {54390272, 82} + , {21499136, 83} + , + {88608000, 83} + , {55716864, 84} + , {22825728, 85} + , + } + , + + {{0, 0} + , {89934592, 85} + , {79869184, 171} + , {69803776, 257} + , {59738368, 343} + , + {49672960, 429} + , {39607552, 515} + , {29542144, 601} + , {19476736, 687} + , {9411328, 773} + , + {99345920, 858} + , {89280512, 944} + , {79215104, 1030} + , {69149696, 1116} + , {59084288, 1202} + , + {49018880, 1288} + , {38953472, 1374} + , {28888064, 1460} + , {18822656, 1546} + , {8757248, 1632} + , + {98691840, 1717} + , {88626432, 1803} + , {78561024, 1889} + , {68495616, 1975} + , {58430208, 2061} + , + {48364800, 2147} + , {38299392, 2233} + , {28233984, 2319} + , {18168576, 2405} + , {8103168, 2491} + , + {98037760, 2576} + , {87972352, 2662} + , {77906944, 2748} + , {67841536, 2834} + , {57776128, 2920} + , + {47710720, 3006} + , {37645312, 3092} + , {27579904, 3178} + , {17514496, 3264} + , {7449088, 3350} + , + {97383680, 3435} + , {87318272, 3521} + , {77252864, 3607} + , {67187456, 3693} + , {57122048, 3779} + , + {47056640, 3865} + , {36991232, 3951} + , {26925824, 4037} + , {16860416, 4123} + , {6795008, 4209} + , + {96729600, 4294} + , {86664192, 4380} + , {76598784, 4466} + , {66533376, 4552} + , {56467968, 4638} + , + {46402560, 4724} + , {36337152, 4810} + , {26271744, 4896} + , {16206336, 4982} + , {6140928, 5068} + , + {96075520, 5153} + , {86010112, 5239} + , {75944704, 5325} + , {65879296, 5411} + , {55813888, 5497} + , + {45748480, 5583} + , {35683072, 5669} + , {25617664, 5755} + , {15552256, 5841} + , {5486848, 5927} + , + {95421440, 6012} + , {85356032, 6098} + , {75290624, 6184} + , {65225216, 6270} + , {55159808, 6356} + , + {45094400, 6442} + , {35028992, 6528} + , {24963584, 6614} + , {14898176, 6700} + , {4832768, 6786} + , + {94767360, 6871} + , {84701952, 6957} + , {74636544, 7043} + , {64571136, 7129} + , {54505728, 7215} + , + {44440320, 7301} + , {34374912, 7387} + , {24309504, 7473} + , {14244096, 7559} + , {4178688, 7645} + , + {94113280, 7730} + , {84047872, 7816} + , {73982464, 7902} + , {63917056, 7988} + , {53851648, 8074} + , + {43786240, 8160} + , {33720832, 8246} + , {23655424, 8332} + , {13590016, 8418} + , {3524608, 8504} + , + {93459200, 8589} + , {83393792, 8675} + , {73328384, 8761} + , {63262976, 8847} + , {53197568, 8933} + , + {43132160, 9019} + , {33066752, 9105} + , {23001344, 9191} + , {12935936, 9277} + , {2870528, 9363} + , + {92805120, 9448} + , {82739712, 9534} + , {72674304, 9620} + , {62608896, 9706} + , {52543488, 9792} + , + {42478080, 9878} + , {32412672, 9964} + , {22347264, 10050} + , {12281856, 10136} + , {2216448, 10222} + , + {92151040, 10307} + , {82085632, 10393} + , {72020224, 10479} + , {61954816, 10565} + , {51889408, 10651} + , + {41824000, 10737} + , {31758592, 10823} + , {21693184, 10909} + , + } + , + + {{0, 0} + , {11627776, 10995} + , {23255552, 21990} + , {34883328, 32985} + , {46511104, 43980} + , + {58138880, 54975} + , {69766656, 65970} + , {81394432, 76965} + , {93022208, 87960} + , {4649984, 98956} + , + {16277760, 109951} + , {27905536, 120946} + , {39533312, 131941} + , {51161088, 142936} + , {62788864, 153931} + , + {74416640, 164926} + , {86044416, 175921} + , {97672192, 186916} + , {9299968, 197912} + , {20927744, 208907} + , + {32555520, 219902} + , {44183296, 230897} + , {55811072, 241892} + , {67438848, 252887} + , {79066624, 263882} + , + {90694400, 274877} + , {2322176, 285873} + , {13949952, 296868} + , {25577728, 307863} + , {37205504, 318858} + , + {48833280, 329853} + , {60461056, 340848} + , {72088832, 351843} + , {83716608, 362838} + , {95344384, 373833} + , + {6972160, 384829} + , {18599936, 395824} + , {30227712, 406819} + , {41855488, 417814} + , {53483264, 428809} + , + {65111040, 439804} + , {76738816, 450799} + , {88366592, 461794} + , {99994368, 472789} + , {11622144, 483785} + , + {23249920, 494780} + , {34877696, 505775} + , {46505472, 516770} + , {58133248, 527765} + , {69761024, 538760} + , + {81388800, 549755} + , {93016576, 560750} + , {4644352, 571746} + , {16272128, 582741} + , {27899904, 593736} + , + {39527680, 604731} + , {51155456, 615726} + , {62783232, 626721} + , {74411008, 637716} + , {86038784, 648711} + , + {97666560, 659706} + , {9294336, 670702} + , {20922112, 681697} + , {32549888, 692692} + , {44177664, 703687} + , + {55805440, 714682} + , {67433216, 725677} + , {79060992, 736672} + , {90688768, 747667} + , {2316544, 758663} + , + {13944320, 769658} + , {25572096, 780653} + , {37199872, 791648} + , {48827648, 802643} + , {60455424, 813638} + , + {72083200, 824633} + , {83710976, 835628} + , {95338752, 846623} + , {6966528, 857619} + , {18594304, 868614} + , + {30222080, 879609} + , {41849856, 890604} + , {53477632, 901599} + , {65105408, 912594} + , {76733184, 923589} + , + {88360960, 934584} + , {99988736, 945579} + , {11616512, 956575} + , {23244288, 967570} + , {34872064, 978565} + , + {46499840, 989560} + , {58127616, 1000555} + , {69755392, 1011550} + , {81383168, 1022545} + , {93010944, 1033540} + , + {4638720, 1044536} + , {16266496, 1055531} + , {27894272, 1066526} + , {39522048, 1077521} + , {51149824, 1088516} + , + {62777600, 1099511} + , {74405376, 1110506} + , {86033152, 1121501} + , {97660928, 1132496} + , {9288704, 1143492} + , + {20916480, 1154487} + , {32544256, 1165482} + , {44172032, 1176477} + , {55799808, 1187472} + , {67427584, 1198467} + , + {79055360, 1209462} + , {90683136, 1220457} + , {2310912, 1231453} + , {13938688, 1242448} + , {25566464, 1253443} + , + {37194240, 1264438} + , {48822016, 1275433} + , {60449792, 1286428} + , {72077568, 1297423} + , {83705344, 1308418} + , + {95333120, 1319413} + , {6960896, 1330409} + , {18588672, 1341404} + , {30216448, 1352399} + , {41844224, 1363394} + , + {53472000, 1374389} + , {65099776, 1385384} + , {76727552, 1396379} + , + } + , + + {{0, 0} + , {88355328, 1407374} + , {76710656, 2814749} + , {65065984, 4222124} + , {53421312, 5629499} + , + {41776640, 7036874} + , {30131968, 8444249} + , {18487296, 9851624} + , {6842624, 11258999} + , {95197952, 12666373} + , + {83553280, 14073748} + , {71908608, 15481123} + , {60263936, 16888498} + , {48619264, 18295873} + , {36974592, 19703248} + , + {25329920, 21110623} + , {13685248, 22517998} + , {2040576, 23925373} + , {90395904, 25332747} + , {78751232, 26740122} + , + {67106560, 28147497} + , {55461888, 29554872} + , {43817216, 30962247} + , {32172544, 32369622} + , {20527872, 33776997} + , + {8883200, 35184372} + , {97238528, 36591746} + , {85593856, 37999121} + , {73949184, 39406496} + , {62304512, 40813871} + , + {50659840, 42221246} + , {39015168, 43628621} + , {27370496, 45035996} + , {15725824, 46443371} + , {4081152, 47850746} + , + {92436480, 49258120} + , {80791808, 50665495} + , {69147136, 52072870} + , {57502464, 53480245} + , {45857792, 54887620} + , + {34213120, 56294995} + , {22568448, 57702370} + , {10923776, 59109745} + , {99279104, 60517119} + , {87634432, 61924494} + , + {75989760, 63331869} + , {64345088, 64739244} + , {52700416, 66146619} + , {41055744, 67553994} + , {29411072, 68961369} + , + {17766400, 70368744} + , {6121728, 71776119} + , {94477056, 73183493} + , {82832384, 74590868} + , {71187712, 75998243} + , + {59543040, 77405618} + , {47898368, 78812993} + , {36253696, 80220368} + , {24609024, 81627743} + , {12964352, 83035118} + , + {1319680, 84442493} + , {89675008, 85849867} + , {78030336, 87257242} + , {66385664, 88664617} + , {54740992, 90071992} + , + {43096320, 91479367} + , {31451648, 92886742} + , {19806976, 94294117} + , {8162304, 95701492} + , {96517632, 97108866} + , + {84872960, 98516241} + , {73228288, 99923616} + , {61583616, 1330991} + , {49938944, 2738366} + , {38294272, 4145741} + , + {26649600, 5553116} + , {15004928, 6960491} + , {3360256, 8367866} + , {91715584, 9775240} + , {80070912, 11182615} + , + {68426240, 12589990} + , {56781568, 13997365} + , {45136896, 15404740} + , {33492224, 16812115} + , {21847552, 18219490} + , + {10202880, 19626865} + , {98558208, 21034239} + , {86913536, 22441614} + , {75268864, 23848989} + , {63624192, 25256364} + , + {51979520, 26663739} + , {40334848, 28071114} + , {28690176, 29478489} + , {17045504, 30885864} + , {5400832, 32293239} + , + {93756160, 33700613} + , {82111488, 35107988} + , {70466816, 36515363} + , {58822144, 37922738} + , {47177472, 39330113} + , + {35532800, 40737488} + , {23888128, 42144863} + , {12243456, 43552238} + , {598784, 44959613} + , {88954112, 46366987} + , + {77309440, 47774362} + , {65664768, 49181737} + , {54020096, 50589112} + , {42375424, 51996487} + , {30730752, 53403862} + , + {19086080, 54811237} + , {7441408, 56218612} + , {95796736, 57625986} + , {84152064, 59033361} + , {72507392, 60440736} + , + {60862720, 61848111} + , {49218048, 63255486} + , {37573376, 64662861} + , {25928704, 66070236} + , {14284032, 67477611} + , + {2639360, 68884986} + , {90994688, 70292360} + , {79350016, 71699735} + , {67705344, 73107110} + , {56060672, 74514485} + , + {44416000, 75921860} + , {32771328, 77329235} + , {21126656, 78736610} + , + } + , + + {{0, 0} + , {9481984, 80143985} + , {18963968, 60287970} + , {28445952, 40431955} + , {37927936, 20575940} + , + {47409920, 719925} + , {56891904, 80863910} + , {66373888, 61007895} + , {75855872, 41151880} + , {85337856, 21295865} + , + {94819840, 1439850} + , {4301824, 81583836} + , {13783808, 61727821} + , {23265792, 41871806} + , {32747776, 22015791} + , + {42229760, 2159776} + , {51711744, 82303761} + , {61193728, 62447746} + , {70675712, 42591731} + , {80157696, 22735716} + , + {89639680, 2879701} + , {99121664, 83023686} + , {8603648, 63167672} + , {18085632, 43311657} + , {27567616, 23455642} + , + {37049600, 3599627} + , {46531584, 83743612} + , {56013568, 63887597} + , {65495552, 44031582} + , {74977536, 24175567} + , + {84459520, 4319552} + , {93941504, 84463537} + , {3423488, 64607523} + , {12905472, 44751508} + , {22387456, 24895493} + , + {31869440, 5039478} + , {41351424, 85183463} + , {50833408, 65327448} + , {60315392, 45471433} + , {69797376, 25615418} + , + {79279360, 5759403} + , {88761344, 85903388} + , {98243328, 66047373} + , {7725312, 46191359} + , {17207296, 26335344} + , + {26689280, 6479329} + , {36171264, 86623314} + , {45653248, 66767299} + , {55135232, 46911284} + , {64617216, 27055269} + , + {74099200, 7199254} + , {83581184, 87343239} + , {93063168, 67487224} + , {2545152, 47631210} + , {12027136, 27775195} + , + {21509120, 7919180} + , {30991104, 88063165} + , {40473088, 68207150} + , {49955072, 48351135} + , {59437056, 28495120} + , + {68919040, 8639105} + , {78401024, 88783090} + , {87883008, 68927075} + , {97364992, 49071060} + , {6846976, 29215046} + , + {16328960, 9359031} + , {25810944, 89503016} + , {35292928, 69647001} + , {44774912, 49790986} + , {54256896, 29934971} + , + {63738880, 10078956} + , {73220864, 90222941} + , {82702848, 70366926} + , {92184832, 50510911} + , {1666816, 30654897} + , + {11148800, 10798882} + , {20630784, 90942867} + , {30112768, 71086852} + , {39594752, 51230837} + , {49076736, 31374822} + , + {58558720, 11518807} + , {68040704, 91662792} + , {77522688, 71806777} + , {87004672, 51950762} + , {96486656, 32094747} + , + {5968640, 12238733} + , {15450624, 92382718} + , {24932608, 72526703} + , {34414592, 52670688} + , {43896576, 32814673} + , + {53378560, 12958658} + , {62860544, 93102643} + , {72342528, 73246628} + , {81824512, 53390613} + , {91306496, 33534598} + , + {788480, 13678584} + , {10270464, 93822569} + , {19752448, 73966554} + , {29234432, 54110539} + , {38716416, 34254524} + , + {48198400, 14398509} + , {57680384, 94542494} + , {67162368, 74686479} + , {76644352, 54830464} + , {86126336, 34974449} + , + {95608320, 15118434} + , {5090304, 95262420} + , {14572288, 75406405} + , {24054272, 55550390} + , {33536256, 35694375} + , + {43018240, 15838360} + , {52500224, 95982345} + , {61982208, 76126330} + , {71464192, 56270315} + , {80946176, 36414300} + , + {90428160, 16558285} + , {99910144, 96702270} + , {9392128, 76846256} + , {18874112, 56990241} + , {28356096, 37134226} + , + {37838080, 17278211} + , {47320064, 97422196} + , {56802048, 77566181} + , {66284032, 57710166} + , {75766016, 37854151} + , + {85248000, 17998136} + , {94729984, 98142121} + , {4211968, 78286107} + , + } + , +}; + +// for j>=min_j[i+1], there is k s.t. convert_table[i][j][k]>0 +// int min_j[] = { 0, 0, 0, 3 }; + +// for even k, ((packed_10000_zeros[k>>3])>>(k&7))&3)=greatest(i) s.t. 10^i divides k +const UINT8 packed_10000_zeros[] = { + + 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x20, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x3, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x2, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x20, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x20, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x2, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x20, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x2, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x2, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x20, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x20, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x3, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x20, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x2, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x2, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x20, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x20, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, 0x40, 0x0, 0x3, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, + 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, + 0x0, 0x2, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, + 0x2, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, + 0x40, 0x0, 0x1, + 0x4, 0x10, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, 0x2, 0x4, 0x10, 0x40, + 0x0, 0x1, 0x4, + 0x10, 0x40, 0x0, 0x1, 0x4, 0x20, 0x40, 0x0, 0x1, 0x4, 0x10, 0x40, 0x0, + 0x1, 0x4, 0x10, + 0x40, 0x0, +}; + + +const SINT8 factors[1024][2] = { + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {5, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {6, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {4, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {5, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 3} + , {1, 0} + , {0, 0} + , {7, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {5, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {6, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {5, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {4, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 3} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {8, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {5, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {6, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {5, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 3} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {7, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {4, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {5, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {6, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {5, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 3} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {9, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {5, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {4, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {6, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {5, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 4} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {7, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {5, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {6, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {4, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {5, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 3} + , + {0, 0} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {8, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {5, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {6, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {5, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 3} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {4, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {7, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 2} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 2} + , {1, 0} + , {0, 0} + , {5, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 2} + , + {0, 0} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {6, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 2} + , {4, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {3, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {5, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {3, 3} + , + {0, 0} + , {1, 0} + , {0, 0} + , {2, 0} + , {0, 1} + , {1, 0} + , {0, 0} + , {4, 0} + , {0, 0} + , {1, 1} + , + {0, 0} + , {2, 0} + , {0, 0} + , {1, 0} + , {0, 1} + , {3, 0} + , {0, 0} + , {1, 0} + , {0, 0} + , {2, 1} + , + {0, 0} + , {1, 0} + , {0, 0} + , {10, 0} + , +};