[polly] r228193 - Import isl(+imath) as an external library into Polly

Tobias Grosser tobias at grosser.es
Wed Feb 4 12:55:55 PST 2015


Added: polly/trunk/lib/External/isl/imath/tests/add.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/add.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/add.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/add.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,848 @@
+# Addition tests
+
+add:0,0,0:0
+add:0,0,=1:0
+add:1,=1,=1:2
+add:1,-1,0:0
+add:-1,1,0:0
+add:-1,1,=1:0
+
+add:103427990038,909510006269847,0:909613434259885
+add:128593002,-9007199254740992,0:-9007199126147990
+add:-65537,70000,0:4463
+add:-1000000,-6543210,0:-7543210
+add:#x29C932F25E6CEF8046FA,#x-29C932F25E6CEF8046FA,0:0
+add:2,#x7FFFFFFFF,0:#x800000001
+add:95031018,=1,=1:190062036
+add:#x-176E7F8018D6BA4B550AB36AAAFDC78A9,#x186DAD2485A41B18AAF5EF17922D7E5F1F,=1:#x16F6C52C8416AF73F5A543E0E77DA1E676
+add:-628443782411312,-301652218193016,=2:-930096000604328
+add:13731535,499104,0:14230639
+add:46496,0,0:46496
+add:85658949,0,0:85658949
+add:3,86618070,0:86618073
+add:-364,0,0:-364
+add:916376,71094297,0:72010673
+add:-76,-48988,0:-49064
+add:7,98029,293800191852111:98036
+add:213,0,0:213
+add:116992,19352187,=1:19469179
+add:-54334706,-2638935,0:-56973641
+add:4210,4441,0:8651
+add:2470,-1654142,0:-1651672
+add:-32608,76896,0:44288
+add:598200,65918574,0:66516774
+add:-524863149,95573,0:-524767576
+add:4,6856995,0:6856999
+add:86710327,16209386,0:102919713
+add:31,-24,0:7
+add:5895523,9915789381,0:9921684904
+add:41557511,310172,0:41867683
+add:-6714,923,0:-5791
+add:466232157,987,0:466233144
+add:5919,-63,0:5856
+add:929994,66871,0:996865
+add:23,391,0:414
+add:751,-25255,0:-24504
+add:-282292,-1608,0:-283900
+add:0,-4119448990,0:-4119448990
+add:69248,-64165,0:5083
+add:816106,580,0:816686
+add:15171,219806,0:234977
+add:945180,-585066,0:360114
+add:27052,6664636892,0:6664663944
+add:-481622,-578,0:-482200
+add:926,-81,0:845
+add:-4084,62941238721,=1:62941234637
+add:888598,6601,0:895199
+add:-61,143796,0:143735
+add:408006264,51,0:408006315
+add:-582073,-6752,0:-588825
+add:88194084,595557600,0:683751684
+add:4963532385,72932,0:4963605317
+add:37370180,708428344,0:745798524
+add:638718578,-94054,0:638624524
+add:12603892606,194259,0:12604086865
+add:9812049,8843056,0:18655105
+add:-156093,-3718156523,0:-3718312616
+add:12264,949557843298,0:949557855562
+add:338742,9139,0:347881
+add:48848,-6268099,0:-6219251
+add:3653,981782890584,0:981782894237
+add:608763646,38233135026,0:38841898672
+add:-17063,-4811,0:-21874
+add:63244008,-380818980,0:-317574972
+add:624559862947,21088,0:624559884035
+add:-268795562,74755169,0:-194040393
+add:368827930,56987680,0:425815610
+add:142,-838643130506,0:-838643130364
+add:848909,137303147,0:138152056
+add:6682221270,4495632518460,0:4502314739730
+add:163999538727,754668,0:164000293395
+add:570098317,1230642588,0:1800740905
+add:814302609847,295465,0:814302905312
+add:61148411120,462527703,0:61610938823
+add:979075368979,64243429,0:979139612408
+add:8280601099859,431312,0:8280601531171
+add:29662,3920844058249,0:3920844087911
+add:381765363,6285,0:381771648
+add:6038301700102,167589011428,0:6205890711530
+add:-6720,50309,0:43589
+add:92070025383,8403955,0:92078429338
+add:9057100,9331,0:9066431
+add:46997620390,2556790331006,0:2603787951396
+add:9853238961850,760016661497,0:10613255623347
+add:642786326083,4994197649,0:647780523732
+add:60934395,192791945290,0:192852879685
+add:1304866806,9628566351206,0:9629871218012
+add:-537871392295,1691988267,0:-536179404028
+add:73595697641,63790,0:73595761431
+add:87798124384590,168308169,0:87798292692759
+add:77155772837617,993653875,0:77156766491492
+add:691109994727,83820903066409,0:84512013061136
+add:2012749349577,1194,0:2012749350771
+add:3909606,1258809350,0:1262718956
+add:5961027295,-191014,0:5960836281
+add:-9155782013,84622,0:-9155697391
+add:-7211667,-624806193439,0:-624813405106
+add:1754076,931310,0:2685386
+add:53288031910288,1866366148,0:53289898276436
+add:767503182,-78473238204,0:-77705735022
+add:-89763935864,-14028568280297,0:-14118332216161
+add:454616605,67243118209653,0:67243572826258
+add:674985,745910,0:1420895
+add:9182866281585,-7492901984,0:9175373379601
+add:8427973625,2948084578162,0:2956512551787
+add:89366530,96670928089,0:96760294619
+add:62255464298256,1694823,0:62255465993079
+add:5268676160308,-93499502334390,0:-88230826174082
+add:7165346,-12994330060,0:-12987164714
+add:73330752719,904668539586,0:977999292305
+add:8007349,88617667386,0:88625674735
+add:951867792,807329,0:952675121
+add:645715109491016,58609052382,0:645773718543398
+add:2037750169321,85113205892,0:2122863375213
+add:6585250,76715488825566,0:76715495410816
+add:4585299,4140224,0:8725523
+add:20194080,7047624,0:27241704
+add:786913195,5197776759303,0:5198563672498
+add:751261814658086,65539188,0:751261880197274
+add:-6325172443258,2171993016413249,0:2165667843969991
+add:3947284565,-78726628505,0:-74779343940
+add:-71699817835206,40239308204,0:-71659578527002
+add:53023714,-82553833053558,0:-82553780029844
+add:2808131187169,890250230608190,0:893058361795359
+add:4783795579,-953360022706,0:-948576227127
+add:22326520,59606609543578,0:59606631870098
+add:37110988189,2635629530529,0:2672740518718
+add:5415787,65557975919,0:65563391706
+add:687495904,-3296642739961554,0:-3296642052465650
+add:72930835789,43382168425705304,0:43382241356541093
+add:-995003864534,61722341747,0:-933281522787
+add:74285863538462,4701124896071184,0:4775410759609646
+add:-7259432400758987,917110091938734,0:-6342322308820253
+add:83640964028613,28436773,0:83640992465386
+add:12798300129,42764089830,0:55562389959
+add:907689161228474,9984041726746,0:917673202955220
+add:88648450941,-92224182312398621,0:-92224093663947680
+add:3423736794,992566059450,0:995989796244
+add:26095203,84516699542499712,0:84516699568594915
+add:-664955461457,34154013,0:-664921307444
+add:17408598155,57614703283466656,0:57614720692064811
+add:734135582143613,8386599520,0:734143968743133
+add:75433328059753089,3411724102,0:75433331471477191
+add:-5780056339,370823068636155,0:370817288579816
+add:747133022687630,743183409891560,0:1490316432579190
+add:1351023965,562216806411,0:563567830376
+add:8923051674,5453380084794,0:5462303136468
+add:244571930,-51111880145,0:-50867308215
+add:-41136584383913485,2817501078,0:-41136581566412407
+add:-8079768063523410,441741295522855156,0:433661527459331746
+add:599579537585,1505732756139,0:2105312293724
+add:6728375739,634744472,0:7363120211
+add:163686368,10797029513119,0:10797193199487
+add:38258778569482,81136715091,0:38339915284573
+add:89311393409893347,6487334114,0:89311399897227461
+add:4413952309911,-335091846,0:4413617218065
+add:-8490298221703,906197882389719833,0:906189392091498130
+add:547446627581960679,4111395072,0:547446631693355751
+add:-147199257725737,358585065185151457,0:358437865927425720
+add:733104781218,1305401890,0:734410183108
+add:66789232493812823,152353542633642764,0:219142775127455587
+add:91447917877257,890149399042107596,0:890240846959984853
+add:67840659340,45844535119015296,0:45844602959674636
+add:31351681435877221,-442068622969770457,0:-410716941533893236
+add:8505522087730720965,162001047045127445,0:8667523134775848410
+add:90408836865703,91766097115,0:90500602962818
+add:8278725919,-6565975065136635,0:-6565966786410716
+add:778195404262806210,9985183887639111776,0:10763379291901917986
+add:6696810212664216,312304914759219,0:7009115127423435
+add:3557735824865,584593215289536,0:588150951114401
+add:-49412044681,29956396329782239,0:29956346917737558
+add:11923449620,7765655187,0:19689104807
+add:1724176067,-67142223866,0:-65418047799
+add:525722978624,57023088377443306,0:57023614100421930
+add:726936921764427,3077076587081089,0:3804013508845516
+add:1790333591126,-91682335574328992,0:-91680545240737866
+add:-1112879092907469823,1867817571215,0:-1112877225089898608
+add:-8476115918476,3323398534004,0:-5152717384472
+add:83059391773,-65273298074046515729,0:-65273297990987123956
+add:2211388311050688,-245146603838894173,0:-242935215527843485
+add:585851683392336,3975804417513631370,0:3976390269197023706
+add:139186663640090,15082756961,0:139201746397051
+add:-48189710801086,-33546258184494787728,0:-33546306374205588814
+add:-100779556817445,-1522038785339961,0:-1622818342157406
+add:4885512159295669,480294778789866559,0:485180290949162228
+add:-557882003905193311,20195805293900,0:-557861808099899411
+add:154553862612072,9109218823125727072,0:9109373376988339144
+add:1483847515783086714,78233016786768531473,0:79716864302551618187
+add:632462956668123,-2951738540674650223,0:-2951106077717982100
+add:-60943119399848141,74036520715371,0:-60869082879132770
+add:-7905328383508507808,-207334403231,0:-7905328590842911039
+add:-376183968178,-862976187364,0:-1239160155542
+add:918327139068056021,-685922087142,0:918326453145968879
+add:-9846497109055054870,6775447579440637,0:-9839721661475614233
+add:-84073521083215,71309976692297262369,0:71309892618776179154
+add:-373011272994268095955,4157479098221637,0:-373007115515169874318
+add:49271774069573022576,378613526495506818344,0:427885300565079840920
+add:-5376376953931357562,7508833770175817,0:-5368868120161181745
+add:-23778714258598355551,-7185005392000393507,0:-30963719650598749058
+add:801031622749,53000130414840,0:53801162037589
+add:-970929952514676169,64017648311761173049,0:63046718359246496880
+add:444961381148474,-368409783275279249,0:-367964821894130775
+add:39999239040508219266,38054215870372108,0:40037293256378591374
+add:-712118755181107,21931036897383483,0:21218918142202376
+add:-646755675748528169,609844920243318603442,0:609198164567570075273
+add:171013028884891673,11967223547227113703,0:12138236576112005376
+add:90483783429450285931,8758299165450368514304,0:8848782948879818800235
+add:54722600417344222188,6655544009320,0:54722607072888231508
+add:7059355949487975,15428043300387,0:7074783992788362
+add:63718799432141668051,-1777818839779748621,0:61940980592361919430
+add:-811965656585153,-92999475442666083,0:-93811441099251236
+add:-480943344691207768,38637964026264,0:-480904706727181504
+add:87346474969320,11671605416687563,0:11758951891656883
+add:-144193490776783,320317203586930,0:176123712810147
+add:637224429856480,90100814693140,0:727325244549620
+add:1117448757980,20116238466569324081,0:20116239584018082061
+add:2134662653354031124,57535080216036041491,0:59669742869390072615
+add:-699305697439351543,-1322846377107844464831,0:-1323545682805283816374
+add:-287368527913803,559967333864139,0:272598805950336
+add:-4524131005300321178256,648090525452193270713,0:-3876040479848127907543
+add:983197813618615290581,-555223968315003163,0:982642589650300287418
+add:47595018158554,554354123612822084175,0:554354171207840242729
+add:76492304934567739056067,-17570682458452839171696,0:58921622476114899884371
+add:605579840932458751,5118917191828845481095,0:5119522771669777939846
+add:-77276783972774282464,97578221184517253974,0:20301437211742971510
+add:-55779468870779406,3628329199924803907,0:3572549731054024501
+add:-6810396240935929656,45581601665257956989667,0:45574791269017021060011
+add:-643395735022469,95994342321649,0:-547401392700820
+add:59033016804296,90010200392865311,0:90069233409669607
+add:412262412571713009,44652839425446643811,0:45065101838018356820
+add:-996242836885840433689,9932141967639296363784,0:8935899130753455930095
+add:-187591416585869366840,4868774783363997420,0:-182722641802505369420
+add:786124638558627932,120825949339625517416,0:121612073978184145348
+add:683056931297141410,13435555169749,0:683070366852311159
+add:78591895387046935416982,-3863271218201597391326,0:74728624168845338025656
+add:-581639737241844,59732569151616229,0:59150929414374385
+add:63839107438860260,-57936899988162199911626,0:-57936836149054761051366
+add:90241348579070434,4025779803051070287,0:4116021151630140721
+add:-29146551546957649,500543832007704775744,0:500514685456157818095
+add:40152296103662954,30632073318077007293876,0:30632113470373110956830
+add:46052697297460594549965,-2523434189144367108,0:46050173863271450182857
+add:-908472766655304200,503910242160770655137,0:503001769394115350937
+add:35664754770405781576262,-52328200879455304,0:35664702442204902120958
+add:536193847189289,2055159240163985839,0:2055695434011175128
+add:5692763430774180,559128387745059,0:6251891818519239
+add:962044518204007,36941484559411981897006,0:36941485521456500101013
+add:1778825689878630,1752252372363744,0:3531078062242374
+add:94533959067668939155652,7370593466294273268440,0:101904552533963212424092
+add:-79278320169999633,98078807455225677,0:18800487285226044
+add:97932568071091044410,45504699679270344940,0:143437267750361389350
+add:81602336599709335,277692040888807344679270,0:277692122491143944388605
+add:-8416111605414512356,-71387336643361802215,0:-79803448248776314571
+add:-4364114737364980,5713751339100810207300,0:5713746974986072842320
+add:-2248544818568852,-95216575446860643106235,0:-95216577695405461675087
+add:-86464737497345750915,-9340577567832336397746,0:-9427042305329682148661
+add:7285517444194103327524171,-178398693192528240,0:7285517265795410134995931
+add:745600294808335954574,3590181147179066146,0:749190475955515020720
+add:9465688117779501171539,38370364609588339408116,0:47836052727367840579655
+add:780056864215481439157498,-7015580969512485,0:780056857199900469645013
+add:978681982436757227400,2684547366513014,0:978684666984123740414
+add:-1128116293278100017914825,5548079193241448,0:-1128116287730020824673377
+add:69069382482494805,-40368676133739445253204,0:-40368607064356962758399
+add:1068908356897083556495,92975661850341635306516,0:94044570207238718863011
+add:2045728645356266,6732676856163053,0:8778405501519319
+add:986371258787059591145109,24417303396801332,0:986371283204362987946441
+add:5107392493993300358729,-8580635176929229687,0:5098811858816371129042
+add:1173219044247994941,150432915362745448142,0:151606134406993443083
+add:289209848265652909988,896527174701053128584035,0:896816384549318781494023
+add:7576209306830869,321093885120988771790,0:321101461330295602659
+add:-1998078850553780901,-491302474398583183312,0:-493300553249136964213
+add:48578611214917968888328,-9724795578642180430323005,0:-9676216967427262461434677
+add:-89125038112802690868952,106876489286063867,0:-89124931236313404805085
+add:71163583246605175,94315599279060581,0:165479182525665756
+add:-37978975375912768223,-83894091589588085332,0:-121873066965500853555
+add:26160354602260154641,82502519980721475,0:26242857122240876116
+add:6721445506562724498613,3849322132330485045442724,0:3856043577837047769941337
+add:-49599516930241019167,940046744572738518062,0:890447227642497498895
+add:309633233963607626456,431010776584765161668698,0:431320409818728769295154
+add:5437528458768789581061,98535318335138080471,0:5536063777103927661532
+add:441952255932531337132635419,-457951493790545402320,0:441951797981037546587233099
+add:4234090565000592983852,141452209542036221,0:4234232017210135020073
+add:444877202793878855,-818932236535168281886543304,0:-818932236090291079092664449
+add:8735279390159786014911,74528121661502104489,0:8809807511821288119400
+add:329585339951820135507,3209925326812978905481,0:3539510666764799040988
+add:7513147727765550283468497,18340872039691020224,0:7513166068637589974488721
+add:22672336765411635852057,112360311181155228061,0:22784697076592791080118
+add:94840923157956010314,-890963292023167606621709508,0:-890963197182244448665699194
+add:-42743124461511984041,-154189486799725890635958009,0:-154189529542850352147942050
+add:4642096435824001337488,1075739791472186776,0:4643172175615473524264
+add:9072122446151456250370,459465421414955099,0:9072581911572871205469
+add:1208103563782991690,37264807069479596362,0:38472910633262588052
+add:-35229676312313275613641079,7831519567525205386506558,0:-27398156744788070227134521
+add:-14914636592325904561,238892654922757390,0:-14675743937403147171
+add:70036479094753932788537196,3638698354298942306,0:70036482733452287087479502
+add:2026475183691718009207221,-51818547306091257831,0:2026423365144411917949390
+add:934591237413188471704,9583576351426447252706,0:10518167588839635724410
+add:19623165243467693921345120,713164237953453844732059938,0:732787403196921538653405058
+add:-330423131007863591790334,483122548819491409819,0:-329940008459044100380515
+add:186655649790428913672547335,45905196004697591848,0:186655695695624918370139183
+add:61575494850989411781745,510771432997312770825568,0:572346927848302182607313
+add:701715172953878317016084611,82176271434782371131,0:701715255130149751798455742
+add:37317170353550823267505484,-281915644115285990142,0:37316888437906707981515342
+add:782147829078599149413,406441493949770755536,0:1188589323028369904949
+add:8750933869512603353560747,4845145469101036864410189,0:13596079338613640217970936
+add:82771556090809260029854,417868176867358634531479,0:500639732958167894561333
+add:-60327848305676142893255531,45186448696277654715,0:-60327803119227446615600816
+add:559238168466621140605667,3086402973187970627177143386,0:3086962211356437248317749053
+add:1487217856230533992619184307,88533139618452902103,0:1487217944763673611072086410
+add:74032714774552791328773,-743497205088178750354447330,0:-743423172373404197563118557
+add:87529301918640055328531949,833538436278390237794218,0:88362840354918445566326167
+add:1134893809082711064119381650,835345147684508177653,0:1134894644427858748627559303
+add:-31083560926993891097159,-6452398931722666743775,0:-37535959858716557840934
+add:-494187214625328255573121,-433316980223823483512168,0:-927504194849151739085289
+add:390091842128606730764553615,7074602388637593045951,0:390098916730995368357599566
+add:14996900382322823366993947,155575881895992530106696,0:15152476264218815897100643
+add:256981179582607852185710064,960124902340809507842,0:256982139707510192995217906
+add:606337739205468757142681,34431354430278402333959617,0:35037692169483871091102298
+add:820809632172159862547216787,-4720961905066758420386939975,0:-3900152272894598557839723188
+add:33254605052680847119352168342,-42458830987973889052675953,0:33212146221692873230299492389
+add:1921909649929948589227,650119220435441127155469,0:652041130085371075744696
+add:36032029451816652021799919065,991948874284797761534223740,0:37023978326101449783334142805
+add:17509423061776720551599,561537726801446789470435708,0:561555236224508566190987307
+add:432435308982641288577,2579972583113864486802769,0:2580405018422847128091346
+add:5533541961594197125465685605,-5341574108952093824178502732,0:191967852642103301287182873
+add:29253784634468015940995,66868085704232379455942,0:96121870338700395396937
+add:5840836104812160960058403235,7254794739433874655672505,0:5848090899551594834714075740
+add:-986437670276537865472,-7254530387088660530975,0:-8240968057365198396447
+add:5936378029743262858909,5646361873410369432412,0:11582739903153632291321
+add:9309474173188449211471238,71622847426463521178458,0:9381097020614912732649696
+add:7395866525419579894252,6054211177368524226173,0:13450077702788104120425
+add:418754431137708178806,4581969489771092325887396,0:4582388244202230034066202
+add:427267592272679033207846,-1335344313633491261520271375,0:-1334917046041218582487063529
+add:633189097535167096544295,8453789539859471176551,0:641642887075026567720846
+add:5272319792173353341707102,391850306244460524900101084,0:397122626036633878241808186
+add:65825860390007189905183231257,931471994606023293002971,0:65826791862001795928476234228
+add:-176921811706712109725453309153,51104838980538411694813294,0:-176870706867731571313758495859
+add:76672856213061308993625,-29636580685314230414049903200,0:-29636504012458017352740909575
+add:674452402018255228121289278,67008875737626760336005690,0:741461277755881988457294968
+add:8541968162357356479415070453,-80758853802904365328480678550,0:-72216885640547008849065608097
+add:63670327126030699390525,647239453527002086941714828140,0:647239517197329212972414218665
+add:23827968287407694016891491732,5687322786770428586659139842628,0:5711150755057836280676031334360
+add:-56934084938034523477449,6919565043762938954102,0:-50014519894271584523347
+add:-812505002549423792769451177170,-468614098924848220068202,0:-812505471163522717617671245372
+add:67104776285167776356142,210831864020377644772737617440,0:210831931125153929940513973582
+add:5824940449668378359986211,-64180395015735031445899448907,0:-64174570075285363067539462696
+add:983409682982426617028179979,163969833630884765202234246,0:1147379516613311382230414225
+add:6210538420073191557435,-31054053390220409528967600423,0:-31054047179681989455776042988
+add:469516153781193420842788,1496796321887102771420,0:471012950103080523614208
+add:33979356884336447134582,91638986223658016683623403,0:91672965580542353130757985
+add:-32260848074913901984307362359,-2672012528351544629126598,0:-32263520087442253528936488957
+add:-8417639463674910047939048993449,80120124562574727803706174,0:-8417559343550347473211245287275
+add:775695772679005684017516,-3020790629041979619689982869,0:-3020014933269300614005965353
+add:975852258680635035690012,83046701463562128390834533268,0:83047677315820809025870223280
+add:8781861863169257626949530,28108177849164848399916019884,0:28116959711028017657542969414
+add:-283546689653578050474370627,2807772419117477871716212,0:-280738917234460572602654415
+add:9064465458779158311916969647780,9139819686732442186357751866469,0:18204285145511600498274721514249
+add:8840784216244154251572494530,60209012240418199299108682988151,0:60217853024634443453360255482681
+add:93815677427271630939740,22565184436411206947191022,0:22659000113838478578130762
+add:82452768800915418769333034684,31578884402602201747665,0:82452800379799821371534782349
+add:-861901423955324264599608669156,707341771563323556783706679,0:-861194082183760941042824962477
+add:-27282637700205513755848881,-503533726284787080825911,0:-27786171426490300836674792
+add:9289214479556466478450749,-7084113575511224733535260,0:2205100904045241744915489
+add:7017123255359412684282683,9046068160232439106672624,0:16063191415591851790955307
+add:251153423310728722653267854537,13062952884507685376788080,0:251166486263613230338644642617
+add:764970108101691141391204483,75231888234738846744202931914419,0:75232653204846948435344323118902
+add:70105736718198876906468336722477,2901679421786748849622789,0:70105739619878298693217186345266
+add:-277236273480908454984267,95439324803072858679031,0:-181796948677835596305236
+add:502022119894313002150611379003,-9553217783049460795811638,0:502012566676529952689815567365
+add:11235044224795237679279440,1598484681458068370777229,0:12833528906253306050056669
+add:6006446640030673298734990897916,3932713488343416708785849,0:6006450572744161642151699683765
+add:341984581388111664359529291419,253672139310821088560318393948503,0:254014123892209200224677923239922
+add:-16498480187763102357325186,16757917811449471275953805,0:259437623686368918628619
+add:4840293579085321724261731660,3299269918638542438501050537,0:8139563497723864162762782197
+add:862473464150144977188625432548718,390725508757117448688936595600,0:862864189658902094637314369144318
+add:-29573457775060793626221640796,-955486742447211372069984831882188,0:-955516315904986432863611053522984
+add:2764463542396067736191963723,33349178218458257881168366225076,0:33351942682000653948904558188799
+add:-564129660605536405453000618753,-996106182924479683180384656113614,0:-996670312585085219585837656732367
+add:8033177512692093044315018,-5381259101993480763476852450,0:-5373225924480788670432537432
+add:5694253375903848576996695765,3533498246256483823188758976,0:9227751622160332400185454741
+add:8049869890130722459017898,804302573811695296944485509,0:812352443701826019403503407
+add:-10782856862032822029370450127864,42183304229376991057468028,0:-10782814678728592652379392659836
+add:17953427150766889866624145,2672739534749259247084452652,0:2690692961900026136951076797
+add:382968112253902278556556412715286,507081979144423606544809226,0:382968619335881422980162957524512
+add:10675472848868311098607354530,921641093617028576338449657948,0:932316566465896887437057012478
+add:45793464872625930068611014771,895098402397211759149489341,0:46688563275023141827760504112
+add:-64085785899561813992220240078,-9948203496533963923520873499122871,0:-9948267582319863485334865719362949
+add:-36229685382343277189388317,3225709738074187586965400,0:-33003975644269089602422917
+add:62746144069561486173188762523567,41388696507099517847341965,0:62746185458257993272706609865532
+add:-607094025616255955599781697,-394867562893771866413821906158382,0:-394868169987797482669777505940079
+add:311268724839167391882108484,-82153236672690725073700221869998,0:-82152925403965885906308339761514
+add:-6835603694552724869687187061,-6023776712184941872282636664,0:-12859380406737666741969823725
+add:590358394226908898299218590543900,97734796237031665405902113169504,0:688093190463940563705120703713404
+add:776333186005384178281483204964,7251231826873456228321061,0:776340437237211051737711526025
+add:56669798612022472565446600865,-6052380717302970032083528141,0:50617417894719502533363072724
+add:6865898859037955833953890,178638282809455642352286,0:7044537141847411476306176
+add:5105205245055741189404951,893962641798284490158079805140673,0:893962646903489735213820994545624
+add:51316165533150178772523358024,-628375072698255873957923760051222,0:-628323756532722723779151236693198
+add:-87785238468437978540491414,89732479371379507893122052,0:1947240902941529352630638
+add:950318073610388416087529318775,402634948952512865122682232525,0:1352953022562901281210211551300
+add:-74572627412706083960240275,431357597384151709770753161,0:356784969971445625810512886
+add:9853321136670770651473838461495259,-83924966088311113186923377729455334,0:-74071644951640342535449539267960075
+add:650506501105456725689474061,287241011028313593932616830,0:937747512133770319622090891
+add:8132932977319394188366230514,-254188694333249311199490675,0:7878744282986144877166739839
+add:53320519909486593081198293,-74572156817884131125537363,0:-21251636908397538044339070
+add:-71547639554175546005091389360,-8140195760146170485331061575,0:-79687835314321716490422450935
+add:1327483718371853548235029647793617,54274563336128441076471770,0:1327483772646416884363470724265387
+add:1314001032447052278696101270,5415781672112089561501909844,0:6729782704559141840198011114
+add:47224974651866655046632261766,-76788661932424775106847892,0:47148185989934230271525413874
+add:792552859971310302936618155974,-487118690055436369708858828,0:792065741281254866566909297146
+add:8685351871091309367281665125018193,579376603481579380106078170606,0:8685931247694790946661771203188799
+add:-163023266227426934448401141075814,771214414019011070620622448527010,0:608191147791584136172221307451196
+add:681117685696813411930600559345469,53231124210443068505485918467568,0:734348809907256480436086477813037
+add:24728715686927944276955201,239070293086557045345907117925272,0:239070317815272732273851394880473
+add:764946100412930809834253766,-826649833775850040190545960601,0:-825884887675437109380711706835
+add:7808371142489773310260037786027,3411749587758291799422914115,0:7811782892077531602059460700142
+add:9487499431366548971411896854,617160736935684035360665548277255,0:617170224435115401909636960174109
+add:898285778199998316256066724,-446698135458890722737448919720207023,0:-446698134560604944537450603464140299
+add:679188320572774450433052775314,917321221948698358395231976875443,0:918000410269271132845665029650757
+add:-606026214573430597349972660492,-76705531041680588416688199753404,0:-77311557256254019014038172413896
+add:-2436189233935198704211905220849,37199591944878505577734886802440,0:34763402710943306873522981581591
+add:183575501000337709289570527203677231,136287320714071665681020786679234742,0:319862821714409374970591313882911973
+add:8590013432900716370831629971791,968114425708634187961093620824,0:9558127858609350558792723592615
+add:347137295949542839762519290637421643,102270809320390302037608013,0:347137296051813649082909592675029656
+add:8440473671167620611051468072483271,2296992478227176302012302522046,0:8442770663645847787353480375005317
+add:-5001669553432654706696400609,118900597514025159662837118047,0:113898927960592504956140717438
+add:-62002790901737049130724871593864,49447394219956225227401512811,0:-61953343507517092905497470081053
+add:86330941115371276117147730300459977,2177791532412716777679721138299658,0:88508732647783992894827451438759635
+add:946875123242781630779255037,47946896786026059202158912141346,0:47947843661149301983789691396383
+add:15336011900228959543893716525418719,388047623512726643322227444888,0:15336399947852472270537038752863607
+add:670173436182016731100418370242962831,4761361980899572407426780990276,0:670178197543997630672825797023953107
+add:16361593374554723036317118422757,959754436168611589130929042794416,0:976116029543166312167246161217173
+add:7037129211989227284511625030,-64039638650631553463764702068273727,0:-64039631613502341474537417556648697
+add:1669039732670522007255294145067558610,5040361069110054882215284201346,0:1669044773031591117310176360351759956
+add:1513189097366228884843540957233,759609367644509304958151974044245430,0:759610880833606671187036817585202663
+add:4895978309720518255173456993,-4110535948244791094217531557,0:785442361475727160955925436
+add:384532700809738729029745679298,-8056698430799793973614359358,0:376476002378938935056131319940
+add:-6388105307234743748019853948088503,4997968805095951937740134154116761,0:-1390136502138791810279719793971742
+add:975018502065461978578000363066,2247367452090296660167940131,0:977265869517552275238168303197
+add:78856706773590014370827059719,6542936662766324535583066287213231,0:6543015519473098125597437114272950
+add:6499328245520359687815445935758,158783937355037461719106652621,0:6658112182875397149534552588379
+add:-929274641312553715971084005591328,65105653662781997005394335939613534,0:64176379021469443289423251934022206
+add:456683941925696893937943252471,2047844563635520107891754533956927,0:2048301247577445804785692477209398
+add:2464091244058374057204697838093,548233532044481143606226540715,0:3012324776102855200810924378808
+add:-5782058275134622637686813910631,65732482103665178041908743240,0:-5716325793030957459644905167391
+add:9077295754335257518831628411071383,10924567149120537328883108077429125,0:20001862903455794847714736488500508
+add:4487883990386478000336258527165792,45494719991936774851608031864,0:4487929485106469937111110135197656
+add:-278061320607811538265660406605,6501055843301716146308769533884534700,0:6501055565240395538497231268224128095
+add:-98496078021467197122901029244,4781298078177162558520974148272,0:4682802000155695361398073119028
+add:-880487306232247995563348595589965390,1786978622507362310090719007228,0:-880485519253625488201038504870958162
+add:3564320220013161114076355137453361,3174192776315040318048578353150392,0:6738512996328201432124933490603753
+add:-17938701536608326039598376013574,6544909780634291186211124961480,0:-11393791755974034853387251052094
+add:477266862227893391363944723416214,75215386788899217183549861936487009,0:75692653651127110574913806659903223
+add:882168805504704249200404316267,397370099670749831094907204966440642,0:397370981839555335799156405370756909
+add:-5168732252762846279707583890106130,68924007866194419843572553425738646075,0:68918839133941656997292845841848539945
+add:13976907500017232058982276795936,62903564794422037566078537019953323966,0:62903578771329537583310596002230119902
+add:-723679233282687539426040870751505916,9944693303602413488927619210482961855,0:9221014070319725949501578339731455939
+add:19723375859398094253269538838784,4448602254481220443835883935,0:19727824461652575473713374722719
+add:435487568164299717641211729895291,30263286963580437915152248885,0:435517831451263298079126882144176
+add:821847194805020065585371899303,-56701356407219809621351993974800366087,0:-56701355585372614816331928389428466784
+add:906521314887358356519304370098899949,575586805546053112223797224287895841,0:1482108120433411468743101594386795790
+add:19861035347913984137892042959473300,9203641819631417294115804880148466,0:29064677167545401432007847839621766
+add:35489920465547911895345631311031287850,61963387682089469403889443775403001937,0:97453308147637381299235075086434289787
+add:711218176456565648939214863247002012,72467446712664186983159145098756557673,0:73178664889120752632098359962003559685
+add:453411180015845016525527797241902720,656188106785767735033442856252,0:453411836203951802293262830684758972
+add:3497788563739847797768025384670848,517400530521523434205853846962853,0:4015189094261371231973879231633701
+add:4155970281036560633085895732986331436,58654056236489765208332410680287635851,0:62810026517526325841418306413273967287
+add:-43796787638734252111746756631324509,15458635191255506747952752911563140015,0:15414838403616772495841006154931815506
+add:886478982594616386399515638094,791374254805498814484495931823029294,0:791375141284481409100882331338667388
+add:5420205765532053736853148082964602405,80894300860364935354122327418793,0:5420286659832914101788502205292021198
+add:6409540010109365565390431678312058,3761260998235788651953577451547946396,0:3767670538245898017518967883226258454
+add:379235320792985651222455993704383,39768702701817374238094976575577292677,0:39769081937138167223746199031570997060
+add:9741457286836201279089678473713551193,-9789501315839617552822514677465645799,0:-48044029003416273732836203752094606
+add:679351661380711616762980509555487422,5244958563307694732934184938012411110,0:5924310224688406349697165447567898532
+add:230190844936986997441295775275022034,-185909046836091915997263172330,0:230190659027940161349379778011849704
+add:3156689741537889100921303548469,547814421078639373357367180225132810,0:547817577768380911246468101528681279
+add:-62219007651568146709531118440682893089,-9434399409814593713428350812443801646786,0:-9496618417466161860137881930884484539875
+add:184174790691390536467483515964213892835,2941013349035333556270582770860221254,0:187115804040425870023754098735074114089
+add:51019963839123593098882577978755,1116589028775897480619143898066573,0:1167608992615021073718026476045328
+add:3161373461260957201319457188462572095,295012249650450244682353395660589081695,0:298173623111711201883672852849051653790
+add:255897713184471452642500281024049492424,5260363568754655790521228400406175726257,0:5516261281939127243163728681430225218681
+add:606315001345297293855907552090677,58643218561030036941054387859353998671,0:58643824876031382238348243766906089348
+add:7728401578087472448175772296881,2479932497409122334635317410130037,0:2487660898987209807083493182426918
+add:83912594421874997853645370567167,2586838887610120476863229517446,0:86499433309485118330508600084613
+add:31162728147482517541527422834730838,49272727945051817211201248857958834546,0:49303890673199299728742776280793565384
+add:7732493494017159067700264618259826225579,9076083109776747375814790855266491489,0:7741569577126935815076079409115092717068
+add:379595189057102692932728847043,78412390558490705293355381777932556,0:78412770153679762396048314506779599
+add:-80073436239675271494315527682263,50945580964846901715535623599314335,0:50865507528607226444041308071632072
+add:7287524755764369986358866728286492322771,-3434322398801915039360350216639455,0:7287521321441971184443827367936275683316
+add:5350901001113421691951885827606408,-52813130876478631706333437707256,0:5298087870236943060245552389899152
+add:-93922484436479929644974748134570042227,-18558847074134835688687179622179299456381,0:-18652769558571315618332154370313869498608
+add:6348261214416753548599493164564265,70959376021447769657800151242308058385,0:70965724282662186411348750735472622650
+add:82136982657867459725041723297845260,-4942386549903864832898696177047927,0:77194596107963594892143027120797333
+add:-637766414636467351411944290845261564150,3139008925795329253435316311633609560,0:-634627405710672022158508974533627954590
+add:7876071803789707417919831488411894460,-787451981013463104190187704083407112807,0:-779575909209673396772267872594995218347
+add:-6975874728401593555157382880902999590154,-5386051406453469842388696470942392,0:-6975880114453000008627225269599470532546
+add:263948302163372204339026784768887,-709208282236872695042395059556627390964,0:-709208018288570531670190720529842622077
+add:966883950465093993601498906417362169986,52803750507502030833811587668282000984096,0:53770634457967124827413086574699363154082
+add:758872502722448271767968272715108,924042905049846617145386931355586,0:1682915407772294888913355204070694
+add:8817515445646069320245128327534016,33540272364420722162627441428305029,0:42357787810066791482872569755839045
+add:7452847844446973070588448979886483,13672013320832031648561092777470,0:7466519857767805102237010072663953
+add:504207812168642571415434369106684,3112968037276454309667407723426693283,0:3113472245088622952238823157795799967
+add:79464727253769579340699162892454647,-3445737782055492967953863370896564268,0:-3366273054801723388613164208004109621
+add:27111645259145369800704958812916,67484517522542733254003181309322379,0:67511629167801878623803886268135295
+add:7962416479715287030323333279385706598,88254203468610078692514314020591,0:7962504733918755640402025793699727189
+add:39693287540792352830897524921810,-21314277451673979084086774678038501015,0:-21314237758386438291733943780513579205
+add:198918483468716913242822977257934441,-7728701263590045875855983145711563105524,0:-7728502345106577158942740322734305171083
+add:23489078790493512251447591514734933644032,5044415728397642226681534366309793929319,0:28533494518891154478129125881044727573351
+add:754857260375845266559134913354911,-107973684581827631710281010202379896,0:-107218827321451786443721875289024985
+add:-315532494063826496737110988346555619786454,501129324903842341869098009302271432013604,0:185596830840015845131987020955715812227150
+add:92594285071838024355958905365280662316,2187702621551700872791380132896499,0:92596472774459576056831696745413558815
+add:724288898592047956308741845059503937300137,57590734518283929259390943990555930310,0:724346489326566240238001236003494493230447
+add:2739606628137004623864591349778009,110573647075582659906006861365833637275224,0:110573649815189288043011485230424987053233
+add:-14276517096318036496680563063254770722,947355542566791575863860389736548529916,0:933079025470473539367179826673293759194
+add:2231429252956485218579039663297923538099,-513782743328474567896135012801752,0:2231428739173741890104471767162910736347
+add:-849056192493090160065711552591498902148,570178803220182344540821571410117099230685,0:569329747027689254380755859857525600328537
+add:71805397382388312493912292806954799278,80784372590768053283785033890385062,0:71886181754979080547196077840845184340
+add:88350358965992565491787153066170941,21234283677146108616947794414929963,0:109584642643138674108734947481100904
+add:715269430237566589970907864930513314,8865443182554480537011356202533506,0:724134873420121070507919221133046820
+add:1477643303333104073865392660271903836,-367890944067864281459059958232249,0:1477275412389036209583933600313671587
+add:52217735662219170731154120388630563,-294933344350299941699482081737942598484292,0:-294933292132564279480311350583822209853729
+add:61380058552546011441493813017768437169,2900762818425899718317517551345155090272,0:2962142876978445729759011364362923527441
+add:-277784196782412339397810200390714846163997,57298552978631155824394514405745061,0:-277784139483859360766654375996200440418936
+add:-240135707306520087768252873800163694648274,96353334913929088034747034183526033,0:-240135610953185173839164839053129511122241
+add:5682589714457375725889091714569040,1460653301509827608879103745623307421551826,0:1460653307192417323336479471512399136120866
+add:19638363083802509640291691621245056147864,4211029423275507408378664959653089,0:19638367294831932915799099999910015800953
+add:83194800067935752402123668615503029739,2541880714569630662018719665186119518080,0:2625075514637566414420843333801622547819
+add:5939482394780085376784755590138737708464,514468562230819790647711281175956014526779,0:520408044625599876024496036766094752235243
+add:90204831870247776142696176553164845,448604014584373050945946043173569,0:90653435884832149193642122596338414
+add:-28255771387063942974030915755487615886801,211023308891994717221529619029320336933917,0:182767537504930774247498703273832721047116
+add:757105867421757109115447689795304050728,9406978659060898637265625690923719984,0:766512846080818007752713315486227770712
+add:71046269267930793233803101419359460555523,1066119341117097582611928205374175134353,0:72112388609047890816415029624733635689876
+add:860460409596026218232712913311397528,-386403674339732916173292388406974737,0:474056735256293302059420524904422791
+add:51587104345453069942306514960268280925,7174136164833181606646937608176553464,0:58761240510286251548953452568444834389
+add:646810491958543131766676874643214951350,499259004231242695310290078066810898630,0:1146069496189785827076966952710025849980
+add:855002490358777508650454091557987435,509862775866892935549218038452333306616836,0:509863630869383294326726688906424864604271
+add:106603467132772647500729395434502230590051,-16368407452060510330634069459161959,0:106603450764365195440219064800432771428092
+add:516036973938460113725699447078888101,19774284176043121487876685246833573074044,0:19774800213017059947990410946280651962145
+add:952655868300967849134836490408672046390,26424621652588918937927182288854430428873,0:27377277520889886787062018779263102475263
+add:612516318964652612641515207511494523,9669431975435363339548442466828737776,0:10281948294400015952189957674340232299
+add:312358445059554864178031833622326259,3063646351543973236788253379318869856029,0:3063958709989032791652431411152492182288
+add:21961875002920796735366447872318305568,12735184963536281218871061660462862352679,0:12757146838539202015606428108335180658247
+add:-76958222715483937218117123118097824686,-94131755294315965491758099750033439180279,0:-94208713517031449428976216873151537004965
+add:9941064428919490001398667535954444,6153135198163214971541929596372799080,0:6163076262592134461543328263908753524
+add:3831883399874967153073325466609079148,532933850230226797587412822078065345376,0:536765733630101764740486147544674424524
+add:-50281475345524432188122843117426347,-9803783578868553758867748377042263121,0:-9854065054214078191055871220159689468
+add:834761861391838835749698262829275672420,462418116078562931546840078329636278799243,0:463252877939954770382589776592465554471663
+add:225390444541945757230864160941425071753376,-53966286270122861338860835026614792455718558,0:-53740895825580915581629970865673367383965182
+add:58072467659883242067246942042391055912061,6014910057066062653667358884004188529013385,0:6072982524725945895734605826046579584925446
+add:7983230467245365113789955920296234304,82831178283927503584223331110953816965231,0:82839161514394748949337121066874113199535
+add:-45132067499699119195319118239527377040857087,55414967908829898692681772863326254754,0:-45132012084731210365420425557754513714602333
+add:223736085581687840223151741351715016762,-234872704339511023869747996243506715388251819,0:-234872480603425442181907773091765363673235057
+add:28507472864431142856885789471402326707231,612001776806865658512116926003228872602978,0:640509249671296801369002715474631199310209
+add:181745193154135636884034106408465870431,1377247390938535372211751085008319196,0:183122440545074172256245857493474189627
+add:-4269390869184529398543606143750267674905,7096165581548063546128304224326254363,0:-4262294703602981334997477839525941420542
+add:679756117856607689911810374667015768583465863,6873132770775601366558132717863835975030609,0:686629250627383291278368507384879604558496472
+add:68811928716841819374127395790718594105543,-39375978475154900824641971995674964440336,0:29435950241686918549485423795043629665207
+add:-544206255007274743273093190267769706102594,-2633960527489961764864800511887586286863,0:-546840215534764705037957990779657292389457
+add:2104363621112481255876148263045164671673,3455315958528890329983695074392024415,0:2107818937071010146206131958119556696088
+add:34329184450930780849723051315762611673355499,-7104639609931302899460488253298995450,0:34329177346291170918420151855274358374360049
+add:43634150371577068764686894937264376668,-11959554165007875996906989926905112,0:43622190817412060888689987947337471556
+add:5024013516582802239298322665096973189555767,2088517329172254514727438561881167273,0:5024015605100131411552837392535535070723040
+add:566562417680186012953839263884602744810,7199277629017396422779479852344452527,0:573761695309203409376618743736947197337
+add:638955594778655267039016164163448484433233,14647767846572475359605733710956434972995,0:653603362625227742398621897874404919406228
+add:892892418549132886737629998256603006,-42420003645924668249063343987514804160205,0:-42419110753506119116176606357516547557199
+add:-345020858381297450936373802134725158851,-859477477801413864204931138561051434211277354,0:-859477822822272245502382074934853568936436205
+add:91737862563680387690935307847429742390,-6404695075658291424340413128158568521902,0:-6312957213094611036649477820311138779512
+add:-5423452022691148500208482455973347475028667,920708388791651749460962831411085083383900,0:-4502743633899496750747519624562262391644767
+add:8150633265487263016893827297406214487098531421,693305116681597826454527918912884500199574,0:8151326570603944614720281825325127371598730995
+add:-533542099871802731282960535234702413039265823,723089355050948526591740235214878409611,0:-533541376782447680334433943494467198160856212
+add:-87660042403521352943774533787359048954462,23205508268059470425857002842150306009,0:-87636836895253293473348676784516898648453
+add:611377119302093745013583546645763276869536489,-24306437719460476886753515868367600814,0:611377094995656025553106659892247408501935675
+add:4077104707730979108276738109711194036126856,11060272475917992334991062931569856434791792,0:15137377183648971443267801041281050470918648
+add:-7573466809324629854537923630574679416,47863519134315568229699768981973881143764,0:47855945667506243599845231058343306464348
+add:-799102320184378863119971307727324658691,-223055933928835873102241901074720286440913,0:-223855036249020251965361872382447611099604
+add:-892554445176156160154245376649692459,46912675277606111189784511368222685137077,0:46911782723160935033624357122846035444618
+add:3026665879602974291587291059690414946715394131,369940715997138180165001378043470020585,0:3026666249543690288725471224691792990185414716
+add:884243222337379604041632732738665534,784805891181951699244456801706510227963,0:785690134404289078848498434439248893497
+add:6161631921601317978027999219270688283511,7540058790546974071130804326383997513568,0:13701690712148292049158803545654685797079
+add:6921119983791225541212197181924239508872679243,1418358920528247154891120491105704894,0:6921119985209584461740444336815359999978384137
+add:354562064037463731505174515681520375545196955,298046963066931310381553348264288949421865,0:354860111000530662815556069029784664494618820
+add:9118288949631130571307463256861936097477907856,811804191882243735414480051639019704082019,0:9119100753823012815042877736913575117181989875
+add:12323504604096011377318065801800362182031140,8419570117283520873564639019491515440808,0:12331924174213294898191630440819853697471948
+add:40282114774095347321311816032119808177051,9392020059227568760693643864091980296962225,0:9432302174001664108014955680124100105139276
+add:293824315258364662435205611375731221153259453,69936479932599496690415175383522476194836,0:293894251738297261931896026551114743629454289
+add:744437789281951089483978067750841678986225684,6215758092668446071515969246800386681388042824,0:6960195881950397160999947314551228360374268508
+add:7555232352218578953388426959061233639843,-338121179318504388356512546357851050384,0:7217111172900074565031914412703382589459
+add:800786123647331529935991527240766809126924910,8084356801391362127584834876216208164918895003,0:8885142925038693657520826403456974974045819913
+add:10929663989202222972072257796740362711,2014764235099935818353734632287788031375,0:2025693899089138041325806890084528394086
+add:-2304110026472565466976559294239050373788594441,95118068539305153789040528913479244781984827244,0:92813958512832588322063969619240194408196232803
+add:92970515686777203278075298872457538269139530036,804034060487391950939245065492783268785530482,0:93774549747264595229014543937950321537925060518
+add:306074026230996345745669348355571285049,3351194990528556941059979503062943080591380,0:3351501064554787937405725172411298651876429
+add:-1801109034823531811485037478828625593344102,-6788371291545724511455362562828939498570517171,0:-6790172400580548043266847600307768124163861273
+add:9906924561298959226824383647599274129900,46505636651150809672589883942989253631123,0:56412561212449768899414267590588527761023
+add:-532368057068285718080209540340159606385179953,78439393969883180556469736987530860427701949507,0:77907025912814894838389527447190700821316769554
+add:1457791796516706098588078441562863530737,528666216820331549882926030036885918841998977,0:528667674612128066589024618115327481705529714
+add:47587357391699836981813632674062733663847158658,54288315220694727806529289306655335607545661164,0:101875672612394564788342921980718069271392819822
+add:2441679111284579236791979326321319109424,612350380810923282381362835527975935997871963997,0:612350383252602393665942072319955262319191073421
+add:-2297182432664233691613076128334534556985403,311366264931073208179039511983011701314592621,0:309069082498408974487426435854677166757607218
+add:812480504283331455325441717008120800963079831,821134520243619144054746507506987541221,0:812481325417851698944585771754628307950621052
+add:292567021381222422856988422202010933008593,322995618653906543956044582847376714984579,0:615562640035128966813033005049387647993172
+add:331282545048545544767134884053522581147,5766236410336035826171861644077140841513734,0:5766567692881084371716628778961194364094881
+add:40252183714117806066401858275236076131151,-72745188677928192885457824316277110692234611263,0:-72745148425744478767651757914418835456158480112
+add:46457019922262916743996775404831914092936856027,6315416110239465669051340102484371408912908926,0:52772436032502382413048115507316285501849764953
+add:5466283595093360991616260159696927423349371,9668800763746329080816551076148727500025,0:5475952395857107320697076710773076150849396
+add:19669588483473218340912326281765015036658,6428951178389068517174516071634753843412004200,0:6428970847977551990392856983961035608427040858
+add:-81431110841967281357837413471759747002352,59367885431507523151090269106192098957070,0:-22063225410459758206747144365567648045282
+add:793131141187380089412901409250143061286,49410607246090035402603177567556059311746,0:50203738387277415492016078976806202373032
+add:494932333118909260725671042445153518250291,4075181671023511749962590099189964240222,0:499007514789932772475633632544343482490513
+add:-547362235549081743238187402052314301548,927175407052843450557369599383180954617147573544,0:927175406505481215008287856144993552564833271996
+add:-272998916785610528588015856567128410368677679830,602403911895041304594532488687738325572579146,0:-272396512873715487283421324078440672043105100684
+add:8177918913965812142072794805257040419006,838843558448368858294329869233866828152454,0:847021477362334670436402664039123868571460
+add:798568364983632999724049529535252351299484436,1636919605401113337112219636142485235118757683,0:2435487970384746336836269165677737586418242119
+add:4076227872389818674764507178478356204607924906,4858120806733600624675339938519375739087835150531,0:4862197034605990443350104445697854095292443075437
+add:-58122662125434671011329360835993435253491,73132097808279681951175475035160758741946537,0:73073975146154247280164145674324765306693046
+add:733775087409818416274588823315348054416,97371071518767684325114545482209171317320411,0:97371805293855094143530820071032486665374827
+add:-113771533173503933275852574248237858610647533103,-12104130628645378506655176004172910468799298190,0:-125875663802149311782507750252410769079446831293
+add:19142539887689220939206017561014662533486,24783822476272570995796547534197064407548413574,0:24783841618812458685017486740214625422210947060
+add:439837175373522535394537896444136762539607278172,788273119543040327881133870675846687731,0:439837176161795654937578224325270633215453965903
+add:-3980465773532478253498557952430511370686544744,-22356254466454106659993425179664976374433,0:-3980488129786944707605217945855691035662919177
+add:9650385443349312084379714880369460479489737296,6396197664786865714161963852384918829120808565316,0:6405848050230215026246343567265288289600298302612
+add:894227798078569418728694383878564021992203400,1182303697127187181785402622190820894529084,0:895410101775696605910479786500754842886732484
+add:-4968456861598503731688245766554869039074227065751,926904708071249932339986591447176660865869610,0:-4967529956890432481755905779963421862413361196141
+add:5744863136870997246649436419851337184337852,528486352801627277403411298307704227595528990,0:534231215938498274650060734727555564779866842
+add:5651588707112308839251664128448753689228260350068,984180076053671456754725942868445032681314220925,0:6635768783165980296006390071317198721909574570993
+add:5999152998115672648494375904218236573991007462,-15627181548166981556755315951112371297310,0:5999137370934124481512819148902285461619710152
+add:-37220135577661031799960043003324908060140177399,9970705541292214994356839103435039397499,0:-37220125606955490507745048646485804625100779900
+add:81418507001304873846314147833079242440551,32906438533170379081041165307454763260134,0:114324945534475252927355313140534005700685
+add:-93195022996360129134236780916054647692069,5347394971811231651758505656470675163708448894939,0:5347394878616208655398376522233894247653801202870
+add:605079543296413508307097975102518892738230991,-102491396779053720487374578863736177412235,0:604977051899634454586610600523655156560818756
+add:-110305166634594825509078326414660546828041104,253473010673771926873011949379610506924336779901,0:253362705507137332047502871053195846377508738797
+add:21931199654933572392043984306892711921146445570,2907527660451297402481924885414001739485555606360,0:2929458860106230974873968869720894451406702051930
+add:-81846516530505341747573039394704262141139282278,119414978059342373259474020371815492807938,0:-81846397115527282405199779920683890325646474340
+add:-7594376981942593652353502069500431608125593919,51500020414584784205697427672128650432402168,0:-7542876961528008868147804641828302957693191751
+add:136465982599750396225253353955535355661156027759,5386715282857389783661176620617283963576556199,0:141852697882607786008914530576152639624732583958
+add:960930288983993235515929578403745857227039650174,201668060600182361443839360602375118505473666,0:961131957044593417877373417764348232345545123840
+add:927399705750647791187277745876572384967669031,-673794088022646279670235088913126760332168167,0:253605617728001511517042656963445624635500864
+add:7745147274519362522020786496011332545870526042,19019754982701808405498074108182013455237249,0:7764167029502064330426284570119514559325763291
+add:-842589681484827364133898448093132213715096,66373404917619583079354798332238441802307622071,0:66372562327938098251990664433790348670093906975
+add:9158459055331725756564214096327568283821833271587,-7389288408299737295395199016916294076133587,0:9158451666043317456826918701128551367527757138000
+add:4944028992893254151938145908432799220246101,-436673227225833465221751159174587350069599,0:4507355765667420686716394749258211870176502
+add:85957500826134796993374704843873074932736702843,-4737398263551254522274364145346551611616824,0:85952763427871245738852430479727728381125086019
+add:26693268270411692795540232504436733736819493,4761693453843664104004802004918903884493929,0:31454961724255356899545034509355637621313422
+add:597280400846352101193980095689737150106994666,774020411370064574149407278425457714972829559066577,0:774021008650465420501508472405553404709979666061243
+add:626155559446956944212578906031124683128572,190636244537054762721029791162041488568193458261,0:190636870692614209677974003740947519692876586833
+add:-51338951497767599237983853763132687032134115219,68079208415865834874846470899944876794467826,0:-51270872289351733403109007292232742155339647393
+add:9281945169594691475182670852780411412286110132,4120131010237928269938977002467007362193300912745,0:4129412955407522961414159673319787773605587022877
+add:144444680217834068698978156521073014198828507368215,23691353332382600912666065659579140865069030,0:144444703909187401081579069187138673777969372437245
+add:878907846660280522460467125993162483781740948299,5727027980609935208356763794713340938325393172,0:884634874640890457668823889787875824720066341471
+add:3863121890985058037468197591726440896929526748,3838808795310625556439132045393084001945658165756,0:3842671917201610614476600242984810442842587692504
+add:-43851511659924905732938464166653593999167629,374198438005814389346971540424050513685984,0:-43477313221919091343591492626229543485481645
+add:22107098238291185428187231696045952139458647,-1094439233801215665665730295403509442215518,0:21012659004489969762521501400642442697243129
+add:-94370080435346767326735355398641314752346677702547,900650711826114107815166281187719185619458093712865,0:806280631390767340488430925789077870867111416010318
+add:70130581982287853776073835767285560754385359048506,-532362174374052657999220752357898449008895,0:70130581449925679402021177768064808396486910039611
+add:368905471254498539128761742427996559644271835585,271908988467870372234177722038239359722817938904087,0:272277893939124870773306483780667356282462210739672
+add:1665461612154764119629895499464633250637874,19134987808509688322855052440395621824879039321919,0:19134989473971300477619172070291121289512289959793
+add:-70082361212896736227109455495902573787866185574,63015365869689393850987592591316804653013263,0:-70019345847027046833258467903311256983213172311
+add:-25078358419757381745462531594488486741766002505050,6161145995589782600946047354747671861460817403,0:-25072197273761791962861585547133739069904541687647
+add:666708317711411288619476006374466033771205130,781945629304382958374150588014142227194285896984780,0:781946296012700669785439207490148601660319668189910
+add:-792815175132398652587456324873505574700585654,21786271555833620127501336636667271735069671301676,0:21785478740658487728848749180342398229494970716022
+add:8661916666639431619374961032583120863479342934873714,6870583561131081729711383493275798626139956,0:8661916673510015180506042762294504356755141561013670
+add:681924022906622856896996499665629155099035690,-1004571345497457234878302490699035957625595966418,0:-1003889421474550612021405494199370328470496930728
+add:60230268321104247199768325351860140731648751905,-4983405216089518546950014876276513305697847179,0:55246863105014728652818310475583627425950904726
+add:2918902473029364921844125458709973674625996417335,-2210652159145259648205005443331558229225741752,0:2916691820870219662195920453266642116396770675583
+add:6803277105307410414680931382137753681870063418,-776208865523397828037840355299954380619094803,0:6027068239784012586643091026837799301250968615
+add:-25003719704019868385876356333662873293268630766666,9372027355506508855692368294638946856664530455245,0:-15631692348513359530183988039023926436604100311421
+add:8627504130949202764401824904787234047442744,-5835544012798417318076520693682832657982999792109,0:-5835535385294286368873756291857927870748952349365
+add:8260090424580577318194392652868871801866634,36338984070638282375666743416237170513165272265,0:36347244161062862952984937808890039384967138899
+add:-2567885127747973574087086225772899311267410108214,5508239791588330680899787231378688448833646,0:-2567879619508181985756405325985667932578961274568
+add:48666808545649708354733246480044529199921866,13005891966314816519574625124428351433895270842,0:13054558774860466227929358370908395963095192708
+add:8389420702531793876639200928278611121728614873,72321325080169680993090249289587185602319073066286,0:72329714500872212786966888490515464213440801681159
+add:65036752240714453689171239051023570841745399448,28805290908818160518681925899689595311583946916,0:93842043149532614207853164950713166153329346364
+add:8528322759745304970664183606826265148753341767,5634304035479369557540127200029887348029829,0:8533957063780784340221723734026295036101371596
+add:6995036754431505162769439569653358554669540097656670,2722846684750068252266709009646270633127873447,0:6995039477278189912837691836362368200940173225530117
+add:4614880368095698349182582007399802736977295545255,11355964798518264828005986699392784240730268,0:4614891724060496867447410013386502129761536275523
+add:9765319509166162487395146409291488887181479800078357,56035915231430273323816838439018348917266581235751,0:9821355424397592760718963247730507236098746381314108
+add:-1138347106436233679061275009102135358639634924718224,46159563323218296802052742149061303164800629266863,0:-1092187543113015382259222266953074055474834295451361
+add:745228794745562968451209928390566434920348152,53527148122790166734511060330707072382963660028206,0:53527893351584912297479511540635462949398580376358
+add:-588301306658858069453782008551175393534786100,8712212161075124266879455562405482117241102217433446,0:8712211572773817608021386108623473566065708682647346
+add:46121030188079872648021130753538085801476800798517,-39019521584656792767403515534426019969693675753732245,0:-38973400554468712894755494403672481883892198952933728
+add:29619919729277459435885608963790118777332486981,-52524378650492377071821593603303584552489704670,0:-22904458921214917635935984639513465775157217689
+add:98181101791503545628614157059694144214397756,1723001921171301726556866325501042586856901467,0:1821183022962805272185480482560736731071299223
+add:5153029430313427472772415517579200893432348228326467,-1040085720098897906942859081192037450000456492060,0:5151989344593328574865472658498008855982347771834407
+add:55004581470141018296263456318558804429110712,19377908184204050840224411596809648305527908013156,0:19377963188785520981242707860265966864332337123868
+add:1072136046766180220620214293788952197166650,-213267489440701336454712703551017176911643371,0:-212195353393935156234092489257228224714476721
+add:85287699588051450238950600525312209592474610983306876,517154134935551400902310308900510987679476894019343,0:85804853722987001639852910834212720580154087877326219
+add:3350463350046534274745259894989563302676256855267,99327287030974528755979749538531148523479743562098,0:102677750381021063030725009433520711826156000417365
+add:36843614050676239637380078007323912504843199635073,28079537606053733508869174435690016524431336472901360,0:28116381220104409748506554513697340436936179672536433
+add:626594076527207859168744152946567653623622813350,289789726716786201909677270796703151236725201042779,0:290416320793313409768846014949649718890348823856129
+add:93605170968295281833171644687712829154123033934,2543628559470582895074562108146894775567883682,0:96148799527765864728246206795859723929690917616
+add:2052998161971266479740877443236081325994829866117101,3539290099275844711415812545767592527236681167098,0:2056537452070542324452293255781848918522066547284199
+add:5417604415616705991065803076609145766510431919,1353196489306588682358657032784715674378273388275,0:1358614093722205388349722835861324820144783820194
+add:272499404407187599426080423265627888541662659954,1327146833710771382036670351680559306817615656153,0:1599646238117958981462750774946187195359278316107
+add:-699651119896474314900584685497791738111506192,-69672515802110594977623027100779022212514726206040720,0:-69672516501761714874097342001363707710306464317546912
+add:712509548377940176185869895492904750887086413,56176731066398404861602715769426642572627041935026808,0:56176731778907953239542891955296538065531792822113221
+add:7143592025239088040306437550950750880457741265799,79269337742179821463637514051770454228086789838,0:7222861362981267861770075065002521334685828055637
+add:85784228041270748531044763418005303861773086316768,479955707155465525495908770086376625866496445325,0:86264183748426214056540672188091680487639582762093
+add:8633607053652219081012560844815432350350653816,-27730558580923841131198160035073520602640809937568,0:-27721924973870188912117147474228705170290459283752
+add:86298209842676209783265202243860839968224984059,-14653841574444115669146420066088654283351629895,0:71644368268232094114118782177772185684873354164
+add:625971576355871986206876583141040580270991368399,1591656865887426266688630862274904247349299714291874,0:1592282837463782138674837738858045287929570705660273
+add:8094263949925391895110456153285525932274467906035,8828498248880817055759174086148047904385900536902829,0:8836592512830742447654284542301333430318175004808864
+add:82237003877466505256157158841093493965062954411803144,91547031285735648783322726839616156920221022695429,0:82328550908752240904940481567933110121983175434498573
+add:9037532307369285758380237914390337810953906576116947965,-2080798311402701935902060326222031250344403292352,0:9037530226570974355678302012330011588922656231713655613
+add:50808222368724781507631572923387538639418605384327,2105468684081970883293309501603862482752205466,0:50810327837408863478514866232889142501901357589793
+add:614695843041957442246110545422122115064228337420826,4173998806904671505997631134479640680904576896439869,0:4788694649946628948243741679901762795968805233860695
+add:1064820342923287213463623720132244635622458829981525933,-1475875068811641600756631104502187851477440325297,0:1064818867048218401822022963501140133434607352541200636
+add:10157417423684726201410937603631975742627908169404,7838021453657103572002203182188244231243955079181707,0:7848178871080788298203614119791876206986582987351111
+add:37159508474657925925316976495629749227380940275864026,1962232433094621175896408173610784235423834821218,0:37161470707091020546492872903803360011616364110685244
+add:90799712490109616993113540668118622608569993361558,6473804353031813836768680654473327017068712061,0:90806186294462648806950309348773095935587062073619
+add:8558267182043409385092694859321311049409595764196,-43855190592575763264725873745536703978426263630380326,0:-43846632325393719855340781050677382667376854034616130
+add:8862769280704424674067234121859535881853068385985015416,3128430671333004136364095742988724990646419068,0:8862769283832855345400238258223631624841793376631434484
+add:378208270494674096813484033949342736267924012919568644,1144519071359286777414333143799173474364390418550794089,0:1522727341853960874227817177748516210632314431470362733
+add:-6579674113733012078327119937146015198044119737,-3734798125808966311088975985514063521776488722551148716,0:-3734798132388640424821988063841183458922503920595268453
+add:2960711245597899800032622343542149905437203154361936820,499809669955373495757639913113238315793000498691,0:2960711745407569755406118101182063018675518947362435511
+add:25821180677407112730506355642526955953730655437874901,220829252352340433327709631917215008695896671223582832,0:246650433029747546058215987559741964649627326661457733
+add:4105370173243521757766753923407753132483088841573916094,-5859495212721416724385219267491089611350684535452912,0:4099510678030800341042368704140262042871738157038463182
+add:5163869845851925892481681950908088101067549260179722231,4902983733534376916005427640372005698206345908473,0:5163874748835659426858597956335728473073247466525630704
+add:8939484182366010380381840561998154807909027117547207,-5791890006411319753232065830229236658118816108248,0:8933692292359599060628608496167925571250908301438959
+add:701510238238697450550654709447628676278557462178180,78660480845787107751570298546903383688737254959620217,0:79361991084025805202120953256351012365015812421798397
+add:341765117982065537129466755082499645994576852735,692520757209429295113115688021272259739538890867946,0:692862522327411360650245154776354759385533467720681
+add:-4895783578731845919967474094433303503864596778179935462,-8364042240998784278401769408809806799945229261776648,0:-4904147620972844704245875863842113310664542007441712110
+add:14238409419953914857984647802372979092302755219238310,6371574430505907367749465495358382099864633219840163,0:20609983850459822225734113297731361192167388439078473
+add:819145829642159547700859583648855896951539123580831,361506805586624128214007976586393021628930076090363940,0:362325951416266287761708836170041877525881615213944771
+add:1877636417667934516336941709697932194927216313530003266,3110415340804941864303432168123355167418335131760417702,0:4988051758472876380640373877821287362345551445290420968
+add:7672066575928913691752679142441515012172611183558245718,371851147532253430639711983046051123330781047618685,0:7672438427076445945183318854424561063295941964605864403
+add:95512312207249366298896076611182343964081859466,-97124870343231010626703079092608549509450053912,0:-1612558135981644327807002481426205545368194446
+add:-5806422968663023549900750663638875296207673594658363702,90516128085557874002777142664275230359248090059,0:-5806422878146895464342876660861732631932443235410273643
+add:-1527157822675106197481254438080912892158041984128532354,725563661143607175528703551625121106037288811283,0:-1527157097111445053874078909377361267036935946839721071
+add:-42827691392859896582177202183556705231114395686423,45128827735882217281406911116739020388874185279388551,0:45086000044489357384824733914555463683643070883702128
+add:46043838505488963276375641613705710661972295575962167,28467164488355628577488094369127349235531802379663224,0:74511002993844591853863735982833059897504097955625391
+add:-38951950148008162832054098288607961881664530927148,8335283480464728668637429037127284541356281150509317,0:8296331530316720505805374938838676579474616619582169
+add:622249316814675692027128671081941223678839381254582193,7261720220517111354905851547139726385938166469124332501,0:7883969537331787046932980218221667609617005850378914694
+add:3674907036214085782411042221746956364413334313796,1921363713435768167432104932165249283578036436190717,0:1925038620471982253214515974386996239942449770504513
+add:7188482591275581867180190647387989483887113319876542897,6602680320762178166851882906088739930967430231717025380,0:13791162912037760034032073553476729414854543551593568277
+add:-1122742189773381273084251248143689561591037547534016,-968674210476153943757292285354448302755574664218668317,0:-969796952665927325030376536602591992317165701766202333
+add:-5630591882567573704954413450307476327113066874903314334,39824636924677667925199181345729096573735144801160,0:-5630552057930649027286488251126130598016493139758513174
+add:209583289465308712087487686838240265261210109472315151239,81969909236232824125903325576417695025146872644272065,0:209665259374544944911613590163816682956235256344959423304
+add:647747950632636576869808198783011688046450148232434870552,916898592764747488235431320315097102338752371550,0:647747951549535169634555687018443008361547250571187242102
+add:28135712883527960051641471442637534495815689268599701727,-38552244671238077902324238695360695260926661808213,0:28135674331283288813563569118398839135120428341937893514
+add:-831441344128176770720666876352870008663528096084544984455,-2692062828036480019863362944971350891750264323444185775,0:-834133406956213250740530239297841359555278360407989170230
+add:794701017798083397494303069423796491577530373372626,-72102207786198755767165144812992747956259847426428,0:722598810011884641727137924610803743621270525946198
+add:197485890851875072994741135376825653896503519991,138163469337810386780302197638192920802358090884502167,0:138163666823701238655375192379328297628011987388022158
+add:937892167666694076995649413871805692261114284540745180898,484506468570589158974739913192421910069689875922723630197,0:1422398636237283235970389327064227602330804160463468811095
+add:49513458769560636111865879434482526113781325925566233,9100294802196263191040735829862469546124284819589,0:49522559064362832375056920170312388583327450210385822
+add:6804265638701156312303584072108871897818849901582,-11345730118278439960458447085533973659139348981794,0:-4541464479577283648154863013425101761320499080212
+add:51279593637893634015629961349071462173442991832147136305,-630963561638139460898375258178326027272464749013574827807,0:-579683968000245826882745296829254565099021757181427691502
+add:-171297863190088468833128267336456231676696349106086723,25562345013839243089120015450478579141692354834498920234,0:25391047150649154620286887183142122910015658485392833511
+add:236820721337287547681130447452461282950000944868027,7910172708500900617141147757503793584328456508673025,0:8146993429838188164822278204956254867278457453541052
+add:6265195034976332988146228918664074473854894060855990323,7606251428765818252926521082377358210182682774550344917,0:13871446463742151241072750001041432684037576835406335240
+add:89597374568972918585799186543628138088356766678901,1813314149334378741507569909010462456324603409087645773,0:1813403746708947714426155708197006084462691765854324674
+add:195306949022209072289234099720202676610869290157465206,-994716438467019815849178678443452892613653602203942,0:194312232583742052473384921041759223718255636555261264
+add:-939205563958045162651332219711896963000039406190357,563202907700832072617064560363622275558376679989258989,0:562263702136874027454413228143910378595376640583068632
+add:80098286952047593891272622966959373457660113936107,5904947277434951020763542155046693897001992702425164,0:5985045564386998614654814778013653270459652816361271
+add:19798014000926405624727315383918920042183182364693,6487262615903993794908286483828887670955698777423148134,0:6487282413917994721313911211144271589875740960605512827
+add:84945814099981001691936754290990954291541653727223572796,-456805979472350610125202046336073888213752286874218,0:84945357294001529341326629088944618217653439974936698578
+add:2512089645159345096564730857111312670343564829071686,2455481799353124733391499423535890463012321535291607772379,0:2455484311442769892736595988266747574324991878856436844065
+add:73301381174453517580526931086388280775135813526768,4626165037419596821133153230043681255350276120564978,0:4699466418594050338713680161130069536125411934091746
+add:792820818959899903274588755045896284554931997668781703281,2595874074799206526967637468037895862567437806098280407872,0:3388694893759106430242226223083792147122369803767062111153
+add:31597081840709827246680247566853001879220752914725613176,2390964620594830956235541402980808255816375199839045,0:31599472805330422077636483108255982687476569289925452221
+add:31597081840709827246680247566853001879220752914725613176,=1,=1:63194163681419654493360495133706003758441505829451226352
+add:2037822438092847430389261539441146424774943894590,39916000644658200588230707520252700806573106896546,0:41953823082751048018619969059693847231348050791136
+
+# Small integer addition tests
+
+addv:51776377,-46479,0:51729898
+addv:7494538123,-48092,0:7494490031
+addv:5,20101,=2:20106
+addv:626,15974,0:16600
+addv:927,14290,=1:15217
+addv:71398252,45970,=1:71444222
+addv:93063,60606,=1:153669
+addv:-4895,63134,0:58239
+addv:8033997,6091,0:8040088
+addv:92778437607,15749,=2:92778453356
+addv:807578710629,-16317,=1:807578694312
+addv:6722,34150,0:40872
+addv:484482964826,45791,0:484483010617
+addv:63333,19921,0:83254
+addv:757593394565,58611,0:757593453176
+addv:5848315192249,20055,=2:5848315212304
+addv:21778,35258,0:57036
+addv:639687980,-1547,0:639686433
+addv:-8993430803,-39481,0:-8993470284
+addv:-825483,40649,=2:-784834
+addv:375685401,51109,=1:375736510
+addv:134791583451863,4578,=2:134791583456441
+addv:53129115309,51316,0:53129166625
+addv:471178234304,3338,0:471178237642
+addv:-7636956216875810,23137,=1:-7636956216852673
+addv:-2312413443812,31719,=2:-2312413412093
+addv:5200691919,55510,0:5200747429
+addv:5715872742,43764,=1:5715916506
+addv:5568388095431485,6290,0:5568388095437775
+addv:76084126643,54578,0:76084181221
+addv:96531391779281,46438,0:96531391825719
+addv:-828922693,15465,=2:-828907228
+addv:769843302686441996,27790,0:769843302686469786
+addv:1414000736454,15931,0:1414000752385
+addv:606227414766,517,0:606227415283
+addv:717100323961,499,=2:717100324460
+addv:-85406334226225355,-50533,=1:-85406334226275888
+addv:-3753831486,-36277,0:-3753867763
+addv:-58465715745893828,12779,=1:-58465715745881049
+addv:2855399155447860,5468,0:2855399155453328
+addv:4552049505281749,-33297,0:4552049505248452
+addv:87837072754930,40967,=2:87837072795897
+addv:-42693214607695890,-30492,0:-42693214607726382
+addv:70742576302309,-20599,0:70742576281710
+addv:118600972756003,10194,0:118600972766197
+addv:-882812251166,55167,0:-882812195999
+addv:-416381834108529,5090,0:-416381834103439
+addv:2956620172683281,-15742,0:2956620172667539
+addv:2711117679184010399584,9500,=2:2711117679184010409084
+addv:1356315685039,40425,=1:1356315725464
+addv:100388100074891247,28468,0:100388100074919715
+addv:735453579551845,-55120,=2:735453579496725
+addv:9573520208716968,57962,=1:9573520208774930
+addv:22464333496911435917,45263,=2:22464333496911481180
+addv:2318330134061664645524,35817,=1:2318330134061664681341
+addv:40085116522469,35577,0:40085116558046
+addv:-9824195637526213,46625,=2:-9824195637479588
+addv:1387219546869173,16428,0:1387219546885601
+addv:519326948996459554946,16498,0:519326948996459571444
+addv:901089575144273153684,48818,0:901089575144273202502
+addv:-7267047498859484256669593,10213,=1:-7267047498859484256659380
+addv:2746871124496359442,58189,0:2746871124496417631
+addv:-1505797511965887167260747,10886,0:-1505797511965887167249861
+addv:816815491488878842,49097,=1:816815491488927939
+addv:16917424131349552780253,38836,=2:16917424131349552819089
+addv:957454833834708924361,39916,=1:957454833834708964277
+addv:202026277214860503572,-38223,=2:202026277214860465349
+addv:968746861113481671,1030,0:968746861113482701
+addv:895889431267844251,44333,=2:895889431267888584
+addv:-3357720693387242036833,6150,0:-3357720693387242030683
+addv:659201417242721199959654444,44813,0:659201417242721199959699257
+addv:-400853063392189225718219,-1010,0:-400853063392189225719229
+addv:7218879194561993107952676021,-44154,0:7218879194561993107952631867
+addv:4721568551140507782,28030,=1:4721568551140535812
+addv:17034283717006469465522672,-11569,=1:17034283717006469465511103
+addv:41795594273804830816397,-7668,=1:41795594273804830808729

Added: polly/trunk/lib/External/isl/imath/tests/bigmul.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/bigmul.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/bigmul.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/bigmul.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,10 @@
+mul:1973284924569393016522181930166284437824113120930085705223363410232863255766399553325346410701486329074823374249547700471683909277697787590783678904983357211584574690370289495346677331618312561665754485123402827162476353576735207718451299565526093115255556962215997764515429748902159033904867393928929335369918394864191487555087825530530292436823694624357846430402766705368186347858763649288740551240105434820489955559033038872623623075504620415436212337263593361227009430895404467373404212231777284568356947010238293550872942631550054733886261493387307990754063500729850132294968984927109971586336754260617576297578,5023215555039217191451486096670046812323372237867852342682903508090873804207633443539517026163606065770027196694503291009850587117226026773591715017125540836707619882023150680605967194554434367524090941938814045780235333982097410791452776449214446635671357519707417878752761895933104747199582531838714305022614904134506738511247696618513698871318914624938137416674596881724436
 242382943205716649496664131501091102879563857843031208992280893614063087964394912022421136928015233318011144243860597237613050611024432789921991289922378761307428111094457098264457145099945444765267932710530788173695233378407323077034767182,0:9912235527621363370177765461045903296757346464251250997934314384765381968455767811674327750035883028560327843635490083086230089733649800500491928845965808260177110097000550870708488183060088779215210481900113545281854124601490142211180660492441361405426298053896802091578235012988730731854809702026093664780523793649405978324745399501432045298507869343282835244908856693641856464415460033802080004246708824900236489959461486545994943320360059459917374730418136788819890973086342429995201653932338829740545718352667527142958499428354077966431655595175455785104618218647409782931121099857213491801531717606789462812743975739913830932552436532349361163108142395102143904119547756730321871557900417573185916761969667939077354954258105548072267528998411702020
 631497735552158986372677452750936969993423245268272976429454770189221077520557005286622417163333812030510164503314440581497599501417407932697447376958591635071781976491704916693799964449632893911830806101578411062044010045678256608720149155356874608716245388282176400921764516344436742619757576145128777884235797616593795005421758664915151768829194432974835591116318659671888399376705850603804666493415116788205809451378581533592708248188469927900316495904963905315042780485196
+mul:9281860481025428743103260720025399298938288092709373682664752121448026422364244176957076161560781963714610840062462308785533773682081509516924811454802263149810015499242805866671806182669824281823377004291671016071522932056033291108610609315306035746008726247945073883264784349702632503413711514594728450092072160898603477481125780254532680608704164997261749601100642928524030186658056860132922920804055208139127600955714414432667835794981195051773905850760614924210968557995928682559530646363463541164514351639956960443946215999260668876064044712007044169839741253208493501852117173644320085073436239558982298112600,6461820852819773895887891707090409545105222339300767589991593922286229155430279300935431963821489860557211392101557073166691740801924350342690481832500741574765066771636009594821433888176432105527291712269105001105197791973525400419521802156326222007905452621388581343089554119326311972031808789454501569850634390353513026195347029048776084662261279361336878277930892526127759
 184987426337401986666833244149616653136274450771865938000177859526607860886891713725823803723429415374914088095471203681073462945634413721478459297998380784046348477788577160851236668812562054262272695670208399244540961973019014052558168787,0:5997771960925389272204287757210405140810180539781378192784378929472241637348662662977452840527225698104225801830943773918532610954349915365284361854943707986248190374135507762239295598095229194037758449418301697834521585800657789613349413834353113157729290044748448493394015386433099331266342354896357358972159263080443030352931343841605780726087867638216557750831226536458170544649779525792176509979247362593450022078630237575340009783312563506632597663696915866855042258329587144426962932952066406434792708068004317286668699796989185746901537919292700127120923162911449157445939238723666829339571818472558819519515267895603007275484970486116810742205530861020318747608148274523249885197412724791678841396723055077967632889899493506120624139806143381996
 9649590309647846577368325165533615473712118854791617654923496518553311816034223039109644818155748055376095608924486676004240127363839126636148993476097467363646856228375774851238347182483585640237087473022416289005469183518515797794634470718006577945646586807657786278665230204669208538087683902595460600395463199673225484879511079106227162215467672070600187376901683430397215820702335580004490264383605166178465290892905016286750248542616725432536301930399671042547182331416200
+mul:7912472862067339862128371179317677419131938894010486952786566311807271094923069332388514681475314477095129839383791878789616020411634591014351511065638534352498100902940229903010080076033147913858702310386781454704764453620638192722142673704997301635080657906841977228453431784636268795567399742877979696735712353260720882016758802630449316568009735495464820484500112849579042319792054180751808291492597692968145199206126879627571212323371773988020895279516215647740755736659817523229210171324629444663573614970129038286402265282862415058866062409919400686067571225883598025018993264993072866008153094783713777842233,3201725902397772208341447704654332382791919074661304465094673003562268414312780910138677841790209187781035267718271550359273576299056459823432739891496517659999050131295751440278895964609377686119310540452547253245263824257293859748569384694164098523184164132157046027096354720108308754361750383079701345225130461743071738716695085603994849362372761995341700678666090085339160
 622218852314697895484240550249851988347340743956951710723755778934782102893613303732727155104650554024190836124710855983325513102342105122420688920843770754330984726835478343584190293399561063733594503384748007915045169469662902517503038695,0:2533356931450043710859981577242950137368032260891331460136530694372381934195092734597794037114068503580662927087804723720501884238743073476518955285002169623719823964229349590680438129930090386920822613500394010801807875910029363660252449831485273555078212837017023118899812004217594431492690527727607258301521113788629547430898346954944031881145583342655495041238374698270772622705384898546047853279220610306211834022144844156908577383500253529709429345333934966039510020704626374943502280855128767246906908909427226015324000604241735564041201658109018417524869906081219304663966762656283464850608970095184685312657998712306211603955160675762216505735045380679762577992304198489080165678041483886114395003114646583375529967579659341537415520807924453535
 0498995407594399059593691111928041690837178741233242536763431952235684501117687869354466659838302659999947981358427161420945738762676783164008518789595931971474305683979958242844858007484186182190899873321326797561319701242638077070008212803881009955276396752500690925651017578103332620257046368245654905509937113127728190752471098993165924776064643774593124028657833142320855925010595166301204722218705230663769696225288154861096367993176213914077427256483682770659737804205935
+mul:5808324187702080655474460793682039951322360995931125673869791371944228644211378816153373947301972618673468024419809216698234959175295640166063762988660558965367914554186920892629719688885314609703455963977845612750271884481278417471936841270780965441117412446282412169100969024758168373693942106624503929819630667668476732052476696223555182229399707506392013582768244824407047675765649910095793401597173883674841030712174173054018546762918277235618291532242003800812379951389007164665130775067356573065178773886633889021628231165391459939591112464657659598153999220909590051109791624395690563647765208381376662473375,9187294026565993542954275093944886608128116509865450421422695151800338772425501750860960783331167504862965048609697533187643973606720707432832925905837249342731526326801000301141455223242316512305862269731025091313679136522883659628551534893059484595007586222203734948212150684625334058669367564240176539694293339103530693943836047978102455985676350366679275953460048435607670
 22814009296322200770357321286444971587792559784113298566437496673370692769029520191499051311630305921790132367949451008467412252240244679740653218546677567374795191493091691181895973054804640859501444377706515253377176192389740639658485554,0:53362782114034102259435190426209656157856195553172822193460154909654024902689534913980032390661782938581891784024017571111789855948551652077769851747799117918237687490968125984552714475382653826328792475181555957497506028192680503541395379573579186372136945119200073268452970895133560973330140417099721487317140144844459159888447760550703538055737535875988036582099102198370612618236707689749290778101298978592798772211440409995220025049936172424446344410057117098241555548717376713276468220532640605657351072286836199494294705820565046368322399478394783351678624250872058114763965613306615285128698081467642714051159462165979329212955794058224410847399259166950697231381862324135778010410595122704795513784201955410147944766999588658072867462228588402841
 09951768425928740087238483028034722002174473841150445679886458245212446868769523239331330174814615221560520986189551103233794829342754962915857263215385954151542007327435281109291419192156862517657537231189038431999019986573647246318902197844837896116701072282756311874936853442457550589683870364331449005930361210722151521672814074171107488735222046242474639960036313988979683887454104915755099621937143196324447593623621066203333451482527676410948714122996747858076347124750
+mul:4289351015617211853860547293440287163118502026849525600172204430479364457520139869848831815115110666309028281362257922027167887676604882712946357785774765671053291569361256480674248716110951095880149104811531028000846825692159030869973707804728263847551536308296065212083263317121194233870838444421131817712327319493025493358961844276996294363551631856740972199816713986701316425469067461982409331003038962007405485449957519072614334803913032240759760944833349605582847295426216585712797815837902507714668306750095431507743637803032894122691956397938532173109072764661515711293817060848120252743975673113125247753747,1129243400327281633151431371474891473455867467281646580615131416918186134500058210362967474476291935913056166817170589720180888384893984130837655605609160519483475686999411456978438146043336536562159220682249690564087391733538120293725815373571240283145745271266418667658265953408844001550460545760069911655331444115026283289502832470850559638590225665815329814544221402813003
 890575490644213046498706732967784948480361985741430703857522843819419578526133778265155095749489410876608829677795172822626775506026922427707604322446404480105940239935673644113523059324254840712255877427181434254002649024354681415060823887,0:4843721326072859217924739456975877871730592847101085181527790647663373107593901947296442009364096344634703274313593786101304850876247763256161098298112279311640124203085232376040570318789033357875445637660657625729801200284217407957188046703959398051857408830260318911921120701333722007653177281821055544288036482973644506286720667660669123827281708456990562589037743832216048193876408309523302257690396843316573270798223002206543082163754435230120328349462372851186274316082236306199355982964083210551564485517422220956818077182845893000928069354900697467244100517711217647512106740360746188198070167537230256896186561769720724666496535533088417070244576470000350911551644970207092820479716847918547327933258080841778598694603733794328556831506027782599
 545271976125608421461150637806657972513810116161800305056210665818016285706544698227685536076722128657311114222869723283459946629814469251976435853584113074214728600366960017102944781196949905674572781584251454518622141686465871411947838733201476173396601005947322753083122168399723089970121912770142886331646964005500389958994113759402037759299455183775918663007587029195358902062641122546567477401625532541758569470800211805386875050358317201026695356110634225798225911354589
+mul:2922598094751746153870691566295068444832682377449634443644452036808313025110180304221606287367480270511738542685007831198718549192848393891804644713550364054117828837916381145944541939810080376799967571912016414096689178814643326642017130538718508791191026602318951021214103395742936719511134851054150494365154144550755804519428501885962875546302716557826154750576355553275917160667544245815793363700075966760245307752621192750454214313695198971665682789483848832034351563529541544408090967307450920552147497375102711833800774226189505763460050841396334194550570633737523051548126923180438589141499584449356454157781,3012638544768358653028317759812801570377758147318807175179066721393623279095760302891303565510312498562901161887875872084416640420853393811300450702875504191565387132983787242289938929953703330466980051357568704277734917967452572348134881469928617693608886497807522547789649675160016285918417200326088447794162290177465346778880323600019573409899280390142671415131788790258377
 77147645983010327629059951078283105727024828148762758710195230027569199491918547602586967248624457368763471524299806755969674122616318652168130325681600833992180785147209796398791957157839966041221298841443636110696808763448994316318819400,0:88047316711156781098811796796188012154897659887049010335990740445179428863431408875470398288268283317738391559321992991676006272633613721719556512883622883111594531770439305597431736839065679723693631276058763428709900113099373324394541964790583936753210687113662895950585612420621676586903039093011692277902301595221575378077571083859209459864077797019150787475004122645688833207020693611115288714171942541753188144197021107189359974927722288129925475234892947724706639492393579020365713225018090418819191371705936329544797185293035350467361406056126204569502911640046010927142862783884995273853083153888126742486496878060562559053415605966004941741931945410020429330955576073091265516593991517271138462365486222628850419643964339497702474864696767848394
 3835665120965656012280087576516616128951989019537622931843487928203695095825088113381854602767942831065334578782746652133152957849781352666171117141170614812817658757480681486453133627351917446563065914034736341623821165223200244445057536369218334564861784940394704850907451562300721495943024972967062949640936264682263417359654728928172240308459032455914059483410980465823622773353548898797178794257922243219031264284831902460218578846768551900722035824054391273507243751400
+mul:5926829196540658675475456498963270367274167353270350161220559308972890667000611959077400634022036756298496888045889139127967069561321992685909920175362591913993270611799645183177425442645246583405296832015660977965704980797187259222752640840230405885131399744453603991696537021254629232292058451234918953535616811141856188592686058223965739982132693674564657697584188823828175787137971950097846827086108380914550087286625763777114003492300442812034505494306586173660076762683909293356952194336742697639190379957186138293602890079658463645699601808928093978909018729566309848085271814423786075811123687515222571521141,9951748549035347469939830875084342841213955171500540569908439680913759851880792256750294922770245208009299837781200411491572872855217655269162163547244594548791001649285963901760838066367556260426444830819384430864282488995682230931798936940632516431790824149442647895647799515499501451313199296478183164266650410143061944307590041145587301786773822623122005086984557462948454
 440882483631228680923933447857195870319437437969503685592935555841532972330863543676262890554252868386868097538156042902583850929860163229668324731088466679335541839144081462858536522998396202372335534127835253275227166439208550011362833647,0:5898231385705383421003036900870153547054784637888347157485090651966159092062323955715513381671887238946159352363866440585333398684870549061895259445283282790283787306473961902795165297279124995755549144832659587744800338563190935520458024907875368793844666277050178144314170257421232664629534487482991002429032691043050203522914484150931446372572893507210928056817604429366782413568335618199832781093221468027791887864587560989378781679148954019820052620605259327957908531078450751681585942442580899696604958836905480633552626266119018858899112892101135932008602280122225365889471477235142392246248837638175396012214765638794959552341517585824412814704672163577958451977671652792256317939956932339752687891378427753086114513979678125301453185359422395626
 6367885067511225156573281630685001517329742811780233540173221050224903621919442416853554192768813644401915841492966828144740472647777117385889467734627421827100398019644421335032837486242511571228006782734808577532905812345873829690513970221918856437531183865939487578348802015996867422278241109287621714275599191991940919835845537011096714711601047529737712802340247704082674118292833054347839678093716883543951111177062577074608322061562989806239684134854317815924284926631227
+mul:4777034176054735892839001319154604024448982911062996662961434499047973311450046365095175854088514975567276445923641765710483565552588310101703859907398033663982963466700114736836981086820103724619793226902430054022230749484829232751622018429096822596030038641334221042974404610831943227778280482931541043539126216389807230921518942393713547539642721143788088068568685638257090375125430847183020265156489658843788411995875911054271475454361570597270062164847413843213234002767652983163982217031030775985346429845722052312845786262475405890214193945400669516695016006129145191835497619324112510419184839333823563038032,9827138548939292009245650065800975788958754975503505329013026058397999436949984425213239460163893334243646132127297454621612856901543246299673374601632283715496329281241648395821925002725694160249373602782352654357507333003611095526709537503510444389839900076419267762739355812530600135102575311854184301816642079363387499882043347624028484658998836131051290010878235398822043
 835106058212641700259728565297115088713153106682478432953135863939627050490807699853245333608896404452729513744632901892423136011428170599697693508420836045009263224191727733246096441225270861482533930349836055052069956275296881553010823844,0:4694457670110794367993893835171757027664302442635138337601212899033183685180039416999982592628778978992397785784222495203083701864175172412841677794234728781724308520594727914088881068750271265390472094025007604551207080703459500106690121435139501385358325374977518294364150817634264461634470499182601477212619390215153869528662041733184028028272960271389666940910460896331402194709953445416354674678631437663255603415180366289410451225773155737602392103147848534191792713152764180445663208975816496317917482906750284124283547213551225566325493342093607874436220666624025179803108730950532041483403673009121595776317744945346401893181681827947976556415439772545732796842895845235140333806900225893787553458366074838206979537189206672553523582901929494855
 0962261648137489651867767182000050986894967544702207404744805388059998480229757580719768298728934644409403172897264279729988289280804868097625427040524002128803008253639601815039926425566665683322030827022419320049680101981176755790419161472786615666424889499802013777946532365772475376346129529789899467556777542539903184853306724757517591411008018192458452871055585402125971467717860280265556030939477806408511006676155314529119943122617934755061739058181638708393543824435008
+mul:4718526549709911993506825300392344853225467500177328568314994788126810717786579407393677363360732454086076553654622431077040278132967064493298016988387203796834942642515095105038480589941892582203464757978762451494680419073901829593050682173084623555079499639864808992561773015425098686639107710126506218374693057900167675112099207386871851914556838486427512658440072954892382195328941863291925131611709258615015617716874132201457077873908213746723440854928237000349411712082236090494727142820721728009499408048129273013743078395120046662079326001366135078211783789585155007423087104738440174209004586903786989164923,6864909625695099184857987413146793144809795231762816099678934112289429933759119594825554881121839952705699464175423549805747165577308703501708566885788095967212817910018877393281757866693495857986692383902136266802917073126657350936148259550527207353925931727830829709553153285795187708071469565512676957784213778578364574484904487858142015156737351049851111701482889769961092
 136069932966937675469744753107902213424358119650624652509775218017409565394932197216635621683624922457211807452760603826715508259815323885112220648677904268244358078258267292267766114067884100779411269652418038495358844980710175781452273298,0:3239225833020145976056207415950540266682702233213374382438372237377158672427993683489320947533579236074020728871275328896601927268877218972735983043011238537796321152586665461465273444134301570288060033710675704795201612892502212180110971756952241432173629703996451889743578314819538483521589678107244052396849698181893675199871179251335359272275360664658630014059611268234651893434298992244049442554385107941745166896145533722163411552232408975917063043771198721514930015559849870925814499408940177631814422149365476982113076590609009496511287375027519873139644410984476157067149193692573128693188967326599805251787834052069751264413389859371377459864397895898674981316534498064409221954415183091022226963817180155563052521591863813018102180697285843051
 1411445741538921977552404857036735214137961033740561691592280961494473639844034425651660408422689100017005963792872277451240550916940855637560252384459024952693573633908574846415082397672705378909528200133322572418467010953663042748965810118650644957942518667994045551271839593077571232233290052571470146092765056400446256851048896070598829313006513443533069418336284379590405097307714842901615964467210622771049744023258299567880689880017261076464212353340481079608972991126054
+mul:9351359077717175899950414794158087603156751215661949004587120106073267545901109456791730860642333677736460489711278989024326442512123908471776539363116436679164824939981569343722408520504708037728468632659374071452933990971885163627008124264246742383054580586823189866118106292666120868893909093218961607925558747851310421259521224120112349616696032997520626166708182604366198593113508419711212092952552738381785471705126020208187067765049493707603435017168771840449365758256918178174456397001413868398658687746818925263901770782577181315131090723377262366519979729982933337084774328653741904208050516673656644156545,1216016766515133990299168668478735765845001733139931228142324729567294927452246949091528311290839436344864081129175577116760112996696086551953114162706042576570065867528105907714734959487715485323991160014202401109849117829323361272785163230303985302397208164280805555950490245017175800587222856847357832531423637659868015190810500399483016069191576487343684935319583093232012
 062136782881389216056886912824752493825582458023165949476390088955696767644291944525456085901327930362230500131946293930906615027984889540977885375442171280684232489081312736136944281636434187988121106769493755643246344604960317372762640669,0:1137140942820758581693564551497115739947745650812242264505732332190876752326945658381654135283488134104476802323057813541064698630790222948048696952175693204179207018340487149974375363919522117239095026939625973891757297008698553700346380179778061181202394766896273570191440016007658446366888389706104660969815007923086967121972304765941338009839868116854118931803958084609722293056227463256152235805658557863056454389757468069950119108854555804286948763721395403347054522140744733912602454562516969576182829238715304113010387433509848053735765408316245270623875245526685996609938508278494900760360508057522655963343658707662917051589696935144758854170906280914808140872538023017305090492926460037698165195319313362752088023767454604128660347956307244721
 1757006563163317121555286268728294863795655638987849849029666001617848646789972884742730075162580289223257765499073795704140984717050187282907922384088916411395714743783224419377067797857302004785665907904680432071096387636727273241941645361614333739368488852077835547570517599052273376169343996742621847611518237883451876811880344515555813725251939567959622992970218067169395450107931883100562142495317614789690641680450835968600224117925675820963997683401725608775582419528605

Added: polly/trunk/lib/External/isl/imath/tests/bigsqr.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/bigsqr.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/bigsqr.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/bigsqr.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,11 @@
+sqr:1973284924569393016522181930166284437824113120930085705223363410232863255766399553325346410701486329074823374249547700471683909277697787590783678904983357211584574690370289495346677331618312561665754485123402827162476353576735207718451299565526093115255556962215997764515429748902159033904867393928929335369918394864191487555087825530530292436823694624357846430402766705368186347858763649288740551240105434820489955559033038872623623075504620415436212337263593361227009430895404467373404212231777284568356947010238293550872942631550054733886261493387307990754063500729850132294968984927109971586336754260617576297578,0:38938533935328350869924174360289295330171136937291128125650218839563809151412559967996120670288738786209627210202878435806677850314747331164789463594245503610125895857529733173059974801287007047907092886460186472341200064595447164346811745657324189118111348934335111902407296087987177055385114644555256913342684735931642871284379466592092169661822239599780484617667670489942
 03857805328335121781687530460374272192439643337616561191454804340602152636521570315735724808211136112178623597726761562233624418966697972730157242837023392799098096001348791292540282769112707428306351952761016511009581482140339266124773156503871585331333229748575546970788710593878329700066394630525667688977999379996797554988699433650675888676455423881055671268822403174758764173450801472107412934932928242628018889547481661696413558606207836289835238941646919528531917854164993719517257318458050248512708310597280868179529982466268126947562915613777011430797948425936457263384797803263966764408262497707996175287022739124394402973694264968889229848339525935294695324028820522528376607382070267797540723336423743427176925087940756280955052040945732043168661526388800230588103529678940221446182218158117656968368051493245055497411735966238847890150408666084
+sqr:5023215555039217191451486096670046812323372237867852342682903508090873804207633443539517026163606065770027196694503291009850587117226026773591715017125540836707619882023150680605967194554434367524090941938814045780235333982097410791452776449214446635671357519707417878752761895933104747199582531838714305022614904134506738511247696618513698871318914624938137416674596881724436242382943205716649496664131501091102879563857843031208992280893614063087964394912022421136928015233318011144243860597237613050611024432789921991289922378761307428111094457098264457145099945444765267932710530788173695233378407323077034767182,0:25232694512387950837246573965423768214659605305747920385364235438142069506752963638176638070663137697548178189512977583934503415751046457217304699834312165759735798834063392638459720554883875322668860726378103278773377069820923135889568597012480529331635521511826460253219709548240571066232289334814339006865253319737519393614525866345823654520523063598485936725991745466055
 344350193829007241842078415817997984841814058315445235956513287712770234190490867970313521815239706704426480962959318704528841466812066587818519893723352288704763970670959149274002543782704910304301127024275547153165875047466897500391977033070459139260182367193259631752968757844481234924736806232657312752696107333138306380229367277562995612116036553257307316583486420415930866764617533873750528784187657897741011800821517930103416987940072347360626799917296234474844881851193687709571104637725109465383256753161526510645230553484635324115139968700121652080718290604667285871496065225935146563937996599437542585972890644223726730952165788539505477436754054328420237106613886502086271044799562764032162609215838263998005175988570392248195621627510973258180359384380604104188938302848583871731189060087097132563112796351181762659883855872472102926784944221124
+sqr:9281860481025428743103260720025399298938288092709373682664752121448026422364244176957076161560781963714610840062462308785533773682081509516924811454802263149810015499242805866671806182669824281823377004291671016071522932056033291108610609315306035746008726247945073883264784349702632503413711514594728450092072160898603477481125780254532680608704164997261749601100642928524030186658056860132922920804055208139127600955714414432667835794981195051773905850760614924210968557995928682559530646363463541164514351639956960443946215999260668876064044712007044169839741253208493501852117173644320085073436239558982298112600,0:86152933989221603452383960579862529767754507451814327308106099502021338841158564739970946221037114450601947058545585968015185524235118008637093904307143275940199882886916868864207222193239426427361340073440244139751159451898557777069779343414467483495630400743470728307452356966341313677960852068933154671924573760734273611606091152908307935158991039816559413312322566981208
 062121327548308369676448001395998891570657014429725703319770781094147168569110700521525439009556347021461844081202006912863907929538746074819161945225863226888248444085706919956519264360573870762587910641782352656676156415732700656963630951402092115464901859063766186151616572411364019115388448066844528476234630236343390094769930168862863247247299575418570145375916876386437237082903988846801896214556691481561360799069054218343648585202335896476703207744614538742683914717622691916676976341150631784446520414431143406963418046854017770653263907209702756518001381533976295371716790304760562189392378368525802079624573216454183740278425217025651543107627286662679019527820835682239802308666416070981938963841923859050577866586430415553449794707717857305424419844800957514744493025148562704471289382692563184970909544450306975779736393494626043617522278760000
+sqr:6461820852819773895887891707090409545105222339300767589991593922286229155430279300935431963821489860557211392101557073166691740801924350342690481832500741574765066771636009594821433888176432105527291712269105001105197791973525400419521802156326222007905452621388581343089554119326311972031808789454501569850634390353513026195347029048776084662261279361336878277930892526127759184987426337401986666833244149616653136274450771865938000177859526607860886891713725823803723429415374914088095471203681073462945634413721478459297998380784046348477788577160851236668812562054262272695670208399244540961973019014052558168787,0:41755128733936470013419340614768581207469280475771932448759452471724306748308207056387185341042180822565865975190354615808904657250278538353955888696480598934323757476309374738685684994497716128880324468585630205909258071948935579506193339045950864572735480453777206082914955771593313309955856894724849311870450595834339482685071806743252667708340467642167114083116000124778
 596927193502323818049586734603742810042021276752915040017354940400178030129663940983913088794072426640243829816327008274324005485264616967551641307060646091607001504654635788964056297229985621142475464282158634817498369712218561902410195152713461864918871424016455091203930645713444133980971449546681537220327549312525941229246794507705534347619463146219624170792658352361826542837966194021639735363473953690177390313887375288592504393102090201580067126091162084412913867210871907813153659746483106875412725262090893163145926694590206586186591043900660223003982254816402106419038767972908977390372043067587105414843306130785601573472584510045946592593734424590918536936724371910844356800883765758566604517939781506812650805380392096724391320635856788305664509062325460162834870676905242982755100465091215613432199297726350243940958759758306993142242781051369
+sqr:6461820852819773895887891707090409545105222339300767589991593922286229155430279300935431963821489860557211392101557073166691740801924350342690481832500741574765066771636009594821433888176432105527291712269105001105197791973525400419521802156326222007905452621388581343089554119326311972031808789454501569850634390353513026195347029048776084662261279361336878277930892526127759184987426337401986666833244149616653136274450771865938000177859526607860886891713725823803723429415374914088095471203681073462945634413721478459297998380784046348477788577160851236668812562054262272695670208399244540961973019014052558168787,=1:4175512873393647001341934061476858120746928047577193244875945247172430674830820705638718534104218082256586597519035461580890465725027853835395588869648059893432375747630937473868568499449771612888032446858563020590925807194893557950619333904595086457273548045377720608291495577159331330995585689472484931187045059583433948268507180674325266770834046764216711408311600012477
 8596927193502323818049586734603742810042021276752915040017354940400178030129663940983913088794072426640243829816327008274324005485264616967551641307060646091607001504654635788964056297229985621142475464282158634817498369712218561902410195152713461864918871424016455091203930645713444133980971449546681537220327549312525941229246794507705534347619463146219624170792658352361826542837966194021639735363473953690177390313887375288592504393102090201580067126091162084412913867210871907813153659746483106875412725262090893163145926694590206586186591043900660223003982254816402106419038767972908977390372043067587105414843306130785601573472584510045946592593734424590918536936724371910844356800883765758566604517939781506812650805380392096724391320635856788305664509062325460162834870676905242982755100465091215613432199297726350243940958759758306993142242781051369
+sqr:7912472862067339862128371179317677419131938894010486952786566311807271094923069332388514681475314477095129839383791878789616020411634591014351511065638534352498100902940229903010080076033147913858702310386781454704764453620638192722142673704997301635080657906841977228453431784636268795567399742877979696735712353260720882016758802630449316568009735495464820484500112849579042319792054180751808291492597692968145199206126879627571212323371773988020895279516215647740755736659817523229210171324629444663573614970129038286402265282862415058866062409919400686067571225883598025018993264993072866008153094783713777842233,0:62607226792952120707247651690259584550519870655409677855259967323970315280127523038352871914217595657318525178928588450738646984186124330548937584545791047411539195482412684246501620725878474982273096945918283314804856302186143180922532479221483774049169665661942575676028716750572824612078547029156326889126648510908500466713726943581967682677688720020286471235758599038656
 604686024251557579582894251121291196845804656311881653516178849444455844734491852772836158003590931403972989130702566686718563356156866003782202713979799591740568927365378424851203143470432976436058675581145034980081878073994378951069636407956044433595527157452771941753992894632221806355150244262738932228009536850616640523085668143546230350996800173647076957602749446577970514855423674477236535999309116324096409059875960147686741898480716484475884168020125576823399861877763053135612337099607591166573133277345115055382830446955279324436937777170960368837490516357978919384758079145639420844517829747508647571589827612402546568196379111371730312522985608775973653102317116479931771770023631636770509419737783921899453982796775527984382371135662826874391308916487368098573786023125281233044093938346589157068552970819362523463113448971217548940797438426289
+sqr:3201725902397772208341447704654332382791919074661304465094673003562268414312780910138677841790209187781035267718271550359273576299056459823432739891496517659999050131295751440278895964609377686119310540452547253245263824257293859748569384694164098523184164132157046027096354720108308754361750383079701345225130461743071738716695085603994849362372761995341700678666090085339160622218852314697895484240550249851988347340743956951710723755778934782102893613303732727155104650554024190836124710855983325513102342105122420688920843770754330984726835478343584190293399561063733594503384748007915045169469662902517503038695,0:10251048754084828769243329882069275971914890627613738671716877356696804611372225772535909788437192398839842991123901962510118430249474946611045135201967809016816348471137614785988048128241390515692315971455106778002837246102797924605981990933580811595517905674487926190125149743783912791172620685090710721294031418339826218705767020474113475213303982913823024270407367538077
 398654621734474924951831977997748681939864774457132880966130787121010568095721257658186826775993645732246207566570744542977468845272538470202747808100801988318054298959125301114504026010747921910115853973562914401985468980995690517283225637392666056494069338918735138921764426048557221613239082343742804403199476104847288722226052090168714977201702134281100828032952230896037194398681770354240611642273082773400855766704556982242260945911858324534827894030863019362601675206293366185548957348669774225514518006218467888321089699097391620575727815238097871345555390807646501726425056233120235063071527081727369212097120985047406879578675516214002560189818550388605034487273578377097275389460683099839403381468382578885231830676913607497216090992928203120279557550890527892898136710592601635774254477237306606095549841913591690732525191072433380838558667303025
+sqr:5808324187702080655474460793682039951322360995931125673869791371944228644211378816153373947301972618673468024419809216698234959175295640166063762988660558965367914554186920892629719688885314609703455963977845612750271884481278417471936841270780965441117412446282412169100969024758168373693942106624503929819630667668476732052476696223555182229399707506392013582768244824407047675765649910095793401597173883674841030712174173054018546762918277235618291532242003800812379951389007164665130775067356573065178773886633889021628231165391459939591112464657659598153999220909590051109791624395690563647765208381376662473375,0:33736629869445035074327166424244667388357269999486865605478076413334103798774353682775639542213830809145772052196100574522690756062172293340346900291485418359566994652736736860394553990711528438046447648607265759258849563437038985527522027887469536324986597076326498910837071795251458205904524980493828205498641172851466789655356761510862552511481361948668830231946389600859
 901152088906546349833795040838140061368522170448758952855372046595253341556353216263984297060270145341296413999867239761086030849655515473988519859922461900886021497209068404156115345891990869710785087691035884591154201820846643004027670616846756481869815422806896037776208720169056623748294226301861321525789456138753657995854650377786223245822168795756177015382020556433922740315469664231971951907243785787603463207205574424710054218646675174351835854569823483723752860910674029346480228748308601384452239082508478253308005445835634293503650832325029963894202698752252776230543203916010757514406789343217818289245459834266233887027255260435438561649500763399981546227245264080216426993032919933996719529973685635989795024502963596132673681479045820438921344384798517847291471865516742005312681288127831399544453631661789669782852521261353330598972583890625
+sqr:918729402656599354295427509394488660812811650986545042142269515180033877242550175086096078333116750486296504860969753318764397360672070743283292590583724934273152632680100030114145522324231651230586226973102509131367913652288365962855153489305948459500758622220373494821215068462533405866936756424017653969429333910353069394383604797810245598567635036667927595346004843560767022814009296322200770357321286444971587792559784113298566437496673370692769029520191499051311630305921790132367949451008467412252240244679740653218546677567374795191493091691181895973054804640859501444377706515253377176192389740639658485554,0:844063715305751868681971206141868238620448349106067649090713042117549119633369793955554348233719755746126280893464820812016005338079930881262278122705660442998154342355231619912542048747564579820455957515967658062579765882068075603317542476485725126614065677508294074683170609567910430859163617312267835677287917010092241479784627554606309976396139987941907937127453128868471
 672503456384949412832353492125047104125088327869349587314979541859707555223546684520169107982699720021602759206250992533576051949917523223132790224645209557953390063396322748548091847415504398952105342081716845349560247052750420294095678053428216713216713011181812689683492914196236985079977491424396246564512152250347194515570324811898058414788694226000558523630907238488791193859962605342734660937039255359759104296817461843423523782150363606482926217674814654230899763084537946295374731646288495775906239750491832422646745846855470956372588268290873333606787465192588104280578046176481855676139021153292248933293930046473039414083316216665998616344058420309846209053553460359073991880276416769133021195916404214034472772439130482850276889991434513090312643865962017932695340904893119106854707377145235453780149075870382271613690866218610061236826686916
+sqr:4289351015617211853860547293440287163118502026849525600172204430479364457520139869848831815115110666309028281362257922027167887676604882712946357785774765671053291569361256480674248716110951095880149104811531028000846825692159030869973707804728263847551536308296065212083263317121194233870838444421131817712327319493025493358961844276996294363551631856740972199816713986701316425469067461982409331003038962007405485449957519072614334803913032240759760944833349605582847295426216585712797815837902507714668306750095431507743637803032894122691956397938532173109072764661515711293817060848120252743975673113125247753747,0:18398532135176406809034490875693170758925004882141511261808766893882448134661308449674877552336295208917642945790156108898313095424805879501417605739586230929916416741917205011890576364165214842655074817157593175638265096642262911624804249958062053834777196200988231246651694562541632157282179693998749538692029970111424591747477697863942461566583625378474559289840644351696
 058468544250603519147443482666917127248552520455914618534358459972013595330956153533329148549282058238538359006965923000938192868814224682091707519285881336562876756579025080274645910079084625282553972963075141236187211115990844325515052297351541590023546664412131806032342665984009007162435318353241414465270052529631433227305387943571878454069329525592969380744392762518290885050324171445597112387157817625779490377052814617138025027758796703313537279036322299993462750908493008657797831919621067953926089315029584404727826473302371816974351550286725462756040416199337645083147388751639897989371703481110044912875697392570337540041944755640545845535510530045287632724843324253307769460477224412912973549722946229475760911133865605380194780577819320270517078651641752393246783502013220800728332790909778902389930435716496708472843056646872808640669152540009
+sqr:1129243400327281633151431371474891473455867467281646580615131416918186134500058210362967474476291935913056166817170589720180888384893984130837655605609160519483475686999411456978438146043336536562159220682249690564087391733538120293725815373571240283145745271266418667658265953408844001550460545760069911655331444115026283289502832470850559638590225665815329814544221402813003890575490644213046498706732967784948480361985741430703857522843819419578526133778265155095749489410876608829677795172822626775506026922427707604322446404480105940239935673644113523059324254840712255877427181434254002649024354681415060823887,0:12751906571827212484620634209802070263430227175326221758602190617307924189367404347420947966659061004804398971102571784098574693070770985019421349996246685476315978753402265482333645550449048976378026623315826049115321314501666204028871032313223142366159392312330576516797126688068216976949025507472997409114090560260743254137245417845211056370391502724663757343489281930485
 71410349655195899575836960732640894105648518962149080274129413128568380000791288924018568364735478182966987827049189244120982249845311602108211176904677903690707944807032554116276797233387539070384134761545289596978472118656073247977568361787904215232007927547273675655812990627547232348919520589298481108958425401154144890217117213559902391607690446197638363620347853484948687625457207482930736345600737267824848389507129569922536325291727973935250559919378188248920389764990722709984543141728260567769676565198058565461309218448131493714100586880045778660348267815919731674340804133476623427737669995140408727297933180816128182764727848278876101607499408120957922795369902531715310169128136970642349303253384538063850831674689811408417573400679901877915536329660371027882694070998224914758044726450736635586342639879086413949670062421005617619755229788769

Added: polly/trunk/lib/External/isl/imath/tests/compare.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/compare.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/compare.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/compare.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,31 @@
+# Test ordinary signed comparisons
+cmp:0,0:$#0
+cmp:0,1:$#-1
+cmp:1,0:$#1
+cmp:-1,1:$#-1
+cmp:1,-1:$#1
+cmp:123456789012345678901234567890,123456789012345678901234567891:$#-1
+
+# Test unsigned comparisons
+cmpu:0,0:$#0
+cmpu:0,1:$#-1
+cmpu:1,0:$#1
+cmpu:-1,1:$#0
+cmpu:1,-1:$#0
+cmpu:-25,15:$#1
+cmpu:#x-ffffffffffffffff,#xfffffffffffffffe:$#1
+
+# Test zero comparisons
+cmpz:0:$#0
+cmpz:-25:$#-1
+cmpz:105:$#1
+
+# Test small-value comparisons
+cmpv:0,0:$#0
+cmpv:0,1:$#-1
+cmpv:1,0:$#1
+cmpv:-1,1:$#-1
+cmpv:1,-1:$#1
+cmpv:499,108:$#1
+cmpv:499,499:$#0
+cmpv:499,-1024:$#1

Added: polly/trunk/lib/External/isl/imath/tests/conv.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/conv.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/conv.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/conv.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,228 @@
+# Output conversion tests
+
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,2:1111011101001010001010000111011010100001010000110010011010011000100100100011101100000111011001111101101000011001110111001111001111010111000101111001010111101110
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,3:22012212212000122111011022212212002120111111102001120012102211211202200102022110202002000211111221202
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,4:33131022022013122201100302122120210203230013121331220121313033033113011321113232
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,5:404041130042310320100141302000203430214122130002340212132414134210033
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,6:44515230120451152500101352430105520150025145320010504454125502
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,7:644641136612541136016610100564613624243140151310023515322
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,8:173512120732412062323044435407317550316717172705712756
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,9:265785018434285762514442046172754680368422060744852
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,10:1411774500397290569709059837552310354075408897518
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,11:184064268501499311A17746095910428222A241708032A
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,12:47706011B225950B02BB45602AA039893118A85950892
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,13:1A188C826B982353CB58422563AC602B783101671A86
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,14:105957B358B89B018958908A9114BC3DDC410B77982
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,15:CB7B3387E23452178846C55DD9D70C7CA9AEA78E8
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,16:F74A2876A1432698923B0767DA19DCF3D71795EE
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,17:17BF7C3673B76D7G7A5GA836277296F806E7453A
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,18:2EBG8HH3HFA6185D6H0596AH96G24C966DD3HG2
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,19:6G3HGBFEG8I3F25EAF61B904EIA40CFDH2124F
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,20:10AHC3D29EBHDF3HD97905CG0JA8061855C3FI
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,21:3BA5A55J5K699B2D09C38A4B237CH51IHA132
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,22:EDEA90DJ0B5CB3FGG1C8587FEB99D3C143CA
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,23:31M26JI1BBD56K3I028MML4EEDMAJK60LGLE
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,24:GGG5M3142FKKG82EJ28111D70EMHC241E4E
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,25:4446F4D5H10982023N297BF0DKBBHLLJB0I
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,26:12E9DEEOBMKAKEP0IM284MIP7FO1O521M46
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,27:85NN0HD48NN2FDDB1F5BMMKIB8CK20MDPK
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,28:2D882A7A0O0JPCJ4APDRIB77IABAKDGJP2
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,29:MFMCI0R7S27AAA3O3L2S8K44HKA7O02CN
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,30:7IGQS73FFSHC50NNH44B6PTTNLC3M6H78
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,31:2KLUB3U9850CSN6ANIDNIF1LB29MJ43LH
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,32:UT52GTL18CJ9H4HR0TJTK6ESUFBHF5FE
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,33:BTVL87QQBMUGF8PFWU4W3VU7U922QTMW
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,34:4OG10HW0MSWJBIDEE2PDH24GA7RIHIAA
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,35:1W8W9AX2DRUX48GXOLMK0PE42H0FEUWN
+tostr:#xF74A2876A1432698923B0767DA19DCF3D71795EE,36:SVWI84VBH069WR15W1U2VTK06USY8Z2
+
+# Conversion to binary
+
+tobin:0:0
+tobin:-1:255
+tobin:1:1
+tobin:97:97
+tobin:8492:33.44
+tobin:-69393016:251.221.37.136
+tobin:-218193:252.171.175
+tobin:662844:10.29.60
+tobin:8241131209300:7.126.201.178.194.84
+tobin:705223363410:0.164.50.150.139.82
+tobin:-28632557663:249.85.93.215.161
+tobin:-553325346410701486:248.82.49.135.113.248.93.82
+tobin:-907482337424:255.44.181.214.111.112
+tobin:4770047168390927:16.242.85.39.8.167.15
+tobin:977875907836789049:13.146.28.245.9.6.65.57
+tobin:3572115845746903:12.176.210.8.21.16.215
+tobin:28949534667733:26.84.86.186.243.213
+tobin:-183125616657544851234:246.18.159.29.228.28.174.208.222
+tobin:827162476353576735:11.122.171.227.198.150.95.31
+tobin:77184512995655260:1.18.54.231.215.68.126.92
+tobin:115255556962215997764:6.63.125.254.104.50.175.49.68
+tobin:54297489021590339048:2.241.135.110.149.175.144.125.232
+tobin:393928929335369918394864191:1.69.217.178.12.173.1.47.149.43.18.63
+tobin:-75550878255305302924368236946:255.11.225.199.59.30.217.134.166.120.200.174.110
+tobin:35784643040276670536818634:29.153.177.98.228.47.31.93.65.31.202
+tobin:-5876364928874055124010543482048:181.212.112.219.201.219.43.162.130.153.141.251.64
+tobin:555590330388726236230755046204154:27.100.137.45.209.201.206.212.69.137.217.165.34.250
+tobin:2123372635933612270094308954044:26.204.252.173.123.198.84.97.94.88.53.79.188
+tobin:373404212231777284568356947010238:18.105.6.21.0.246.144.164.13.115.91.8.162.190
+tobin:355087294263155005473388626149338730:68.99.39.192.10.100.204.157.215.128.79.45.43.110.106
+tobin:9075406350072985013229496898492710997:6.211.220.20.76.13.2.68.169.142.198.197.165.106.64.85
+tobin:8633675426061757629757850232155550:1.169.172.77.223.131.135.137.86.71.95.134.109.237.158
+tobin:-217191451486096670046812323372237867852:255.92.154.114.175.151.49.93.18.105.200.58.156.24.75.180.180
+tobin:26829035080908738042076334435395170:5.42.198.7.200.110.201.64.35.201.25.125.64.230.98
+tobin:16360606577002719669450329100985058711:12.78.240.46.160.248.51.247.149.232.48.220.205.240.69.151
+tobin:26026773591715017125540836707619882:5.3.56.17.26.95.176.214.116.53.154.110.71.84.42
+tobin:-315068060596719455443436752409094193:195.81.241.253.255.182.14.126.183.113.140.138.49.151.207
+tobin:1404578023533398209741079145277644921444663:16.31.175.15.121.161.137.196.26.125.240.115.59.220.1.85.25.55
+tobin:713575197074178787527618959331047471995825:8.49.2.79.246.51.45.90.242.199.86.95.47.64.104.90.91.177
+tobin:83871430502261490413450673851124769661:63.25.12.201.105.63.89.102.174.73.208.109.149.109.99.125
+tobin:1369887131891462493813741667459688172443624:15.185.188.136.198.40.60.46.152.22.161.146.105.88.210.253.87.232
+tobin:829432057166494966641315010911028795638578:9.133.123.83.146.186.254.230.112.155.225.249.127.219.248.43.131.50
+tobin:312089922808936140630879643949120224211369:3.149.38.92.196.150.155.232.60.223.247.126.50.176.14.127.177.169
+tobin:152333180111442438605972376130506110244327899219:26.174.219.37.168.212.28.162.39.139.47.209.114.56.212.157.2.33.192.83
+tobin:-2899223787613074281110944570982644571450999:222.183.242.113.50.20.39.238.192.239.78.170.102.70.102.231.209.137
+tobin:444765267932710530788173695233378407323077034767:77.231.246.225.189.253.236.180.85.80.95.147.220.91.211.171.195.205.195.15
+tobin:2928186048102542874310326072002539929893828809270937:7.211.139.211.153.76.242.8.164.101.41.243.188.255.255.239.194.98.21.205.38.153
+tobin:-826647521214480264223642441769570761615607819637146:253.202.98.131.34.175.212.21.119.210.126.69.61.176.197.180.182.201.116.60.110.102
+tobin:8400624623087855337736820815095169248114548022:1.120.178.112.248.52.41.234.187.122.100.10.161.143.20.186.83.68.157.54
+tobin:-14981001549924280586667180618266982428182337700429:245.191.228.168.55.2.155.157.248.12.207.194.168.98.220.91.66.110.69.189.179
+tobin:710160715229320560332911086106093153060357460087262479:7.106.23.173.245.150.209.228.252.222.62.180.93.143.150.200.182.76.119.140.239.205.15
+tobin:73883264784349702632503413711514594728450092072160898:0.197.120.251.47.105.95.210.233.70.183.8.43.3.136.2.36.106.51.96.215.206.130
+
+# Conversion from binary
+
+readbin:0:0
+readbin:255:-1
+readbin:1:1
+readbin:97:97
+readbin:33.44:8492
+readbin:251.221.37.136:-69393016
+readbin:252.171.175:-218193
+readbin:10.29.60:662844
+readbin:7.126.201.178.194.84:8241131209300
+readbin:0.164.50.150.139.82:705223363410
+readbin:249.85.93.215.161:-28632557663
+readbin:248.82.49.135.113.248.93.82:-553325346410701486
+readbin:255.44.181.214.111.112:-907482337424
+readbin:16.242.85.39.8.167.15:4770047168390927
+readbin:13.146.28.245.9.6.65.57:977875907836789049
+readbin:12.176.210.8.21.16.215:3572115845746903
+readbin:26.84.86.186.243.213:28949534667733
+readbin:246.18.159.29.228.28.174.208.222:-183125616657544851234
+readbin:11.122.171.227.198.150.95.31:827162476353576735
+readbin:1.18.54.231.215.68.126.92:77184512995655260
+readbin:6.63.125.254.104.50.175.49.68:115255556962215997764
+readbin:2.241.135.110.149.175.144.125.232:54297489021590339048
+readbin:1.69.217.178.12.173.1.47.149.43.18.63:393928929335369918394864191
+readbin:255.11.225.199.59.30.217.134.166.120.200.174.110:-75550878255305302924368236946
+readbin:29.153.177.98.228.47.31.93.65.31.202:35784643040276670536818634
+readbin:181.212.112.219.201.219.43.162.130.153.141.251.64:-5876364928874055124010543482048
+readbin:27.100.137.45.209.201.206.212.69.137.217.165.34.250:555590330388726236230755046204154
+readbin:26.204.252.173.123.198.84.97.94.88.53.79.188:2123372635933612270094308954044
+readbin:18.105.6.21.0.246.144.164.13.115.91.8.162.190:373404212231777284568356947010238
+readbin:68.99.39.192.10.100.204.157.215.128.79.45.43.110.106:355087294263155005473388626149338730
+readbin:6.211.220.20.76.13.2.68.169.142.198.197.165.106.64.85:9075406350072985013229496898492710997
+readbin:1.169.172.77.223.131.135.137.86.71.95.134.109.237.158:8633675426061757629757850232155550
+readbin:255.92.154.114.175.151.49.93.18.105.200.58.156.24.75.180.180:-217191451486096670046812323372237867852
+readbin:5.42.198.7.200.110.201.64.35.201.25.125.64.230.98:26829035080908738042076334435395170
+readbin:12.78.240.46.160.248.51.247.149.232.48.220.205.240.69.151:16360606577002719669450329100985058711
+readbin:5.3.56.17.26.95.176.214.116.53.154.110.71.84.42:26026773591715017125540836707619882
+readbin:195.81.241.253.255.182.14.126.183.113.140.138.49.151.207:-315068060596719455443436752409094193
+readbin:16.31.175.15.121.161.137.196.26.125.240.115.59.220.1.85.25.55:1404578023533398209741079145277644921444663
+readbin:8.49.2.79.246.51.45.90.242.199.86.95.47.64.104.90.91.177:713575197074178787527618959331047471995825
+readbin:63.25.12.201.105.63.89.102.174.73.208.109.149.109.99.125:83871430502261490413450673851124769661
+readbin:15.185.188.136.198.40.60.46.152.22.161.146.105.88.210.253.87.232:1369887131891462493813741667459688172443624
+readbin:9.133.123.83.146.186.254.230.112.155.225.249.127.219.248.43.131.50:829432057166494966641315010911028795638578
+readbin:3.149.38.92.196.150.155.232.60.223.247.126.50.176.14.127.177.169:312089922808936140630879643949120224211369
+readbin:26.174.219.37.168.212.28.162.39.139.47.209.114.56.212.157.2.33.192.83:152333180111442438605972376130506110244327899219
+readbin:222.183.242.113.50.20.39.238.192.239.78.170.102.70.102.231.209.137:-2899223787613074281110944570982644571450999
+readbin:77.231.246.225.189.253.236.180.85.80.95.147.220.91.211.171.195.205.195.15:444765267932710530788173695233378407323077034767
+readbin:7.211.139.211.153.76.242.8.164.101.41.243.188.255.255.239.194.98.21.205.38.153:2928186048102542874310326072002539929893828809270937
+readbin:253.202.98.131.34.175.212.21.119.210.126.69.61.176.197.180.182.201.116.60.110.102:-826647521214480264223642441769570761615607819637146
+readbin:1.120.178.112.248.52.41.234.187.122.100.10.161.143.20.186.83.68.157.54:8400624623087855337736820815095169248114548022
+readbin:245.191.228.168.55.2.155.157.248.12.207.194.168.98.220.91.66.110.69.189.179:-14981001549924280586667180618266982428182337700429
+readbin:7.106.23.173.245.150.209.228.252.222.62.180.93.143.150.200.182.76.119.140.239.205.15:710160715229320560332911086106093153060357460087262479
+readbin:0.197.120.251.47.105.95.210.233.70.183.8.43.3.136.2.36.106.51.96.215.206.130:73883264784349702632503413711514594728450092072160898
+#
+# -- From Tom Wu, triggered a bug in s_qmul():
+#
+readbin:22.200.146.12.243.10.174.111.79.92.242.37.59.156.205.75.163.223.107.103.20.203.19.168.35.69.241.146.93.87.91.210:10305260085868809781027103920001537650251216529133196585936939957967423757266
+
+# Conversion to unsigned
+
+to-uns:19:19
+to-uns:732849:11.46.177
+to-uns:2456939301:146.113.235.37
+to-uns:65221819301662:59.81.163.94.255.30
+to-uns:-844378241131209300:11.183.213.137.94.177.226.84
+to-uns:8570522336341023286325:1.208.155.227.240.84.37.160.100.53
+to-uns:57663995533253464107014863:47.178.211.118.41.71.211.74.100.90.207
+to-uns:290748233742495477004716839092:3.171.117.77.85.127.49.10.213.243.253.144.180
+to-uns:7769778759078367890498335721158457:1.127.20.101.49.86.0.169.68.4.237.33.216.119.57
+to-uns:46903702894953466773316183125616657544:35.73.83.24.98.4.211.124.18.69.32.88.95.142.132.136
+to-uns:-851234028271624763535767352077184512995655:9.197.141.78.121.20.132.41.143.246.59.33.126.2.92.102.177.71
+to-uns:-2609311525555696221599776451542974890215903390:117.1.109.101.2.62.220.206.134.57.198.156.134.252.135.230.114.144.158
+to-uns:48673939289293353699183948641914875550878255305302:33.77.214.236.147.20.12.74.7.55.12.207.229.43.143.81.121.102.216.82.86
+to-uns:924368236946243578464304027667053681863478587636492887:9.166.158.105.220.232.187.149.229.98.114.203.143.151.179.13.117.242.141.170.94.170.87
+to-uns:4055124010543482048995555903303887262362307550462041543621:165.97.120.89.181.168.202.95.163.0.0.6.89.126.141.209.204.168.88.165.194.166.83.197
+to-uns:23372635933612270094308954044673734042122317772845683569470102:14.139.121.201.25.49.14.230.89.139.204.223.141.232.201.189.74.36.63.100.115.152.44.110.42.150
+to-uns:382935508729426315500547338862614933873079907540635007298501322949:3.162.221.90.36.235.220.148.206.72.220.121.230.47.59.194.10.29.105.64.171.5.133.101.247.195.168.197
+to-uns:6898492710997158633675426061757629757850232155550392171914514860966700:255.225.26.217.121.147.85.123.62.227.155.115.151.17.14.226.20.151.216.70.129.251.123.127.200.253.229.131.44
+to-uns:46812323372237867852342682903508090873804207633443539517026163606065770027:26.126.173.147.234.225.62.206.132.172.56.142.212.124.86.139.56.123.128.83.59.140.190.156.37.116.71.8.107.238.43
+to-uns:196694503291009850587117226026773591715017125540836707619882023150680605967194:1.178.221.36.198.34.91.147.187.41.80.248.32.21.173.116.21.184.114.128.226.148.105.231.211.137.139.144.142.36.59.195.90
+to-uns:-5544343675240909419388140457802353339820974107914527764492144466356713575197074178:187.9.226.242.27.68.215.247.155.152.75.195.109.94.123.200.36.80.1.19.58.240.99.181.158.175.120.210.195.130.202.54.99.2
+to-uns:78752761895933104747199582531838714305022614904134506738511247696618513698871318914624:40.137.215.13.233.153.110.152.75.205.157.188.162.180.175.192.136.147.0.49.169.41.111.20.20.6.222.4.94.232.86.88.35.227.166.64
+to-uns:938137416674596881724436242382943205716649496664131501091102879563857843031208992280893614:7.94.95.163.78.130.176.52.11.67.110.168.191.141.240.164.45.130.231.131.248.48.191.162.48.249.20.181.82.141.159.150.82.213.105.159.88.174
+to-uns:-630879643949120224211369280152333180111442438605972376130506110244327899219912899223787613074:19.91.70.129.236.212.139.74.185.0.218.23.135.137.133.202.56.181.112.58.173.172.130.179.124.221.173.55.223.123.126.130.88.154.176.35.3.43.146
+to-uns:28111094457098264457145099945444765267932710530788173695233378407323077034767182928186048102542874:13.41.35.240.41.168.225.145.107.18.87.253.43.231.202.150.209.215.163.157.127.252.45.194.199.62.14.60.97.225.213.204.55.37.185.133.79.239.24.46.26
+
+# Conversion from unsigned
+
+readuns:19:19
+readuns:11.46.177:732849
+readuns:146.113.235.37:2456939301
+readuns:59.81.163.94.255.30:65221819301662
+readuns:11.183.213.137.94.177.226.84:844378241131209300
+readuns:1.208.155.227.240.84.37.160.100.53:8570522336341023286325
+readuns:47.178.211.118.41.71.211.74.100.90.207:57663995533253464107014863
+readuns:3.171.117.77.85.127.49.10.213.243.253.144.180:290748233742495477004716839092
+readuns:1.127.20.101.49.86.0.169.68.4.237.33.216.119.57:7769778759078367890498335721158457
+readuns:35.73.83.24.98.4.211.124.18.69.32.88.95.142.132.136:46903702894953466773316183125616657544
+readuns:9.197.141.78.121.20.132.41.143.246.59.33.126.2.92.102.177.71:851234028271624763535767352077184512995655
+readuns:117.1.109.101.2.62.220.206.134.57.198.156.134.252.135.230.114.144.158:2609311525555696221599776451542974890215903390
+readuns:33.77.214.236.147.20.12.74.7.55.12.207.229.43.143.81.121.102.216.82.86:48673939289293353699183948641914875550878255305302
+readuns:9.166.158.105.220.232.187.149.229.98.114.203.143.151.179.13.117.242.141.170.94.170.87:924368236946243578464304027667053681863478587636492887
+readuns:165.97.120.89.181.168.202.95.163.0.0.6.89.126.141.209.204.168.88.165.194.166.83.197:4055124010543482048995555903303887262362307550462041543621
+readuns:14.139.121.201.25.49.14.230.89.139.204.223.141.232.201.189.74.36.63.100.115.152.44.110.42.150:23372635933612270094308954044673734042122317772845683569470102
+readuns:3.162.221.90.36.235.220.148.206.72.220.121.230.47.59.194.10.29.105.64.171.5.133.101.247.195.168.197:382935508729426315500547338862614933873079907540635007298501322949
+readuns:255.225.26.217.121.147.85.123.62.227.155.115.151.17.14.226.20.151.216.70.129.251.123.127.200.253.229.131.44:6898492710997158633675426061757629757850232155550392171914514860966700
+readuns:26.126.173.147.234.225.62.206.132.172.56.142.212.124.86.139.56.123.128.83.59.140.190.156.37.116.71.8.107.238.43:46812323372237867852342682903508090873804207633443539517026163606065770027
+readuns:1.178.221.36.198.34.91.147.187.41.80.248.32.21.173.116.21.184.114.128.226.148.105.231.211.137.139.144.142.36.59.195.90:196694503291009850587117226026773591715017125540836707619882023150680605967194
+readuns:187.9.226.242.27.68.215.247.155.152.75.195.109.94.123.200.36.80.1.19.58.240.99.181.158.175.120.210.195.130.202.54.99.2:5544343675240909419388140457802353339820974107914527764492144466356713575197074178
+readuns:40.137.215.13.233.153.110.152.75.205.157.188.162.180.175.192.136.147.0.49.169.41.111.20.20.6.222.4.94.232.86.88.35.227.166.64:78752761895933104747199582531838714305022614904134506738511247696618513698871318914624
+readuns:7.94.95.163.78.130.176.52.11.67.110.168.191.141.240.164.45.130.231.131.248.48.191.162.48.249.20.181.82.141.159.150.82.213.105.159.88.174:938137416674596881724436242382943205716649496664131501091102879563857843031208992280893614
+readuns:19.91.70.129.236.212.139.74.185.0.218.23.135.137.133.202.56.181.112.58.173.172.130.179.124.221.173.55.223.123.126.130.88.154.176.35.3.43.146:630879643949120224211369280152333180111442438605972376130506110244327899219912899223787613074
+readuns:13.41.35.240.41.168.225.145.107.18.87.253.43.231.202.150.209.215.163.157.127.252.45.194.199.62.14.60.97.225.213.204.55.37.185.133.79.239.24.46.26:28111094457098264457145099945444765267932710530788173695233378407323077034767182928186048102542874
+
+# Conversion to small signed integers
+to-int:0:0
+to-int:399392010000012093849283940182938492839481928349823984:$MP_RANGE
+to-int:-29381082039841029384018230948203801985928309481203984:$MP_RANGE
+to-int:-25:-25
+to-int:101:101
+to-int:-1235:-1235
+
+# Conversion to small signed integers
+to-uint:0:0
+to-uint:1:1
+to-uint:10:10
+to-uint:-15:$MP_RANGE
+to-uint:101:101
+to-uint:100000000000000000000000000000000000000000000000000:$MP_RANGE
+
+# Tests to trigger off-by-one bug in computing number of digits needed for string
+tostr:99999999999999999999999999999,10:99999999999999999999999999999
+tostr:9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999,10:9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+tostr:832136388736902947561088644572239329432528812529007215254079045034263648726187965907662527121488680217097287175564480588901672671661161,10:832136388736902947561088644572239329432528812529007215254079045034263648726187965907662527121488680217097287175564480588901672671661161

Added: polly/trunk/lib/External/isl/imath/tests/div.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/div.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/div.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/div.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,963 @@
+# Division tests
+
+# Tests for error conditions
+
+div:102233,0,=1,1:$MP_UNDEF,?
+div:0,=1,583922,-12345:$MP_UNDEF,?
+
+# General division tests, verified using GNU bc
+
+div:0,847887705,0,0:0,0
+div:80000000000000000000,25,0,0:3200000000000000000,0
+div:65000,25,0,0:2600,0
+div:800000000000000,25,0,0:32000000000000,0
+div:-4,58,0,0:0,-4
+div:36869,818935,0,0:0,36869
+div:364,921,0,0:0,364
+div:5169,898,0,0:5,679
+div:#x100000000,#xE424,=1,0:#x11F42,#xD2B8
+div:-6144,15855207,0,0:0,-6144
+div:680441,-8247,0,0:-82,4187
+div:-31218529,577983165,0,0:0,-31218529
+div:3,6280,0,0:0,3
+div:-2,39790,0,0:0,-2
+div:-310,611711,0,0:0,-310
+div:46573596,6038351,0,0:7,4305139
+div:4525534,39110,0,0:115,27884
+div:5938,7789378,0,0:0,5938
+div:19732849245693930165221819301662844,18446744073709551616,=1,=2:1069719901075515,6029073732495380604
+div:9,456578633,=2,=1:0,9
+div:538090499,1858,0,0:289607,693
+div:572,3804550,0,0:0,572
+div:288850,21164,0,0:13,13718
+div:-5190106,34726,0,0:-149,-15932
+div:7795,72811,0,0:0,7795
+div:781579692,-5,0,0:-156315938,2
+div:781579692,-5,=1,=2:-156315938,2
+div:781579692,-5,=2,=1:-156315938,2
+div:453020143,-3473628,0,0:-130,1448503
+div:8,853320290,0,0:0,8
+div:852316479,2925,0,0:291390,729
+div:8,5,0,0:1,3
+div:859848,9,0,0:95538,6
+div:70,48,0,0:1,22
+div:253385147,659538174,0,0:0,253385147
+div:-455686878,87344,0,0:-5217,-13230
+div:28271,635389,0,0:0,28271
+div:-86,2692,0,0:0,-86
+div:8591158476,73,0,0:117687102,30
+div:9082,275389,0,0:0,9082
+div:-582874,74264,0,0:-7,-63026
+div:237,4104,0,0:0,237
+div:7076150589,92653,0,0:76372,55673
+div:28665011462,-1272,0,0:-22535386,470
+div:-8056787359,8082209,0,0:-996,-6907195
+div:53192266,900107,0,0:59,85953
+div:91513,740,0,0:123,493
+div:-98721211,8015090320,0,0:0,-98721211
+div:11450,-36952886107,0,0:0,11450
+div:13925193,949882,0,0:14,626845
+div:683469315,-73092992,0,0:-9,25632387
+div:1164719,42872,0,0:27,7175
+div:-83594243092,3591081825,0,0:-23,-999361117
+div:87138285,266592788,0,0:0,87138285
+div:936091,704216,0,0:1,231875
+div:142238814011,709885571028,0,0:0,142238814011
+div:580,-60286,0,0:0,580
+div:5794931,-5726480,0,0:-1,68451
+div:88764678929,-2091175751,0,0:-42,935297387
+div:950181713208,-13449,0,0:-70650733,5091
+div:97846262,387939152,0,0:0,97846262
+div:32321004,4640815041,0,0:0,32321004
+div:9059,24970299,0,0:0,9059
+div:-223020,974872432,0,0:0,-223020
+div:628713585932,70889408675,0,0:8,61598316532
+div:5404031582279,-4343762403,0,0:-1244,391152947
+div:-27687,92528708054,0,0:0,-27687
+div:71252,-444744751915,0,0:0,71252
+div:2821624059,830276221,0,0:3,330795396
+div:77957,604211270,0,0:0,77957
+div:4336867764,377604023491,0,0:0,4336867764
+div:-1183882,537011618,0,0:0,-1183882
+div:7224227137658,26159,0,0:276166028,11206
+div:40420610021,29600662602,0,0:1,10819947419
+div:-53857,7190456320,0,0:0,-53857
+div:9365,85703,0,0:0,9365
+div:84454441,7874100414786,0,0:0,84454441
+div:-692,-92802,0,0:0,-692
+div:-31682292914,2103996,0,0:-15058,-321146
+div:675174791229,617791,0,0:1092885,274194
+div:151503,-7352433026033,0,0:0,151503
+div:-5675649814790,-45077421077,0,0:125,-40972180165
+div:-259966,4211178684,0,0:0,-259966
+div:99243,8777962733,0,0:0,99243
+div:-603163384555,4331787866,0,0:-139,-1044871181
+div:602983,3355548,0,0:0,602983
+div:-6945091776175,64113609219877,0,0:0,-6945091776175
+div:637048330,39484763123,0,0:0,637048330
+div:-268774166,54251789102520,0,0:0,-268774166
+div:96621785,-44159202070842,0,0:0,96621785
+div:259095,798144185517,0,0:0,259095
+div:673478104612,6115944997,0,0:110,724154942
+div:64865142,-7529340145,0,0:0,64865142
+div:62901084202908,923068964,0,0:68143,395789056
+div:857311552,30222,0,0:28367,4078
+div:6646483,1292987,0,0:5,181548
+div:855267457921,77070194891856,0,0:0,855267457921
+div:930905,-429874001253,0,0:0,930905
+div:-82732,973702689,0,0:0,-82732
+div:7498877,33402368,0,0:0,7498877
+div:2891132,3009602159727,0,0:0,2891132
+div:-16580361,45469862,0,0:0,-16580361
+div:28811879,1156690,0,0:24,1051319
+div:681237481,42215447,0,0:16,5790329
+div:952119,65641,0,0:14,33145
+div:669100,32909317724335,0,0:0,669100
+div:406354444955,4811582310504,0,0:0,406354444955
+div:-87218901,5441737753,0,0:0,-87218901
+div:262693,279060,0,0:0,262693
+div:950539838,98609240829243,0,0:0,950539838
+div:8061719120,-28536222,0,0:-282,14504516
+div:-3551675,11288323481405,0,0:0,-3551675
+div:3133528691,1315285,0,0:2382,519821
+div:1588170591121,9023526203,0,0:176,29979393
+div:1709754910,343280090631449,0,0:0,1709754910
+div:7694474,6311674489334,0,0:0,7694474
+div:285071476,771758808364462,0,0:0,285071476
+div:4473571504184,5027949393624517,0,0:0,4473571504184
+div:-314089112111113,-8919383,0,0:35214219,-5804236
+div:919605168565,-857045700084,0,0:-1,62559468481
+div:-2803909388714,46792205688194,0,0:0,-2803909388714
+div:-864476,-809506582,0,0:0,-864476
+div:157477674603,932718332239208,0,0:0,157477674603
+div:-86938062350,44113358240184,0,0:0,-86938062350
+div:7332602805,35651734,0,0:205,23997335
+div:40677613,7075290162,0,0:0,40677613
+div:6636106412767060,-388484912,0,0:-17082018,153254644
+div:9453362014,-644867786149524,0,0:0,9453362014
+div:123163311944389,-16324640549,0,0:-7544,10223642733
+div:55603403145688,-51970044763,0,0:-1069,47425294041
+div:-54436610546,-9254821627256041,0,0:0,-54436610546
+div:34541223746384523,408005019,0,0:84658820,283766943
+div:23462284247353823,2661546,0,0:8815284142,350291
+div:417392442148,-30391736401961,0,0:0,417392442148
+div:-718458863,-73668989433156990,0,0:0,-718458863
+div:-1215789,25426915315,0,0:0,-1215789
+div:8299846204145462,9023932210324,0,0:919,6852502857706
+div:-82615892630,85109462984880568,0,0:0,-82615892630
+div:828237348372,822759132224411,0,0:0,828237348372
+div:35003657,287087229590,0,0:0,35003657
+div:741329413510689,600380266222,0,0:1234,460164992741
+div:-454795890210,66807881739,0,0:-6,-53948599776
+div:442416942,-79456387864,0,0:0,442416942
+div:7067406608460,507872176187,0,0:13,465068318029
+div:57674203676661022,3315186364,0,0:17396971,2642557578
+div:-6677233842,881012314,0,0:-7,-510147644
+div:828372724537918527,2204184463,0,0:375818239,1222097870
+div:-97445457356928,3845827480,0,0:-25337,-3726496168
+div:644919922824665106,692147849,0,0:931766130,174110736
+div:-54599915326211,-274657876971100,0,0:0,-54599915326211
+div:3507375128,373578606,0,0:9,145167674
+div:19124901,485472050038835999,0,0:0,19124901
+div:687842561,49925524361,0,0:0,687842561
+div:193224391137090311,84335903540,0,0:2291128,41131297191
+div:388138056,66626944,0,0:5,55003336
+div:-656523898932,84101085851135799,0,0:0,-656523898932
+div:86004003567986,713613577148692,0,0:0,86004003567986
+div:7992270343,87209595913499289,0,0:0,7992270343
+div:-890969253231921,739402045213270955,0,0:0,-890969253231921
+div:6345032414365,821532347711110478,0,0:0,6345032414365
+div:-2988926571013999683,766437559276027,0,0:-3899,-586527396770410
+div:-15464671727416040,-618822744180643,0,0:24,-612925867080608
+div:21542413221581,-12802725163,0,0:-1682,8229497415
+div:210193665939,3964410139763307,0,0:0,210193665939
+div:-79273337971,91480286016,0,0:0,-79273337971
+div:6859567649816379680,-89417752889,0,0:-76713710,85837971490
+div:4244108501419250,1773608945178,0,0:2392,1635904553474
+div:-7873175456557395,-541450782136,0,0:14540,-481084299955
+div:2898452653,8240117642629,0,0:0,2898452653
+div:-8585567176400751363,39056741283,0,0:-219822926,-27546697305
+div:4923064817310182,488568656518880796,0,0:0,4923064817310182
+div:3946741285053501,-8922249541453011,0,0:0,3946741285053501
+div:438914382542168,98348892578,0,0:4462,81623859132
+div:257824992496,-9594074905801512,0,0:0,257824992496
+div:6213773111135227489,251684062660,0,0:24688782,155248147369
+div:-851789213354610296,395154960128827139,0,0:-2,-61479293096956018
+div:234318209260,31123149038286353070,0,0:0,234318209260
+div:243854015291982,52511298700,0,0:4643,44055427882
+div:7259566528156,6524807428024562671,0,0:0,7259566528156
+div:-887488809078966765,845297673812,0,0:-1049912,-637771662221
+div:65325904373281379,40360887138954,0,0:1618,21988982453807
+div:85548880813,9240276773237567918,0,0:0,85548880813
+div:7737568342993115224,69017119565996596,0,0:112,7650951601496472
+div:-2862875578129,87167074447,0,0:-32,-73529195825
+div:48121669474016423,812759701293155,0,0:59,168847097720278
+div:-82120995972822350,9793327794599,0,0:-8385,-3942415109735
+div:96669753363716639,3137138094734,0,0:30814,1980112583163
+div:44554701178616,52377515472783262637,0,0:0,44554701178616
+div:12903174971697,577437337389558244582,0,0:0,12903174971697
+div:38970472084822,-12255774904287,0,0:-3,2203147371961
+div:-371784186042,36063372236212364134,0,0:0,-371784186042
+div:-5423240799687893943,69598779690234855,0,0:-77,-64134763539810108
+div:78261697698230901561,532057670838,0,0:147092508,494031019857
+div:-867163311151035436254,1681644368464785,0,0:-515663,-1531175379008799
+div:425847772644293,726262561530005,0,0:0,425847772644293
+div:623414319659742,26868506006719423291,0,0:0,623414319659742
+div:3999344581644,6784937040418183244,0,0:0,3999344581644
+div:-418166904889870721653,99856664384501754791,0,0:-4,-18740247351863702489
+div:4737717701335,43868455388327,0,0:0,4737717701335
+div:-170318802370599286974,88681362021061351331,0,0:-1,-81637440349537935643
+div:-401236499756120675284,617234855370415616,0,0:-650,-33843765350524884
+div:8507669577483416,1708320712715767,0,0:4,1674386726620348
+div:-779872398090729,9483722067689467,0,0:0,-779872398090729
+div:-6974404749995800334378,88119801211272782297,0,0:-79,-12940454305250532915
+div:1644424212644083246063,6570040442718779,0,0:250291,2220195557331374
+div:380529423855576,-66584160392695795292,0,0:0,380529423855576
+div:-59486508603350002,3049574533592654270009,0,0:0,-59486508603350002
+div:4670852164286,194818165100985439247,0,0:0,4670852164286
+div:-9242375894510748,427966685403010,0,0:-21,-255075501047538
+div:-2547406540907066001,9156772267145703887,0,0:0,-2547406540907066001
+div:41045576141401448,295376215711793,0,0:138,283658373174014
+div:-8596645367243,618616563342036461,0,0:0,-8596645367243
+div:-8190662465572761,4614103375660380354519,0,0:0,-8190662465572761
+div:13625026664287920203,962611652006092322040,0,0:0,13625026664287920203
+div:-140239543538185,-36750209483049,0,0:3,-29988915089038
+div:19272745315539563545972,4913276356215789258,0,0:3922,2875446461238076096
+div:81488845695775561589,6137038314233733147,0,0:13,1707347610737030678
+div:59682455708892,188993136701455,0,0:0,59682455708892
+div:-45017621011770980,5037281596391885620833,0,0:0,-45017621011770980
+div:12784502496583369914436,66775897063651761451,0,0:191,30306157425883477295
+div:69627779066297453,44437721988866612,0,0:1,25190057077430841
+div:-9837326629633299,980665943940704469610,0,0:0,-9837326629633299
+div:1548374752880296357809,-3696277363166782287,0,0:-418,3330815076581361843
+div:-708439719674935281,5147784263606738,0,0:-137,-3193275560812175
+div:-7570135590104019,22684260196955,0,0:-333,-16276944518004
+div:7197857209654848797343,5395261067987895097519,0,0:1,1802596141666953699824
+div:42034917537094135582,97988383165721711085970,0,0:0,42034917537094135582
+div:231126155949672582,9057297455411228,0,0:25,4693719564391882
+div:-911497664257321106698,-18662736693873,0,0:48840514,-11481903135976
+div:64066981598227998719,731669238473176,0,0:87562,559739039761807
+div:35960724694947949779,-747063649911230162,0,0:-48,101669499208902003
+div:624879014956928,17179603356281093930126,0,0:0,624879014956928
+div:-3559399723529186749748,153806520430475822650,0,0:-23,-21849753628242828798
+div:-375790972015605,113007880734109473,0,0:0,-375790972015605
+div:-8787548671098011,8921111513701891873,0,0:0,-8787548671098011
+div:-4332240904268358207600,202327025748990,0,0:-21412072,-61385130400320
+div:9234628706335936400446,65579862120113054437,0,0:140,53448009520108779266
+div:-598537435499087,-2334884709153191798659,0,0:0,-598537435499087
+div:-8778093680300813378318,-5335331111760467,0,0:1645276,-1450067999274426
+div:834964892558660,4731312923556947,0,0:0,834964892558660
+div:697663848949724,16714097460480423,0,0:0,697663848949724
+div:660124536913505493,-400393621100679,0,0:-1648,275849339586501
+div:67401867410433679076,433247521397462506,0,0:155,248501593826990646
+div:-3192841130293725192,94067632460761922343048,0,0:0,-3192841130293725192
+div:-888171986451016091961,61046771373537922044313,0,0:0,-888171986451016091961
+div:5413476093760118894,436643671457387927452325,0,0:0,5413476093760118894
+div:3390818445571570,71193890227980923543296,0,0:0,3390818445571570
+div:3709278299197858947885,622346666342073,0,0:5960148,60492485241081
+div:61046636418932697473,752452096310648123,0,0:81,98016617770199510
+div:-9490582336573659,6796700304740895609,0,0:0,-9490582336573659
+div:-6770091537873296360125723,894260210116688124412,0,0:-7570,-541747289967258326883
+div:8265260740385351513048054,-37568692482712647407307,0,0:-220,148394188569083440514
+div:29941612974211919398,17117150207877877221595,0,0:0,29941612974211919398
+div:904565427385797381401147,732377327803549406181,0,0:1235,79427548413864767612
+div:828695336330867,665449887430200916,0,0:0,828695336330867
+div:583964043448404224,-159103379771833684164472,0,0:0,583964043448404224
+div:68659884135230073,3794043309187845772,0,0:0,68659884135230073
+div:-19577883397074285891599,89166539289139219809001,0,0:0,-19577883397074285891599
+div:47123114739550322,81879863505548403487,0,0:0,47123114739550322
+div:2081796666654613977139,-5323946267713561205491896,0,0:0,2081796666654613977139
+div:5580573071674875331019254,48049594740533118,0,0:116141938,18394751853316570
+div:-827318924045362735,6765606250148903029558502,0,0:0,-827318924045362735
+div:74355428058748494058359,-21632036475261687692382908,0,0:0,74355428058748494058359
+div:-704818230891696889912403,4179012972972804984179,0,0:-168,-2744051432265652570331
+div:54203012886802530,8642657915176877761716,0,0:0,54203012886802530
+div:99602518405709989487439,181452400672924186,0,0:548918,29533129791156691
+div:669551881716343753,65924540094419185740265,0,0:0,669551881716343753
+div:17773767489747228176421376,99265471480253104908,0,0:179052,86290264949236434160
+div:68861552761996536283999,3032962718342296259044166,0,0:0,68861552761996536283999
+div:-13017342749140884149199232,79805947528944429,0,0:-163112439,-988735239546901
+div:-846660807407559032521972,77200873303583960046,0,0:-10966,-76030760457326657536
+div:20732670221446843791112897,158830667623944099,0,0:130533168,938387893737265
+div:87479614966913872614027,-20093149492209048359,0,0:-4353,14135227327885107300
+div:815811689877913117,-96853054749489063852925232,0,0:0,815811689877913117
+div:88424170141166441101228,41882896205789554161109080,0,0:0,88424170141166441101228
+div:8907792217571919630,1822019507410919085762,0,0:0,8907792217571919630
+div:508794162072510930223084886,-69410487054586064946,0,0:-7330220,21655243065234616766
+div:7560829661415328254781,71577097034806313439,0,0:105,45234472760665343686
+div:7451615053542910305,1115867448037197150640,0,0:0,7451615053542910305
+div:1420226199720665341735779,832064548724686659546,0,0:1706,724079596349900550303
+div:-389977371089920999571936723,8114703647013040404,0,0:-48058116,-1916145250323817859
+div:675206408971175566604,36474013799024907341535694,0,0:0,675206408971175566604
+div:-502561109202609111272,-414660684126386698299,0,0:1,-87900425076222412973
+div:-7443609476960080458698600,-92469297206353960522,0,0:80498,-15990442999344598644
+div:24688964911945445107348,-799787361463460092976944,0,0:0,24688964911945445107348
+div:74622389634816941348941747,361423050927986753697692,0,0:206,169241143651670087217195
+div:57087631963106216588129,60933956374125435992007156,0,0:0,57087631963106216588129
+div:24667793118599351096874664,944711324818117322023856,0,0:26,105298673328300724254408
+div:564352217106369256763287,81622332712601232269,0,0:6914,15408731444336855421
+div:-419643083493336850638945386,-90994516601676379,0,0:4611740346,-16619082369458252
+div:3968897352690734435372,22251724057784007850845,0,0:0,3968897352690734435372
+div:657621764031152559636,1284248378184585349838990,0,0:0,657621764031152559636
+div:478747162724364955902006,88051418458918816631123,0,0:5,38490070429770872746391
+div:6665622554429783258955137608,694490725232295413492445192,0,0:9,415206027339124537523130880
+div:739043574063917325584775,6568858167203582304319770218,0,0:0,739043574063917325584775
+div:488239617545415130712260,-175755600464230772602,0,0:-2777,166315056246275196506
+div:-45020591983716715,29238208588753924571931348,0,0:0,-45020591983716715
+div:7127560906474483695,2443668648642679038,0,0:2,2240223609189125619
+div:56992002738244984812189281,5608720362174497796029,0,0:10161,1795138189912706738612
+div:6460467352419769344150698,317411399503484718457,0,0:20353,193138325344869395377
+div:-932907356818921691594434039,-97184909630029367110035347,0,0:9,-58243170148657387604115916
+div:3995705323622443163782,89030590085262709211588,0,0:0,3995705323622443163782
+div:767569373426935379750,1549154787571680632324257,0,0:0,767569373426935379750
+div:931318846320283067427330537,-86130685020277950106,0,0:-10812857,65883975492678017695
+div:31826303162303263286188,5737442550621928753,0,0:5547,709334003424493297
+div:57706427262137233402480,76482797550886260948017,0,0:0,57706427262137233402480
+div:72853807229779038632,3169975417424853790892514721,0,0:0,72853807229779038632
+div:656860988961860702860500038,2051614607117987332942,0,0:320167,1695044716052434458724
+div:419136122263611128595,629629147994291589835819893,0,0:0,419136122263611128595
+div:21718233877577237636870231772,28954985957426921952977486934,0,0:0,21718233877577237636870231772
+div:8137115583255366542038482,-53056312894008476008,0,0:-153367,28043639968602119546
+div:350144503855608500819,279913875130875757713464,0,0:0,350144503855608500819
+div:67536193348303696626965587175,157462565791912473045994827,0,0:428,142215189365158163279801219
+div:-6653909716122388287977917,-456461036794945909189066,0,0:14,-263455200993145559330993
+div:37893238038459578489871345783,58476986428077111625242,0,0:648002,33879092754002491279299
+div:9750862793806595478546835,831707298467569713898,0,0:11723,758133871275722520581
+div:82929154752623245294293,793446150807998771837734747,0,0:0,82929154752623245294293
+div:966515993017183338978310,77669990894453129707640,0,0:12,34476102283745782486630
+div:158090994204861340057333,31910675611432229121455470549,0,0:0,158090994204861340057333
+div:1330572162878429717062,21084117694617750279966598211,0,0:0,1330572162878429717062
+div:832245616705658749585054836,-6079221966362676227357795958,0,0:0,832245616705658749585054836
+div:-566340281799124821634,146366719895661144175,0,0:-3,-127240122112141389109
+div:4970340520764553911461,91205816337394717102255090410,0,0:0,4970340520764553911461
+div:3278473198323030526681,2105717666245284028185,0,0:1,1172755532077746498496
+div:2122422503626206527321754,17148805521927416661130,0,0:123,13119424429134278002764
+div:1912021218223919631352475809,38185948805565948914414505595,0,0:0,1912021218223919631352475809
+div:941796603263493070268724375,444845019508763781185108406,0,0:2,52106564245965507898507563
+div:104754716329414707284533930,43667472164404259911976738073,0,0:0,104754716329414707284533930
+div:89122706354696915439758538,31455209252293039108428126,0,0:2,26212287850110837222902286
+div:118480448597792962897533,67244410472175197017373,0,0:1,51236038125617765880160
+div:352695831583961620878034763371,8582622957634803011445036406,0,0:41,808290320934697408788270725
+div:-624005759812006640839,8172000984425101361637221854,0,0:0,-624005759812006640839
+div:7384400794640347039203,-628293484000022806320912136,0,0:0,7384400794640347039203
+div:-2828685708623719356215,7634212328177549702763918762,0,0:0,-2828685708623719356215
+div:-86550506492571342719558,666034531900739098444599,0,0:0,-86550506492571342719558
+div:642452648202950019476496886617,604805196719437392366385471,0,0:1062,149529286907508783395516415
+div:4662456248509569207839,-33567555776748285848111,0,0:0,4662456248509569207839
+div:62996041896426933131446657891,763936004120034809021339118482,0,0:0,62996041896426933131446657891
+div:8345367673768217736530,3642617362546668617513754,0,0:0,8345367673768217736530
+div:-84451394313979740929245775,1334835508641575600458674242637,0,0:0,-84451394313979740929245775
+div:1176029794050678765470272286249,40628825039402391375029153,0,0:28945,28453285176547120053452664
+div:7707482263998465479379,-2829972969411199798203141,0,0:0,7707482263998465479379
+div:-11136894339272544791100807454,67013816338042624404219,0,0:-166188,-2229685917126612460282
+div:-428729652188276782322695284232,-774565897177367154457859446208,0,0:0,-428729652188276782322695284232
+div:626676530287556077206017712837,908674926870287524187734,0,0:689659,688897120453562229270131
+div:2773148741407028218531427,557528937606955521382821134,0,0:0,2773148741407028218531427
+div:75539539184325529932345561314,-502273785664131486016696176,0,0:-150,198471334705807029841134914
+div:3606180022705211288777456393,122973836595862158705454565,0,0:29,39938761425208686319274008
+div:-30856676793350414230630,38692347037119733077452,0,0:0,-30856676793350414230630
+div:28070532442085800846842,6911568634505880039237117,0,0:0,28070532442085800846842
+div:94746783288740489316741633573,86780043180255118744681,0,0:1091803,71804408409905942683730
+div:-24888475865091602999453808074899,-2607720766137261712927817388,0,0:9544,-388873077577211270718923827
+div:53207047214418054977598334400421,4391350648985919720756952364,0,0:12116,1442751304651640907099558197
+div:944627096784739396211350732172,47554680361438235326247368315,0,0:19,41088169917412925012650734187
+div:90507814687564826997063490,263428140883010973433496,0,0:343,151962364692063109374362
+div:40830360719924046206003172846797,289018741615486979391301844046,0,0:141,78718152140382111829612836311
+div:46815309089103159131589670878273,844714076577304483690089137,0,0:55421,410251112367341001240816596
+div:766097719529863726042659,864954870692483641146857,0,0:0,766097719529863726042659
+div:36588837904828449995291554992448,5981291437419281216117821938,0,0:6117,1278182134706796298838197702
+div:744905055097349284759083504,-402232162933870784393172,0,0:-1851,373321506754462847322132
+div:-496174511680228005426626189898,6850190505814392535531175627173,0,0:0,-496174511680228005426626189898
+div:117807976873474930026716,72472466715338440688738889,0,0:0,117807976873474930026716
+div:29688886500382323149926912509,171231756792519788711530194,0,0:173,65792575276399702832188947
+div:95600026518374000257859,99155834015695214013381,0,0:0,95600026518374000257859
+div:947283711638216525748681460035,375183675933541675266484,0,0:2524853,81906386026327073533183
+div:41432664026918887246001356,89293848269510580767075145704,0,0:0,41432664026918887246001356
+div:347133325715091646723859014383300,8007256671477794251698509596618,0,0:43,2821288841546493900823101728726
+div:-72131155022320848089529987358,607237864853852225127081848,0,0:-118,-477086969566285524534329294
+div:52607679919645038811433035271755,-86393659667162016384842618430,0,0:-608,80334842010532849448723266315
+div:507690908006392398957998748,2764904388542893841465155862,0,0:0,507690908006392398957998748
+div:65723044947927998584588839362573,-414671665541745655865677654655,0,0:-158,204921792332184957811769927083
+div:58581181220230933312243002393,727812383468376773626369395972,0,0:0,58581181220230933312243002393
+div:55621061599265643370130457,75058109335016054327498821167125,0,0:0,55621061599265643370130457
+div:8042490680681402413656869107,985374040566072816763255884821,0,0:0,8042490680681402413656869107
+div:205865392688566277909245217913157,188746850681839171579701059,0,0:1090695,146384137702663123171367152
+div:645469876768555458540596006480343,-1176209889279660120170867010701,0,0:-548,906857443301712686960884616195
+div:-372748268475137934411499506,-6952751051457138928077564508,0,0:0,-372748268475137934411499506
+div:-53726448220098738825476944862,666316374954612779881255280093902,0,0:0,-53726448220098738825476944862
+div:3999043104096914451698824,53972081370928852391234278,0,0:0,3999043104096914451698824
+div:6875840365821778484266515548732,-48235349383818088293481585385242,0,0:0,6875840365821778484266515548732
+div:464946247859367335487708854577230,-91038566114714256247221434416,0,0:-5107,12290711521628833148989014718
+div:774638812953340934130134234932,1781076313255841252742417918164985,0,0:0,774638812953340934130134234932
+div:181439807984506382551684665,983773852096178563301436779,0,0:0,181439807984506382551684665
+div:-16817917749776745039099453680,29825644384864912855101360,0,0:-563,-26079961097799101677388000
+div:22133214432524045001245001353,-198976752808774771294935518769806,0,0:0,22133214432524045001245001353
+div:2921499120428770523924215,57361572214425723589097781,0,0:0,2921499120428770523924215
+div:123171649003149782751271079,-73094968897222766037958236983376,0,0:0,123171649003149782751271079
+div:769172117059026460908975826,97495810773186124439901474,0,0:7,86701441646723589829665508
+div:94112063717361782849247888341,9764365600045726199272325886020217,0,0:0,94112063717361782849247888341
+div:9469809875854665598033283678676801,13423826176729482294685830678,0,0:705447,11970959382501694048484373735
+div:-842464855184253146889699,56551832462429857048225522,0,0:0,-842464855184253146889699
+div:598571783530686410412162091727492,943878487966896512387279950152,0,0:634,152822159674021558626603331124
+div:6953911548504792867117243682880,-1243290077624733705142673151816,0,0:-5,737461160381124341403877923800
+div:-9281561117131091717433858956,24045037010263371696747810870864,0,0:0,-9281561117131091717433858956
+div:143976137737540251569359185478383,265536580911922810877928898030231,0,0:0,143976137737540251569359185478383
+div:40928612217108238156488248958516,652899471410195581619563697,0,0:62687,303052817307731502659484677
+div:-70884981920443005098389267,994979502748896336180903347917699,0,0:0,-70884981920443005098389267
+div:6634749014277303650696175833,495438828683857357740137178054,0,0:0,6634749014277303650696175833
+div:7422909929360831470432375670687378,44420776675922024505687379448537,0,0:167,4640224481853377982583302781699
+div:46314400055365971953154263039,8152799875814716360460312147,0,0:5,5550400676292390150852702304
+div:6591812486274558813658703427,17421702938564211067047963695822,0,0:0,6591812486274558813658703427
+div:124008796997131146663153333663944,123778079237035114605937158,0,0:1001863,119198477435638705314738590
+div:7901064786124799043739659032,5571379890858077238984496202525017,0,0:0,7901064786124799043739659032
+div:-6965802504602789618852220893,639736224353884761032877844589149,0,0:0,-6965802504602789618852220893
+div:971873099542038287548098257,33891065268003504765508649367,0,0:0,971873099542038287548098257
+div:675025802085588841328307981424510,5883130258364185867146732282508,0,0:114,4348952632071652473580501218598
+div:3002202702401536393223671580,32010263936497485071510555,0,0:93,25248156307270281573189965
+div:34972912833617921349910233,474530829196480379440614753566093,0,0:0,34972912833617921349910233
+div:276535788922741466724367182792751,-9977731202427442856055105791931326,0,0:0,276535788922741466724367182792751
+div:14688056569711843047315045,33632661368158430395335244297,0,0:0,14688056569711843047315045
+div:-879571497507836359459742179631,46691865250496831422027355865479980,0,0:0,-879571497507836359459742179631
+div:494117042357580878818138056,29316968901414007402594292795459,0,0:0,494117042357580878818138056
+div:1256269358576514580546391822558882,-5715622931835594771199373401675,0,0:-219,4547936504519325653729047592057
+div:-7954432693582559842284447426278,-1415175992700551307691498753891217,0,0:0,-7954432693582559842284447426278
+div:9290637525511632506517536450,31193173758140935479273605091020135,0,0:0,9290637525511632506517536450
+div:741965597318745797468077425593,5090853342489379493387893,0,0:145744,4267770973672583752348201
+div:28726807242801656618422278445,-66260445037131724567939080371803922,0,0:0,28726807242801656618422278445
+div:600680612706025211965401567803,601606994582634974447563159467,0,0:0,600680612706025211965401567803
+div:-66914527546382741959361703369956,7595234786937152212557447828,0,0:-8810,-509073466430966730588005276
+div:-477200248767482289180868434831103210,299754033389841609330851428,0,0:-1591972736,-104820787767789757788436202
+div:1602055237860095405473195539557021,-482613481963019529862911261825616,0,0:-3,154214791971036815884461754080173
+div:5847782734638264086149188726633444,856996324395574391409855532415801398,0,0:0,5847782734638264086149188726633444
+div:79271780305017072764462340,334727107872141024597713303,0,0:0,79271780305017072764462340
+div:-8309528822503909832876248028239283,-280321240085800591419535364757,0,0:29642,-246623880608702018380746112289
+div:-7036110366628173318660022670592,28316814714059617609323292157,0,0:-248,-13540317541388151547846215656
+div:948009776246268508005837034128,9919518492899054009114568949283,0,0:0,948009776246268508005837034128
+div:18836117763174709382287464458,-95991422838941512823432481785039,0,0:0,18836117763174709382287464458
+div:46329535017445104282274302989008943,2426057049787109955278434918171122342,0,0:0,46329535017445104282274302989008943
+div:297935043427322209379153089088,5013180436585374804022483003677803281,0,0:0,297935043427322209379153089088
+div:-118750521055580916050992218218817,60015490720625049417386142837,0,0:-1978,-39880410184568303402427687231
+div:575684179239053603789472576628353,7053037456193336012438564397416,0,0:81,4388145287393386781948860437657
+div:-22678246623112702170004970988490199,56088891589189424871010131732,0,0:-404326,-49442422098769608928465817567
+div:6471427876906983381994784223,7282306840714785835314255152341703,0,0:0,6471427876906983381994784223
+div:603142728037804458149682405206,-650651299197030110194378722974,0,0:0,603142728037804458149682405206
+div:95931851622486456387293188404091,30758076059621180125667261744973187,0,0:0,95931851622486456387293188404091
+div:-726881908942360166762114252209703,363140012331598428300964292698,0,0:-2001,-238744266831711731884702521005
+div:615441001400268210176031416893518,64796591895996509835103891278541,0,0:9,32271674336299621660096395386649
+div:-84863286321984569539608600726350943,95803928515186040910470967405915312,0,0:0,-84863286321984569539608600726350943
+div:127629355200690947978534550183,797344806129236668518995114759425,0,0:0,127629355200690947978534550183
+div:2288916268196725535426416610805794415,4632856553925567389796050303893057,0,0:494,285130557495244867167760682624257
+div:976908939861250135603632878187851391,-6608040757199335387091406901838035,0,0:-147,5526948552947833701196063617660246
+div:-12183790198926859582276525192366339,3503085624005426351029343283863,0,0:-3478,-58398635986733396469251090825
+div:162265381015355009933791722345838,7623537904684559645894301151112382716,0,0:0,162265381015355009933791722345838
+div:-593766143424589564713907089125639,224331769330731597387481028255128,0,0:-2,-145102604763126369938945032615383
+div:604869729619335696245226863211466041,93942209533557682128293773108407,0,0:6438,69784642291338703271551939541775
+div:742895297953619211242501957373791,531142018450802021651202332570,0,0:1398,358756159397984974121096440931
+div:27653047597891730507139754824,5480890077990244820355276983606,0,0:0,27653047597891730507139754824
+div:3784487646863079978435416373977,694796147453752363831293132728,0,0:5,310506909594318159278950710337
+div:2973223272105672225946453215625903,19361627619874023404230915287,0,0:153562,13011542577443945945402323609
+div:245900231135215525853387549499,-7177692471091872136903418261273,0,0:0,245900231135215525853387549499
+div:9997981965333038339861175645427,-4045879607573312864719096965459966764,0,0:0,9997981965333038339861175645427
+div:6806842983457720589405220668623962,-927052066456609430942182858322,0,0:-7342,426711533294147427714122823838
+div:-122270014267619817663497887649323141,-2162707234463692663424997827917303191,0,0:0,-122270014267619817663497887649323141
+div:-73410057200050892585310982601,-2781563564880350086545084449330,0,0:0,-73410057200050892585310982601
+div:41074074074626336295845220577523,73580647879659031572628791338989878719,0,0:0,41074074074626336295845220577523
+div:38518920335521852358928552909455,934752467373574138232063654381123270465,0,0:0,38518920335521852358928552909455
+div:4300545050696782443239516173845124,-9078020631753897849258060104921396,0,0:0,4300545050696782443239516173845124
+div:9125102035522831694438174632387280948,14030892071253083076166776508287771,0,0:650,5022189208327694929769902000229798
+div:10049229592281672286226252965830,-947015519470033748849687371329705317719,0,0:0,10049229592281672286226252965830
+div:74199952025194030063111669270731296,53730729670173947678290654632594,0,0:1380,51545080353982267070565877751576
+div:62962644403023975314385553509953336,18661881999119919255366397124335,0,0:3373,16116419992487666034696009571381
+div:-48885268599530160005042589357517742267,1224963343286960109782754733806,0,0:-39907535,-1103588784380283462421739114057
+div:8260532189465861184106347872307,8068023378797368816499164870542708410,0,0:0,8260532189465861184106347872307
+div:-873293644410280888333970242222255556855,-53468033733881855748079429886216144,0,0:16333,-249434788538400588913890687276903
+div:8118527378780784121252739484687134,7449409022714146507892440406735208908,0,0:0,8118527378780784121252739484687134
+div:28529491283005611559168619648453262781,-883723803503785940933815830371,0,0:-32283266,663961158020941954801575391095
+div:899559711064017522862617539102500,-566535897303370911043077254061825,0,0:-1,333023813760646611819540285040675
+div:15574337293150371571515035679594790928,-55555266615224096139156320494291715,0,0:-280,18862640887624652551265941193110728
+div:4585681465427957919096525629579,66250889555016187900342661335447207,0,0:0,4585681465427957919096525629579
+div:740366425347027728645955294884621471,-8981847007405192941035608249485839462,0,0:0,740366425347027728645955294884621471
+div:995741708152482543471981480782324347091,21342276145547465497291491758534,0,0:46655834,15123660154109622191683793959735
+div:-3250628989112846425058431588079956,188350448043333903099558871335715,0,0:-17,-48671372376170072365930775372801
+div:876756580410958121101100042110445,700377806984105935223010779109492,0,0:1,176378773426852185878089263000953
+div:273777021637125264614902200521817247,5596822025834012700584044296044,0,0:48916,2875421428699353133089736528943
+div:-464090250274653177412801749314226,331074623300822560323451165878,0,0:-1401,-254703030200770399646665919148
+div:396075925225537300206063956732379,43995671606762821537409289353046922,0,0:0,396075925225537300206063956732379
+div:-18658324380438997683615076571716,5092778408442460759386491384527084996615,0,0:0,-18658324380438997683615076571716
+div:-3965312367885757866883408465644,62732726984931603243998191276757746,0,0:0,-3965312367885757866883408465644
+div:18384490431288410418670437084794892,251064583418108672333112094297258,0,0:73,56775841766477338353254201095058
+div:5162911931645462592809376061314438,276766756569293637905979057590818,0,0:18,181110313398177110501753024679714
+div:8135417534757202149267580550442399,57219388491890904146726624261571751057,0,0:0,8135417534757202149267580550442399
+div:182770016919229728734188047616685,-40885421527209929308823628618058876,0,0:0,182770016919229728734188047616685
+div:92048299381294008029880374643382,11111217138310865417953673269446,0,0:8,3158562274807084686250988487814
+div:5200981870655088437520091813182496782,8050665661143383427978138223450564832,0,0:0,5200981870655088437520091813182496782
+div:756533369514441505798425699358577956,213131801093410029221386684045445047,0,0:3,117137966234211418134265647222242815
+div:799371912191908595027684426426504203412,17112684578666430604042990191541053858717,0,0:0,799371912191908595027684426426504203412
+div:1298725911189943981172370165599649,65794189885654690328812265324475773,0,0:0,1298725911189943981172370165599649
+div:860525228612860972598185202071685976152,151574827288199259902280707159394761797,0,0:5,102651092171864673086781666274712167167
+div:3584182117338772880305442381515310406513,415718227605762773246300051378162,0,0:8621662,71682816997193200587950163461269
+div:3468267249506034567392210570575412440358,2065367734321219422680254672539,0,0:1679249264,1757779312273888004381735679062
+div:50367071916831078065713924791723412318,65724451969804512659247548060987947789728,0,0:0,50367071916831078065713924791723412318
+div:79874071719000306927937931805669,6145217682421427626924604560525904590,0,0:0,79874071719000306927937931805669
+div:423797068560673311763985503147656006,69667145306964427593061472412068457736722,0,0:0,423797068560673311763985503147656006
+div:41523275633578269444354516606248777741194,-694978110274856348249211949536413124775,0,0:-59,519567127361744897651011583600403379469
+div:-87407113783597425860610212435025646,22427444695442827429769682014306,0,0:-3897,-7361805456727366797761625275164
+div:-5398995964042513456203407110806239,759328487523337723297727841375739581,0,0:0,-5398995964042513456203407110806239
+div:-486450683665060870587027665253017864,98034404319738594732566595585128,0,0:-4962,-3969430517963524032217959612728
+div:82802462159510025179539722591174489656,-7995658647747583535810574975199511344136,0,0:0,82802462159510025179539722591174489656
+div:-9247518837150320354892251517725,95037788396291796059988855373871527896146,0,0:0,-9247518837150320354892251517725
+div:-5710350451928497877474611321475359,884522303455599132933755693677751985,0,0:0,-5710350451928497877474611321475359
+div:-6247471877283545360155543727272765071,675373004151999159209581260366203727893602,0,0:0,-6247471877283545360155543727272765071
+div:549120950829660962410197911937811,48123906347804179379843793292937012521427,0,0:0,549120950829660962410197911937811
+div:-106448127960021997407899520808890,9065012874636494312839056387435045253097,0,0:0,-106448127960021997407899520808890
+div:69560159021211857117768649206402791,351520915367913488351778070201730208854,0,0:0,69560159021211857117768649206402791
+div:603624320694634013723571987622589,2701844331050375027455889272518786,0,0:0,603624320694634013723571987622589
+div:67014256406500009956329723823638317486,-1091809123530714597985512683792998,0,0:-61379,104213308278646576940805107893244
+div:235637292979855521853832255322576,-189051691838200548750099363324518519845,0,0:0,235637292979855521853832255322576
+div:46621760725175766077357844382212912326,382903788461287808084560177696868561667,0,0:0,46621760725175766077357844382212912326
+div:17972807610345735075506894651990254671255,55415225623081699101048670679962759717300,0,0:0,17972807610345735075506894651990254671255
+div:-99369177703763557258065488925907194288158,6888487468349330333818924437618675770942,0,0:-14,-2930353146872932584600546799245733494970
+div:6974086110297401606708008289033796059,298190885369602196463446343967843,0,0:23387,295874158515038017388642657851818
+div:22082353893401399289701395360491738,34004577923140732261317680713467602,0,0:0,22082353893401399289701395360491738
+div:3021321469279908093607775280467343863,54418828629265035058612376701138652,0,0:55,28285894670331165384094561904718003
+div:-773023736068095185985747288307356,62254616741081128985277622196480901,0,0:0,-773023736068095185985747288307356
+div:-2914004549648558380597177821180027971982,41945684266123534509905568470747536706,0,0:-69,-19752335286034499413693596698447939268
+div:7760354325840316590533609759835164008896,868363194633558774643668133661139838,0,0:8936,660818594835380317791317439218416528
+div:62481824056284557813538132809580514163491,3063406952822650811300655756477238,0,0:20396187,2989413594030548244777844306671985
+div:999032777586519798809642100185769791083086,53063722362186015952243063915405514648,0,0:18827,2076673643676476761935850430166805190
+div:1470131951969797494200280446936328952439,-985834190529311083948780402821210768,0,0:-1491,253173890594668032648866329903697351
+div:695257822575467619322639555633582443264,6467796678447835413755920250534956,0,0:107495,2018625717551520946908302327348044
+div:34431866058056304430649293119014790521,-66121478435132244087535870280208408759829,0,0:0,34431866058056304430649293119014790521
+div:458534877296422067611914397253412590469,229983379105475980155252782290948271559418,0,0:0,458534877296422067611914397253412590469
+div:2185065840509747880280098827050369,-23363950333069346956170201374188305,0,0:0,2185065840509747880280098827050369
+div:660127414048214811857806676633782977984,64123543109305824067686258949394280427,0,0:10,18891982955156571180944087139840173714
+div:748036409612739266280596599738236249637,-89094948094100676872295250639398845430367,0,0:0,748036409612739266280596599738236249637
+div:9049727473118706892393777842066328396165263,3856651773197697798307166289847038513869,0,0:2346,2022413196907857565165726085176042628589
+div:980189895420499303642948634803744800389758,-3190314421704305860902855244770982859,0,0:-307239,882810490075245016292255552797773457
+div:6108171433112534565184964245024814724366,4260996317082295106607737650284809362606641,0,0:0,6108171433112534565184964245024814724366
+div:358196359808272615858599795581371458918250,9543484816419438536292482064209522533404722,0,0:0,358196359808272615858599795581371458918250
+div:44482449128693269579458765976093879533678,400743721350983175894244132476709300635,0,0:110,400639780085120231091911403655856463828
+div:832339795151923812236511477767777941,2368224477252854985783540371974941967671687,0,0:0,832339795151923812236511477767777941
+div:-27251313242004640465020477977011074115415,2399123426123186914483922523780597130907,0,0:-11,-860955554649584405697330215424505675438
+div:434369443368140265771072488323999183210887,7582603002573727151808563609276596120660,0,0:57,2161072221437818117984362595233204333267
+div:-797664602996630747189073160786968930897788,8488149668482536480367533655921312940145901,0,0:0,-797664602996630747189073160786968930897788
+div:59063238214543857057620510112580247310883,28114133320457432516252314750546246,0,0:2100837,26711994025902474545948986923502981
+div:1573691164802147334879722389254185849497882,-7127075045154454822615337483298105005772756,0,0:0,1573691164802147334879722389254185849497882
+div:-40379721983479963451044525213342063379,5752617301360961501951105993116579979599761,0,0:0,-40379721983479963451044525213342063379
+div:-66553094204238345681366812314746973,179491260943660304940853680122139916257,0,0:0,-66553094204238345681366812314746973
+div:41557707370513928375878448109901883,632935174723424546856310964927309397,0,0:0,41557707370513928375878448109901883
+div:87216666974663503011714591959065214272591,-362212517956666997849487067083877113331,0,0:-240,285662665063423527837695858934707073151
+div:600930802118279524585230000011936249444105,276956438642688260499397309603052638,0,0:2169766,138070288388354494697143759139301397
+div:-9062026573948610573181435477111972535105632,26459705612915075584081819752039455108,0,0:-342484,-756815003826842757521154491791897360
+div:17653370013085499100472199530821555711,-7698383733180213420749857647904028433762549,0,0:0,17653370013085499100472199530821555711
+div:30662369693082036358310810281385879664,22236287546685236318100930067052020060194,0,0:0,30662369693082036358310810281385879664
+div:-512521060439171480106970932632563580,89514481912211104455621084880967327358452,0,0:0,-512521060439171480106970932632563580
+div:21086477798868875028201033077501739509,-32949987996179141109692270028847703801843,0,0:0,21086477798868875028201033077501739509
+div:-708751005350456170908462092345570661,20771494122418135637231294901492781698,0,0:0,-708751005350456170908462092345570661
+div:4761140473028193547540165802031057658,6168913684826084448506253549769822795,0,0:0,4761140473028193547540165802031057658
+div:1006721746946704053236444265263223831,-68339952093888456017995310177868766706,0,0:0,1006721746946704053236444265263223831
+div:49477930040212907700651237822802690917,932149775404881165633388914278605445476133039,0,0:0,49477930040212907700651237822802690917
+div:191141779546296204030941021563218099367,3656389331006196783212925046242222356116162,0,0:0,191141779546296204030941021563218099367
+div:52321773961113824095699208419101883834511175,3945419458824649179733387424219698232106948,0,0:13,1031320996393384759165171904245806817120851
+div:1778145454400348709637901904657092758,878609889134331105537302232981688580,0,0:2,20925676131686498563297438693715598
+div:74713594237827753439495191401245889889,5392802592936410381907322733518534312,0,0:13,4607160529654418474699995865504943833
+div:270095098083877602963826744218949767,47636389981971696673999931157764182609,0,0:0,270095098083877602963826744218949767
+div:7520391039221099182471773929113536857,381897415343050691905932641495648269699614,0,0:0,7520391039221099182471773929113536857
+div:63508808128380210731820150543656327585,-616515868713883945771114329692765309888882,0,0:0,63508808128380210731820150543656327585
+div:500726636417051241894505979036450257584284510,-2188106361907716060317149708820198851710,0,0:-228840,376558089498651529439670035952358968110
+div:9644202180018661897773323824784604735459,889341707658332087101739860527895964627301119,0,0:0,9644202180018661897773323824784604735459
+div:2169616399713342398130612752657502922,-320164160717395068313105728380324945,0,0:-6,248631435408971988251978382375553252
+div:-5377162725601993828110678056377142779006,55796345170536010537794307342731868052,0,0:-96,-20713589230536816482424551474883446014
+div:2037294950563567811082451474155649111,2834014022081568485840663386191616163,0,0:0,2037294950563567811082451474155649111
+div:614981246208238240735840654289003858288,59358494220000869333484696079415051563764262,0,0:0,614981246208238240735840654289003858288
+div:-869974954402953214631782702522562619117445900,461625972083775526198257072077692914743043,0,0:-1884,-271622997120123274266378728189167741552888
+div:502948632448506662993366487259075217376090892,42616114515034714091468739214068502864104,0,0:11801,35865056582001999943895793852815076799588
+div:6366779403200391484287273535628255514,82250958048563873223556347205141650947263970,0,0:0,6366779403200391484287273535628255514
+div:23811157225570913409830665082241103895611,7476929574668972035850358498197955282806,0,0:3,1380368501563997302279589587647238047193
+div:4433024520272083942063140827835336668419,-6814734610056822899976511626133696026724,0,0:0,4433024520272083942063140827835336668419
+div:968786326198881698061088417967223975939,599601873015338765622213846860944593816,0,0:1,369184453183542932438874571106279382123
+div:9195492262506042027630313206086692630450795,64887542474450141869346719067771980637953781,0,0:0,9195492262506042027630313206086692630450795
+div:167036152523476713010727258508768159942500,515803210529897970656947678674520384659564747,0,0:0,167036152523476713010727258508768159942500
+div:8138478748257408221805876607659300558448,49661986735515173743313027014090079675,0,0:163,43574910368434901645853204362617571423
+div:59222143484521909529262811142486420090033691,-51030363360606792052118776207857821648905144,0,0:-1,8191780123915117477144034934628598441128547
+div:-467669865565641334900015053005237790,-4166801708575196388168955453453946582052,0,0:0,-467669865565641334900015053005237790
+div:77373277085707339767125359451768440817535,1763315960012269607653138271304663086,0,0:43879,736076328961652913305245191129266941
+div:55495442705704588053146646518531149753186,-5663458625155167579301715514248517944795126414,0,0:0,55495442705704588053146646518531149753186
+div:488849922299811997818757217594597733202150566,939685030270889494431285974083671162411745,0,0:520,213706558949460714488511071088728748043166
+div:2400821515253609347478984845179365395392,174683346240076973534036449659865563554754338,0,0:0,2400821515253609347478984845179365395392
+div:94256886099064494671287831080381327786727083,933612219301830695726258097049775646275143622,0,0:0,94256886099064494671287831080381327786727083
+div:423105830682881413387057917631404228266134,257145583503215058907245918993287651344,0,0:1645,101345820092641484638380887446041805254
+div:9725239973027586290174961618324279259233,128059695274170533356219539907244279505,0,0:75,120762827464796288458496125280958296358
+div:8575857564646639781619620979013176021242222,-79327770769273229627122866232866675878,0,0:-108106,49577863588019549876402042891158775154
+div:8813097514151610923608219242438159700407184937,7989256671292882171963354392382046005647066,0,0:1103,947405715561887932639347640762956178471139
+div:-4220854853661426119955083509997540633581226963,-3143361547579787840091976435701544993088232,0,0:1342,-2463656809350838551651133286067252856819619
+div:18064088683968825697348480535147810355871,5304724916018022284963666250494765425823768215,0,0:0,18064088683968825697348480535147810355871
+div:668152482128694155192224637784736382693510,-95257956151627868536527340956566505149833532,0,0:0,668152482128694155192224637784736382693510
+div:61701221596016091555562189539716738900156785,-204037550501076287029400288051994390707,0,0:-302401,62286940121281584513032505583155969278
+div:9028974806172994844965393599047382592,34693980268705780311458320694963675758359651,0,0:0,9028974806172994844965393599047382592
+div:89063698366423052530435721631252853122745595691,-559482379459044468566903354300289497747749008,0,0:-159,106000032434982028298088297506822980853503419
+div:-1824554464595257659941777994663246309941052,73623748997742382675661945460325724770677,0,0:-24,-57584488649440475725891303615428915444804
+div:-55142421317035129657275321126826228423017036239,28826110399433506733627712523209314338730651,0,0:-1912,-26898233318264782579134782450019407364031527
+div:756782070286814928506227576085403683630,4000214993529718974257266487592194977145045820,0,0:0,756782070286814928506227576085403683630
+div:13159677289487357602217280155496420963004939,767301253318942647744497962442472942956,0,0:17150,460795067491193399140099608009991309539
+div:-88187589231094865339990742097539889292776818,510825751942051438265912944524438114392912,0,0:-172,-325559897062017958253715639336533617195954
+div:489109845016577010833075435898092017791090,110123269200994712057868031610104395461351967,0,0:0,489109845016577010833075435898092017791090
+div:19217131883780524110230989478044970954979,970929416394097229812264700944439582834558,0,0:0,19217131883780524110230989478044970954979
+div:24527357215769113990068349908153315315362058,-266862918096402442472122404915934028297493384268,0,0:0,24527357215769113990068349908153315315362058
+div:187180335008792237327827003721933462481,-854140420436008308741513900838309996093,0,0:0,187180335008792237327827003721933462481
+div:545261221970766906869881791377703238778715469,-8788464536650499527970204831752102396425142510,0,0:0,545261221970766906869881791377703238778715469
+div:-8978883239491077969334655758351790550761758569,404693816228247849601154967878424829635,0,0:-22186855,-219438296026172022653503521227250310644
+div:1672482949489286830657071584694755544154,-16569314415512041409298987093228138867183570,0,0:0,1672482949489286830657071584694755544154
+div:774730270533571544207396913338620375028137352997,48786260906229317422119214339872570992323,0,0:15880091,7792907516676258376772939019266087811604
+div:8223377606023157629124739253629162465167167,520715840696524916222797841353549481506911,0,0:15,412639995575283885782771633325920242563502
+div:19134961218524422663618095601519767611971718057,3320597299770542518684500859989485655905,0,0:5762505,2675610172546986065973326056572390876032
+div:9685331182266568794457591582614487872504040,213566802520062116223869626405725301078500,0,0:45,74825068863773564383458394356849323971540
+div:59252244414367138020160608470582658601544,-3576888946047794041513522160303428731243100275,0,0:0,59252244414367138020160608470582658601544
+div:9042130790289921021769539257940643994441439005,7080061253408914683252703075136834100504476,0,0:1277,892569686736971255837430990906848097223153
+div:37181356995874904748900986598480003983051,519027821181254318600589595065858229824972513884,0,0:0,37181356995874904748900986598480003983051
+div:4809573571268875241068163376639283894303,397857290741686940249008741474516933138008,0,0:0,4809573571268875241068163376639283894303
+div:57672160438267186781489366189915687528444846039,4311847164079124929339394059428992929411,0,0:13375279,1613350112775719684954110326408545415370
+div:8624907898892313136658244150578480770110291,18756723497726238453263886656453055357901904440,0,0:0,8624907898892313136658244150578480770110291
+div:4229153408642008158454182552166239580124743197222,723306877996286799790273745169628337170848,0,0:5846969,515510937124971245462645522951165247237510
+div:6302453408140626668691370469108993823368172,-26870693985061276927685322296318387971972897857,0,0:0,6302453408140626668691370469108993823368172
+div:-26183394096110224783461710144582526395666,8931365187310300822957876202988418128476294,0,0:0,-26183394096110224783461710144582526395666
+div:1337734304086488205388200603174151745237404,-37555196523265867970637056819130422860022,0,0:-35,23302425772182826415903614504586945136634
+div:1394934047175944473993592421680155397883435756719,3316595803755393152259408400413331925963184238,0,0:420,1963809598679350044640893506555988978898376759
+div:-3923445604156694953553293681269071976204126084324,-2385865039714571024603149142302411580843310590047,0,0:1,-1537580564442123928950144538966660395360815494277
+div:-4666574422365035446555661286742673507442477825880,6511395679936223490637275038009230986077915234,0,0:-716,-4415115530699427259372359528064121410690518336
+div:25682320341721789029990750876038989350503,2075225204575110735785546638041462321365144552208,0,0:0,25682320341721789029990750876038989350503
+div:507066551593936721924672174902109570507318,-90150385867099161583728850458645628165485311877,0,0:0,507066551593936721924672174902109570507318
+div:56460765920562193755877284769059649453013,106293089508542656937426290853822589311742,0,0:0,56460765920562193755877284769059649453013
+div:113389347059878790962060029189435317366606631,9123943931303946176502291145148092536746735300,0,0:0,113389347059878790962060029189435317366606631
+div:90965037743938985628689890077906379958065298745,355159479956085299356917050991168761100055,0,0:256124,171099666594416198867309844272190074811925
+div:-165340776845080586286334926027619556728505,4315813260375908780045944338058657645416510920831,0,0:0,-165340776845080586286334926027619556728505
+div:9675893678882076470951813438529414802324809,-49138410559062258960736821789190923818163376047,0,0:0,9675893678882076470951813438529414802324809
+div:52196020861900342939093799976830869614855,898691237498364401852494744239741816001653191,0,0:0,52196020861900342939093799976830869614855
+div:546701462352913231490095779602087905799659,27796772128829838971566803617855813694963277,0,0:0,546701462352913231490095779602087905799659
+div:-239361790908041495849499565651036682869595828,59582341264073879085346989042621623014587677976339,0,0:0,-239361790908041495849499565651036682869595828
+div:26247208631803295885744522675941429011719441867,94578293352355651122868883826971735945985150768,0,0:0,26247208631803295885744522675941429011719441867
+div:7151462784689393204933488144237700308252236907106,4869138896069717850331723402637093025616552,0,0:1468732,2675587124367180075367635717394552387255042
+div:444179011665054388522294113788022095382753092,87809235040601661387269133961569114730886240155,0,0:0,444179011665054388522294113788022095382753092
+div:9396002262631352355829080408353148431716175837629,627009066609807681311137500374921292105192019668,0,0:14,617875330094044817473155403104250342243487562277
+div:-67404859652885739843969210485993809184078129851,46946911826310720654816125341841364822782750,0,0:-1435,-36041182129855704308070620451450663384883601
+div:-857317750867775465958757317203227431120067,92423921722813825213538574566017075976934245071208,0,0:0,-857317750867775465958757317203227431120067
+div:-604814342197174902063835288834217421426135297,30987537976824612265560882867080135947080229,0,0:-19,-16051120637507269018178514359694838431610946
+div:537582514919678675297229509855601144545558,97995250751872994415105767317261578435382881110966,0,0:0,537582514919678675297229509855601144545558
+div:39007116647886661941726367331622958240358112679,-5144176915242189162509107363545822402755422,0,0:-7582,3967276520383711582315301218532782666503075
+div:720186514683083735071865829645724624020144283905,921875961665713476662472782679559347600188961,0,0:781,201388622161509798474586372988773544396705364
+div:4925300524276512099528492538263141469746686350,-21746080565844400504762758043901034656358047765835,0,0:0,4925300524276512099528492538263141469746686350
+div:5966000116741864064364725002160835848207074879,452383546194102189149587219685512801821102583315,0,0:0,5966000116741864064364725002160835848207074879
+div:1730022951574373079411594826626220707013971004,867119495065650306148038934759853852208599,0,0:1995,119558918400718646257151780312271857815999
+div:565379733109542105910214574424401953032077613,51059839129853759630343322732850868439955821491756,0,0:0,565379733109542105910214574424401953032077613
+div:380859104711500390575977473068323845888716252660,6180121353081961565969801679654221330060450855,0,0:61,3871702173500735051819570609416344755028750505
+div:68068921222429620875809588817152460375197553199,70847310210650369483877621724938884574632970327227,0,0:0,68068921222429620875809588817152460375197553199
+div:-722057802895969286253197273768040930277501,24306448094583832291685007488076569960645346636,0,0:0,-722057802895969286253197273768040930277501
+div:317592535736773933828600449815426639893020969423190,-93086204599568503148872348535005098881410913,0,0:-3411810,92021920119100246282360210893478434402340660
+div:611020260549327414799176188444349897969388695,3705943065234383781833374645394121853197511,0,0:164,3245597850888474578502746599713914044996891
+div:311597138605996430909903314778924265380533841573,900097580338833508210694004713940730225636589400,0,0:0,311597138605996430909903314778924265380533841573
+div:1471368037568797633184945517471946826925463570,-51986614090044718428104256857291140310189522,0,0:-28,15742843047545517198026325467794898240156954
+div:764577682558529028045406367446280331248422324968,3284529318538080158133345096780067681846690345,0,0:232,2566880657694431358470304993304629059990164928
+div:25345733340779680384223438130261035483720695,-4963832661075587414370207844502105067515360717435242,0,0:0,25345733340779680384223438130261035483720695
+div:9728219568997241790958216942026281594007662902,4830901363966824643813184028118279269292788953297,0,0:0,9728219568997241790958216942026281594007662902
+div:378990675295147250343254009937685278864098648256945,1608729233755427518873468676407616643664376791798088,0,0:0,378990675295147250343254009937685278864098648256945
+div:898267137520595727470006439782753575720539020,-10549538784345819645739254144254774260670381268575,0,0:0,898267137520595727470006439782753575720539020
+div:5995515572054268086933479746008640056780766451925,8030600055411670042494710011412948461403231,0,0:746583,6090884857231597651661557926755620958042252
+div:-29108480583332747319862771298993930146421704,1070825121844450385018502033657868394429345713,0,0:0,-29108480583332747319862771298993930146421704
+div:1309351864286127912492763722652139231241412,67215284518814518103811333196815587050385227,0,0:0,1309351864286127912492763722652139231241412
+div:5057770892603033060848565127774886456638357230325,4560833131311412489432012223910819044848375100332,0,0:1,496937761291620571416552903864067411789982129993
+div:633417011776645191559278275893992860044140785076,9267459276776555758115340080177517575774981964493,0,0:0,633417011776645191559278275893992860044140785076
+div:81198441395376013971576012512699341529160887275,7447901692377824339480278247455048336927582640790763,0,0:0,81198441395376013971576012512699341529160887275
+div:9051874321306026560005193316581192573940541867187,37537551211896722531771511300407567291038941024813,0,0:0,9051874321306026560005193316581192573940541867187
+div:2608213478636475749024179986585033501198860091868353,4860413071332838243659712432305837800300477,0,0:536623830,915784885941031884462459089442842973301443
+div:407598478820396357158686484143933270533665010845,4355992703916618082567359020934982484449368723357,0,0:0,407598478820396357158686484143933270533665010845
+div:630711778218873882494940824096903507347713330,57238514966674350042018295073350807282445218805,0,0:0,630711778218873882494940824096903507347713330
+div:93688378632955946315197302995234838965963790793683,3160654096505987021546437056562511465114160,0,0:29642085,1248727276013620984317459066303575325370083
+div:-2525656519498119353338247264242041272975381031,327276040767955818809485641052992513513655213981074,0,0:0,-2525656519498119353338247264242041272975381031
+div:66016468795885111884527337073458991710229978420,16320322768232010844919027662356786278707098868275,0,0:0,66016468795885111884527337073458991710229978420
+div:-2302712368656752027279644835027749767667073228557819,9316845119063833412338569173366972112730895383,0,0:-247155,-7513254530280253105770984235775145068780172454
+div:48838864669737321321234466529333448212306449830,-32564162155964258347156982593283846680395226572752488,0,0:0,48838864669737321321234466529333448212306449830
+div:-220645217365027594041560662624047120760954694026473,478332284603296206017913627846840038736821534931564,0,0:0,-220645217365027594041560662624047120760954694026473
+div:-72981125020238190928338132724424652132640002,39188164680782185128568299727848835374297549277320,0,0:0,-72981125020238190928338132724424652132640002
+div:848294406307295588337784985646050321749073734744419,1894284566269937543645699304914191326539279181,0,0:447817,1574693990967354998860017291904472233349746542
+div:88331621619959932308180786862825270799091494710705534,2178577739962310780960655130496700895938054790,0,0:40545544,2006897502197066182000445542767995672948349774
+div:-6856699040860275517650307648299585141626669701068,271009865938172922862180983261519271114664396,0,0:-25300,-149432624500569237128771783147582425660482268
+div:-88407824671930579360204282767163259115148101495,999762964506455261651611324045254876016161327250,0,0:0,-88407824671930579360204282767163259115148101495
+div:77210128389009986005731678815189051918123188603393,1004893588971319006745864695885807127204177369,0,0:76834,134373987661441419910771498947106517424633647
+div:297784613656392099571586950531714472282249229,38243230119670761105711715396092668555574825,0,0:7,30082002818696771831604942759065792393225454
+div:-35509945917648756037422888630539391852716391754248754,597284352710239029652457972715277271026334934549395,0,0:-59,-270169107744653287927868240338032862162630615834449
+div:801533871821359460893588251165565622439064765617,822025202425769092976017224921611946029366105,0,0:975,59299456234595241971456866993975060432813242
+div:-522010146755299559121351482887404344773949966,-3932667350437494585764045269025085811459344224177389,0,0:0,-522010146755299559121351482887404344773949966
+div:-58459624214325180544444869117416512994249719120541094,42099937836886376971951088854357470492133289729419,0,0:-1388,-24910496726889307376757787568343951168712976107522
+div:-253345562577317672511220652744246967807793182895907110,5749989880936090964050051849193062955356828797,0,0:-44060175,-2175044340819256659509727005208754118655047635
+div:929733472033240998779303334258721213318162598707,767612759141593942240674520830211174476840069251,0,0:1,162120712891647056538628813428510038841322529456
+div:964194291196691142924085838110342670268423649945,95195593030727305502485226537387747371662899678,0,0:10,12238360889418087899233572736465196551794653165
+div:-930824010798502796427972044794470458904018793646,59612624490118074742886336029812178788101136417100079,0,0:0,-930824010798502796427972044794470458904018793646
+div:4496931676886813794791418684601244183539575641824,17411178665119193136820706152905856572839870547600463,0,0:0,4496931676886813794791418684601244183539575641824
+div:-538173513290298732583524004704645684413620731176123,5191614740631357425621901873779740989648663178,0,0:-103662,-346046970959128706412664890173944661008818287
+div:645223072897535515198700423081805044495125969741938129,-4527829932821589910817760274407207149545929368,0,0:-142501613,4080777311682643434931455406859698817217867545
+div:99627943961043088669512673603139357672824609930416,466295743266513578268755141190344363951636566,0,0:213658,128046206330563766987646692761559645844511988
+div:8378463829762121913631626419465685262621092341,277603732177643189147101934156154702276101226001738,0,0:0,8378463829762121913631626419465685262621092341
+div:9842615010830513092601043514307725085136324358384,982829207195358411241726125114558021029115376,0,0:10014,563329976193962426398097410541062550762983120
+div:62320220612711436764404545275083408051364828569716359,29238061288213780350752248589890807799224738132935,0,0:2131,13912007527870836951503530026096631216911608431874
+div:-95796294809205390217092020218600576789023181059,165301144024373968274096547718999489219277029418,0,0:0,-95796294809205390217092020218600576789023181059
+div:87456781258209959765037687145068876793116934415493249,12068929953842578406244505715637579551016022265904027,0,0:7,2974271581311910921326147135605819936004778554165060
+div:4650729780737505464243409512735245030691695372618246,84864736041440063700547247893177477447164617313268,0,0:54,68034034499742024413858126503661248544806037701774
+div:-625358026462075054949936252035182773523079306781808,-7037095653882435960759081957329932874958248091338799,0,0:0,-625358026462075054949936252035182773523079306781808
+div:2568284414900282086629402504199999865573825319657504,5768783213527705673129403864116463929738223137152322675,0,0:0,2568284414900282086629402504199999865573825319657504
+div:21872791887330497853718749618057463060198347580531402,1324557936763556387760743907736237330887941028,0,0:16513276,1099563344481062563504290440813742452313443674
+div:-33663209218662096950671228753577152738857975888365,64455980252274430283628664249222461742909356825,0,0:-522,-17187526974844342617066015483027709059291625715
+div:897547639705131822906931936065160910250510030878007,5363864878695927157573012052790958211464944313132948910,0,0:0,897547639705131822906931936065160910250510030878007
+div:5009490811735999584822449253729050585733274306709319,2406843316925106774841027948556192949607544362335487460,0,0:0,5009490811735999584822449253729050585733274306709319
+div:26946852936100376197741904167965017845209833397099,308919640253848342394664627646584079095578466190402123,0,0:0,26946852936100376197741904167965017845209833397099
+div:1985893148050510215060586789904119885262534441,5866449806057188251900630030898916114586086296,0,0:0,1985893148050510215060586789904119885262534441
+div:5562239080137747796995442181907475991350284893459206265,156398892363409903713342341853412785128113829406,0,0:35564440,56612798080976501265602288199428588294379283625
+div:65178480098314895239449345070432724637440125039775,1290757832744933770056846180890168907973673153410496,0,0:0,65178480098314895239449345070432724637440125039775
+div:23657300680705528280619872949865464121904006372229057,54009346128207976631438579725539802296822123315,0,0:438022,18870935613940563883381325068840245386273546127
+div:2465896601579984309597565211236176792392608862458577021,-40289404326330144787151484318600863409012051557183,0,0:-61204,23899191274128044745765000529548307435258952748689
+div:4530895653520455283627656673385442171856783842314,-93233120674213574021733372853213159559027357138117667,0,0:0,4530895653520455283627656673385442171856783842314
+div:916112574807335146788888377531188026131378675176,967597859681274796485056494940030314717751207208858625,0,0:0,916112574807335146788888377531188026131378675176
+div:2836353387405193828295144729357504288167954496834813,-47750867938530360881039623534374164321838133495716184,0,0:0,2836353387405193828295144729357504288167954496834813
+div:888544290269727108571429100899398323213047387976643,232593764199419096127199419642853734112674182121501231,0,0:0,888544290269727108571429100899398323213047387976643
+div:-95528231285086139734583293340171808952248738222733284,793897402237626526946706417222476481392026422526754,0,0:-120,-260543016570956500978523273474631185205567519522804
+div:5037223546635984893254983907596574271648794864585,-135600768236385462209166458097331958573087149090026,0,0:0,5037223546635984893254983907596574271648794864585
+div:3597926907607703532951852295319420299540575082900605212,32397904521210638837288370977004776603517163371689911,0,0:111,1759505753322622012843116871890096550169948643025091
+div:2949870570599287735739111770944723963347077343574168440,13426005226039726224409657686289401061489856647303547,0,0:219,9575426096587692593396737647345130880798737814691647
+div:-6292945917085019054270321590350396947352956870846986425,341295410748594067077010194722238510564411359595737,0,0:-18438,-141133702441645504407620061763289566340222620787619
+div:576504230473861553261538972452278105135349421005,-435859823015036299275541119431403593387201588094,0,0:-1,140644407458825253985997853020874511748147832911
+div:513271751605046021061398181450246519536581003892,1804974737576433978846636236205909460681769870983,0,0:0,513271751605046021061398181450246519536581003892
+div:518565283589729505911763776861051767197425505162856,80256044584676536034995400588268683853363345693,0,0:6461,30979528134406589658493660247800820844928640383
+div:-8803453406819218000000306371196263081095678566028295082,-55765725990796735310893334087719738405325766157271534,0,0:157,-48234426264130556190052919424264151459533279336664244
+div:30910800403711655057148039026242334689849626271558314256,83948578597192063348545167380196449977141674761638849,0,0:368,17723479944975744883417430330041098261489959275217824
+div:49242996359867738984900367600384020935433157154372,2708783714074411929119022487862398012033030877105302717,0,0:0,49242996359867738984900367600384020935433157154372
+div:21379071756862143968426604961644165060562036140310,461158186026323145332549423710888480451753865883923090,0,0:0,21379071756862143968426604961644165060562036140310
+div:890497438806243182741322174370053431770114463163083,-553230364990398459699806691827737650133760743598577997,0,0:0,890497438806243182741322174370053431770114463163083
+div:3023647463972332206442886065358904974207929712372177354,954649340832479585995977185409104558411042237463566294,0,0:3,159699441474893448454954509131591298974802999981478472
+div:35489760963836552056324219511199170577078030263500,9911937794382297889765816250290479042378434631444578,0,0:0,35489760963836552056324219511199170577078030263500
+div:4135741741874158916022517640987066604514941788107532,-28163724964933933312984726177284380068495757852680949,0,0:0,4135741741874158916022517640987066604514941788107532
+div:545414705998769838413644038929944315836407586765492978003,40142701966897036750492630938275806447937324811027279,0,0:13586,35957076506697121451155002529209434731091882876365509
+div:75058649832069709510468311408895020488684235853480,-2888974200822060946807576793636547307530522265641548,0,0:0,75058649832069709510468311408895020488684235853480
+div:-66933551184377520017610837511897921700694960480368326,653887787579904832254964727311893728850303235046236,0,0:-102,-236996851227227127604435326084761357964030505652254
+div:2435629492619014604053848939625684854601784871657,-291893351983540450002470218001632642526157243983032264,0,0:0,2435629492619014604053848939625684854601784871657
+div:4353873124828196561972948174190449777941113312128,54820424043864696600903577780832618011158946935730643,0,0:0,4353873124828196561972948174190449777941113312128
+div:6563332558449452126564485551259042246419252988238165,698324403420861093632423144820174865039557171760521,0,0:9,278412927661702283872677247877468461063238442393476
+div:6651389855462289995786489027518276832180673970627,-491461095877924735369902036753617462691001210108931850366,0,0:0,6651389855462289995786489027518276832180673970627
+div:6927903135341590486179736781500384096788524701827,218829613953562480451106314783086433106706968172108955440,0,0:0,6927903135341590486179736781500384096788524701827
+div:545264621820945020606844611617845056531423301824882054149,875522645453735240583714479359375422140055663654,0,0:622787571,103319057246612448860090001299718413253014409715
+div:86684332448285178538540680259953842278268190530391877,1004758465343373611009533596159290181785288025548175925,0,0:0,86684332448285178538540680259953842278268190530391877
+div:-92317828450423143272179560065430627651793040689272,22070418041935886277960894290327131047538612473095276,0,0:0,-92317828450423143272179560065430627651793040689272
+div:7971256552090299009697202541746345670252715480656564528,201282600297357182844197939592816412476029915756077647398,0,0:0,7971256552090299009697202541746345670252715480656564528
+div:51609533271954429925110080029550304256694456133044809,485763884901242868745815971537580121006369686192,0,0:106244,35084506782578079607949511641880493715193261961
+div:55881591305337924534730793672599558668292512146650104410,2222509574710359486675225376172946110121737537397794673,0,0:25,318851937578937367850159268275905915249073711705237585
+div:19368449809775464181696546358821387683250538685332,24510908730652135218597094611704093063219507437128,0,0:0,19368449809775464181696546358821387683250538685332
+div:-2935049511482530629217049856269086660794528627329678715946,37471582465832914952060760873346941905859586735847868746,0,0:-78,-12266079147563262956310508148025192137480861933544953758
+div:36100788373557792247173517969159682950517798879230,5080501101336645920307905996377195554239168429725057140,0,0:0,36100788373557792247173517969159682950517798879230
+div:-619343993545565489581918826619755522056336720755028240,5722220737779420639556807213632172372985391133964,0,0:-108234,-5154212747676080127354659490977438635896761568664
+div:2214624479709129652867518274099800744215833156381,596426619358648105117142458022253139919252174606588,0,0:0,2214624479709129652867518274099800744215833156381
+div:5033621023669077052146401601213685801870950098584920712831,6799225107652133581418467714714131055036511563510,0,0:740322749,902228583435466263288772550060049562516909423841
+div:5358032037701639498140968139141468348228418868104,8558469544431829473340967206378658910509072615323310050,0,0:0,5358032037701639498140968139141468348228418868104
+div:9748963428125495559040360700047156483695054417931835757,89907138812423274211888428791450791283996367956807224600,0,0:0,9748963428125495559040360700047156483695054417931835757
+div:-37234857139625248358511007131249688678503673691725663734,-9768451005959695483831603140151504358763270636290461,0,0:3811,-7290355912848869628767564132305567256849296822716863
+div:14140350728384927368127641043017594043341305190489552,678387465698256214286200006608789600890351284725416,0,0:20,572601414419803082403640910841802025534279495981232
+div:16226406385251314022733101915283965938409231292486,-3756447461810096116929418499028120801376280771059460,0,0:0,16226406385251314022733101915283965938409231292486
+div:6545974979782747370293360546030862327851785067995680,-8744885285916351107220120754451051904389636789416979493,0,0:0,6545974979782747370293360546030862327851785067995680
+div:1152408063163445395815670313984522609667667839270597239381,95249480242199210996494814595420706184321580039151,0,0:12098838,32128876378241260984354491943697962902472875632843
+div:1690204685535914155988172971158586449220783297513957809,9929613337808118536737016690304412293482744573038,0,0:170218,5762400891834901871464168349997448737481780575525
+
+# Division by powers of 2
+
+divp2:6650822,18,0,0:25,97222
+divp2:-22,3,0,0:-2,-6
+divp2:626665862,11,0,0:305989,390
+divp2:382,7,0,0:2,126
+divp2:-8554783,11,0,0:-4177,-287
+divp2:80613086,5,0,0:2519158,30
+divp2:2476669303,30,0,0:2,329185655
+divp2:234993203,12,0,0:57371,1587
+divp2:78175,1,0,0:39087,1
+divp2:1092697,3,0,0:136587,1
+divp2:-51601200,8,0,0:-201567,-48
+divp2:-133,8,0,0:0,-133
+divp2:67494772097,28,0,0:251,117472641
+divp2:81070756,20,0,0:77,330404
+divp2:597,10,0,0:0,597
+divp2:-6061,14,0,0:0,-6061
+divp2:914736,17,0,0:6,128304
+divp2:5146181168,8,0,0:20102270,48
+divp2:908169,16,0,0:13,56201
+divp2:99131,5,0,0:3097,27
+divp2:828749,17,0,0:6,42317
+divp2:57934632020,24,0,0:3453,2905172
+divp2:374659,20,0,0:0,374659
+divp2:881062175551,18,0,0:3360985,123711
+divp2:8978255,9,0,0:17535,335
+divp2:-306454,22,0,0:0,-306454
+divp2:455535314,22,0,0:108,2550482
+divp2:-7013481097,8,0,0:-27396410,-137
+divp2:1902116776574,7,0,0:14860287316,126
+divp2:57980384,6,0,0:905943,32
+divp2:-6429952,10,0,0:-6279,-256
+divp2:-121080553817,25,0,0:-3608,-16163161
+divp2:9486785,18,0,0:36,49601
+divp2:-264976349260,22,0,0:-63175,-1194060
+divp2:-9957437441589,16,0,0:-151938437,-34357
+divp2:42280023,10,0,0:41289,87
+divp2:9445756856,10,0,0:9224371,952
+divp2:542833427595245,43,0,0:61,6271753240557
+divp2:-1989040985179,37,0,0:-14,-64895636571
+divp2:-842046065662,21,0,0:-401518,-1788926
+divp2:-36486783654,37,0,0:0,-36486783654
+divp2:12161238,12,0,0:2969,214
+divp2:522437544246,12,0,0:127548228,2358
+divp2:5771713949080,24,0,0:344020,16100760
+divp2:-192975675937641,21,0,0:-92017972,-1921897
+divp2:51399227509,40,0,0:0,51399227509
+divp2:76781489061746141,15,0,0:2343185090995,21981
+divp2:624421287579358777,15,0,0:19055825426616,5689
+divp2:585792449987,17,0,0:4469241,93635
+divp2:64111034807,16,0,0:978256,49591
+divp2:-4872049514614819145,60,0,0:-4,-260363496187431241
+divp2:-513726738058624,27,0,0:-3827562,-62639488
+divp2:-5129414645415250,35,0,0:-149285,-21103148370
+divp2:9777073958585027,20,0,0:9324144323,950979
+divp2:4917705257,31,0,0:2,622737961
+divp2:9309157350108809,25,0,0:277434508,16969353
+divp2:549889891480003,40,0,0:500,134077592003
+divp2:43259632605223,33,0,0:5036,721999911
+divp2:80760535636025,12,0,0:19716927645,2105
+divp2:95148114869248768947,22,0,0:22685078351318,2276275
+divp2:72784357307196492,23,0,0:8676571525,9292
+divp2:8695487295473310914,48,0,0:30892,162314927725762
+divp2:-999894977194,21,0,0:-476787,-166570
+divp2:422873004052896,16,0,0:6452529969,4512
+divp2:5850059500167,33,0,0:681,314043015
+divp2:279461298693250805,55,0,0:7,27259719560503029
+divp2:-2391765116812271696,39,0,0:-4350595,-221690208336
+divp2:93848076004932,44,0,0:5,5887145782852
+divp2:54463987988137594412,48,0,0:193494,268844485922348
+divp2:9735669349328114,31,0,0:4533524,691512562
+divp2:-96573804848256945392306,69,0,0:-163,-355587759787924163250
+divp2:693910684713664114,18,0,0:2647059191565,48754
+divp2:56085146568929935461,53,0,0:6226,6324008912519269
+divp2:7090107398039299,30,0,0:6603177,81864451
+divp2:767239571830013898753,66,0,0:10,29369808881631834113
+divp2:-74636360117262549362461,43,0,0:-8485171760,-6890174916381
+divp2:5461169750136459,50,0,0:4,957570122765963
+divp2:976702847245116276,37,0,0:7106448,71221928820
+divp2:3617864287401198,48,0,0:12,240164566873326
+divp2:-1309978694518086461,40,0,0:-1191418,-749976460093
+divp2:-2386749120888691269,33,0,0:-277854167,-244046405
+divp2:7266512965529689,33,0,0:845933,3826315353
+divp2:-6961513563355648932180971,48,0,0:-24732264461,-193888863384555
+divp2:5143351773441402886258,50,0,0:4568214,56404232132722
+divp2:900799510679250396,62,0,0:0,900799510679250396
+divp2:30978095034050773575947556,48,0,0:110056301970,184099523155236
+divp2:398942302365209775391228,57,0,0:2768218,44660240185115132
+divp2:914903526125867075664,27,0,0:6816562459810,77563984
+divp2:2551094792632393428431439,87,0,0:0,2551094792632393428431439
+divp2:6909886286515846175008,60,0,0:5993,427709407012247840
+divp2:461670131377821667,44,0,0:26242,15985200256995
+divp2:7884527998899506514865191,44,0,0:448183527561,3748608715815
+divp2:-17784618887403951072,44,0,0:-1010938,-9512034128864
+divp2:-2928855265612995457576576,88,0,0:0,-2928855265612995457576576
+divp2:8468445340017772238,58,0,0:29,109764431618131662
+divp2:97699128177500917404004263,94,0,0:0,97699128177500917404004263
+divp2:-901210903909447624384117,51,0,0:-400218038,-507572120280693
+divp2:-9099254471589743272646814275,80,0,0:-7526,-878753170044103808133699
+divp2:88420842262358445100031098,32,0,0:20587081616362194,3379223674
+divp2:5920604485769478876616913,30,0,0:5513992612966782,320526545
+
+# Division by small integers
+
+divv:-5721818303,-31144,0:183721,-11479
+divv:100359289911028,16,0:6272455619439,4
+divv:-80498620,-41490,0:1940,-8020
+divv:37386622,55859,0:669,16951
+divv:501578,15096,0:33,3410
+divv:6823,11067,0:0,6823
+divv:-56695604,31395,0:-1805,-27629
+divv:396,1627,0:0,396
+divv:82237128,16423,0:5007,7167
+divv:274600467,39390,0:6971,12777
+divv:258805,22852,0:11,7433
+divv:5139922232,23459,0:219102,8414
+divv:8755497783395,46470,0:188411830,43295
+divv:56370361453114,52292,0:1077992072,24090
+divv:81119249096,17631,0:4600944,5432
+divv:3925148017708459,17729,0:221397034108,7727
+divv:-289130964,59901,0:-4826,-48738
+divv:-2394107507926474,13709,0:-174637647379,-7763
+divv:-50229865870,26540,0:-1892609,-23010
+divv:3694598237147,64566,0:57222040,2507
+divv:-158417511658676756,-64615,0:2451714178730,-37806
+divv:4290308067505999,15193,0:282387156421,1746
+divv:560784439224,18032,0:31099403,4328
+divv:9207709447044,43308,0:212609897,27768
+divv:42833310641849859264,57815,0:740868470844069,10029
+divv:-95089845960500,-61243,0:1552664728,-23596
+divv:80687877739837,-30796,0:-2620076559,28873
+divv:87851714436662969875,61349,0:1431999126907740,28615
+divv:-5469457537,11848,0:-461635,-6057
+divv:-87902672172139257996,27307,0:-3219052703414481,-25329
+divv:-694576880064214,41179,0:-16867259527,-1881
+divv:47595892116434828,47204,0:1008302095509,27992
+divv:-505437926464614447947,63863,0:-7914409383596361,-45404
+divv:-747214784268033231559289,38881,0:-19217992959749832348,-36701
+divv:40648086806090824914,-26501,0:-1533832187694457,19957
+divv:23860923193973296,51883,0:459898679605,27081
+divv:-54927711987466879,-11937,0:4601467034218,-6613
+divv:4311756940677447464744993405,57924,0:74438176587898754656877,50057
+divv:6015889311543917179186719299,-50635,0:-118808913035329656940588,45919
+divv:3915173119649887691276,20797,0:188256629304702009,10103
+divv:209840208083311316090,36847,0:5694906181868573,6759
+divv:80000000000000000000,25,0:3200000000000000000,0
+divv:65000,25,0:2600,0
+divv:800000000000000,25,0:32000000000000,0
+
+# More regular division tests, all with remainder zero
+
+div:2546905999569583642767,14957376976449,0,0:170277583,0
+div:8820890915810513585008,1290654714992,0,0:6834431249,0
+div:32722399167479650872,485171756,0,0:67444979562,0
+div:281565136283209685892638788,662476076955569,0,0:425019326852,0
+div:378946105625441540737303,730177609549,0,0:518977986547,0
+div:4582336996784637790714331883462,524659399010705751,0,0:8733927201962,0
+div:30908196512568974558050436710,558351619821782,0,0:55356150882905,0
+div:22323179841972640636983704753,52956211127329649,0,0:421540351297,0
+div:52861155259463695471936251160,9468000366853,0,0:5583138277489720,0
+div:63260535208765360919938678377,42122224781389,0,0:1501832715082893,0
+div:28984143265639802151626094051438,400082299653446,0,0:72445452574997853,0
+div:3317964166851176108015612343691026488,4043377664512227983,0,0:820592198441457736,0
+div:66344183633702866132053676311141052606577,91178778320288608847,0,0:727627468320008374591,0
+div:5695550794829300030546270882518324992076491,700880200540761512031,0,0:8126282908883599504661,0
+div:39037424763225371397599506194643545880,7823304879274443640,0,0:4989889230399751117,0
+div:436302766535175847931361924986715811355695802824125,539874776595118725233603625,0,0:808155493551392334022517,0
+div:346745970223883677972239586841121624456285168,91526846077189641641348,0,0:3788461911289433710716,0
+div:52724986995800116311347732059133990047851510404883234,568154076534742483223872266,0,0:92800508125151146767566749,0
+div:2377848542111935708145523356022435793438514852230023651,78161062689778162572883876143153,0,0:30422418276855244470867,0
+div:232771550187355002750375300477927538332648185231317422242,385169380058229884085331084789,0,0:604335552717520311627548378,0
+
+# Bug fix regression tests
+div:#xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,#xFFFFFFFFFFFFFFFFFFFFFFFC7,=1,=2:#x100000000000000000000000390000000000000000000000CB1000000000000000000002D369,#xA11260
+
+div:#xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,#xFFFFFFFFFFFFFFFFFFFFFFFC7,0,0:#x100000000000000000000000390000000000000000000000CB1000000000000000000002D369,#xA11260
+
+div:#xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,65532,=1,=2:#x100040010004001000400100040010004001000400100040010004001000400100040010004001000400100040010004000fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80fe03f80,#xfe01
+
+div:#x0144E8D32EFB430AB38966D6CF217276A50D882C9BB1956E47F0C11F809819482F6671C7CDD70EBFD40A67E96E8728B1FB26092168F13A2689FEB0B86D689F12949DDF22AF0A030FDF2A27BB4CE09998ADFDD014B507C487D2BB6C71122AF93F13E99F22A7C5F2E728A50C7761551C4E9322502DB31D03BDED78A9301C50D57AEA88C1FEE4EAC7F0B38002C0F86D434B7D8311D4C410A0CECD6B81D40E8289F31045CC6F6C4EC203BF2A6BCF549759C92875BE633E20801C130874CAAEB8FD7276BE101898F12FE7648FB2C76C09D3643386B7F99B26FFA462DF54DBF401C8B73B5101B0A45D83774DC307ABB9F52A54E152E6FE5EBA1F5C91E0CFC2B84791413448023D6BAA4BB3B765DAC3C7D679832378C6737EAAFDB1395DDA29887653C17A4F16330550D9F71C99BD7D81777943CA1437F0C6C9AE89472A5CDC304DA0952AB154FF9F0B73A68FB5B7E661389AF3E407B4456A9FB5EC7FD7F78D0FA97C09DF4BEE8048687BFFA8B6231D9893ACCB75904A16BEB45C9B58DD4C63C9902D0C5015D2325EF7294EFD442CF7C6F837A8D6661DA492459429F9D7CE1251CA3375CFDD74A1C8EF5FFB8370245295E3C09B47D697EA3B5924F7181B1F9810FE479D2B17E63F1886053C32E53B4D6990DFE036BB50CCE32E76EB5BE5F2E0B40EFAB32D19968C0275277A4FFBABD2C5A24C9
 82218DA3B32703381399A653A3CB9FA3009695581F18A7023727D6BE13E5D9829E9788BBC94DCFC493307101A0D7A8A212AA5FFAA45CAC31212202C23DC6ABB39D6192FEFF6FC3C084547036E2DBD6AE3DBB16D0101E10E899B32C70CEF1056DDFAD104E165F7D147C8143C6E6D08C0315D01D41D5FCDF528A8E2AF9B68526949742C691DD8EA545D9F450B54F447E52ACF59172A9BA2284703A6A525BA28664EAADA9CC9A1AA7875CE0273AA591F2AA8C20925EAA62037D109CA0EEA3824C1ABC869978B5B62F853980C,527,0,0:#x9DD4AE7AE3F3E047AB2F86F36EF8F04867BA224C9A45AC9596780B6AAC0290D95539B3274501D2411CDB86482673F35C5E41A4638DF46A28CD54634DEBE64A1E6ACE84760F8CE729DB28303CA956C1AA8026E69908252D172FCFA340B05236EDFBEE17A29F4EA5B964178B1D4EBF8AB92495B4130001D154C0AF742703CE32F707A796896EA61A92758FAAF9E4705B13ADF05F952998701DD5FC07CCC198FE167A50D95812D3CD5B67AC5AFFCD2A28654365B6C44FE8BC83A8C8856E9ED769A317D54C8E4D53FDC310DAF9677CC203032B951E697C5B26903614D1D448C2A7B3E357C60508FE4886ED8E2B9614F7E72AE7AA0410DE8A9EA328B6885D67423030B6A7388DAE88D78B1F8119A3A00C649F13525064648CB92FC88CF3A1038F2EDDA916E
 D8D06BA84AB4840D869A372C51EA44BC04179C5F7E08164001776D50CB6038FC968F29E30D97BBBF19C865DBAF7C1AD8D133F7EBFA2A80F5394F77DD530B88F0F323B7FC1A7EF8CEDD48FA12CE9EDAE6F1DF95FFDBD62452B214E4B51467A53A5D3C73E5408632E9E4097AA56DFA5B40BEF9DAB8E518867FD3D972BF155EA5C9A5EB17CD58074A742D5AF3DFCBC664CB5CA3FB4B0613485DFF8B5D03507D1513E399332A257DF90E7E9719BDF125430F7339462926404D531677F42E3E937A9CC83613A86394FFDF89A4BECDBA1CEDD9F6D82C4FB406A16F10E70AFF07927FECA0D60E176BEA8C4312E535AEB11B7665E858517F109BA90CEF68464219955024423D88981BC0DAF6E33B1A9283D412F16D06335EF9D86142025C37B54F0CAC5B5AE55097D9F6DACF547ECBBED87ED107543819C8DBD0099B65EBDD07D04DC74A3E2C2496D9E4E0E61D6615A7E08D3FE996DBE187750C4C1FB9B18B928B6550DAEAFAB8D7E4E8662AEBE7F77299D516BBCC8F2242B9FD28EA7460282819525F63E7E5C66E4D0C73181CE8577D3342D76CABD26D8CFB6,98
+
+div:#xC085B984D2F30F92A00B8814DCF9A909C8672B081225AA88A7293D276E46B240B96E345B76A5E2D4E5CE7F4C208616DD38CA2029C37FAA8EF2561C688DA55150788FF7F34E484596590DDE971387608FB88D92A8868F4A2F165D0222A272C5AC300AFEBB152B25D3FAB5999458B1AC27FAE5E2ED6D50E7F8FDE7E22178E4C954,#xD607ECBE4F4608C16A0FBDF0F4DC57278E937A73D2226CE8388C6B9B9DF9C58464CF3E05F29FC58B59CD34CBA4F47810D92B7B4FCAAD1860C76E091D0B1491B9,=1,=2:#xE64618B3D9A1E9B5DC38D204743994492C406B98FFFFFF95EF529A267E06AF4364F984172C9569DC33FCA47F08195C2937CD1CAAE1F954A2A78AA08AF59EC954,#x5BAA50658645474B56E43FF89470E38A4D69E90D43F0E1D5DBCAFDE8853AEDBAC364F06CE50511DEA15DE5D944D9ABBEA76EF56D1E1E2732AC396304B28CB7A0
+div:#xFFFFFFFF400000002,#x7FFFFFFFE,0,0:#x1FFFFFFFF,0
+
+# Spin in s_udiv(), rep. by Andres Navarro.
+div:45035996273705000,45035996273704960,0,0:1,40
+
+# ISL test failures
+div:-110768999339257979395151936604514986,384307167128540502,0,0:-288230376151711743,0
+div:-1141798147252782335678234520236874583761538254,990352029122461210705605426,0,0:-1152921500311879679,0
+div:-11417981504429295188771564013355757832033533955,2475880072806153026764013565,0,0:-4611686014132420607,0
+div:-19746054620424668475119147467564405598366894325375493578959094720,137015778031883893401769208133025156060969696320,0,0:-144115188075855871,0
+div:81791893044,81791893043,0,0:1,1
+div:66461399479760783996783510248698675,57646074961906893,0,0:1152921504606846975,0
+div:4951760153682756594365890554,8589934586,0,0:576460752303423489,0
+div:9903520270472025075672416238,25769803758,0,0:384307166770626561,0
+div:11141460315522012760862883825,48318382095,0,0:230584300062375935,0

Added: polly/trunk/lib/External/isl/imath/tests/egcd.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/egcd.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/egcd.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/egcd.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,752 @@
+# Extended greatest common divisor tests, including
+# constants satisfying Bezout's identity
+
+egcd:7,328492456,0,0,0:1,-140782481,3
+egcd:930165221,819,0,=1,0:1,-85,96537294
+egcd:166,0,0,0,=1:166,1,0
+egcd:44,37824113,0,0,0:1,12894584,-15
+egcd:0,93,0,0,0:93,0,1
+egcd:70522336,34102,0,0,0:2,-2785,5759331
+egcd:863,25,0,0,0:1,2,-69
+egcd:66399,5533253,0,0,0:1,1229584,-14755
+egcd:4107,14863,0,0,0:1,-1643,454
+egcd:7,482337424,0,0,0:1,206716039,-3
+egcd:477004716,83909,0,0,0:1,26067,-148185319
+egcd:76,9778759,0,0,0:1,2187354,-17
+egcd:0,8367890,0,0,0:8367890,0,1
+egcd:8335,721158457,0,0,0:1,-159892121,1848
+egcd:90370,2894953,0,0,0:1,591452,-18463
+egcd:67733,1618312,0,0,0:1,-106035,4438
+egcd:166575,4485123,0,0,0:3,-397448,14761
+egcd:28271,6,0,0,0:1,-1,4712
+egcd:763,53576,0,0,0:1,-18397,262
+egcd:52077184,5129,0,0,0:1,1375,-13961031
+egcd:6552609311,525555,0,0,0:1,173606,-2164516163
+egcd:6221599,7764515429,0,0,0:1,2913991310,-2334941
+egcd:89021590,33904,0,0,0:2,-5437,14275908
+egcd:739392892,9335369,0,0,=2:1,817116,-64718359
+egcd:8394864191,48,0,0,0:1,-1,174893004
+egcd:55087825,530530,0,0,0:65,-1805,187423
+egcd:243,6823694624,0,0,0:1,2218402779,-79
+egcd:7846,430402,0,0,0:2,-77457,1412
+egcd:67053681,8634785,0,0,0:1,-3793089,29455346
+egcd:6364928874,55124010,=1,=2,0:6,4571384,-527837761
+egcd:3482048,995555,0,0,0:1,328872,-1150261
+egcd:33038872623,62,0,0,0:1,-13,6927505550
+egcd:75504,62,0,0,0:2,5,-6089
+egcd:15,436212,0,0,0:3,29081,-1
+egcd:72635,93361,0,=1,=2:1,-22347,17386
+egcd:7009,4308,0,0,0:1,697,-1134
+egcd:40446737340,4212231,0,0,0:3,100060,-960797387
+egcd:728456835,694701023,0,0,0:1,99101538,-103916923
+egcd:9355087294,2631,0,0,0:1,790,-2809015189
+egcd:54733,8862614,0,0,0:1,-1246171,7696
+egcd:38730799075,40635,0,0,0:5,-514,489913393
+egcd:72,98,0,0,0:2,15,-11
+egcd:1322949,68,0,0,0:1,-15,291827
+egcd:49271099715,8633675426,0,0,0:1,-3947828585,22529669726
+egcd:175,762975785,0,0,0:5,-34878893,8
+egcd:321,55550,0,0,0:1,26131,-151
+egcd:217191,451486096670,0,0,0:1,198071748991,-95284
+egcd:681,2323372,0,0,0:1,917749,-269
+egcd:78678,523426,0,0,0:2,98880,-14863
+egcd:90350809087,38042,0,0,0:1,7341,-17435079373
+egcd:633,4435395170,0,0,0:1,406402717,-58
+egcd:16360,606577002,0,0,0:2,-128322922,3461
+egcd:9669450329,1009,0,0,0:1,293,-2807878044
+egcd:5871172260,26773591,0,0,0:1,6401741,-1403835749
+egcd:5017125540,8367,0,0,0:3,71,-42573911
+egcd:619,8820231506,0,0,0:1,270734085,-19
+egcd:60596719455,443,0,0,0:1,-151,20654863742
+egcd:6752409,94193,0,0,0:1,3303,-236782
+egcd:14045780235,33398209741,0,0,0:1,-7792585660,3277209961
+egcd:9145,27764492144,0,0,0:1,-4065243847,1339
+egcd:63567135,7519707417,0,0,0:3,-485762107,4106344
+egcd:875276189593,31047471995,0,0,0:1,-4089317138,115284166233
+egcd:531838714305,22614,0,0,0:3,-2211,51998558297
+egcd:4134506738511,2476,0,0,0:1,-377,629527076098
+egcd:6185136988713,1891462493,0,0,0:1,-495247968,1619475161045
+egcd:374166745968,81724,0,0,0:4,9131,-41805547421
+egcd:62423829,4320571,0,0,0:1,-1655596,23920135
+egcd:4949666413,1501091102,0,0,0:1,494932087,-1631978715
+egcd:956385784303,12089922808,0,0,0:1,1485803831,-117536040949
+egcd:6140630879643,9491202,0,0,0:3,631459,-408542209367
+egcd:211369,28015233,0,0,0:1,-7466081,56330
+egcd:8011144,24386,0,0,0:2,4799,-1576539
+egcd:9723,761305061,0,0,0:1,146419877,-1870
+egcd:24432,7899,0,0,0:3,892,-2759
+egcd:9912899,223787,0,0,0:1,82520,-3655317
+egcd:30742811109,445709,0,0,0:1,100330,-6920269141
+egcd:6445714509994,5444765,0,0,0:1,1710399,-2024833698457
+egcd:7932710,53078817369,0,0,0:1,-4132035559,617539
+egcd:3337840732,3077034,0,0,0:2,723227,-784527093
+egcd:718292818604,81025428743,0,0,0:1,34254894424,-303670650665
+egcd:326072,253,0,0,0:1,-45,57997
+egcd:29893828809270,93736826647521,0,0,0:3,-7295461626941,2326612589313
+egcd:4480264,223642,0,0,0:2,-23286,466493
+egcd:176957076,161560781,0,0,0:1,-31655390,34672061
+egcd:37146108400624,62308785533,0,0,0:1,28939329218,-17252518260107
+egcd:368208150951,692481145480,0,0,0:1,61559555031,-32732631176
+egcd:6314981,15499,0,0,0:1,-3877,1579662
+egcd:2805866,671806182,0,0,0:2,45436714,-189771
+egcd:98242818233,77004291671,0,0,0:1,37912166082,-48368707255
+egcd:607152,2932056,0,0,0:24,13034,-2699
+egcd:329110,861060931,0,0,0:1,423790795,-161979
+egcd:6035746008,726247945,0,0,0:1,-51545008,428383417
+egcd:388326,4784349702632,0,0,0:2,-1147292297345,93121
+egcd:34137115145,947284,0,0,0:1,456621,-16455174641
+egcd:9207216089,860347,0,0,0:1,-394196,4218585935
+egcd:8112578025453,2680608704,0,0,0:1,-855589147,2589349837748
+egcd:4997261,749601100642,0,0,0:1,-67513226341,450081
+egcd:852403018665805,68601329,0,0,0:1,-30001234,372779110814299
+egcd:92080405,52081391,0,0,0:1,-12636003,22340576
+egcd:60095571,4414432667835,0,0,0:3,-74437007062,1013343
+egcd:4981195051773,905850760614924,0,0,0:3,-146240346450057,804163027486
+egcd:9685579,9592868,0,0,0:1,1793043,-1810372
+egcd:59530646,36346354116,0,0,0:2,-4115037905,6739902
+egcd:1435163995,69604439462,0,0,0:1,7586354849,-156421967
+egcd:99926066,887606404471,0,0,0:1,169670756253,-19101407
+egcd:70441698,3974125,0,0,0:1,58887,-1043777
+egcd:849350185,211717364,0,0,0:1,-59186631,237440024
+egcd:20085073436,2395589822,0,0,0:2,-341128500,2860085191
+egcd:1126006461820852,819773895887891,0,0,0:61,-706362472938,970229368007
+egcd:70904095451052,2233930,0,0,0:2,400136,-12700165688899
+egcd:6758999,15939222862291,0,0,0:1,4123564111309,-1748590
+egcd:430279300935,431963821489,0,0,0:1,98776246963,-98391051236
+egcd:55721139210155,7073166691740,0,0,0:5,-369561824033,2911341799388
+egcd:192435034269048,1832500,0,0,0:4,7198,-755878513871
+egcd:15747650667716,36009594821,0,0,0:1,7200472117,-3148897400951
+egcd:38881764321,552729171,0,0,0:3,63876322,-4493383429
+egcd:691050011,51977919,0,0,0:1,22745801,-302406990
+egcd:52540041952180,2156326222,0,0,0:2,-170294052,4149305677871
+egcd:7905452,6213885,0,0,0:1,2027303,-2579183
+egcd:3430895541193263,119720318,0,0,0:1,-12421015,355956329656547
+egcd:78945450,1569850634390353,0,0,0:1,-213574967886499,10740367
+egcd:3026195347029,48776084,0,0,0:1,709073,-43992736549
+egcd:22612793613368,78277930892526,0,0,0:2,14856095743435,-4291603305253
+egcd:775918498,7426337401,0,0,0:1,-3568692411,372864079
+egcd:66668332441496166,5313627445077186,0,0,0:6,-18855448933863,236573103938824
+egcd:3800017785952,66078608868917137,0,0,0:1,-5030282046793581,289279111249
+egcd:8238037234,2941537491408,0,0,0:2,282888965705,-792255696
+egcd:9547120368107346,29456344,0,0,0:2,-2851235,924116168074373
+egcd:721478459,29799838078,0,0,0:1,-4113566985,99592822
+egcd:463484777885,77160851,0,0,0:1,-38346752,230338774171
+egcd:6668812562,5426227269,0,0,0:1,-1878258319,2308372291
+egcd:7020839924454,9619730190140,0,0,0:2,1676947567713,-1223899236455
+egcd:5581687877912,4728620673,0,0,0:1,-1477827499,1744435091593
+egcd:86212837117,93176774191319388,0,0,0:1,-16333778951401391,15113008971
+egcd:10486952786566311,8072710949230,0,0,0:1,162596692991,-211223200405940
+egcd:332388514681475,314477095129839383,0,0,0:7,-4152534349932681,4389046916654
+egcd:1878789616020411,634591014351511065,0,0,0:3,-55735306584035142,165011657725421
+egcd:853435249810090,294022990301,0,0,0:1,-71973674612,208911796010781
+egcd:800760331,479138587,0,0,0:59,2283452,-3816219
+egcd:310386781,45470476445,0,0,0:1,9204755541,-62832736
+egcd:206381927221,426737049973016,0,0,0:1,-51635348161827,24972293048
+egcd:80657906841,97722845343178,0,0,0:1,-44940641023991,37092841744
+egcd:3626879556739,974287797969673,0,0,0:1,-416739368163900,1551352175437
+egcd:12353260720882,167588026304493,0,0,0:1,-4766112882926,351320057681
+egcd:5680097354,954648204845001,0,0,0:1,-206590628821018,1229201373
+egcd:8495790423,19792054180,0,0,0:1,8077970807,-3467489852
+egcd:1808291492597692,96814519920612,0,0,0:4,-3825789187820,71457690917437
+egcd:796275712123233,71773988020895279,0,0,0:1,16421100444870785,-182179140537376
+egcd:62156477407557,3665981752,0,0,0:1,1292733717,-21918214413059
+egcd:2921017132462,944466357361,0,0,0:1,-167559490864,518222951729
+egcd:70129038286402,2652828624150588660,0,0,0:2,61204814273941601,-1617984186560
+egcd:4099194006860675,712258835980,0,0,0:5,-46544273205,267871728840131
+egcd:18993264993,72866008153094,0,0,0:1,-10126377677909,2639543177
+egcd:37137778422333201,725902397772208341,0,0,0:3,36710995342741392,-1878165459827929
+egcd:77046543323827,91919074661304,0,0,0:11,-3080180234575,2581806232959
+egcd:50946730035622,6841431278091013,0,0,0:1,790206978840254,-5884508662999
+egcd:778417902091877810,3526771827155035,0,0,0:5,-62143495200058,13716115340897371
+egcd:7357629905645982343,273989149651,0,0,0:1,-10489681694,281687051588686593
+egcd:59999050131295751,4402788959646093,0,0,0:1,2181599081375342,-29729763077344837
+egcd:68611931054045254,72532452638242572,0,0,0:2,5482399071936641,-5186064629726171
+egcd:8597485693846941640,9852318416413,0,0,0:1,4640854869916,-4049776069443081003
+egcd:570460270963,54720108308,0,0,0:1,16083505887,-167671472335
+egcd:43617503830797013,452251304617430,0,0,0:1,76760132288467,-7403152472886549
+egcd:73871669508560399,48493623727,0,0,0:1,15908333574,-24233601655059575
+egcd:99534170067866609,8533916062,0,0,0:1,-3636610149,42415108188475141
+egcd:1885231469789,5484240550249,0,0,0:1,1215645072521,-417883264932
+egcd:1988347340743956951,7107237557789347,0,0,0:11,216195821117034,-60483750895153609
+egcd:1028936133037327271,5510465055402,0,0,0:1,1073852868395,-200514113917520622
+egcd:908361247108559,833255131023,0,0,0:1,70168847825,-76493572911138
+egcd:105122420688920,8437707543309,0,0,0:1,1099150493096,-13693928112891
+egcd:7268354783435841902,933995610637335,0,0,0:1,177721439316803,-1383028419904388383
+egcd:50338474800791504516,946966290251750,0,0,0:2,-82754441959453,4399029230620270937
+egcd:38695580832418,77020806554,0,0,0:2,7049841355,-3541870284322
+egcd:460793682039951322,360995931125673,0,0,0:1,-12872500500857,16431118446002835
+egcd:9791371944228644211,37881615337394730,0,0,0:3,-994456930616087,257040192279396732
+egcd:726186734680,24419809216698234959,0,0,0:1,-2766640019167190414,82273258719
+egcd:529564016606,376298866055896536,0,0,0:2,28277719651140475,-39795131343
+egcd:145541869208926297,19688885314609703455,0,0,0:1,-4361261236227472297,32238803887896062
+egcd:39778456127502718844,81278417471936841,0,0,0:1,-7120109086823404,3484651347093815497
+egcd:7809654411174,1244628241216910096,0,0,0:2,-284584948977462005,1785681883582
+egcd:247581683736939421066,245039298196,0,0,0:2,-51357390229,51890244702955249521
+egcd:667668476732052,476696223555,0,0,0:3,60657763034,-84958248556823
+egcd:2229399707506,39201358276824482440,0,0,0:2,-5131877014016252583,291852262700
+egcd:4767576564991009579,340159717388,0,0,0:1,-29682941117,416027199034854288
+egcd:748410307121741,730540185467629182,0,0,0:1,-213318504992896387,218536599371724
+egcd:2356182915322420038,81237995138900716,0,0,0:2,5252342047370707,-152336090720664004
+egcd:6513077506735657,306517877388663388,0,0,0:1,85680643466766665,-1820594206381108
+egcd:216282311653914599395,911124646576,0,0,0:1,429112007291,-101862393081040854019
+egcd:59815399922090959,5110979162439569056,0,0,0:1,-1114788966780819601,13046726616842810
+egcd:477652083813766,624733750918729402,0,0,0:2,-154413302241487321,118059630163644
+egcd:659935429542750939,44886608128116509,0,0,0:1,15839652572247565,-232878989079292726
+egcd:54504214226951518003,387724255017508609,0,0,0:1,31301361124239357,-4400178916414896230
+egcd:783331167504862965,48609697533,0,0,0:3,-629742688,10148120643700831
+egcd:7643973606720,70743283292590583724,0,0,0:12,1182943528930131602,-127819754647
+egcd:4273152632680100030114,1455223242316512,0,0,0:2,12098554144849,-35526486240961014982
+egcd:5862269731025091,3136791365228,0,0,0:1,-386529556073,722375272334573
+egcd:659628551534893059484,5950075862222037,0,0,0:1,2470161881316403,-273843450328876151623
+egcd:9482121506846253,34058669367564240,0,0,0:3,-1589045402569649,442399009322730
+egcd:65396942933391,3530693943836047978,0,0,0:1,1333698073169157271,-24703295773820
+egcd:24559856763503,6667927595346,0,0,0:1,-250002320323,920829011695
+egcd:4843560767022,8140092963222,0,0,0:6,-479036307613,285038693786
+egcd:7703573212864,4497158779255,0,0,0:1,1735016188064,-2972059668409
+egcd:8411329856643749667337,6927690295201914990,0,0,0:1,57955419569688883,-70367197465289023043
+egcd:311630305921790132,36794945100846,0,0,0:2,5335676048581,-45189858410215015
+egcd:12252240244679740653,21854667756737479,0,0,0:1,7408241549029968,-4153234277439483257
+egcd:914930916911818959,73054804640859,0,0,0:3,3000864169057,-37582516567124740
+egcd:144437770651525337,7176192389740,0,0,0:1,-2917598661927,58723543558714060
+egcd:9658485554428935101,5617211853860547,0,0,0:1,449096244749153,-772196190086168116
+egcd:344028716311850,2026849525600172204430,0,0,0:10,4273604619400616489,-725383257448
+egcd:936445752013986984,883181511511066630902,0,0,0:6,37504920718991502298,-39766823953131263
+egcd:8136225792202716788767,6604882712946357,0,0,0:1,-763274997603269,940240423932206378732
+egcd:577476567105329156936,1256480674248716110951,0,0,0:1,165865135596220858037,-76231358802105687681
+egcd:58801491048115,31028000846825692159030,0,0,0:5,2620151256531588957285,-4965476229559
+egcd:9973707804728263847551,53630829606521208326,0,0,0:1,16368451878013344235,-3044035631088017117934
+egcd:17121194233870838,44442113181771232,0,0,0:2,-5375949729958541,2071068923785980
+egcd:194930254933589618442,76996294363551631,0,0,0:1,-38281520562566769,96916697409778838629
+egcd:6740972199816713986701,3164254690674619824,0,0,0:3,304736351600199807,-649195300386062944621
+egcd:33100303896200,74054854499575190726143,0,0,0:1,-30231828546967434629772,13512722683807
+egcd:80391303224075976,94483334960558284,0,0,0:4,9695304929308312,-8249266378534037
+egcd:954262165857127978158,3790250771466830,0,0,0:22,53714840833849,-13523654091347297164
+egcd:50095431507743637803,32894122691956397938,0,0,0:1,11834908275426407707,-18023731548159747940
+egcd:2173109072764661515,71129381706084812,0,0,0:11,-844279059631827,25793988931499293
+egcd:52743975673113,1252477537471129,0,0,0:1,198187508901071,-8346015665318
+egcd:3400327281633151,431371474891473455,0,0,0:1,205422443946739001,-1619262239320730
+egcd:74672816465806151314169,181861345000582103629,0,0,0:1,27254332141007722192,-11190710933415108645643
+egcd:474476291935913056166,8171705897201808883848,0,0,0:2,-1170007477720025417249,67934506766326698557
+egcd:984130837655605609160519,483475686999411456,0,0,0:1,30260545442548343,-61596346486657707977136
+egcd:843814604333653656215922,682249690564087391733,0,0,0:3,38030549017256981789,-47036639393790777318635
+egcd:81202937258153735712,402831457452712664,0,0,0:8,13421756749885189,-2705563458591282665
+egcd:6676582659534088,44001550460545760069911,0,0,0:7,1211181274540019933457,-183778794394919
+egcd:533144411502628328950,28324708505596385902,0,0,0:2,-1398171989606979473,26317219908236327476
+egcd:66581532981454422,14028130038905754906,0,0,0:6,517088823759485624,-2454252026321337
+egcd:2130464987067329677,8494848036198574143,0,0,0:17,-7062764335631653,1771305627228686
+egcd:38575228438194,1957852613377826515509,0,0,0:3,129868619328885840117,-2558778747355
+egcd:49489410876608829677,7951728226267755060269,0,0,0:1,3860693946871021816365,-24027917399688934216
+egcd:42770760432244640,44801059402399356,0,0,0:4,5296495695549791,-5056468564505481
+egcd:6441135230593242548407,122558774271814342,0,0,0:1,36997056041193015,-1944398045028139827512
+egcd:264902435468141506,823887292259809475,0,0,0:1,120342636882041621,-38693469240520931
+egcd:4615387069156629,5068444832682377449634,0,0,0:1,-2198712149475939054985,2002173834082799
+egcd:36444520368083130251,10180304221606287367,0,0,0:1,3547776565155412457,-12700702501188462318
+egcd:2705117385426850078,311987185491928483938918,0,0,0:2,48604570190513342423426,-421430988026778607
+egcd:6447135503640541,17828837916381145944,0,0,0:1,-5783155035268931939,2091262724234125
+egcd:193981008037679996757,19120164140966891788,0,0,0:1,-1586493554887429351,16095553194700936591
+egcd:64332664201713053,87185087911910266023,0,0,0:1,19609332567597552767,-14469453865385550
+egcd:95102121410339574,293671951113485105415049,0,0,0:1,106953417739910482828300,-34635575105438351
+egcd:65154144550755804519,4285018859628755463,0,0,0:3,-609852871996317628,9272874514298907745
+egcd:7165578261547505,763555532759171606,0,0,0:1,-174953906015578927,1641852952316256
+egcd:5442458157933637000759,66760245307752621192750,0,0,0:1,29074397305494111881389,-2370215838375818515507
+egcd:42143136951989716656,827894838488320343515,0,0,0:1,370905938581526544116,-18880586083238491373
+egcd:5295415444080909673074,5092055214749737510,0,0,0:2,-79624725963726612,82804680196255688279
+egcd:118338007742261895,5763460050841396334194,0,0,0:1,39330742550539324473,-807556862613311
+egcd:57063373752305154812,692318043858914149958,0,0,0:2,-70368857818416495450,5800057458900243919
+egcd:49356454157781030126,38544768358653028317,0,0,0:3,-1638594177535601368,2098214669607345263
+egcd:98128015703777581473188,71751790667213936232,0,0,0:4,1131009376775245397,-1546772628993544572326
+egcd:95760302891303565510312,49856290116188787587208441,0,0,0:3,-3088248308134997399905293,5931680690668486327459
+egcd:40420853393811300450702,87550419156538713298378,0,0,0:2,-17578959514036280337967,8115969657005769255362
+egcd:422899389299537033304669,8005135756870427773,0,0,0:1,1826207874406781724,-96475839795446732840135
+egcd:179674525723481348814,69928617693608886497807522,0,0,0:2,-17176881265197584758274313,44134262860096480672
+egcd:7789649675160016285918,417200326088447794162,0,0,0:2,-94835249783231044512,1770692222592009406889
+egcd:177465346778880323,60001957340989928039014267,0,0,0:1,24984084908903832591086708,-73894410929202849
+egcd:151317887902583777,714764598301032762905,0,0,0:1,183810322507486902798,-38913216802619989
+egcd:51078283105727024828148762,75871019523002756919949191,0,0,0:3,11485911105291504406000748,-7732604924142639690250403
+egcd:4760258696724862445736876,3471524299806755969674,0,0,0:2,856359023818037629295,-1174265290574387452901557
+egcd:261631865216813032,5681600833992180785,0,0,0:1,709538151924588968,-32673500929505135
+egcd:720979639879195715,783996604122129884144,0,0,0:1,376019130933410843211,-345795040670644006
+egcd:36110696808763448994,31631881940059268291965,0,0,0:1,-2383142920549669168891,2720576398805277667
+egcd:658675475456498963270,36727416735327035,0,0,0:5,3298655738340100,-59158629436863579657
+egcd:61220559308972890,667000611959077400,0,0,0:10,-26640911325438571,2445232377004423
+egcd:40220367562984968880458,89139127967069561321,0,0,0:1,26548285035112330181,-11978822394062224915657
+egcd:268590992017536259191399327,61179964518317742544264524,0,0,0:3,600487671783052773266369,-2636248332740054832357965
+egcd:834052968320156609779657,4980797187259222752640,0,0,0:7,-284790928354963265969,47689297559175644596626
+egcd:2304058851313997444536039,9169653702125462923229,0,0,0:1,-130649054522071275152,32828187439358617259301
+egcd:58451234918953535616,811141856188592686,0,0,0:2,-99923944925714621,7200562927828430183
+egcd:822396573998213269,36745646576975841888238,0,0,0:1,6092800501072128894693,-136361684305643132
+egcd:17578713797195009784,68270861083809145500872866,0,0,0:2,10088182822145144907111889,-2597554443418689739
+egcd:76377711400349230044,28120345054943065861736,0,0,0:4,-2062007766043178352451,5600622387542163743
+egcd:76762683909293356952194,336742697639190379,0,0,0:1,-75512400432970134,17213541871304020806343
+egcd:718613829360289007965846364,56996018089280939789090,0,0,0:2,-2524732262127936558957,31832180208715887766629415
+egcd:7295663098480852718,14423786075811123687515222,0,0,0:2,-3469836111463770997012649,1755070072665297072
+egcd:15211419951748549035347,4699398308750843428412139,0,0,0:1,6946404824215205904662,-22484725489054469667
+egcd:17150054056990843968091,37598518807922567502949,0,0,0:1,-7518057558796082945642,3429259918338934660227
+egcd:77024520800929983778,12004114915728728552,0,0,0:2,-2120493047554731255,13606164385813996546
+egcd:6552691621635472445,9454879100164928596390176,0,0,0:1,227870736946333719833045,-157925516866534574
+egcd:380663675562604264,44830819384430864282488995,0,0,0:1,-16273991432157066610391981,138184344602692003
+egcd:2230931798936940632516431,790824149442647895647799515,0,0,0:1,331133100467518126491471001,-934133541615045780146562
+egcd:95014513131992964781831,6426665041014306194430759004,0,0,0:1,239158098260009820460949479,-3535813695397102752012
+egcd:45587301786773822623,12200508698455746294,0,0,0:1,-4813378778407164821,17985229666126454386
+egcd:544408824836312286809239334,47857195870319437437969,0,0,0:1,-3285821056099126073737,37378495485205612484001511
+egcd:368559293555584153297233,863543676262890554,0,0,0:1,182689982444744817,-77971841749691835919840
+egcd:286838686809753815604,290258385092986016322966,0,0,0:42,-3439904517337276235112,3399377055680475215
+egcd:247310884666793355418391440,8146285853652299839620,0,0,0:20,77671205038431135851,-2357999065620583642815591
+egcd:723355341278352532752,2716643920855001136283,0,0,0:1,-647343221413917008844,172366784345707798483
+egcd:4747770341760547358928,3900131915460402444898291,0,0,0:1,-48191502504962163320631,58665242939847808459
+egcd:62996662961434499047,9733114500463650951,0,0,0:1,-2609387863316684519,16889016126666164094
+egcd:85408851497556727644592364,176571048356555258831010,0,0,0:2,10373200197110227040698,-5017601262696030666591307
+egcd:3859907398033663982,96346670011473683698108682,0,0,0:2,23114207598170766553332033,-926017483502444222
+egcd:372461979322690243,540222307494848292,0,0,0:1,-216390837474738389,149192949855933584
+egcd:7516220184290968225960,300386413342210429744,0,0,0:8,-15749172306804321015,394073238736743444182
+egcd:6108319432277782804,82931541043539126216389,0,0,0:1,14516925059734418621210,-1069243551048233051
+egcd:7230921518942393713547539642,72114378808806856868,0,0,0:2,-16718190793824596963,1676335948054892581924595036
+egcd:3825709037512543084718302,2651564896588437884119958,0,0,0:2,-590856988072406763814624,852495415840807251070275
+egcd:911054271475454361570597270,621648474138432132340027,0,0,0:1,177507600588673885690903,-260145507410443226451439067
+egcd:65298316398221703103077598,534642984572205231284578626,0,0,0:2,27704620476219826795345676,-3383688041836699547596371
+egcd:7540589021419394540066,951669501600612914519183,0,0,0:1,331190832641661629577944,-2624202995275280476641
+egcd:9761932411251041918483933,382356303803298271385489,0,0,0:1,-174786897144790383992576,4462481353982094260231281
+egcd:29200924565006580097578,89587549755035053290130260583,0,0,0:1,-12724495224425705121391303686,4147529720281901737723
+egcd:99943694998442521323946016389,333424364613212729745462161,0,0,0:1,-5705329051108614724676136,1710167963313731051974706105
+egcd:5690154324629967337460,1632283715496329281241648395,0,0,0:5,56290934452012514099439970,-196230655901744389641
+egcd:1925002725694160249373602782,3526543575073330036110,0,0,0:2,-3919880867811415654,2139710227393535147948013
+egcd:52670953750351044438983990007,6419267762739355812530600,0,0,0:1,-203989820551702316343657,1673763862318789910544563426
+egcd:510257531185418430181,66420793633874998820433,0,0,0:1,11533829131275308680081,-88605131851925052020
+egcd:624028484658998836131051,290010878235398822043835106,0,0,0:1,-122928139167747537660445423,264509596583252200647779
+egcd:82126417002597285652,9711508871315310668247843,0,0,0:1,1977141009391962114230902,-16719905131309273821
+egcd:5313586393962705049080,76998532453336088964044527295,0,0,0:5,7351068169285296934826456278,-507289354236443273333
+egcd:7446329018924231360114,281705996976935084208360,0,0,0:2,61771771846187437852753,-1632812017439206420394
+egcd:92632241917277332460964,41225270861482533930349836,0,0,0:36,-232831718389563965069268,523167552648600475583
+egcd:505206995627529688155,30108238444718526549709911,0,0,0:3,2815345833969785332425863,-47240638572857371542
+egcd:350682530039234485322546750017,732856831499478812681071778657,0,0,0:1,114634298969783930190784719020,-54854160136223590904319282827
+egcd:73936773633607324540860765536,5462243107704027813296706,0,0,0:2,434277168489579388852756,-5878363900642009138649028319
+egcd:9329801698838720379683494,2642515095105038480589941,0,0,0:7,174846258141415342001899,-617321323637898767831439
+egcd:25822034647579787624514946804,190739018295930506821730846235,0,0,0:1,17294294853830144704620058819,-2341282265740751416856382785
+egcd:7949963986480899256177301,54250986866391077101265062,0,0,0:1,-4923803556165288789334505,721536385032484788574613
+egcd:3746930579001676751120,99207386871851914556838486427,0,0,0:1,-48583865685594090026984533471,1834947756648482241123
+egcd:26584400729548923821953289,4186329192513161170925,0,0,0:1,1656738211241031433334,-10520766639746090510993433
+egcd:15015617716874132201457077873,908213746723440854928237000,0,0,0:1,408879360871055069439454937,-6760056426484746584749467457
+egcd:941171208223609049472714,2820721728009499408048129,0,0,0:1,-561073227079218020506735,187209522225614099075479
+egcd:30137430783951200466620,7932600136613507821178378958,0,0,0:2,874263946876564747820132932,-3321492162990162597361
+egcd:55007423087104738440174209,45869037869891649236,0,0,0:1,6370717719612306117,-7639941477849380770592557
+egcd:49096256950991848579874131467,931448097952317628160996789,0,0,0:1,-326595408525690731353759748,17214713445914733493338694553
+egcd:1122894299337591195948255,54881121839952705699464175,0,0,0:15,1530959605417535453487243,-31324174065771247623514
+egcd:35498057471655773087035017,85668857880959672128179,0,0,0:9,413483537492374633285,-171332532504207423622284
+egcd:1887739328175786669349,5857986692383902136266,0,0,0:1,-1152123029924601355085,371272259343532579901
+egcd:291707312665735093614825955052,7207353925931727830829,0,0,0:1,-3501220426060812684211,141706874954742490398970247737
+egcd:95531532857951877080714695655,1267695778421377857836,0,0,0:1,437662312686039158539,-32981534147821284545085645329
+egcd:74484904487858142015156737,351049851111701482889769961,0,0,0:1,17139443017007319377607732,-3636605376854762326364603
+egcd:2136069932966937675469,7447531079022134243581196506246,0,0,0:1,545901561496939760038844699835,-156573218627833145909
+egcd:509775218017409565394932197,216635621683624922457211,0,0,0:1,42814883976773638426025,-100749667317060906989689284
+egcd:745276060382671550825981532388,5112220648677904268244,0,0,0:4,-58944865145259393149,8593173083522474449221607614
+egcd:8078258267292267766114067,884100779411269652418038495,0,0,0:1,278129835236887309130321543,-2541344486065477531385724
+egcd:8844980710175781452273298,935135907771717589995041479,0,0,0:1,-48834539676535952819435698,461901374804996053728595
+egcd:58087603156751215661949004,58712010607326754590110,0,0,0:2,1191143911590048935583,-1178475990232715912474903
+egcd:5679173086064233367773646048971,12789890243264425121239084,0,0,0:1,105424447625040632402467,-46812261417225737221083455184
+egcd:77653936311643667916482493998,15693437224085205047080,0,0,0:2,2640971088036021388319,-13067997644040407190632050442
+egcd:7284686326593740714529339,90971885163627008124264246742,0,0,0:1,7198130762602806275082298459,-576399232016044918973300
+egcd:30545805868231898661181062,9266612086889390909321896160792,0,0,0:2,-538109282848491556444597462033,1773785449920680245879519
+egcd:5874785131042125952122412011,2349616696032997520626166708,0,0,0:1,561505530055217292587132395,-1403941478853022044849375718
+egcd:260436619859311350841971,1212092952552738381785471705126,0,0,0:1,249307384938854393628000175415,-53567486307626529321214
+egcd:2081870677650494937076,343501716877184044936575,0,0,0:13,-8002592767368064135037,48501542813302049871
+egcd:5691817817445639700141386839865,8687746818925263901770782,0,0,0:1,800431353877405067350643,-524406331883086413378341354467
+egcd:7181315131090723377262366519,979729982933337084774328653741,0,0,0:1,234315848781865941936193642222,-1717509905406328622700624837
+egcd:42080505166736566441565451216016,76651513399029916866847,0,0,0:1,-10862717669575888116265,5963465387040535737057564145103
+egcd:3576584500173313993122814232472,956729492745224694909152831129,0,0,0:1,112997896952360433126909373108,-422425074022064413751985822775
+egcd:39436344864081129175577,1167601129966960865519531141627,0,0,0:1,171787444425430917487358673786,-5802211669555479977323
+egcd:4257657006586752810590,77147349594877154853239911600,0,0,0:10,563538244311585376718458939,-31100907120886287790
+egcd:202401109849117829323361,272785163230303985302397208,0,0,0:1,23898973633160449229831945,-17732558216601391500943
+egcd:428080555595049024501717,58005872228568473578325314236,0,0,0:3,-27025471292559437633908505,199446682235027309708
+egcd:65986801519081050039948301,606919157648734368493531958309,0,0,0:1,177217106981913490775680119487,-19267788661516250973518154
+egcd:32012062136782881389216056,8869128247524938255824580,0,0,0:4,65752954911363551966964,-237327459876009040631431
+egcd:1659494763900889556967676,44291944525456085901327930,0,0,0:2,-1939570066390918372994278,72670242950040945291001
+egcd:223050013194629393090661502,798488954097788537544217128068,0,0,0:2,-161550947050238364712712345521,45127663552810491926056008
+egcd:3248908131273613694428163643,41879881211067694937556432,0,0,0:27,152368979327239401229505,-11820301337418926358261534
+egcd:3446049603173727626406694518,128204824207783873176312600555,0,0,0:3,1056928424865089617706172356,-28409444040782355854331071
+egcd:700031253558626136214208233370,52123353846012574000878521623,0,0,0:1,18394042136597105147975391256,-247037142178779880729238222953
+egcd:435876668588605457895900237986,271303986771473105323219943001,0,0,0:1,75954147113817500975823522812,-122027844129493972049386903631
+egcd:21894869356689284742223217,560101383667765190092124546814,0,0,0:1,-267658820677239482560763028061,10463025233963471610122617
+egcd:93550360054222226284955381499753,862954759319855471087513825,0,0,0:1,46956904727976525514024192,-5090458447435021286477243513311
+egcd:163036556076233835371222,325253846064704092481611715780,0,0,0:2,54681731490561412578180374911,-27409733321748193593258
+egcd:298760510595869651060219530,2623576823283807936237615,0,0,0:5,-2274816856798681184620,259045376379949119206227
+egcd:296230762513979639442717636233354,744175580561578635268252771,0,0,0:1,-32683945300355203946061855,13010357086674471069800614815901
+egcd:98928114229803289645575952596,348257401408420844843182275974,0,0,0:2,64013299296094164502149959938,-18184006885079414479620311729
+egcd:25494984833088459284053502,55538387170360999263101791354861,0,0,0:1,-13961772810342240040396540580435,6409173981787208904855911
+egcd:9359069710378270733841468708,7964135606537379331278169,0,0,0:1,-85301538328543188593444,100242271485686143586274937
+egcd:195970387106442905335558970212,98516089210647543971591302645,0,0,0:1,41045531049286373118094757998,-81648679653930215927296149435
+egcd:56089374569303066947729808,3639958663360642892752262467447,0,0,0:1,-1082612960697886770974458433228,16682355345789150259831175
+egcd:77185220697583421203504780317,38956103306675053558083657208,0,0,0:1,-15968896903521518756033811651,31639787534500855950959809021
+egcd:7188758981017613732187784596,8631409677648057462898487410251534,0,0,0:6,699438759027432535326542480920388,-582534817418185462274574963
+egcd:13002008635939628191889025,2592210142742456161455160840997695,0,0,0:5,75548903633041076033203125863138,-378938220044671750740451
+egcd:5392206357529202370293290582,948791676960011700258391458218182,0,0,0:2,187120500260806390833148058965610,-1063449833754065004912067599
+egcd:56544377896569143411201431214146,76585331663390150529866457483782,0,0,0:2,9058983102991352121685655626679,-6688416081888426016772130405426
+egcd:1031141749989374985000595839,2009599508279438972802543089088229,0,0,0:1,-126919473322514828506873048560747,65123407569678662184010846
+egcd:298829367007901182284218491,86088936999033370088419809276,0,0,0:1,-15810428616337484255943286769,54880691297149907598944205
+egcd:89096238096139543100186984,6280657804119840743206710613975,0,0,0:1,-2167845076635776547503368565936,30752645204900197093113959
+egcd:72302302888163686505438102,216294628465581933787047635,0,0,0:1,-41789803774641178599701942,13969367023054995629391271
+egcd:7344423585894563618479886291,64742746516225911812839171195,0,0,0:1,3780593925465397372719483346,-428870949858745274825015983
+egcd:476166266511928480941810303162,18227725793516746361381041226,0,0,0:2,4455414192209412199765379430,-116389612489299070719517452233
+egcd:2947038272293705986916176,304655516887206203888885395,0,0,0:1,-109032350828407811155001224,1054707671446621662700315
+egcd:5336534152617403337493975,121693724313422319665633935007584,0,0,0:1,-20927747392063258189216772528249,917727182113838425381039
+egcd:7843688392207875316169462536803513,961373577118119555001824067724,0,0,0:1,15264598965786873678488692173,-124541344352904002665189888529827
+egcd:57707445075805800484005722,3193791338236737476237368616160,0,0,0:2,-726032458195877241439267854299,13118414375725016916077568
+egcd:3888164897150599425315896428,205183819721771722595087705,0,0,0:1,89162997566753336326543942,-1689609042924883873671187935
+egcd:602417296292970251426446187098,518146488443536951749769338863282,0,0,0:2,-94681801709378439277053173041833,110080751806786360731992754598
+egcd:15607864856380204759343924600056208,85052708198112429563844521,0,0,0:1,36709574212910552715797330,-6736505931307702456822986279949959
+egcd:82966223347346884138560378408,387550826708631961461927727625,0,0,0:1,40689557976537119419523190072,-8710751525565014944116387463
+egcd:457941790845177233752849712592384,906379077457778070185230350,0,0,0:6,-38742338721240980168476766,19574299999617999644302509928229
+egcd:17520719333212917099310752269335,777312604525614950110016270,0,0,0:5,-37751502797693573191966387,850923400797104861105824821195
+egcd:7306687969771772551064816345560,93860833710620402880693367063925434,0,0,0:2,-22267197686818972849668228015866402,1733411680109554581599314098733
+egcd:9217304562871982912081196416939115,45870849307880337525730087,0,0,0:1,11332401339029049951636388,-2277136703300246618193509803178237
+egcd:2134005353764205569149428712160814,18399584757091279388913554789316258,0,0,0:2,3505886019286566312711773541099241,-406616759759275454593644975464334
+egcd:328060478808294918960133208057727,5348905699347524558908735435,0,0,0:1,-1625801360474358080252404807,99714072885871998294880707908974
+egcd:152187719989614115335894105182,345706102040316044204222170,0,0,0:2,76351546968434028595864981,-33611694390777105417832332162
+egcd:90466176767209784417980607,47937980732897762962198916204,0,0,0:1,18691494153161079961152768391,-35273659596235640430430634
+egcd:22191701690446556393936729275,39127301370409752749065478506260,0,0,0:5,-1218868518522681739916085065245,691301613338140203683659113
+egcd:2775905315510344742322701111035,7936207786535867419090958193322,0,0,0:1,1862857017468570252301586587547,-651585094029390131031434362252
+egcd:514225903257242358267890795752,12195287538749560345215842,0,0,0:2,2593213573051136744157827,-109345317829044919259315081931
+egcd:5110340321650167437688203484,5898223610382806099689579027273,0,0,0:1,-1018061900744385391688765044676,882069437338979035072954345
+egcd:44404545087402155313016176366973,25830952532663780058171102811682180,0,0,0:1,8891719587254083391047997850029457,-15285257592320164601304464794387
+egcd:63300097463298300923000480926,16725067069928349236075120182800720,0,0,0:2,-857298523517998961630904929133553,3244655454410895040363088764
+egcd:93746022629651569339267076554163,59574007540242509707977428342,0,0,0:1,11788481187505597040178059987,-18550426096928359281490940224140
+egcd:836458939105765496287004470978244,993138957276858432408154782964382,0,0,0:2,-230968215392250987185055187226932,194530107794670768100558065725255
+egcd:80307477121258242272132678185446,332941739408686566344932888055688,0,0,0:6,-19596167789673034226948559353263,4726709241167753753045385329608
+egcd:3788453611470993575354311943,818010566804135634923861221704098,0,0,0:1,-137813490037976101809867354792809,638255830952858499594495856
+egcd:259587623659498181771581731880751744,58285944586801516286178106,0,0,0:2,12918436162055871131672937,-57534731031267918251576351240716171
+egcd:958710310132392913096861246,493657249388271089046091328590299905,0,0,0:1,135918487767490572772558916150543076,-263961393703363123681764919
+egcd:4551280541337185611914329527123,908864538052498723441933539502998,0,0,0:1,7268920160967968521955585604127,-36400248331876396282408916690
+egcd:13070475233480910888148121360,4413285328570554568205135584756141,0,0,0:1,-1717230732757565870913316011799224,5085785325815291001604078501
+egcd:14182858242524025309933936657556,3681095590818104384942178227869,0,0,0:1,1066740967448959129497195096699,-4110036142652596636215627796247
+egcd:30711728727831843417803691928823465,812520406510931643757197797324,0,0,0:1,194250898522863680149137450729,-7342315162507265729295009482678716
+egcd:569581482051982147368669338544,92228924551131117274576467984481,0,0,0:1,-15253790413013464064435116976927,94203381343103503173116637169
+egcd:48368135803685842814525775885,40003260510798989461787462217258154,0,0,0:1,-10067998535127146280640641119302781,12173265733848893973291833209
+egcd:4930018459600661874298066807914,2880020912442370329450214542118524,0,0,0:6,99607976318992660230378108507283,-170508887575977201168637981194
+egcd:711972151064706829096321326250,7007757329792910915127427981,0,0,0:1,-2295746860897920906029564326,233242641537338029349184727921
+egcd:4867220801462747830964320558865,559593908596537627162047055199,0,0,0:1,-136024405963053072514365585053,1183109408518107154940668015954
+egcd:1945367852716329243161308578831818,27652505202701349899029917766402433,0,0,0:1,-4394234229043878775227521709624144,309136620491535022574591706581921
+egcd:2412119651934489718572203112,71072673842732776958058175719000,0,0,0:216,39866022094797375420918506243,-1353004046985744635384612
+egcd:6670138054949154699848469764210,11854940081839078859576304802,0,0,0:2,-798743094019718928779709705,449409838495131194424053526626
+egcd:5079267998502677211817352966622046,725385967799535801573193170671426,0,0,0:2,-8733269027224634938993697761408,61151739710183405161934626994145
+egcd:4480886776816194313314948946313097,7994809135117481733885678298185027,0,0,0:3,1325601507700856805107662436885592,-742965862823827740623264222516423
+egcd:1874083707489243811559858061454,9579456370990495994658664409458725694,0,0,0:14,297611345884849035866817528293453049,-58223405680490774590261172728
+egcd:8686331588156731815552370068,3661502563583219068024887206,0,0,0:2,434080449473510327885732734,-1029786721321607796844318985
+egcd:9453863620833568356276223534918,23089387412280380517663003882151,0,0,0:1,-733315877883858422418297112256,300253453100215815170432043159
+egcd:55969320483418908248140871212,85079326328092084335875608943,0,0,0:1,6383961327473919368001838883,-4199680379617232871527304365
+egcd:920794688460040921882938496,500020334426725550170801887474283487,0,0,0:1,-164831869162100766351156834325468988,303540274591861720062941727
+egcd:2844850591475245305055592454156239745,217485336689197516110267978741866,0,0,0:1,-16965642610700236477617589115003,221921712748763436022152765469317446
+egcd:2250199404990420542899432858,805700188980281851693883900245317954,0,0,0:2,-125668559037065384081466548929550437,350973377738811240057657762
+egcd:2676253116351366843635779601279052,36480162826421640007834066520660170608,0,0,0:12,587251884638716966437757250151967981,-43081898889148741230200589919875
+egcd:434143745379431441298635777347861647,3321086261271951935256233282,0,0,0:1,217185906813395152991805457,-28391283938371176479724338141821279
+egcd:328831327716598552708493006826883,5998904017653902496457354820710614,0,0,0:1,-1691762719070528355733005679612283,92734369387521661720402695326635
+egcd:82257549943062294615386699467607,981668433037552750731455606581623,0,0,0:1,459255931703398524802713311124392,-38482716228173528870552258975841
+egcd:74258380804562546584265075951,77261232078825514789206570986101,0,0,0:1,-17606092948365433867565372298025,16921810841773443299096443176
+egcd:16604612215694436405195267479037791,12088809689403272378161906752667109,0,0,0:1,3335737012027898468082114279119872,-4581809207139284046012442723179539
+egcd:117187641044570371899825799649735,8178592535769464440682270853557106,0,0,0:1,2457083678190030290584253972331461,-35206527142278737093501147598489
+egcd:68116770003229052128759620238,45736612498624533810503009289382345575,0,0,0:1,3731521474495048658135396258227407127,-5557455529701362669272570263
+egcd:2342779644629940837325383152346,35028149264501773716827009029,0,0,0:1,9345366038727486594063066374,-625043965692319665157982363807
+egcd:41835886127596634688804793376,2957403801973782095124355461083505178,0,0,0:2,-140338661769489730626292727126091297,1985252155681011990306970133
+egcd:25097271744035338424812948162775851793,6632509587157028992269773636929691,0,0,0:1,-1033804362959546806519618544340632,3911893181067603431716224112635814747
+egcd:96520534936943177089214535009509,153964299411236835495293391645461,0,0,0:1,-46118336610084143333960687917,28911679766215052420281648314
+egcd:351485939694896123221486285958,258506570841696812103157651165770,0,0,0:2,-46453451455854421472351814714311,63161779539565138403359187422
+egcd:28007417021035441195271408027331994,676148020718828368622335803516,0,0,0:2,7786979935141692020919165551,-322552440730491285420662042795887
+egcd:4413362764336697663014052800322,65693610499398083043787280412,0,0,0:2,-6078361211144309430831885779,408350413891448394748721866070
+egcd:197461225716508808586959311780588571,454511236742266442066996230684,0,0,0:1,-219776105748141429162113653733,95481158035346356765866516205288166
+egcd:744324786002890919135978033721,2141150730373780972923060548366089391,0,0,0:1,-874346039933062214689297981457141765,303947508147659392320612047426
+egcd:372181197908829408250471651219,78669259391484278000787446068847,0,0,0:1,-39097687514411049901323408115062,184969634735797925888333342957
+egcd:684001754049621391333368494606676207530,811149742697476858677211191126653,0,0,0:1,-10915635617581306251815187309810,9204606148505852521943359730207435417
+egcd:364115078887792552377812666799607025862,8827301542572999906405869168316,0,0,0:6,353056586514687016404428485663,-14563139848644964464623772510953465875
+egcd:938042970041490895536761429291587,259757840576661229754224229243143,0,0,0:1,98100150147783338002545568916477,-354261322783767043672286176280986
+egcd:820267097131794751974736885266425315,82778860358839053567709120364638296644,0,0,0:1,-6400683257976970254293978091743005009,63425249549479075033990058036517669
+egcd:5457600674875173931733854800284,215111250666665397843928050541,0,0,0:1,15698966476127453640130012992,-398299437009563514118180872347
+egcd:6974124210886759868095546470042140,692694405426414064223497416146001,0,0,0:1,29811566834519349840902140899878,-300146166038548580439590878684919
+egcd:578127999598677928196850592197,7973510834560431357694126562765421,0,0,0:3,1163976746730659318155746392537117,-84395388948370397153290973126
+egcd:14723115671662580034450839772216631448,337895382484927435971195174146558,0,0,0:2,-83832862484269350178843664235104,3652849359365062786475539074792751743
+egcd:5703374596739162783083891159661674696,33366082296877919793073058464756227504,0,0,0:8,-1420826709123263094052675997824009987,242866599892681179183222633947553490
+egcd:3887856931052935625932193493988,2024878462802165949196024488137162136,0,0,0:4,-38889854468224057532149506069268181,74670254545888366761385533837
+egcd:116797886673620424155638344455575785,81954763999357052682292188450710,0,0,0:5,3939912856352315655141769553963,-5614969439772751205749020485962445
+egcd:39829595917373567921976064035194822733,3324835861238165638267965325306,0,0,0:1,-506495325242796237927113416249,6067518813078093176620314277655697103
+egcd:172216102857743621234283534482806021,145818479011898244797230396928023167980,0,0,0:1,-39678809736017016135656043364181182859,46861893122703407143312718238723498
+egcd:7727386332979968071664568403819269717,8575912217193880571454308157117336041576,0,0,0:1,-2268426632858813001110639846963498854811,2043981854778897974533067749584386763
+egcd:1257841454013765362088088015288120393334,5205555031313951556768022638995305531,0,0,0:1,-2069900289624638164056699910111515249,500159228805191194406298831997643647957
+egcd:329035719059507603931777828933787916,63174092441176600783246575745147736,0,0,0:4,-245032949249890737539102034446971,1276228744002642318798325126059915
+egcd:87426773521557211600093712732512,508336012580310863309243338497305585,0,0,0:1,-205653577638095609940604488277326932,35369575066695095584232158908561
+egcd:362736691322477088361764242120205,3310232079384692960069748150503077194,0,0,0:3,-298020242142018021148617862617948095,32657189583460645957996941439487
+egcd:119651446745096900798041375200448579,34904565501135027467488578221618555201,0,0,0:1,3540823847551645875601198046573235235,-12137801744454264167914107388308264
+egcd:33213056682266640333567121628934,394975398517140989884982468602916178,0,0,0:126,618949137634363451274564985445508,-52046767643929692458960957957
+egcd:73953631593374110277606522091274192654,472933146030124955694766250141468288,0,0,0:2,-25101980308935881143484630826554441,3925253748048624389535318040775271182
+egcd:8710580473357199589908718434142,809420061697430276091837694297806840287,0,0,0:1,139259190736440579781799630396860501656,-1498638895878772876966684998673
+egcd:77046997340564369387791662570845,4689854151349789784672220940122,0,0,0:1,-1962814468060010425072973823553,32245983823849957256883772384363
+egcd:9502904350676529706040238562436114,120812359166607505889223477518,0,0,0:2,-23295919059968979396801881056,1832419233554513311030927129706327
+egcd:31192932152325411540357484553215718,868422046212786848257208790061091,0,0,0:1,-230532004021048809280348128406617,8280500468324364563224586249922077
+egcd:4323608585320872985487445640831972992,4084657409651854768355784706431953538,0,0,0:6,54695934287773592257749571957761641,-57895629266230261159874845651528957
+egcd:3107887987298186821475596783022,17295539125083136515530515139788847,0,0,0:1,-4548338553569994765732871853161292,817304777293980388775383524775
+egcd:6492834786527134721523710453730006412699,17967549886740060364182315507603,0,0,0:7,470846050128324576077742494869,-170147050245744662628832662693122120208
+egcd:799805327081992551235962453510248660453,527300566054543088930412034236453,0,0,0:1,-237075289836488158904993771580490,359593924105739027278040604269201695607
+egcd:833510079586844189468222881538313142775,163464471091603074311918213259985533,0,0,0:1,-61563360576469717421897023746373636,313913361301437981499182950778660790497
+egcd:49929157404053899498216569279542495014,52392311954248457857910547305304892,0,0,0:2,-12646518967361681435848485552856301,12051959773910155320611318460802797748
+egcd:8019914013817036621081087587164121,46265590541944209649621467308503531211227,0,0,0:1,13683404292013421097959669212670785871407,-2371951261245719997345654872544098
+egcd:6793690558655838315726513011194313858016,36465391197483395356496390604936557,0,0,0:1,17578619745456361142487500175464301,-3274987572521910182985712771749335932795
+egcd:321787145894134330720247393571488832,18281500192882799634120662107983334952501,0,0,0:1,-6095953088727896985909292224676751826817,107299692324481991773965193337745245
+egcd:6047548862579556374720382350020069977,568658196833000836860083279186765,0,0,0:1,-60242414519379328797326699138997,640664194123467451661791719429686438
+egcd:2870680665840606619961146285976303711365,201189029370140692788327587076886544,0,0,0:1,-17987198256416229496582948278184755,256651679413089218267919705828623910104
+egcd:39798370242867453845816667887487587,35013670694520682198689629893928314,0,0,0:1,2054010924317556869064391839728301,-2334696295115298268400128614101999
+egcd:73858651956033138177599059035112771,52098398670389170171335995363841,0,0,0:1,17240380939183249647785945691706,-24441275123112177186980477847169325
+egcd:7644571930682061497288549926132,785802125855010277645849882091997,0,0,0:1,271947942761049618119207873759383,-2645609551610500508344199027815
+egcd:41557893857172527363631252083795195,1371686406573225335634810457756964207,0,0,0:1,-655209336639216756304666696201636448,19850834662935335118652391694675823
+egcd:973653542609832491247256728338117715,2002969097578635540682944029408420962675,0,0,0:5,175219282530720533493371867912236604557,-85174991154795587826633985259908870
+egcd:831391603082990206528467891742567543,91348680460502373319036115086068410,0,0,0:1,7961031378909225546181572782336037,-72455722479397588386999277916029549
+egcd:176911664463691309750764037723638110826689,460013441967893539463255590714202,0,0,0:11,361642599535882299511849044819,-139080271113761217419393593167310893140
+egcd:6348236474737074437089035380543803,95699625549966825347938548412205080931792,0,0,0:1,-24203197508040948460999995184599094127421,1605519565440601434387009540507317
+egcd:36378047425993403908760151690761395656927,8324175954260445983822589970605585871744,0,0,0:1,-37338373251079967191012744395502594657,163174964152701799172289301950393962035
+egcd:5858122486508222854576912675764622,153452046194711393162502085210831888,0,0,0:2,-1917578181935824357411526205393145,73204679545178717228315912714034
+egcd:112814326530446724164485340282110380257,1110948014051557856317025720135946251,0,0,0:1,-463407619011972388363881014261728099,47058024125949149529869264751419106444
+egcd:6762936490294534151595858255833949,728054939347597344951631101746688290337,0,0,0:3,-3202433078336335166791354061436519790,29747551115599101396300822706649
+egcd:605526563136558093297316930606967635244,9300793514406874242288831761716510,0,0,0:2,1345751153121394580612078693754308,-87614897516475468831438470665488535865
+egcd:4991270541520370370359273753865001,20395641239574465006088950312639388,0,0,0:1,-6874587192924230257223537357557787,1682365567137806304784656152958051
+egcd:500946862886657134755071848342560490955748,3247882743399223852727598527588480210044,0,0,0:4,-23547587498989715538211417876627327203,3631932251908272984390735044167733370292
+egcd:35871368552972366494601834117723560353107,1239860437073895516621923584113449874234,0,0,0:11,51469208630308277351083609242535070737,-1489095785865112466538607676302494302572
+egcd:81015511060223907703360673011829949,18579927224926372016967617691018603546752,0,0,0:1,5992620067510956522835707392099844262933,-26130090364822596580080018527487583
+egcd:686805747950297226208831836097754506778,415846263888979485125026003401455197236311,0,0,0:1,110107419398192448360459918988248994607406,-181851840695728638721354366896502478797
+egcd:1552581181786867650628866738064485666,85001787017719566705908468802934139661004,0,0,0:2,-14586161026251782336851603095136839467709,266420270895607062006639549884867549
+egcd:2851667439961142964793942899685249435,5962772303345585675470039928831166,0,0,0:1,-2115221698102148418532942878583229,1011594697552485521822302637286789576
+egcd:976351980138172140382095386377096085376164,333761105209340508973257305004288242553584,0,0,0:4,-11680691421845751055896280275529788227959,34169548281993462971582117489794480071420
+egcd:20256356281064282905418422186773378,36340325278599621781402169518780276,0,0,0:2,-7025630039156045892929526907737769,3916136250324079267011293834961209
+egcd:394033413204458189167729459825446183,8154588797405589591500377773574341,0,0,0:9,165356907535808812271372935734782,-7990120445312753421042830670631317
+egcd:665386750398767451333668812103953203673693,8552358001531037761606275007435960,0,0,0:1,955024064062749227842006843214437,-74302357130697440661858910661622274980954
+egcd:5687975873047240253725753499538688,999307950133750868872575786467795722,0,0,0:2,-124602922769525950861094557747847926,709229240425208460210072090208845
+egcd:874386700310057076622355171620744115078787,6285850330763062054705785971806513126150457,0,0,0:1,-1288975686576661743329027505076878260385105,179301627951558198068988999319064038000148
+egcd:1355399916760756632497111838694490983,18711706480754058334085390313570835572010,0,0,0:1,2437253796054429273026706937620795028837,-176544752649619721719844994195203277
+egcd:36233162261680351064206988631037080,28152769682211333909464292684458349851046,0,0,0:6,-441278995396378059385736368512158452537,567934651664879095404422678700021
+egcd:4627432565929377000942281079613356,26956649857247707823755540417743526,0,0,0:2,4330342191483523965289985331335031,-743355223464507160483903148381059
+egcd:6854846008427410556215762033804468577678,7155117253417530565506970580853273,0,0,0:1,-2452250746495250667905605947764875,2349339730700732618876715217888241493587
+egcd:2209645186813254112014092471353574880075,64182917222911163587618920972678745056,0,0,0:3,-4461195093044247750680745185136778743,153586946360569502568644586700147510013
+egcd:3025313331138953295279745199525101,8653524593948850180321261885145757158940,0,0,0:1,904226340311477989339899624174300049361,-316121826662884025029029485732009
+egcd:8175371412709228305420266641849867,82198171379976862350953285654395132,0,0,0:1,-2003681145318731802560456037905993,199284695518342758166966519484151
+egcd:84689792444868552924138110130100582,948880824334996164969139354006847,0,0,0:1,335813075011390237303675237523472,-29972088057443111534563303078311649
+egcd:8798524220512740895216632300585304,949715540408757144575796561647960443,0,0,0:1,-365201672634729056326900567364188532,3383366519058383956113494719486803
+egcd:217649222873019166379207709389541260,16404476006672084886049791516665079733587,0,0,0:1,4012192602792553158779189839801583942744,-53232459339725558831435308832318597
+egcd:594697321798546733359335415436661243,385951688100825419173743409926063859804,0,0,0:1,116343479007815023999562971626758550519,-179268953881601291313670792169485229
+egcd:56227820964445229423667006497516016715601,81892476688838156595578659146703309694103027,0,0,0:1,25913798344112231705938155558240294564843998,-17792555222598091584460603000915882858511
+egcd:836582345984336327468570096848318493595052,901634981123482446675039618318674827,0,0,0:1,429320451122865276676843207141615999,-398345137110681379270140802352205993417561
+egcd:70540891202696028214987115150030744,9583233767357631859259680519209578191440,0,0,0:8,-65514112814860871412811677812543980163,482240548076342233536804327541737
+egcd:9903948980685538036955142798518546054188477,73908402033109722105152729700594715538850,0,0,0:1,-31422618411370648401934291718142285762887,4210725722988152216237083404707290444549206
+egcd:540759354899060646610120700119399427327,91829281306603966715331478896265100858175,0,0,0:1,-9770047081196394787775469051083116371787,57533330129430781482128884413734461642
+egcd:87721157714374242858698347997325066587969,3284901878940400480442656721233156988,0,0,0:11,-123316683391743383266271066589127117,3293091432036939336610864709449064364218
+egcd:4743734019370435439736155675086368671242,373647739342207812233533011552089267317,0,0,0:1,-108245641206455177441179302126281646589,1374258363087126030891243596578927294967
+egcd:84363520867921952836929767189559325742,422634774589111146040596691819371580962015,0,0,0:1,3529869940822424493948866300794579980218,-704608977581504060641229871924854517
+egcd:8145193020311860837319395234399151215,532483509543719726427588068482044258548,0,0,0:1,230786770856496735053640355467784076499,-3530255419123562891236643633077796683
+egcd:2377647587095841620160668696819055129523472,773096322510799886986749609397216837,0,0,0:1,263630662321274282849039145784297888,-810792639805759699888475288147822340650355
+egcd:75184748541587873957500013097478130,838111431578529041793523211422510010621443,0,0,0:1,170760592066107917165103873007351219014134,-15318478774501769393625664676412633
+egcd:579262716093774075220251800110978515474,6043876047565477568423604334043743356163,0,0,0:1,1258844697728783566949425789115960891115,-120651349069335995640079130709736259543
+egcd:66383499181676556938103877122737166934035,530832541812442581934024695453113464955694,0,0,0:3,58293023611847179837332973337639810769253,-7289859947210577726709498679713475897458
+egcd:7920960396383675142682578572154754762141,798535291859442961798164423259513237,0,0,0:1,151926171612145541807953823850652973,-1507010649099546070150810894614252028216
+egcd:175236050519274673434166760526111360606823,281877686251107928756886484438054967,0,0,0:1,30236916062321703712671871858025268,-18797506894262892734920915273989626884589
+egcd:4355982041361439306851196662378203909,230636237869932319651414274905344806569567,0,0,0:1,-64199936549664682976687684995834852683768,1212531791403025059927999150787108039
+egcd:72466256004741341461529939955428815241048,404507868131062510694999082807036449755,0,0,0:1,21713717675376618978762676626454759457,-3889941204725080048332941044415757290037
+egcd:7876383615744606969586418493837128431527179,897248260026492001519641792023993581200574,0,0,0:1,328885352293723988890704291802089818369491,-2887079658631153099411074216761336194523512
+egcd:823746082909669336405179113773513767930385343,37536559251756687921153410535826723241292939,0,0,0:7,-2029208842362729101726422682288492660756476,44531328087129752982635593229262336345380225
+egcd:658695079684573590715110773468603499162,3354130807798642409123305655417010832860771,0,0,0:3,318657279290364283792244027119488336746923,-62578949361845124027649122556776393513
+egcd:4349656478540188481997316018037862985088490,688164220169053746563537722321624153,0,0,0:1,56153129479244282567341033533205593,-354925199932218939235077939287991582863873
+egcd:7196129991932253742247456920599960563583,1551953095381685219390198409960379051033,0,0,0:1,651009094600825687351894649336633273547,-3018613181428336616312033224198849913300
+egcd:33718565587845077554141406672209629947944,694018815107815973458210855280455125239178134,0,0,0:22,-11818955283142246659701315974948629193544001,574218177114593127458433250572665313149
+egcd:48034338404178048948731566945929396028527,245664579509095487326837561653834012231174,0,0,0:3,24571615785870174014749679914459909098657,-4804442342296368964974395821258650295714
+egcd:485688355671330103332655405066123104761671,70636792660478486808211498921213574664883214,0,0,0:1,19547946123779409908059764963032815931101605,-134408846325241118506649731947663309341911
+egcd:6405149591444338689334448812244664862636234,9522703507242637580231918951297251454383627,0,0,0:1,4648320274874893850302119473915399249290504,-3126547695921952271338054472863305659139405
+egcd:64888595504329753453829805980940122981,73955307031239460966127905414203750404095,0,0,0:1,9965146616771182675098528346228259968446,-8743447818881541791120354159157072395
+egcd:624397623292152787575544548499552047680257187,960228998573111999015226085451185104,0,0,0:1,419057942589135698988432238815099419,-272496231381448951268571570751366533430073263
+egcd:60540572208222349219969550724682829020471030,4146162156445517660494465536041682341,0,0,0:1,-1307551616090572205211276468970533788,19092336489263721226601454355991849598797301
+egcd:415933355431563557683948328005258732307,5191044700097573019754760781524192087,0,0,0:1,1272462334566092003025721823752845041,-101956264885641864639215199859367306478
+egcd:9944542537317183395984185860699341460076,7450240798258772130917228765744091077415,0,0,0:1,-2889467954547926066102243756339464559009,3856846746608830907837548122674598401739
+egcd:4675993042036765219044958471374401510644291,6536407542677511110744163901635941172672,0,0,0:1,-785059225257024547643372954589113914325,561613003920024127328079524546062364650733
+egcd:500068345406386239937220975858990964037635,31309949109544510956180803197239985764729,0,0,0:3,-1337847095354555157020998431688305125259,21367488686743026560783774598424528170692
+egcd:806337865275549066573685960631804017167976,42306413004831134281119351290563344128,0,0,0:184,109822054528620172938148368508740339,-2093150298482413200450472447557203137060
+egcd:75157219623632887126944407240803003838398,4795768824229131006026406965734558941262273,0,0,0:1,375827824436403534958920350232021578113439,-5889811493651217920413308759091284230977
+egcd:277262123821617241116745186212290538176548,4446513976462629109342017933070790727,0,0,0:1,734493945181565476977850175671555945,-45799327799969845689934000551863252036517
+egcd:98171317282291412247388001560687711655155,51444743731067016851540276812580755320,0,0,0:5,5036290558758038355810670649180532431,-9610686000386638919489216467402354664865
+egcd:11014904274052317243271908163944833907947641,71515011684041336572702882283905967103935856,0,0,0:1,22425609806502481498757965832664201241272121,-3454043276916581370784741983560371109627385
+egcd:87146147055128061249851083940353618024451530,227751615279709532340759791204097256262332638,0,0,0:2,-48331440979237806245330122927282663110593182,18493387446627430920818738708903565546903449
+egcd:402410699751971626070151333628642606391822950,9235049484375572036983799138607635445972248515,0,0,0:5,153549074522224851922845419478631135245172365,-6690791492703523748388769353438975615410083
+egcd:949267985651789297050574941117571101295556,5494464173916711420285490445361551565873818839,0,0,0:1,2312316926578234231731272711847855389498723615,-399494538794444801285919505216009539379901
+egcd:2652808479750993333843650846776418156707877,915987161711340965720691406464012679987924553,0,0,0:1,213033065472660034588639329773318587419735771,-616969261334816443264024565709812558076022
+egcd:1163472262648389280712221532386409222890356,857318074714986117766247044705267090767144356,0,0,0:4,-58043325122501989349933223216924978819779359,78770996207404485098817007910493906597668
+egcd:10406098257685455333151512936763024878968848,132372816094796368125357785730208051589,0,0,0:1,-32359440420839902616239305059134083709,2543841904381874254942688300338927982667997
+egcd:9959025918172523065346020240503154713303537545,33255835687967680839900430396715330645,0,0,0:5,-2158235906216683429459031976527278345,646320469261857919214099624368160581238329214
+egcd:20019690353839180990330900629296501436697659484,19010146624748888880368271406285795722061,0,0,0:1,1935509632476532363016337521607327705259,-2038295878718141770102878985700637985667333055
+egcd:5207112395329419329605828389549218469303865220,385309659461901750334677757380851297191,0,0,0:1,165915572078042391660107459840258089603,-2242199256442908119061230570559516064159668349
+egcd:601993736892612416519724463932736313173624,96686409886473200154411387090103804018,0,0,0:2,-10124237854286044843764528144646895899,63036033567153639591480721728193636660221
+egcd:9451492454940277922879179145156727251630812630,890293318906622270914566376145745936579427,0,0,0:1,-43405247621678402209625928105193852993915,460796865133092194091416698827502410647445713
+egcd:421136320827745191070632842619729525606371205,5096571308608922651479373999535629936434586,0,0,0:1,2075009266732940120807179123930369827773227,-171460716501561691306683845372085898878504919
+egcd:6991302085135094450298373606130554478351,38899616762470308043236153517332129921230176375,0,0,0:1,14126040436007201764984293331381102890858042526,-2538827478892831192526315111045693967367
+egcd:27088648614991201551819724048844336626611308269,66943487424321378156955754932465286944711,0,0,0:1,3124674948499217771505415118094328323367,-1264398150927660424730004830166744953548129302
+egcd:26633206192249265107832407597998778309,28885683872079634891270314620229364998599495,0,0,0:1,9892272799081534529886664444698656529168119,-9120882937536253989479027571007889246
+egcd:1293392085583226795107306787473899947221,227416266407034301082063615024346171491,0,0,0:1,-29907285136077480460193096683361056071,170092696126889751795759289938962958812
+egcd:79278263825216401490025404779637155001507461,6902468820227813108248070623732536421506899016,0,0,0:1,-828360674462642860581800632473551541382892027,9514131509009287407522188041794942836491653
+egcd:1369065262257696288586379151913703456926925,3921318368201662164740427949862301432814147,0,0,0:1,-410960600654239702792755872263158438997325,143480286394165720161890484611766660313358
+egcd:306811423659369908685018354614281524950,502749149014618067791749640767411770493,0,0,0:1,141326450781475203732924651029513241656,-86246927816738114071710451592343402043
+egcd:9719811370227578672711620046487180969505460,433430579275086048076182917145558458171286,0,0,0:2,-21526798977219262508638934913326592901682,482744954943713828666591712770941953706527
+egcd:5788020148019388092466048940831790038394,75552141815311856081164996922322733981520384,0,0,0:2,-10518739104218372390717930642371017316511851,805836504487242701754398309597647648769
+egcd:856377298658655395314577199206116518702414869,7440017597742186912190292505781910769381749,0,0,0:1,3131903658221817580778138665646284726818753,-360495275616161421170385112657167062910608644
+egcd:1689647907310953553519794122563381184305246481,7013833160958039894149455543255572091142877259,0,0,0:1,3398821499458899262672354561225223368687478979,-818783609774341856728010232260343119764124822
+egcd:7909384989092513144957228763780800053405820795,21477020481637847440258297023176370214097826,0,0,0:1,8859749519842138091084779610567087626046933,-3262797552354666439266711401038798592605600059
+egcd:30979357654518132817819836417705740257922764,260940405630631925922236059628149432070542923194,0,0,0:2,-31298236747286947106814487094222102681769572678,3715788161694199667767789519431128923820201
+egcd:984850871549275259750343917908080800989821,977566457784993078336038170702548828397820,0,0,0:1,-129037873131119636035172993956125957494919,129999409046825903670134925875065572390725
+egcd:259004643342990580972799103658759292285,825595283492252050104233175225637957516,0,0,0:1,-375346335685149725207452317778364301475,117753148241117547777519554141059751586
+egcd:794001855955218991102614066001175910817213141182,174022684013084507387799105725951096751,0,0,0:3,-10938806147098475396784404050656099019,49909771430013704026181882273607321813941786211
+egcd:9811672997383161859807242291870208222778,13360741920658508650761847028208454943504591143,0,0,0:1,-1533646877846983951433473286385655919684529373,1126257938986564477278948068254744237365
+egcd:814664124635912365609614464622452998365491267078,6619294472928701717769024660487632849749,0,0,0:1,-20513340331737189016390223384951047090,2524662184626944204865785704990399314361764729
+egcd:65349983887385540524173152888970462548991658424,660961177147869398908783897959724877565,0,0,0:1,136074117943219163120699904988199259974,-13453802919940888187441439968788876247928595515
+egcd:9480849241792212657354357845320329169823,109501469778488317937641164193300571933305,0,0,0:1,3804987659970807633940154130872070360587,-329443197831394171414676889854922460020
+egcd:27503221926847760895555182327237470261,628279771111583514714898881996093117588062576805,0,0,0:1,-220013546416993125291275595704774951395099395899,9631189276257473190741590492577938648
+egcd:9168322681946840027266828729455827850468,17545637116438090457732596682574619803340605948,0,0,0:36,-5813964096141413249612569112312284994308162,3038037236318899283433014963271953349
+egcd:2822315921382556721951896564280262300560,9667399667971791940314575307296845555254630,0,0,0:10,5947088441699739947657932361375488982750,-1736202388578886042166718097228730473
+egcd:5505800972045902016093732268279937842194207316,51771316999189365770795878029705923949174,0,0,0:6,-3811017207863891625916436251841504892445,405295894788019795906550250885730982995283199
+egcd:315267941927920486224102737047056204820506827,53799684850237810468689873350190525649040,0,0,0:1,-5914499459775939664589775100476101941437,34659163476663297256696619263386415724342510
+egcd:9236131800332788704514704731129950333068432256,263545285729806754190856317347550775965605470790,0,0,0:82,-536397367813719623726930035810410515130829203,18798426891833334693523979076019903671419395
+egcd:4691968437686244138977558753087888903984652912321,529627716152176622105651175417186500904294321336,0,0,0:3,-62906908078037944919327151653884810577788339093,557291882983286077007886029051098501072983943821
+egcd:26280657162235005084493562155644126686642367,1370831800919999167427179169348201053666488416,0,0,0:1,-668950545558535940883160448398038518399005825,12824665968877633003981478280580109910324086
+egcd:6045536043693122656233686475730851232212520209,9098289067800470455174047447178904376043370047963,0,0,0:1,-4206871815253583433092955625418062663341089554958,2795338222470951124088702397531861215608753021
+egcd:975864626523714146502659630640337751487212439,6940988044327081299708879840237906908066266,0,0,0:1,182253857832309393566019050168841800978819,-25623886940908208028290520855889573665491690
+egcd:7654068749692096886133022573587354873176,8748850507770691102882209873577170582376569780827,0,0,0:1,1964615562778113529408565381234249139996181774218,-1718774663124332015670834305172702577021
+egcd:850756247079996358624434449149782878253590,77804648630198634241116586202790778174949752,0,0,0:2,15630184779111518797262593460062779851865543,-170908519965767105980455355954051171663309
+egcd:82272488067830066441292242534154314172131040679,688350307921755313885460920932900835434083205040,0,0,0:1,122655586374168160071266274502558269222291956119,-14659948793933732247908546146130285866296684120
+egcd:50275540077712584568735998044458763684689,12487524215373463010691321732158466401371527,0,0,0:1,-4310272707559638258553658315624231083512470,17353422865679261179696672421592621956753
+egcd:392457454844037291990581880634611045578102532,2006776942135757695410535631587193797511467,0,0,0:1,199439819133605873020173563252516107678750,-39003659135343525760309650090094101928308197
+egcd:122656263585184646029569124623378862644114041656,280853932414286875647350581672340197593777,0,0,0:1,109974473329532838224195381954535972984910,-48028731064556951924576138949303550622577592767
+egcd:122723560516597269398769177665063637962901,765616664403695605489624269692889608096979049375,0,0,0:1,-258226752172223790724516164492921485841472381649,41392132539192550495968547772584597424794
+egcd:6372235942926383038761681930859971388824310569,450457134311977647755977405844641979355735844426,0,0,0:1,31158770674255982909157224955056954353717569041,-440776764988213077644482491833524983838080428
+egcd:55710124200643562666353596472476352006557402,129521722711569048118860224844308955120907039667,0,0,0:1,55524240351481153050668122616773552997196032054,-23882189499716295999156216742362854145492121
+egcd:52638437489786006097404197485813719704184482762165,38484575113442816269970218082013142493165049225433,0,0,0:1,8178630279958745518165064668394460744601578134160,-11186568059401556693065851931124978194437124969703
+egcd:8865739212422336318534105978323392918519865739,156466530229954316319347454260872006246776,0,0,0:1,-22332727854888622695494970502136839031101,1265421689689503887387017047199762890477050140
+egcd:265397516257014571242786403736445985853962,32533852784248587969347758598232018992116038855339,0,0,0:1,-12908032440841768357183540035974013542745984846425,105298311032592235052498055248608994180209
+egcd:3535080036435391574837524982968689282803781,74249567587110445850983262206024731586008,0,0,0:3,276939285966568545124733076132658099351,-13185296196863522858383215997152316071266
+egcd:47346135611124365598287053304187866567992166810,576740218461234987857552610598030250941997676415,0,0,0:65,-2126430640686396085034515662972949280965477373,174564336349217453788449880226773993486353933
+egcd:820830106986357361740709716178206505926491986956,3217456208051702777250937472105195691807814504596,0,0,0:36,-11508975978649369323663700445407671174097770014,2936143764821793638026885620541736768610769895
+egcd:61739911443386844943500901189571167227813737,3848550281723202830510194085486377628651546,0,0,0:1,282984239815910264880297243679049891924891,-4539741104353078811173218272678740948066221
+egcd:4935130472338939834485774824152368863725458605,1035806531451219174441688602906921731365011,0,0,0:1,-351908970967360751930093135356643002982497,1676680570528195395018821587922991870638322426
+egcd:3266540541396232463580738683146696014840917,4935087952292184155374454402916005109216111873405,0,0,0:1,924328175593731869854608058802170988017990845743,-611813910576679910370160267913438850314786
+egcd:14026215249956339676506155791652279539578905172124,30781337324124641929530137787213325258646,0,0,0:2,444505386198527884956851751358641210372,-202548971831029013803042093087467123341818781381
+egcd:4294047460058049577385615940946646673529873,7888285331485320409101196690477192599721030309,0,0,0:7,-535244381384157584881763833984960586681612928,291364305398447665235093604580474039882939
+egcd:3323417013847245232113101349532994925521490334138,5122451664153873677965641025886074343796981341587,0,0,0:1,1425515532127150707596577092883695524648753420721,-924866232731438695305713017060351754850266688931
+egcd:80935426461988829507228088844586242462996089069583,653780401944410326556349775523493660318880484692,0,0,0:1,-2131004721544266945571387397182966694100115521,263809951197286132655279411613822876325373015332
+egcd:226598141134799568921266709711899059121200358247,76992399049617831317308817003284176072753,0,0,0:3,-11448437027496398690279470751607992954914,33694164376637528064598542583627016152058686337
+egcd:664319721933063857023655129340934847648590823,658199665265274466519942300240556524715643,0,0,0:1,124352795083709078633408434668474547721672,-125509049322160532052275511129607044720504885
+egcd:8884738003622398686160547451276690420223171,4299975907886085056063300778367761002052776699,0,0,0:1,-1116654257404751368771631661850560365381800860,2307264210358821074298460923747673330704239
+egcd:59719426635130468128765525893511605775762068605,15511948776571237043257049623825428922813014745,0,0,0:5,97984350967559952500670074951721914832581821,-377229795126457555963914383461705837385561060
+egcd:363283435899720839207247713911327116143466,2646681445153091542108809095748079207088831696,0,0,0:2,-645295047870741251832001677370106736568796843,88573183821900377839952804802844006175665
+egcd:52931164096003232205392055066962781951605227742808,947807568550870804286088054962593413637490,0,0,0:2,194186113496156753567887057914625616943499,-10844497743719497124422772319106386069172727940731
+egcd:795766141035085366569782895765897502125872618,5246887073403305711124413150544060139255883684657,0,0,0:1,127592149200051856506732829832319739908307643715,-19351190672651565653969035751475639783463117
+egcd:82250667724186953595968128381514526686421673,289549134724791932338507372783255493005385,0,0,0:1,86151709811972420581533505911642683307877,-24472653542377849432010330789204946130679372
+egcd:61639425939671741256997475006356513882668519581250,3578514828596765772820255901738596048541569387462,0,0,0:2,20996407912033026016667547576264242700583756497,-361660239647628207370955868455456400780266234704
+egcd:27684537637183448026151946909258691476828389542,9528939357362238270010422927669825442411130925,0,0,0:1,-1491403989803236735430244778811958637923713822,4332993247150086860055318193545031767864356713
+egcd:5435307729184909003359952075698243178049039204593,81652326357120772943208044441275143659212363293,0,0,0:1,-18786061737353190995893206957396074979160669634,1250521952251468167669960168322598898079025280191
+egcd:10924773406337855054647765543952064725613723120618,14527409504138198936169926863040904530587755,0,0,0:3,1943780369495648845597031433407372402007186,-1461744441249394454828419839546381797839691182739
+egcd:52213006390422220435171878651888270946818062,871645758909254953745968603137179283818003972840,0,0,0:2,-29741256420958113534899191845042319813299285189,1781549896496816094656316432366924841439533
+egcd:4688712561272866795875010705784298446804017837,70990811276700678878005205180077865101611393303,0,0,0:1,-25861123710957590275105742577281286038202175280,1708043244069738879850646003632659154370684087
+egcd:601876680344350654318757321802040059504236,57573030176060116021084277750039823155966100,0,0,0:4,833675530078099686733366641090550664373764,-8715363061372584744643797829391972554063
+egcd:857505478933565140863302872774416730451047627,974314057900536449023558662039365613006496,0,0,0:1,29431249747985173674309139068596168851555,-25902795619249680104451374326446194507504004
+egcd:45485812933729425157241764872535935492149300,423866118406290068921435664923874810909565066,0,0,0:2,-92026904416450995131867199112617558634435512,9875567726185991444222573035098359638524797
+egcd:8708905393403458838119906185182390415193154723813,2649214839375624500171797402777266233996857,0,0,0:1,-878693520989369471627635491452708391853508,2888576128426243950131007882950541927952108467965
+egcd:669875536982562277168757149616294771674281736129,97516567980777338564845413606958767175755421280,0,0,0:1,46381889226420155390297645103754990574679184769,-318613478664861551321523526265950713581534609390
+egcd:552142172787258525043120366564284640581592165713,863962961122054854184533799151634607728550493,0,0,0:1,-120985334199661742489066675182491559538012882,77319408708953488066818827922573705864500213519
+egcd:8912171393647579492805585431506224333605369238663,52587987699344024446727521307243310639764632765,0,0,0:1,-24208869892720635889960417808933792198197524458,4102716364884452109263231978180096274383271959027
+egcd:275693664465005824088249757937188874572769224053886,3466602115356222955936873595606282941132234317,0,0,0:3,-221006434365087927325688159903180401056179309,17576310096434242315782225656574466646053079410381
+egcd:5028642354464479207857147979297496218105888083856,6176113771729541577635381980538182053262643750137555,0,0,0:1,-710631712528650391026653778416986011431221346318294,578602153413129397137286808053013793718378471803
+egcd:8465402742576453065707574311196744344728516738,61661356518501223354721904644532208588697512,0,0,0:2,14937393734471008272165421983397469074399301,-2050734220366918264382181168692457172485461053
+egcd:33090073711191135330109687427439016660084475,445642221929395862212411325653215048318205553,0,0,0:1,-165351447151677755593906743574229677911339226,12277767467392269710361072198887310106213167
+egcd:38084383375564641238722495396072746414069859975328,95831351502059780199491060292730447215506096476577,0,0,0:1,44701417714871641774374755091058724540366425072078,-17764811859591030607619685717710642838720797546079
+egcd:39669808567342798362844877241009314051976791967,99119958834519191165493856402857838929818011836481,0,0,0:1,21195389536433434447160930459850047078305039520162,-8482822786723704528943403211431983212657912413
+egcd:656394443821895273811037542396860681243032484395,734418747296348194673752402369075033727947320580668,0,0,0:1,-198348208669444102178880145335745201028303476849097,177275787950594932355555641521970313763246167487
+egcd:4151672272018474022265799254859348963458925,8657522863384451966497522640761563355339408510876,0,0,0:1,-2593012562485881796973545247397827317361955393143,1243466350195667180206121886940940782727901
+egcd:616193338763982804182193956310277879275176598293949,1991282968221128113819350795131871998526550,0,0,0:1,672187344044686564879107554044311287720999,-208005276202308979536534651654988391029147577601071
+egcd:8687537844058264818625968633794987777114571540965,4588008014762873083430262838940515379172783903,0,0,0:1,-273131667435174631012578706118035112399381704,517183424618854791062408052693760196421481021687
+egcd:94299417704457808128488838366264331063646462702181,378910566091211661215935743383333262065042992,0,0,0:1,128249482146971828065759668548405619393919421,-31917430047190763670990418627993655771034878683475
+egcd:436084754250362560867427019991801320098048671740882,654347024914243888183493882710929942025818488523755,0,0,0:1,-124697661855776361333795036367240691582603011762292,83103838109598963945718792347908533185519371904059
+egcd:576845066105037981878716311963244757143336175108810,47169550600388313323767894641195570046736010,0,0,0:10,1719524489809815702007774620101569793957264,-21028379651032953624905166044366014052373893560783
+egcd:455450311793013669133010532968680473621765301849,196887903745437577462662843393301335218213938749,0,0,0:1,-62895287849643879856045665234849365671155433961,145492322872554565259262962480158041518555693610
+egcd:3900215337216547857536549769208785869150917,703107675983691037178395903530670398382868009,0,0,0:1,-291772656941803838282558784634427859227791877,1618494905481932988460302827539233588975690
+egcd:4235417950821263716456215603171042810879865369448,30099855971642941146023855759175128865528083067679923,0,0,0:1,5433558916670879875362806366021878036014090738651158,-764568209037069458320253834476596864323900548821
+egcd:220042544397196218820917335251808518190371752175199,933535692277684232594974193302788809761883748,0,0,0:1,-449365625423429659602361441217910654207591337,105919416258801934451915453319879733490159050690718
+egcd:5686178248384112550645420272297349915998890583392866,6394565636060087046686488902334128218389439375166652,0,0,0:2,-386878534783330326592254369705226038342074430538853,344020287608948398285006281037355413110304951350725
+egcd:794165469687755539056069459111608933432404895,782304420953549695337102011535232984737054552,0,0,0:1,15995811988912600943335882434276695389371735,-16238335360201271890738766944404884526025987
+egcd:9449310146893908465306850102371521287231298790519,13201049101057800842831327281338645274946911094123582,0,0,0:1,2999793730046215341383581586839770857893954084651465,-2147252170256912651603598387202626192386287752937
+egcd:107247303626237439573377913856037555329228637,248037365489312307060126693885968609330300538729254,0,0,0:1,3295187394963377883360979486845920526196477093867,-1424785182489835167324341201022464061856757
+egcd:77133522083392356030810996444450842713578606,362446320582641682962892932453319089993578656338136,0,0,0:6,-12252467688569006394870089744676118644607994086307,2607492291584185635921553686052009701918118
+egcd:3746529922356093187817513741403069494944937614875518,21163192571109744382435762015727356715830696078192,0,0,0:2,3360441477707708557262863370472736448288910259287,-594900533379131316626599736433550281233005427135467
+egcd:1480332370019794273587942168003226621597722167298822,76107169267609678850598825056993761581288230,0,0,0:2,14857689610118706993669180053071538933427241,-288991419405294102329201336816763365353292004875870
+egcd:87998368974239358270522399707979936427930543218697,29464787743750967717125516987996695441482348481,0,0,0:1,-10786185369002819879240292144429281969862945959,32213594347963902773511656741076864997101194881504
+egcd:6380501221201357438439263574761686303469688367209765,2101187057561466700690279154331921103508225955903802,0,0,0:1,145825347333296093990690878414508843106434447353569,-442815789957334350484616630550368772984065306700842
+egcd:175895697545417190557526178538864907787776215968336227,5776330255785661509841982629017072861313591718920,0,0,0:1,-1178091011635241644387254463790507228219378563237,35874185008035358988026900184682989666782145774075290
+egcd:93915008302504565970294462868559347357873734156532,843248938319701518093307338244595352966717434,0,0,0:2,151276724006692666989516063064725067523333305,-16848114649719091351395265497230824419920506759837
+egcd:5976711283802179473855536437769569634799149864037,172795022672485802101638449934309020644291613,0,0,0:1,-82366904453391796214074238888113409850549992,2848943214015556962691631373397667435722686056285
+egcd:2205248615867285476540661866508420170225141139,983067017505522956565352285112444457364117116888337095,0,0,0:1,218267429603838059510873324752454714497132891681911749,-489624754418200054062883904405297170239063538
+egcd:197117471835494353404914690778881470433860149135581,14191428012947823659636428685835151126952873593,0,0,0:1,4459525876016258192519437797582725274696114004,-61942354600486601745601801863681456852754652027611
+egcd:83820729536850105215720647153262328929793073678,98655882859633233870604900342857378466000427081,0,0,0:1,-47880418250666765255679449182794532875903726259,40680509585126232668822359561687380513654344563
+egcd:85021523085826077943750195658443246760234911045931,47005020817553666242267156046836837169033298,0,0,0:1,-22669310085724864052132047557226288756475911,41003689335106972184099227663484803158330242761279
+egcd:5946017255219161818471671405255932514415767039839,6345872556760394171049368149822641242688180053,0,0,0:13,187171763444601755684128559806849993896322673,-175378015422918739007590870520259264416567583578
+egcd:71419612666385070427345623221576087904278400094,54972479988506664671028428434907112336472819338750,0,0,0:2,2179890297903206135328344242764978585525743095133,-2832088360648962656287313107815515563957911534
+egcd:5562790597381394993959486043063470014111501298412109,626590695183962064663009600613096722773908377293252,0,0,0:1,-303862519026371604863957069193342886543269595527523,2697651875025465536959295692693138029979462283932754
+egcd:90975070092326503556334167670828683463142797887371,295231087609240283637008177080140457131796372960954,0,0,0:1,-47867129509253228973744519011198722760573329294115,14750192798078785017913570665381167139156130951029
+egcd:42687927598884676578701708409630846818779523811494,523099282468377097295263711037946167371766507649747737,0,0,0:1,26078560817221509087425598130571631203765655378478163,-2128161428162465937231181781214658658975752224633
+egcd:149816245892721291534122835342563111201446590523,42288103374933513898890089821708822543153841946467,0,0,0:1,-5793317563557773262285017616969069220347034903402,20524285067631197541636488904710796574034942341
+egcd:12209271420687937418818672144031853294587657600243,62252474450489282538022150950275214557489689,0,0,0:1,-29660844749864463057583581069915997873519776,5817235496494160175697352420052606379606904518921
+egcd:379128079964034811949790348241734661654811843827149599,87839782929720118794817037174959224009493462534,0,0,0:1,-18238653567217319969185225852935419777019511901,78720432558454288371409573793995440050250015166426550
+egcd:114215100939505653408300174032176291289669380562,23741400935738901134986324457933329645223539201365657,0,0,0:1,-1827217335953581276681577241157959216199445411446483,8790374798405201192178937348284544880847527471
+egcd:1926579880365706875550579926206866629082953879469101769,3149513448830666223576844897044248210956111085,0,0,0:1,-25053848460898792135835176590575779166100741,15325618116798233452500443229076217786312231314349798
+egcd:34061999712899400597535018329561333406378163617467742,171772975832275747480880934476689264812053050103356,0,0,0:2,-30353734173948016840673304098829017018627498398083,6019042749355297425828459633966808378067330339305673
+egcd:69099794678760243778781800244520189661090743680330,84272230826240573484054504866235051739757277304495597,0,0,0:1,28460232196411257321137881889341868158873397195672407,-23336230475929248726663652223642021667308541046297
+egcd:3730778374119404797425236403038460041746582520101,7496868998594071853311205794112072400183459199,0,0,0:1,-3417158685287301201140604914926004319611879342,1700531478727317431970501601480361491459818880857
+egcd:694479210821228795777963254574810624923840260622974,85973514938807029266086479669558486228659003996037,0,0,0:1,-4363087914001491864265409481816897855579273618450,35244270906174989824540564289343982280916293290873
+egcd:976689567441345731919313645335687701163688099904322773,265009793970603358383229061050229738244347533205920,0,0,0:1,-96111738809058080341677874192436389369700333445283,354218352450277244615910581013823408191179307271342353
+egcd:11306238535217366491646986230523588259738750710860,9711793888012260176296349031139366341426284472,0,0,0:12,-88605262509097782289291274601914001329437685,103152130796347815361130641167067199415554197871
+egcd:51967669483767224464737921823977975662824880006456,1280946574522273740836915199783500350492882920,0,0,0:8,10268330208562887554239646266539240997802113,-416583486807630194700790333441124375693097218206
+egcd:2608000098327642864267195515218438837191124764,76463054831351286123635518055043629109951547944085,0,0,0:1,-2838713528640047131970640855543361319685828626166,96822775105523699697177482202209085573424645
+egcd:4468842728483750749309421622173029139461617867432562,104288232549062003896035112908374600291926031581641,0,0,0:1,-40897526108506312057324550666951171967489049680830,1752495058126446443607941125177833715948426475092021
+egcd:9515999226131724451239821556730726791154394377871161,7017412308925966316941922876372144830810785912251994145,0,0,0:1,711542578372858898917028457620268762515142703628762671,-964891091911944776459586890186052584752080420639414
+egcd:213839504515148236538273214896810704701481567163944,7404902411186480168131101360415567235929305381970861083,0,0,0:1,3380833338481241432824569741692207456495975720502139882,-97632039668337051697511687169125113631113481270429
+egcd:4704143575442564619226639933367529686541295734236339,6208190661916178838888950379033665108451167558784,0,0,0:1,1036231609662380598181323571412442265592690061947,-785185657902980530502486174709506058502162341225648
+egcd:7800918125130733756931790281898023131423182325003,49727855698492641147972884260023067177838769605345,0,0,0:1,19886322404414182208422530205281052324435144823897,-3119611145659963799957590789424626986012404758802
+egcd:16259480181384339216392327597672842436080220095778,4211887904631546369945283484243515208523965162735,0,0,0:1,60867090942630605523831629233862298664493090172,-234969990011354799892126958820227867474219476729
+egcd:250262833515008658954045947163909193707871367256381,9360574256964093238653836590939739950376635341916,0,0,0:1,-4577416570401947847275576528151972968266287934083,122381085779547263818532525602930002569551981217314
+egcd:49350305588299753800512832973348076363359882929159394640,82697581133815540138675428448684737574082443779556532,0,0,0:4,-7094756990744589041872300640946840405432374076597223,4233841193026162290519658157361356032844712511769908257
+egcd:6929763065061301565614851166591733819231208368855577,7015852829866459363250622386383961076838110347968449,0,0,0:21,-140151926963831515623623343137474264566890746373088,138432157931912474126854600439744488201286606016053
+egcd:798771392168930640410188390828161875038624287357,26910611328285765453242714553447940950358339441064142,0,0,0:9,-589064228600178541791155571644660170053125967736035,17484837048696468032579268233817988200645136912
+egcd:25397454048672817537966781867771032309891340572691,23256250389273255570062468054746082424429806429,0,0,0:1,6728497363996047750398121428930431990223003005,-7347990314789774434378123575091130429836158761726
+egcd:123423695423831974268547456942149055439119884772839,46840700163848752557976957753546114906692522490120,0,0,0:67,338082829316269748785166702372267870226049440293,-890837071341720045931329882131992024423327017348
+egcd:255083834192307897983466926757917955799611163337033,19691274316552711716703825178816583758491484527599,0,0,0:1,8267652047084102914471657271320768345286498962274,-107100452212241711960185536892796650356109725315359
+egcd:12995280360832692505430343465201277534610726091988596,59465235355121959404752559527335404508679919016,0,0,0:4,-7141155689480540101632551150483184164353752087,1560597880945943136073564871687625551494286751865366
+egcd:22991573949171758827108078165749233594263284484912054137,283817289083807864939015806533699958979417645701638,0,0,0:3,-14276343780208855857892287243849657918266920759821,1156503237720469287676414796512164794747302414005802460
+egcd:73499010438519566918821582344590421556887663107370504520,3896393550660794088432191407076243899495579652351675,0,0,0:5,-256046171286391936281227275615268399494905890920906,4829886912457785280143525162619404419581682774707946415
+egcd:9583870140187439825440257165562832875040106160360,144350435363505176257999415244713117818105415897,0,0,0:1,-47530478459628272998131044625702170795099568341,3155694903939446205334553339280276087238902971313
+egcd:2461253900541942202429868097665121039076482321402912,4470103014382515051213146843793545738275750665419,0,0,0:7,-245912852093874846806381542597934573753889813353,135400451502357810057163583858882200066572301755797
+egcd:7046608505460840717651450079359511868310129053953828335,58898419892762238699911322923913407676555176583579748895,0,0,0:5,29358649717475420636966955061254137346962695123318402,-3512469624561697691831838742681262193506315801921927
+egcd:506826573770755010074059089662551590730419138892682,2122797248606187597520041255704732461621253654865,0,0,0:1,383346693931445995397683618340486631342217567423,-91525599809021126197144665711931909038630799314789
+egcd:651539360489382353856038642218105742846167090450124082,62040904220472849789353991154770087142114255535343,0,0,0:3,-2355997477848366312104173979342645132007028304972,24742145675004203493726030544699958619654829318107349
+egcd:21241404865403392359971818730574585605571301440311980,633711839015175748736538000969606849077009552352665518,0,0,0:2,-29634494220450461639960895856430281807980194035925990,993319441051141196492952842918573155102238513897539
+egcd:705059512890402826453839323123808449258609192987,54700053492589412596920621965162616297504870254670606577,0,0,0:1,17209927692044096764621482310232491609809545108074829881,-221828361412398689301748597143984873381349400098
+egcd:415394044144508415296949741318653110880449387898,712027399337932687761182029057846295919208016685209861,0,0,0:1,311602633323208816932778876458826680113268935109136666,-181787776906565417455080707523448468254230808647
+egcd:83651009241467439062630103095611805553814512321696,446490369450787055845922775483794833260870810890813375784,0,0,0:72,-1344835414515943831032725871506341368981976803617565435,251958042961384654578843735842923162844346873473
+egcd:6070283815502486157201490923461524628539767903594155636,3804770539341434134928308971505690245714256366681925,0,0,0:1,891543412196165172397968883307773535161244063478816,-1422404187036464521764325842283917202125611790642909427
+egcd:96178348424332762060134475763000420774833630208152855,2806142261547257037797431000328431629728168038259049468,0,0,0:1,-225250250276381610381864841594193349660878357372833721,7720277532117966753867311498921456722048818963874392
+egcd:865765710958745231463327672884696335768725685962,880656889492281564646438436388571726030066590436314543548,0,0,0:2,62379218473169386716154064883279697033462165217514103793,-61324437558888497176774502622595381331609802518
+egcd:3070091985634497235831095568321669340142231224753241,3872660861602828375769437905423007683683302354983,0,0,0:9,-130408390759835341307955887188778334976643191426,103382601688896077821738216002703636813104276203725
+egcd:9504468312001233029402718544926917268255994088587,210179277000215612334709921044939204096404089694219,0,0,0:1,-54268679178541938321110274347377533333619467634554,2454071347795548035690892610366452456534032251421
+egcd:9812086714469743421916608502147765364717936946446424,233160386400300595605996182320148818062281081024933671783,0,0,0:1,14451818554970487550218007381375932641589632889155020753,-608175767043463911892366241689545509336116825541137
+egcd:4360347517898600722460235991841444558919923303109907,283395924916312034671252929842416261359155988664543,0,0,0:1,-105355408855707603292421311080809208231429401696971,1621004944361269525623546575360221751817290611287086
+egcd:907128595118057734919250855358256235977656150196435477,4751580206547799719609283650403815057095853254068516282,0,0,0:1,-889356095279141478429404461825805439836321286132426239,169787799048096169202610086149258055777141370865005422
+egcd:3973997826695458235929341947630757918334953729985,919677988629130382841929983511305489218360268786013503512,0,0,0:1,384594482287927020029873640499023823049367287552218834897,-1661861712108041873322099084387127370672735847462
+egcd:324009569902112154788016906941706831494599024684,58395597253468362692345409336860870479092825229925,0,0,0:1,-24289711240864138406494464493033446495436364142986,134772127734877303605549194460068805419486762181
+egcd:9872056470535077418025544166904013532879288870389,987664828323257512963011567924222937884833452375999089884,0,0,0:1,-258549889378418898215810868491864809363285916014306422747,2584296853749008257728523207193933514360103172426
+egcd:6138432786866037932815463907301440109085864021227742475,9643623319216552530346508247173742908756209280545686430,0,0,0:5,405384190611356540803926039847087441116531679787752407,-258038241909272527261791760130585315013837095770089124
+egcd:9769529614309261031704728459798815700297631096679,3517848632227013216032933216030143937697714956834420809911,0,0,0:1,824442973956188793176135575810678140011131714049438939237,-2289586872950597937723114927397934685180169653102
+egcd:147669070524401967353624660276651246996312407855626175,618549790847610101709816507641892193136137457678390333,0,0,0:1,-236805668183208014750730197115976279202350305381572622,56533642776931164630044536099572395597955604255694447
+egcd:80869456296117844580165320271841144299624178440949,1514427424327350480216517445312029963129987647776900447567,0,0,0:1,42937034698172799579489980026944211003937200326398387877,-2292810203533548889500989218354940644696579422616
+egcd:780887627633271006167866160971476360466719486004445,6754024108447725515883403276228352886002003364798583358,0,0,0:1,-1452325437600127814516627181590300017598700651740748185,167915149147974595643816598065833917458080039787797
+egcd:7199869643335698558244236956584912995424331052926,1527691037819148269409741859243943945701460882281456,0,0,0:2,57636477641770614383597878932375099638471007783959,-271635504463112985014746084869260309486608865147
+egcd:455180951765525170462545338088508018606122351276980553,556221150703226579334767784298557173503136268977244374088,0,0,0:9,-26099094677797268547154896038734560717230667555583420223,21358070869183507434245801704745654317447493932633856
+egcd:93476519277392442254618836667858506817969980392044,987802175681385610339163711595695835800228648753133,0,0,0:1,453471836205864432156593588057832292869365167568759,-42912406838557667802187349192829335384746711750815
+egcd:9180181445786644280041614496157713989549610132944896,7069909765059709568140852896063908165359626347795742,65537,-59832818838,667:2,210652202891822695654795784473414654009859303252815,-273529013631655892016199829860413659231566937548689
+egcd:273907002017625351000357839595395794496103882311,58944774459707213986630692862708398194596783791903184158,0,0,0:1,-12003726808325219248723901188186062373690817244591520681,55779411376906145094866211582214461320097963024
+egcd:22771998405981875169000582212334819990253681885689,60821984515441323586153842147099185189621658456861319,0,0,0:1,-23264721625000571047177124342948563692619090190183688,8710406409472299618111529542234963792113787292207
+egcd:3842241889401713108515872147470991560356182059740378113,6515515734620532620891823824801930655919134250326,0,0,0:3,153369059865421665432317909089784699996324017593,-90442729379334735477828876314356700692421064332545681
+egcd:2864468548588229088711156824748351772387325226285,715849610154437365072792769096891349579259900786933,0,0,0:1,268550748090675670123276782608442742660458501428618,-1074604443019284165403977646554099860591230618013
+egcd:3810898561978236785388520202269462480808294248695893,1062108199707865331145512609955734128758543891943,0,0,0:1,339617394241108857543260840698815161575640725383,-1218564586632720303123702323672631316897985132530526

Added: polly/trunk/lib/External/isl/imath/tests/emod.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/emod.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/emod.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/emod.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,756 @@
+# Modular exponentiation tests
+
+emod:26,73,10858,0:4748
+emod:-79268,611,80,0:48
+emod:46600826,0,8487413,0:1
+emod:1465748,364434193,5,0:3
+emod:873883,48223971,348,0:127
+emod:-52,183,125544,0:49784
+emod:-846,394,969114928,0:877192256
+emod:7054382,917,9,0:5
+emod:3768,797,42,0:18
+emod:357352724,2093262,84225,0:72601
+emod:109912993,364,8323,0:5279
+emod:-3224,270672,198893010,0:47016406
+emod:55,95723840,523703559,0:372050017
+emod:791480518,904571,581451304,0:444873224
+emod:7278,922,2398,0:2040
+emod:-5,925972,33496,0:15809
+emod:0,649246,262,0:0
+emod:52004,997,2,0:0
+emod:-4115715,8,234398,0:3299
+emod:-13612,2576,57,0:7
+emod:9843599271,9688373,8509,0:5780
+emod:3415850521,762,3050240,0:760241
+emod:38873,18109,6791035,0:4721568
+emod:504242,66851907,859955181,0:352955933
+emod:67731070,2628566175,7885095,0:6298660
+emod:575051,8,72796410,0:35016721
+emod:3,0,6595628337,0:1
+emod:80479332,13,9,0:0
+emod:35578433693,9608165878,32791508266,0:32575013339
+emod:9998073,96042198253,2871019117,0:94477702
+emod:8502,88462049796,288668,0:234260
+emod:966350153,6125446381,940,0:33
+emod:51249,46773,83983261446,0:2570243355
+emod:2571204,205,4404831987,0:2226688593
+emod:19,439650,888059767,0:247638574
+emod:9485028101,55407,3066739,0:2994746
+emod:868043,56705619,183207,0:162593
+emod:7072012,750002,2399910888,0:1322891440
+emod:55779049,27843295,96,0:25
+emod:57835434,31279309,90443,0:13168
+emod:-6511,7486344275,346901687,0:325667244
+emod:635099,3669199,81611251,0:59252827
+emod:8010935551,34,9927,0:1405
+emod:24885132,4526383,58404,0:15444
+emod:613003,6878758,49607641,0:43381288
+emod:132639004426,81043,587317316867,0:532884551555
+emod:4439384,43262747,10119,0:7922
+emod:689907710540,460484866,82087637,0:30398950
+emod:84094,867130,62309,0:9025
+emod:-33557432,60878,580294942,0:194480658
+emod:3869257,4125450573,456883055,0:129529247
+emod:9878539157,15920872437,4738245,0:2745542
+emod:8582013178,46758,28059,0:26806
+emod:48259672,37258629489,7377276929,0:1692584431
+emod:920350,289730727,1122526,0:471310
+emod:13029603,4503668042,8665149,0:1456593
+emod:6938077836,651113,5180493,0:2235984
+emod:-352466,9169937470,70675259176,0:18255076720
+emod:612474,308813590252,510155,0:383521
+emod:180356946205,710633896291,575721,0:242878
+emod:83046,3518,9768613,0:8644737
+emod:8670878985584,7549509958953,968064799634,0:673069231488
+emod:-37831593555,141781,3434657,0:2539127
+emod:94250019226,452692809515,99738576,0:82526128
+emod:-1746555354919,310727,6925934085655,0:2276231760446
+emod:777851791,126226427233,84192406004,0:11526643943
+emod:3511,42864,89474,0:53201
+emod:611596753206,17005495050,3708625387380,0:2318918831736
+emod:482182433948,97822330605,90338471939,0:27830209373
+emod:8971927,5117957930887,1928567236065,0:1437815380378
+emod:67445777442,3930771,4541604,0:773076
+emod:-52133,16783,3337,0:541
+emod:22,7787554274,823549,0:503210
+emod:46816685133,272923,22855404855,0:4704305202
+emod:181225207536,22085689725,67955765111,0:5581219593
+emod:207971493064,41707850,9115746425,0:6454330776
+emod:42840650,206759347,852090956,0:15995168
+emod:27703329637330,20686092,8407250,0:6767250
+emod:-4953,669615,741766623319,0:660186892888
+emod:11957529241,380932179443,973373783,0:970856001
+emod:78726001052485,62593863,24053,0:22766
+emod:340516095,798875,2556443616,0:348235359
+emod:954899979887,472716,979176,0:21817
+emod:1669727071,1008664017563,37837,0:17717
+emod:592681,30974401363809,65653048867352,0:2039369146553
+emod:-47884,525888510,60238953788774,0:8466915489354
+emod:5643430747,31164,8629966388917,0:7441630635230
+emod:-9134817647675,7013427758650,14493293680,0:10069704265
+emod:16875464,4824632,157384425878173,0:110131510850102
+emod:-1891400577,334033142140099,1461471589,0:500051598
+emod:337804687158388,2747595,7100373337,0:3797937129
+emod:597469670,80669751974,564129148100,0:462736594600
+emod:-373150,494511905,69961532,0:44955656
+emod:541002,396515,663670,0:448308
+emod:7443329,192200716115,819064750,0:75062949
+emod:352331718576096,937115695,121165545639266,0:64461611886972
+emod:94655436207250,2442730,199021327246786,0:98351560387664
+emod:450100,441162616,8233398,0:5554612
+emod:-562161185511147,564556372236072,6280258,0:3623203
+emod:-87181577138119,6636401624,33493475420,0:22078084821
+emod:63757825,675193212577,791180,0:551825
+emod:75719430,7834623506500,81861106,0:11697720
+emod:7636428268,342917,424075566,0:382499056
+emod:2847036414481441,3486471,96180960030,0:59848561291
+emod:7605693821889,6857556039961694,9340113967299,0:2791642232520
+emod:8460275679756,1249967640481565,3530286614,0:1855000398
+emod:-21034390,9455714874055,499517062,0:436407454
+emod:-67878984199,6771837956,26518969637,0:25569641018
+emod:24845854,38512788750888,97880493,0:44709115
+emod:913222119920236,89756684,24503538,0:2358514
+emod:282825837874763,49707087,4419250635,0:2888992652
+emod:63007338,778023537730086,51807416,0:42047040
+emod:86515727,37854772745819,932061443536802,0:913958455659941
+emod:16752138958,84132272429,883645897,0:66146743
+emod:76020717,31715587905196,205759754,0:84248649
+emod:408229656454238,503345091356,5122409740,0:1428721156
+emod:335638746639,5761369582225304,4092173299,0:3495108299
+emod:4118216,163393347759,33772615,0:18314396
+emod:6140126413594,8416471601616,48576280861410361,0:26480949886245014
+emod:-654797902884,3118772351656763,49622473264915,0:8452790798791
+emod:724850698,6033802538378749,5080656658,0:3131590110
+emod:-67747240120320,5206803331886510,16513427532371,0:9305404239198
+emod:571096000432,140739165,2954342334466067,0:1353110426217941
+emod:-99625731171,97620037702645811,44537854660922914,0:235109017589213
+emod:33191179298252,90227008,7699370104843722,0:3200733061202818
+emod:63893120170170773,976336027,635053357,0:242474238
+emod:42622029452,37698167195197,75773078526,0:28876796648
+emod:83620114446490,8610382003,464773010095268,0:378308871158308
+emod:9574472571,9560271542,228122075654,0:119978765197
+emod:56753833744514594,333744771296,46684214084,0:22141695456
+emod:-72021302,2716854503311092,329338426,0:308255178
+emod:-12837777900800,17117883244,11645469,0:4924588
+emod:517104019809,96545405933271150,48276368795,0:10960026506
+emod:749819481,17040593450696047,13586015736,0:2311264233
+emod:-3050009718172511,728537309,5801457671812805,0:5155502323398924
+emod:583365344369904345,274298196969,206968876678,0:178154366245
+emod:38505842262,85917484751521,136556283742,0:107808326812
+emod:15796803,666915498303283,9286239329074,0:2947240710171
+emod:1386598857453,2520081676103,9050689134,0:1960415451
+emod:837113484763,3657616517904,83176471315,0:52463786271
+emod:4678899921,2786079987037,15314196040,0:13824191401
+emod:326751076,992797863718,911067433083695337,0:303879844417619866
+emod:756697895735,14491908578947766,2765309614060,0:864557526445
+emod:11248294,4566321352111312,1353192745166,0:172343816040
+emod:7099878002228869,59309793877,927000340655945159,0:5356010609771131
+emod:-52873339014,197683370410545570,9868414456,0:6992876320
+emod:413327450631,3360204571,9303944255,0:1706685666
+emod:-50582368810,137417275741,67023586922155120,0:46974101556682880
+emod:557831168094776659,36136648411374,6960687433,0:6184527385
+emod:7693794217685,34977654183341149,7387705549462024391,0:5937660734860285181
+emod:1230160392609995,985408024602754529,44727668402979310,0:16636048945342015
+emod:20103166039699,5221451032884,543018728744286356,0:478895368134894537
+emod:87410236728907840,255693035925652,37882890299906,0:34530311513908
+emod:-302501648157631,240206529977,230243222283595,0:46069838353259
+emod:71032979947810,4416429704,2419723038477582,0:15218189462248
+emod:355188737187056,6605255426444793,75874689681,0:60034193666
+emod:6806384607660,60639456674,98209051459683,0:1432252996158
+emod:65303175086889,48887808654898,73427910350,0:4396384481
+emod:7752516269162058,62869883943828471,54774176016,0:2099905536
+emod:4326860229332706,2310571812316625763,54001071080,0:33511865496
+emod:6209542490007593568,8412972472856318,788629588235,0:362055759304
+emod:49913992353929542,2486110799,4585324963758433261,0:995513978680870140
+emod:349243489434121,6540085499657705,1389913007264228051,0:177284383643046305
+emod:375679038462457,2350871880932563,6382236922719413,0:6083733543560031
+emod:-30721033347396,77626742323874,523758275336801,0:84240020331255
+emod:5192099267362805,550370357942059,3061410194809,0:1707076237630
+emod:3546331202177649495,63420031374822,91402241031313,0:53901671764582
+emod:-79044395581,9116190241482576941,239200013057,0:188422584849
+emod:286354276465,8227634038665534,8044901060955,0:5958399217675
+emod:826012386295,49355018525,20566214354390,0:4083971754695
+emod:557522956445489849,32695219802913423753,6644227791725857,0:4886117301253388
+emod:-970081051547602,98172198401841564685,928763975802,0:22343542292
+emod:321415667027595,92728916953004350117,4993968573660723,0:2876297201989143
+emod:-8699136317926938091,34913749137460,747114775995,0:558798686791
+emod:-750347276056433413,65602570699247,72710009984856228277,0:105504442183260111
+emod:796490992759,979812498143888903,84011139142607244,0:27172815871253503
+emod:11599197279102044,36330854506634,5869662463842692,0:4784840887360516
+emod:-34727277565261165051,53891223619,2799195351079917048,0:2607666110843551325
+emod:36836705996677,91726402457474120970,787136088375328120,0:479138071357571209
+emod:786215427840767085,6538388351143408779,402285004679,0:145021397316
+emod:970294384045960,339246418487,392505811982975275,0:228766017656314150
+emod:346820606266075,751258033318226,999763369665239019738,0:843347570419357235431
+emod:5301442588198654136,6353479688437885432,36561155260520,0:30332565944536
+emod:-983848133889575,94515815574826812,64461274919837567,0:37200063729864517
+emod:1440437495907,707949003595768210252,773151956245425964025,0:534921841457783741126
+emod:9193524500595,90938893533,22068045096454773348,0:2946366481749712299
+emod:380288714663108486927,73556495897685,78844051786179,0:11766474674606
+emod:-26813489896157,716398856020,4739728890232268011,0:1219466999743008960
+emod:70217805755997,315269791230838613,7083375858304586,0:3059227926161215
+emod:-504603375916094,8554599200483,203113429839514225,0:156384813943715991
+emod:165732904527293745,925640726772320963,700604179708906,0:676451920881317
+emod:8166221848180,76217001334707,46983566031377519480,0:36926290142288602000
+emod:-709635175190425441750,1295562689422083413,78349035380937817045,0:39271509694798926445
+emod:-2183184852451752183835,379414486190148900,724528035479902191477,0:637578758017403897095
+emod:4238159883750584463888,7386606561456,5728437931813448,0:4306066978435024
+emod:1805409007202,743465586820332156,626695586336006980,0:577226884938331876
+emod:941901705860483,972657766381340158572,16833834708698,0:382737644745
+emod:36719313097210,86800505504547056103,565303478138221,0:473055435424504
+emod:-2666022326987011,3591998328200,40859674965133754,0:23789375408884171
+emod:7645153844358510457,209771482022016006,905933746892551078,0:296096846282298881
+emod:7851918408989360228,84734870178640245420,17989167921034697586,0:903417754686768694
+emod:46165799974266,2935049136348,8423621229264979968786,0:6706766736891832422390
+emod:546378248247723,8703795888148,20029030818332,0:13614240516425
+emod:811349021801350852565,48747346545449,8830100158031,0:5382741806069
+emod:885481101754677356504,7096462381701,455223655560834,0:43346926638854
+emod:-80474402802255,3514824850066,78159132039306813,0:54916880583163335
+emod:7131297407676,3315297183633054184085,934198951388076635723,0:651097991912957628236
+emod:12957689764990,546447634520927,3127766567382808,0:233348459584880
+emod:52914542138895536,376010137099253465,490953375293336830,0:36400103844339446
+emod:45685344805562074769093,61394436169997,80543985329602650474818,0:71110063880403297977149
+emod:-3761985423518632726760,956482080293262442007,25753912455108628113,0:8836130744460244129
+emod:80642483462801,144058405752215292120,106396321855736640702,0:8066898094483615543
+emod:529953061572415,79301418791778407635,92480175275263158380,0:39970833689504413995
+emod:74684906365344856040383,442523186603390862631,9182842638237756,0:8987946408749887
+emod:-71808994356961094403637,86526866467357,8474332396093731,0:2594467781892122
+emod:407234425686004311062,856447201531274,99637771372094,0:11888452937044
+emod:93295648386572486115412,25979074094596934000,83211005582689,0:77383113960508
+emod:9427365949717166,750902522043226813,9221846367078539073,0:7648128015969044021
+emod:92605054801073,5909052810075662,88928490696637500993,0:37110323432146043137
+emod:-82692010434673,814335630290109048818,53615009335053,0:46299654891349
+emod:45016205353589874668,95117600743459,2986728093611093895058,0:319442824024520549342
+emod:-47452361244427905002,7926505809295224807,3915672967969228,0:229192748539424
+emod:-2641799394644983,25158485319487,548355600533885000,0:46465320728116873
+emod:767992806236118220,58099104472634917573004,48648467500194542,0:23718576556107152
+emod:-85155145157549109,521405736695668,339367664853783,0:2173663047474
+emod:3109969578772647428011,22269815033051372764,91121430284940146293642,0:52586393883507723599717
+emod:504356843590479398148,4419882553863792022,9212984461142295,0:1998044953256529
+emod:-10529450854970073999,5289053916959379831,999122926156817831483980,0:128976265175682275841921
+emod:25251527460055267035,26387387620759906501,323214288066858358673,0:254793115154305799288
+emod:6257997874497129340,9035751438224410218,1608008778482293,0:444618779310887
+emod:-9314563912100585682096,5935830113611844768083,947452458146468426,0:907834316089122654
+emod:3164647012237657886390,72243936723121379261,8112420611117792966,0:6801353756302558894
+emod:908809580547671,11401194426509342,3883128241166899713060,0:688491805461764918101
+emod:829435256639678,469855084024947,237050421425357196,0:185926450835794340
+emod:-193452572186083034,763665077760046967,629827785597782,0:574275231643438
+emod:7638580239647112236,383888251385090059747,356384740003525821086,0:304972626268345366750
+emod:-72910784081163807426,4623502102569648619,293471055432367196531956,0:13722886778137743252076
+emod:156391592094203189804337,180577077123580,281066969751444,0:219820379090949
+emod:93982143896834595,99254856446162105637797,82935001019817754026,0:28907883734889605835
+emod:82453615072254173,9862903307325418383,569773975023302632076,0:311001760399812937577
+emod:3599043000903587396023,1768639534098606,38013039729215754,0:1079943278228851
+emod:863869462578254620,414856952917501776,32810489269754337315502,0:30667070092013729127996
+emod:-67081501875735917569336,2248358004479895344546,812436139390882,0:530577288676906
+emod:-932875447143221697244421,22884241204983991,156603178117421124,0:5900450340225199
+emod:-4456681099810903468721166,99859000729568447523,4675399066130721,0:113161030847184
+emod:-843621806462466979,168009327704701836752481,10448286951664808938217,0:2076672088394686331297
+emod:4833390360325487794744,8202438083226798875527459,271225323310380890,0:109131151997473424
+emod:657374545071472745,615300564202736701004,50439174668838374,0:15625484688443795
+emod:334093752354839787827005,401544420239962514,99419641355758954494574,0:38382862135390739723851
+emod:156986963896657756211092,9173759581769093378967163,8482190150813633225,0:846371056378442363
+emod:1965032331757601512,642865979115343140209,9373512589399604415598947,0:7634824208068996776380749
+emod:-884974536295232799227800,81559669471762219,77787068435634953,0:63000181811454420
+emod:2100689836805842766786405,3628560134433649198454,34727948234158164340523,0:13219112123623843462414
+emod:204578349882954931508,882862780583656098107,571211084473029381559,0:187547454428552727366
+emod:35013594249255180219043301,910526477139765124,281006281284018940,0:134109664959487161
+emod:-467870778338402348427,54493035145105123686,5912947085723132571998682,0:1228965263004421246389831
+emod:94103148636604290205719396,6986083069335320780020283,858637669487264716206825,0:855205440944993038852461
+emod:9132908171171712697673,41809905452128490,174186492804184908063,0:154317930053007308485
+emod:7763434019228270224295,2502174946472481,71917943549435776979260745,0:6076366391198365677016715
+emod:-624036880788622535703082,608930212992798754,7235811042721337412628,0:1325308214356957324816
+emod:41112778559515327410738,82601330734126683,389247780403397923,0:182819510299862932
+emod:-647553347892336647456803,634286301340932198340,4512267124852163233,0:4111852157418352314
+emod:79428691080290217,198093832523396251835,150772939563126693976322,0:36470696123667183989883
+emod:6751000393418867022,67240075486544827,663245235329581121676,0:362034082749896584032
+emod:57296278532026543994019,519712307129820052877,663606606885427005,0:297293712817608939
+emod:531634944201680433,69864774974090600,96423733207237312620797,0:20862933415144438574915
+emod:4605715778913218047806,7769596422373325424743519,563574411491581221,0:123599395766971416
+emod:910034907691723750329932,17528561702379847624714,7515500539229911873279,0:6808962399448284143279
+emod:61052317026574460778685340,77880774451137672778485,69232824274358824169,0:51811780816940817487
+emod:7504746423220767824904370,1945066924906518322,80909556817814270662793,0:22566971663084142719867
+emod:929639344035642594793369698,3240062063297979069920119,850413690404585997068724106,0:175349368401050551985442488
+emod:-55736601709440224634358,811055227679722468934466,1713909333328494414590,0:1152624446078802914104
+emod:-1356054913265870994230220,28314681428333792392,42265180710762324353,0:34292912442229873713
+emod:795295333902960419,8481745029583236616,343155151194196011568598680,0:313527770347784158498537041
+emod:2432870569967522452,48595187151195492,378387522780739724,0:233064959084707632
+emod:6831853307491550923094341,4409540435311149052023,91972635448121089016,0:52155803105308856869
+emod:99769909628484709088680438,668486550259622211760148794,99625276554619484105,0:10139590869737725659
+emod:5889039212181347754641685,676061753141375585943062606,776941837814809562309,0:443449450881823633972
+emod:479351744822383002190971448,468173515469111051509,167960102357712774,0:66373795292168212
+emod:373219776743647759815237747,78249029163204510445,237186840834301611953,0:93966418449839408977
+emod:548375816882114508561323746,896053512213126651537,4677386569405408164,0:4478771625586068820
+emod:543601581214625935,1432960291544699189690679,924713807666487815493709763,0:862081075000207249513732210
+emod:1726232497710046755875742,5018298664228901655980708,7598365887065911342569,0:4962214251289027951290
+emod:9940521109172176165804017,4735918364128985502,350872142370229985,0:77630482962237299
+emod:935844817555228747927989470,350944095522512127242,825141475757917666304,0:534643899908921707520
+emod:2636017152603937585811,88011950079842198071310,5957119762224240516059563,0:2064861372547160647113440
+emod:459469197042596126,604919581582116554623882,89801712022876493637,0:68195913281093479378
+emod:4677369076208454967820890632,13495127487606866501768,951687217731413972141,0:425940812723542345395
+emod:1566835275008318146,21867518155515654397956,7894931071725936607844864896,0:5253224487355519414221016704
+emod:3095066120724771665597351,7840426399106867615329405,705258460541720096620295,0:414423194663820488096331
+emod:91875762895950687211242590,6694585759057681706987,7365408657949985936,0:4938741305415608976
+emod:443023899338514715234998,24793081831491994199,24949681672266832443634,0:22293819994495988487874
+emod:8441986070029128775,997522126456942441153610,11266967419294676193463,0:4453548841469958625938
+emod:295284416391225922343593,3617280519422675857505683400,14967809405365615010815,0:7477177024743894714751
+emod:2748651151308839006,37444237944901366482969738,351048919067619839,0:320910471543612655
+emod:-856968271079561907778735,54979731653719035309,13976862935818813774447156,0:9945835571304601097054109
+emod:-3585077692884519189,1798930632211469960587972,70639908743442539388,0:23667983555955792981
+emod:6524605456430450605,56279387249888817212050,3814442499042852567,0:1145383276626865816
+emod:85234961390603945529096,75018358449394308437641627,12556653126866666115633914,0:5730557471924420585444024
+emod:2456775653742592876022454990,3560359960250729589724528,66846897799509249930222618344,0:17148877353421047482932486912
+emod:60282271857634247950,2052963624811178191751039152,906040428126999262088429727,0:32620681800129303136189897
+emod:54070246300857636559309,22183829543621704345694286,197786250025515478569975,0:12804855038900748642766
+emod:9617136486380916397202,4126846760685727322075123,78146300710034615866,0:51417588230377161780
+emod:62448246499005815495980,271071921688103354259,84492924742872826420211992495,0:66230579346601533104993148070
+emod:291386580832558654322705,764558287307875268927802656,447484733675418860019,0:11605899890452215403
+emod:32205011691602629984379183426,29358614276116380282,907702927282762504936328,0:643210659902127157683712
+emod:432494591994967547828093,358695607350358964677676,38957308299840969040967042,0:16197996155411494418456541
+emod:62528660927816817311355639978,47252461860428008289625225,6282175389133291127280,0:3555910613503639333728
+emod:-7614434286778285473167,474945456781970658327,621222471994372349220,0:549700448153054416597
+emod:311184079845536545337250910,9227029559805107004632726,52006471030183808566923631,0:25043301259244786049173911
+emod:3230868170439410850659865082,898186274112724548080138325,97707512380767417641,0:86932054306036765096
+emod:834011756636699109536519415,655009820336167759334332874,6890219519286864975018117944,0:2569215046679239758839951841
+emod:92892177448912750218,741399635351000593290121,624016777142908239971157,0:25136877523502693125494
+emod:836992515247957659739610,2583612763764193545264,1174519855635794829842116895,0:750264993625612676826364480
+emod:320791582460540931132160011,677439026930118779930468052,7415527559007185772557,0:6931004685726629652067
+emod:101060981222042386397,835069990698118657833498051093,304411313271626308269946786609,0:285961239724909691347928816210
+emod:-9581797085167617798550,69848378277411149359046,669942888182689235848827883504,0:254947621159139967003748108640
+emod:-94964174425453007033,714714872860590256160828941,146992630364320648886162567,0:112947428019587305836657677
+emod:490519145948557684335954,9081227005048911779923546,22555674763700463167272317713,0:5273066867735076907883920377
+emod:1222395170293635119614342,198182065457378753800,396502033389928296562225041686,0:76278932978086825000656068226
+emod:51847702997938374834482757925,65476864639254697225873266265,9982159563202907510238115896,0:520589670319457135074666741
+emod:444956279289663791215,101406862272274292233509,2521187648951207508813886007,0:1270796539216569834626269783
+emod:241755197289597987901,2982588579376062144566419683,46590075624035346402027176400,0:2234222576652608430033640501
+emod:30298268536110439415,5662223601814697342044103898,1675333306953772484178502284,0:956756379448476070508796445
+emod:9243876208586685329510289,358317687877159897071845946358,23373687043380292463158517976,0:18143528811380542759393916529
+emod:23933345236350049832324943731,1463874466227132752562758546,30285509683054247993598313,0:22909785183159204540182817
+emod:8232014647356048136737851,23114731717567737971387,5589633642881113626832,0:4835838093570844807475
+emod:1572721001930467120310,32884392623150618360081,127189088301879894538319,0:56473705512662665317934
+emod:-6309990340663959494270231,54301230262284516360861,714321021064688153899314430099,0:84913950012890099224323844767
+emod:724404836134898298450826978,79473347677565218701802220,85097228863562935294353,0:23425975598985124017685
+emod:1248615504830621338524,4939277515828927242493219,856480994935389549295086483,0:208559579900786673941630403
+emod:71694075133584459673485423,491471707800513684058387625,57613309973036459402620201485,0:9334604736522066347584171098
+emod:487205142874162363228855132,32170196309678727121574378501,2365947677964956706238797837018,0:1460443051085803997813915083462
+emod:10498793931533837751986544,83121914354650984352606,84780501352556446964608987,0:2663500197542495228867200
+emod:858271416618515546128946278,461548172771122263789060099,290346398222664413963288252,0:199454897909502042282033164
+emod:194961196331029028416806,3010397360933184988474874531100,8894255215761028137154900,0:4725434487338660122833576
+emod:406136918536976813980235355,373377808309891123266509790,8051548562083247464877013,0:6712616553296291113074471
+emod:-2530001401510124123338044,9596531290218038290076321444660,94617861891432411698686664,0:82720940727488645909580144
+emod:962341019433102549599309756,87959647015007020857271,4814935972310202770646,0:1937702586166074196292
+emod:-9481051936536536822112378933,19198535394666739186712937,381277436963458897720268488253,0:221821071935200208681658632115
+emod:188158462154750488255090,5147960444849946425093800,557834326930177732304779,0:535548855861651576845189
+emod:320937896085553144086178,691095750038113040331093041,26671339372282533818130976644,0:16304271928904332907031077440
+emod:6459406930432717296751,26393034277242496542604,95792580547993865659473661096,0:16263747513649826536284379625
+emod:-3955284617135866036386266,88955985063356610183176901,47993723273921407452861564818084,0:36345079468314192494573668280420
+emod:4469223387855120286647143627227,112486512731974346137499409882,674951744546236842962508833599,0:263941892665547640864795291242
+emod:5842180236545542508010186,3813995676143309308292843196544,419290459505201296652777,0:194534437035210733745993
+emod:52508914199335388219666638736,609717218258403246894120563,365684533154366812172288342,0:306118597360054606711715756
+emod:5797432698581273588431858,441479045571067025706603688,282607387577967901654384422862,0:110229077503714060775972506150
+emod:65328925252943246789191171238484,96713927150618911532802278,22277460692198085977483518,0:7608494060818884444883860
+emod:-3505111910190253821104955721,8184864474744270904051127420,194419774575051270128492444,0:162992788664326488651926473
+emod:-604067818162739797934946139,9043516039569227564714121728292,7767059317109793197108173473745,0:6948009587818483763849064344026
+emod:7754422959972636616784266184,659289209085822436564762,8509024996912387887787842,0:2665536004048450967780290
+emod:36416867151518840487645460967878,844372541160118666333682064,952635585495157217378104,0:851359968458957942741896
+emod:6507853401807441673041800837243,34718667350062293363755353,5468669123427020938108147,0:4716020318197938412234249
+emod:51211857820907905381543,77515986228844405658622,52805031690609904659313514144,0:46181146040418002449595796465
+emod:-3481005717923100913496633,72515117151236778732398780112,164464215085523994586779407667,0:110489875791376642480427623726
+emod:9727520131157808840831645280,924001182352699721614717943074,93954856739560714418171822477006,0:53602981268650203244797808464888
+emod:6268799672425688143953868,65752004602477767685988190527369,919519002172663755283332370,0:743721248544699996778206728
+emod:217255430663108140697379866,5639408060368994877725872115390,827864622867155990409562324662297,0:346888052171315931113255266057390
+emod:9584126703131986575758741162,32590496648447908561813496450,160498103515332847853363,0:53968810450556766053341
+emod:-76826728747216724677957902631,961349485758023144791477276257,137367232300949721808331182,0:4959768054309457695928319
+emod:62055398452252367690310080057082,129229535556008217119353115725686,9981426678099891826285608,0:805998125116661384829888
+emod:202510417400115156940889305598,15341206726182593212766128,996183974088677690094216724625421,0:817289450583828545947664474415931
+emod:-25516453293605744322947001163,5071219340735886356369047,602175104818483716891162778987,0:411839702152622861532714876139
+emod:993183387816460492640272,1614311327330565172683092096222,497972804217752566422039,0:494226915046684056423589
+emod:-139458968709342780820670342293,84079268451086347933669527964491,7982294793121272710766231686742,0:4200752285053689019247323342313
+emod:-642079420338207037888590791886,5097585020105759079603894,1749318042304737154855400042,0:202512538887870570156602468
+emod:526399148116041173415852373,940696687718156710488520497,50662078590094962860547244145,0:45895605101830456875539711113
+emod:8906813754152277992921404,80888477226023092123029527,13570789641532548676576422141690,0:11991254102988651371230177697914
+emod:93310258111859031487846046,779504595719824871139074,2316452607286039459212508186835,0:1841260888091242285457152387296
+emod:90444057415261195182482901256,534224787389163242275249003871,5364056042511354002232797243,0:2973840956442065396692091111
+emod:3159667409620907467186412,992919840843965860035887,83366646442680814563981888244,0:48427633954764114194397665660
+emod:99320619586506347666588920440,4405632885227428882941735745,19542923441973303902244764,0:2496404967738009049373508
+emod:80097846201870647655651438569,7478823295278459690728990,760398924078893349243418019,0:626123454565827223374998274
+emod:-617776158199232099295079230176249,968254047400958548769181004211204,44388668787389960907543,0:12309724362933796108087
+emod:1941484805465095241888868932546,28318560596248215297413369,78732478295542770828847418,0:11323556200622810322816682
+emod:6902476729554822701916716,82251167994228841481066017,35882713885308531026666821,0:34780023777540678364801405
+emod:5062468746465213498385560089,8136268100978763412711554289,68866609367366454712369109,0:44871781917238275621305468
+emod:88628634209852159542629660518,9900653566206690096097393485358,5146762817312746650783957833123075,0:1130545067675413155892767251194249
+emod:4183039741492584407492357481,978182783653208012914682683,64655693200972774031969126,0:5025716145757911119761805
+emod:5009607688574515313104324,2147563655528822623340385945,6236086785233460500733859,0:1405104917101339899753318
+emod:936982273588401762969515216739112,973707182278032902057390292,1894889840757299574823297466,0:1186002927649083815020840328
+emod:-979316518105993608150102623315,2370209457844401593122209941555,54428721194110089109350854,0:26913462600141970364018171
+emod:-5655018125941779786582905,17920278334613052052585561795,924138192567854018477877769509401,0:61476589026820682320306888608974
+emod:84489372498470137649774035034,7109018035481124695636450,5797230889810299281193349634019,0:5612051483938131301074837863677
+emod:107426142087823893785249225,5226421952107015855967156538,834564679898397955796242150,0:374409797926018190303172625
+emod:157094343256569268019396107347412,3363666015878047053403499712,3077292378832241991737688300,0:2345199073898407378386288256
+emod:4599347793505224871406391916492561,10349753756389543100648649,65816642199331170025417801554157,0:24079921356378393197992579532100
+emod:847167595799527189060120024265075,9107386461422683351260870279493410,92958250555849386269043855,0:35153939443890825069457375
+emod:-1191675132738936968619514,74950542877141809186776499,30939415755921402575464055877087805,0:17053440194220346967773901128643571
+emod:-6782161375037252568833831731,21588926184031614794842404042439,87384900356318490043390649044683,0:78411924985423842001255202388041
+emod:725370238412744340662463645,801132128288180827454102757582711,620855082501145881156782549,0:359871609759550116946514648
+emod:-874379189856445894179721337013,990125527305844856332150787749081,8231539277268138641840413167,0:2289484932966836920485418470
+emod:-83008902474732975330921978226,82794210686607729439615194829247,147791999288202013476656713406,0:146693025926271847405525671222
+emod:993041496775769783771922013177,652198618560534787722679399482,14725280081827750297488969316270418,0:12116281278492392720710544362298223
+emod:46622323497579971935863115,394817683428792448650089831981,275712081411878292477481334593,0:158697271488808580622506705623
+emod:-3898794108935715830804259645307545,8539310275091037665015112113,410028214486245399572630623,0:154269296324614984783868211
+emod:79671715478701846571943769152118,50747562547703106180109929449357,4023635598183808950664694822818865,0:1391680419606609518497878438964728
+emod:559336542916921480977013076660,3500214095929566980492663465,336757157474053361967887529292827,0:205213355551911588287255669283398
+emod:67082036968759143737139839,523004801838061152155611054,471652207874138548702202353,0:106442966546624668524597821
+emod:-3256665451209505423898886159916,59781980277755911367047005074,91129573344353344374535568122224243,0:32050945513189163759638087657164892
+emod:421990276114311172439204299235,35826815490436606511044043492,15446384327646373190492730438585,0:9198468415514629536422965781785
+emod:44343136069714981893949445602918,74625812833376942712384866,8553344812866281257132806310141,0:5783836105657448834498697176854
+emod:-3350599651069474402466963632288428,111533243609492247217520718860965,19776907108357809938962249484450996,0:8355570250148181808922442971171888
+emod:1174811337592368749244214511251994,42091803705746744966101838336617,845309015023334575607631339,0:328886787862996931441907071
+emod:-29148586556051713564217625193,68513553022673456091977636318,517234274741375130441484814600195366,0:261242636773611113876824326123905043
+emod:6504167945767766564692832116,79109138160593227576416337070705,859309929776480635814520707,0:653461697201929229418946370
+emod:93782137244393346713836734,79816233695566241785503895940612,47212904918142268923262812947,0:35930841356748083688108060545
+emod:-481374015950451874599738760,971500384056236606682756504,449203445432063323041956755151715073,0:326479696526020517109710611255112326
+emod:33975864000889551938267169,96711853837688512196605358270819,1078256621965966374431724388,0:90992844234742791085579521
+emod:108501037609635132976961872036788203,6219795372158712553653962311654,8716372274939376496374246159612450,0:46493029021502557862865275214619
+emod:-2231157093133343418986538244814994,83376994288776233556841533573723558,947070007417842767887988323,0:569695285035798211404990578
+emod:4320183260196502618997084267,41119367893002798881298799670088,928548312561033253354469301,0:685331663284665282972257551
+emod:989219761371718106548064391401720215,746254976033978038152730412247975,899234555824809502131806801683692,0:353153945728216728164717147859487
+emod:70249906941776493080760539479,449610892140392817236359849962857788,4178349342228788164226432276235,0:1335233721704565001505221772011
+emod:545502797337663151341732385037258,90145671428166124528612984500230,65353209667979259637734612828610332,0:56057131907461848190987965655332892
+emod:70201665323655856669206321215,82151238444466709049154516320141984,720986595714891193688614781,0:434647021965056085408831563
+emod:421198830106569057199561575692,1004609557346343726386068926525410,633868114840728850333551602744,0:604704399006232077090793233120
+emod:4615256370681079013157800020325,8400414787259268709004735030130,44141279558739534891246414484563077,0:18767312155202497589136865119303869
+emod:51901922040540262359036981493,66541229620660433942048401110186352,604842069438884017503376380377487,0:560241581983999804968823332813883
+emod:865876649476766227336308707540,54523494380158570191694786271952,30189625477183041262303690798037,0:5517799863814849137124453024505
+emod:540104790337412628896589738918163962,25517420734892235958218943479822962,516223444101948157559494280688,0:285444604149225295822139831184
+emod:-120865564927993207924741653485624,913588382476805140812832387555144,5292849031978636063718154558956,0:379625045854381376013487318700
+emod:70630316045710645831137056416098,472369686133234789698150515963,59384539168300629700324758824,0:15022806530946436030583838784
+emod:3922428518882665203875466914597759,68182625456652248599363364893901806,6502711284299228524855233028593,0:2808475877330758629142848372619
+emod:-767906197466320392395972570845,5881247518778543233940000315537304,287419172400279725552523866012,0:208494064792679452780358308329
+emod:-183473058607238695125794649,5195900726421669056563048427,4401632354842192930996857262,0:4089525058119677938261594431
+emod:165422203258159204617067246120,96059662222900813086080021260,42765970916596985181285425013,0:3450069033793034400281980621
+emod:-6202976578952904184671995477658,2047878587371155342936292231391653173,638007817147957433105556793060,0:264771935095789602347821114292
+emod:5715510499720116696692085743763,585913772675513473362454296932,1051092429534137447273592584087,0:682705608964805508054206642997
+emod:8554351601263637934780353184462472,2234206121089089275957949179,718140465388982120919431110935367,0:184669837268894201543573681894661
+emod:80692144241982166867606755367641125,2849616930185309069767665166,23879511236239108118965785436012,0:20523073803895280124615325144457
+emod:99791107145824395590258329666,325370594025067544378522706736314,96399847267939282102767305772251127,0:2325174100015879854256600082049436
+emod:4159932940100685089115794076141116759,23990995412460118678564628973765928,80832081463108433977538716243727639946,0:67527463845329678499612133471786203313
+emod:788157166896159069390966287243419,1486322813809144772467638907874658537,891915835907995407210370317163200,0:102062258185041646930644428900539
+emod:39482400163217130341378273663281863,5988616246240813543901974803730,5233286401955663097666421133559,0:1266706417570788723251682663891
+emod:37283395352033119876301598293239416669,13544410706066077917137340119619527,90922298984492607133074207595203967287,0:29635409004691233225521023456097882412
+emod:997092394433838709995127446401,945171627926561384468473783312841500,810366180441978415788967038942786,0:208268256396490525163362174178287
+emod:8028402014609956835909160326346782,26557618265296731376128156126,460114218338498016675422156130523617,0:57220159633664593786040042202487645
+emod:82562576995621135938138768719119421725,80752496992618170687901372956534626,1448566551160810322268830690053691854,0:646521647376500058682612093836622553
+emod:85548648520427764614796522518452921164,89651898605887779463577396538675594569,65124148378449835470532787649213,0:40497439208050142443242215136607
+emod:16837336872939465286295768414551331,569935780141651744430445423490,8783437523930110362354247602517607,0:2046943362901310534745130604075491
+emod:-4440812678686390091523604851953175,389451017692789149570538026068781,1428843786528259273557255613906046765,0:1080150304658630116675444179316296480
+emod:967128946679209456313061694178754547,71927999075234140765964350500643464922,5912388198893179472569863818550882,0:519919011257421171091112245394593
+emod:50956630538253741318888787410839027467,7254477767965547955941480470459567,615206000459040658792942579937518,0:553679691619602644270040205425927
+emod:3275455955848771032620932860648810050,31488699805619979770222331680514,80458424575688534547636632889962148887,0:6244384826050692991633033848953781669
+emod:-21389208725934970402070480138,83394267330366428453791161248271,435867681437150310057862989648368134,0:48165848424304409414740281589776608
+emod:85613012922122238849286197885966265,6264623415046666744379998032348811600,4673861359129062110917409479097,0:922666804172116833801730611634
+emod:280083488936332437588802230890313578923,244124978249612335794064534642,2375736859306949519167609169171687,0:551623669267415869843380453511910
+emod:781188309374419725364720820335533,135014953285485878049171718509399492969,344084387156056462159513838518,0:106507543249649319840719909431
+emod:98561799065473561371563615410812461706,9134726040214334897451541211570930222,77036158481210325032314040316433349581,0:10604005574133189996015761603720044688
+emod:5834647121579885467217130407763503632,200264652092134485478998460165283,49796811768811795244403981652327326,0:12616757208278628842077030859699158
+emod:7156274802094801607862890235975,298547310278869882278519047422,3385164957713213782961023671150442537,0:2365150345459624684113261880718766685
+emod:79536547656264208689393334480936544,8321385671827825288762542280445,785140248493770428377830327387,0:667723641201713821468357364660
+emod:2401918006460405664310271707131,7938856973411329632754746333467451353,50252536011125420227927790886850,0:2560962372344356633910159134191
+emod:-640484386299773856766873434498216561663,521312377097674590222482921347754,2076627816299488817471309926917653,0:1044102083342050524913059924893882
+emod:45733835810902836305620972021854492,637659651938075050952475958589,780295381235534049283047240996085162,0:356302494046578600997282893502520224
+emod:-705304982613296623295125876847640,664590498867602222651797274067257719868,7499703984527131597058855628260006298,0:4482230223758031512649996652730841066
+emod:9684252440964253807141800312433763,190043365382656690493696042245955707225,3095261211042298242370348907837021107,0:2250643148518714515189768690498752024
+emod:-89032437425480643935967748757354416,621983182028088553431259572347916435410,38079815655996180160875323024441762,0:32643143118487494012451637529005930
+emod:6548447424813914775693159183257,65121910212312442407559411924073,985538984256472333797587014404581436986,0:740155433087747455737389029181370989287
+emod:4289065821289287300568064096399722,9121623380688074176040884046612007916,961296580001696582058791225882,0:45381992080327999853100134788
+emod:-72973996651785334626703541251510,851343162677051554053312177517930014,11415255076241129984914658151314087,0:11296475116822862530646104043954143
+emod:6215781314311141827082903466280283111,82690774957918159004435315373320417,27716342728984668538238211473421,0:2433474471136329719554510283452
+emod:39290925538924182292886302889784,3013982337030112395184480691476,2874832168405952076336884530324927723027,0:2409837907629149262138096279585792264660
+emod:9277827192686619891057091530556789562,96429757152650874683611007657644,4535029359155968493194223758827,0:3867452547234619026743402511805
+emod:5694258184281411312360339289572762440841,7178050879307469422753687401052115032679,9753293426594405370122100566371326332981,0:1459323522232121155703484803621777382578
+emod:2631708872518347779478401470159636,69245107191231315124801771805922519,5376563717710166640876235141463100221,0:1586930529708153725166340638954835393
+emod:-532822740296211412518831858845632,40668524195320929579193193936667373,505606545836126920558776593155866029,0:421534471253420106860659063178492972
+emod:-18119290713835899269532794976004002911,37879676757802798170292588489563693,51891136935808235992985547250049168,0:14815387892201994526759362316856817
+emod:944625015888233591695043379987489,7693259777885983120642487312415887,3163174379156957158184811373016,0:868511369288625949950763838225
+emod:-8261719628034460466290601450600373559914,269611237440354291239517315110858,799350125207208117394870062241902513223,0:399235834451270298186875260990350588241
+emod:79473780570881594097438192951192117314,7169647683642226403729056378024586066648,22954171389461145428057650940743,0:2168846776879932971592555333531
+emod:95869904428201135413560110749448802753,158340104707707507507946829328121,90984891161322604272382067470532492205,0:5924564037970417636455059119103926748
+emod:-22521492621302175192658392780275102359,7693302694515406325578226762983037994984,782722878640118008162156430550954718,0:119815974456412544146474518425004437
+emod:9963842744602755276656167034564168,48412659540989981271789655274768,43293723041754769021056672485976,0:38945698446931926733887929540536
+emod:1320877778921077387166182925462256771230,57630920609252345178704453175970,3193372771615772702336566528721798637962,0:788819527153114047491271244519182772544
+emod:668849032341201560206891871233861747403,888433768055712910244091518751770,267361236110795236214710559012632439586,0:155637798445501597369455066609821901151
+emod:6512075833061087798080551616254563514,32092556887038243782172094249883515187,7726674502992997466882017926352963171,0:3997773747495074686605793565307898133
+emod:175331741086869721483946575985451578,498971069791965179508784120214414266,36153226259659293800129850353069792,0:11517636272100517299763240352733600
+emod:-677346278108428877376669412246870,9122326662016035239584815083992070495176,8466447950617025601185822550216037750,0:7996073485764019141592014511479503500
+emod:3004006376153998272508651886671867319,89420637491378914617711759949193596,94841662569213792123219861089357581,0:91022466232802632841224039771245469
+emod:141963083020862928745284661527006268743,1094074097142911406442396572480839364679,14372416626149499532166554918559602886813,0:10501331757552726404117414997172439332093
+emod:3537251641169958447429792087940591841,85312557100182485395003016294806105,4933954336062823716515388316534139210277,0:1264190504163163061419402586060377117556
+emod:7613372643252414055043698859413975454452,8104856536803203203690055640315246210,22350828251203871238906729812254148392345,0:13852329926953072565535594189985589893489
+emod:5496200720802281470038810856743043086,13398984382633586073486065955736662183,79312825247526611330966937485082122,0:66661235819185738734811419475614276
+emod:63918543446915084085082601250202595579,8493763746998771444323258554325712411,4937677683346782838292257801829180799,0:3333170338194997537460486316124046513
+emod:36261747289234573444167038136694149416,2349120291543932920428306772143,686686391823818082220818261012540,0:264297913952895694560131373515156
+emod:91704684660004985825508358858995087038874,2015370309491008506921827067333129594,9135792372038219712944984119888962386,0:4529804613575839287527481063380800506
+emod:30278645824646334826846693204541658068926,12818636001054407099890316510058892,7851583114283368731828210428552882985,0:5669753244104840595149054032720029076
+emod:2796270570869456261650857714163957,11563304674625187778126296571762555,6215093511413186796467390016946078,0:4670137082336559942534996304341551
+emod:768218963811498104890466470855528,87947819439418684675632728454831941,1973550877645428060151378123682620,0:441798238493938931699648323746568
+emod:-2428535063509936208105830667774640,3035965301290018588642321798578636,188189970059256072630697270059421551204,0:187579612082668219226020920724838998284
+emod:-68851281721881705328338599426899449637,61411216780529093075213667248360855790,762904049248955019330945036218634,0:462150975555814307044400024262763
+emod:50381922933536391983048133911745304,1327567537265931585748836565776184592881,802215654672213785119298527941754940929,0:390003904015432758428242187678591715653
+emod:529101440911633844520662940603032143,43786012747535262261511038179577399,511020742387225982022507255362265561978107,0:43144871536679970770284455068495104451271
+emod:-83888631215376392729015255508425419556,2987291005239618438509136686862070733775,961384311110037617113682300965438706,0:29648441889315953286284555584666926
+emod:-821196282249805910413962910577363,899754172277729178591041212333965173866,28634570307010794416106940080087125523,0:13173340434987909802210494442005883282
+emod:381631360270395672709101001383167564,5158459604313031569589122775835258400018,179977223820697561825527184706001338,0:90425662788930319644902518702187078
+emod:86931293242801082346374758755111010579020,2626551520446310376390615092828594222,938653251144169045231475456784193560847491,0:365195163429401966471156565576650759315955
+emod:571783539909088029876839939054322959996,3089568378114138198880587155086119890,2744081752554506253029969486161407282,0:1264543407557838374228627104087788028
+emod:-90886625513314511815555188570608546,51200053536142533814421471973168803,3158468647093861876601465341868309,0:2925547080612167963149993945191255
+emod:678603997120076532741658796530004849,43414916815768520427422498534418015,8716484032032480216675313011200057709,0:76319340105732892359044842900479950
+emod:612730541295585524235353860578447295001,22424302005854819986022320120713071951,173790728285176883772120949725911541084,0:137975127594893849412331247896142478137
+emod:13948884468878712500594129935211199120603,9383236477661484239823311361156037555,7150124390877159720608122766898971171111,0:5539575869437504207805443963399777689601
+emod:54492739252211246006137151994700249,67190668798711463919179422578016332737406,5016308665959551730292366483247498,0:4961979712444768037254544658761431
+emod:29680512164999518310606641453082247,1353001032424138907392467987475747589038,459082082784205465090366530024559,0:450480541453779074511769512964428
+emod:15403192267035685992492637058662708278079,691714738501419527821402660938221344683,7782687609483337882572886515961628752,0:7725198743465314962321221679530076511
+emod:126478593002688908873146865473634929634525,6358340236015836865079291052256775,642178072362342080585886203440168430935,0:218622928181521828894284595162507920145
+emod:13913359834837755549848482705915052266,903509443568563265008997239488312244,38405152518791040164077250979465916520,0:28518709836314856470772911348321435016
+emod:83931848804764686468764875474979982242,37231771700852953560669364821981996529,8064976106252567560098554617279771,0:3942705697569048252011335611766898
+emod:87898783621436420303252969787195069,967379407272322490869598290122854378588,601280977875708034746188580088928109,0:411325933760221674646671409872577059
+emod:-574877736091741275350898383808389927915699,594958545957868400560169903622579655897,4423949440914171636206327704817250586403446,0:3323591297752691954350870547829008827201931
+emod:124800993363976911520180513839889298395611,3963571144428060960568682938453332161723183,674078271234292330095446224557694423193,0:422135852569833954257620597634971621477
+emod:90777341202629209516486441959509025385211,33892788023206849882232725042383975802458,965834508749187083956638172933001579344,0:656580209956545000201526160758647431417
+emod:428177661658876831707141329481947688426,65730335739816729185618200604751902,5583905204611961380972834719217342953,0:1199936539591520430103110063283203324
+emod:7784166932835047133921651620293244411254,45683020890860577526532414749737728,8865546781759541156004910823031924045350,0:8781672808470559198269957754771904762286
+emod:-50974859063823766693159687850998551,4260289458698540774171384011548170301484,3075280497472455596559827351977048841679,0:640353521741095591912508608109444685750
+emod:-44302701915422822099105814706266768585326,352328336928075991743029118271328701469969,197750610229907539580754650086642390905,0:93246465784416858941838796225126642669
+emod:766771922418857228732717683752395675,53187483912419491901307730154421458430,92096091103428097138850170920718803085695,0:57565491053888594101424663327538976145125
+emod:52721172881006130419437464601359973583,52365059560631450286814267296264202147,498576604623229902884884195640797562,0:181571367769928285755960377087597847
+emod:-130061614640638992198273716595411981919,2346118145486800692560690336691790893,1645004080847919147880779643424152795003,0:465587055828660570780657181568452731225
+emod:307876682184042075642894436987556451604446,414568064245406529394828107789210339588896,477711345483924032017056685517738462284,0:109389690976160199299716512672430415312
+emod:5371610880889161920476163626282917268,671190145264797106864756436651734380622028,857741777438607646271321549114765205923350,0:287287981571642915909267131628181821120776
+emod:5204868302533203940801436297790593533332860,83487861479973096451480151041003379,71382668037578608278694683426146288,0:30832566835341111033409687661632112
+emod:556625156486454810659526673624620788538,4626440741141159394644754018141116454244,72891055350325059886351235380188925751695331,0:57282604851594939929936357788070706169855035
+emod:-89511300923170376817021029243002896666477,903721376056645176029730798837754904819,2013905533937026971053538084460982634236907,0:570791309010977172526727690555890004463372
+emod:69694851714973479181534773177163535244,386316471197222025887461600408882433030749,490469070636694229175921907889063586231473,0:427487689181588318519876546414273004996449
+emod:-588196597032453101052930493773379817093105,42480403111373035847406143062717911612705,4544690508644322943234886196205261164011,0:2047663912083358415178872122408088880103
+emod:18601385516319880347082113262021644716,353623982591699522702650394835799306077,882857015216699962449940196076317077670033,0:167450675786501647351135027234844843065181
+emod:8987750839863791535937648238891007778,4992783303820924306757780883007042021257,44078061546357456041964194188918599,0:7906772385757741707231672436897321
+emod:3066043816339025712845503823677606013,902933129598925384688189274201201551,9952994249589962222132861005360182224154,0:1174534817927019518079679504541484744197
+emod:-8621225450444798677120486482628514696,99155842760569961250514993113606863884,25114933437945893268599527258089494552599091,0:2901441178432592927100180880754049113544590
+emod:90281107710916849341198657251024115664365,754667850911713614499014770880887141334,30898295870918445141561498179371522917819,0:13951738483311575701788614225768771977539
+emod:-377295017128784286263228943698366029281236,815351785301111612401048321797886149066,29710296428625255526774084470011099286,0:16786657050746173886424618254498209594
+emod:90209342286956964721158878154317059477,1184109459781060213060226071584865744,30538892118817816797303238023509341587403,0:28384974665672321900008538327342162253338
+emod:-76207593117960738992003792949566245548142,85201520873038006008429375802296986890284067,9310049288843035339384905918862674083743,0:702354734188303284325632288622165913045
+emod:3050032614782701178357664755062786032,6801863531876714949028658176036217984466954,43950118108330216557290417378894698723105,0:39620291264605476263313200424175332570554
+emod:677773161150320527783770738001557704372,737402634272859936882908890962095194591840,6047292927355913043161167285175711434800,0:1483012736746464157045759924622953000576
+emod:42088022811917334978597559931011799497514,588319468481766273347382652716318465,741545598763153697103785060193676712330111,0:531456297231876059205154397650433936193557
+emod:687777305090023482357070950201516321450289,6133564983213467693779486826114552977,7627976248578721073068053781703769523841594,0:5843136042246311804421931194539413550947857
+emod:91512065672092684699107288546273626439473487,77707078677517557779288077287329555442145,77507839007463389547163721496077953290665164,0:38085531137788908878444542689408043701328043
+emod:212359500386820079595762158387084577,717033680869242497989232895502553209306,57994712116702439737072157729729872704610052,0:50129132851246790997550498079907544729976657
+emod:-825584369512058731518137754499088478179447156,1557907027924626933995813818185230430454,687117774891041750881385770197632894,0:469172376510748056891468208407987466
+emod:-637734412004053009388081157566315826855075,36476067391256503367264361488762844508,8901726487790531465993910110654847381,0:4608357665978022682117013835997146678
+emod:-54456151981942190750703318217840449704343130,99982993771652282608320462546135364960046,75503441196796803933415452275033785162139990,0:1100695159195786352512500747472823910559430
+emod:56697516355737268216190660504482018822,88504062521017516515948614320857837302,31042097144177216624878213666191323514,0:27351339735066170958422624002651576306
+emod:-98852251157147894938842540415683732209931823,1103039394658513749769074015498619281,7550633351197275605040420550766377478,0:5707985330709738472127894458871700507
+emod:852323466440811463681452434704718127867279,34051201027780798621123886995870064920,795262345784174548938737711612423959,0:548570523642232944065382365273044931
+emod:889194223622807557021642095643419375,97697994551840383739114494141322582209674192,70985658980570759747746606912921132003556472,0:54920500907444323447367511646922423261389401
+emod:-59429009735672945055727939898766153531198,3806951738924291817324705452300312658284621,90645462413613180896154498632105428944,0:8969737683089946972629350404791649984
+emod:-788749280314228561044345431332920373159,44015816904317649966556444126647542275202,81067964499763345132379481470512547700720528,0:421573413445326284503993935343886089184977
+emod:9008250476728385872623793527898989079,2093760923583615910781525258418818015395,84876061848991122343034995751598547888,0:60481132777467814904735222040023224935
+emod:7323424567945169155005613073259826377279633,5345346096429285612041846952680414187,7435331969248825511490730370379710920,0:5701245548135054050237139667347533017
+emod:51404894860307832493700969749859131586957518,9938875974899784631458092317153698579925696852,919124325203452723338865802119093445414631,0:581269944116304841135442821130730046480816
+emod:6976423617979510411465515007491044851,811899783025865657772563202580630898795428571,6842295935464600709869948911248187992875653,0:1463570911818405692736959800443272136874063
+emod:9244740154784184489624653851590988118413336333,74724797442153844622872240019401506034596,415430272200957807957520540642458327434814547,0:227245764253849571682827833616120828123015976
+emod:926378595873538467696967488061013453069,13726821339710674251825283897470743239,984332184269068978074654811562030364,0:366045593329883963651763814907781689
+emod:-2813562000424875340357193353899248540030,886165849336487766393906742230529958590960,2271217318347813010825877828107460187565073890,0:736934018978417266185885759728676558811563740
+emod:272054208241621617590554322826124010321,247618769151239284337079695008609818283496686,649481706449462881752315195565911763474,0:256814202110410998800134363843790671923
+emod:528587416597254711558479148286684876795995,56025560898493899721803630575638541012744107,9092163742836866873755879991932002700857700053,0:588768500717688902898041234316335534968163070
+emod:-36376510103909754880425141038180683008,697554526126494541279186939566773312469,7678019691033242250502480954454444789783096,0:5565390320666040024632809464519631265578088
+emod:27353070533528810361133250533207881585,454632738024798173419305392484295653512789,8645616700024063945147977100235060594126432,0:4587159063853018443969072957434344637693713
+emod:4564708845856171353601915371168338496301854853,7977961275571093400571875056194861455149,813927549830561854195243397042782008374,0:175995834338047549986610112197044992575
+emod:78175395789694647002168837493633590621186642,8578229500974640597201805617750253952058296,20420572460880064835714904978798146323419,0:13267874012653989247914000024945154331041
+emod:140750235074048885495514519935667682244,2119009829407208281675487240867001784,80904987806406684614200209335872193933373288,0:20538605766997209360435961966799813436662320
+emod:9887824160642886854268459508821295133,164654330601600177496087425862536885517,74733613066493027861988707350740433987311667,0:5362288908065092864439824122867646582501022
+emod:55287594962561555095068246083044803040880723,936954069289825306215654233135813117759441,745114678852371902761659303193044148784138736,0:290151193402965126922268234821385444873479187
+emod:49271627767039808526745187094137141719732,30065281370305611177302331797431914619013097,484472846194900484542233448660288882119501,0:458376187678161540698348417833456289330989
+emod:-33619977831470526307371048811162970364476,3021585613307372422202371415945287499364,41518376269473392058127463402457118308536,0:24307170522911035642636754257602979386776
+emod:-25382128605388905979122243374547045342,828302867171033162078210088228770176829233725,8266339347894794362758578546936481856264205,0:4167869286530376166812379465397611080036603
+emod:7806062802262727519367165518120421617547186762,51990474722372679127714742060768843445794,274591070028574724870239318997476790646356,0:180286762288683513660209941777027215969804
+emod:-14318350583742657677501199469782146645295,961806524953716379402040320560202880271077808,3687275580612869739753747169826129862213334399,0:2737868566562935158202389734126986146079719735
+emod:5760787392296885353944866764267524928758610,46155936499409386931117510358618192060334282485,9185503223984382023640943204999579979071680929,0:7506254742023345352482567480829597623259247559
+emod:758462979498659646336246209035644159621552,136635434728102133698904796510225702345660178,9498019876743551759329514429520428372065505605,0:5565366837043674646400082916150410306576873804
+emod:182033670937033200311127104143473575388632458,465202911160104863025573660937504913136,394894056005762580037702893386135121788,0:316367714111986031710088217259606247428
+emod:2632031473801519112928562274312812079466,2498635333283012493093325455044250943493,799862304047991036206572453520324334513,0:260071365955878514310663254591271630685
+emod:1021726135630824830413448736592392545545812,4431216689055888716659906849751643616246362757,595012854621587453243625735815790460446478875,0:506405473722516168522817128617260580471663667
+emod:-74647441813141773592808970599111638815902798,9458739990542641030328044128925695503721278,67632705274078858494220871541834514286,0:43860643833521638278988180954457097574
+emod:74347467735199697397903862391515976816,27228101096114329060763685814389121867,2329466465821059768201256128129347846,0:527826993612543999076744976068461088
+emod:70535640036795289071039498872891011642193,175763117977529697478928626604560680829675857,705090454888208372647565597170374314517,0:179091754275860670608755581507296361572
+emod:243670574841881773841146078165542230152996248,27224356467518163226383802462318164385847,52881980947180661815959615676455311403364453,0:6543936847510216013770565818083740841303302
+emod:-3063522500685962875075820880911603917,3092546229913230570432064938454622435247872,445936607970411171632403906819964092617858,0:244095099022673834362318413541677305006965
+emod:39258083183616152671542900110410755401440,89093980612505699952982513757457937212093,962271109020614661437340991578568879083263254,0:305927769953786743646130969214578455895721012
+emod:-898028156876410713010493580194881547802568137,51663960553269149619746641641026382469722494,88192102753654247658195333315719037577000020,0:85184597556224178158455641450790019451878649
+emod:420238670197853908213239792155799109438,56874184795237971698065659542105288066970508072,7039994314494472877016149904621158951181,0:4195556681277481820163873546402003983965
+emod:988537214014327037772289213676835383723493,513562354885152593212937649884550491754906560818,93157394660505505194821589054314827610053,0:12739336675286048975363676477920500556548
+emod:842740677032405514674303211263314042915529378,8831402402931313770942586028473722467913,682852291371107996249203176454681279672468752353,0:650699316446407153033148645266760437516984688808
+emod:825599814726370563248636889273016715133942454,475680601046386573129475547513603110412899,416247625434559948206627127417433632778118351,0:339574109914067304840079566026200464971617828
+emod:567648490639035833763803769141627245584615838614,50724317254941774744692403469242853096809,41148923802029037929684987081095814446741364,0:20502707948232123804215524099617477740021816
+emod:115087026829239549004467892483132444989997188,4535425742394168264586248943679679529149663,433955044135381795877250546954925503743568344878,0:251660326553696762196196778824084224173978677678
+emod:12036785909772650615373227006202901241216144834,7640930319417728873563211760140268194907,413484971952354004891213262066509431492,0:386239521261870781782143346233879040668
+emod:320557378119349288211730243419102961495,84587343773197883044120518369669143774565,450141050577587452674598657343574939265610,0:231814299231780092365918681959558354516555
+emod:4760513985682144284402040197893582245744274,700922306891278320888270773879393663215011878,508613578824050038059978191899173905936352067,0:226155180059930658457926847583608180369805551
+emod:-1986722625420716592016545661236480979772,6587808211180976790034063002169935351319078136,248018664573312581284613240553608321163,0:47757498985820966232985385469724481611
+emod:878958607745362254467126051915110114983,76503615843648834046772312529145734419,599816542297740804095006213529020435923894574,0:250411227594713677669720417184781499038401385
+emod:842403714056568268363014451655139215576923530245,882962407685597232301145770370705099374,82560775215139790378071910956865546821689,0:16330945270987575660257305978980256916947
+emod:34552684591792222791353473595987201905919750508,212190283105668244835487282221966055090390808214,911560266007572327824644939132754269623196,0:375847062861355613267496115505135609589744
+emod:-255595855064966654171339977100486303810714342893,6536377115945497812146512349336490454281691,2358447779128139560919507162522654854246713,0:464809906345666089854305504087451343505919
+emod:18482506274556543305894610082680844279454,209945312016600815281820143389332478519181,699102020350956658786203685996030350661513312761,0:72242030557111920456295390210910475158413094888
+emod:6415210528618065990871168801815200139332991888,597649022838328236100124856044642774484278,7231830016713662975924622826283198323690910,0:4006117305107713700741948795422083910788724
+emod:6064555073982428831750221623690023330296876,92735364529176955551691773164814148521984,57696657922579845113546414118019201058924665,0:6870916878745310102921277390541323644461026
+emod:9386717595978609521086313430321645886736486585691,1936977561716961194789196774828364291100085,308710514484691606827023276042134027471318,0:55355445075743293412821307947169157597655
+emod:853095304936028332312865139673151355180032547,402516533127912932547366145735034332969264851347,3612211333648128600921169717824883676314264487,0:1447874577344295276390988945761876053311260753
+emod:61856527307782794639480931649487570761759,981353953577921813238706114977389364158181496476,2875727585132422327960555829952850177070241,0:501562823449987389919037987877783485624875
+emod:-3267284769511763375166288313542521834448737,75871983689910147433442901613935364192726737,598080070299105299737322321312252319973858,0:412778730998143883082550011380441775883929
+emod:405422539092856845025942882047354831627260512213,1337913948299733086787799108945523111815394227,36305189460456946509918912104812255759867575,0:30995366858217213552892783895317137044496967
+emod:6960366366888598610646870748629752920549287367,39434037540809306957325491962655662351828,3736135718526702463297936582263494485512861834479,0:2992479585704247653816936018623391133511705239998
+emod:-1826866256845184317995843519306378742885,6087838149038632125552666538607155530202455862,3505196452565303635830882879536478893015661284510,0:2876258092163187750168292253816666759927848105405
+emod:-30453880527433344036376413763327782174850922,958106051241874716971554801010144468715392785302,83704796154657119123303823148452214065244,0:12172291368658411466771610032308050809112
+emod:-356428887897712690551027940776016664193551,974311528436818547612106283639362895440535373,4175822946282741428795690626208558273399181,0:2217100635742324748464089855768646097870944
+emod:15887850640158985382379829997884660521441664,3279446731722646638040158087688724381294988413421,52724586555424276758984551014477985909146482,0:35842723031112195508473058690940883109069966
+emod:-2754358773916450393380020466377500694537892748,6693196828758606502929005505195902945008422,81987501340134124186844933306300364101202601696,0:64957670918930713389913976423032686263311873504
+emod:64795655511571826535953650784879339331120906280,201781316213631005455227216755502850172048,9183404199411504412156373561368468657063847925055,0:2917132830074900548165772586526792013580435602635
+emod:322376591049977138697730895670752146989338805,223962315373891826478293010620538065565321,134425497979583765111585462044979782868043951339,0:12680763077525899140335801175036995248897549410
+emod:7378293498837163030108494500023638035245941999,2701192105797571727239301264973963904903943488,61103840672560006595434005526860223512609429784,0:10575104110432808219323836371535482428895151433
+emod:6586150511971850295907641345124913235499024397884,25513878140895710942385809529884547574325,402623421320542043817163858150135923312140690478,0:212703145455744928999402867801599663279882403300
+emod:1148513813380533679268801317870273567836422766,78264425883354201492861909224929965803589851,888529022913756404039252857597221260693723470,0:344612069767725463911981963977120251304004566
+emod:156897858936863936558762112272942619182648359,5998398850499440904999529048665563755755197719,4114314816923307068086587017590920904175696,0:2365605906155718722370615329402928970075415
+emod:87182346175010426980309825602413855400180387897,6881708075476719061473118229291803541629550,874317437435696504884100729090652126764764928199,0:358356267780280626874735799972579854632076151004
+emod:911804580943517196035138307824767637716096,51910018818079388343993224114362468044260,755719409656106996416099738309867560127420,0:619648429452324074929397811402394241260156
+emod:7907371058268574577015600989784286442091497358826,51384490845283761025532093399709612887400222268,714932241344452067231089183566607442645499,0:39652714695362677793061396306809603985720
+emod:74152151887141438565558836677120157654525413725,3865673216281651353443515507748331062737635617119,39515541452736626357498604574956947118936,0:3348164210948022420110568984992044206893
+emod:1921212600092818926909753666688437613889202174324,15126673218216417698630762186472446617543479982,1513247907205025148358918017400696573029502,0:47771732582221332296766778100437627607854
+emod:62177741738385906366557378447871109683100,42062431220303473355860970126711938425550656184,773958434020341693602047125826174529582651,0:442082897911401536767776238214849664334966
+emod:-1806808081053455087879198258615146551580359661,44724668030512207581826980240922859464701,5189597819742605059176771398730210738088315756312,0:4809675330086812178815566854450153052638869156587
+emod:139380296373533535850169111091445251133031553,5568131554680055330705039219787143467175996,518185013729942602529965143602253217637466,0:193773139480058911982453569250459620737303
+emod:974121940443001500503304094214484700334099,728467767024352630604669587731875660396330,44674919076720204028296797718736637414521026104,0:21438174710368725104589700570479560530599609609
+emod:-527405333948184200720039219764919299319468854,635924082359258060601853893045398322160190689738,947819620520708699044943964793321010513297329179858,0:342816230736644110664562034099738209027304408209052
+emod:4964014414366266067601563988433897971039777,972491441089677662999190229721797813272801,938609136796638825673168709652895939249020,0:757905229497791954404463471617284756626357
+emod:-3836548959134851265232468756686852887039589263025,91958638726161076829164170565310939352504345492,9842518325582477123987885320987474902828056396473,0:1785937883725230279579795187739041151659042418262
+emod:362003077050650651287331998851003608874005730075,7224278456794231058200539570034490392355119609450,686491790315346927921146778571888891553496,0:316447529525677730606205777277031419657281
+emod:511417748058568151891786589987253660165796727,8094482124265898686460762144280960033447161606040,186381274246323455788720228571054777422314708850,0:45279922457870097101374197162961699877223826551
+emod:81264000690609604351458160311340827489802109902,391885387725085278459091170640814114585520,862357107879749607217822835234106152392133001671034,0:589199761114611925556876493283500689288324693424922
+emod:60467632250983508695725501646784109879778908745114,837672302787514343932615418244003255566590288,469196685288767236431865642803573408203650783,0:47351563702942679095591216340308509524717890
+emod:-459476727597478328887650694792354077730065535006,6551100280420641334568069542701824749257357,44015235164158274406848669553614570342982958461378,0:28017796628275197434019563629223716729911088938710
+emod:895843043275999934611988163188471273684218111033342,7246774352032830692528490542295484830970866278,861847510016050471694148161127317335094105768,0:654035466899277641878411664189821364246515408
+emod:286589462111588691084089929906408043383921020101,9692415030522370188366193590872225386635917218031,719298087261564603655693066504254890048009456875,0:427302318670364247525213648717424428327518555601
+emod:676436471530083898997041363054013845405132592805,9826535789561484874848870984693688846169671622,81123191412086856575942178138898627611978864,0:58559446218187016378111352068475314798576601
+emod:82851204887068882391372029299659256702159316,172869110320082328384071354204393838581736,67056444908658930881509973314864718767829541458,0:19106724465380212672652647774912584474721840748
+emod:696109009687864457810113686337232495156421183,3401811110841371494776087049474111559799131700,4299920714282089106120610636935635090268618368,0:2020511812293185382323106458123683937285282817
+emod:642181116705547745922861595409305314439788715713,3191544116958009442265013426506709691563847359096,11503959864174296512003111411775254312499675635074,0:4542807727654055188419122200833174452933393471703
+emod:-43473592792665227303659232677180275856179335420193,367337932661391050359451420336432743104912012849579,40336899717936194492442741600463146885238391884,0:33883445452210304367843379593615127696274144511
+emod:149677082879100259644810248166250018278560400684397,67835958963093533534750484479612188112600772232,2417319759617452658480101694897700221629257,0:413114555403103000658332346965315753541371
+emod:4308690827834618796779071688055990154958119217979550,8139792103252594022614523084666149717083186251,15533037471757153506550580840055923919409189,0:7020715664515618963916470331313209937794066
+emod:4607793512504764431422636985189117330151450,5810855517430042248184284609190428320492582797693,254077145071398684004350471347456740109867649920,0:249414146109210156171911011976187568245339994880
+emod:75015031620454344801239233353680150096201722256401,4993964830386180911249138189300268494685186990942,4241132252523512745096917242615525253291052986,0:433337045531299838053635884507298069666061467
+emod:44960897309673530453555266827045004683193626,9864385579695978005342342313046773936648945269556,64756470723619643596096247881962254980723676611,0:49116998830009971503948732099380336099106902368
+emod:824638657497552691308275418547421010797730757488,7102337564045908912215659769896546075594806,7549559927659163526633926834915307075816410605,0:431856052905253153141408472781012880375756789
+emod:-8258821865451861122164335490949730530149357550,91240131099914556769212391842754945963419588729545,608091538039563385874042418452351103116377287,0:138416095708955483721209050087621590198128350
+emod:6918006637544381236582913953764444433570928,142116742659743263417878030971625713139395825277,42465778998553599048069556979313575711603846192266,0:21075269211617428685041608731276059490981153877082
+emod:22864575309091005999606038194627722799352002613109,896391086004059443203372771274754832310503484093,891750130247908667659048761409012710669636399491,0:291616836488219220269230095553451995714008687531
+emod:-8194888032441259199630599625358473476489205,5233704072524169370158667063506533972281083980647,1489037233721004711195744120696209782731350261503,0:552028516294652365815212711109824092516937002021
+emod:402772636759093114336215386282519687390989479435779,189516067274441373930013687419363508463761721803660,80415811227458788175575610653906545982219330975,0:22728298548876566392049076077182437096372400601
+emod:25478733323871259877912385362343090774624815,7071155968374703054163176660383261326011527019503126,6134327557381540088147721199406548730558126028,0:1024740410140626130936532360899124497564707733
+emod:1373842982649207730088589912059387373550201,5632296300635658701077632379614186637591919259,15391327625104216613547146396703256586018696280834,0:4302181480010047578962481977259846491527280155375
+emod:9495802289929888822634017883238054795580349,5002682765682429592404202303916871057826935,15884650860342620721715065457253891894018967206,0:8941067791071558272472337248264693834973616755
+emod:31600516776786509284343708819765575234628755,228791299265655690472626502236069938161188391,40936664868340332393928739047239776545553829753710,0:30627744149685105327689441848075123499867991131765
+emod:38524550306915104068946046715826855759569613774844658,9194419836976281683587306717261558747169442193954208,7779595009435858929206493144805114063764499766215590,0:7087991661129889057406934247049530530993451959597276
+emod:554411708679558039842538802463328992263904679,6237197282110482695552284318126536429504723341,10950325577001918036371982331444541813617574475194180,0:5787600514717071948035385347363174161644959891539359
+emod:-65036555989091136374058985938454117449763159,34831798653870828072406297626104961773750661,31676515243089740330950585861176809143792092,0:30732949823978690229767791353264924799202285
+emod:519484888832782036702272050651904638826888669,753074873494165067376985336730357180001686201437,26162868641248965913351015420400997201482504702269,0:18484433084399526415475352405874231763303729896278
+emod:486622002393256987329857884862358772922652299948862,5397488133084406712845993173123874999792355443180,52221363514636645344562494690476680459663806696245,0:31424877006247871341476564009060753196816273746886
+emod:2519545249333346583863745851735514920346268018,5762304897220756179596577719327585953058564086,25968687826793482314025869361353695830319122017723364,0:11446923482269709284929175954873487230221266306098484
+emod:25181558468391709065005750569128856213137442801,17395204260174949840937998424068393371443165843074,5405603350542397445284851120217561963941561607,0:4017170326519248316993458817903116669933612061
+emod:407900825111562209157049195681691242826792800,267987715516648071532918817255425280495590423956301,68776425368933157858220727119994638551746175,0:47031090204538290387899250133897480746869275
+emod:-98803819636216862704666508079523455809956165947,98671412267375938209192375718233476934668297,55621612703501672327703967617091220387319483168426,0:32713255624638051486342207442183163021264516435649
+emod:3699193512054702576853653403075240437897079123,8717079191539632537960810302588868157436232036,48522242477672943422659170492335520141870413,0:8651476435014431039453023117472444582400514
+emod:77936539433974741743578486606140093995870301132423,954499217422932957346614451159347140560185480521281,163215414633308466314077081093001860212713379,0:103758294538389867607040992307260424637536023
+emod:-4028502338091434385570286181712320072468742558,96989036369391542800442739082061530586823254263116116,78068537791270178387717266347434743278287908,0:21669953939490893566721670542161427811188984
+emod:918884247467748036366436587703999780118117975546957,5615852005546776682559779744353394064478095142,2401794658690427064436304716694865657554211766,0:960515354911580091015228026871019794883284885
+emod:9780239941823826659833679733394177755526189646937,89322777323067153562491076481435606732771405285,29157211787311713009469704820603173835586448915,0:21784603970310613711389261139944185838629281707
+emod:96098774697583148524351932903096795874200556392,6980912905868697403003059554264649562235986501752363,208924194204367947369626074783038546699206285520,0:79697661577989072841423526677085730430307916048
+emod:-573991994177224613634480756482666353761100288807,7158287307293331130042236674166424104745547165,9922520662865454426464919345018943051389988697,0:5619512846811035521678742038957891764003573958
+emod:59911103774024380942223423632168855379630335,6818486079655068602807082064093124643116770724,8864024398516747656055508658685364700493232356531142,0:2383722465709179243642856098503264547092886596175227
+emod:-62313348406991266015553975744856571685314477634,21991981158838978996770304861386400122523958836,954507703567266334987920599572200024950117776,0:673874525887635950319127294209157951664603712
+emod:9820087452416196217911209095780565350316442900,148320444363560053307036007569156568389928195017362253,3631113047524475643723456921191780561936707959783575,0:1549830330276375593962772767912210881310119448216925
+emod:-25798647424975836057412872830909832741720494281462,9299188364970643235457620086027788049113237501724,522064657371945322423320375992281138757129069042588001,0:314662317723871224913513394778330419886523487691115165
+emod:930783335744991271355677086538660736067905998974646378,776787459928168870257234381028892429138274839820310577,3676898834201974197391604163986622259912692963,0:1454707990857958111219870293206602713503203390
+emod:754324807048657228679765605878761298609690360511998,958586904489606201890927436646020906824192582152,225179126294857543684132265900588355218787359997532,0:184341533271280210707350262029004357506956964249100
+emod:-4277241617014152774634908150956976406225721463619,740666737188827503974760746294458696679071963170918433,84911564006449909724569329147240459921838626102161,0:32837984989291416730559017868100153859989248628941
+emod:7690914272601666512634428163546937580730709939602,14197296902658248167889786104196831416278344312144,81931815436335281188537823089415033249544638767808135,0:3199600947635353412828955610370257711774177287067436
+emod:40693757858681089447717885993659911215985324585652278,39136056473317073147714521234945625238580560862152494,56180103978500893124049541126696155778770577135,0:35530182604079785705672771377947698867955134584
+emod:-61262007457380831475587401250265303407703358053,5605602757602617615751362780250832755031303714,39786650424951253014286369945896326084999234541,0:30624920045735321607213022533773280830319909832
+emod:-8294197985009320613004835515579701550690472035947,27497176409134737028455478387441759659126437088890626,878254584167789416959102500401944397284939932959,0:96787593049516460622263353747535019044011554347
+emod:936948855951886126122485690093336688820905438,952037324756179560869502130218077067074192084922,33269225773280332072695417422958575761899978253499,0:31343729843026164021419525495602740164653732233547
+emod:1825784156631469036083553494921853600892959329084,1792152855908535702866815908479066064573203506328,7584434492468684030603996404862850988077230764966,0:5668645854080378677534840608739670840420553612804
+emod:4771542980687362499528587321796090255401127670935,49673918430106064176014347389103358990211599558,566808710453386184370243734899518529679284370157755,0:122614051205229170899163057352055351000892027836640
+emod:1823975371238131949336117473697450176001493124551422412,105862300137903514746181350899950234467623927399,872150475093096064129104506408316916638215646399,0:41655575950454700889468004661814966001328043635
+emod:-7403599133408228298723066626194976743023770563,8091134022905952963104699681073539225469153697858,5425355350845048150843160638835947264066541393,0:2741144821308534612335116015287775234294403710
+emod:890646208254935784836741265729061048252488750371261965,3014682556575993233966766524815533447095651265,546627202244553599303777629347742865125211029412308759,0:129189292373035871943643466963326800150883513587943803
+emod:-478301676028477872037215528133488673909770705969021,4776644958028138697511933491453433971900379293,9804006501217419003156374248597140990532373604359741200,0:4256526039075877642788870040517474793472829088151023139
+emod:-2685385133378038265400322588836701680595103090,6682051156600485359090971175835317671334686963274670,272381294217617274132435187599076952898337370816,0:160448248258559406045792992578310861095674214848
+emod:5610352369978196066557531911583288845257728872885,29105174820600183606830671874489670474983812495,10153364462051971143078318734983556641603678006,0:5654495476089063930689151404880397736789807021
+emod:226106902099977963681448571570521911815066120995317231,1707966440323110108128795246285372866871484571190343733,3022313205119289698061840897980713840817653246137,0:1577789001757918961027109729382551177312942381192
+emod:56994398320188483459448108143592444430607410910,776571171150667113541269029583357392475898590899457,2952252481199115860737553986433506978840458215941629739,0:2115048663787786340261444189400738968421587522302410834
+emod:3490308621678382172799094687550532898406999135779394,92096452137945096831873480789275081374251295752,41859985473397465016337344479699193310470254681186836,0:13883201384282345984019723588819996850955384028405568
+emod:78199345624452323665538899878571977010103711120353586,426889339090868016603770192089391858795483010444,614591398724869622540933622810612317245462099,0:522221021562810412369119229465715299116874680
+emod:24494234546606769948911248691757492347200292227140712,737664088655731527937609365429682453415687199299030,41867909567513789892657868211831771169136305959589936,0:29639257666757184257116019424419930205524205997421488
+emod:56340168172071966259164709446976804762407806722929085,9330607041404161548877129661058575432184418559,9073094112420733297526890865499708444478527878927152123,0:154033683820095649526112863414229406070106242714564017
+emod:-98557586380727162991959870302640551435620563142855,352179144624443366108174660913068150097236769961283,82957931261705630469780521065649609232909069967906297,0:4611469772581670990273871321012941407812443591119341
+emod:-327557046252127633720556940076118229316928253056031837,87561673782562800570041955183322599955629735731,999914991747113895498838412296608587151797268932915993,0:394844471425716300825167828282861382716619299699558452
+emod:62239294453310399816462667483598707872602240932142297,4658914995757017485299221864332093690860930515,2486140058721179216992139245736934931657664228105707838,0:1785631544920858868455392242463320012563257587191303743
+emod:98844248773908427486663349850376500066907267527022459,30192206183400841123051111248262548983869820657370418,68953646632746416359816661196045006942249287619,0:46348894487037788897865804485372390262476609587
+emod:157314584387460613339515315779646913728585159983563958,7129487243609251992087268468464230874147780513130629,7635331003686312032946464576006029771208342239,0:4241581628875360523816771058381935521234659115
+emod:-20413864406387948000986404651284225843901612271532247,60570204203293653144874911182227469571265725493933396798,74868812887175685382885501310045723065586089753,0:19048798896908808195904371996264452593501059126
+emod:-9994818638674529038541342163911785506433155975282,2441529131191726286407021656054505236538534218505,868763054397265950319354411340564521520500110285341,0:713646341945805538982296660502179127412919111592110
+emod:89928590797284478729252348706855088798121290869809060,59274533239795541803239071337695221071797917061551,458720998639333601494661224903885165927950415283068,0:238541586391208422370502281952541020478014766570928
+emod:95798368921402497294705740910984389802169456614551866,5780238728300624701546948669191486225967922222,17602545836464476089657116165016615105637757631075883410,0:78935491841772453025866169047063528694493328256027716
+emod:-6285988010245529074539471748460012192454923426879038527,4464035763112866760911458677964807167647554031374417,557426143112327094606990154681823173588434990737834515,0:492308894761273719919857937651384253941194670007301468
+emod:9216609859426876786581364775917107940830826147193,2584656223509851604195298909793029088361431700609487947,97854661860659618908160182622420008085466240143877617,0:85437882709473882823892529660893798801236147303713473
+emod:9369310120459129777778887291797647697234777683432051,29114272244461903760267994837317966967186291374,9778907141259037429006274419046033685045015909549812,0:6158258816758612931552439105354775382106793792840429
+emod:121095461268256661739120249224368430821121813080,24216928007688542369493467184086532629768906571974067315,1289101505296127733900239534120001726302383453437972,0:559264053276767206654909871928116713399654543670428
+emod:182013722639261555865084991953687573500429962535766,5312171499532129540711226268300910853763234503893756460,373925090068292154121977949608424249047611823254,0:314492433924568960493434943112384754084000516952
+emod:93122409584336684208634425627697110814180323391,14785829877381197130422634393843365096818009069934141,71932199753627287791733451362196318752438103297,0:8651254301747600278741940327234016885952587642
+emod:47314169772357749238033685118725095245857710174326752251,7737526111797627477363360414613284237413174897695810,22636439121232576533369780871442014748582558494258753099,0:13481881160769756096301137118624702877253559402875253449
+emod:40437135697420911841447145598134529938086874417869482,34142834203311856114775566332299272975314691621831451157,61483400000688184187598139984127464523117551228,0:24693895005298972635867796289890449288509340480
+emod:602105062592660782251188458378445123063805101057628877,8347043677742730027972079328186098141974290663352,26831519142227837662521069711039879610686983918942079815,0:19346421778661788162968173970766981230660937987122859431
+emod:-631401827295443763663013499197680737231639584989,4430590554183773954781048837898216988481838421600006676,2298393896534361874746279427962482679705626081354993,0:902945851002567106949268418213474969113107638762554
+emod:27786418359632188385534950865019584947593363685667,98296086104810263777729111156693306399745439517905843246,885588959591327389647962772187472088293854582596501585,0:219691806105674835153486211154061118027834335467768059
+emod:544755872510174513208896610649845089424204895203973,87613019793007744065404211674234696040702876770839324,4802706142382015625537025588688720114067633075179938214,0:4385825975408070392248170302791202812902625274088936755
+emod:266945202318091617395513307631280644325314217797596447,327566429748960361523726509719626329764280050772,11519336904029441280173947176416866297494364467208,0:9214541334269337101551342582484701318239260425185
+emod:462274575377872280232466472100106379919338255223,55208106570738920386188352962242729542845793547908872955,394947463398055276743090558014108833519958843326036,0:14090943624401742126636618168767136948067183397671
+emod:498588690178207860433541173652626793819053542771822736281,7320383073654496423015034860141911017275032239632,864143543362782361157239005190574446540608427530,0:405837700105174778010475141584205874050426805841
+emod:9889983273673267055836467894511050393862566401427167421,9249465646754817541871880579390030265752574382697001,25959701663622988366438447815418575609294742760915,0:14146692686195759173905915586727366427907029148496
+emod:8977490701791885156174343111351369788045969359197758,310958534312954656622864682281335777958703646747002872696,174885990030766375557335981487351371779234545791,0:172268700100468974308770735824988553302287984097
+emod:75891699691571906472460353214537778119193566652164258472,75642710398299172975011498854625838470353049691991252,955726338299637204220414390179262210175010011084260057,0:871551220400711242628454200406202564111664531240532043
+emod:817687870329204460156610156013195890028396416937162234,71199838789107588122529185516473983414598608665610,9797217400749418393402581106919553154845468700907872,0:9732835751266971971517518815617086242024182057719936
+emod:656535389260219421975691249279051158130957449883966,9965820125071850776397934471591602941345422709213,7172697024967323900460450488928712811727935935053426,0:952029660753929926293707648671191250800460252928490
+emod:66765940995445083043566397231259337861214788967954,698949221229345492777837382914330269944860925101870058401,370977162689246158196783733149906357225503977003,0:56780810013712823080333031377883978714594923759
+emod:-24860118467430048016063231699711679455683726879672563278,546329058333516554426292196577372643895447816095329334984,102083942512514956911062347152596366057306100868,0:89329427941719016468252169448693561927858667460
+emod:518281434431704435940150792966272899127164218411,19290830216216089485046976601623655817078004660590796816,216069676358948655463888215158143195786697578360538582,0:86506166688482117996142986160440612354876384284094157
+emod:517542901438648396791987658999334820221431246981278,4954735021213009892606598900462212813613793939697004110,5546708620630276172568015746256008412046274679011721163,0:114558840275328029858937724196533085168759209383758948
+emod:97796431105417086121597265848245224080646880891314620699,3566309852926516051758561425477409449674731444065,4237358411463841472327670289343773756088420869185382928335,0:1728379035119996080675313770460691892171354788520339293899
+emod:8797217794906750966627546899905389746578400755524,87461473070045326370501974269638901791524473673607812671,63579576817694957532492907897275166360331019259167287988,0:10068755237067361214693799084814132014570304060924282180
+emod:3559874918456198560844107856956492116344121248206,45190612746644425408414684724540657030439304479324039,684772758312255825130987448842421703263477856778082,0:500105229544177258096786497048655528691069662344352
+emod:244693542815021761876325478432698673186866834942911366704,569049151750280294347914587638406693043104703456596078,40418336644392592645116495825339904699620388961770,0:29946736018608816763137681085572521922498414649586
+emod:9552030352913538449959248911819718532447389423411634,15303289522386175735929093158193781525599040386989921,17905297851878021472325954407339512702437837940804355,0:7227207308763570886905006773221274115571235787935329
+emod:2427953611523095508885901603899411553216124564768970531,84219397598182701873267938504642229898519369455120690652,5124565221346746692094768907421280792680721722663049,0:2356962294194965054880021165404451023189256523983359
+emod:4450272023458109693579519823508011943468990250887770429477,9852180148050086854797451708622242708750405652182828950510,53218591961090046740426308696077544888041718958796756705,0:20722361228858746975332642022116538507546307084688876639
+emod:-3004436507840212393446088399233355090512633931853,49762352101558708510764823100128412949214842904414503,62339832791097134323794421391092834208651832053582621969,0:18644587060060960018044094951299852000053162441627275349
+emod:88466522329785151709268834138668446416231472463853002,84423940822580221018912007091908955924620089965579353300,4272746558814012659752446371362908792507498696285890777,0:2076687497522815194513922920413442770240123518700437310
+emod:-452137704321173773725358540484655780134513962685597,108536825158896375705138771152627679486775845056880757255,7443505375179903958445129175383134980666720252160978,0:2626655033625685458909447520232601675412626580083149
+emod:3646226144731352080332815382512112527325988973642,736730185733372156433101295886081895604485817722725,187559548105706428460460100309284194685793795827962,0:153703862976742792640135721867824635074042235940792
+emod:7128578973288696116455318246508827884395148700024035843,120044617176238734085406385417402387651027645325661,437777976047468143063879147080739099513994845762621846093,0:383512808517870785600076597930828756369001886406596109329
+emod:92651404329219142594991415600374429189694983250618442,1831956594370082650320589803647600704949512437508530740,989079198090857685320779737579388665165981389775724354,0:429473741854566274661236706264645428539362137664132958
+emod:783048980600864030214223520282343154949582263988130988029,5640798680918146067495300825091961866365823288705,712576055151408429943237184396668347415006718010549447,0:132303576760619346367560792334725765196706066347238184
+emod:54419766013288244584593400647946050509291116271357,37442044497849759156397618484039469808263267657304,55409955411797081810766022756739065410388681698701498,0:625989815794948434601895148375843191288774735399931
+
+# Regression for overflow bug
+emod:#x02,#x6FDD97BC0A760282D5A180D2308BE3B075BB6456F26B1DD0BEB2C1B0F880CF2C8EB724F2AD0567F7899D9A980C7DB93E418ED09AA3E35357F4F2E05963CB636A0C91B1BC7A000ADAC40F332D6ACCF4A3285112EDBAA95BB27904794ACC8D6FF188E2B04888ABFB11665BD1D915DEC8C6575706067AF3F7179BA57D1465D78129,#xFFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF,0:#xD2C80DADBC0C72DBAC45F380064FDC5FECEEED268C7E86368DFC436908B2D33426C67DFAFAA56FAE89722EAE3644270B0512BE69DE61FDE07585001B5EA4FFDA1B8B98393D657E2EC4073CE4A6953093EF7C3B130CE1BB316C97CAAA88F83C32575D6E1128E107BF66910AAD2B84C44128370DEACFE7EC8A98B2CEA4DB7B09F1
+
+# Jacob Refstrup reported this failed in 1.11.
+emod:2,#x10001,#xa6aabe38d013970f47a8751ba8b3a2d20b6cfb1be2f63d7c36067957eaca627750d9fc9b03ef2503fe73d8209099752070a15c40d481c71c014731f580fd905db763434f999ee24b0fd4b5f304948181555531e5c058a8574023602191f3679cf350ef9cacfd883b4ab466e2ea10e661f20e06347995b8a751aa9c17c0cc18d495d4140fcc9917cea0506352ed4bd505b626d6803c0769cf88eb7b3a15419e38b81a1ecb6e3695f8e1f3ef7a72afc40a26787f3feeedb1da6715771462e783c04b20804c4228e7bf2d647f2b745f64295006f2b8aec12dc96eaf720fc7d5b220c465664b95ebbb4efd67cb65b73d0556ee10a7d103d25c9da5fe2a757b193b53,0:#xa53fda84e114af74cff65ac6367f2d45a7a0bce93a0b837ffa48d1187fa7f48a87e543aee994bfd1837ce5c72dfa26ae45b1179e486d9f242fe0efd942b0e210edd0b34b870128165035931db003c5158e5104d7f220eb682a6a7878af64e88908a8969e65b827c1d212f911deedd62322df956766b42d284d7fe88f79821bf1c0f70b6fa657faf6eb8ead181539c80c1a13e9efa7890f4e63efcecfa32b4e1211bbdffcd6a945a04ac46f9888f7d7a6d182a0f1abe5aa2b1319d0cdf03074fe20b45a2f58daf4603b63ea35c2ec395c51e3b85b10f91cf85f1909788d6a5603ad7738eaec0a7d3
 93e3b31477710adaf98662113fd349d34103aacb05f42849a

Added: polly/trunk/lib/External/isl/imath/tests/emodv.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/emodv.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/emodv.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/emodv.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,305 @@
+# Modular exponentiation tests with small exponents
+
+emodev:19,2,84,0:25
+emodev:19,2,84,=1:25
+emodev:19,2,84,=3:25
+emodev:92,693930,16,0:0
+emodev:92,693930,16,=1:0
+emodev:92,693930,16,=3:0
+emodev:522181,0,166284,0:1
+emodev:522181,0,166284,=1:1
+emodev:522181,0,166284,=3:1
+emodev:437824,312,93008,0:26544
+emodev:437824,312,93008,=1:26544
+emodev:437824,312,93008,=3:26544
+emodev:5705223363,2,3286325576,0:818318913
+emodev:5705223363,2,3286325576,=1:818318913
+emodev:5705223363,2,3286325576,=3:818318913
+emodev:6399553325,6,4107014863,0:3307178134
+emodev:6399553325,6,4107014863,=1:3307178134
+emodev:6399553325,6,4107014863,=3:3307178134
+emodev:29074823374249,77004,71683909277697,0:8940258342532
+emodev:29074823374249,77004,71683909277697,=1:8940258342532
+emodev:29074823374249,77004,71683909277697,=3:8940258342532
+emodev:78759078367890,8335,72115845746903,0:20414099940189
+emodev:78759078367890,8335,72115845746903,=1:20414099940189
+emodev:78759078367890,8335,72115845746903,=3:20414099940189
+emodev:-702894953466773316,312561,665754485123402827,0:84548134549060215
+emodev:-702894953466773316,312561,665754485123402827,=1:84548134549060215
+emodev:-702894953466773316,312561,665754485123402827,=3:84548134549060215
+emodev:162476353576735207,8451,299565526093115255,0:235405725752406313
+emodev:162476353576735207,8451,299565526093115255,=1:235405725752406313
+emodev:162476353576735207,8451,299565526093115255,=3:235405725752406313
+emodev:5569622159977645154297,902159,339048673939289293353,0:314927034088061888405
+emodev:5569622159977645154297,902159,339048673939289293353,=1:314927034088061888405
+emodev:5569622159977645154297,902159,339048673939289293353,=3:314927034088061888405
+emodev:6991839486419148755508,2553,530292436823694624357,0:4272543854207020971
+emodev:6991839486419148755508,2553,530292436823694624357,=1:4272543854207020971
+emodev:6991839486419148755508,2553,530292436823694624357,=3:4272543854207020971
+emodev:84643040276670536818634785,63,64928874055124010543482048,0:22546118193382720472157537
+emodev:84643040276670536818634785,63,64928874055124010543482048,=1:22546118193382720472157537
+emodev:84643040276670536818634785,63,64928874055124010543482048,=3:22546118193382720472157537
+emodev:-99555590330388726236230755,0,62041543621233726359336122,0:1
+emodev:-99555590330388726236230755,0,62041543621233726359336122,=1:1
+emodev:-99555590330388726236230755,0,62041543621233726359336122,=3:1
+emodev:700943089540446737340421223177,8456,835694701023829355087294263155,0:258410405038140346743628562611
+emodev:700943089540446737340421223177,8456,835694701023829355087294263155,=1:258410405038140346743628562611
+emodev:700943089540446737340421223177,8456,835694701023829355087294263155,=3:258410405038140346743628562611
+emodev:5473388626149338730799075406,729,850132294968984927109971586336,0:685051590046393947084559076736
+emodev:5473388626149338730799075406,729,850132294968984927109971586336,=1:685051590046393947084559076736
+emodev:5473388626149338730799075406,729,850132294968984927109971586336,=3:685051590046393947084559076736
+emodev:7542606175762975785023215555039217,0,1451486096670046812323372237867852,0:1
+emodev:7542606175762975785023215555039217,0,1451486096670046812323372237867852,=1:1
+emodev:7542606175762975785023215555039217,0,1451486096670046812323372237867852,=3:1
+emodev:-3426829035080908738042076334435395,0,2616360606577002719669450329100985,0:1
+emodev:-3426829035080908738042076334435395,0,2616360606577002719669450329100985,=1:1
+emodev:-3426829035080908738042076334435395,0,2616360606577002719669450329100985,=3:1
+emodev:5871172260267735917150171255408367076,88202,31506806059671945544343675240909419388,0:9882411358511873694991988201288706348
+emodev:5871172260267735917150171255408367076,88202,31506806059671945544343675240909419388,=1:9882411358511873694991988201288706348
+emodev:5871172260267735917150171255408367076,88202,31506806059671945544343675240909419388,=3:9882411358511873694991988201288706348
+emodev:14045780235333982097410791452776449214,6,63567135751970741787875276189593310474,0:34130827114620482312672610863840969228
+emodev:14045780235333982097410791452776449214,6,63567135751970741787875276189593310474,=1:34130827114620482312672610863840969228
+emodev:14045780235333982097410791452776449214,6,63567135751970741787875276189593310474,=3:34130827114620482312672610863840969228
+emodev:719958253183871430502261490413450673851124,9,661851369887131891462493813741667459688172,0:326930997921634036854135001452458647807696
+emodev:719958253183871430502261490413450673851124,9,661851369887131891462493813741667459688172,=1:326930997921634036854135001452458647807696
+emodev:719958253183871430502261490413450673851124,9,661851369887131891462493813741667459688172,=3:326930997921634036854135001452458647807696
+emodev:443624238294320571664949666413150109110287,6385,784303120899228089361406308796439491202242,0:342407852738883656584329996186795949032601
+emodev:443624238294320571664949666413150109110287,6385,784303120899228089361406308796439491202242,=1:342407852738883656584329996186795949032601
+emodev:443624238294320571664949666413150109110287,6385,784303120899228089361406308796439491202242,=3:342407852738883656584329996186795949032601
+emodev:1136928015233318011144243860597237613050611024,0,2789921991289922378761307428111094457098264457,0:1
+emodev:1136928015233318011144243860597237613050611024,0,2789921991289922378761307428111094457098264457,=1:1
+emodev:1136928015233318011144243860597237613050611024,0,2789921991289922378761307428111094457098264457,=3:1
+emodev:1450999454447652679327105307881736952333784073,77034,7671829281860481025428743103260720025399298938,0:4381187915548158452304254783248892025314678287
+emodev:1450999454447652679327105307881736952333784073,77034,7671829281860481025428743103260720025399298938,=1:4381187915548158452304254783248892025314678287
+emodev:1450999454447652679327105307881736952333784073,77034,7671829281860481025428743103260720025399298938,=3:4381187915548158452304254783248892025314678287
+emodev:-28809270937368266475212144802642236424417695707616,6078,19637146108400624623087855337736820815095169248114,0:6346379403436405925654497852274419173995099516658
+emodev:-28809270937368266475212144802642236424417695707616,6078,19637146108400624623087855337736820815095169248114,=1:6346379403436405925654497852274419173995099516658
+emodev:-28809270937368266475212144802642236424417695707616,6078,19637146108400624623087855337736820815095169248114,=3:6346379403436405925654497852274419173995099516658
+emodev:54802263149810015499242805866671806182669824281823,700,42916710160715229320560332911086106093153060357460,0:13057328573793336952133919465279513927703000293901
+emodev:54802263149810015499242805866671806182669824281823,700,42916710160715229320560332911086106093153060357460,=1:13057328573793336952133919465279513927703000293901
+emodev:54802263149810015499242805866671806182669824281823,700,42916710160715229320560332911086106093153060357460,=3:13057328573793336952133919465279513927703000293901
+emodev:-87262479450738832647843497026325034137115145947284500,0,72160898603477481125780254532680608704164997261749601,0:1
+emodev:-87262479450738832647843497026325034137115145947284500,0,72160898603477481125780254532680608704164997261749601,=1:1
+emodev:-87262479450738832647843497026325034137115145947284500,0,72160898603477481125780254532680608704164997261749601,=3:1
+emodev:100642928524030186658056860132922920804055208139127600,5714,414432667835794981195051773905850760614924210968557995,0:389354308493629553310648689336990724529053681122415475
+emodev:100642928524030186658056860132922920804055208139127600,5714,414432667835794981195051773905850760614924210968557995,=1:389354308493629553310648689336990724529053681122415475
+emodev:100642928524030186658056860132922920804055208139127600,5714,414432667835794981195051773905850760614924210968557995,=3:389354308493629553310648689336990724529053681122415475
+emodev:-9286825595306463634635411645143516399569604439462159992606,8,7606404471200704416983974125320849350185211717364432008507,0:7552810691207713503035685321335559561108880936575121774165
+emodev:-9286825595306463634635411645143516399569604439462159992606,8,7606404471200704416983974125320849350185211717364432008507,=1:7552810691207713503035685321335559561108880936575121774165
+emodev:-9286825595306463634635411645143516399569604439462159992606,8,7606404471200704416983974125320849350185211717364432008507,=3:7552810691207713503035685321335559561108880936575121774165
+emodev:3436239558982298112600646182085281977389588789170709040954,0,522233930076758999159392228622915543027930093543196382148,0:1
+emodev:3436239558982298112600646182085281977389588789170709040954,0,522233930076758999159392228622915543027930093543196382148,=1:1
+emodev:3436239558982298112600646182085281977389588789170709040954,0,522233930076758999159392228622915543027930093543196382148,=3:1
+emodev:98605572113921015570731666917408019243503426904818325007415747,66771,63600959482143388817643210552729171226910500110519779197352540,0:20785847662807375106647030150336411392148138353164443936289703
+emodev:98605572113921015570731666917408019243503426904818325007415747,66771,63600959482143388817643210552729171226910500110519779197352540,=1:20785847662807375106647030150336411392148138353164443936289703
+emodev:98605572113921015570731666917408019243503426904818325007415747,66771,63600959482143388817643210552729171226910500110519779197352540,=3:20785847662807375106647030150336411392148138353164443936289703
+emodev:-4195218021563262220079054526213885813430895541193263119720318,78,94545015698506343903535130261953470290487760846622612793613368,0:90102715451299572179538269962926144393625103247204607297473248
+emodev:-4195218021563262220079054526213885813430895541193263119720318,78,94545015698506343903535130261953470290487760846622612793613368,=1:90102715451299572179538269962926144393625103247204607297473248
+emodev:-4195218021563262220079054526213885813430895541193263119720318,78,94545015698506343903535130261953470290487760846622612793613368,=3:90102715451299572179538269962926144393625103247204607297473248
+emodev:782779308925261277591849874263374019866668332441496166531362744507,86,593800017785952660786088689171372582380372342941537491408809547120,0:331857206426756526945777967606015729867677745543253114395853770569
+emodev:782779308925261277591849874263374019866668332441496166531362744507,86,593800017785952660786088689171372582380372342941537491408809547120,=1:331857206426756526945777967606015729867677745543253114395853770569
+emodev:782779308925261277591849874263374019866668332441496166531362744507,86,593800017785952660786088689171372582380372342941537491408809547120,=3:331857206426756526945777967606015729867677745543253114395853770569
+emodev:-368107346294563441372147845929799838078404634847778857716085123666,1256,205426227269567020839924454096197301901405255816878779124728620673,0:29070586076917968101851296107557342940225724785154296253334920994
+emodev:-368107346294563441372147845929799838078404634847778857716085123666,1256,205426227269567020839924454096197301901405255816878779124728620673,=1:29070586076917968101851296107557342940225724785154296253334920994
+emodev:-368107346294563441372147845929799838078404634847778857716085123666,1256,205426227269567020839924454096197301901405255816878779124728620673,=3:29070586076917968101851296107557342940225724785154296253334920994
+emodev:-3986212837117931767741913193889401048695278656631180727109492306933238,146,8147531447709512983938379187878961602041163459101435151106563853435249,0:458849149288958792038072118798350524070548896798699913432941879587784
+emodev:-3986212837117931767741913193889401048695278656631180727109492306933238,146,8147531447709512983938379187878961602041163459101435151106563853435249,=1:458849149288958792038072118798350524070548896798699913432941879587784
+emodev:-3986212837117931767741913193889401048695278656631180727109492306933238,146,8147531447709512983938379187878961602041163459101435151106563853435249,=3:458849149288958792038072118798350524070548896798699913432941879587784
+emodev:8100902940229903010080076033147913858702310386781454704764453620638192,21,4267370499730163508065790684197722845343178463626879556739974287797969,0:1559194008070478152155445790765388085122959413923185554185144471054870
+emodev:8100902940229903010080076033147913858702310386781454704764453620638192,21,4267370499730163508065790684197722845343178463626879556739974287797969,=1:1559194008070478152155445790765388085122959413923185554185144471054870
+emodev:8100902940229903010080076033147913858702310386781454704764453620638192,21,4267370499730163508065790684197722845343178463626879556739974287797969,=3:1559194008070478152155445790765388085122959413923185554185144471054870
+emodev:-67357123532607208820167588026304493165680097354954648204845001128495790423,7920,54180751808291492597692968145199206126879627571212323371773988020895279516,0:38482445641925799800186404699759520693970772165979000339200404095536700469
+emodev:-67357123532607208820167588026304493165680097354954648204845001128495790423,7920,54180751808291492597692968145199206126879627571212323371773988020895279516,=1:38482445641925799800186404699759520693970772165979000339200404095536700469
+emodev:-67357123532607208820167588026304493165680097354954648204845001128495790423,7920,54180751808291492597692968145199206126879627571212323371773988020895279516,=3:38482445641925799800186404699759520693970772165979000339200404095536700469
+emodev:21564774075573665981752322921017132462944466357361497012903828640226528286,0,15058866062409919400686067571225883598025018993264993072866008153094783713,0:1
+emodev:21564774075573665981752322921017132462944466357361497012903828640226528286,0,15058866062409919400686067571225883598025018993264993072866008153094783713,=1:1
+emodev:21564774075573665981752322921017132462944466357361497012903828640226528286,0,15058866062409919400686067571225883598025018993264993072866008153094783713,=3:1
+emodev:777842233320172590239777220834144770465433238279191907466130446509467300356226,143127,809101386778417902091877810352677182715503592735762990564598234327398914965176,0:717304943713249257110869278409054343635488519531912801196499856064635084080304
+emodev:777842233320172590239777220834144770465433238279191907466130446509467300356226,143127,809101386778417902091877810352677182715503592735762990564598234327398914965176,=1:717304943713249257110869278409054343635488519531912801196499856064635084080304
+emodev:777842233320172590239777220834144770465433238279191907466130446509467300356226,143127,809101386778417902091877810352677182715503592735762990564598234327398914965176,=3:717304943713249257110869278409054343635488519531912801196499856064635084080304
+emodev:599990501312957514402788959646093776861193105404525472532452638242572938597485,384,694164098523184164132157046027096354720108308754361750383079701345225130461743,0:552831886836151341677818629154179022877513599687843019762824346082731337442633
+emodev:599990501312957514402788959646093776861193105404525472532452638242572938597485,384,694164098523184164132157046027096354720108308754361750383079701345225130461743,=1:552831886836151341677818629154179022877513599687843019762824346082731337442633
+emodev:599990501312957514402788959646093776861193105404525472532452638242572938597485,384,694164098523184164132157046027096354720108308754361750383079701345225130461743,=3:552831886836151341677818629154179022877513599687843019762824346082731337442633
+emodev:-717387166950856039948493623727619953417006786660900853391606222188523146978954842,55,249851988347340743956951710723755778934782102893613303732727155104650554024190836,0:94917559281978557652285194564919194471255372629172461015483079456525825293407904
+emodev:-717387166950856039948493623727619953417006786660900853391606222188523146978954842,55,249851988347340743956951710723755778934782102893613303732727155104650554024190836,=1:94917559281978557652285194564919194471255372629172461015483079456525825293407904
+emodev:-717387166950856039948493623727619953417006786660900853391606222188523146978954842,55,249851988347340743956951710723755778934782102893613303732727155104650554024190836,=3:94917559281978557652285194564919194471255372629172461015483079456525825293407904
+emodev:1247108559833255131023421051224206889208437707543309847268354783435841902933995610,733,5945033847480079150451694696629025175030386955808324187702080655474460793682039951,0:552121131858054985509439507160337194912532999251631220245735338315863124161594561
+emodev:1247108559833255131023421051224206889208437707543309847268354783435841902933995610,733,5945033847480079150451694696629025175030386955808324187702080655474460793682039951,=1:552121131858054985509439507160337194912532999251631220245735338315863124161594561
+emodev:1247108559833255131023421051224206889208437707543309847268354783435841902933995610,733,5945033847480079150451694696629025175030386955808324187702080655474460793682039951,=3:552121131858054985509439507160337194912532999251631220245735338315863124161594561
+emodev:-32236099593112567386979137194422864421137881615337394730197261867346802441980921669823,5,91752956401660637629886605589653679145541869208926297196888853146097034559639778456127,0:60518806834095575644319015741820323735595936545413392902275336817607638484905412448628
+emodev:-32236099593112567386979137194422864421137881615337394730197261867346802441980921669823,5,91752956401660637629886605589653679145541869208926297196888853146097034559639778456127,=1:60518806834095575644319015741820323735595936545413392902275336817607638484905412448628
+emodev:-32236099593112567386979137194422864421137881615337394730197261867346802441980921669823,5,91752956401660637629886605589653679145541869208926297196888853146097034559639778456127,=3:60518806834095575644319015741820323735595936545413392902275336817607638484905412448628
+emodev:50271884481278417471936841270780965441117412446282412169100969024758168373693942106624,3929,81963066766847673205247669622355518222939970750639201358276824482440704767576564991009,0:62281703540827707015524754807406004815705275005421409683659540143504669055166031995074
+emodev:50271884481278417471936841270780965441117412446282412169100969024758168373693942106624,3929,81963066766847673205247669622355518222939970750639201358276824482440704767576564991009,=1:62281703540827707015524754807406004815705275005421409683659540143504669055166031995074
+emodev:50271884481278417471936841270780965441117412446282412169100969024758168373693942106624,3929,81963066766847673205247669622355518222939970750639201358276824482440704767576564991009,=3:62281703540827707015524754807406004815705275005421409683659540143504669055166031995074
+emodev:-579340159717388367484103071217417305401854676291827723561829153224200380081237995138900716,651,307750673565730651787738866338890216282311653914599395911124646576595981539992209095900511,0:151509745004628309027577206278564432986410874344501872366280516978352818925422691489195213
+emodev:-579340159717388367484103071217417305401854676291827723561829153224200380081237995138900716,651,307750673565730651787738866338890216282311653914599395911124646576595981539992209095900511,=1:151509745004628309027577206278564432986410874344501872366280516978352818925422691489195213
+emodev:-579340159717388367484103071217417305401854676291827723561829153224200380081237995138900716,651,307750673565730651787738866338890216282311653914599395911124646576595981539992209095900511,=3:151509745004628309027577206278564432986410874344501872366280516978352818925422691489195213
+emodev:-97916243956905636477652083813766624733750918729402656599354295427509394488660812811650986,0,504214226951518003387724255017508609607833311675048629650486096975331876439736067207074328,0:1
+emodev:-97916243956905636477652083813766624733750918729402656599354295427509394488660812811650986,0,504214226951518003387724255017508609607833311675048629650486096975331876439736067207074328,=1:1
+emodev:-97916243956905636477652083813766624733750918729402656599354295427509394488660812811650986,0,504214226951518003387724255017508609607833311675048629650486096975331876439736067207074328,=3:1
+emodev:3292590583724934273152632680100030114145522324231651230586226973102509131367913652288365962855,0,3489305948459500758622220373494821215068462533405866936756424017653969429333910353069394383604,0:1
+emodev:3292590583724934273152632680100030114145522324231651230586226973102509131367913652288365962855,0,3489305948459500758622220373494821215068462533405866936756424017653969429333910353069394383604,=1:1
+emodev:3292590583724934273152632680100030114145522324231651230586226973102509131367913652288365962855,0,3489305948459500758622220373494821215068462533405866936756424017653969429333910353069394383604,=3:1
+emodev:-7978102455985676350366679275953460048435607670228140092963222007703573212864449715877925597841,29856,6437496673370692769029520191499051311630305921790132367949451008467412252240244679740653218546,0:5317938765885037665302910560037583058809520625824168737742040261509540549928785850499941206729
+emodev:-7978102455985676350366679275953460048435607670228140092963222007703573212864449715877925597841,29856,6437496673370692769029520191499051311630305921790132367949451008467412252240244679740653218546,=1:5317938765885037665302910560037583058809520625824168737742040261509540549928785850499941206729
+emodev:-7978102455985676350366679275953460048435607670228140092963222007703573212864449715877925597841,29856,6437496673370692769029520191499051311630305921790132367949451008467412252240244679740653218546,=3:5317938765885037665302910560037583058809520625824168737742040261509540549928785850499941206729
+emodev:67756737479519149309169118189597305480464085950144437770651525337717619238974063965848555442893510,0,61721185386054729344028716311850202684952560017220443047936445752013986984883181511511066630902828,0:1
+emodev:67756737479519149309169118189597305480464085950144437770651525337717619238974063965848555442893510,0,61721185386054729344028716311850202684952560017220443047936445752013986984883181511511066630902828,=1:1
+emodev:67756737479519149309169118189597305480464085950144437770651525337717619238974063965848555442893510,0,61721185386054729344028716311850202684952560017220443047936445752013986984883181511511066630902828,=3:1
+emodev:13622579220271678876766048827129463577857747656710532915693612564806742487161109510958801491048115,28000,84682569215903086997370780472826384755153630829606521208326331712119423387083844442113181771232731,0:61921681237911684957734827136839012206257886339643336895704703733211281700691618371720081605408837
+emodev:13622579220271678876766048827129463577857747656710532915693612564806742487161109510958801491048115,28000,84682569215903086997370780472826384755153630829606521208326331712119423387083844442113181771232731,=1:61921681237911684957734827136839012206257886339643336895704703733211281700691618371720081605408837
+emodev:13622579220271678876766048827129463577857747656710532915693612564806742487161109510958801491048115,28000,84682569215903086997370780472826384755153630829606521208326331712119423387083844442113181771232731,=3:61921681237911684957734827136839012206257886339643336895704703733211281700691618371720081605408837
+
+# Modular exponentation with small bases
+
+emodbv:9,32,84,0:81
+emodbv:9,32,84,=2:81
+emodbv:9,32,84,=3:81
+emodbv:0,45,69,0:0
+emodbv:0,45,69,=2:0
+emodbv:0,45,69,=3:0
+emodbv:-93016,221819,301662,0:211706
+emodbv:-93016,221819,301662,=2:211706
+emodbv:-93016,221819,301662,=3:211706
+emodbv:44378,411312,93008,0:33472
+emodbv:44378,411312,93008,=2:33472
+emodbv:44378,411312,93008,=3:33472
+emodbv:70,2233634102,3286325576,0:2426711328
+emodbv:70,2233634102,3286325576,=2:2426711328
+emodbv:70,2233634102,3286325576,=3:2426711328
+emodbv:39,5533253464,1070148632,0:416533177
+emodbv:39,5533253464,1070148632,=2:416533177
+emodbv:39,5533253464,1070148632,=3:416533177
+emodbv:7482,37424954770047,16839092776977,0:7609954661820
+emodbv:7482,37424954770047,16839092776977,=2:7609954661820
+emodbv:7482,37424954770047,16839092776977,=3:7609954661820
+emodbv:75,7836789049833,57211584574690,0:32805712142475
+emodbv:75,7836789049833,57211584574690,=2:32805712142475
+emodbv:75,7836789049833,57211584574690,=3:32805712142475
+emodbv:702894,534667733161831256,166575448512340282,0:98236745124961586
+emodbv:702894,534667733161831256,166575448512340282,=2:98236745124961586
+emodbv:702894,534667733161831256,166575448512340282,=3:98236745124961586
+emodbv:16247,353576735207718451,299565526093115255,0:280933599223623558
+emodbv:16247,353576735207718451,299565526093115255,=2:280933599223623558
+emodbv:16247,353576735207718451,299565526093115255,=3:280933599223623558
+emodbv:56,6221599776451542974890,2159033904867393928929,0:837205353236184592624
+emodbv:56,6221599776451542974890,2159033904867393928929,=2:837205353236184592624
+emodbv:56,6221599776451542974890,2159033904867393928929,=3:837205353236184592624
+emodbv:35369,1839486419148755508782,5530530292436823694624,0:3355242496236254343057
+emodbv:35369,1839486419148755508782,5530530292436823694624,=2:3355242496236254343057
+emodbv:35369,1839486419148755508782,5530530292436823694624,=3:3355242496236254343057
+emodbv:-5784,43040276670536818634785876,36492887405512401054348204,0:19286493506125729203919284
+emodbv:-5784,43040276670536818634785876,36492887405512401054348204,=2:19286493506125729203919284
+emodbv:-5784,43040276670536818634785876,36492887405512401054348204,=3:19286493506125729203919284
+emodbv:0,95555903303887262362307550,46204154362123372635933612,0:0
+emodbv:0,95555903303887262362307550,46204154362123372635933612,=2:0
+emodbv:0,95555903303887262362307550,46204154362123372635933612,=3:0
+emodbv:70094,89540446737340421223177728456,835694701023829355087294263155,0:418424229988754966300052414286
+emodbv:70094,89540446737340421223177728456,835694701023829355087294263155,=2:418424229988754966300052414286
+emodbv:70094,89540446737340421223177728456,835694701023829355087294263155,=3:418424229988754966300052414286
+emodbv:-5473,886261493387307990754063500729,850132294968984927109971586336,0:19962186036319737098397980927
+emodbv:-5473,886261493387307990754063500729,850132294968984927109971586336,=2:19962186036319737098397980927
+emodbv:-5473,886261493387307990754063500729,850132294968984927109971586336,=3:19962186036319737098397980927
+emodbv:542606,7576297578502321555503921719145148,6096670046812323372237867852342682,0:6019928069694583180163173577702370
+emodbv:542606,7576297578502321555503921719145148,6096670046812323372237867852342682,=2:6019928069694583180163173577702370
+emodbv:542606,7576297578502321555503921719145148,6096670046812323372237867852342682,=3:6019928069694583180163173577702370
+emodbv:35080,873804207633443539517026163606065,7700271966945032910098505871172260,0:5423974510417358397307357591894900
+emodbv:35080,873804207633443539517026163606065,7700271966945032910098505871172260,=2:5423974510417358397307357591894900
+emodbv:35080,873804207633443539517026163606065,7700271966945032910098505871172260,=3:5423974510417358397307357591894900
+emodbv:6,73591715017125540836707619882023150680,60596719455443436752409094193881404578,0:19278231891294150546581628518996450870
+emodbv:6,73591715017125540836707619882023150680,60596719455443436752409094193881404578,=2:19278231891294150546581628518996450870
+emodbv:6,73591715017125540836707619882023150680,60596719455443436752409094193881404578,=3:19278231891294150546581628518996450870
+emodbv:235,33982097410791452776449214446635671357,51970741787875276189593310474719958253,0:12917271140684347997107415362626020816
+emodbv:235,33982097410791452776449214446635671357,51970741787875276189593310474719958253,=2:12917271140684347997107415362626020816
+emodbv:235,33982097410791452776449214446635671357,51970741787875276189593310474719958253,=3:12917271140684347997107415362626020816
+emodbv:83871,305022614904134506738511247696618513698871,318914624938137416674596881724436242382943,0:318195604484243187814770062976379619616506
+emodbv:83871,305022614904134506738511247696618513698871,318914624938137416674596881724436242382943,=2:318195604484243187814770062976379619616506
+emodbv:83871,305022614904134506738511247696618513698871,318914624938137416674596881724436242382943,=3:318195604484243187814770062976379619616506
+emodbv:0,571664949666413150109110287956385784303120,899228089361406308796439491202242113692801,0:0
+emodbv:0,571664949666413150109110287956385784303120,899228089361406308796439491202242113692801,=2:0
+emodbv:0,571664949666413150109110287956385784303120,899228089361406308796439491202242113692801,=3:0
+emodbv:23331,111442438605972376130506110244327899219912899,2237876130742811109445709826445714509994544476,0:1993464329197419695692136638851665690518853959
+emodbv:23331,111442438605972376130506110244327899219912899,2237876130742811109445709826445714509994544476,=2:1993464329197419695692136638851665690518853959
+emodbv:23331,111442438605972376130506110244327899219912899,2237876130742811109445709826445714509994544476,=3:1993464329197419695692136638851665690518853959
+emodbv:-2679,2710530788173695233378407323077034767182928186,481025428743103260720025399298938288092709373,0:154954456135957386487732495151651926343687936
+emodbv:-2679,2710530788173695233378407323077034767182928186,481025428743103260720025399298938288092709373,=2:154954456135957386487732495151651926343687936
+emodbv:-2679,2710530788173695233378407323077034767182928186,481025428743103260720025399298938288092709373,=3:154954456135957386487732495151651926343687936
+emodbv:8,66475212144802642236424417695707616156078196371461,8400624623087855337736820815095169248114548022631,0:5187964347290625676649944455881080044360235674382
+emodbv:8,66475212144802642236424417695707616156078196371461,8400624623087855337736820815095169248114548022631,=2:5187964347290625676649944455881080044360235674382
+emodbv:8,66475212144802642236424417695707616156078196371461,8400624623087855337736820815095169248114548022631,=3:5187964347290625676649944455881080044360235674382
+emodbv:9,10015499242805866671806182669824281823377004291671,1607152293205603329110861060931530603574600872624,0:322976644144573292044502952628119378896898007465
+emodbv:9,10015499242805866671806182669824281823377004291671,1607152293205603329110861060931530603574600872624,=2:322976644144573292044502952628119378896898007465
+emodbv:9,10015499242805866671806182669824281823377004291671,1607152293205603329110861060931530603574600872624,=3:322976644144573292044502952628119378896898007465
+emodbv:-94,73883264784349702632503413711514594728450092072160898,603477481125780254532680608704164997261749601100642928,0:385098763603163293508297247576178742276025427508920032
+emodbv:-94,73883264784349702632503413711514594728450092072160898,603477481125780254532680608704164997261749601100642928,=2:385098763603163293508297247576178742276025427508920032
+emodbv:-94,73883264784349702632503413711514594728450092072160898,603477481125780254532680608704164997261749601100642928,=3:385098763603163293508297247576178742276025427508920032
+emodbv:0,403018665805686013292292080405520813912760095571441443,266783579498119505177390585076061492421096855799592868,0:0
+emodbv:0,403018665805686013292292080405520813912760095571441443,266783579498119505177390585076061492421096855799592868,=2:0
+emodbv:0,403018665805686013292292080405520813912760095571441443,266783579498119505177390585076061492421096855799592868,=3:0
+emodbv:-559530,4636346354116451435163995696044394621599926066887606404471,2007044169839741253208493501852117173644320085073436239558,0:980083462330793649852651395567038357390956681750027115900
+emodbv:-559530,4636346354116451435163995696044394621599926066887606404471,2007044169839741253208493501852117173644320085073436239558,=2:980083462330793649852651395567038357390956681750027115900
+emodbv:-559530,4636346354116451435163995696044394621599926066887606404471,2007044169839741253208493501852117173644320085073436239558,=3:980083462330793649852651395567038357390956681750027115900
+emodbv:-82298,1260064618208528197738958878917070904095451052223393007675,8999159392228622915543027930093543196382148986055721139210,0:8315318460941735744654692360810076563134610768999859190038
+emodbv:-82298,1260064618208528197738958878917070904095451052223393007675,8999159392228622915543027930093543196382148986055721139210,=2:8315318460941735744654692360810076563134610768999859190038
+emodbv:-82298,1260064618208528197738958878917070904095451052223393007675,8999159392228622915543027930093543196382148986055721139210,=3:8315318460941735744654692360810076563134610768999859190038
+emodbv:-5570,31666917408019243503426904818325007415747650667716360095948214,33888176432105527291712269105001105197791973525400419521802156,0:19067105956731919771713581587977175395882533198855245354642060
+emodbv:-5570,31666917408019243503426904818325007415747650667716360095948214,33888176432105527291712269105001105197791973525400419521802156,=2:19067105956731919771713581587977175395882533198855245354642060
+emodbv:-5570,31666917408019243503426904818325007415747650667716360095948214,33888176432105527291712269105001105197791973525400419521802156,=3:19067105956731919771713581587977175395882533198855245354642060
+emodbv:-26,22007905452621388581343089554119326311972031808789454501569850,63439035351302619534702904877608466226127936133687827793089252,0:8473726082518788387163006019447427099005218230673702028073224
+emodbv:-26,22007905452621388581343089554119326311972031808789454501569850,63439035351302619534702904877608466226127936133687827793089252,=2:8473726082518788387163006019447427099005218230673702028073224
+emodbv:-26,22007905452621388581343089554119326311972031808789454501569850,63439035351302619534702904877608466226127936133687827793089252,=3:8473726082518788387163006019447427099005218230673702028073224
+emodbv:1,775918498742633740198666683324414961665313627445077186593800017785,952660786088689171372582380372342941537491408809547120368107346294,0:1
+emodbv:1,775918498742633740198666683324414961665313627445077186593800017785,952660786088689171372582380372342941537491408809547120368107346294,=2:1
+emodbv:1,775918498742633740198666683324414961665313627445077186593800017785,952660786088689171372582380372342941537491408809547120368107346294,=3:1
+emodbv:63441,721478459297998380784046348477788577160851236668812562054262272695,670208399244540961973019014052558168787791247286206733986212837117,0:211218046769494325969669872092652715825286994236558200831519171517
+emodbv:63441,721478459297998380784046348477788577160851236668812562054262272695,670208399244540961973019014052558168787791247286206733986212837117,=2:211218046769494325969669872092652715825286994236558200831519171517
+emodbv:63441,721478459297998380784046348477788577160851236668812562054262272695,670208399244540961973019014052558168787791247286206733986212837117,=3:211218046769494325969669872092652715825286994236558200831519171517
+emodbv:317,7741913193889401048695278656631180727109492306933238851468147531447709,5129839383791878789616020411634591014351511065638534352498100902940229,0:2840857949915095558231699206349834791724216125018136484978445417022859
+emodbv:317,7741913193889401048695278656631180727109492306933238851468147531447709,5129839383791878789616020411634591014351511065638534352498100902940229,=2:2840857949915095558231699206349834791724216125018136484978445417022859
+emodbv:317,7741913193889401048695278656631180727109492306933238851468147531447709,5129839383791878789616020411634591014351511065638534352498100902940229,=3:2840857949915095558231699206349834791724216125018136484978445417022859
+emodbv:0,100800760331479138587023103867814547047644536206381927221426737049973,163508065790684197722845343178463626879556739974287797969673571235326,0:0
+emodbv:0,100800760331479138587023103867814547047644536206381927221426737049973,163508065790684197722845343178463626879556739974287797969673571235326,=2:0
+emodbv:0,100800760331479138587023103867814547047644536206381927221426737049973,163508065790684197722845343178463626879556739974287797969673571235326,=3:0
+emodbv:720882,16758802630449316568009735495464820484500112849579042319792054180751808291,49259769296814519920612687962757121232337177398802089527951621564774075573,0:5513704439164313512320603722396796903350762139161644395131273954203378131
+emodbv:720882,16758802630449316568009735495464820484500112849579042319792054180751808291,49259769296814519920612687962757121232337177398802089527951621564774075573,=2:5513704439164313512320603722396796903350762139161644395131273954203378131
+emodbv:720882,16758802630449316568009735495464820484500112849579042319792054180751808291,49259769296814519920612687962757121232337177398802089527951621564774075573,=3:5513704439164313512320603722396796903350762139161644395131273954203378131
+emodbv:-65981,52322921017132462944466357361497012903828640226528286241505886606240991940,6860675712258835980250189932649930728660081530947837137778422333201725902,0:2906363080300504036446988558153247540678666818543108704882000018688053575
+emodbv:-65981,52322921017132462944466357361497012903828640226528286241505886606240991940,6860675712258835980250189932649930728660081530947837137778422333201725902,=2:2906363080300504036446988558153247540678666818543108704882000018688053575
+emodbv:-65981,52322921017132462944466357361497012903828640226528286241505886606240991940,6860675712258835980250189932649930728660081530947837137778422333201725902,=3:2906363080300504036446988558153247540678666818543108704882000018688053575
+emodbv:97,722083414477046543323827919190746613044650946730035622684143127809101386778417,902091877810352677182715503592735762990564598234327398914965176599990501312957,0:889212904562853779260747052184064517476716523608339827860458031582708193206654
+emodbv:97,722083414477046543323827919190746613044650946730035622684143127809101386778417,902091877810352677182715503592735762990564598234327398914965176599990501312957,=2:889212904562853779260747052184064517476716523608339827860458031582708193206654
+emodbv:97,722083414477046543323827919190746613044650946730035622684143127809101386778417,902091877810352677182715503592735762990564598234327398914965176599990501312957,=3:889212904562853779260747052184064517476716523608339827860458031582708193206654
+emodbv:14402,889596460937768611931054045254725324526382425729385974856938469416409852318416,413215704602709635472010830875436175038307970134522513046174307173871669508560,0:104803682559692025313965046839630608596949538962860573954122948467983495146496
+emodbv:14402,889596460937768611931054045254725324526382425729385974856938469416409852318416,413215704602709635472010830875436175038307970134522513046174307173871669508560,=2:104803682559692025313965046839630608596949538962860573954122948467983495146496
+emodbv:14402,889596460937768611931054045254725324526382425729385974856938469416409852318416,413215704602709635472010830875436175038307970134522513046174307173871669508560,=3:104803682559692025313965046839630608596949538962860573954122948467983495146496
+emodbv:99,8493623727619953417006786660900853391606222188523146978954842405502498519883473407,4395695171072375577893478210289361330373272715510465055402419083612471085598332551,0:424015515432121716805639629631123704621802071965154851362821400859180276022226483
+emodbv:99,8493623727619953417006786660900853391606222188523146978954842405502498519883473407,4395695171072375577893478210289361330373272715510465055402419083612471085598332551,=2:424015515432121716805639629631123704621802071965154851362821400859180276022226483
+emodbv:99,8493623727619953417006786660900853391606222188523146978954842405502498519883473407,4395695171072375577893478210289361330373272715510465055402419083612471085598332551,=3:424015515432121716805639629631123704621802071965154851362821400859180276022226483
+emodbv:10234,1051224206889208437707543309847268354783435841902933995610637335945033847480079150,4516946966290251750303869558083241877020806554744607936820399513223609959311256738,0:849166472390089324447217011402258926811127602345244477949055266800343927988355770
+emodbv:10234,1051224206889208437707543309847268354783435841902933995610637335945033847480079150,4516946966290251750303869558083241877020806554744607936820399513223609959311256738,=2:849166472390089324447217011402258926811127602345244477949055266800343927988355770
+emodbv:10234,1051224206889208437707543309847268354783435841902933995610637335945033847480079150,4516946966290251750303869558083241877020806554744607936820399513223609959311256738,=3:849166472390089324447217011402258926811127602345244477949055266800343927988355770
+emodbv:-97913,19442286442113788161533739473019726186734680244198092166982349591752956401660637629886,60558965367914554186920892629719688885314609703455963977845612750271884481278417471936,0:39492300709350508322185513215823770925957483374622610701455481874758748756164234825489
+emodbv:-97913,19442286442113788161533739473019726186734680244198092166982349591752956401660637629886,60558965367914554186920892629719688885314609703455963977845612750271884481278417471936,=2:39492300709350508322185513215823770925957483374622610701455481874758748756164234825489
+emodbv:-97913,19442286442113788161533739473019726186734680244198092166982349591752956401660637629886,60558965367914554186920892629719688885314609703455963977845612750271884481278417471936,=3:39492300709350508322185513215823770925957483374622610701455481874758748756164234825489
+emodbv:412707,9654411174124462824121691009690247581683736939421066245039298196306676684767320524766,96223555182229399707506392013582768244824407047675765649910095793401597173883674841030,0:45372936066320285565767345060984614982597172133924700246907679760042995966513245912459
+emodbv:412707,9654411174124462824121691009690247581683736939421066245039298196306676684767320524766,96223555182229399707506392013582768244824407047675765649910095793401597173883674841030,=2:45372936066320285565767345060984614982597172133924700246907679760042995966513245912459
+emodbv:412707,9654411174124462824121691009690247581683736939421066245039298196306676684767320524766,96223555182229399707506392013582768244824407047675765649910095793401597173883674841030,=3:45372936066320285565767345060984614982597172133924700246907679760042995966513245912459
+emodbv:12,741730540185467629182772356182915322420038008123799513890071646651307750673565730651787738,866338890216282311653914599395911124646576595981539992209095900511097916243956905636477652,0:597882447446136206020843479948282217243162285637054743586243300633734568794892620330552220
+emodbv:12,741730540185467629182772356182915322420038008123799513890071646651307750673565730651787738,866338890216282311653914599395911124646576595981539992209095900511097916243956905636477652,=2:597882447446136206020843479948282217243162285637054743586243300633734568794892620330552220
+emodbv:12,741730540185467629182772356182915322420038008123799513890071646651307750673565730651787738,866338890216282311653914599395911124646576595981539992209095900511097916243956905636477652,=3:597882447446136206020843479948282217243162285637054743586243300633734568794892620330552220
+emodbv:8,813766624733750918729402656599354295427509394488660812811650986545042142269515180033877242,550175086096078333116750486296504860969753318764397360672070743283292590583724934273152632,0:187419881697087928981580635353669700411908736518656599363509921235901203393697886905365360
+emodbv:8,813766624733750918729402656599354295427509394488660812811650986545042142269515180033877242,550175086096078333116750486296504860969753318764397360672070743283292590583724934273152632,=2:187419881697087928981580635353669700411908736518656599363509921235901203393697886905365360
+emodbv:8,813766624733750918729402656599354295427509394488660812811650986545042142269515180033877242,550175086096078333116750486296504860969753318764397360672070743283292590583724934273152632,=3:187419881697087928981580635353669700411908736518656599363509921235901203393697886905365360
+emodbv:801000,114145522324231651230586226973102509131367913652288365962855153489305948459500758622220373494,8212150684625334058669367564240176539694293339103530693943836047978102455985676350366679275953,0:7455082526360199945904164673384849878483828122749940095337812295059378328144102232203949899838
+emodbv:801000,114145522324231651230586226973102509131367913652288365962855153489305948459500758622220373494,8212150684625334058669367564240176539694293339103530693943836047978102455985676350366679275953,=2:7455082526360199945904164673384849878483828122749940095337812295059378328144102232203949899838
+emodbv:801000,114145522324231651230586226973102509131367913652288365962855153489305948459500758622220373494,8212150684625334058669367564240176539694293339103530693943836047978102455985676350366679275953,=3:7455082526360199945904164673384849878483828122749940095337812295059378328144102232203949899838
+emodbv:6004,4356076702281400929632220077035732128644497158779255978411329856643749667337069276902952019149,9051311630305921790132367949451008467412252240244679740653218546677567374795191493091691181895,0:2157703003465786984862106104496545852077633747681111082485733289488843538802921375640668056154
+emodbv:6004,4356076702281400929632220077035732128644497158779255978411329856643749667337069276902952019149,9051311630305921790132367949451008467412252240244679740653218546677567374795191493091691181895,=2:2157703003465786984862106104496545852077633747681111082485733289488843538802921375640668056154
+emodbv:6004,4356076702281400929632220077035732128644497158779255978411329856643749667337069276902952019149,9051311630305921790132367949451008467412252240244679740653218546677567374795191493091691181895,=3:2157703003465786984862106104496545852077633747681111082485733289488843538802921375640668056154
+emodbv:0,30548046408595014443777065152533771761923897406396584855544289351015617211853860547293440287163118,50202684952560017220443047936445752013986984883181511511066630902828136225792202716788767660488271,0:0
+emodbv:0,30548046408595014443777065152533771761923897406396584855544289351015617211853860547293440287163118,50202684952560017220443047936445752013986984883181511511066630902828136225792202716788767660488271,=2:0
+emodbv:0,30548046408595014443777065152533771761923897406396584855544289351015617211853860547293440287163118,50202684952560017220443047936445752013986984883181511511066630902828136225792202716788767660488271,=3:0
+emodbv:946,57785774765671053291569361256480674248716110951095880149104811531028000846825692159030869973707804,72826384755153630829606521208326331712119423387083844442113181771232731949302549335896184427699629,0:63291678821403600137229027314563244771616884878395099760855279589610716265728494065685311702593475
+emodbv:946,57785774765671053291569361256480674248716110951095880149104811531028000846825692159030869973707804,72826384755153630829606521208326331712119423387083844442113181771232731949302549335896184427699629,=2:63291678821403600137229027314563244771616884878395099760855279589610716265728494065685311702593475
+emodbv:946,57785774765671053291569361256480674248716110951095880149104811531028000846825692159030869973707804,72826384755153630829606521208326331712119423387083844442113181771232731949302549335896184427699629,=3:63291678821403600137229027314563244771616884878395099760855279589610716265728494065685311702593475

Added: polly/trunk/lib/External/isl/imath/tests/expt.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/expt.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/expt.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/expt.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,154 @@
+# Exponentiation tests
+
+exptv:25,37,0:5293955920339377119177015629247762262821197509765625
+exptv:0,5,0:0
+exptv:10,5,0:100000
+exptv:1,-1,0:$MP_RANGE
+
+expt:-1,0,0:1
+expt:-1,1,0:-1
+expt:1,1000,0:1
+expt:10,5,0:100000
+expt:10,5,=1:100000
+expt:16,2,0:256
+expt:16,-2,0:$MP_RANGE
+expt:9,114,0:6076396096647706909168138770838836135530328017648434830996201971201776350890241322455818405320466786549738961
+expt:-86,476,0:662617332696362860524067230796827820618815284881665908870595313490845384402730799402221740741547892729430741053639014274968962128613995528237195069353968871860065099842959580048834695510748974202424908905352730826874949676923389706328585129209694843598031316497606363273659659518137129001683914681077900538211178870670637655474948719356656149928857724507047191532188701873201466847680543186709462811132458087950485580962981785390351911145306017418845982546035812744084364382432586452339098567898296989357418159116783507112574874002896769395516552960579886303506398054290885811079444534809660731243125017742263312078176886504861185566719851630353701862941682854137129215263285153620969438652988427729550528379121310832057528645876351114476064584186293636620546183047738657594287749786268444920697293633564476272776432769083439149706832453778408583421346390651383448852253784001810843070684412323782386158601772005993742336
+expt:40,238,0:1951092843947495144613498268620728941092873839165606969286973099765857336762353512575191314414682481974891831950879139309654984799555178316431360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:9,761,0:1508515174935868832740908844641413400230908698282014024654729092918735474326353646362638387096847659573480147230064829611049820323852929496264239478087068540642226919569780605621815548160687919464946810325130045648382743363240874672014902866728521582870078261816669666838432797381766007612134725161586319767428484319859256110793709691241551836459283171491322903212579581783263716842956174378353601721913353516686324030063352338083503343527729254306613462747468830270057853272630516028854927235895950242106874919224742672988595490274178820331573555174825456815488479104792855190670321093410569224479462267429452231735849215995686173314732407799996091669536594590589720060331368687564979078136565140955509332862196370159944529609
+expt:97,144,0:12448864341302864356285624793135454957839907062356377399873019819913674333304037397385881749787740378047787615516124593880867160513889753519548772992938610862712907794913424958325207507075928443769586211194132774382517001523776118917770065797726717096819996931978519564039067219497326081
+expt:25,122,0:353737464016668451855824972300304366432911374927310085530570894138105520257533012294512947342224925759920017160034290220932919252862236536572027034708298742771148681640625
+expt:60,794,0:71136550947732097223049080592911024204723415862845308040389197768507697553695725763485652390828706079386079253286683076446508807986344183438029484620306186446936364042768259107355223169364392353311443322952870623266797106042061359252992933819289381215897875409197357921675407844235432207568030978595888122411284106189806970016530299277993693667005155741905298746901362592844010565441606260646610040560804127639267467909340287601194961411351728753184912061106832973826776921930054951881992593414738674333726484856598478050587647451437933451435999205268943471465348558111458293504367268910731207434743916849298071460249600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:77,531,0:53281331165657024950462633852117598693105953350592627952544005998366159699410235153744692694936336052936526071001828227496960899170842246564547035323895099116409460376033743147137379767434246644768533132833489692953086952163902134786030564190174661821206738243604741780233492232971496774706907122460906736677114596434523089857099932758137027583742465493661401573609966559340821458971797183780625449123171892261601268056518906743753652852657602059727198178329688649056198555306324682296081007850064848015655991853050839823108716425225205351719375538771216453356547403480791778096020769457018604634418744680375834513933815938889226109558955102221476562419200513206760211648237939541478854464697945059645246036255559188763813565558029966906242402351850277757180912369420149564027078823816935411313840987932608801736770538741166926728199818629844549731517199408248632186444201737705520804022670305513515110110628274842389631991655431068470554259058601937947875940196104271680934210850627
 3015769966750567573
+expt:69,147,0:2045579385385676298810517927458702060863220937986515106749791476657551971253912701625142580828008387342063850849956585037595400455275752324351745210872040235629033488870814386789439565218837255775426196335872604764004481418507627655312643367630027383681234193549436923389
+expt:63,5,0:992436543
+expt:43,146,0:30647461956799913663494655425076773992386225973903296590660647835395776515882377986142610962128804096035118305690037018948311119864211319779734143116465886493057052663022568542180068531441910862918530533350093865623799781552091321941805049
+expt:98,726,0:42670816465547700089027545025534799623353735923082560367806805507857218576869053048397927972788387247796700514869716746818222242768883525073080521670320034649452737333600525217999812915342517916940554197585677447406949836662250386940790342751019405076223947084299799717190449247084316860621930454454942835746877994794994341320619481915420016158555959850469206391032809593730204681301110268305823164008963236847894786697002352234677884564810287089803139260513245907317511454820530457763518521471814933041699298389035140716680416595394974750660564726802830919698823376730536174129138287652113550819296501609040430093119851736460435897525038441350239276925360719279672150732406962834390739312554838291986981944025275081107756163230958374187853627970323000085705413987842244614712718060342770882842970460091744741386981761830224599456289526998173654588177039706421033756105013714058731020452628580881845064028372116127957534630807712912849082748890945975230815257597533337625116364825012
 0013220501057296109952540925755870893739088626118741752210805146783700608707536622996922837160677398003341203351388553480766110431344123182677789104679858022371096216510424982048676315996005859351101823572640031789389690671319495099716878889860298319419347560159622529618640118175355266744662407331598655239886273495406443560838728384648401252398353045183922227138034113900212648350987135932227570141916304732230558988327877007227972193394243239402490072781553664
+expt:27,994,0:59646034314718684707795860305798975089440054224811115049961010537040428880706206586346034468927181842204781211608774174206323442180742185360550558533411374419982940002512008358789023501864888250264834609435133062005178896032463661068538401450904407332912807376288369626724751550470752741922772188114170690659364822093395312269725708209047927563621934373592552602729089366527805791521177027257401197493779182459764020177813402941695313902478836113785053567574673422987065836349220647090882577856401842570597181762054489077516750162096361219265425271719048293802570985790436932739411776013217045425204562536697957142155350025239672688534936888462867069739990353674525885154767844198660769982520058426763952796382185782414843322294060095188076594525193506669426467948064494734757475537674938451620215191127696405269410593093260511927328302135159762293335405804137225958273006191082809697406985133781104883850745446197806419482954054957802372362766841114033792032303667837090390634727194
 11695740144082704697603632985497552873504333474571968038639730745252032873211100978857900893481330626200727251839567315077961576806464237728134101031182507236896333266479325934856175889116335417594516961071359041380154522292684361535083826965209299951003822498563135386891475232447007531309326110170827274814394069801400172716308094800028763449103928013302738446528312264064411790429063607977721347425016445446736220565463902437544468120409
+expt:-34,885,0:-228476523750723373644687014002375633344738959573253313295673378381427602021772078020242635916606956729056926140060033073714690114938322706601446752472086204645016603045913330963730961808178207763215017501900858842569395980296056740108703232651676106742955978639790402346938757058023705396206982274162272726053788981662544438635344871901487308331092875364378228725341155111018434010367438360637105101040524061771063338296772106596332044158968115550006262659165852163296710243618168537491315057352543683129215465809356035846400682903175992116512861339446629911475952731908088842546841550719832093476305343487020461708563559436380209360381168143472508064742652734842472679645707885058211800145889276047957973692059807305288049119319173129319106681652756562743739107763982095644384826187365922752532925851190935179707337534386963062100373634441547376770817028643050332728353004280762321859734138238987031675696783935311587870039192834643563874032592612926869623391797208269743645539702
 607895028584122500698098111011232061951530722490246531280555160067707338914792416989446928511604549465504192826378832978906732786898284995067855250035120805001076275382922780012160428673191761070264969953411775690292328243025746069928396010308859738310517827535649006402912255952898688436528776249218886864180489977578374114695105630836780908831245277680459913198577305780224
+expt:68,110,0:3766867964664544159080663337184475494042561418541340945804586832720994284771961635397385875362345125057120310938269750846083952813873238584240580179827028286414766076572917365783013027168357407600410624
+expt:53,658,0:37456069079934219468874391620000868103488038030923718571429042297092069098283188210487231751831211971301972443524937789391384634222508523435271347623868487770808515675056795050753454657708068957211342117712747722932599895053542944895440401455461028556892164560389762896173926804449769534052987444835304211632750535962263499873927094746934709455960725869638832098955083340431973012642367881716359600398586463217420252202955190253759077661796400916787827208096719500540958059418505511550849029799654738509172028498289794417252557026844095399641504391493574774725475107428655884062112968594615634076397159314773290084403743835807097836916648457363836630388017843700887934048425519534178428733487788742218057053997153544322103474946702201973592271123932132082481739788606277503530407033413675625485159589004469576266615078619968684914625831368364867575659727852015978597916535099813020340558558432112668768720549693459313820227445087830632317418109805217376126969164509903209419901664126
 15155878082383699204415978877720954451681587069814429903479542778158301091332107305065103043241495237616334706497558758024048371354995778381078122856889
+expt:92,804,0:76809190104865026118996425937471494666491962292665013677111037506634632928316587134152791845696622441754099470329999892570863349141961510087171559130957244212141235654142114046711548193041770542626245401175681907220556979286714766802205429287013685598383364280671114255366161464898216480417012731105770537063614180860347614434723065188650809666790981054677983469176005546855428985530622507417334113147866128405088819863821440043860898513974841059512755959962311150648882368809830940719365612195368168520380322870454592460265543637162238033699194189403495827362189796811602192650395931994245438947935082830195295628368025006412914469289790064112044133674331753781703195159751437602637143273812423153801040843488445826137105877261110481783738813275766048390320501526094780115203628081403136506314376242060655597570261695869676295563306831059900751237283040365551877134918285346036735706211469780112063910666975118631815199104656455258172161540782339417281800834171237477400807891881568
 07592630560128265705528875621630095351201299879483799930273817796360416169388658060657506361895914025279478414056917576529844826749149254978523394656765480215719926358133890602585178838119464948003289948380599052143243657411917203711988600003537438673472852245599607482384889722702462622774797489957621592414208918554109594415643546111991744898184380453126034201383595790269274373055123173862494511611609472258838476906869425218506801608515950342031211116660445405063954103192171748610888916224658384554763772392708457944737818761788668778004849546835031715922094579082757147279920864952420663296
+expt:-93,17,0:-2912125755884410842622249251854493
+expt:83,344,0:1455002626766365151331492634356788248715003383435775455996374149087127274539469938480434554541764208550166395886013614290542493336553727055035200479566375122407588223498846894540017410056428775935861377005037728217969587830322338737768781971954310027112710091083345708154562101156949905590633490616529984721229205694585229393810736667126990248301840585766896715156041016184889232474489806021208434163212143568783993412750969879402550558174816868622343662524065027291485375058885945026037942093663550462847296831559200222610314374017319326883901944196944190346470731947264070070668533749087738060363624871768516622722491132752341069559484881101460722290741607521
+expt:37,509,0:1639372139330474505096339736526839874531950388106785764526499216811362225270703761672667866735996696543474964780972938761569608985235961843219297731833082892285640739207743839560976358344004254125552207884861967683494079795135492763316903001285669079285642352434013330494551450924529881670919372226435491663678910321572802241052671829048684593319302540499062531002552822413972447877352398056117420144161447269350831919710819792646829325266226815447766753199630288869617053962763718694151712581758666586038482541785095213523640877958314344476036711277346617174429612617143676944589174538616885971879400465341144053670575443367839317972672752212894927196448994763102499581012815364079440761668903982747115134081448923972310533501089520501466675410274312105259815806872362946932755486301682363073385077
+expt:34,19,0:125342809160496617801464152064
+expt:-76,29,0:-3496183156153757826996482351208459912924449087659442176
+expt:37,959,0:80436539855329537168897151335350871686703854822108594217396824500172856736831110893778255811142936656561456517123458506639800833364681798068758140738577654258921553545982666695068040466277077399165008841061985069975276480832959005305616134023642766149132000010260565097723291914496415642207268498387234526045181991392417708396659766456313446678708336196752318781042754594437983403111109521884965876315376114871743985835360538767425753061173957969071186403631426125431122283005278872433459702579207729093739836056232957875259345066599636513051567083042030309982662846943493843143773005584571763254985460623353143964439714666802834265136050595251737243215705415126405209912580790913722207761601864958839927002189750566315456661773644764845724408976692709518519008951767984238995452879837610497216414558505622276552190581977102855167664961076293558034715626552228852231621829683266692413657358989556243855210196526495993645382636970781706986609311779590337371360650469004190985888799864
 81831152277650601951389732469419718135458317284510180252252347215282909809244252103764833246379696609330932880474725472382498914394849425766909318546858182860618752740997875122661035517690985707005948901199463714885386589945448510035753998020104333298915321476036121567051616071951554677670098530225928071546828420949645455483886944027286648764164718652180618519663834711653112733332792953298854502679756506895010313106988391740237915628327936616978344717429852330779137901687317622168225757826112789753604087557655040173
+expt:53,855,0:18024719238727749739525445919483313820179132397627088793412502725451984940695378279438673546750025166612239273512610516827961724525198882762072448802914929186534874689268838685049338395668464648214285629458942854743809087942072596640624011936285554457003232121031929203367446328606007087882829501707445687372318602594007967315081778231244881573239906171935915143655956161425143440493226007667195047540127725460951375078510152848109086910835297918453026272054497519156136102101888168736867868647822194907272146486388416624265152334316284765111597489635974901154683366709520639989936829700879404498384693571443613183789387222654028458579806593806268491518181218800476712301946966270100813204092285152986557168694900881657470791233632087214162768980287038944834419004548322680351210051534951796722585140993240046500305409149666028347813321755225701104959869144974670164886058856826565923628643498059733335090448195444279918303399796642120257846094099858071377352515014517392246807264485
 477604806428498201472579832708245125875380579584993781814239835479412029038694921470435633141289405105409413524512605572562361133641297988371189750573248231052889827586537697292556993264681319509450424190822893352470802584486267244129501288234774550146263799764737409541494978039756256344516245332054030367728222980738023243510101784709043134443224472285495023599866477956084806532775907376656412097028192665531115092097120219791652662455717002643200873090340640713123160526016567186689389757
+expt:32,656,0:23899332854054668603966920791163936075920945113776757711939171079855779572157866608576427823806478553585621244875851663673879474135513918135281676361624470605499901687291765529228786560506720762856215506149854707206647765314425761350483339790967843102862448601023789673713992862135957596369191159666034001122376399508917278155902366471938093100634017048571608139293224193258923811457916564717994268677979104993153678112755434798004326631111563127951217944296164927675258646453834817607708598272873655003867348806464187600897862397084636697791023197400123203613441775439466755299428178865911337697007838522631214507950523847164613225281057664259321439076870365619666973382953521111912527329781381832282968266583801074630861960913214720460875892045154015467442320722419407683515607728223056040274489703618907557967033636504659000180042572766235222920653438620846783265960459417658420244844102157693945558858851587498388349795971583227222016143294592196803807023708571265297062456133953
 78176
+expt:44,825,0:70543678320941465639171168764113183245731707956724153680696119012503232979994568938153182870171192265132892417183391244580699325774049641395755023373815764670746834147613665665519056806176525028734312315018320345709631055477858069312760590005415678193732968790001107903315432836856057039773383712641415138362772555055112306159952398951923180924683802034944425519643577959828691294184968382680388500704149745349964869853665283919073840521301541696757100930760514097400098085430756305459379668530538845573143136126742088883957469570239599422120774540670812210637105159691906100796932239234831339793239181614744477759967390081531046170462366464319615105225087762594628073163388299333012506154568146007671348572879841235190180616783967541772686872719452201187155229909482696696466876891514125579891849979654348623151114178891014714521366246242697949373439020326433122742501882733596669972729131049577123612692760024337685204831642990524412827991669071996298523368869706083937145648147642
 1673214751905689846742695604260150120965796700034367974580976289127610455139192549104607458487162099297483432995551188890538592998367871918611578833922235492029074979130410421219592032895629208451572864516745372515998761341772487485436904736855847415242732131193954436562666516079556232801577061434743967882168334814393918596862293538397642429151346165775119942485356314624
+expt:59,114,0:7535799365523929401466950149815776414046724006436301251256273386014282698913901410854119082161738764751825402834444249521979494417181418024031729730875375541703751272328798861158409927866104969176716761
+expt:33,638,0:648475603635833183196469398829966467819872179533313634773199294300845287950459501715005525988291242251589147926178661960824082441163194476232580397116885117509943674289579029366937003306245475847226805096473463034937358215125841547863811379526289909390311989707533329900551425869234787887523054960552278032611552781528108935648755207909825160440738427953647870234694868460377213725626413535570112216908805974133165357493773798997957325074032229891071788781461177535131032268348271529076288914099185644193139733366057736098900551638267073002144185264974730918597301702988431169584478969558388865801487275460346465072354829295831509446111012459075308582088675497358398567086973619837648636885329011064845212317340840818123718736632174769798597171923150676024529241760831961841633158660369965791581395332178142007133509696793640532076763117981014872625633261577688978190292542653541593712317454035995088612040333001542622676149361438454964780663603604979033175966419868609
+expt:69,872,0:29950710056653639866040347513592954608907832187759095021784612336213340883909743941015111690452867673342534673834960600259673961740938823369536279442812481113707789275256589878997231276618632636210489615929064857400027555434720369902556432133478971302553689173725290340815598949062749239632058821352962601488612707115779689919582783658366139458929359238601369623679788087432179938746909197524719589777317181141198765254386641701187353660512871784711559256412459533781485842843404652110331152933616653843115472865088192382607300085255939568539834001519100403938776165952337332146706473461537817329969120309309517770547565346056282486046731066492332789904059680738904349305243649494763250736765491708310216396673397796961838301667209428954933817477191941146364618594356436871426698169064040813675818513426197050972194802492745959927175153699196273914186935407179377493000883694252000018528388345695513167889176432751477073481242404466807236118127264128971920247017078705326478921858295
 937254808875182604664522156032745827731392987081529736044441817762936554493023891039839715605648021019219907116643520667553628457465780133403776577685023637262452859732368262675698820414066865949360110605575303893868842664652278685058236518116527393248213186175036314144344761002775344535262642684517202791126837476442938864508396830200526809879345482138492481769343790209140327431667550761817827241581355415614928705123841250085260545474358015032657030444618098608485724932887367556645547344897117535819883458173888231937264034262930323293309593162187140783379967834211500900425793093911669240962055595069032779064523361
+expt:-35,560,0:4765460083484463473472807029671198741039814209947733085375343877805519722128264213906493004712395811794836067456926301347831701213543102558807372013840371317686389493491044956157976970854534780866809198779109650495115701056756779233669845873333611352227016172179141127201204621485258250872410797565587431587955801098712622722961241140244408879022252575756465947941316439513115927707432620645580331357844859947529159485059102032289565818525572625258477572647406049297215450764812141735725360033399668564250475303073470958824427283582477027047896762000913374878650247253682919902323190143426951007619514663885034098702528525398380830769050070744862297092823136092265705202572748338959960458521661389246148014773201598614888333659845567286582320269709906762495527111679682357140289756441194587185256840255908734955659782455404151202404960940839373506605625152587890625
+expt:-83,209,0:-122270392573975557137544098494603104038431911133401401060669780228862020091902727664948350712829411551252088259762269665003646460255858818493536471916081519810436077327712541465284264947694222413222906768064481479603637285266239005383584918898692141414316852928726367305370720092433674542731019975979821342341530442634729485864001750080837642935553282153040722532849483710322964546566862518809499408403
+expt:-22,544,0:18964367700820944190420983771842117471035813402172302356001324232625456871631696158159426747244273988396896874782255417862295115980915085588836421854267161890941876064963407590082206716515749082957670650572915503706055302390446576711188138153431530926911613355471966093726010812009574536833618487020923293412479710272640024885745749390406182848296906282562712038022234856787439331540733410267670953621778020862196051822262364620284766229990123269618359711309083829625146905646383609813594662427186141810814135462546643373090731265237443450146344536874441550683786161973931814080708597655835455648574641882644636540462283387226460671638812957375987034299333511378035037854459892174703913394380151030879671916383365880966083883565056
+expt:55,53,0:173469266931818817701197572759460512158186359368276122994156906997886835597455501556396484375
+expt:56,7,0:1727094849536
+expt:69,511,0:4486269579432801228328894978520612039865782962773314299890064827550076871686539386493998487559513347930912978842976457609693197201213966463505628022312395013622414842679517721662844319556038654381323108565877674965192437982575193911756281655521858715295957459295213878788866632588753200138937292160832095681182024559479348223221677348390842846953123958441380139228198612700886931654375724810762399664286697632157511028362743434949776821972216621014709224808699213105247588616225388811148034573781049594047599184470666181439258133413347363982316136095491031694475463436444214376593921337732387516213520549630132463991049105936530704212604782416902497080757979392934118897752584527916561354795284032980721598161111294569421622420394749960961723356836189382523894823797755998521714994563261231632958790842100581461483738927484818446238271808447886746812572795337464271466846423907255769829987902959874517226021350215314613561013455027818736269
+expt:65,627,0:49736430683573875836920381692958756362148490867030846488150861100012039721017155281813350558860097228372250421703829926761087071228185752101153965120247671011266585143827440531111832975986430653020646407688159023770255906611510082389703163408608248417173323157934062924259953776584391936237719775095715040916490500988963799797363300226272708946621441154056343987365564756235318157597735012222603421797108181350499812579193112073461567420681383555394897110856265194490379718727850435984214855908657688551233522074730446060820045062483254339327030919276136800985092389382823088836235674891175057437792790125169082223829799457171478663199351714567516384174200946864493343228327828865889806181471743324127603997183916370709013474001688511545507831992991998443644869675839504754534449482475845122673893768259538519787121090191258765224195589613459313293055853533056236994966911249920787907377999177425821949599958036703956362658605620530627665885688652428067603680052983150782684175262925
 8128889348309920708180393144270583624503924679141781718886992556665276474942605349507318130943424722182510632471387490571856915266835130751132965087890625
+expt:46,193,0:817074232257484121156770823318605146696751569369000241039998457282648867989095210690478016388511247325018574872571127938218392125122241277384005423186652367061816702091193768108652663491211481548491110769652180143820817287796926886145903321477727282551759124806922035803851540296187694499862514735119610739703337122267136
+expt:35,224,0:7434331703617558866735418205564382401519158226603733006962337038114968755942018524978551854012503800960010205708607955416310926336526408147412201804428417291385136369283229527393145734163012864208910675715691737778124973593953966099385511183284037573029373908498077607797410012638709522747893758502294434854784643817993128322996199131011962890625
+expt:48,871,0:22967713077851089979962752816944037423554133752743285100332453155256213901746965012588854814153496788047719283421755378743240744561353738527060846072013244691632331454825966860383506704270367412476169329723550150544334557479868150707611386074271913480868685704583507388311957040103570986243950274093870965101811019592308016671750830368506377541193394825910996323726727430601388827682235995882133962642208647034882194660557605609166410009443922971336206175888079285550122934495842777639049644883955706084158401375733732515235557266034434411130682359062948488087102126746980534415858030962527165289066109612582083816978054960152116114341366960395635510829042598507874942005596017746165265099763570609218830506587471591517147046414356078997265841015801542439832563043785085924214079735604689956383077863714507393845294366533471013519552393496629081738286052978404479114819410923398618632392870904447459598854026937975655214453669491119278111715167473979146563489383744077303947899150048
 48099910670723354943700564628811075303193718039885360453078287438644715151039299030827041903587917146772156422724773803085293734569147130667846393861058073699252566570823424630289221233864648893789083533315907406376875479011330114253420148543906354793351474113233267966052291368733321678620499879469220151506192717633536571962409876554555026897490062209992621985629094620892105629420732687045223957170224155835158216412193474005114831859911410553422254858147750406913717620915044352
+expt:-36,518,0:146115200201244140508535808225340127069092033074086594939641038813380464643092784368499957960397457415719662913975450241240449832879511228597374618467828990096974163693493678321796688824401816250266725231269351174696889365960762080267621636961848851793903147492257687807404324628050042266187673582798121678172191086987308854792095986157320245166750739737004704454814011348168427466038007182398317491734265151076778063010496132619211679988260689473089297585811096036931998406782027461402044049893679481715416361137493463388085294521529831982907701884889345802533151813498254699533482401990075682782757616061340632427940899702653394635849940302575034960855494543054252959646383879992036574182030574286127878688271055584323109202843000534198573252028967226364808637164514811988498672481692393863899485418029056
+expt:67,225,0:735920003111339161159356395080570801473725293860740494275221824045023812579963935301031775447575688346607267267532812956137018229766093126468162396242424350409934923304882749620115802577608721780903966951407943056069309235411902308234969497397301699503940488310770219419812977280307849553181552764429270926502167344901946040611637758836796263098836023546748650013560091709744036462304218800125741698559917914307
+expt:64,327,0:417687513717921146683814441049501323149276759827878850220310682498444752633939174795763205590085370174509431176916209651043434482148970466887815330179965962230671681555803952508317812856112304403464539027712767146228053984109968456131599036017965241520523692299911631594821772907828969071619810063458617810626197420731690747206373943510385502671614727661759398749224149762165354813028102550602008280537871902180618847076481978941607093146933705617051198474299205992992784680935699867987139285893610877812099445086372781691711812234396546078333906858033970549278924593901475494268981324283904
+expt:-25,467,0:-68862700495331938784380419966649877120052824256986622780279879321123463371356437053662605722822371713113741286131261775228105217869324551668789632411755509078456849695493437707718952335537901163716308200277822404533843040793058284766310091608343833157319217838813156052838258955825903648017660766106461430902101129851205246720686051369993734795826264711765354552138512394382816264477130422900505062094863105482712026465196187406241972801187592058303442054845271865009183194933559721460674706658198949275466978787964466683095692914947643154576581856285051087744587327756364233631868758575460879749512993364615070536471908013709253282286226749420166015625
+expt:39,139,0:143873356853696095816280231561762895966095121358512894018038780434656905244853021253466390417066964861759354168210279589225963338479315659197113508775296585740367513592599261280433915157811377734958643545758755017210195959
+expt:-95,925,0:-247933317851371692765238123220353261074803765143732218785336375547364098379952983086176914411708967965243034975624089734549054262155405601872988521853631418092306768960388547432760579266561975163002729996245381862957127425938796307154036020276283894081669921750185924525104091927547088831951444593347428073211061542081598903847868922087058124406471582647813289892107277092495163694211929855009513467354559044835615466736137087947544617589164470286717500588970895846757222008275492885619438633488692498481179512599142893182301567662753282826824205385088400850355763371781678525389031580015072637605912123616365008472820886799996936155624310901771575510951295719809269053623900174867256402312047226014214451002303098027112553312370656182542716538763092449820889312056658510682841044062831350452293919927832336800994362138064805630261807651118108456301725299789286301137388212766815512960048788081683942442538085959986120065061285006871234949930940185524537103913351720159010805686696
 397758933127125408357428549627886466305653330611608087733791050176139563443301008883800301224683395958487326723987984535755499835378139919056198037756593511533680696923763042182818051706007416822608172896694323975433662457082439992053758519686924061393975580909143061424199971052081917912118305230171515641167651175575831760969677740062001963108837109680812905974982663520916997121589375625626487587266051342244289361033565546995111061042957242305246986582855170773641851842228652472157775674690273006693174629830847980593151580935023679044298283432329850647778394157726704922914014083180482909180414233817825446242940819724654162541194190922934651789175392031213637280829578333494425326947316977013855379710169610940508930766848830071334425047278453644935556250177705704902919191612346964146136409193037371777312838361240210360847413539886474609375
+expt:10,790,0:10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:38,727,0:31818136484526667329393903458070058661544032095103759269343067625880801794442445288752022921352915614765215254866022901522293986157933835955901830010263975456093709270760165538781164765761578301505207111853107477846805545219417066366242044746486205587246008879337432222958246408994607588729929419381754031400877952786712662718684107513346762125841881793594975154572942887393631684777205496110033327162144196388622205041738188584056370908935740213565037452010669068505874273568266816589018693196015014669445279503604428939486865325402001808265067648421833847901347719191469117758419812335763199279991281857307210867042667874416204182044035413932273656592263931689063468649496180200337949623797029725765934481983596992157813252976455476477538796476520198994041120208022672561376586456354362284193106103468666025817831670225983070572506496008672054958259166114653243447023921107497821482378025229424089674542070747076846754123903399036827163463140168419452033558979355692485868894421538
 8612471082194103983918698849904549069496888168308090987990818992745725204687937832492824270761610420142018658784694019990897837283216723902382526473775384524270600192
+expt:34,140,0:25529857218193114702174428995046692565363901687129767356632099628880917562050351316339403612051006254976853376622453913126272976393819424111873308895894292132165245320628698829331239739743398255119320169479694974976
+expt:16,677,0:154606681340974124033724916902627302485363041461934511562903250082108656614988464109648607664350683544053521938530767427600678633466981349875552123311129851630541427823062009528531348391461351902236714300408426870798081310080290256564473876678342716043349504953916566734770683646870083782168391645037091096887725074202784437995895234871118748161377827084898726055250090503083390633622079852383302615813886977424887371916745952542456924382093237294285328320534432277883419048461987671479977721049775052451336009020607051890596444709721396693315217517965349881355454288834865724272352477664124571092063711425076519590380710563089443910597712561034332057450154631167542515719607903185440744035174760067913386635899419010434568177660006643202632247398908883971060098166563478386618325197936106985114484308324182451552256
+expt:6,706,0:2370187868170736180128996880721994304027981016428826558124299374475962263011616081209558299337721916323935274576896010123644085589608182399969109349184244152181717235854411892769936008301419019510706362282451476374286734568331276868548412899353395251910059734878220922682256862053827867397853562809960786231614060068494140882400067369125402792475819991480014501511652656632709028304308993356905586688240373617002392227009641266162761580915216325822191118000345304381153590367158129348967240326861414168892378280984649126875465847201669629322152902656
+expt:76,281,0:3225666254982005051650393297063271441718814825117776170427014225270006782094402082487845256842905212014111773807699305585198980793893448295836068068070917535721168698915088215578832824619604662314479653278742492907609252295864963415964828492105414048009356278895083198343094504871689181249621303435108028838697311751040340640118912946160635394223543123655902100316582935791118589542551193090214863975492460201159924354445816812213366018820916069793903958454530414527672845513966606441240056930757447014687133057326317955318808576
+expt:18,645,0:447471924335366323510556443313429700068812234629235460450763927673222040496888107200760252341703827945191621326306131795482065495578664462850472512309208303012474749490243865165651244373346115911654861626284849310331418035860337441989794201851669712221122090746182713388579296175033571904584078117965994933295275297103840168214754293386003180820988449264532865805743450873842642690490009197041409759427844949926369573051943199612022394939265067082007558614061463253995880975471188662315261624151062500359331883381108257415114898922045511558749525591359567772810243728526346583785738997208574199792837718461074881349077212584333624940968146337548498271397497840948183881043905337007166709139932188874261432029055567751709278200083034120925981318112036767874722249963589907141208823123050935466250723940859117568
+expt:38,388,0:9037233162685752053376455537502721342270736042628911593411187820255850239811996204786955561847703657226822474981226433833893660651795689900570630384290367549695011356487125952090574619505343150852674019087633094038448212974827153618462678721327783567647950749746305048046039645769130932898726170627803026748555303885698486663393441172336532741462629794066215797431699115607727238433090103791079601594737166721617874568124700807143370244859773481280231903946961271883712351477922567791456197385467880154554338880438639750996366163411447302912395804684732748389562157940271392193893922966877712008059498487345053696
+expt:-53,961,0:-106932737836007343163157144800415352213666263910706521694811022685373078946406016903974776962587497425621958322425526466131891804494136358413767943262179296991394953160291261126101993454612309848833467834558947450729182341427563241235535039132167982724046888021231853650911197180749250498822339278644360653524417953233045954421447019515166857573971820210339507719251914511619427763197332129245879172858710426009509915642792365048122658807518157303598116936310834524155930257078233133973914673581906507832323785704547410330687724200534913426107761023902176480202277622932178889657618405338470998867235141685151839756985705607000463914740308604442560746994452986153816498142623360453931107714261315198425562723427790163812987428692047225234640175935595626436223269567567878680987477744543893490579625603514457168340352622145686877121334504049315617265758400167543453359684168954375331331067846928563149260565885993545219914028330785636954581164056680543384389281497865282362406971146
 27604940900558577671850669754855161031297481210200709336712927075772035987106414260818355636404688451829315745413124591033509314578360848228738843568098733649384111596453174139763494748428119399833236094765497395040014927396796803419365269517770431524291886017302139482314655716680780294886334131069691255122316199720460643469796601064562003254702066340683252320430491769624200733429385588367602550126577348991899954540173131577135256775953664267528916851026738118382069532086600634832714152507186748303140799773366399952508384413524462895427617680029976682845372011808593897598687010617459593771185880907170544507963089979836763018697440064683745136860496786467398309247801653
+expt:24,659,0:3624167720890114802953487528882213552899975941370552554329513099376544209818189786714454437032689083823830559210703982255340689476005362403899468531020537380006871571749241446843383626812449117417305212547159344386130625689077819341774113065166198322275559097572679481175645104461252543777972030011842688825307404880548921803031127032140294965934932124130451113999567382233597289101129667669422461740167339579466317525327207235602937780467185586995750085737222095672175124755623264554299753026627050426905461119988938722765511047677254959618655219659560371687805940337041876822078905563120206071769003516902911102160952293062550519277843309757303919027154659813054662466523344826296354696819676501832559230684594091362492325587744451955871184496572010101281716464201362384124303957980156819470050845018195253142021574427135662512522551131249157276857182203346963051964089533177481641786738454705685271070900224
+expt:24,87,0:1197782680101993558280692226488373902822663746844330952273499589865047835820100735571943168026820232018026475094146023424
+expt:74,900,0:20349219569538563781103503860472059114055251378894779607095656758198473679247173124969117221814885502108202697070499636377314234607434913542513596335768416983904630427471833544053973784542670816690715588241610346797977996595024899145137907244489339148054402312559157824990836514389493298627925119520177168022726076394879235293660324633031975557162281051584641283341661021594337139691254938550541590061263177164929409225213623115375892626968344810131578024410665748138027880140409834970483446224241423384854807478203434154181497742130940416643906421772435248069542678115749738308280126784809197266805561559247182002831403821461166455927046163856296208371670815878971572586467455545142578173671784233675100097018743503096627873470939213123466857214676679131605189606163726689936468254214627190129628515701981670237254909654902210743324192086623803120669828895822120221863201602421008246706937647549904252731781211457064280322486630266655437200047182390301524547109047270764147669305630
 2565407925873424770841334676265472397398045286273466791200069893478024154625862765074269711308789130828925453589264234500803624442724824603006351547935458354176575577193029177679995128433886548139638707554538291806471117578045308611020975110487218424109419478440720096710842152057246110025136351560085959690150206324456752232548848972311293881638155478974286423259965771742724362278920613669975929606425566174524456931028511307439225074591462541836290927880691511343917965103496059384368500739378244369199231681115377111475866919320958869237569684233879998976599199774623618592008415441793489599256106350578620210330523214745293501592975212532951752926208891738168918126903740755841015125828096229376
+expt:69,543,0:31264844307848476829588881559884571193976866625729143388851331275795504936802016069863021423955107232675099979208144798446879228178436658496148661728581764869036481843097900714788094783289658937474260376211179054641074428550406812441281054739201213134675669815146341780712111273134772940326098445442038488345835819599816697949474847867061586998594723205276205659294379446327619120202560819077469845299316899900815680761182072745815656633524712461006631085824975356603878434149406208102524886941766080175114708417343463518871972544249000657220211371637542078106882273905714181267729981508716259632254564070349292969363378384545849500492255798327769386098405662433677603439897030186044046826592369203830213180266087413016082377732152910080773418336527160381520148361947883717640560183223731654057830627637645869690271139465275082178215397072697723064923736370248902644530222204264263291260045403891018638236870589434387725893159320063531020040511940740512053521077127479285491025187670
 4104130656951309
+expt:54,530,0:1474662736655096656312338279909177255103797074286295793375027509375168436887287143309336449315957822362332074972461382683286797326877474651509739917544753283401205851132747553963526978426226509486446008694568119578399112394135310582133814792181430889458385225614364665191714345684166126923640114344412210292872490366419258147481273591304234282967518734863233094427554073982927115901949385739053040841288630681194000841739865889168738376527086934295573433603264828521334566838823869117642465232442629165125207009991732054135918621566022150672289445131265256648929940581735965044254187533327954696081027388229809762269205140612326771928146305517366531304549928582772855377825128227036208742669924062385323267632632943920240050640881476505929970785291909572050487719596150442436573679196485824822432870194747280187996123290839971281376461049282852724465409463771310117744414420026630389950888196241467693900151918455422976
+expt:-84,689,0:-673640355906192963680854382395597279844991495307708500762664884953750280820203051032786298142078133894280971340126666823703549559943495473379620456496637792111780395798111098844210312668985085973564668031838744003567469055747069065192031462953751775303646522049111090958707099958568715666445558819096127800586726116121938372786122995565072105666246516054767846555535819145164971484723840655291769178603047752590255749910890559652661832177657587633043896917516743806552357328358607488168344891668330944104480564369749820890670196494165679972464070728580289276173364888339312490946125601330630747303595303211714451602985604824640650790788957226193419801364185053958966373216314087383429341884277698769522842899547363770116372724893917923171530322741674875748776826251410886127808937300207685295104886265377799994629948453289346468117865398420831689205702265516443957514776123773586799797709730156072453168535652382546461520516180270928971757408912398951511864855349540254511900269624
 608773339111608340753334445558782955747228498729808997160178550956563569619227991188807243565793371441378712685201693989991158958417406905444641725997669829449050156320054612300296488530139587379779862430775560465112395949278438701569138898951204188270163608488455419654051297485964746817157884159015683507047747566104920764542724284450774974464
+expt:75,389,0:2505136873002946052821571944823592082408787982442343539331511593683631375266061611945471197761357031711510886915023731134485877973866520759948988373363766768657863172035979520149693975667330757807327190596028499425293356360109900636077772084412582887566894237468021689121483843531949402500679864184300241610176967959666214567894484564567187709777650474627724716339736193918464027876178424957702442801379144695328707996397566477572403174056763614383402310541133628718945533392880172251145025200868578667966567102968410404698307362393252463909620132842830908725719886487634875664806284931154944418880613973079280757557147546572939584559289443428088245026515302516929139885052576138027479661467278315711837421986274421215057373046875
+expt:-90,493,0:-2764121656403808255688998318308448927779841418065114299643004937365951143205621653706679499387531179825563949289390297858821486365687544518614573344000251044963118567564039833580386521905044421727153991835591278223063849704280112286033144210330626593002183744292468432067084387118208158609151278745306808847873085867331739532972963860539108442723664744816240576949951467742831617638950862455974397049424866492109130205243025439534284350885748646940037382914614547509931290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:-78,713,0:-115731536307359192637735081399829109511702293973922696694208047458262444229652160307279087329855878256079999392518677233048314972657057388874094275182501289421919041337127404591027574520060185351444059593154392195135354268588962536879418312873113711549229994647861923000955099677819115616815194464713534830563588649882898053840400195424586032548275013843268241516993330630236304363211493713517911756737817101493890807716278347242379720375897560983549657660651681988416735332099874519575576530792228244128002461198707035814595388684169319814963566786245098551322585402939881500335265639906067916278437416968431351004007211662828198106584287898060279705437441896284017744946256629249246220165360343009335114244569954394057846850014421787925696186369699659423147781488451057285691394827566399868414895988087540099866995327706689353227627368171888882696031349643682455531264058160696858927471245322701673243300242916477186602464825933213315337095950543131154067825494224012789649177821
 755061866161853106394589673669448275431723352429590524472448401745233005597262909298660312513585040969384431420061687766818410927875672704386212307596396632002473179981323601609734932089290982557135462892951962999979904301332318424478936510361126749344194878185769161091829612201395286090063520676684836034985334594621505414563276756705579096792040160061812562668290048
+expt:36,763,0:28761271744150125293823536499507698991225856783519430550386422290581765445349139855877045679884256340387643302349860717423408660466273888537844983421154270898297819621618481393960053073461621597057945103134542861929155425439511922482915004986406109208279995557336013360321952159532686469502179916868456201385224937699262387334311811285568611508880868727922209385833609295599895087316746405279768080199226379731030035679739121628220304717564992496814617295391971455743208697636243064036334516455550084947837261045979462306376043611616630846035626954372712293969830597309306207930897707084385073206228424002307946516486044181781580450932828511842783780345711976435913886508435158380628910735004174308326505733437094608890606415434459197530296789996769734434956159293879017371850730403978139880508653864998298919448701815566250470276895890212961687872029479567727081744555806179540217472652102209010240166810203165470276653135173954893389977252467285678408651243660212247705553207888528
 8888908773574437636605795708667526674002708829716332805686493462673251888541522849276838867497234297868970484972490798084656418668432596022103085029156910177825279909646274306163059443534849729765631328256
+expt:47,567,0:1200840839795357756556171793866035488669397069402218058853429523017606108853866073051675237735344222717110142579489091060363324010183030955999583202587790744873920391925268687014453103791428866488369403851229457767518484585400595793732678736929295286963479405802380386638374173162627363885156520588965951827128250889143941188182953700926722256155063001822289750113998809814892368365148536721743814094413016337848688568918084494871619775117616358924448269763664022118923055017911137842861355188743612895261789827872451309409128169082116168520009588315723475618309774431818335253416491565575448829636518484518313005184981691618323760943375615590224232297887531959092930319995333870473790498756459817363196667267350757707139114347799391414825307971212091044223074718730556986735254848581373154216006935257074685468225843364862663458199989272421190309964881842705492582909183953774649449964290445535763582719721041629607601034000766219103889698770634063
+expt:93,245,0:189811445138907350552800803028132318270856486385053418037712749975151905680839772940450886299589953341083999271531699036629608182153885935579378849451189841246877163907007586748371382526385877632296297367806278260073619502837087612560855634258114918915142457424551221666268613973872509210548656938814203992202491112249204302074777529915290725274509877730873272245110513173712234923547513758360328049613739612358250332564697958770448525150872819149530642122991079434707200113667499693
+expt:-32,412,0:132370456868089885903728134916792123229979044535154622595605894871140987448802881098535736981597853547268988767936094287847913714280410812805481072174892167662104073696464879991808809985596015029436652086821140759661740927560170521238888834410398394247502421409940705455667510851752205552056534626811618859097761109564081530555125656725768476650930897040696615149886691980619883285333853446759459196371669470109465000830819767736722846319827541624437545423803544499106306804575519579034243488673510700931803310410369834741948404811173882422130791081531135326386594346734508460627224488365883999000804776390900106160766976
+expt:-73,370,0:268817937446766145442198106557555707299852322454026359428476916174845729180692785461163460485079723744959939462749245845895687904735816865076794263717604966012182689168095690958838217033687276040045060280067207626046312195168080651837761881395764886113963753760834412127698107460752445557996802419849779908408253837884316512634805178240609167419868913614668320759158141050801534936091723675844304423297869129029497377604564133226027972677630729381553858132072499006005550335236095584481554598465568525006973584347149020417329885051185116957434174133558557099710477806848859002101511273766789849989896446599654420469118962896980442098745167512954118478569833907613848252608011717544208148049
+expt:-65,904,0:7476088006612927635813859446573471148405722216005428337873036043231186079958168234655128261355783807158721704379260915957758217822077621867500440560206384169070769533159985551483020985475710683700979236907363112033644990047101957273046170714199216404483780160537007038623527166449258864160198748783512961234393617386826793415081976514354630915756963837537486398859606568067746395464131895813501401617041983662268869523438391204770495826612433408765458410620435663877807032464442529968477115921940103577390216858052825708753864587656082968468616911026081653819514030331916018123044661418565642911025530870993821616297682244798142168034872991984538769820084587324504721191662886576517902618307361704402178724708336420139149948284282543262975792304028749420427332919952946188081580583790225269482964488371646996041495410496609499748805494361565442458937572152995474884127357284721870748060112844298373068726360209939266659158366899951921314063488385052535648321076683428148126105842193
 642286024992930678285755041759862538217409572268726649499499606980773383704800598813078039204400082630771801675842668399057762298657807788837860460553823914353025003459058307226171183437694740812857306950156717503856430459650244670803765893833707297125156273455126961026717976027495374263765611273780285988547067568437963799276682277771865186868699849332832741068240987335316519864763484922262355869276408357104152723004824262877136699430206518871186162960291243767646620145129860636993132567141351134152092406933156142883106133693959341914156343195330930009161411582963602590356021133287170265873006021777183311414517741244623039165162481367588043212890625
+expt:-77,614,0:2019785527067220859016075096184821912149421106403027443543560963240192036701879476616954690218222713063782827876839369054281035769658427703648498436632136421739556912595801858063198011831673005695866824564211542399160220651543556138188133469744318628351948574415103501052771273393981204066697612765091526265490864745203168780093996025480290335505689022134191478915929217289966800333369370418943444639005411560553516922153999320601289370932595922673608497374963224036658222600028845023713848177941244589411074334426669985928674891448116003285619161392614412835348838786861689490408617856711975955518135283909499974832312293000442708315178452215588031532966458821114754177230599064225634988092966765366270357352136983827262519338412138264927508379009517645365508020391394723293691499336705517066728129446273985998316873616836259122863394701325807912500191267168031985999081769304410020219207253073778474082824985837553109700468359743907719360064109613799688571311209634969765328990761
 517943042264537196838333401400347380897531424713195839839974898196239469825106641941501788961002992626402375484540632168133513967413294827065585616353005356965040287767941447609
+expt:-51,351,0:-227578803811760559923803665892351520428370789673508990418850061972740388632750522239984381328651663024374140778482561178630115570070474657027787117315641203458108979183298782364210915367865734034950589483411688132192087107896659215307961790261180554632888410345697285434656919490027197985190413884000757019718417174783272092501346827675850086279238576158406359659768393692045443493046761068561458216727137559396464882832268384099230639577378336557744586454311460874543212467858982205362934063365853125812601286856625659044169653638370861329579070059094709483721882329882116015560878826102047594205051
+expt:50,702,0:47527289157378995587876810145877577731621780159337975811043651439146356231936805088930037426315546580065265737582454716869456561094715587588615614596313199454696177025793364822808942384619882008554402956376005194359554004974096403788137885595666449606725010563408965535017560520176300458833774557317910487124563377753556232426423122662213885097303501569798166547963265331566412324291699762962584993997746712370064075751466905079402279342701902764578049398469516972909332253038883209228515625000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:99,984,0:50702746367732423332636756046707088578844764784173362783707521133315788404642161576107293454340562078957046303833670333713130937649400178138638781061468425602312597594693701873663307101648324074767020103581094560099128401539216160840172463185716103882966689828690031541684807314202742848158232180498584873013282070399063315854921210409313246152527668347143019550364225837781560926140640093081116049657971469048051468284711694257785789178809823941465962040360930016157617452358728751181336693124773903638007273836503394835409596627165112284850875254019710400215921524572141759487839278218635745589782578579334381032101526933997551326789078325869307607100354120311604173747476470292725643886125380388270758769897729363768023262199885056661555947313285025375746755494964841587184402442187978403892800295699470235365305791026570731207454053082865363542424265608839239142648022105330036603608639151764223209401458833898013848306012540918241308571343492002358749458954575469142998610765627
 649222413431262464681890620336354859534385697259957037363331495002282308313059575072371143057132684161422385180562511230179934391119387461580548233050228505428143177483520819923735804035411728110201914987438877780430590906308303881797836439366427239746559919144471214829376603306425594428226006996275012485608462520827573208905537492316802360406651053484551978898843772619804303428095512709190321751942504748924572861274319455120692685486947434437367729541467272766686966807916370179754298758691241170194777607607571459715789461966313236323523592837374223651504636299665197397806178032081657083412157743291936555271637270327920149177481942718892398679774780630393442679911779866113264527251757137767743475728830777662545861851530110286521972777533327238249737517010066472027602218338978796182855291347346819511885654909739106341730048204503382676292182395762019301010339302187086865618764387685077382309395957419707422191992883094903391508671890404797538764337688679015997252261601
+expt:52,827,0:13638455342032756029457150204401127341016540020354080921389949481579652181525972933225525160135411023390423959901765961439279248015848521826944944021744691464763657082539048546317544234561842139555580637957895713394883719391503887097708323261232933821993217439311813405671970609099308162210667289099327409813230589764988610292858893674172183246743946349484772943042974432880757973739084167294969017340187736697890617076657901162230521315386939725619392266586461325035817840895671458661854490118398272336508664074256017930378322630179892772084299578750800136541955403293479141315266424391388391149743677536374772001903292823102641135953969948053613884946286824313217482176408016602955240278062082037707286404625878235794759865498784512219988895149221780159430536398211293156541941743364760916852090545362800603609260595077893756553839259109193288847559375801986223481992810359396336126395711600573969420030350481913234285515214663831287248838576292811003367917230160908941816927689135
 07036769585784474370724499814943464300066137630528362913596888302207349032278219095928598441501164781762405564581223661028609149292490970074970826464288906555662494076317777084113019235504450774633168894206571329889041276981381226535278534026720907837639336650956477462141594816136215684669130211088491324847506030723793623545095412834551391863147335556256713198925300756827943629425257037444345305406856996887201268436359318843454128128
+expt:60,323,0:22021853740468578834412999517383915986003725826542069182383222392560149753844176723050212105982537239537599021478108969602682255828632115769764860327553473474873742876444567203370333512921531141121798618506475910567199986084415121901524096659710646681600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:93,407,0:1487853124884939684161385095260700523967859232818286064937128697770803227477244897265636431308165638318966698855220495473642835305695739102629480041222137050463066756784476730673688602838369260908469031821258574541365094727586343393304192201159344658073883254741254481946525006070001016365758933994228518537153685742527173077615516552516989509505043555164058392121782339357054879545731381596514378851078834808332428961106140341211035824086439359162868820393089217972263771995780773037041591155928597930802603797367287480285258739006095757736651824883846891644962424204439039748118255361764570889647940764521065367186406409883179355871269579713473352431638000331921603972636225043550734332376892148456648021902107583989118652297791718607641268173465287735838369363888845836639239193661056146350176700757
+expt:40,532,0:1976584504954205257348587370301926826655826657852950374579114824486624409843704559491800622084346918898311307268718866322166100951033139422529427733796274510952318596450843372699872145918879065832419606235085401060175854330319264634942415582511323792390723208128503608909506002101860376290882104576621154915114333409116160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:87,730,0:70640605243980427657636692306997540116459233971924804636317513304150418626936136611352287394283717176657582569290735041336130576345768260978545273178422372686109281468136331806735183076213470631023521863045138303725643474436543728749310240069565396456181200776877027188432206328834545632615085516307797160436510414467296432362892807459016974191138089325949738814183105830146576479508554788603771745563175875479878627740991148110353339494494559404930335120022625769510718623160826952260379423354359797323406080586717692573353500450781857635673826567854198587698834356544495656317644449219572190697079239788376841437748767043538435776452999837754282146627198269914814737991215312066185580547875238521020866651880004610164496355122266713725577212706530020208552346000046888060660403156938011674635274182736212828742518344133575445568726582901058546757441359675668917925820440828688927880332817934598081428731519020008681105283653404652424823367917710075257098917133396066403572783128031
 9345425290977756020974412906899038592201787348761825228061083631544347976763613084792365803249527341553106644812202911851620419765048510696413924148728211652659875437527114828561845302300246793974650997138116778423178153360481516286629888500954470861598210243812921260066728648008448752894712658707214973199057680079905435919626256730123127286301269269533605024856318874090809110868170349185734499760880296308653980901200084758996049
+expt:93,605,0:85542881463495891854459943310854017136875475368807672531588350376661861663596289283643900225220163717863149320453627080181362026067434515267464647587059362668306431767706055926192259742464795206708435272027023089776869901955182286241670201643956179113125684077407577681715875615836287695470366827136734910077269742459567398924685316671178403345096008764103538149869733394089628334147162608540597382500141210315930875298837815495017213533253772106162639880450735207213787482235978488215123247854595816828787032530721481505687260563497940868157967320060626593979991096612748351606150543253533972211147084534712578852427871747195891821048176655356414601075571512895036718422276432444840560295449808102727367762968360732712066942994131954947374800085652579960610327231667023714824682145512629828207607279952548152448294128987412888914412406877506651104836239967272723015344635984032340505476963394043825605561468923715145394946550612733702388831182793805091322246038488851880501797669819
 1594508859162464655030117614187828782625057625442536831551817101524758129922535918617854470433795037085700145033888156152683557013427888199380333661049871576750433106831383797201751809880804414028368093423693
+expt:19,963,0:27524390933462438193837863038173257600749953407807781713047411800439226575830665293723529758944853530204290511646210815182136606877662463470431698540803603366243306719651411385140530410420060215533879433895666800137273296375613114999995493626942192121350040312694984901577002074624731875041793317359566297539168950875820565444735886011981922691483574660663239016046035782355557105396128292283603712352714496861384151418904174890595393015389865531243654829040983885834314285234495791323218841795533872159352451945484907904644311539896414067347389400151749600657579278895960573693934814752676278273915895909394982922563318173736071016647179057619243763230042827139542125644226762956903187476598431665900029305113678469725913961143048032016348386870923089862955467576132232067430573022824628886621106941902269773912408414386384958744554226394315986912008000652067452553259073901900219599312892013220890882796369063146728028726932516237716682483149607295171755157994925014520354281344751
 176954994548850375523372990992872608235206800552848373884097904303114896951128191894747953292238976905990208894450092732832100441840572843532041330491790737292506221131878514424077507009732780885474368274416396249038243621795514514228806975329626059
+expt:56,854,0:89655113212012673099023948416704807879861978221153827237199661778584008468165651080543902613878620062782298351513276228294432072744284649261971266393894256607375431816304583821803793716587924442301007552505586044505538442132617485337199937369235592237428954101205944468928491652642992561924170992990684875183153689532992782682092920117235762980760669791412674782564117374541646440937370311927125956106266172810510670685525518812212950138056170979608664706763694733342515990968354863012666224960142013969526617072730522216789165659791684923653320596610175398020948129729808736281334106447129989405194534944350195768931899586302086738465979769199582498488866115372356961255007890457956873669299696404273010639537644911751286565659364626323246621985820562215324013173040199503927765343915648047310527662125096994825235508795834438673893661434170547036065620501605840890610501329654028608371726543612867845130909422255505338304701800505808679604352191497405251720910198472034708192083380
 402820761289291643085960629808979419703266679006005273854103326911946960981639672499634075872556388250454617093178267203875157005188789441834290824824375362710217394654516436622832004430364564578406063107709727937712128720552024767984099273684466490280196940322959059058007593299284990312017697525386129849377270562464418952129091640339393380715993311611910305891157877528570148396220151382371598274439328443130602108218216942517868406522662920683285329640812262460209537817661379779669996166934404739153002496
+expt:45,612,0:58352360697188821145068973825335662473774153731603483223353814019598043259827646549853690436910197547822743249329024124229195044501219824110715591415232275980481019087061728700187266003668715119932422581049839647141914820967774254601594058681983471571942470107117647698551209227899226751071805812883602435672635374482536643247166699756821891000144042527814552162737444983351226396535891223107028575133629091807718315124714699203039977882691813441572744468346969175401852782500663492635117432627352714776841299721067583293756465398952235437065925665049439087123001108054548448732451973094829269043746640944295695662374757382526896703376255457301487805988676960592990919157324244414034977399844662345894134471209813265413426945194894325529381818298430443687246441615846973730784906084223166879809225240685522097584860361178055343883775659781097801336321275249917668007562556582370491573080492229931262720445531478453474016041767484052152645330918942309784528109227575662929302091619376
 82438292540609836578369140625
+expt:54,451,0:20397910418377356550287300571804200557786099666116822595739338489264108594693629585863016865675849836447133820178583817056787257865484263341787975124682123033432566176550892031542044673807061607597691619952835660477594361209973279361945781375083740594965736649506183676117824430817491153516247325248281553959922896499435214529883689562648236636643053318925258184450463587681659723559391253678624035379856699358467799364301117153745186153084620238270375863919362076592257374084773424126742009360452069312697567282746968871243121905805216854913928572510658635514695126678391222696789673476384418005261871513244182859164066090813969042874136599996354815022967528679816614580768946293305191453668744093542408847163544646677483277319352956875504219155308754191860667890267580442087522304
+expt:56,73,0:41469229998734605907229666533990439080884762393847798172038084645287681671512979662987869210144861737361911662097025032274313216
+expt:22,325,0:19380780692127535243822988975518862106688283415440409657318777291773460112826177488864304471507503296260257393000381968404530628735640782306320769328605753305997492221828698343046454208648959261843736522465022722130523152030591371634509064404845763380835114201823755461164985487277973692677490997892134149211679493862203005748191879355934593251640178434694460018581599355100053236481539133268074642752831875821126444829199442221499154432
+expt:1,259,0:1
+expt:70,28,0:4599865365447399609768010000000000000000000000000000
+expt:2,431,0:5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648
+expt:-79,826,0:2754085418792979998525746824752315568053843370328682473951746948175983399091065389234031559703169581384007252446573812942098176813717777839838618713648317952153372054340727775311939328415215595748191406028781702860725693759451986815645905466909195497471218834726708942543296910663444419438801726596594999569209770195711447282308619804705085680606167279857412828715899967921121104586688123165374974218120682084301871281423477688548396020911310863543119028901608750191784594305495480869587915390123590284366963462751824330789419384199295605053576724262561293211588091140960956987683653002797081795641953349244686379781504492577595204274155053401170751014884584995051495765798320350051640509968529071197796709394880592052436018702829683054698786750083358847250441400519223667239146298552015028781166557702074445546065035979061861306209382527782500450574470727124106488206407071806564802309428018816707304484454723250011445769459099916691966909469339843202241175779391975540802646684125
 6100301169395413642500129881284167587546361348378140644375492018741141892055856217500455547981975199608522237536059854818106117812566998653773404384267708945402650064006573487698794343692465354553659902815430390133210939131290292916108564064726731071156431583014478295860724491974850345289250462234755107356158270289808695989364604670354446702945425544248554707467316099882094498480778646008506840517719579244276824018750506251514906770636895869751648864985470369467283659845225076014465077719158624528591794989379957868089133908677744283634297198521265648631548657239277970447594973921
+expt:66,694,0:58008450653049619990171584206155047873692928543595329690633476340891645729474508370094365975007219400791111797692891077103446965282478716114020219281206008612393369679442202649578673635039186099872170918461620628242932134042629447456055406537363849494527926166081813555062336188098626676116980938315696509239453052687834993556095181909868465045623673136651821424798089715466688311572082468758426018675357924803930648456433481545492166578487549664060120805406493436762351454343181840196406547175381811252839366987700453429651484225272003634469585108343975489587870360309742200751425895152512831728481116099785468794044121262757824662115860681988922773445383308807679205301041042920893958029403097867280700732306651618851948872906205511760830405405612240827879437732239692329427634794153069155511563886020762809369767403458647868582316631156242946823234668034540011136859987750291861928702980686342420956733755032178164541358327315631356925755441223841421620877866635059008029095818771
 3067860125458768396034295744470317801851373266428602679222973688293459392062447571375823266655946023131694535754930689276382991650046678195497949989578167243234281923601875893680839438188017891503234218524380143598199558737455868031691457764742432465500138998414409914742091022336
+expt:61,929,0:37274920426221923466102860505960008200547205840180777939117577410314734702072180927400694481274269455056602161522084816951954152957295408719595426227582701534039284354631742614773328474854602691416974528309485073675421469425283486848207511311226751672263053001742941348835497005898303286391507974380586839851451148937141556474382456652117547571877395353827882190761396781922601716621410473943758807356981336881339814948856558955662947769773742790092624998701032050359127859911055745036614379220923434630174410708484466029244268720049865299889409560166990588901317832215236859442985781869997302970321926410342105968822193880409429746117104746230338655201476735548937123164524221460570957380603888209132000096983346661617267472328182086123065972078484639459218669588255418376661103005878523135576003003299155090922574460452362236781306261352532516576028880165411016522591883631585506284507337254151457133798962038439148849077689195181751424904174947316342233390035647469904797781740087
 9900507930748372050203706672988848432054792535888114117248293709532406518972437029506673903536575555598954258917589173484915883729820461151786963746755203344621234694493460419788239808892616004989648342937608880857613762630401759659568336317724218590545423848713453198029293212741308983125342860690464093569963158486256404302217070545170719057156149028351035109222842931378174195730467004520244530634927115724793217592798273975809563142500814120034065476390178392762733701597980347726390211680084858484316148662425498700389466706121929317730214556147564067838219041971460802562516019394610534531801572433089111247198407104918760032599577878951582322678994706142652947962481341
+expt:-9,601,0:-3160444535448242529092641683723644059539145692308657340859411006936058865374641314408196086827043799075550619379423798587542309132164609200204439951579781831500807632453119338125875367204968679095724562036128784121814572255501838157522005562307704591221323902634201333248104060896549891818729439534161465226719835137730531986768862453929457126667118122860406909711654476082395260883189301675745656233295957116371351513365076222859294597957033255348289403621311527049289776180957730267554140209309181978595028474886982653235278904914878205932888067162450567679909275108376009
+expt:97,61,0:15598246895092955513443352386309396583401527586016822407020611754291026801166140429261857563228075418881342331811243126497
+expt:74,605,0:76769804958793919735968374997764838383685983955764291240903154687506699319736148079239191102200758757120528613211167307246913031243936339015497579487778514569115442558822018158241766294428538805661918198158907251894303175359713086700660341086719535023226295273972714960907508569945467638950991445640011105888037471937406718656288844174378735462979601536567788093553835301017041216480596591670664259131726307348188753502420533908723345902463543568835908665916946164870886548725569567539802318092034670978830538815686449754617773725662345849164334104120479557747534842712479350313582939897812152555405676625703084370452457533406151490399972666360126906802492181139769352987200121849994450199270329746499885261558746613886271487144800770443972009200733344028221685916981927973783506657832798576231834379505998414629697787426266115513353057845753131882015780339898911120731221235523106732377203374197770838831396586207695011284213230193445266745448434333010584794543933313682995370585687
 6014817393705072041603637057816525800795342430049224928087060220666508991256383019365798391401213524865142728401193068597503580931118244325830426624
+expt:36,975,0:24827800562010328463904570363389291097157959044657689639036602331844680857213936270694132210535380947456899326720927924206509644648862091039948381120853072828759419554965336018684636227760113059547276948032408231120327069656997594357094196956291982281210450065240871150044787354459604741127428801455533754889667074927160163462549164563180488838766078268289088922351024923419718298722866733835297290862096107925692794536399111169373686282206280105475264472073559769021067850840369466521260734105719406125699246478131062450395017267894556840690442602206810175252830005265200127654229809413259199010496248707676389094808183640743749899880816108038678280252611907569278953706668188667702307133800109016165124803140660592239693913435385822904852145381932532312496614692458406370089792538570994265953779051714998748717358139271239293479933849618529683824216909704686794761655756966396796087801398794852674119584408578362688725574145640190639976370096629973316526786521599569666885708993748
 2337710909782176011909086961041572658525585707034935545895295838426884822305638121505564930966674346565073344787297923158159728519118453365025481613806608095528043429679151758551183290377061790258979194328969739145711528285504071957396890777097691503292292512140424378576323419960320470786958549180355944550997252189926822915544222112451356508263343401791620402670748174883090503543874879537424232633444841283544725100377811657760945870884387665856213462789220780358446036998302940381411899721937124651210804520592109143837152301285376
+expt:-7,998,0:2557666612174935343076642515066804502377520561389767696864275525553001216974247274131608960292888178840788079990848858707874061009535980056363078332058256731224798188707371509890293039384338196239143157226455217716275665577013531086263168378395631166498491605806001681974869749146726373202776324945125013953453368299778708945971227290643969595629713562243419908025456961888745599561183240940509205834167387996660455423008573664383326301867960985504323358173474091543641085509125145760080557840801210219094336590559580686735948781675614855516621028604833789337737476275129016558156702593389621170307048966068339005329960325088885775363738622269191020959920658840427262709698255458449248536217491851761664583813025566114309314584253990687002952980625513485971873761776789106023932689391842584592322920065018940027985924506720083084514443495522449
+expt:98,601,0:53317710372050159537401442327249918036413237849916066615320514828749743105772939456997140280664443259029238146532831081126231112987933521855880977884042311143983139599654794612505603743892657200277311580087353866521194812442267375656694509964117649224123260822976298418951465560669816129552532561699020139322871881243886563661360088101638489411692022293849589946473552769175237944885561191241752738907963915025680235925920222873031783608655617059027696627749940195943747290792519292701852205137417418459682581877897268891098321290597863368418693847735101535517991087886323840729968865772577761840447488865521246883305596934151324860468722006348862296282459261106137353841915794671758860998845000956442974602787853225310939147191273895489780316286154490642486081822674853121266279574122927659689012625679406181438342131142273671558556360002996213544211382677247569641732542101588393792678047151931869086445966403545522824794521054596367133808283365917667998919652784997592573123934390
 1932556903446683281672284250829662800543414520052002458669739331249230862598278859245402390741706350229540923193423152041354794777470610379380463931916503753572520250120327494841108274055472875847368852693579726848
+expt:71,113,0:155665870729530205341310326859872459537926086918288608509540470629351860391099882586273156224776434943964531186950530766165453973920218517388369336029496210775525110769905804823288221938617835119278838123463111
+expt:88,907,0:44236793557237657250822524568237600893348911131649813786099050702835580527666012279321294234579746155384245331026428726954726446162756788315129166299449210007834457190831232370396732211160910455079211145005808171898907281511585188238856347873761612298491516490974546885173094108912817352343087982370600084338495766731676088188826409086416934921292130277426344933456964660688059780883235965398912219842376567298706898667653005982542216471007072915078454251777214601793098671560583466744524685619760923039260783627459203802810328966261360804219308272701723438111719320464604293319556906177417121556186797997753650458773366968838543930608386100574768209325243879341640529226939389485779737128273360983159702479246253297925262053361289892353640635261304027829111913371016984194227261088032607625082479631529176977931319781105573647874557958524635471488255047919996452261537979193502946270184849088108721048661658874201569019816169400774063107591497734247938365303797928044045243233065058
 0558326686619170505019301413395716564578646343919112222038215172712390311828679340129762907111087076354552831143978497060075661718540626266557415357423140554743330726141178661837462646531942496692764465824964428334360066828688839099062489813585188443877907045253387120110743470809899546315304940652259267302446808962933370950281961149706759813262075876658787778751634455269684666084979732880496655480607530401657107712607869822390372442674816531402008096066231847402127938718306972865332558595609085653122439480481119259426244455543280347111130355917037063730253045491171053471360412763262481476838567930318043324002372902635753161108413432524658790895161967566922959535333684336970564087502342071263031219942567744837673438233646370315543730522460987677141774838398907195160788992
+expt:54,693,0:35389592126371796503323890100972185478399806010936904655333844628214731075181201346433292459820878643179379087043734588549141064074156437796159958411693866009130755214544338388794654557600205502071392477600731032408637826844418786519974015643231853747931755384439834127878626203932474994796366940897533626837163976963979172833984255580682177119854471593171360261224052279569913099559573051302303420785709231599476182346529783455754969087726419547597158188964708731638203435042504860616934621314281511411842569598458561674885107544995270691474598509598981426739130682316586477046961017257130084814731142057597119241887179117438643200551813569309725959792394027938100796433140940264958282987930705030690663118979014879352283911781448714492709770538842092746807932811394278353655368214734781870157810759249463171388031620949764144599541943540953441087886150827535446083454832233129276369990080639975296506569577321979407044712951784443417029589106071897541682231477658462138729393372142
 35441488423377963042762703792152968410669091074122567701986969963794378828129171913930842249996279788381704931705888803023880349755565650291290845634952973640558107667121388591534953156403175205437026399021173691121664
+expt:38,856,0:19713271533594470201046492828906878725812698932728113397764245935231047163569465993586366303489322440266197150796507310928147852386559921516343155617537952202694269819549071733105623782074957095296771700764936627189405637919830017860604162377532594961728362443520347737370380901986104859622011156040885030870913607353623693175695063535487079466828626421375204099793953954138705108054434651865874578317378966739561413043846693346648754691303484380784935017047676822196884526019214923203858306300714503262247246452316636573592018693957295687137417034814752573484039349106241657645957192406082654798651025318187714898475011410394648001429786709700176634189100623873412886871825685987634137438500584751403468195034462314537566108873491152528180987148052260165834010212982393406322014009854035056149632442487424653885523061933914828453337002448866174501172644564269011149491956070758522817486418776325913219482220882789365470283069577262927688792598105112848705542328264388788446293838194
 8997470435721291697587128910687319970929427859109724267542710439086909913634572523183081655946843912895400563035037344361397713522987937999965880651790361428060580389888264631102954948376159211750103503891634869806965067088907401334445114937251493551662240660610686055435327064505561719003363736562191988450674773018772056555774194438968053446880417310543649670866927616
+expt:-31,708,0:7657362985888826237454645512485335895167282623309450244859879890039667996975194279225248282955385063331209064204978331908221728548232915051968451831356625584306086615826248506647250076187845850923365876209801121855896982497950273716726763120698295033428981520050674873060447072880995297131868204600943218627251665775582027011168114799929921605972052512128913713907245338533823223375141866695687392851866638848915669680846273536854515882986782272682726954715190807225548894471262073828266096885897826220342635237020020676274922599174126630203678881858435813191751134237494357591495207823603132101681553622354451048917149463346757809942509489174285924234647242554980149276353972105958067887297629172508718411511535445927129857838896181764013951756675408132399411363612903366804031381595514557004463040153199330569960100349225005428725364311119974595043109472924310259005422950045550405579795826958913024143446695979140533563013619886981003428757613856923723837879366208114899973131517
 57515795773510401149056466969197955066877735357001712514205212720669933441
+expt:83,555,0:12255788811930550292116271226540466125028382850274517875233338890780911173956773047403122908565488945690259727320933052620222629047666985178437102510288890320080710215236159474945414371405784100832424390063036752422411816941320649453702711657964030444000212332141760366073166494254637549162745282137004253076729250707931071590635588682216918273520404725366558069676339868817437624892269400357323919014286777134100852773737449737732716367799601254829401210213372488170936052696439549141542642365613004905166478368167969379968746603777511190323251261155843253174875709366372307315312094451810749511793724816567444627237846464448828171733484512792200161878688066762938988652510483192486979185350782273242971317475829578516382544830321609798349989532306050234775652694938533092257650836934847385669318450204187085916821166522952913036368194985654708255321923765458244979318449473902008021398278371459923562617551301510734752983175893438491663069280916300489419680767834925438864662458271
 83954554006162583165658402103419444975524038123795891288877937208254234082383456107
+expt:-14,196,0:437617814535571368432038511337652545614427696923129424177713451048312616488063444444116568548619798360728579274072579602558189605289698688298076102960815381950768025379270967729373733335391251544937988597855682119418496679936
+expt:-98,54,0:335898517749742807149149239304847110365424413007280865740297764742923286290279482895371271867934265713885184
+expt:36,114,0:2621109035105672045109358354048170185329363187071886946329003212335230440027818091139599929524823562064749950789402494298276879873503833622348138409040138018400021944463278473216
+expt:19,880,0:20098740293989800292954347228319707975329190432278198875870327867431443653675266648232479088271944556306221706060572327489311221792344847422039085701318527742514054877692651205057415416101057327257393485647655265423323650864586674183018283177515069670762296547884293369786726382258320102981455791024092627527367074610514917724777825703528872646415122864286839263895677370240655158605848918693486324841907233377728089464182110679082392316992669909276933145066892046603822527894149360106057528230237409427934434498995823125454055859674368913894853019081185405733543417059578914662208078148754905353229364644641906342794875146429622730913945011240726064491415301551662914329384368880693055293518237346203882687837072931755822445894089204292773207780443354761741378432455787186172506084139708937800674372056321615907879838011690752752483915055346931307032173632662174309256352818025461316542873148965873487559454867485575650938982136973343977192147943266548860467585720508400808881945025
 73280655340846994980936684326929231978782129907525294831982650961681342044316149573667246042886388298925914414391461565675869861333636998206401
+expt:22,721,0:77046492558224796788761802514088072131880275970877661304506183244811291459780757474421304659351160305442644292605839122224017614753423013459535933948248049249528771300446785986946709805896287030039183115458755228202024899421282006247675157856987007861882304710551488072995285854106976686201919909140206483194373001181110350256617582296405321373555584594309012456901291312584219573768786649572212517073683836945456976006726338250005200687545264869064958787610169087462340120923702046458000168595260841096750492141312671829384006125954306548840981666835043447963679445859020819819138834089832266078096711197961096290254275206028869494312694951676428802173538454063412657550689313921331316469141026674958943351278665317595537923216695203682252676572051050680540810268656944394976378717156317037697429183535766592224765986513447985454463834647332790672247864336230364221176419961961474234981387758066111628913552702951065406243272417272225028996432449465191839224742019072
+expt:17,917,0:20973016758748742623373843932561572905504572726410707426851813596552984844195303309751195914939457471940679821967459809067194597487588825210930629421063704144113071309896883713473123964009652512949338014795232453002051244983929148571199524549736054029522835482810599938297068587412406428558660245476714268403635446815917586141717057959008741214290156640434308073874704852142515452865721779648627737704309783790054677652911457469249018390026650964003979424530765887236128072084132170929492894920196649612229729781928226764759207445522527018366782362023688763276686395584526925248031189391910102301248693695575269778537871488760847193022992324753620672564884462108524074093093316332769938950093723068073167452434354533458400850335636013108241641786951805952700403237710527885933226493284591977766554300076090490491775622532198897056059037229506200038520165844738596949986097252644296905981131865469551676300122833686540648164687521547833620827786254434523725498477420491257379024039869
 21080094805248820329567053386368469178503759368276006576774606472539223477845778733320367553885443289921963031175184555111324035235498303342308177
+expt:90,974,0:27052299935047786065293705383293371594928459960636493591858679901229530489397827439967797113560000179030752129693483986009759069814344789464328028124389302229982080849292903566689398199538736384291803478523321463426163427287122485942132332484438824633259632500429907489423839508356778347605611863182944177635491198031896503926679224776089106017711039660784400591006292140993879293923209120615399556982103777565419076004780936708141570335102044570334141660285505239366482840745962298126113781491303989125579971415048181359429126117863548989486391973761921728851807165407598678812115381168882267007400683443822154895256736017606370596941988046175011944197627446203315020223655176866443121247527516304873917419276577740100216553128143639001206191984430353639022361358939550577829476281299576074140336299277402936582067383619719327798911232272710866516643940342077662311510080648261530453984792175767586937809041407061474275004126136100000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+expt:88,533,0:25660449281262222538494450001863125622542059254495725488128163750941665069643744134848017926826911153501794213458141136118798686952318128330169211354566747333325537986995462503989216458427236156137402612135248417253059095443287160848570588029400648482452870347054911987033926310964969317423952372643231383031833176623179144615827641601677528585812306167020803446102194410693881507224213793037477717521197480665170498415644315118063624358208859552595534937279894843336541477825309304143549461073381212334783418760579349454160671722140424226639994874257433085267041153503087290920628156801330326875713842007053978145083999034880721014435679044734743002931660496447382048291494534747035171647495659446493320583080918221954598494959009870518773105244525770713362092498386891958081893316423699439660136195380395615149744310401608278793638807731614951269163459033645996046310958400025916261303110642807596573667882890880336479719496725477724544562900521034037056197498694805705196162644018
 155788990216861162622711326815130754780320976368304128
+expt:12,155,0:187539665641051633765939629010126862030861602821510134598513247329704373202067865855904581679588305105558426392209111518109357753525875656563557488739845521658156679168
+expt:84,732,0:37362626400287469786015728314475507196576346217451577972340560264817777335475340674816958024184760346347561438501466002380065324994816957074697212139052544975947819746208063697307962302948345421020870897563746896137814303577394468618413663330314199040777371901150981465952170446359267027980870158458849108279054769543589192992244998367449195186118755704549074553943383839728968976499539257576575130852721502719453361944489930498227884992093281287795552589618712166509707464487440188402096761270376491306019370966520073730856558528831146413882339665688468833965993044432654395376803788836651945621982999063779396803021750087040026958788856842217636023983209404960799438677955235981923691837336224814448363848125978496886798250942574484985336211014321720899330415880628445289132294841424914787671230730112190724165482715241239871542120185970126756942511944451784053266847219551455015565798473788074284186189118669182080184743138159319501208245476233431491562603292975987521331235533354
 675181947901194397959442206360514628651055734093466035888302489823943737682169815612826149059209986740615789135359084267106289623915297355833264060175823550703443673841878097340893266267479095018072578698649320448199760433477235766344924312161142440752268668342566161645418763284828712617629493206149751363684796869848593636426521501235005044720096689821574083797399723544574440327020813476324227172574108126760343901889888256
+expt:79,286,0:526439064947238802053645461445020487916872652166019614740851000911432565395604993916756724273343382808249492973087992062325249551325359686735575913143465467581047691930038117373467695602824586884710893085987595912587448288044732217351433963632626007275558435035805433116956578902569644720408764508101410145243233157169608100135310715793917742521403034578354501408583090243486810991762771487300120584737790555454222432759955623420408431532698387943150871884498498636773443364760233971133647087214954160646197476641876831719032258038195184329121
+expt:-48,298,0:1023030868022814299054713017964868399102957735431782102215916358604604051659703035572837203405877079107051634525945219766070256763817295621420805604993635631490817683951846687765019250182667988090399985362595946141453130325277952090882208566546530763707685586001179407168248639583706997713561296809021500677647862937784168307555475376888964203999111072179073538018050362405289547337600007038981171944778216894564706920577451010395411246759676715366409166040432558779691978486479294657424378342139756544
+expt:67,294,0:734500327961443669234315379892319347436893827696021491142391697563378578446291077887806124176875773502748252261770540334529098051241702520337994712391193396474812051324450141046760676076260316236367877489247807236984474045776385255239037010394553624592302745770678862650712113089224670041590960921068572134081690133046715543153096542269435280673848480153667033339024712187305544312593068136273774422287977966196973980766284625470220034542418965941570269327451886686200812785835233820579323336965260949631248809309330127020161010203411929
+expt:-18,16,0:121439531096594251776
+expt:23,783,0:17096043011003615277598794858486068754024940440179973307979725548138117553890262896641152305435426637168346356686100176044925372354921872747501460658856273444772550524367017737008810328712782564379920672077160208017588610872900933505244440864632694623791999654579846020232116933586706946483379032274515986264401321379356564215058936360373677277919864278279794625946762796494116433783821073561146442740575287992208852561076777520575751129272827760948307704793048037510164918774200200085555861489097574107784367443496372000977637695193822915836028040509766497522766784721558336792917997571201278516192223590838889688612546686389608843721034916667041733614883996563547634015007274594387270209090391868747626612843208187603964244920932750585408044205476476229852915573917584786214180312460069710688659542311237951704151388274748457930956937912692497993167574943229551708370492252437047946879513486746068495028744525641440991301695614236365008498571998939850585670845752278477745811135337
 129266946940607139194863121256913904896962276321551899101278415815402393374517929767
+expt:-66,815,0:-847827436464861233018891725328302235905881983056367251721210882162825339396200010743400450966734393753484525287610591691455069036265430680208818492842452157046120921917757195586237196472222641063704674265511701051319726276969771464081436802374476323332339666495547231720630671493588021831305025865038567336722167562050157751119841461393000166811339914310631145068054133040441635305319064249977503262003573046090725352844020168922839242512861169522640341740679157427868920288459034641853902905920998081401370411845021056690835330585065931939456978959358327786507516460966852910263820377255581832129782241929071058641744499520715278784862311721894747779958275066432926435861586622403819092222862997468049967952698170917461692436557770017707288684303092402840435484221307952322023844335228891224220392503388565517747523400825397745880092271948145262321710426638309866360134296119944719037402527220673977168331952201684024204828327689421142155492341002786774393818135214625886733913202
 0852657862198937040181786435550099700309055348307396827575249256603692440439981038825878568365720841374284500628316724088850430536784223423104076749618800240805402030937435626889672205773792103911906204527061949920720885833279883726692710574946314456869324980999570723090979946872598945360813531346459611164448392012613641192887272701599318084665769391014924333193179500033230229853166710458920123986965349475008600343653534535593116799600793757728203652141876940711203421375996087235090052747651710976
+expt:54,664,0:20391845050873191652345159631406874537839455686365280217235427133476142582092996043619608390016389292965226896811762634987782972686518739140212360064330493755768007040302669237780668310608681482526562495176314471562104423826827089408141436551453430030964346636473177072344012300123214143559305872414360567214132682148167038413419037687295369781258678081076745492992503736782832174090246186699082419488498244657442094259244802484573507417869446357085909447262706180711907718273125250308231346034020925518798041278971653974463785808172029353263314071093941305571685611808887063740166405396225068221678544525487393228625876836004989079566259935122474245224409591612160442040129636723080187009657142522509070943421819954801779957035427054617629433447229882724015810298068048100626156055542733454456801321357919554628269944544954700528568251750045531145328694687448392559273455873142746224088225238286750883430569184631252959597186815034796504990060130502168310308220045378042228226870235
 350079089558343443820937472250762918032769865387382756419568756482286011357857171768933280108973733824989544483820081477750150555112569963683757807113376801387242848256
+
+exptf:-1,0,0:1
+exptf:-1,1,0:-1
+exptf:1,1000,0:1
+exptf:10,5,0:100000
+exptf:10,5,=1:100000
+exptf:16,2,0:256
+exptf:16,-2,0:$MP_RANGE
+exptf:9,114,0:6076396096647706909168138770838836135530328017648434830996201971201776350890241322455818405320466786549738961
+exptf:-86,476,0:662617332696362860524067230796827820618815284881665908870595313490845384402730799402221740741547892729430741053639014274968962128613995528237195069353968871860065099842959580048834695510748974202424908905352730826874949676923389706328585129209694843598031316497606363273659659518137129001683914681077900538211178870670637655474948719356656149928857724507047191532188701873201466847680543186709462811132458087950485580962981785390351911145306017418845982546035812744084364382432586452339098567898296989357418159116783507112574874002896769395516552960579886303506398054290885811079444534809660731243125017742263312078176886504861185566719851630353701862941682854137129215263285153620969438652988427729550528379121310832057528645876351114476064584186293636620546183047738657594287749786268444920697293633564476272776432769083439149706832453778408583421346390651383448852253784001810843070684412323782386158601772005993742336
+exptf:40,238,0:1951092843947495144613498268620728941092873839165606969286973099765857336762353512575191314414682481974891831950879139309654984799555178316431360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+exptf:9,761,0:1508515174935868832740908844641413400230908698282014024654729092918735474326353646362638387096847659573480147230064829611049820323852929496264239478087068540642226919569780605621815548160687919464946810325130045648382743363240874672014902866728521582870078261816669666838432797381766007612134725161586319767428484319859256110793709691241551836459283171491322903212579581783263716842956174378353601721913353516686324030063352338083503343527729254306613462747468830270057853272630516028854927235895950242106874919224742672988595490274178820331573555174825456815488479104792855190670321093410569224479462267429452231735849215995686173314732407799996091669536594590589720060331368687564979078136565140955509332862196370159944529609
+exptf:97,144,0:12448864341302864356285624793135454957839907062356377399873019819913674333304037397385881749787740378047787615516124593880867160513889753519548772992938610862712907794913424958325207507075928443769586211194132774382517001523776118917770065797726717096819996931978519564039067219497326081
+exptf:25,122,0:353737464016668451855824972300304366432911374927310085530570894138105520257533012294512947342224925759920017160034290220932919252862236536572027034708298742771148681640625
+exptf:60,794,0:7113655094773209722304908059291102420472341586284530804038919776850769755369572576348565239082870607938607925328668307644650880798634418343802948462030618644693636404276825910735522316936439235331144332295287062326679710604206135925299293381928938121589787540919735792167540784423543220756803097859588812241128410618980697001653029927799369366700515574190529874690136259284401056544160626064661004056080412763926746790934028760119496141135172875318491206110683297382677692193005495188199259341473867433372648485659847805058764745143793345143599920526894347146534855811145829350436726891073120743474391684929807146024960000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+exptf:77,531,0:5328133116565702495046263385211759869310595335059262795254400599836615969941023515374469269493633605293652607100182822749696089917084224656454703532389509911640946037603374314713737976743424664476853313283348969295308695216390213478603056419017466182120673824360474178023349223297149677470690712246090673667711459643452308985709993275813702758374246549366140157360996655934082145897179718378062544912317189226160126805651890674375365285265760205972719817832968864905619855530632468229608100785006484801565599185305083982310871642522520535171937553877121645335654740348079177809602076945701860463441874468037583451393381593888922610955895510222147656241920051320676021164823793954147885446469794505964524603625555918876381356555802996690624240235185027775718091236942014956402707882381693541131384098793260880173677053874116692672819981862984454973151719940824863218644420173770552080402267030551351511011062827484238963199165543106847055425905860193794787594019610427168093421085062
 73015769966750567573
+exptf:-18,16,0:121439531096594251776
+exptf:23,783,0:1709604301100361527759879485848606875402494044017997330797972554813811755389026289664115230543542663716834635668610017604492537235492187274750146065885627344477255052436701773700881032871278256437992067207716020801758861087290093350524444086463269462379199965457984602023211693358670694648337903227451598626440132137935656421505893636037367727791986427827979462594676279649411643378382107356114644274057528799220885256107677752057575112927282776094830770479304803751016491877420020008555586148909757410778436744349637200097763769519382291583602804050976649752276678472155833679291799757120127851619222359083888968861254668638960884372103491666704173361488399656354763401500727459438727020909039186874762661284320818760396424492093275058540804420547647622985291557391758478621418031246006971068865954231123795170415138827474845793095693791269249799316757494322955170837049225243704794687951348674606849502874452564144099130169561423636500849857199893985058567084575227847774581113533
 7129266946940607139194863121256913904896962276321551899101278415815402393374517929767
+exptf:-66,815,0:-84782743646486123301889172532830223590588198305636725172121088216282533939620001074340045096673439375348452528761059169145506903626543068020881849284245215704612092191775719558623719647222264106370467426551170105131972627696977146408143680237447632333233966649554723172063067149358802183130502586503856733672216756205015775111984146139300016681133991431063114506805413304044163530531906424997750326200357304609072535284402016892283924251286116952264034174067915742786892028845903464185390290592099808140137041184502105669083533058506593193945697895935832778650751646096685291026382037725558183212978224192907105864174449952071527878486231172189474777995827506643292643586158662240381909222286299746804996795269817091746169243655777001770728868430309240284043548422130795232202384433522889122422039250338856551774752340082539774588009227194814526232171042663830986636013429611994471903740252722067397716833195220168402420482832768942114215549234100278677439381813521462588673391320
 20852657862198937040181786435550099700309055348307396827575249256603692440439981038825878568365720841374284500628316724088850430536784223423104076749618800240805402030937435626889672205773792103911906204527061949920720885833279883726692710574946314456869324980999570723090979946872598945360813531346459611164448392012613641192887272701599318084665769391014924333193179500033230229853166710458920123986965349475008600343653534535593116799600793757728203652141876940711203421375996087235090052747651710976
+exptf:54,664,0:2039184505087319165234515963140687453783945568636528021723542713347614258209299604361960839001638929296522689681176263498778297268651873914021236006433049375576800704030266923778066831060868148252656249517631447156210442382682708940814143655145343003096434663647317707234401230012321414355930587241436056721413268214816703841341903768729536978125867808107674549299250373678283217409024618669908241948849824465744209425924480248457350741786944635708590944726270618071190771827312525030823134603402092551879804127897165397446378580817202935326331407109394130557168561180888706374016640539622506822167854452548739322862587683600498907956625993512247424522440959161216044204012963672308018700965714252250907094342181995480177995703542705461762943344722988272401581029806804810062615605554273345445680132135791955462826994454495470052856825175004553114532869468744839255927345587314274622408822523828675088343056918463125295959718681503479650499006013050216831030822004537804222822687023
 5350079089558343443820937472250762918032769865387382756419568756482286011357857171768933280108973733824989544483820081477750150555112569963683757807113376801387242848256

Added: polly/trunk/lib/External/isl/imath/tests/gcd.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gcd.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gcd.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/gcd.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,761 @@
+# Greatest common divisor tests
+
+gcd:0,0,0:$MP_UNDEF
+gcd:0,0,=1:$MP_UNDEF
+gcd:0,0,=2:$MP_UNDEF
+gcd:0,=1,0:$MP_UNDEF
+gcd:0,=1,99999:$MP_UNDEF
+gcd:-7,328492456,0:1
+gcd:16522181,930,0:1
+gcd:844378,24,0:2
+gcd:209,3,0:1
+gcd:70522336,34102,0:2
+gcd:32557663,995533,0:1
+gcd:641,701,0:1
+gcd:290748,-233,0:1
+gcd:-95,4770,0:5
+gcd:6839092,7,0:1
+gcd:787590783,-6789049,0:1
+gcd:721,15845,0:1
+gcd:-37028,-949534667,0:1
+gcd:618,-3,0:3
+gcd:16657,-544851,0:1
+gcd:28271,6,0:1
+gcd:-35357673,5207718,0:3
+gcd:99,-565,0:1
+gcd:9311525,-5,0:5
+gcd:6221599,7764515429,0:1
+gcd:21590339,486739392,0:1
+gcd:335,3699183948,0:1
+gcd:14,8755508782,0:2
+gcd:-5302,9,0:1
+gcd:8236,9462435,0:1
+gcd:43040,2766705,0:5
+gcd:863478587,63,0:1
+gcd:8874055124,10,0:2
+gcd:8204,-89955,0:1
+gcd:3303887262,3,0:3
+gcd:75504,-62,0:2
+gcd:436,2123372,0:4
+gcd:3361227,943089540,0:3
+gcd:37340421,223177728,0:3
+gcd:-35694701,238293550,0:1
+gcd:4263,15500547338,0:1
+gcd:1493,38730799,0:1
+gcd:-635007,298501,0:1
+gcd:4968,-98492710997,0:1
+gcd:3367542606,17576297,0:1
+gcd:232155550,3921719,0:1
+gcd:4860966,700,0:2
+gcd:2323372237,867,0:1
+gcd:4268,-29035,0:1
+gcd:8,-73804207633,0:1
+gcd:395170,26163606,0:2
+gcd:-70027196,6945032910,0:2
+gcd:5871172260,26773591,0:1
+gcd:17125540,836,0:4
+gcd:1988202315,-68060596,0:1
+gcd:554434367524,-909419,0:1
+gcd:-40457802353,3398,0:1
+gcd:410791452776,4492144466,0:2
+gcd:135751970,7417878752,0:2
+gcd:9593,31047471995,0:1
+gcd:-18387143,50226,0:1
+gcd:413450673851,-124,0:1
+gcd:-618513698871,-318914624,0:1
+gcd:37416674596,-8817,0:1
+gcd:6242382,-943205,0:1
+gcd:-4949666413,1501091102,0:1
+gcd:-6385784303120,899228089,0:1
+gcd:6308,-79643949,0:1
+gcd:2421,136928,0:1
+gcd:333180111,442438,0:1
+gcd:723761305,611024432789,0:1
+gcd:-91289,-9223787613074,0:1
+gcd:10944,57098,0:2
+gcd:57145099,-94544476,0:1
+gcd:9327105307,88173695233,0:13
+gcd:73230770347,67182928,0:1
+gcd:4810254287,-4310,0:1
+gcd:7200253992,9893,0:1
+gcd:-92709373682,-664752121448,0:2
+gcd:-2236424417,-69570761,0:1
+gcd:781963714,61084006246,0:2
+gcd:78553,-3773682081509,0:1
+gcd:24811454802,-26314981001549,0:1
+gcd:805866671,8061826,0:1
+gcd:4281823377004,2916710,0:2
+gcd:15229,320560332911,0:1
+gcd:6093153060,357460,0:20
+gcd:624794507388,3264784,0:4
+gcd:2632503413711,-514594728450,0:1
+gcd:7216089,86034,0:3
+gcd:112578025,4532680608704,0:1
+gcd:-972617496,-1100642928524,0:4
+gcd:86658,-56860,0:2
+gcd:2292080,40552081391276,0:28
+gcd:57144144326678,3579498119,0:1
+gcd:77390585076,614924,0:4
+gcd:685579,959286825595306,0:1
+gcd:346354116,451435163995,0:1
+gcd:443946215999,260668,0:1
+gcd:640447120070,-441698,0:2
+gcd:1253208493501,-8521171736,0:1
+gcd:8507343,62395589,0:1
+gcd:81126006,461820852819773,0:1
+gcd:87891707090,40954510522233,0:11
+gcd:-767589,-991593,0:3
+gcd:86229155,43027930,0:5
+gcd:-431963821,48986055721,0:1
+gcd:101557073166691,-74080192,0:1
+gcd:-34269048183,250074,0:3
+gcd:7650667716360,-959482143,0:3
+gcd:-176432105527291,712269105001105,0:1
+gcd:91973525400419,-52180215632622,0:1
+gcd:9054526,-21388581343089,0:19
+gcd:19326311972,3180878,0:2
+gcd:501569850634,39035351302,0:2
+gcd:-3470290487760846,622612793613,0:3
+gcd:827793089252612,77591849874263,0:1
+gcd:19866668332,4414961,0:1
+gcd:136274450771,8659380001,0:1
+gcd:952660786088689,171372582380,0:1
+gcd:429415374,9140880954,0:6
+gcd:-368107346,2945634,0:2
+gcd:2147845929,79983807840463,0:1
+gcd:77885771608,-51236668812562,0:2
+gcd:62272695670,208399244,0:2
+gcd:61973019,-1405255816878779,0:1
+gcd:286206733986,212837117931767,0:1
+gcd:-131938894,1048695278656631,0:1
+gcd:27109492,306933238851468,0:4
+gcd:-314477095129839,3837918787896,0:3
+gcd:4116345,9101435151,0:3
+gcd:63853435249810,902940229903,0:1
+gcd:80076033,14791385,0:1
+gcd:-31038678,1454704764,0:6
+gcd:20638192722,-14267370499730,0:2
+gcd:8065790684,-1977228453431,0:7
+gcd:362687955673,99742877979696,0:1
+gcd:1235326072088,201675880263044,0:4
+gcd:568009735,49546482048450,0:5
+gcd:849579042,-3197920541,0:1
+gcd:1808291492597692,96814519920612,0:4
+gcd:6275712123233717,739880208952795162,0:1
+gcd:774075573665981,7523229210171,0:1
+gcd:2944466357361,497012903828640,0:3
+gcd:282862415058866,-6240991940068,0:2
+gcd:571225883598025,189932649930728,0:1
+gcd:815309478,-371377784,0:2
+gcd:320172590239,777220834144,0:1
+gcd:654332382,7919190746613,0:9
+gcd:-5094673003562,268414312780910,0:2
+gcd:-77841790209187781,35267718271550,0:1
+gcd:735762990564598234,-32739891496,0:2
+gcd:-5999905013129575,144027889596460,0:5
+gcd:6861193105404525,-4725324526382425,0:25
+gcd:859748569384694164,98523184164,0:4
+gcd:570460270963,-54720108308,0:1
+gcd:61750383079701,3452251304617,0:1
+gcd:-1738716695,8560399484936237,0:1
+gcd:9953417006786660,90085339160,0:20
+gcd:188523146978,954842405502,0:2
+gcd:198834734074395695,171072375577893,0:1
+gcd:-102893613303732727,155104650554,0:7
+gcd:90836124710855,-98332551310,0:5
+gcd:10512242068892,84377075433,0:1
+gcd:-726835478343584190,29339956106373,0:3
+gcd:5033847480079150451,-69469662902517,0:1
+gcd:3869558083241,-8770208065,0:1
+gcd:46079368203995132,23609959311256,0:4
+gcd:979137194422864421,-1378816153373947,0:1
+gcd:-72618673468,-244198092166982349,0:11
+gcd:529564016606,376298866055896536,0:2
+gcd:554186920892,-629719688885314,0:2
+gcd:3455963977845612750,271884481278417471,0:3
+gcd:-41270780965441117,-4124462824121691009,0:1
+gcd:47581683736,9394210662450,0:2
+gcd:8196306676684,76732052476696223555,0:1
+gcd:2939970750639,-2013582768244,0:1
+gcd:70476757656499,-100957934015971,0:1
+gcd:3674841030712174173,540185467629182772,0:3
+gcd:82915322420038008,123799513890,0:6
+gcd:466513077506,73565730651787738,0:14
+gcd:-38890216282311653,91459939591112,0:1
+gcd:576595981539992,20909590051109791,0:1
+gcd:956905636477652,8381376662473,0:1
+gcd:9187294026565993,54295427509,0:1
+gcd:8866081281165098,6545042142269515,0:1
+gcd:338772425501,-750860960783,0:1
+gcd:6750486296504,8609697533187,0:1
+gcd:736067207074328,329259058372493427315,0:1
+gcd:680100030114145,52232423165123,0:1
+gcd:22697310250913136791,365228836596285515,0:1
+gcd:30594845950075862222,37349482121506846253,0:1
+gcd:866936756424,-1765396942933391,0:1
+gcd:6939438360479781,24559856763503,0:1
+gcd:927595346004843560,7670228140092963222,0:2
+gcd:-357321286444971587,7925597841132985664,0:1
+gcd:6673370692769029,520191499051311630305,0:1
+gcd:9013236794945,1008467412252240244,0:1
+gcd:406532185466775673747,9519149309169118189,0:1
+gcd:548046408595014443,777065152533771,0:1
+gcd:23897406396584,-8555442893510156172118,0:2
+gcd:54729344028716311850,2026849525600172204,0:2
+gcd:-7936445752013,-98698488318151151,0:1
+gcd:6309028281362257922,271678876766048827,0:1
+gcd:6357785774765671053291,56936125648067424,0:33
+gcd:11095109588014,9104811531028000846,0:2
+gcd:-921590308699737078,472826384755153630,0:2
+gcd:652120832633171211942,-3387083844442113181,0:1
+gcd:32731949302549,335896184427699,0:7
+gcd:3635516318567409721998,16713986701316425,0:1
+gcd:6746198240933100303896,2007405485449,0:1
+gcd:-19072614334803913032,-240759760944833349,0:3
+gcd:828472954262165857,127978158379025077,0:1
+gcd:8306750095431507743,6378030328941226919,0:1
+gcd:7938532173109072,7646615157112938170608,0:16
+gcd:25274397567311,3125247753747112,0:1
+gcd:0,-6378030328941226919,0:6378030328941226919
+gcd:-6378030328941226919,0,0:6378030328941226919
+gcd:-6378030328941226919,0,=1:6378030328941226919
+gcd:-6378030328941226919,0,=2:6378030328941226919
+gcd:400327281633151431,37147489147345586,0:1
+gcd:28164658061513141691,818613450005821036296,0:3
+gcd:476291935913056166817,170589720180888384,0:3
+gcd:84130837655605609,16051948347568699941145,0:1
+gcd:438146043336536562159,-2206822496905640873917,0:1
+gcd:8120293725815373571,24028314574527126,0:1
+gcd:-667658265953408,8440015504605457600699,0:1
+gcd:53314441150262832895,283247085055963859,0:1
+gcd:6658153298145442,2140281300389057549,0:1
+gcd:213046498706732967,784948480361985741,0:3
+gcd:-3857522843819,419578526133778265155,0:1
+gcd:-4948941087660882967,-779517282262677550602,0:1
+gcd:4277076043224464,448010594023993,0:1
+gcd:-644113523059324254840,-71225587742718143,0:1
+gcd:264902435468141506,-823887292259809475,0:1
+gcd:1538706915662950684,448326823774496344436,0:4
+gcd:2036808313025110180,30422160628736748027,0:1
+gcd:7385426850078311,9871854919284839,0:1
+gcd:804644713550364054117828,8379163811459445,0:3
+gcd:981008037679996757191201,-641409668917881464,0:1
+gcd:64201713053871850,879119102660231895102,0:2
+gcd:1033957429367195,1113485105415049436,0:1
+gcd:14455075580451942850,-1885962875546302716,0:2
+gcd:2615475057635555327591,71606675442458157933637,0:1
+gcd:596676024530775,2621192750454214313695,0:5
+gcd:71665682789483848832034,351563529541544408090967,0:3
+gcd:5092055214749737510271,-1833800774226189505,0:1
+gcd:600508413963341945,5057063373752305154,0:1
+gcd:-92318043858914149,958444935645415778103,0:1
+gcd:385447683586530283,1775981280157037775814,0:1
+gcd:80717517906672139,362327909576030289130356,0:1
+gcd:31249856290116188,7875872084416640,0:4
+gcd:5339381130045070,-287550419156538713298378,0:2
+gcd:-28993892995370333046,698005135756870427,0:1
+gcd:9179674525723481348,81469928617693608886,0:2
+gcd:7522547789649675160016,285918417200326088447794,0:2
+gcd:-901774653467788803,236000195734098992,0:1
+gcd:142671415131788790,-2583777714764598301032762,0:6
+gcd:951078283105727024828,1487627587101952300275691,0:1
+gcd:19185476025869672486,2445736876347152429980675,0:11
+gcd:6741226163186521681303,2568160083399218078514720,0:1
+gcd:3987919571578399660412212,9884144363611069680876,0:4
+gcd:99431631881940059268,-291965406586754754564989,0:1
+gcd:36727416735327035,-1612205593089728906670,0:5
+gcd:19590774006340220367562,984968880458891391,0:1
+gcd:70695613219926859099201753,62591913993270611799645,0:1
+gcd:77425442645246583405,-296832015660977965,0:35
+gcd:807971872592227526408,40230405885131399744453603,0:1
+gcd:965370212546292322,92058451234918953535616,0:2
+gcd:418561885926860582,239657399821326936,0:2
+gcd:4657697584188823828175,78713797195009784682708,0:1
+gcd:-38091455008728662,5763777114003492300442812,0:2
+gcd:54943065861736600767,6268390929335695219433,0:1
+gcd:-697639190379957186138,2936028900796584636,0:6
+gcd:96018089280939789090187,29566309848085271814423786,0:1
+gcd:-1112368751522257152114,1995174854903534746993983,0:9
+gcd:-84342841213955171500540,5699084396809137598518,0:2
+gcd:225675029492277024520800,92998377812004114915728728,0:8
+gcd:7655269162163547244,594548791001649285,0:1
+gcd:17608380663675562604,264448308193844308642824889,0:1
+gcd:223093179893694063251643,17908241494426478956477995,0:3
+gcd:-9501451313199296478183,164266650410143061944307590,0:1
+gcd:4558730178677382262,3122005086984557462,0:2
+gcd:54440882483631228680923933,4478571958703194374379,0:7
+gcd:36855929355558415329723,308635436762628905,0:1
+gcd:28683868680975381560,42902583850929860163229,0:1
+gcd:24731088466679335541839144,81462858536522998396,0:4
+gcd:-72335534127835253275,-227166439208550011362,0:1
+gcd:474777034176054735892,839001319154604024448982,0:2
+gcd:6299666296143449904,797331145004636509,0:1
+gcd:8540885149755672764459236,41765710483565552588310,0:2
+gcd:385990739803366398,2963466700114736836981086,0:6
+gcd:-37246197932269024,3005402223074948482,0:2
+gcd:-751622018429096822596,3003864133422104297,0:1
+gcd:-6108319432277782804,-82931541043539126216389,0:1
+gcd:30921518942393713547539642,721143788088068568685,0:1
+gcd:570903751254308471830202651,-564896588437884119958,0:1
+gcd:1054271475454361570597270062,16484741384321323400,0:2
+gcd:6529831639822170310307759,85346429845722052312845786,0:1
+gcd:-754058902141939454006,69516695016006129145191,0:1
+gcd:976193241125104191848393,33823563038032982713854,0:1
+gcd:2920092456500658009757,8895875497550350532901302605,0:1
+gcd:9994369499844252132394601638,93334243646132127297454621,0:1
+gcd:569015432462996733746,16322837154963292812416483,0:1
+gcd:192500272569416024937360278,-235265435750733300361,0:1
+gcd:5267095375035104443898399000,-764192677627393558125306,0:2
+gcd:51025753118541843018,-1664207936338749988204,0:2
+gcd:-62402848465899883613105,12900108782353988220438351,0:1
+gcd:-8212641700259728565,297115088713153106682478,0:1
+gcd:-5313586393962705049080,-76998532453336088964044527295,0:5
+gcd:463290189242313601142817059,969769350842083604500926,0:7
+gcd:1917277332460964412252,-708614825339303498360550,0:6
+gcd:99562752968815530108,23844471852654970991199350,0:2
+gcd:3003923448532254675001,7732856831499478812681071,0:1
+gcd:5794073936773633607324540860,-76553654622431077040278132,0:4
+gcd:-644932980169883872037968349,42642515095105038480,0:1
+gcd:41892582203464757978762451494,68041907390182959305068217308,0:2
+gcd:-5550794996398648089925,-61773015425098686639107,0:1
+gcd:26506218374693057900,-167675112099207386871,0:1
+gcd:145568384864275126584,40072954892382195328941863291,0:1
+gcd:3161170925861501561771687,413220145707787390821,0:1
+gcd:723440854928237000349411,-71208223609049472714282072,0:27
+gcd:94994080481292730137,4307839512004666207932600136,0:1
+gcd:7821178378958515500742,3087104738440174209004586,0:2
+gcd:869891649236864909625695,991848579874131467931448097,0:1
+gcd:17628160996789341122894,299337591195948255548811,0:1
+gcd:99527056994641754235498057471,655773087035017085668857,0:3
+gcd:596721281791001887739,-328175786669349585798669238390,0:1
+gcd:266802917073126657350936,148259550527207353925931727,0:1
+gcd:297095531532857951877,8071469565512676957784213778,0:1
+gcd:-64574484904487858142015156737,351049851111701482889769,0:1
+gcd:9213606993296693767546,-974475310790221342435,0:1
+gcd:-6506246525097752180174,-95653949321972166356216836249,0:7
+gcd:7211807452760603826715508,25981532388511222064867790,0:2
+gcd:244358078258267292267766114,6788410077941126965241803849,0:1
+gcd:-84498071017578145227329893,51359077717175899950414794158,0:1
+gcd:315675121566194900458712010,607326754590110945679173086,0:2
+gcd:3336777364604897112789890,24326442512123908471776,0:2
+gcd:-631164366791648249399815693437,224085205047080377284686,0:1
+gcd:-9374071452933990971885163627,-8124264246742383054580586,0:1
+gcd:-8986611810629266612086889,39090932189616079255587,0:1
+gcd:131042125952122412011234961669,-603299752062616670818260436,0:1
+gcd:-5931135084197112120929525527383,817854717051260202081870677650,0:1
+gcd:37076034350171687718404493,6575825691817817445639700141386,0:3
+gcd:6586877468189252639017707825771,813151310907233772623665199797,0:1
+gcd:2933337084774328653741904208050,516673656644156545121601676651,0:1
+gcd:-9902991686684787357658450,173313993122814232472956,0:2
+gcd:9274522469490915283112908394363,44864081129175577116760112,0:1
+gcd:9608655195311416270604257657,65867528105907714734959487,0:1
+gcd:853239911600142024011098491,17829323361272785163230303,0:1
+gcd:23972081642808055559504902,-4501717580058722285684735,0:1
+gcd:5314236376598680151908105,3994830160691915764873,0:1
+gcd:4935319583093232012062136782,881389216056886912824752493825,0:1
+gcd:580231659494763900889556,96767644291944525456085901,0:1
+gcd:303622305001319462939309066150,-27984889540977885375442171280684,0:2
+gcd:8908131273613694428163643,418798812110676949375564324,0:1
+gcd:604960317372762640669451812,820482420778387317631260055,0:1
+gcd:3125355862613621420823337,52123353846012574000878521623,0:1
+gcd:35876668588605457895900,-237986271303986771473105323,0:1
+gcd:-43001262189486935668928474222321,75601013836677651900921245468148,0:1
+gcd:50360054222226284955381499,-7538629547593198554710875138,0:1
+gcd:16303655607623383537122,23252538460647040924816117157,0:1
+gcd:29876051059586965106021953,26235768232838079362376,0:1
+gcd:29623076251397963944271763623335,47441755805615786352682527,0:11
+gcd:9892811422980328964557595259,603482574014084208448431822759,0:3
+gcd:-2549498483308845928405350,2555383871703609992631017913548,0:2
+gcd:-935906971037827073384146870,879641356065373793312781,0:1
+gcd:19597038710644290533555897021,2985160892106475439715913026,0:1
+gcd:-5608937456930306694772980,836399586633606428927522624674,0:26
+gcd:7718522069758342120350478031,7389561033066750535580836572,0:1
+gcd:718875898101761373218778459,686314096776480574628984874102515,0:1
+gcd:1300200863593962819188902,525922101427424561614551608409976,0:2
+gcd:539220635752920237029329058,29487916769600117002583914582181,0:1
+gcd:5654437789656914341120143121414,6765853316633901505298664574837,0:7
+gcd:103114174998937498500059583,920095995082794389728025430890882,0:1
+gcd:29882936700790118228421849,-1860889369990333700884198092,0:3
+gcd:8909623809613954310018698,-462806578041198407432067106139,0:1
+gcd:7230230288816368650543810,22162946284655819337870476,0:2
+gcd:734442358589456361847988629,1647427465162259118128391711,0:1
+gcd:47616626651192848094181030316,2182277257935167463613810412,0:4
+gcd:294703827229370598691617,63046555168872062038888853,0:1
+gcd:-533653415261740333749397,-51216937243134223196656339350075,0:1
+gcd:784368839220787531616946253680351,39613735771181195550018240677,0:1
+gcd:5770744507580580048400572,231937913382367374762373686161,0:1
+gcd:388816489715059942531589642,82051838197217717225950877,0:1
+gcd:60241729629297025142644618709,85181464884435369517497693388632,0:1
+gcd:1560786485638020475934392460005620,8850527081981124295638445,0:5
+gcd:8296622334734688413856037840,-83875508267086319614619277276,0:4
+gcd:-45794179084517723375284971259238,-49063790774577780701852303,0:1
+gcd:1752071933321291709931075226933,57773126045256149501100162,0:1
+gcd:730668796977177255106481634556,938608337106204028806933670639254,0:2
+gcd:921730456287198291208119641693911,5458708493078803375257300,0:1
+gcd:213400535376420556914942871216081,4183995847570912793889135547893162,0:1
+gcd:32806047880829491896013320805772,753489056993475245589087354,0:2
+gcd:15218771998961411533589410518,23457061020403160442042221,0:1
+gcd:9046617676720978441798060,7479379807328977629621989162,0:14
+gcd:2219170169044655639393672927,-5391273013704097527490654785062,0:1
+gcd:277590531551034474232270111103,579362077865358674190909581933,0:11
+gcd:51422590325724235826789079575,2121952875387495603452158,0:1
+gcd:511034032165016743768820348,458982236103828060996895790272,0:4
+gcd:4440454508740215531301617636697,3258309525326637800581711028116821,0:1
+gcd:6330009746329830092300048092,-6167250670699283492360751201828007,0:1
+gcd:-9374602262965156933926707655416,-30595740075402425097079774283,0:1
+gcd:83645893910576549628700447097824,49931389572768584324081547829643,0:1
+gcd:8030747712125824227213267818544,63329417394086865663449328880556,0:4
+gcd:378845361147099357535431194,38180105668041356349238612217040,0:2
+gcd:25958762365949818177158173188075174,40582859445868015162861781,0:1
+gcd:95871031013239291309686124,64936572493882710890460913285902999,0:1
+gcd:455128054133718561191432952712,39088645380524987234419335395029,0:1
+gcd:1307047523348091088814812136,44132853285705545682051355847561,0:1
+gcd:1418285824252402530993393665755,636810955908181043849421782278,0:1
+gcd:3071172872783184341780369192882346,-58125204065109316437571977973,0:1
+gcd:56958148205198214736866933854,4922289245511311172745764679844,0:2
+gcd:4836813580368584281452577588,-5400032605107989894617874622172581,0:1
+gcd:493001845960066187429806680791,4028800209124423703294502145421185,0:1
+gcd:71197215106470682909632132625,70077573297929109151274279,0:1
+gcd:486722080146274783096432055886,505595939085965376271620470551,0:1
+gcd:-194536785271632924316130857883181,8276525052027013498990299177664024,0:1
+gcd:241211965193448971857220311,2710726738427327769580581757190,0:1
+gcd:667013805494915469984846976421,118549400818390788595763048,0:1
+gcd:507926799850267721181735296662204,67253859677995358015731931706714,0:2
+gcd:448088677681619431331494894631309,779948091351174817338856782981850,0:1
+gcd:187408370748924381155985806145,495794563709904959946586644094587256,0:1
+gcd:868633158815673181555237006,836615025635832190680248872,0:2
+gcd:945386362083356835627622353491,8230893874122803805176630038821,0:1
+gcd:5596932048341890824814087121,-2850793263280920843358756089,0:1
+gcd:92079468846004092188293849,65000203344267255501708018874742834,0:1
+gcd:284485059147524530505559245415623974,-52174853366891975161102679787418,0:2
+gcd:225019940499042054289943285,88057001889802818516938839002453179,0:1
+gcd:267625311635136684363577960127905,2364801628264216400078340665206601706,0:1
+gcd:-43414374537943144129863577734786164,-7033210862612719519352562332,0:4
+gcd:32883132771659855270849300682688,359989040176539024964573548207106,0:2
+gcd:8225754994306229461538669946760,79816684330375527507314556065816,0:8
+gcd:7425838080456254658426507595,-1772612320788255147892065709861,0:1
+gcd:1660461221569443640519526747903779,1120888096894032723781619067526671,0:1
+gcd:-11718764104457037189982579964973,581785925357694644406822708535571,0:7
+gcd:6811677000322905212875962023,8457366124986245338105030092893823455,0:1
+gcd:234277964462994083732538315234,60350281492645017737168270090,0:2
+gcd:4183588612759663468880479337,-629574038019737820951243554610835051,0:1
+gcd:2509727174403533842481294816277585179,366325095871570289922697736369296,0:1
+gcd:9652053493694317708921453500950,-91539642994112368354952933916454,0:2
+gcd:35148593969489612322148628595,-82585065708416968121031576511657,0:1
+gcd:2800741702103544119527140802733199,46761480207188283686223358035,0:3
+gcd:441336276433669766301405280032,2656936104993980830437872804,0:4
+gcd:19746122571650880858695931178058857,104545112367422664420669962306,0:1
+gcd:74432478600289091913597803372,1021411507303737809729230605483660893,0:1
+gcd:37218119790882940825047165121,-9786692593914842780007874460688,0:1
+gcd:68400175404962139133336849460667620753,8111497426974768586772111911266,0:13
+gcd:-36411507888779255237781266679960702586,288273015425729999064058691683,0:1
+gcd:-93804297004149089553676142929158,72597578405766612297542242292431,0:1
+gcd:-82026709713179475197473688526642531,5827788603588390535677091203646382966,0:1
+gcd:545760067487517393173385480028,42151112506666653978439280505,0:1
+gcd:-697412421088675986809554647004214,6926944054264140642234974161460,0:2
+gcd:57812799959867792819685059219,779735108345604313576941265627654,0:1
+gcd:1472311567166258003445083977221663144,83378953824849274359711951741465,0:9
+gcd:570337459673916278308389115966167469,6333660822968779197930730584647562275,0:47
+gcd:-388785693105293562593219349398,820248784628021659491960244881371621,0:1
+gcd:11679788667362042415563834445557578,-5819547639993570526822921884507,0:1
+gcd:-3982959591737356792197606403519482273,-333248358612381656382679653253,0:1
+gcd:17221610285774362123428353448280602,11458184790118982447972303969280231679,0:7
+gcd:772738633297996807166456840381926971,785759122171938805714543081571173360415,0:1
+gcd:125784145401376536208808801528812039333,452055550313139515567680226389953055,0:1
+gcd:32903571905950760393177782893378791,6631740924411766007832465757451477,0:1
+gcd:8742677352155721160009371273251,25083360125803108633092433384973055,0:1
+gcd:36273669132247708836176424212020,533102320793846929600697481505030771,0:1
+gcd:11965144674509690079804137520044857,9349045655011350274674885782216185552,0:1
+gcd:3321305668226664033356712162893,-403949753985171409898849824686029161,0:1
+gcd:7395363159337411027760652209127419265,44729331460301249556947662501414682,0:1
+gcd:871058047335719958990871843414,28094200616974302760918376942978068402,0:2
+gcd:7704699734056436938779166257084,546898541513497897846722209401,0:1
+gcd:950290435067652970604023856243611,4001208123591666075058892234775,0:1
+gcd:3119293215232541154035748455321571,808684220462127868482572087900610,0:3
+gcd:432360858532087298548744564083197299,240846574096518547683557847064319535,0:1
+gcd:-310788798729818682147559678302,-2172955391250831365155305151397888,0:2
+gcd:649283478652713472152371045373000641269,9179675498867400603641823155076,0:1
+gcd:79980532708199255123596245351024866045,35273005660545430889304120342364,0:1
+gcd:-83351007958684418946822288153831314277,-51634644710916030743119182132599855,0:43
+gcd:4992915740405389949821656927954249501,4523923119542484578579105473053048,0:21
+gcd:-801991401381703662108108758716412,1462655905419442096496214673085035312112,0:4
+gcd:679369055865583831572651301119431385801,6364653911974833953564963906049365,0:1
+gcd:32178714589413433072024739357148883,2182815001928827996341206621079833349525,0:19
+gcd:604754886257955637472038235002006997,75686581968330008368600832791867,0:11
+gcd:287068066584060661996114628597630371136,52011890293701406927883275870768865,0:1
+gcd:3979837024286745384581666788748758,7350136706945206821986896298939283,0:1
+gcd:7385865195603313817759905903511277,1520983986703891701713359953638,0:1
+gcd:764457193068206149728854992613,27858021258550102776458498820919,0:1
+gcd:-4155789385717252736363125208379519,513716864065732253356348104577569642,0:3
+gcd:97365354260983249124725672833811771,5020029690975786355406829440294084209626,0:1
+gcd:83139160308299020652846789174256754,3913486804605023733190361150860684,0:2
+gcd:-17691166446369130975076403772363811082668,94600134419678935394632555907142,0:2
+gcd:634823647473707443708903538054380,3956996255499668253479385484122050809317,0:1
+gcd:-3637804742599340390876015169076139565692,783241759542604459838225899706055858717,0:1
+gcd:585812248650822285457691267576462,21534520461947113931625020852108318,0:2
+gcd:11281432653044672416448534028211038025,711109480140515578563170257201359462,0:1
+gcd:676293649029453415159585825583394,97280549393475973449516311017466882903,0:1
+gcd:-60552656313655809329731693060696763524,493007935144068742422888317617165,0:1
+gcd:499127054152037037035927375386500,1203956412395744650060889503126393,0:1
+gcd:50094686288665713475507184834256049095574,-832478827433992238527275985275884802100,0:2
+gcd:3587136855297236649460183411772356035310,-712398604370738955166219235841134498742,0:2
+gcd:-8101551106022390770336067301182994,9185799272249263720169676176910186035467,0:1
+gcd:68680574795029722620883183609775450677,-84158462638889794851250260034014551972363,0:1
+gcd:155258118178686765062886673806448566,-6850017870177195667059084688029341396610,0:6
+gcd:285166743996114296479394289968524943,559627723033455856754700399288311,0:1
+gcd:97635198013817214038209538637709608537616,-43337611052093405089732573050042882425535,0:1
+gcd:2025635628106428290541842218677337,8363403252785996217814021695187802,0:1
+gcd:39403341320445818916772945982544618,-3081545887974055895915003777735743,0:1
+gcd:66538675039876745133366881210395320367369,385523580015310377616062750074359,0:1
+gcd:568797587304724025372575349953868,-809993079501337508688725757864677957,0:1
+gcd:87438670031005707662235517162074411507878,762858503307630620547057859718065131261504,0:2
+gcd:-135539991676075663249711183869449098,3187117064807540583340853903135708355720,0:2
+gcd:3623316226168035106420698863103708,281527696822113339094642926844583498510,0:2
+gcd:462743256592937700094228107961335,-6269566498572477078237555404177435,0:5
+gcd:-685484600842741055621576203380446857767,871551172534175305655069705808532,0:1
+gcd:220964518681325411201409247135357488007,-5641829172229111635876189209726787450,0:1
+gcd:302531333113895329527974519952510,186535245939488501803212618851457571589,0:1
+gcd:817537141270922830542026664184986,7821981713799768623509532856543951,0:3
+gcd:8468979244486855292413811013010058,-209488808243349961649691393540068,0:2
+gcd:879852422051274089521663230058530,49497155404087571445757965616479604,0:2
+gcd:21764922287301916637920770938954126,164044760066720848860497915166650797335,0:1
+gcd:59469732179854673335933541543666124,33859516881008254191737434099260638598,0:42
+gcd:5622782096444522942366700649751601671560,1818924766888381565955786591467033096941030,0:10
+gcd:-83658234598433632746857009684831849359505,-29016349811234824466750396183186748,0:1
+gcd:7054089120269602821498711515003074,4095832337673576318592596805192095781914,0:2
+gcd:990394898068553803695514279851854605418847,-7739084020331097221051527297005947155388,0:1
+gcd:54075935489906064661012070011939942732,7918292813066039667153314788962651008581,0:1
+gcd:8772115771437424285869834799732506658796,-932849018789404004804426567212331569,0:1
+gcd:-474373401937043543973615567508636867124,-23736477393422078122335330115520892673,0:1
+gcd:8436352086792195283692976718955932574,-24226347745891111460405966918193715809620,0:2
+gcd:814519302031186083731939523439915121,55324835095437197264275880684820442585,0:13
+gcd:-237764758709584162016066869681905512952347,27730963225107998869867496093972168,0:1
+gcd:7518474854158787395750001309747813,8381114315785290417935232114225100106214,0:1
+gcd:57926271609377407522025180011097851547,-460438760475654775684236043340437433561,0:1
+gcd:6638349918167655693810387712273716693403,55308325418124425819340246954531134649556,0:1
+gcd:-792096039638367514268257857215475476214,17985352918594429617981644232595132,0:2
+gcd:17523605051927467343416676052611136060682,32818776862511079287568864844380549,0:1
+gcd:435598204136143930685119666237820390,902306362378699323196514142749053448065695,0:5
+gcd:7246625600474134146152993995542881524104,84045078681310625106949990828070364497,0:1
+gcd:-787638361574460696958641849383712843152717,-98972482600264920015196417920239935812005,0:1
+gcd:82374608290966933640517911377351376793038534,3375365592517566879211534105358267232412929,0:1
+gcd:-65869507968457359071511077346860349916,233541308077986424091233056554170108328607,0:1
+gcd:434965647854018848199731601803786298508849,6881642201690537465635377223216241,0:1
+gcd:719612999193225374224745692059996056358,-315519530953816852193901984099603790510,0:2
+gcd:3371856558784507755414140667220962994794,-46940188151078159734582108552804551252391781,0:1
+gcd:4803433840417804894873156694592939602852,-72456645795090954873268375616538340122311,0:1
+gcd:48568835567133010333265540506612310476167,-10706367926604784868082114989212135746648832,0:1
+gcd:-640514959144433868933444881224466486263623,495227035072426375802319189512972514543836,0:1
+gcd:-6488859550432975345382980598094012298,1739553070312394609661279054142037504040,0:2
+gcd:62439762329215278757554454849955204768025718,79602289985731119990152260854511851,0:1
+gcd:6054057220822234921996955072468282902047103,-41461621564455176604944655360416823,0:1
+gcd:41593335543156355768394832800525873230,751910447000975730197547607815241920,0:110
+gcd:994454253731718339598418586069934146007,674502407982587721309172287657440910774,0:1
+gcd:467599304203676521904495847137440151064429,1065364075426775111107441639016359411726,0:1
+gcd:-50006834540638623993722097585899096403763,-5313099491095445109561808031972399857647,0:1
+gcd:80633786527554906657368596063180401716797,60423064130048311342811193512905633441,0:1
+gcd:7515721962363288712694440724080300383839,847957688242291310060264069657345589412622,0:1
+gcd:27726212382161724111674518621229053817654,844465139764626291093420179330707907,0:1
+gcd:-9817131728229141224738800156068771165515,5514447437310670168515402768125807553,0:7
+gcd:1101490427405231724327190816394483390794764,-1715150116840413365727028822839059671039358,0:2
+gcd:8714614705512806124985108394035361802445153,2277516152797095323407597912040972562623326,0:1
+gcd:-40241069975197162607015133362864260639182295,92350494843755720369837991386076354459722485,0:5
+gcd:94926798565178929705057494111757110129555,654944641739167114202854904453615515658738188,0:1
+gcd:265280847975099333384365084677641815670787,79159871617113409657206914064640126799879245,0:1
+gcd:116347226264838928071222153238640922289035,68573180747149861177662470447052670907671443,0:3
+gcd:1040609825768545533315151293676302487896884,-81323728160947963681253577857302080515,0:1
+gcd:995902591817252306534602024050315471330353754,5332558356879676808399004303967153306,0:2
+gcd:2001969035383918099033090062929650143669765948,4190101466247488888803682714062857957220,0:4
+gcd:520711239532941932960582838954921846930386522,-3853096594619017503346777573808512971,0:1
+gcd:60199373689261241651972446393273631317362,4966864098864732001544113870901038040,0:2
+gcd:945149245494027792287917914515672725163081263,8902933189066222709145663761457459365794,0:1
+gcd:42113632082774519107063284261972952560637120,550965713086089226514793739995356299364345,0:5
+gcd:699130208513509445029837360613055447835,1388996167624703080432361535173321299212301763,0:1
+gcd:2708864861499120155181972404884433662661130826,-9669434874243213781569557549324652869447,0:1
+gcd:-2663320619224926510783240759799877830,-9288856838720796348912703146202293649985994,0:2
+gcd:129339208558322679510730678747389994722,12274162664070343010820636150243461714,0:2
+gcd:7927826382521640149002540477963715500150746,169024688202278131082480706237325364215068990,0:6
+gcd:136906526225769628858637915191370345692692,539213183682016621647404279498623014328141,0:1
+gcd:30681142365936990868501835461428152495,-5027491490146180677917496407674117704,0:1
+gcd:-971981137022757867271162004648718096950546,4334305792750860480761829171455584581712,0:2
+gcd:578802014801938809246604894083179003839,4755521418153118560811649969223227339815203,0:1
+gcd:-85637729865865539531457719920611651870241486,974400175977421869121902925057819107693817,0:1
+gcd:-168964790731095355351979412256338118430524648,170138331609580398941494555432555720911428772,0:4
+gcd:790938498909251314495722876378080005340582079,5214770204816378474402582970231763702140978,0:3
+gcd:3097935765451813281781983641770574025792276,42609404056306319259222360596281494320705429231,0:1
+gcd:-98485087154927525975034391790808080098982,19775664577849930783360381707025488283978,0:2
+gcd:25900464334299058097279910365875929228,58255952834922520501042331752256379575,0:1
+gcd:79400185595521899110261406600117591081721314118,201740226840130845073877991057259510967,0:1
+gcd:981167299738316185980724229187020822277,8133607419206585086507618470282084549435045911,0:1
+gcd:81466412463591236560961446462245299836549126707,866192944729287017177690246604876328497,0:3
+gcd:6534998388738554052417315288897046254899165842,46609611771478693989087838979597248775,0:1
+gcd:948084924179221265735435784532032916982,31095014697784883179376411641933005719333,0:1
+gcd:2750322192684776089555518232723747026,16282797711115835147148988819960931175880625768,0:2
+gcd:-916832268194684002726682872945582785046,80175456371164380904577325966825746198033406059,0:1
+gcd:282231592138255672195189656428026230056,96673996679717919403145753072968455552546,0:2
+gcd:550580097204590201609373226827993784219420731,60517713169991893657707958780297059239491,0:1
+gcd:31526794192792048622410273704705620482050682,70537996848502378104686898733501905256490,0:2
+gcd:-923613180033278870451470473112995033306843225,62635452857298067541908563173475507759656054707,0:1
+gcd:469196843768624413897755875308788890398465291232,-15296277161521766221056511754171865009042943213,0:1
+gcd:2628065716223500508449356215564412668664236,713708318009199991674271791693482010536664884,0:4
+gcd:604553604369312265623368647573085123221252020,990982890678004704551740474471789043760433700479,0:1
+gcd:97586462652371414650265963064033775148721243,969409880443270812997088798402379069080662,0:1
+gcd:-765406874969209688613302257358735487317,687488505077706911028822098735771705823765697808,0:1
+gcd:85075624707999635862443444914978287825359,778046486301986342411165862027907781749497,0:1
+gcd:8227248806783006644129224253415431417213104067,-96883503079217553138854609209329008354340832050,0:1
+gcd:5027554007771258456873599804445876368468,9124875242153734630106913217321584664013715,0:1
+gcd:39245745484403729199058188063461104557810253,220067769421357576954105356315871937975114,0:1
+gcd:12265626358518464602956912462337886264411404165,-62808539324142868756473505816723401975937,0:1
+gcd:-12272356051659726939876917766506363796290,17656166644036956054896242696928896080969790493,0:1
+gcd:637223594292638303876168193085997138882431056,94504571343119776477559774058446419793557358444,0:4
+gcd:5571012420064356266635359647247635200655740,-21295217227115690481188602248443089551209070396,0:4
+gcd:5263843748978600609740419748581371970418448276216,5384845751134428162699702180820131424931650492254,0:2
+gcd:886573921242233631853410597832339291851986573,91564665302299543163193474542608720062467,0:1
+gcd:26539751625701457124278640373644598585396,2325338527842485879693477585982320189921160388553,0:1
+gcd:353508003643539157483752498296868928280378,10742495675871104458509832622060247315860,0:2
+gcd:-4734613561112436559828705330418786656799216681,5767402184612349878575526105980302509419976764,0:1
+gcd:82083010698635736174070971617820650592649198695,632174562080517027772509374721051956918078145045,0:15
+gcd:6173991144338684494350090118957116722781373,-738485502817232028305101940854863776286515,0:1
+gcd:-493513047233893983448577482415236886372545860,510358065314512191744416886029069217313650,0:90
+gcd:326654054139623246358073868314669601484091,-749350879522921841553744544029160051092161118734,0:1
+gcd:1402621524995633967650615579165227953957890517212,-4307813373241246419295301377872133252586,0:2
+gcd:429404746005804957738561594094664667352987,378882853314853204091011966904771925997210303,0:1
+gcd:332341701384724523211310134953299492552149033413,851224516641538736779656410258860743437969813415,0:1
+gcd:8093542646198882950722808884458624246299608906958,-36537804019444103265563497755234936603188804846,0:2
+gcd:22659814113479956892126670971189905912120035824,-7769923990496178313173088170032841760727,0:1
+gcd:-66431972193306385702365512934093484764859082,36581996652652744665199423002405565247156,0:14
+gcd:-888473800362239868616054745127669042022317,142999759078860850560633007783677610020527766,0:3
+gcd:5971942663513046812876552589351160577576206860,5155119487765712370432570496238254289228130147,0:1
+gcd:36328343589972083920724771391132711614346,626466814451530915421088090957480792070888316,0:22
+gcd:5293116409600323220539205506696278195160522774280,-89478075685508708042860880549625934136374,0:2
+gcd:79576614103508536656978289576589750212587261,852468870734033057111244131505440601392558836846,0:1
+gcd:8225066772418695359596812838151452668642167,32895491347247919323385073727832554930053,0:1
+gcd:6163942593967174125699747500635651388266851958125,35785148285967657728202559017385960485415693874,0:1
+gcd:2768453763718344802615194690925869147682838954,295289393573622382700104229276698254424111309,0:1
+gcd:543530772918490900335995207569824317804903920459,3816523263571207729432080444412751436592123632,0:1
+gcd:1092477340633785505464776554395206472561372312061,-80145274095041381989361699268630409045305877,0:1
+gcd:5221300639042222043517187865188827094681806,28716457589092549537459686031371792838180039728,0:6
+gcd:-468871256127286679587501070578429844680401783,7709908112767006788780052051800778651016113933,0:1
+gcd:60187668034435065431875732180204005950423,6575730301760601160210842777500398231559661,0:1
+gcd:85750547893356514086330287277441673045104762,79743140579005364490235586620393656130064,0:2
+gcd:4548581293372942515724176487253593549214930,4238661184062900689214356649238748109095650,0:10
+gcd:870890539340345883811990618518239041519315472381,-326492148393756245001717974027772662339968,0:1
+gcd:66987553698256227716875714961629477167428173612,90975165679807773385648454136069587671757554212,0:4
+gcd:55214217278725852504312036656428464058159216571,-38639629611220548541845337991516346077285504,0:1
+gcd:891217139364757949280558543150622433360536923866,30525879876993440244467275213072433106397646327,0:1
+gcd:-27569366446500582408824975793718887457276922405388,634666021153562229559368735956062829411322343,0:7
+gcd:502864235446447920785714797929749621810588808385,-661761137717295415776353819805381820532626437501375,0:5
+gcd:846540274257645306570757431119674434472851673,8616613565185012233547219046445322085886975,0:1
+gcd:-3309007371119113533010968742743901666008447,-54456422219293958622124113256532150483182055,0:1
+gcd:3808438337556464123872249539607274641406985997532,8958313515020597801994910602927304472155060964765,0:1
+gcd:3966980856734279836284487724100931405197679196,7991199588345191911654938564028578389298180118364,0:4
+gcd:65639444382189527381103754239686068124303248439,57344187472963481946737524023690750337279473205806,0:1
+gcd:415167227201847402226579925485934896345892,586575228633844519664975226407615633553394085108,0:4
+gcd:61619333876398280418219395631027787927517659829394,919912829682211281138193507951318719985265,0:1
+gcd:-868753784405826481862596863379498777711457154096,545880080147628730834302628389405153791727839,0:1
+gcd:9429941770445780812848883836626433106364646270218,13789105660912116612159357433833332620650429,0:1
+gcd:43608475425036256086742701999180132009804867174088,26543470249142438881834938827109299420258184885237,0:1
+gcd:57684506610503798187871631196324475714333617510881,471695506003883133237678946411955700467360,0:1
+gcd:45545031179301366913301053296868047362176530184,-91968879037454375774626628433933013352182139387,0:1
+gcd:-390021533721654785753654976920878586915091,77031076759836910371783959035306703983828680,0:3
+gcd:423541795082126371645621560317104281087986536944,8300998559716429411460238557591751288655280830676799,0:3
+gcd:-22004254439719621882091733525180851819037175217519,99335356922776842325949741933027888097618837,0:1
+gcd:-568617824838411255064542027229734991599889058339286,663945656360600870466864889023341282183894393751666,0:18
+gcd:79416546968775553905606945911160893343240489,57823044209535496953371020115352329847370545,0:9
+gcd:944931014689390846530685010237152128723129879051,9132010491010578008428313272813386452749469110941235,0:1
+gcd:10724730362623743957337791385603755532922863,72480373654893123070601266938859686093303005387292,0:1
+gcd:7713352208339235603081099644445084271357860,603624463205826416829628929324533190899935786563381,0:3
+gcd:-374652992235609318781751374140306949494493761487551,-8211631925711097443824357620157273567158306960781,0:1
+gcd:148033237001979427358794216800322662159772216729882,-2761071692676096788505988250569937615812882,0:2
+gcd:8799836897423935827052239970797993642793054321869,7294647877437509677171255169879966954414823484,0:1
+gcd:638050122120135743843926357476168630346968836720976,-521011870575614667006902791543319211035082259559038,0:2
+gcd:-17589569754541719055752617853886490778777621596833622,-757763302557856615098419826290170728613135917189,0:1
+gcd:-9391500830250456597029446286855934735787373415653,28432489383197015180933073382445953529667174,0:1
+gcd:597671128380217947385553643776956963479914986403,71727950226724858021016384499343090206442916,0:1
+gcd:220524861586728547654066186650842017022514113,99830670175055229565653522851124444573641171168883370,0:1
+gcd:-19711747183549435340491469077888147043386014913558,-1141914280129478236596364286858351511269528735,0:1
+gcd:-8382072953685010521572064715326232892979307367,8986558828596332338706049003428573784660004270,0:1
+gcd:8502152308582607794375019565844324676023491104593,10470050208175536662422671560468368371690332,0:1
+gcd:594601725521916181847167140525593251441576703983,963458725567603941710493681498226412426881800,0:1
+gcd:7141961266638507042734562322157608790427840009,-4549724799885066646710284284349071123364728193387,0:1
+gcd:-556279059738139499395948604306347001411150129841210,96265906951839620646630096006130967227739083772932,0:2
+gcd:9097507009232650355633416767082868346314279788737,-12952310876092402836370081770801404571317963729609,0:1
+gcd:4268792759888467657870170840963084681877952381149,45230992824683770972952637110379461673717665076497477,0:1
+gcd:-14981624589272129153412283534256311120144659052,-3422881033749335138988900898217088225431538419464,0:4
+gcd:1220927142068793741881867214403185329458765760024,30622524744504892825380221509502752145574896,0:8
+gcd:37912807996403481194979034824173466165481184382714959,-90878397829297201187948170371749592240094934625,0:1
+gcd:11421510093950565340830017403217629128966938056,2237414009357389011349863244579333296452235392013656,0:8
+gcd:192657988036570687555057992620686662908295387946910176,931495134488306662235768448970442482109561110,0:2
+gcd:3406199971289940059753501832956133340637816361746774,21717729758322757474808809344766892648120530501033,0:1
+gcd:6909979467876024377878180024452018966109074368033,842722308262405734840545048662350517397572773044955,0:1
+gcd:373077837411940479742523640303846004174658252010,174968689985940718533112057941120724001834591,0:1
+gcd:69447921082122879577796325457481062492384026062297,4859735149388070292660864796695584862286590039960,0:1
+gcd:97668956744134573191931364533568770116368809990432277,32650097939706033583832290610502297382443475332059,0:67
+gcd:-1130623853521736649164698623052358825973875071086,97117938880122601762963490311393663414262844,0:6
+gcd:5196766948376722446473792182397797566282488000645,612809465745222737408369151997835003504928829,0:1
+gcd:-260800009832764286426719551521843883719112476,-4764630548313512861236355180550436291099515479440,0:4
+gcd:446884272848375074930942162217302913946161786743256,21042882325490620038960351129083746002919260315816,0:8
+gcd:951599922613172445123982155673072679115439437787116,170174123089259663169419228763721448308107859122519941,0:1
+gcd:21383950451514823653827321489681070470148156716394,474049024111864801681311013604155672359293053819708610,0:2
+gcd:-470414357544256461922663993336752968654129573423633,9062081906619161788388889503790336651084511675587,0:1
+gcd:780091812513073375693179028189802313142318232500,3497278556984926411479728842600230671778387696053,0:1
+gcd:-1625948018138433921639232759767284243608022009577,842118879046315463699452834842435152085239651627,0:1
+gcd:25026283351500865895404594716390919370787136725638,193605742569640932386538365909397399503766353419,0:1
+gcd:4935030558829975380051283297334807636335988292915939464,826975811338155401386754284486847375740824437795565,0:1
+gcd:692976306506130156561485116659173381923120836885557,770158528298664593632506223863839610768381103479684,0:7
+gcd:79877139216893064041018839082816187503862428735,7269106113282857654532427145534479409503583394410641,0:1
+gcd:2539745404867281753796678186777103230989134057269,1232562503892732555700624680547460824244298064,0:1
+gcd:-12342369542383197426854745694214905543911988477283,900468407001638487525579769577535461149066925224901,0:1
+gcd:25508383419230789798346692675791795579961116333703,-3196912743165527117167038251788165837584914845275,0:1
+gcd:-1299528036083269250543034346520127753461072609198859,600594652353551219594047525595273354045086799190,0:3
+gcd:2299157394917175882710807816574923359426328448491205413,-72838172890838078649390158065336999589794176457016,0:1
+gcd:-7349901043851956691882158234459042155688766310737050452,38963935506607940884321914070762438994955796523516,0:4
+gcd:958387014018743982544025716556283287504010616036,1443504353635051762579994152447131178181054158,0:2
+gcd:246125390054194220242986809766512103907648232140291,244701030143825150512131468437935457382757506654,0:1
+gcd:-704660850546084071765145007935951186831012905395382833,5588984198927622386999113229239134076765551765835797488,0:1
+gcd:50682657377075501007405908966255159073041913889268,-221227972486061875975200412557047324616212536548,0:4
+gcd:-65153936048938235385603864221810574284616709045012408,2620409042204728497893539911547700871421142555353,0:1
+gcd:2124140486540339235997181873057458560557130144031198,6337118390151757487365380009696068490770095523526655,0:1
+gcd:70505951289040282645383932312380844925860919298,7547000534925894125969206219651626162975048702546706065,0:1
+gcd:-41539404414450841529694974131865311088044938789,-87120273993379326877611820290578462959192080166852098,0:3
+gcd:8365100924146743906263010309561180555381451232169,64464903694507870558459227754837948332608708108908133757,0:3
+gcd:-607028381550248615720149092346152462853976790359415563,-638047705393414341349283089715056902457142563666819,0:1
+gcd:9617834842433276206013447576300042077483363020815285,528061422615472570377974310003284316297281680382590494,0:11
+gcd:86576571095874523146332767288469633576872568596,28806568894922815646464384363885717260300665904363145435,0:1
+gcd:307009198563449723583109556832166934014223122475324,138726608616028283757694379054230076836833023549,0:1
+gcd:950446831200123302940271854492691726825599408858,-72101792770002156123347099210449392040964040896942,0:2
+gcd:981208671446974342191660850214776536471793694644642,42331603864003005956059961823201488180622810810249336717,0:1
+gcd:436034751789860072246023599184144455891992330310990,72833959249163120346712529298424162613591559886645,0:5
+gcd:90712859511805773491925085535825623597765615019643547,-747515802065477997196092836504038150570958532540685162,0:1
+gcd:397399782669545823592934194763075791833495372998,-59196779886291303828419299835113054892183602687860135035,0:1
+gcd:32400956990211215478801690694170683149459902468,-4583955972534683626923454093368608704790928252299,0:1
+gcd:987205647053507741802554416690401353287928887038,99876648283232575129630115679242229378848334523759990898,0:14
+gcd:613843278686603793281546390730144010908586402122774247,-5096436233192165525303465082471737429087562092805456864,0:1
+gcd:-976952961430926103170472845979881570029763109667,935178486322270132160329332160301439376977149568344208099,0:1
+gcd:-14766907052440196735362466027665124699631240785562617,56185497908476101017098165076418921931361374576783903,0:1
+gcd:8086945629611784458016532027184114429962417844094,915144274243273504802165174453120299631299876477769004475,0:1
+gcd:78088762763327100616786616097147636046671948600444,567540241084477255158834032762283528860020033647985833,0:3
+gcd:719986964333569855824423695658491299542433105292,-615276910378191482694097418592439439457014608822814,0:2
+gcd:45518095176552517046254533808850801860612235127698055,35562211507032265793347677842985571735031362689772443740,0:5
+gcd:9347651927739244225461883666785850681796998039204,-49878021756813856103391637115956958358002286487531,0:13
+gcd:-918018144578664428004161449615771398954961013294489,-670699097650597095681408528960639081653596263477957,0:1
+gcd:27390700201762535100035783959539579449610388231,-1589447744597072139866306928627083981945967837919031841,0:1
+gcd:2277199840598187516900058221233481999025368188568,9608219845154413235861538421470991851896216584568613,0:3
+gcd:-384224188940171310851587214747099156035618205974037811,-365155157346205326208918238248019306559191342503,0:1
+gcd:286446854858822908871115682474835177238732522628,-57158496101544373650727927690968913495792599007869,0:1
+gcd:-381089856197823678538852020226946248080829424869589,-3010621081997078653311455126099557341287585438919,0:1
+gcd:116824003493453841699155925492342665434851317689062,-23510392931055495213857939210838689217666922526899551035,0:1
+gcd:580076669302513896163920831671903321718154827187111,57642903862300589084685292813271561699366462736142,0:1
+gcd:5760449410973032312996903274730533429280588604119,54924391723347076414566698417788233810196808558058264,0:9
+gcd:5657781195595763129830083459999757852112323789572340704,692061618840647789470644193517118113508111433346167161307,0:1
+gcd:-411686824144764716061907353842274549877341843077020461,64596348790121485579427789661619008385819947602752810318,0:1
+gcd:632256394728894097701649213009572878755743290206395156077,831219707790000649838963373434914934485492976701321111,0:1
+gcd:1670481530219772906326138470230000469885289884882422,468290338328174403769157221534943442214405575737600,0:2
+gcd:-5940255960924729598832299636442321100271324046668226,57672031765846684220194592702663453624777841860734299817,0:1
+gcd:1070320750308710183653165839089007570013512879851785,1457798154372592051774290334996812066679847800239,0:1
+gcd:4878833860261622243309660185570248437064542060170266009303,2713399212910344466363698742990679778889654409261764714,0:1
+gcd:-153727669883775746511963322850970227020812560900211022,967696702028565741720227898697068313091723784217356354,0:14
+gcd:-540592613733911579302709730020084890208422708295834255759,1487237786400760689794761062671094249214728767786149324317,0:1
+gcd:6147134348286513705872901614503400707429078163757093529,477008107151085089956583728568535862114663515203848020888,0:13
+gcd:7614680849639684551334463800131196276563566036683927,25187069984138015151555984154271413618496480687947851,0:1
+gcd:34751974072174908316243318351151710272413759348773,8306602488518142539700335965542308143538343391985,0:1

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/.gitignore
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/.gitignore?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/.gitignore (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/.gitignore Wed Feb  4 14:55:43 2015
@@ -0,0 +1,10 @@
+*.o
+*.so
+*.pyc
+#for now...
+test.list
+gmp_test.c
+imath_test.c
+wrappers.py
+*.tests
+_T*

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/README
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/README?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/README (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/README Wed Feb  4 14:55:43 2015
@@ -0,0 +1,106 @@
+Overview
+==================================================
+This directory contains a random test generator for the gmp
+compatibility layer of imath. The tests cases are randomly generated
+and run with both gmp and imath. The results are compared and any
+mismatching results are flagged as failures.
+
+You should not see any failures when running these tests.
+
+Requirements
+==================================================
+These tests use the python ffi to run the imath and gmp functions. To
+run these tests you will need the following items
+
+  * libimath.so
+  * python 3
+  * gmp library and header files
+
+
+Running
+==================================================
+All the tests cases will be generated and run automatically by the
+makefile. First, make sure you have built libimath.so in the top level
+imath directory.
+
+Use the following command to generate and run the tests
+
+    $ make TESTS=random.tests
+
+This should generate all the needed wrapper files along with the
+randomized unit tests. By default the unit tests are output to the
+random.tests file. The tests can be run by hand using the following
+command line
+
+    $ ./runtest random.tests
+
+You can also write your own unit tests and run them by passing the
+file name to the runtest script.
+
+
+Testing Methodology
+==================================================
+The goal of our testing is to ensure that we are compatible with the
+gmp api. To test our compatibility layer we generate inputs for each
+gmp api that we wrap and then call the gmp version of the api and
+compare the results to the imath version. The results should be
+identical. Any output mismatch is considered an error.
+
+
+Testcase Generation
+--------------------
+The test data generation is inspired by the QuickCheck testing
+methodolgy. We want to test both random data and important values such
+as 0,1,-1, etc. We generate input data based on the type of the input
+parameter. Most apis take either an mpz_t or a signed/unsigned long.
+
+For each parameter of the given type we generate the following values:
+
+  mpz_t:  0,1,-1, all min/max values, all min/max values +/- 1
+          small  numbers: 1-4    digits
+          medium numbers: 5-20   digits
+          large  numbers: 20-100 digits
+  long :  0,1,-1 short,int,long min/max values
+          random long values
+  unsigned long: 0,1,-1, unsigned short, unsigned int, unsigned long min/max values
+                 random unsigned long values
+
+The generated data for each paramater is combined to produce a series
+of inputs to the function. The input data format looks like:
+
+mpz_add|0,1,2
+
+Which represents the call mpz_add(0, 1, 2). Additional test cases can be written by hand.
+
+Test Structure
+--------------------
+The tests are run using the python ffi (the ctypes module). We have a
+single description of each api that is used to generate the following:
+
+  * intput data
+  * c function wrapper to call the libgmp or libimath function
+  * python wrapper to call both libgmp and libimath wrappers and compare results
+
+The test_gmp.so and test_imath.so libraries are loaded at runtime by
+the python runner scrip and used to run each test input and compare
+the results.
+
+The code generation pattern looks something like this:
+
+genctest.py  ~~generates~~> gmp_test.c   <--includes--  gmp_custom_test.c
+gmp_test.c   ~~generates~~> gmp_tests.so <--links--     libgmp.so
+genpytest.py ~~generates~~> wrappers.py  <--calls--     gmp_test.so
+gmp_test.so      --loads--> runtest.py   <--includes--  wrappers.py
+                               ^
+                               |
+                             reads
+                               |
+gendata.py  ~~generates~~> random.tests
+
+Adding tests for new APIs
+==================================================
+New apis can be tested by modifying the gmpapy.py file. This file
+contains a list of all apis that will be tested. Adding an api to the
+apis list will cause code and input data to be generated for that api.
+Rerunning make will generate the test data and code to run the test.
+

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genctest.py
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genctest.py?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genctest.py (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genctest.py Wed Feb  4 14:55:43 2015
@@ -0,0 +1,266 @@
+#!/usr/bin/env python3
+import sys
+import gmpapi
+from gmpapi import void
+from gmpapi import ilong
+from gmpapi import iint
+from gmpapi import ulong
+from gmpapi import mpz_t
+from gmpapi import size_t
+from gmpapi import charp
+from gmpapi import mpq_t
+
+class APITest:
+  def __init__(self, gmpapi):
+    self.api = gmpapi
+
+  def test_prefix(self):
+    return "test"
+
+  def test_param_name(self, ty, i):
+    if ty == mpz_t:
+      pname = "p_zs"
+    elif ty == ilong:
+      pname = "p_si"
+    elif ty == ulong:
+      pname = "p_ui"
+    elif ty == iint:
+      pname = "p_i"
+    elif ty == charp:
+      pname = "p_cs"
+    elif ty == mpq_t:
+      pname = "p_qs"
+    else:
+      raise RuntimeError("Unknown param type: "+str(ty))
+    return pname + str(i)
+
+  def test_param_type(self, ty):
+    if ty == mpz_t or ty == mpq_t:
+      pty_name = "char *"
+    else:
+      pty_name = str(ty)
+    return pty_name
+
+  def test_var_name(self, ty, i):
+    if ty == mpz_t:
+      vname = "v_z"
+    elif ty == ilong:
+      vname = "v_si"
+    elif ty == ulong:
+      vname = "v_ui"
+    elif ty == iint:
+      vname = "v_i"
+    elif ty == size_t:
+      vname = "v_st"
+    elif ty == charp:
+      vname = "v_cs"
+    elif ty == mpq_t:
+      vname = "v_q"
+    else:
+      raise RuntimeError("Unknown param type: "+str(ty))
+    return vname + str(i)
+
+  def test_var_type(self, ty):
+    if ty == mpz_t:
+      return self.mpz_type()
+    elif ty == mpq_t:
+      return self.mpq_type()
+    else:
+      return str(ty)
+
+  def init_var_from_param(self, ty, var, param):
+    code = "\t"
+    if ty == mpz_t or ty == mpq_t:
+      code += self.api_call_prefix(ty)+"init("+var+");\n\t"
+      code += self.api_call_prefix(ty)+"set_str("+",".join([var,param,"10"])+")"
+      if ty == mpq_t:
+        code += ";\n\t"
+        code += self.api_call_prefix(ty)+"canonicalize("+var+")"
+    else:
+      code += var + "=" + param
+    return code
+
+  def init_vars_from_params(self):
+    code = ""
+    for (i,p) in enumerate(self.api.params):
+      param = self.test_param_name(p, i)
+      code += "\t"
+      code += self.test_var_type(p) + " "
+      var   = self.test_var_name(p, i)
+      code += var + ";\n"
+      code += self.init_var_from_param(p, var, param) + ";\n\n"
+    return code
+
+  def make_api_call(self):
+    bare_name = self.api.name.replace("mpz_", "", 1).replace("mpq_", "", 1)
+    call_params = [self.test_var_name(p,i) for (i,p) in enumerate(self.api.params)]
+    ret = "\t"
+    ret_ty = self.api.ret_ty
+    if ret_ty != void:
+      ret += self.test_var_type(ret_ty)+" "+self.test_var_name(ret_ty, "_ret") + " = "
+    # call mpq or mpz function
+    if self.api.name.startswith("mpz_"):
+      prefix = self.api_call_prefix(mpz_t)
+    else:
+      prefix = self.api_call_prefix(mpq_t)
+    return ret + prefix + bare_name + "(" + ",".join(call_params) + ");\n"
+
+  def normalize_cmp(self, ty):
+    cmpval = self.test_var_name(ty, "_ret")
+    code = ""
+    code += """
+	if ({var} > 0)
+	  {var} = 1;
+	else if ({var} < 0)
+	  {var} = -1;\n\t
+""".format(var=cmpval)
+    return code
+
+  def extract_result(self, ty, pos):
+    code = ""
+    if ty == mpz_t or ty == mpq_t:
+      var = self.test_var_name(ty, pos)
+      code += self.api_call_prefix(ty) + "get_str(out+offset, 10,"+var+");\n"
+      code += "\toffset = offset + strlen(out); "
+      code += "out[offset] = ' '; out[offset+1] = 0; offset += 1;"
+    else:
+      assert pos == -1, "expected a return value, not a param value"
+      if ty == ilong:
+        var = self.test_var_name(ty, "_ret")
+        code += 'offset = sprintf(out+offset, " %ld ", '+var+');'
+      elif ty == ulong:
+        var = self.test_var_name(ty, "_ret")
+        code += 'offset = sprintf(out+offset, " %lu ", '+var+');'
+      elif ty == iint:
+        var = self.test_var_name(ty, "_ret")
+        code += 'offset = sprintf(out+offset, " %d ", '+var+');'
+      elif ty == size_t:
+        var = self.test_var_name(ty, "_ret")
+        code += 'offset = sprintf(out+offset, " %zu ", '+var+');'
+      elif ty == charp:
+        var = self.test_var_name(ty, "_ret")
+        code += 'offset = sprintf(out+offset, " %s ", '+var+');'
+      else:
+        raise RuntimeError("Unknown param type: "+str(ty))
+    return code
+
+  def extract_results(self):
+    ret_ty = self.api.ret_ty
+    code = "\tint offset = 0;\n\t"
+
+    # normalize cmp return values
+    if ret_ty == iint and "cmp" in self.api.name:
+      code += self.normalize_cmp(ret_ty)
+
+    # call canonicalize for mpq_set_ui
+    if self.api.name == "mpq_set_ui":
+      code += self.api_call_prefix(mpq_t) + "canonicalize("+self.test_var_name(mpq_t, 0)+");\n\t"
+
+    # get return value
+    if ret_ty != void:
+      code += self.extract_result(ret_ty, -1) + "\n"
+
+    # get out param values
+    for pos in self.api.out_params:
+      code += "\t"
+      code += self.extract_result(self.api.params[pos], pos) + "\n"
+
+    return code + "\n"
+
+  def clear_local_vars(self):
+    code = ""
+    for (i,p) in enumerate(self.api.params):
+      if p == mpz_t or p == mpq_t:
+        var   = self.test_var_name(p, i)
+        code += "\t"+self.api_call_prefix(p)+"clear("+var+");\n"
+    return code
+
+  def print_test_code(self, outf):
+    api = self.api
+    params = [self.test_param_type(p)+" "+self.test_param_name(p, i) for (i, p) in enumerate(api.params)]
+    code = "void {}_{}(char *out, {})".format(self.test_prefix(), api.name, ", ".join(params))
+    code += "{\n"
+    code += self.init_vars_from_params()
+    code += self.make_api_call()
+    code += self.extract_results()
+    code += self.clear_local_vars()
+    code += "}\n"
+    outf.write(code)
+    outf.write("\n")
+
+class GMPTest(APITest):
+  def __init__(self, gmpapi):
+    super().__init__(gmpapi)
+
+  def api_call_prefix(self, kind):
+    if kind == mpz_t:
+      return "mpz_"
+    elif kind == mpq_t:
+      return "mpq_"
+    else:
+      raise RuntimeError("Unknown call kind: "+str(kind))
+
+  def mpz_type(self):
+    return "mpz_t"
+
+  def mpq_type(self):
+    return "mpq_t"
+
+class ImathTest(APITest):
+  def __init__(self, gmpapi):
+    super().__init__(gmpapi)
+
+  def api_call_prefix(self, kind):
+    if kind == mpz_t:
+      return "impz_"
+    elif kind == mpq_t:
+      return "impq_"
+    else:
+      raise RuntimeError("Unknown call kind: "+str(kind))
+
+  def mpz_type(self):
+    return "impz_t"
+
+  def mpq_type(self):
+    return "impq_t"
+
+def print_gmp_header(outf):
+  code  = ""
+  code += "#include <gmp.h>\n"
+  code += "#include <stdio.h>\n"
+  code += "#include <string.h>\n"
+  code += '#include "gmp_custom_test.c"\n'
+  outf.write(code)
+
+def print_imath_header(outf):
+  code  = ""
+  code += "#include <gmp_compat.h>\n"
+  code += "#include <stdio.h>\n"
+  code += "#include <string.h>\n"
+  code += "typedef mpz_t impz_t[1];\n"
+  code += "typedef mpq_t impq_t[1];\n"
+  code += '#include "imath_custom_test.c"\n'
+  outf.write(code)
+
+def print_gmp_tests(outf):
+    print_gmp_header(outf)
+    for api in gmpapi.apis:
+      if not api.custom_test:
+        GMPTest(api).print_test_code(outf)
+
+def print_imath_tests(outf):
+    print_imath_header(outf)
+    for api in gmpapi.apis:
+      if not api.custom_test:
+        ImathTest(api).print_test_code(outf)
+
+def main():
+  test = sys.argv[1]
+
+  if test == "gmp":
+    print_gmp_tests(sys.stdout)
+  elif test == "imath":
+    print_imath_tests(sys.stdout)
+
+if __name__ == "__main__":
+    main()

Propchange: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genctest.py
------------------------------------------------------------------------------
    svn:executable = *

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gendata.py
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gendata.py?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gendata.py (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gendata.py Wed Feb  4 14:55:43 2015
@@ -0,0 +1,338 @@
+#!/usr/bin/env python3
+import random
+import gmpapi
+
+MAX_SLONG="9223372036854775807"
+MIN_SLONG="-9223372036854775808"
+MAX_ULONG="18446744073709551615"
+MAX_SINT="2147483647"
+MIN_SINT="-2147483648"
+MAX_UINT="4294967295"
+MAX_SSHORT="32767"
+MIN_SSHORT="-32768"
+MAX_USHORT="65535"
+
+def plus1(x):  return str(int(x)+1)
+def minus1(x): return str(int(x)-1)
+def apply(fun, lst):
+  return list(map(str, map(fun, lst)))
+
+mzero_one = ["-0", "-1"]
+zero_one  = ["0", "1"]
+mm_slong   = [MAX_SLONG, MIN_SLONG]
+mm_slong1  = [minus1(MAX_SLONG), plus1(MIN_SLONG)]
+mm_ulong  = [MAX_ULONG]
+mm_ulong1 = [minus1(MAX_ULONG)]
+mm_sint   = [MAX_SINT, MIN_SINT]
+mm_sint1  = [minus1(MAX_SINT), plus1(MIN_SINT)]
+mm_uint   = [MAX_UINT]
+mm_uint1  = [minus1(MAX_UINT)]
+mm_sshort = [MAX_SSHORT, MIN_SSHORT]
+mm_sshort1= [minus1(MAX_SSHORT), plus1(MIN_SSHORT)]
+mm_ushort = [MAX_USHORT]
+mm_ushort1= [minus1(MAX_USHORT)]
+mm_all    = mm_slong + mm_ulong + mm_sint + mm_uint + mm_sshort + mm_ushort
+zero_one_all = mzero_one + zero_one
+
+
+mpz_std_list = zero_one_all + mm_all + apply(plus1, mm_all) + apply(minus1, mm_all)
+si_std_list  = zero_one     + mm_slong + mm_sint + mm_sshort + mm_slong1 + mm_sint1 + mm_sshort1
+ui_std_list  = zero_one     + mm_ulong + mm_uint + mm_ushort + mm_ulong1 + mm_uint1 + mm_ushort1
+
+def gen_random_mpz(mindigits=1, maxdigits=100, allowneg=True):
+  sign = random.choice(["", "-"])
+  if not allowneg:
+    sign = ""
+  return sign + gen_digits(random.randint(mindigits, maxdigits))
+
+def gen_random_si():
+  si = gen_random_mpz(mindigits=1,maxdigits=19)
+  while int(si) > int(MAX_SLONG) or int(si) < int(MIN_SLONG):
+    si = gen_random_mpz(mindigits=1,maxdigits=19)
+  return si
+
+def gen_random_ui():
+  ui = gen_random_mpz(mindigits=1,maxdigits=20, allowneg=False)
+  while int(ui) > int(MAX_ULONG):
+    ui = gen_random_mpz(mindigits=1,maxdigits=20, allowneg=False)
+  return ui
+
+def gen_digits(length):
+  if length == 1:
+    i = random.randint(1, 9)
+  else:
+    digits = [random.randint(1,9)] + [random.randint(0,9) for x in range(length-1)]
+    digits = map(str, digits)
+    i = "".join(digits)
+  return str(i)
+
+def gen_mpzs(mindigits=1, maxdigits=100, count=10):
+  return [gen_random_mpz(mindigits=mindigits, maxdigits=maxdigits) for x in range(count)]
+
+default_count = 10
+def gen_sis(count=default_count):
+  return [gen_random_si() for x in range(count)]
+
+def gen_uis(count=default_count):
+  return [gen_random_ui() for x in range(count)]
+
+def gen_small_mpzs(count=default_count):
+  return gen_mpzs(mindigits=1,maxdigits=4,count=count)
+
+def is_small_mpz(s):
+  return len(s) >= 1 and len(s) <= 4
+
+def gen_medium_mpzs(count=default_count):
+  return gen_mpzs(mindigits=5,maxdigits=20,count=count)
+
+def is_medium_mpz(s):
+  return len(s) >= 5 and len(s) <= 20
+
+def gen_large_mpzs(count=default_count):
+  return gen_mpzs(mindigits=21,maxdigits=100,count=count)
+
+def is_large_mpz(s):
+  return len(s) >= 21
+
+def gen_mpz_spread(count=default_count):
+  return gen_small_mpzs(count) + gen_medium_mpzs(count) + gen_large_mpzs(count)
+
+def gen_mpz_args(count=default_count):
+    return mpz_std_list + gen_mpz_spread(count)
+
+def gen_mpq_args(count=4):
+  nums = zero_one + gen_mpz_spread(count)
+  dens = ["1"]    + gen_mpz_spread(count)
+  return [n+"/"+d for n in nums for d in dens if int(d) != 0]
+
+def gen_si_args():
+  return si_std_list + gen_sis()
+
+def gen_ui_args():
+  return ui_std_list + gen_uis()
+
+def gen_list_for_type(t, is_write_only):
+  if (t == gmpapi.mpz_t or t == gmpapi.mpq_t) and is_write_only:
+    return ["0"]
+  elif t == gmpapi.mpz_t:
+      return gen_mpz_args()
+  elif t == gmpapi.ilong:
+    return gen_si_args()
+  elif t == gmpapi.ulong:
+    return gen_ui_args()
+  elif t == gmpapi.mpq_t:
+    return gen_mpq_args()
+  else:
+    raise RuntimeError("Unknown type: {}".format(t))
+
+def gen_args(api):
+  if api.custom_test or api.name in custom:
+    return custom[api.name](api)
+  types = api.params
+  if len(types) == 1:
+    return [[a] for a in gen_list_for_type(types[0], api.is_write_only(0))]
+  elif len(types) == 2:
+    t1 = gen_list_for_type(types[0], api.is_write_only(0))
+    t2 = gen_list_for_type(types[1], api.is_write_only(1))
+    return [(a,b) for a in t1 for b in t2]
+  elif len(types) == 3:
+    t1 = gen_list_for_type(types[0], api.is_write_only(0))
+    t2 = gen_list_for_type(types[1], api.is_write_only(1))
+    t3 = gen_list_for_type(types[2], api.is_write_only(2))
+    return [(a,b,c) for a in t1 for b in t2 for c in t3]
+  elif len(types) == 4:
+    t1 = gen_list_for_type(types[0], api.is_write_only(0))
+    t2 = gen_list_for_type(types[1], api.is_write_only(1))
+    t3 = gen_list_for_type(types[2], api.is_write_only(2))
+    t4 = gen_list_for_type(types[3], api.is_write_only(3))
+    return [(a,b,c,d) for a in t1 for b in t2 for c in t3 for d in t4]
+  else:
+    raise RuntimeError("Too many args: {}".format(len(types)))
+
+###################################################################
+#
+# Fixup and massage random data for better test coverage
+#
+###################################################################
+def mul_mpzs(a, b):
+  return str(int(a) * int(b))
+
+def mpz_divexact_data(args):
+  # set n = n * d
+  divisible = mul_mpzs(args[1],(args[2]))
+  return [(args[0], divisible, args[2])]
+
+def mpz_divisible_p_data(args):
+  (n,d) = get_div_data(args[0], args[1],rate=1.0)
+  return [(n,d), (args[0], args[1])]
+
+def mpz_div3_data(args):
+  q     = args[0]
+  (n,d) = get_div_data(args[1], args[2],rate=1.0)
+  return [(q,n,d), (q,args[1], args[2])]
+
+def mpz_pow_data(args, alwaysallowbase1=True):
+  base = int(args[1])
+  exp  = int(args[2])
+  # allow special numbers
+  if base == 0 or exp == 0 or exp == 1:
+    return [args]
+  if base == 1 and alwaysallowbase1:
+    return [args]
+
+  # disallow too big numbers
+  if base > 1000 or base < -1000:
+    base = gen_random_mpz(maxdigits=3)
+  if exp > 1000:
+    exp = gen_random_mpz(maxdigits=3, allowneg=False)
+
+  return [(args[0], str(base), str(exp))]
+
+def mpz_mul_2exp_data(args):
+  return mpz_pow_data(args, alwaysallowbase1=False)
+
+def mpz_gcd_data(args):
+  r = args[0]
+  a = args[1]
+  b = args[2]
+  s_ = gen_small_mpzs(1)[0]
+  m_ = gen_medium_mpzs(1)[0]
+  l_ = gen_large_mpzs(1)[0]
+
+  return [ (r, a, b),
+           (r, mul_mpzs(a, b),  b),
+           (r, mul_mpzs(a, s_), mul_mpzs(b, s_)),
+           (r, mul_mpzs(a, m_), mul_mpzs(b, m_)),
+           (r, mul_mpzs(a, l_), mul_mpzs(b, l_)),]
+
+def mpz_export_data(api):
+  rop    = ["0"]
+  countp = ["0"]
+  order  = ["-1","1"]
+  size   = ["1","2","4","8"]
+  endian = ["0"]
+  nails  = ["0"]
+  ops    = gen_mpz_args(1000) + gen_mpzs(count=100,mindigits=100,maxdigits=1000)
+
+  args = []
+  for r in rop:
+    for c in countp:
+      for o in order:
+        for s in size:
+          for e in endian:
+            for n in nails:
+              for op in ops:
+                args.append((r,c,o,s,e,n,op))
+  return args
+
+def mpz_sizeinbase_data(api):
+  bases = list(map(str, range(2, 37)))
+  ops    = gen_mpz_args(1000) + gen_mpzs(count=1000,mindigits=100,maxdigits=2000)
+  return [(op, b) for op in ops for b in bases]
+
+def get_str_data(ty):
+  bases = list(range(2,37)) + list(range(-2, -37, -1))
+  bases = list(map(str, bases))
+  if ty == gmpapi.mpz_t:
+    ops = gen_mpz_args(1000)
+  elif ty == gmpapi.mpq_t:
+    ops = gen_mpq_args(20)
+  else:
+    raise RuntimeError("Unsupported get_str type: "+str(ty))
+  return [("NULL", b, op) for b in bases for op in ops]
+
+def mpz_get_str_data(api):
+  return get_str_data(gmpapi.mpz_t)
+
+def mpq_get_str_data(api):
+  return get_str_data(gmpapi.mpq_t)
+
+def mpq_set_str_data(api):
+  args = gen_mpq_args(20) + gen_mpz_args()
+  # zero does not match results exactly because the
+  # results are not canonicalized first. We choose to
+  # exclude zero from test results. The other option is
+  # to canonicalize the results after parsing the strings.
+  # Instead we exclude zero so that we can independently
+  # test correctness of set_str and canonicalization
+  nonzero = []
+  for arg in args:
+    if "/" in arg:
+      pos = arg.find("/")
+      if int(arg[:pos]) != 0:
+        nonzero.append(arg)
+    elif int(arg) != 0:
+        nonzero.append(arg)
+
+  return [("0", q, "10") for q in nonzero]
+
+def get_div_data(n, d, rate=0.2):
+  """Generate some inputs that are perfectly divisible"""
+  if random.random() < rate:
+    n = mul_mpzs(n, d)
+  return (n,d)
+
+def allow(name, args):
+  if name not in blacklists:
+    return True
+  filters = blacklists[name]
+  for (pos, disallow) in filters:
+    if args[pos] in disallow:
+      return False
+  return True
+
+def fixup_args(name, args):
+  if name not in fixups:
+    return [args]
+  return fixups[name](args)
+
+
+# list of values to be excluded for various api calls
+# list format is (pos, [list of values to exclude])
+blacklists = {
+  "mpz_cdiv_q"      : [(2, ["0", "-0"])],
+  "mpz_fdiv_q"      : [(2, ["0", "-0"])],
+  "mpz_fdiv_r"      : [(2, ["0", "-0"])],
+  "mpz_tdiv_q"      : [(2, ["0", "-0"])],
+  "mpz_fdiv_q_ui"   : [(2, ["0", "-0"])],
+  "mpz_divexact"    : [(2, ["0", "-0"])],
+  "mpz_divisible_p" : [(1, ["0", "-0"])],
+  "mpz_divexact_ui" : [(2, ["0", "-0"])],
+  "mpq_set_ui"      : [(2, ["0", "-0"])],
+}
+
+fixups = {
+  "mpz_divexact"    : mpz_divexact_data,
+  "mpz_divisible_p" : mpz_divisible_p_data,
+  "mpz_cdiv_q"      : mpz_div3_data,
+  "mpz_fdiv_q"      : mpz_div3_data,
+  "mpz_fdiv_r"      : mpz_div3_data,
+  "mpz_tdiv_q"      : mpz_div3_data,
+  "mpz_fdiv_q_ui"   : mpz_div3_data,
+  "mpz_divexact_ui" : mpz_divexact_data,
+  "mpz_pow_ui"      : mpz_pow_data,
+  "mpz_gcd"         : mpz_gcd_data,
+  "mpz_lcm"         : mpz_gcd_data,
+  "mpz_mul_2exp"    : mpz_mul_2exp_data,
+}
+
+custom = {
+  "mpz_export" : mpz_export_data,
+  "mpz_import" : mpz_export_data,
+  "mpz_sizeinbase" : mpz_sizeinbase_data,
+  "mpz_get_str" : mpz_get_str_data,
+  "mpq_set_str" : mpq_set_str_data,
+  "mpq_get_str" : mpq_get_str_data,
+}
+
+if __name__ == "__main__":
+  #apis = [gmpapi.get_api("mpq_set_str"),]
+  apis = gmpapi.apis
+  for api in apis:
+    tests = gen_args(api)
+    for args in tests:
+      expanded_args = fixup_args(api.name, args)
+      for args in expanded_args:
+        if allow(api.name, args):
+          print("{}|{}".format(api.name, ",".join(args)))
+

Propchange: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gendata.py
------------------------------------------------------------------------------
    svn:executable = *

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genpytest.py
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genpytest.py?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genpytest.py (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genpytest.py Wed Feb  4 14:55:43 2015
@@ -0,0 +1,134 @@
+#!/usr/bin/env python3
+
+import gmpapi
+import sys
+
+def print_header(outf):
+  outf.write("""
+#AUTOGENERATED FILE
+import ctypes
+import os
+import sys
+import binascii
+
+verbose = False
+fork    = False
+  """)
+
+def print_cmp(outf):
+  outf.write("""
+def passt(line, name, a_s, b_s):
+    if verbose:
+      print("PASS: {}@{} {} == {}".format(line, name, a_s, b_s))
+    return True
+
+def fail(line, name, a_s, b_s):
+    print("FAIL: {}@{} {} != {}".format(line, name, a_s,b_s))
+    return False
+
+def cstr_eq(line, name, a, b):
+  a_s = a.value.decode("utf-8")
+  b_s = b.value.decode("utf-8")
+
+  if a_s == b_s:
+    return passt(line, name, a_s, b_s)
+  else:
+    return fail(line, name, a_s, b_s)
+
+def bytes_eq(line, name, a, b):
+  if a == b:
+    return passt(line, name, a, b)
+  else:
+    return fail(line, name, a, b)
+
+def run_test(test, line, name, gmp_test_so, imath_test_so, *args):
+  if fork:
+    childpid = os.fork()
+  else:
+    childpid = 0
+  if childpid == 0:
+    eq = test(line, name, gmp_test_so, imath_test_so, *args)
+    if fork:
+      sys.exit(eq != True)
+    else:
+      return eq
+  else:
+    (pid, status) = os.waitpid(childpid, 0)
+    return status == 0
+
+# custom tests
+def test_mpz_export(line, name, gmp_test_so, imath_test_so, *args):
+  # do not use first two args from the test. need to create our own pointers
+  used_args = args[2:]
+  gbuf  = ctypes.create_string_buffer(b'0xdeadbeef'*1024);
+  gsize = ctypes.c_size_t()
+  gout  = ctypes.c_void_p()
+  ibuf  = ctypes.create_string_buffer(b'0xdeadbeef'*1024);
+  isize = ctypes.c_size_t()
+  iout  = ctypes.c_void_p()
+  word_size = args[3].value
+
+  #Test with a NULL pointer
+  gmp_test_so.test_mpz_export(ctypes.byref(gout), None, ctypes.byref(gsize), *used_args)
+  imath_test_so.test_mpz_export(ctypes.byref(iout), None, ctypes.byref(isize), *used_args)
+  gb = ctypes.string_at(gout.value, gsize.value * word_size)
+  ib = ctypes.string_at(iout.value, isize.value * word_size)
+  if not bytes_eq(line, name, gb, ib):
+    return False
+
+  #Test with a provided buffer
+  gmp_test_so.test_mpz_export(ctypes.byref(gout), gbuf, ctypes.byref(gsize), *used_args)
+  imath_test_so.test_mpz_export(ctypes.byref(iout), ibuf, ctypes.byref(isize), *used_args)
+  #print("G:gbuf", gbuf.raw[:gsize.value * word_size])
+  #print("I:ibuf", ibuf.raw[:isize.value * word_size])
+  gb = ctypes.string_at(gout.value, gsize.value * word_size)
+  ib = ctypes.string_at(iout.value, isize.value * word_size)
+  if not bytes_eq(line, name, gb, ib):
+    return False
+
+  return True
+
+def test_mpz_import(line, name, gmp_test_so, imath_test_so, *args):
+  # do not use first two args from the test. need to create our own pointers
+  gout  = ctypes.create_string_buffer(b'0xdeadbeef'*1024);
+  iout  = ctypes.create_string_buffer(b'0xdeadbeef'*1024);
+
+  gmp_test_so.test_mpz_import(gout, *args)
+  imath_test_so.test_mpz_import(iout, *args)
+  #print(gout.raw[:70])
+  #print(iout.raw[:70])
+  return cstr_eq(line, name, gout, iout)
+
+""")
+
+def print_api(name, outf):
+  outf.write("""
+def test_{0}(line, name, gmp_test_so, imath_test_so, *args):
+  gout = ctypes.create_string_buffer(1024*4);
+  iout = ctypes.create_string_buffer(1024*4);
+  gmp_test_so.test_{0}(gout, *args)
+  imath_test_so.test_{0}(iout, *args)
+  eq = cstr_eq(line, name, gout, iout)
+  return eq
+""".format(name))
+
+def print_api_map(outf):
+  outf.write("""
+def get_wrapper(name):
+  test_wrappers = {
+""")
+  for api in gmpapi.apis:
+    outf.write('    "{}" : {},\n'.format(api.name, "test_"+api.name))
+  outf.write("  }\n")
+  outf.write("  return test_wrappers[name]\n")
+
+
+if __name__ == "__main__":
+  outf = sys.stdout
+  print_header(outf)
+  print_cmp(outf)
+  for api in gmpapi.apis:
+    if not api.custom_test:
+      print_api(api.name, outf)
+  print_api_map(outf)
+

Propchange: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/genpytest.py
------------------------------------------------------------------------------
    svn:executable = *

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmp_custom_test.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmp_custom_test.c?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmp_custom_test.c (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmp_custom_test.c Wed Feb  4 14:55:43 2015
@@ -0,0 +1,24 @@
+
+void test_mpz_export(char **out, char *rop, size_t *countp, int order, size_t size, int endian, size_t nails, char* mpzstr) {
+  mpz_t op;
+  mpz_init(op);
+  mpz_set_str(op, mpzstr, 10);
+  //printf("%p,%p,%d,%zi,%d,%zi,%s\n", rop, countp, order, size, endian, nails, mpzstr);
+  *out = mpz_export(rop, countp, order, size, endian, nails, op);
+}
+
+void test_mpz_import(char *out, void *unused, size_t count, int order, size_t size, int endian, size_t nails, char* mpzstr) {
+  mpz_t op;
+  mpz_t rop;
+  mpz_init(op);
+  mpz_init(rop);
+  mpz_set_str(op, mpzstr, 10);
+  char *data;
+
+  //printf("%p,%p,%d,%zi,%d,%zi,%s\n", rop, countp, order, size, endian, nails, mpzstr);
+  data = mpz_export(NULL, &count, order, size, endian, nails, op);
+  mpz_import(rop, count, order, size, endian, nails, data);
+  int eq = mpz_cmpabs(op, rop);
+  sprintf(out, "%2d:", eq);
+  mpz_get_str(out+3, 10, rop);
+}

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmpapi.py
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmpapi.py?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmpapi.py (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/gmpapi.py Wed Feb  4 14:55:43 2015
@@ -0,0 +1,103 @@
+#!/usr/bin/env python3
+
+import sys
+
+class CType:
+  def __init__(self, name):
+    self.name = name
+
+  def __str__(self):
+    return self.name
+
+class GMPAPI:
+  def __init__(self, ret_ty, name, *params, out=[0], inout=[], mixed=False,custom=False):
+    self.name = name
+    self.ret_ty = ret_ty
+    self.params = params
+    self.inout_params = inout
+    self.custom_test = custom
+    # most functions with return results dont need extra out params
+    # set mixed to true to check both the return value and an out param
+    if self.ret_ty != void and not mixed:
+      self.out_params = []
+    else:
+      self.out_params = out #param location of the output result
+
+  def is_write_only(self, pos):
+    if pos in self.out_params and pos not in self.inout_params:
+      return True
+    return False
+
+  def __str__(self):
+    return("{} {}({})".format(self.ret_ty, self.name, ",".join(map(str,self.params))))
+
+  def __repr__(self):
+    return str(self)
+
+void  = CType("void")
+voidp = CType("void *")
+charp = CType("char *")
+iint  = CType("int")
+size_t= CType("size_t")
+size_tp= CType("size_t*")
+ilong = CType("long")
+ulong = CType("unsigned long")
+mpz_t = CType("mpz_t")
+mpq_t = CType("mpq_t")
+
+apis = [
+          GMPAPI(void,  "mpz_abs", mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_add", mpz_t, mpz_t, mpz_t),
+          GMPAPI(iint,  "mpz_cmp_si", mpz_t, ilong),
+          GMPAPI(iint,  "mpz_cmpabs", mpz_t, mpz_t),
+          GMPAPI(iint,  "mpz_cmp", mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_mul", mpz_t, mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_neg", mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_set_si", mpz_t, ilong),
+          GMPAPI(void,  "mpz_set", mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_sub", mpz_t, mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_swap", mpz_t, mpz_t, out=[0,1], inout=[0,1]),
+          GMPAPI(iint,  "mpz_sgn", mpz_t),
+          GMPAPI(void,  "mpz_addmul", mpz_t, mpz_t, mpz_t, inout=[0]),
+          GMPAPI(void,  "mpz_divexact", mpz_t, mpz_t, mpz_t),
+          GMPAPI(iint,  "mpz_divisible_p", mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_submul", mpz_t, mpz_t, mpz_t, inout=[0]),
+          GMPAPI(void,  "mpz_set_ui", mpz_t, ulong),
+          GMPAPI(void,  "mpz_add_ui", mpz_t, mpz_t, ulong),
+          GMPAPI(void,  "mpz_divexact_ui", mpz_t, mpz_t, ulong),
+          GMPAPI(void,  "mpz_mul_ui", mpz_t, mpz_t, ulong),
+          GMPAPI(void,  "mpz_pow_ui", mpz_t, mpz_t, ulong),
+          GMPAPI(void,  "mpz_sub_ui", mpz_t, mpz_t, ulong),
+          GMPAPI(void,  "mpz_cdiv_q", mpz_t, mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_fdiv_q", mpz_t, mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_fdiv_r", mpz_t, mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_tdiv_q", mpz_t, mpz_t, mpz_t),
+          GMPAPI(ulong, "mpz_fdiv_q_ui", mpz_t, mpz_t, ulong, out=[0], mixed=True),
+          GMPAPI(ilong, "mpz_get_si", mpz_t),
+          GMPAPI(ulong, "mpz_get_ui", mpz_t),
+          GMPAPI(void,  "mpz_gcd", mpz_t, mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_lcm", mpz_t, mpz_t, mpz_t),
+          GMPAPI(void,  "mpz_mul_2exp", mpz_t, mpz_t, ulong),
+          GMPAPI(void,  "mpz_export", voidp, size_tp, iint, size_t, iint, size_t, mpz_t, custom=True),
+          # The mpz_import signature is a bit of a lie, but it is ok because it is custom
+          GMPAPI(void,  "mpz_import", voidp, size_t,  iint, size_t, iint, size_t, mpz_t, custom=True),
+          GMPAPI(size_t,"mpz_sizeinbase", mpz_t, iint),
+          GMPAPI(charp, "mpz_get_str", charp, iint, mpz_t),
+
+          # mpq functions
+          GMPAPI(iint, "mpq_set_str", mpq_t, charp, iint, out=[0], mixed=True),
+          GMPAPI(void, "mpq_canonicalize", mpq_t, inout=[0]),
+          GMPAPI(iint, "mpq_cmp", mpq_t, mpq_t),
+          GMPAPI(void, "mpq_mul", mpq_t, mpq_t, mpq_t),
+          GMPAPI(void, "mpq_set", mpq_t, mpq_t),
+          GMPAPI(void, "mpq_set_ui", mpq_t, ulong, ulong),
+          GMPAPI(iint, "mpq_sgn", mpq_t),
+          GMPAPI(charp,"mpq_get_str", charp, iint, mpq_t),
+       ]
+
+def get_api(name):
+  for a in apis:
+    if a.name == name:
+      return a
+  raise RuntimeError("Unknown api: {}".format(name))
+

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/imath_custom_test.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/imath_custom_test.c?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/imath_custom_test.c (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/imath_custom_test.c Wed Feb  4 14:55:43 2015
@@ -0,0 +1,24 @@
+
+void test_mpz_export(char **out, char *rop, size_t *countp, int order, size_t size, int endian, size_t nails, char* mpzstr) {
+  impz_t op;
+  impz_init(op);
+  impz_set_str(op, mpzstr, 10);
+  //printf("%p,%p,%d,%zi,%d,%zi,%s\n", rop, countp, order, size, endian, nails, mpzstr);
+  *out = impz_export(rop, countp, order, size, endian, nails, op);
+}
+
+void test_mpz_import(char *out, void *unused, size_t count, int order, size_t size, int endian, size_t nails, char* mpzstr) {
+  impz_t op;
+  impz_t rop;
+  impz_init(op);
+  impz_init(rop);
+  impz_set_str(op, mpzstr, 10);
+  char *data;
+
+  //printf("%p,%p,%d,%zi,%d,%zi,%s\n", rop, countp, order, size, endian, nails, mpzstr);
+  data = impz_export(NULL, &count, order, size, endian, nails, op);
+  impz_import(rop, count, order, size, endian, nails, data);
+  int eq = impz_cmpabs(op, rop);
+  sprintf(out, "%2d:", eq);
+  impz_get_str(out+3, 10, rop);
+}

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest Wed Feb  4 14:55:43 2015
@@ -0,0 +1,3 @@
+#!/bin/bash
+export LD_LIBRARY_PATH=.:../..
+python3 runtest.py $@

Propchange: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest
------------------------------------------------------------------------------
    svn:executable = *

Added: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest.py
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest.py?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest.py (added)
+++ polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest.py Wed Feb  4 14:55:43 2015
@@ -0,0 +1,117 @@
+#!/usr/bin/env python3
+
+import ctypes
+import random
+import gmpapi
+import wrappers
+import glob
+import sys
+import os
+from optparse import OptionParser
+from gmpapi import void
+from gmpapi import ilong
+from gmpapi import ulong
+from gmpapi import mpz_t
+from gmpapi import voidp
+from gmpapi import size_t
+from gmpapi import size_tp
+from gmpapi import iint
+from gmpapi import charp
+from gmpapi import mpq_t
+
+def print_failure(line, test):
+  print("FAIL: {}@{}".format(line,test))
+
+
+def run_tests(test_file, options):
+  passes = 0
+  failures = 0
+  fail_lines = []
+  for (line, test) in enumerate(open(test_file), start=1):
+    if test.startswith("#"):
+      continue
+    if options.skip > 0 and line < options.skip:
+      continue
+    name,args = test.split("|")
+    if options.verbose or (options.progress > 0 and line % options.progress == 0):
+      print("TEST: {}@{}".format(line, test), end="")
+    api = gmpapi.get_api(name)
+    wrapper = wrappers.get_wrapper(name)
+    input_args = args.split(",")
+    if len(api.params) != len(input_args):
+      raise RuntimeError("Mismatch in args length: {} != {}".format(len(api.params), len(input_args)))
+
+    call_args = []
+    for i in range(len(api.params)):
+      param = api.params[i]
+      if param == mpz_t:
+        call_args.append(bytes(input_args[i],"utf-8"))
+      elif param == mpq_t:
+        call_args.append(bytes(input_args[i],"utf-8"))
+      elif param == ulong:
+        call_args.append(ctypes.c_ulong(int(input_args[i])))
+      elif param == ilong:
+        call_args.append(ctypes.c_long(int(input_args[i])))
+      elif param == voidp or param == size_tp:
+        call_args.append(ctypes.c_void_p(None))
+      elif param == size_t:
+        call_args.append(ctypes.c_size_t(int(input_args[i])))
+      elif param == iint:
+        call_args.append(ctypes.c_int(int(input_args[i])))
+      # pass null for charp
+      elif param == charp:
+        if input_args[i] == "NULL":
+          call_args.append(ctypes.c_void_p(None))
+        else:
+          call_args.append(bytes(input_args[i],"utf-8"))
+      else:
+        raise RuntimeError("Unknown param type: {}".format(param))
+
+    res = wrappers.run_test(wrapper, line, name, gmp_test_so, imath_test_so, *call_args)
+    if not res:
+      failures += 1
+      print_failure(line,test)
+      fail_lines.append((line,test))
+    else:
+      passes += 1
+  return (passes,failures, fail_lines)
+
+def parse_args():
+  parser = OptionParser()
+  parser.add_option("-f", "--fork", help="fork() before each operation",
+                    action="store_true", default=False)
+  parser.add_option("-v", "--verbose", help="print PASS and FAIL tests",
+                    action="store_true", default=False)
+  parser.add_option("-p", "--progress", help="print progress every N tests ",
+                    metavar="N", type="int", default=0)
+  parser.add_option("-s", "--skip", help="skip to test N",
+                    metavar="N", type="int", default=0)
+  return parser.parse_args()
+
+if __name__ == "__main__":
+  (options, tests) = parse_args()
+  gmp_test_so = ctypes.cdll.LoadLibrary("gmp_test.so")
+  imath_test_so = ctypes.cdll.LoadLibrary("imath_test.so")
+
+  wrappers.verbose = options.verbose
+  wrappers.fork    = options.fork
+
+  total_pass = 0
+  total_fail = 0
+  all_fail_lines = []
+  for test_file in tests:
+    print("Running tests in {}".format(test_file))
+    (passes,failures,fail_lines) = run_tests(test_file, options)
+    print("  Tests: {}. Passes: {}. Failures: {}.".format(passes+failures, passes, failures))
+    total_pass += passes
+    total_fail += failures
+    all_fail_lines += fail_lines
+
+  print("="*70)
+  print("Total")
+  print("  Tests: {}. Passes: {}. Failures: {}.".format(total_pass+total_fail, total_pass, total_fail))
+  if len(all_fail_lines) > 0:
+    print("Failing Tests:")
+    for (line, test) in all_fail_lines:
+      print(test.rstrip())
+

Propchange: polly/trunk/lib/External/isl/imath/tests/gmp-compat-test/runtest.py
------------------------------------------------------------------------------
    svn:executable = *

Added: polly/trunk/lib/External/isl/imath/tests/init.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/init.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/init.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/init.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,12 @@
+#Unsigned integer initialization. Assumes sizeof(long) == 8.
+initu:0,0:0
+initu:0,18446744073709551615:18446744073709551615
+initu:0,567:567
+
+#Signed integer initialization Assumes sizeof(long) == 8.
+initv:0,0:0
+initv:0,-1:-1
+initv:0,9223372036854775807:9223372036854775807
+initv:0,-9223372036854775808:-9223372036854775808
+initv:0,4324:4324
+

Added: polly/trunk/lib/External/isl/imath/tests/invmod.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/invmod.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/invmod.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/invmod.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,452 @@
+# Modular inverse tests (no undefined cases)
+
+invmod:-25,37,=1:34
+invmod:-25,37,=2:34
+invmod:-5,11,0:2
+invmod:22153,514,0:383
+invmod:6521,442674856,0:28104185
+invmod:83,8990271,0:2924546
+invmod:643111,73,0:23
+invmod:6756751,5,0:1
+invmod:4310757,655173482,0:578093623
+invmod:67658,37989,0:29720
+invmod:140,456739,0:394753
+invmod:8363,2152,0:1827
+invmod:6067,5554,0:1061
+invmod:134706247,840181,0:713245
+invmod:581,8525,0:3096
+invmod:991357,2885,0:2243
+invmod:9820551,53210,0:5931
+invmod:366,3905684875,0:1846129736
+invmod:4582993,6971170,0:6590887
+invmod:4261,5,0:1
+invmod:2089582769,72370,0:34059
+invmod:1385486874,274843,0:100773
+invmod:2496082853,33877892272,0:25370727693
+invmod:29,77842490059,0:18789566566
+invmod:160735723,837433,0:536522
+invmod:33,92874448,0:39401281
+invmod:17,801910,0:518883
+invmod:1243,47177637,0:28769629
+invmod:5553626,17225545633,0:4551550593
+invmod:493375452,7744903,=1:5021402
+invmod:505,75126821802,0:15917960263
+invmod:8082104357,6160949,0:64657
+invmod:4793,63911,0:44243
+invmod:846,4453189,0:689560
+invmod:5475,596527544653,0:311392826049
+invmod:239,28531,0:9192
+invmod:71044,91829,0:4016
+invmod:2923052473,673,0:362
+invmod:40113371,396,0:23
+invmod:799762079,671587,0:280457
+invmod:6137106,72083,0:61684
+invmod:2663959394312,7297021,0:6396652
+invmod:16314,437519,0:121837
+invmod:5409920801970,224827,0:146917
+invmod:1701531745,565383113204,0:392963934477
+invmod:6702285244447,4818940,0:3886523
+invmod:3853762105973,7986397045899,0:4649165556065
+invmod:83203877,17340640,=2:1474413
+invmod:349,3756,0:1765
+invmod:513237329,6426867498383,0:5161899757325
+invmod:218717486055,4764721,0:3629102
+invmod:5697807566182,23837,0:17052
+invmod:640499,3706953268445,0:862821487954
+invmod:74365895080186,37008968409199,0:35062440514236
+invmod:5447180,17521,0:6484
+invmod:87747,309211711,0:64843296
+invmod:65052052,72604563,0:26029330
+invmod:1200121,9944190318201,=2:5066700447199
+invmod:487321393172,41829673981,=1:18173847806
+invmod:3762709971997,877939264220,=1:575680399733
+invmod:78323027,3830390625030,0:1772587463183
+invmod:1324701179,57116535299,0:4144192403
+invmod:663267333048769,9458708,0:1445501
+invmod:925655,3262585612,0:2494330419
+invmod:809760047,253746243247,0:109619303279
+invmod:6962181619,44237293531835,0:34688460868884
+invmod:32137986591347,450053710,0:207388563
+invmod:171464220392,1821508963,0:85136287
+invmod:4866698,1559814931871,0:875727775988
+invmod:83084876,852948279591,=2:67614759050
+invmod:3087717,3533808897939368,0:3296313572604861
+invmod:685072,47729803,0:7913327
+invmod:3403087579775453,307599045,0:85279967
+invmod:618837304,2026545,0:580654
+invmod:1617142737,5396772102241213,0:309489822606449
+invmod:398279389,695426305815576,0:548019512309869
+invmod:807807859,101277481,0:1799573
+invmod:4399921090,93999639721573,0:23138878622757
+invmod:6198378859,5720311022,0:2650981593
+invmod:86572714,9776668159093959,0:99027417792355
+invmod:1106685402600,781883021,0:593993010
+invmod:788429239716,54846845,0:23729486
+invmod:26682164884969,84892199507532,0:38639429314105
+invmod:490223409,87336215488172224,0:60928799099783953
+invmod:11687153,155174158,0:112979329
+invmod:81995673521,1680666567,0:4778198
+invmod:36278417230108,2563749243683,0:97972077091
+invmod:81100161947491318,626490251,0:10036586
+invmod:84353708437,789691774074278,0:384046667492909
+invmod:4784222527,220196213,0:137693182
+invmod:656338347,17114903662,0:2025727201
+invmod:205944554689,55544669634,0:45790392391
+invmod:58311406949710,684448841,0:398362627
+invmod:2984553893,39836508385650164,0:23063415225053961
+invmod:1226833387651,868339671575144482,0:861301708657625181
+invmod:7850491405,3995878481964,0:222583321669
+invmod:60187945992,93467753554255,0:39782639687763
+invmod:26790048589,54188485741,0:37088225013
+invmod:2047388699,2277281699,0:1326800159
+invmod:437698007378203709,87810457123843238,0:45519261037663357
+invmod:10176318725,798739962893,0:680424092570
+invmod:784178983329613758,151005933385,0:62880260387
+invmod:774192548697746,10018080225753177,0:9683250774295598
+invmod:726085395694283800,277010088622579,0:180332658128036
+invmod:734218324557247853,1620310233702,0:916743102467
+invmod:707389886770553113,418168493503742,0:189385161021501
+invmod:171716270659493,2040489403879802122,0:1953367125622896751
+invmod:78774439204,843419490844271841,0:461564113792074643
+invmod:9092444912687,92042830376149639,0:47447717686388633
+invmod:61162406254,726431645806031683,0:276675014746837850
+invmod:6502138975909229,1737018911640,0:657596399549
+invmod:87574684954665,78519506900538949759,0:47230364038284735522
+invmod:1306210408858148,134301015531,0:130837017359
+invmod:44107140793537552339,77941696100292187182,0:44195935179151712467
+invmod:67019007414976,320349107407,0:230029544613
+invmod:251668932025135,35962140459304117641,0:27454542509813399095
+invmod:1960384563191744911,414832971260173594,0:324345091445220853
+invmod:9693842669955456325,3433846821305106979,0:3209295184025178668
+invmod:95824904457431,207730473678560854,0:115346241869098615
+invmod:8243018284897799671,54774169173707248,0:44653415179102455
+invmod:311780668918,56602194650033,0:19477344474056
+invmod:5901525417230160,6175539028945276481,0:2734302477909765310
+invmod:15817645817088013342,83873087573263156355,0:40986420565770894283
+invmod:2776285597517168189,3599586054083,0:1736805497387
+invmod:5082710450857887,9056726269284017335,0:4011503044106438893
+invmod:8584682476237466436,7357902067222453540607,0:5765479814487665631684
+invmod:2319480092078509424,6781626293282491,0:6716281365540188
+invmod:1240939184380232105,937916010642767528344,0:266041850377015782033
+invmod:658085025934773092927,87790861684417147140,0:36756492918534162863
+invmod:2569452374055474,1282307723894094781,0:817830828946766758
+invmod:888631770342009119641,963322788372149745005,0:58576054803607756901
+invmod:89415261698482,94033558717297,0:55696542331400
+invmod:56380027660316644352588,35652220511128407,0:2604464463341384
+invmod:996226476453670075,45399567279611724302531,0:4432450575006272604766
+invmod:34615237368338359171,8816907924734450,0:7867417936877631
+invmod:57100661310425224095499,80123941311371854,0:35581152205723201
+invmod:4003341194576048121,875086915466219,0:805682679112747
+invmod:6669592405841477476717,4551036259229300,0:1731901161660553
+invmod:4899954396030393,8249234915987429715052,0:8042076059164143158753
+invmod:457015587799729799209,94904436585339172647,0:67495506193470607315
+invmod:2416330080921791,12841205070842866551072,0:9627123487316001173279
+invmod:315334615429521629,57080600687534315852534,0:35876106943989391629797
+invmod:245635836236733543965,350204895578119,0:266548953036562
+invmod:534172301537220853627465,54572957533260480823618,0:28391508956926418431025
+invmod:64835058866700508778320,82305874730776723,0:57154164927574349
+invmod:2935419197344029519,38389371660425629010,0:28166170186967145769
+invmod:3817779121449271,177996364073619,0:33676152326515
+invmod:738146746050725,4141892900866715689963,0:1939330976850898748447
+invmod:92817796396830036287569,23833760274805751,0:18027905863154323
+invmod:324768538678274222,672713761279277469419167,0:179185315765267484078532
+invmod:145806963849046841647,254534976684286765771,0:200530074654889210574
+invmod:5843892547087945,8037935722129342683168,0:4622521916530352817625
+invmod:635350174582720198578,895650784125257583255317,0:608770468357452782491563
+invmod:64902256585483042893,64861417659113483501885,0:48500544464636732858792
+invmod:1348003478873768067340578,79797413707905564041741,0:40891858728897888244861
+invmod:6267734989419158151778,3802309231789144649797859,0:283176065685623872919005
+invmod:3615002399473406,3318504485101385132081323,0:2767667426638532783172948
+invmod:899009032038735494294979,792084588352351084,0:424508678737216543
+invmod:81206746001376489750557,7237607374878187597720,0:1600326671975281670573
+invmod:3627972699304722008437199,5520898889538066465900,0:2272155478759642709699
+invmod:34685989123390710817647,6655359456977349621184,0:2132453240661862741327
+invmod:7144620105437275474852,753995169282415124087,0:275860832898605149106
+invmod:3535338302168469766025701,5721768567217856428,0:1398947754214548293
+invmod:966210500401822916283782,66395891256125996529,0:10363406607924246032
+invmod:5107776515340409,616676046831960893161433,0:328705736461746618977486
+invmod:205573655301723270437,35922475780693975,0:13536061393525448
+invmod:6678162870767249806,72542902715331741208361,0:27163420735919994491369
+invmod:4198363950348197654359,656021938174219663877448,0:30249336864266481152527
+invmod:6624293151166291066603,935090767412780504,0:703056406859110987
+invmod:1425474699733426865447,74057791800633068553,0:32399215003249997555
+invmod:535428418244353401,5758069448318181075415,0:651913765960044782491
+invmod:511900281901325868358066640,7525380451505858160279157,0:4065406882222502194971660
+invmod:212919955640465965,878153960566548562,0:662636940932888511
+invmod:889569596018809758462291211,81473326768558522502336,0:56487291469860004699555
+invmod:443144861277824063183398,3761174124237053075,0:3604887025386113137
+invmod:33394484114211334386,72967632167182065995369,0:31523450321558696309323
+invmod:4146649809313089447250,2358753923413902348191,0:2114494919004119612967
+invmod:9887121613180137575733557,461028287216014552,0:243298503783102749
+invmod:97465366227467312864072367,488220214874854052,0:130500775756515095
+invmod:19292649676011135522471,7877659035660734746,0:283664033368712393
+invmod:88902959369842150471660679,458945796034863505452,0:116241488588017347323
+invmod:1839945988509816044751,9750948399412779544,0:6294451275142512167
+invmod:9857520075588286024975851,1918199730912356922553,0:1407196181358170021243
+invmod:98092461637270194063,69938396621942574346694,0:39897238269802969068339
+invmod:219033411512598606789840689,795134880363756976388,0:639110818118499283141
+invmod:88186459451009468808509156,931160442943017676802173071,0:629562198515766072504373649
+invmod:9710794978083575389221590569,4251433051225510685,0:1014964735988867489
+invmod:8101415155618280845453190902,1531876453912452699591,0:368176555527134025784
+invmod:29409670089331883811,535811823788496989270023400,0:370280198672135017584348691
+invmod:8305842606005328583,9579564753339003236281695,0:5722440512759901640334872
+invmod:39386484402035672640779147,405797130275770630884183427,0:110208599835163794381201071
+invmod:832687365793006297742,184982557537022296058374571,0:83904068232925523197663651
+invmod:6553207532807060406664,502238468947067021963,0:454270228642816251641
+invmod:37454379370943067757286870211,36494426305368965154254726536,0:33638650562651500684923138787
+invmod:38605483438466601679,682239274139689477361679,0:13199577887729473047769
+invmod:7965022961827711681795,2285716672004926097772197,0:2122955484406134178638446
+invmod:300057798344833538558206311,8931778125815914295,0:6565813118197443911
+invmod:324842828083012251597681011,187662727615575337969,0:123961367799983618478
+invmod:59548842983097072068081,529556931168692661765381,0:204382555679859518219042
+invmod:876100791904547219529602,984558128732533432702173965429,0:90974750030008269191789684241
+invmod:412262036467011789370687,7642721479883866583632505,0:2279185286560398311684903
+invmod:35558590466031758855977117,887974042467941992656,0:704625358717245867829
+invmod:626663442467211390440132060640,1374148771090265524803717173,0:590755849649898431023419435
+invmod:85901909124840045452734003634,27175621479815508400005,0:6884774470049680531679
+invmod:4803896245161574921869066442,515522173785247100331641258677,0:82575699585005426552163954975
+invmod:30894573328276878531856,4087591712675305723294627,0:3493627083082495776432430
+invmod:9141841986580679278669126,505635384209785163519211124141,0:336188649744514864135515371530
+invmod:188695176591763873562433787,661611817437909433157465,0:375067540836983193116438
+invmod:241487793644307094737649980023,4603295709537644102260078209,0:1875185676154036094527511246
+invmod:5293130391697702045129223682241,4410288170386013446930,0:3281121803360293450491
+invmod:6033846664871710576440686677569,96946807752243502281276550,0:45266733495357578832984479
+invmod:89038378306924494551626,95628444614978025043615,0:23786747307100516932196
+invmod:12710922165960068258466731689,4790016424576553135438840,0:1207752742860172910912249
+invmod:2735034594918378899070448537355,1893682211859850854604,0:435685035552133636619
+invmod:68329358155371632083140828250982,6288770840498808006152991055,0:5931193047490714028593816373
+invmod:83897752529920362009921,66649056389057335553727631393,0:43268302813732520149524641842
+invmod:9689473529426673026778331,88076063449762644474294178,0:68554034321312192241642365
+invmod:73977485020743016621210217010220,53253046617921140492481,0:34299048109456536013621
+invmod:9682622686213510676332035159913,126726573785394345551110507947,0:87562143297844604196976477132
+invmod:5131707842034728461484683196411,9833933722624780748771816760,0:7636914556132154008767009131
+invmod:622466933719692949758353,8720875070568727490840986966,0:2243063168207109573811220613
+invmod:371914469040335929323957821,29979763825336998478908474,0:19112551112998202208882569
+invmod:460040264854684284500867207882,176619007178719669689957899985,0:84600278607589920579666033533
+invmod:7814781702042412652917732124,44974092645758858215810834392705,0:22525065545650129764783444827969
+invmod:689879593008118336507276219555,7029140833503782253304852,0:1657942681146249790361611
+invmod:588753311584356398728925335104347,655245595214265213328588954,0:5370808165845253986418065
+invmod:215270851453007875328537243236,930847670919175461277424586154331,0:854093280868657781869727944640825
+invmod:554018901896459973640131751591,9763486748180940629420083557,0:4943017226299795649673145282
+invmod:13807862007846696356170492992,218480252372917913755483,0:162381198060244352285330
+invmod:3647663862216963935039311,3498263635673871413147938009,0:815287510808909642460179901
+invmod:1394556521513041955902249647007,8314730285674311054788894925503,0:4701759015019363383377776837184
+invmod:765922458203903632153317653598,772684127072442440623494065,0:681475643232329050740648777
+invmod:1636182686335177476661316231316713,898482806249393672761387906057,0:629953274075151653191843542345
+invmod:584489430664515187742143663,3226379401343487951747550753985,0:2300722785510258273879270270657
+invmod:70597555974027836626331232,9067577360780247310463700060912415,0:1343885645550828326227031879126813
+invmod:83016782422655848478468587,3574392772750510684744014,0:2160375438947262160886701
+invmod:9509632620059688913461744335927,2001546646968510097453590971258811,0:1579171227651658107693890864008934
+invmod:5305698102006965934646514142,1880423512328598313144733245,0:1158802006274691372231434298
+invmod:25818273392182891028387183709,372712587491320607948739787619341,0:83620423512820588265929334666867
+invmod:2062301690726594241599730508623,1295011898282606475280524130169,0:1126618128280194264421190196682
+invmod:15525882195404306532803603053735006,524851347004182298259949574931,0:117558057158627958293103758908
+invmod:98049989631901137366836343057866,2132117143964644775000173275,0:1776678869002856275917157286
+invmod:68035486069315280099382173380,136804376642014663925354513,0:116540031317166597205778667
+invmod:930885787290248986653715917201,839163742792309140697583306,0:467450716792956567729742385
+invmod:618219232165541881120714807027054,551811312165885959528421318411,0:241084816664595048546274133494
+invmod:607491972766521656095997601,4258761064370347279045518650,0:4106442789435765086100078351
+invmod:1794059822501926214368058365897,641293693468680328700219247,0:412236704145068075117115904
+invmod:66038046351270827218975238,828243810057190999751749430463827,0:201240403207654658512757471515946
+invmod:22489979027542119833361766314814004,4267735327278945325377118240414149,0:831989298493288398125903826182123
+invmod:96656949043354906812270332568634084,17593722554451983298697234832943,0:10389378262088955098639501532940
+invmod:1475127063531246543305342130787,5712802933759973674949655288556,0:911126023377734859289288839875
+invmod:94805314820797148511000189717800001,64899576259694613046461539176,0:48109809959614533507389959049
+invmod:5787223135405198552481837574149,5421074820227552626308319526063,0:1887880601492799950765024255248
+invmod:28973562312482088535256834009,12322004931428309561996283040268471,0:6951695655429544292118574942872356
+invmod:3696872012110541582072428310551341,1523878544437625304694982047192609153,0:120514356890624212938061146933103186
+invmod:7388600304197232842534029909,773289223233970187052705366304,0:734898540650399983999883872093
+invmod:7331236475650961531766667058913110203,693192479825024022606662504949920,0:571670151801413885792817856265587
+invmod:5235989645992380877547648143027,9843490764540995482808427936563,0:7792497103048946162851333200848
+invmod:7889040487772265051508734223198,970333028842680057477545240961989231,0:820851624929176605383247534276742509
+invmod:636939509978082435344561123977,8632390068721323171174332473333535190,0:993190319417433889538526784654541983
+invmod:91838639727927578174237486907982,9330677294050455577402341248771486991,0:3372468877355534050061501496367400668
+invmod:10921336389827150720097811900009211076,7589092431150460928351199116667067691,0:866721211802572827148277173383125007
+invmod:658155257851240068821873115015976,558927662049398106193187373360428065,0:209745203635098313869122201832200296
+invmod:5585592751467684477444331029739,27200783107220910874350734817147653,0:1132197483918030242577531292806291
+invmod:7637148852097915353546826493,42198395510943407752409176135,0:38579422829892871530093056797
+invmod:228011811609919943842937730868521189,269359008901950141311260148678129,0:204220292063517008126064637465387
+invmod:85379073141618507288535187863547,3311778009260578617664169854013,0:1251094538034868342736717399878
+invmod:178538609345684608529279115948180,3209187922934820372906185622931,0:625228980755918910363724543435
+invmod:514451212940578583651534706134690,261960849561824473447008674451593,0:131626741363323972030200440147547
+invmod:9634204149807611579602377719343249239,91352833806659059550235201423093,0:43744490808833751862541187085697
+invmod:180205999846263895162745909652272689,61037131972980180275583850831,0:22758511829661545789258800814
+invmod:21945771136787811201569306864610194,240543080450829974515246807891357405,0:181461539213602660625514174427621814
+invmod:35517481628882114783536774508289,73933641713139782399722231157687221982,0:55192567983407494884175622090344427645
+invmod:61133421177402004520562281574369023,490575463215034765455424331786,0:428078344043933589235114932577
+invmod:61997134551496924667492900578768215075,53694317203253417994456413131837794901,0:5127049382196704081839504435078188237
+invmod:149407595591992713390607359968523153,9733723254627254068241609649090688,0:7103143213776435125430106007909873
+invmod:724677347918056918707332818251,4206398531197287079326882898987,0:3352013813776874655296817354068
+invmod:904144691211996824768615430166153,57579709060839020187927414941125095,0:54557924391254568447415464374061082
+invmod:464828030341876048255162748051,16315883710383791874911854058033061,0:1898204461581732360730698325426064
+invmod:19170845621606248311569905259730887097,911211106537315652144761781751982143011,0:11609063390937807744161998275631424941
+invmod:857469002074663726099005122270054136,767466745792444095098639793741965637031,0:72659426270163915638661477107149562702
+invmod:130093804885990385658501097171753042,91493100398010395343582415770659586075,0:71562287103402903271519248491284598728
+invmod:3558394519963770405007494484958693,5649100976897692393477567234571091,0:1778327570753831461149235315785758
+invmod:827172132916351233103886705694689183,7406200609002751101596817359849513044605,0:182683152383530805186420471977735101947
+invmod:44588398105132907935221361042363023,849039192087829478839986564159076706,0:756327512592089069079417038566139671
+invmod:87482753881086943893477139352309,15136288595019926379451404752790558,0:7380826408731655136881662259683287
+invmod:2816393010081341842764909636597751163357,666424385901140622144416941996627540,0:37970402623680773312812150346972833
+invmod:44160925420830144883476086426186778817,3964315773874336539018935736605912590999,0:3339494318496833279004795765823107883695
+invmod:7784294051005222901032501449689049491,82221954950326057541175302867376355231,0:35060237646445852249886804139112143661
+invmod:8782186458787754387943640751003,287196330910083697223737780139934653,0:151169934658998501405294488263167850
+invmod:52961061996773303218378119209138937,4138078150303278572595508400662,0:2334686283357105837861457163873
+invmod:120067972673320339436684163684521541899,5003127736361658398228918751147,0:2804153651535384761721045391262
+invmod:21160862616768687388014009097902145,984271481536213754460622644543049509,0:110991439312803462463226099820276772
+invmod:94870103291793687661854548564670156557,4654396151789059038730576061157487355,0:4545904732262329435720397277692160608
+invmod:126765551422438407604981735815319,4526482948583699374467868274935682,0:1340347586087681863052878791652111
+invmod:561052644739230772711625537622190085922,182709904797036712378783653059935117,0:81730760740395808028866350847708745
+invmod:8440958912355253192980982965295847,99976107874430648288932536807344574289,0:44322197083360812344238924546434599316
+invmod:622818497925638835644269035686568759453,5506232467142585446362605183461,0:5370963830087767870403236824410
+invmod:57453345384809312296011379661001742955,386140250699346346360045382167776159,0:63476384227956307102053350966611778
+invmod:83416537340827284838496955161681676081,12832473375703257825108506495959421,0:499463210654774129441986832321381
+invmod:6764203692091211849546587544996797291,56141668772394375440300081823159,0:33236198277199128613406762379601
+invmod:40370041535056934456885738109160412,509721817241840184167083180099626991,0:11491022410510426082577074611522170
+invmod:878180470796147113848439165151873,17763546710042203623413235393081,0:14204683605998536689672179103545
+invmod:55590867394053732499429322189218399778872,43372981951757571058338676426693,0:33510348378637076952275179882521
+invmod:7546327535456972783460913206047380047,86726167905648033666208453441434584,0:5322052162117479044160819033125903
+invmod:329955968415706177763208593030907,50516382401253954262072882036248004026668,0:34401169217941393127943862147280363000747
+invmod:87048112982262598454925291684403335,805959667741585911092793285492264429037,0:379430630180430216461244147576608482936
+invmod:71555142355447318269121083903394685,87398662401733013244354964840378552,0:67043514123128780636096809791233709
+invmod:1711583735940653927946109180989149,26241424080043582566688947607871596,0:23154984666365483606784578156029249
+invmod:542489709314546955942774519697358722621,143873444084042887511916303711981530841,0:121457408531791726256743734440607914263
+invmod:3781041336068211601179549569884186970409919,327900172706652019993358885788160915208,0:285215395500809506516326193309579388695
+invmod:6149927428146656336227133345815170519,7588487705630577686965956743882876270164,0:4653797610323419583601822953872210529815
+invmod:559049983877521594210938163489019460719,951902276119605669127355840612003004,0:683326157826438593722386803692042151
+invmod:9570949170433291990391807356653340234145159,8534474723057896563545270622977282626469,0:7559467634929916340724978098594978746637
+invmod:987849800664220039883494398655886160465,6831497903141449539539967513122604383199548,0:246607561273243347599128464506339845374005
+invmod:916515834175745144405438914198070103556585,4056859814803168890581397499472591207566757,0:1770209812768098816334392652319997964773464
+invmod:1228631771902154967504229180729583591093,695152447128287511961827228275915906161196,0:68820532783317596490391949047646875295925
+invmod:85204895476713840095779420329627903803,797154697565857850707103989977884356052456,0:189834737137977542797303467784002206530403
+invmod:459421385046429900048441785147457350775932,7698087947447355511478579587800901996173,0:1050954140018038340522121385945573583123
+invmod:8211730416251817740382555577378910158254614,52604175850251752026919899874340035,0:40445721575495397750278068202293844
+invmod:13222111757762648331396301846656536813259327,266888325807002880450404100257370089541565,0:109298344157958287037388161546711172781058
+invmod:563240385133071678994472898571956920719,3993868915925455184846327870408751385272,0:2785525939806848082603069961895833469023
+invmod:521639521589957338674682854605577427535430,91720686816082732671407774270039351,0:17647263388578210512345389034742837
+invmod:5156816003277235939668801939908183725744,5153042308730983383934473837808025008231,0:1734593135670097399582886018375080924055
+invmod:9790574355124996717257076778746595337,7094481197220145398883635593951185851053,0:4633443452058944189941546476417089729612
+invmod:3738689158705918826996178299424238668515201,6395182435555998218010243005378643333837,0:4032119940417970860053188513124120286092
+invmod:13614043167840054636971961619348110233,9922954903164743574284496007816459280672855,0:6390894157193464477433210223562314675849502
+invmod:7722989551905267507172665225415434299,285028691296471922732299049703480528,0:80127272552190846362411085374898803
+invmod:34955948774875418184052263202780817611505383,25511643971935598979339727281441119179,0:24793574418979515087827479198686647984
+invmod:9752514502992806699558935311322486653812,3763087306264536914043797765340033186467793,0:1025569723180811973169033467813546203362574
+invmod:27465132713599700004772511614559440798,13274810225615043094606232580958497359,0:10132125917976802477194900566349825181
+invmod:875919373810765425715940434040195178,5349809266782277700868243297033816292139395,0:2651731185643620478354040628390151701549142
+invmod:6881906840916466478584802007995526309234459,756717805668582535693388931894211346359,0:145296958725486236992417439558326443417
+invmod:334311791774893954611025022303233183505395489,584529866497361400618684187440397242,0:292400244436936079523712480681940227
+invmod:65712090641887119990742721342873930,4336182528635667934371588198046750892623,0:558253505423903869478690367363302598682
+invmod:4492701702646633574790657588147591497,887008290240310205861702963649926144764,0:434334236746323412542488940776733666249
+invmod:411586476025579573736047981166427386223,60898553483467476285120690698220614489936966,0:19455038575262424591552585688228685688467833
+invmod:6367597108696643245107048337012153376861093,65889932274525424609098394737176730568661,0:65870071424966086215554796795651660966036
+invmod:1049560658786859350707338961047775237,5274992996959254283334337773536473890159,0:624593399529926255525711013688044195635
+invmod:107527378432083555117117943876656903468876,716429394528758636372948757175038602405647,0:444454875067125022527116753199711164880725
+invmod:555145963886409519368431903982210135919242,8268229830304970030006026946953367235680701,0:6387083941953876784249641453937804161251014
+invmod:77948002708019596204938559286354567269,455121612933774657179682813659815211,0:364811843921650022521340876006123246
+invmod:498360659435361921366498611099013149316057,5728485554979561072455795106370849106458,0:3102501845651843687065534092900673818593
+invmod:726843237990292819218621975265928124471239641,2887158075124871990135103381732069919679,0:1068470994113776781214157184472987715710
+invmod:14490257580500837566390302262779531170047157,32393480535449409499704778950027988096,0:30287826764106717477700071788946051485
+invmod:6270142013450141253944931199020500202121765035,3763601356640037994669890437848434673885751057,0:3156243150557294814061853765553333562512998545
+invmod:809245912199158373741272239723610868982823,8030588855423774308237502000480454393456840856,0:904571791041508997839920338301126020187933047
+invmod:19533970453895817522762076874428022848,66299209695045887406306821511839592998483515,0:13599402726209549954335916901935358290831417
+invmod:23199633133008878062415683980086247896344005,61479113901097914563017676528126502674819176957,0:50989713359156907028812686282866020892767441337
+invmod:2862728440518115487475964440740584330473078140,51210656799701051518059629917289349291243014631,0:17918271858261676405666583245056315801120815006
+invmod:14971096876073425168884018562366418693791183,9559636375986473567719335761058531628207,0:5109731903973538125843601711325876342232
+invmod:532670798205641227016874816346924933526518,8612651409966775146216925722782469875353075,0:3211535369857991680135616378366713231520582
+invmod:5277579668620044053588021313993390529699415,7623352070936849233565453286144593741688259,0:2195179503632503483804554417001536677298355
+invmod:1703242284411257170432455927132332917751,91946197833078813303494400074098343464254335961,0:78127206681265732452981591549234092643891370502
+invmod:661687018626315126767845163322826263674289,28536010760826245705236059697847500278395679313,0:9982270980885276298051810649502841807467187592
+invmod:71856999282924192732858943855372784788,27823718424741468425870327772094802246951559365,0:18935276857302206232390405420351565823103424567
+invmod:4662964353558658735645456824027896151772,33878933564208336888348089073090367622314169867,0:10548442440909583945565305765948929087304389925
+invmod:62009389758664279395604249729164619334196,538359108562320297007051503463417099077320173,0:398148791843022164991556905409865960939044422
+invmod:6183332385813041506672156000574955880665,871559003971682075020587679481749233390914546267,0:361446020046797748452828311000569764812530143855
+invmod:9155753362316784223456266001165269228274821262,564516474013187481573175782767769679250281341653,0:119205620905238875198589061317020547195431291469
+invmod:2381725363012237979273240212723131218823907332557,627105554257965120883096528911164566660356,0:171572488325502115512339758443240079349533
+invmod:98450611484841078779323233743949010093062874462,498474891646461337593869229973450784375275,0:479013309851681824382144106029434631482323
+invmod:302941267046246453138910366044154426837953622,83818905504557213907433754163930101975463487685,0:77920560252131060387953578558356224479003138993
+invmod:3017383944801662240691138696888601411338516995657,61737866641820357298733518758961763874892655287,0:57869330891359519120660303033767633391977224135
+invmod:374917274538161669733321516492506551738043651,77803838634333688188670502424982439317036,0:68639725794250011077961000847054314676555
+invmod:5358355766108806240333647212584488077935,587627440281100756115550692187455782420924,0:314618325830273870368608880986071270807683
+invmod:86122802573518542982029793217367784359435,4444541935970557301558909662301636875859,0:1955320382109976216143063234526457146856
+invmod:623824975419641052226172487141306430801018589,20768350634786110695583221446196247762848997250,0:12103767314840562576462750961286924811261413809
+invmod:7590027145148728758973273983569196467947062255394,90068309971049962266103924501064672741412670385,0:6331972725698812300523110784176833763986644684
+invmod:686524668697820444915978210393072714624818,186650354938328642532017629073639972204995691795,0:65611028587457585490550162776486984373381347012
+invmod:8533533853350881783993052422423559214064752671,63016121594055151516162786594467518419073,0:131371511974154164830815450922802421883
+invmod:5344740912348618433699936772348773718405033080,754609660139342129058931248435676900268044223,0:601779294202074328690589293303990212685307436
+invmod:2630687964404181803667484048857594086603863164778,42030243673690269464501320091336384623277873,0:36838170059220383772604498138745951997014365
+invmod:5306175182479523993478999645749970458659031750359,758113498568456349896540610013930582835369681777,0:501795105681317857414510503515044239126764236204
+invmod:806866598044057476584935940512202394402119521,947641922298177262021501581582394143250064926,0:76703572909587691543666595336149993104408285
+invmod:3752967247553075344733410201251369307099526185073,4402571726399572455553419679967331632378787202832,0:2918979067711444062792869424130652843352323160497
+invmod:40984400287710529101974761448375262101587597378,7767837478658170863917839375734721468526147967,0:2136424825671493001327961172463161875887529706
+invmod:401457319584326150334816297804779451405784588169,540188815699793070242075787313955763858504,0:67372106144949744344758423425304866564305
+invmod:7328132145926961595815732345858284613765167,9787719863595769932092399021858175294652078,0:2230156054528184544247089349526629112621319
+invmod:77171202039883192025885180439962488662357894253,12064457568855376162922164978659009383963542,0:352639382534756831500079601223680437740983
+invmod:1689300510107332942753596615492360305248158883808,5021685778114233976935875054258022503184892416233,0:1762404213252802117851393076433629721481995643743
+invmod:413626471608667549603757397530674300567855542919,759613621964327430276342657441698817566357,0:642374968767231560916741285504168484044924
+invmod:815487836506353402229957209437685304756474,231515992882606539156732730332354159627815,0:55964822173154353392771255475917621969154
+invmod:296426386298708272323405866802864845229206612199046,342337072550591175877277735718537487310584965,0:76144006758731629943626088879647674452875321
+invmod:1368837997243033258097250654549080178537403,72416746615410564704099840606609957868938364467,0:42273580850321891614742957751910595825483883404
+invmod:9641372200812485192345151698897221555588679358147,287806137472581046723231335880874585176303828,0:255252466811823779617792436926094192052670967
+invmod:46719509859424879114122464677053888891786863,210544160158454559735214754459187198735974410,0:140373812459197552193672103292254446400518517
+invmod:69471867059868794437449477784309966908311269,475692585941773291840125734394747164491541976266150,0:329429867057697325602436904654233483107661273264729
+invmod:7405667221685129649068997020918698026393175001749,796216300173551602800332455600650397180944683116991,0:130410302259950789489978656088071644453583901435057
+invmod:9875331536196145287163751005066164594069492626,2201640116844513333140292091820792899163450729637,0:2047598928737481788502134745016206195377427587363
+invmod:62945526176222857740120186454769067947012290363570,44934526527044082707728840604580666450874671024251,0:43861879034315837687481092531336507739461347512032
+invmod:5812420662398017239905743494134134746465045897292,52956025052699844938819589327012098626977604723,0:13815068782356510869666523823706600133524973512
+invmod:62988324661142084736397879043193595721220178,7404210351476786487650626340728674929309799,0:5036483589239858803333996442909574578899948
+invmod:286333666557475431954356887797614991091286553885,730177931071629647633748484619415338517839601274,0:363260706789674293461306138407487067104937300831
+invmod:49616721004820516975071365326319319198923021689,132795538845737308034029046093145336156955241,0:56876640900410852290230149182444669136767187
+invmod:5446872665716082344009604433844511709028377538969,2280298209842444269643398464555071512122870262,0:375611662251833543184276080958156903157176019
+invmod:48133060961114172650826182330907073912078935,8721390832897265296674009086319009860242439839,0:7702992209702028145739081817455455176622350078
+invmod:40807573183755241530172346993573440974806877031,21200726747362217929091368487884445712920776,0:11454862264524468743635374252060129893516039
+invmod:4876011850332170585030918362754881792191414391238,883237429556989698304596380266521788568157904911,0:527685501843148925165860150493838048613672434138
+invmod:9004216524525198565187718452531030887145904294,8878366789568435967650795187708828058761785,0:4981848279005575310485064446844029075803929
+invmod:6993868737949430623485012912067313181948980567149,72587842808105829695332807775836181652781451620987015,0:29356657469761942723664151650917553481140935005518584
+invmod:75838243096115096340554120168203104139210864575119,6451996398231430323660940321776782700563518057974,0:1345394845933169255579194602505266246529197837419
+invmod:485790318680850515659798197857065903571954663516221,67351781195434836704429039169834802850340728665,0:34078566883503330914204885404291533157887033436
+invmod:371333400895514427330799618912986292421266652,74735768661976283216974595800490448686381913090033,0:775734485942448008241221468847983305862557765286
+invmod:6097834709804461306077622570209088350134909102,13260744904604742982854800098901232265425978195193,0:7180051176576380055634721013915424214485695619650
+invmod:600881693193364832300600937554551319012583954782229196,796027198454713309819370879215945879338962169620342457,0:305489886166685871022060158652320831304722506678707663
+invmod:5662964710494261101411655474670941615613599315,444220509796947509810830805138094482931853315876829854,0:83502974856377599186566250358062403371236716847533769
+invmod:6270395747183927103046939721473439728631174048403114,8803495340207614105802361410280441129955119276551,0:7638483007340998905004349443806488928949129256475
+invmod:5312750065420550632940178685674720232414077135667861,57930039498945162545687903211875639956633916330,0:20906112474411708869764963749645301466537400461
+invmod:8502626964451493813784509478933179204113913861,151683587165616476059679476891877738245602771985126484,0:17577340844446441446896817780642040689999518731337537
+invmod:4941004253366524324322788098717712122185453894,507952581732578381349957316858286666961520136240812511,0:312115745275256030023730055964263277096930720173778858
+invmod:423987861634880847990099692392247549547399923116457,6773005116228586899620384151284037878817381874,0:2411264735887581238523319245355992628456396037
+invmod:526342378928843427610581233811595257981048046869299,7096065565042815656938985029340106874450131548364,0:2266210293557852404933929618783723210631424222303
+invmod:78446630124873873738016711675224033887037462247129,7662020477272785489947682873719507826211767799272559,0:6618353901163261801200450611723749392144591388751943
+invmod:146724084718984069653032415105637599783153962,30298034422463313667029878130649415526567724423891,0:15840758667632633447433042854062793488919393155550
+invmod:532466063698619582407914116981870172085275218057609611,503389009870258977998715866699908326167138509155621,0:429130769700630834787501129352450771879630731320433
+invmod:664376039724377171384810644630468503764696090762,224298076389079709612544590641569981088172697659695,0:191050396356473488451331811254972158658440851245723
+invmod:835483973043657359948123633363211141824404441813878015,69643224478201509070483710852895974722854115357803189,0:53721439884173124810110466416454653383681843157933247
+invmod:813970262809468815021442298539024428784964079319,429074523317944731991730858790207763790104061278625586,0:158332012181946654631830290462479503904893230674781917
+invmod:3905569509910236582271054510190653771408672274545828967,21054133848316667891192282660059320939317809341779587,0:17094616510862655692939144695877501853951076117185513
+invmod:4691307104554605783547935208868795800777868512,942772133788456146227915931545461264049922041187188131,0:469683594104330994724852019245006601277880263578881551
+invmod:6344527026541951916306965449095645749422549760,76368107869275310020917570118694704915444730867,0:41500809372700676201512721693097909656425890041
+invmod:1532687328617246474516893240843261381746745335187504567,32537955155074651543885535513776259898758463526907,0:31592260213499097541600572787744360343931765806593
+invmod:7018504221615574834208014706510055329334098873351018,101610242334178923059833344503899037186775079202559303,0:10649252292552342413027086385381658365781051021861494
+invmod:614235942250741815189766632484724986765317349320542,9362550248383847419253207491333265608402756140737,0:8160460781303503000366571190909239384952542647609
+invmod:7775933593191150830308054268586415011508980457,368533946098442033007225558534059472616584669800220,0:253801676862101461324685686415984317623566854941793
+invmod:114994724586756601240947074309582797715956747530865,3876970882437444481290779177938795657877704941299426992,0:511133484674702237970986949221474571854159368113080049
+invmod:967002084921847074704293339527143050334641639867373423,67184311934061779941934593909885344171962367245011554,0:54742265392939905619225231956123009510166549574440811
+invmod:6280498620763463276942694339653106561075254543429361993,12246227880575723984287633819537276950692995636118272,0:6888911322746399525364250058022364228815026516488953
+invmod:44275278051846293224710462815690831294050926191,3528785552950193331450403045205521284400464217,0:120514793436107018084728538690789624267772938
+invmod:77233427780696709885390992536748673614121634321979788104,491164926805617690128308614539794239093995145700823999,0:199381937154931303182568760928699286043016185484364692
+invmod:2935661752367750120971963892075802637450138243541560,9020651236069334749255637029615697294334736998960171627,0:3125819936094028800430390470247841155021420396038210016
+invmod:302473523210899830602993285719361792150121191223306880,65877646712326499599771065429073023167212168003911407,0:52297679713827579628631563559676964578000626147057904
+invmod:267895147221485475464503294804253313969059499267,749147805746876465294375899176118315575206244421458271,0:129024846433542980463213625490720174159069030878062276
+invmod:3781978240476513092005529074451902150648006057998586,27364485741607024708356504480914129745315051983385,0:25329045084429371227591358650591561585384348697251
+invmod:948013514376879058094102833630021404464006764852569,8353743535195396401876310124547966294825033103946,0:7927522032829817758549574325420299949503254620703
+invmod:6773542220739678376382399310753118322321830877020076563,23546371430476080325875311266723651505011788851,0:23034799134897779290547258699648209277778406267
+invmod:56696856401426408452242119629657459089185724508184784934,7221005627051658808617341708011763226860565840269,0:2227292432795108865092977039762847004980273813910
+invmod:92662353717508325061448569170875221120898258909234857491,562238642230582644285673923363000274985338785203064143,0:82872573566192386039048139131290614037215257242199497
+invmod:89468591435176366016645724528914029419829867195549,705411786218184999265977265146374736801000908422516,0:485602435630685604293519285770866831844583644332693
+invmod:2277395840205666058520703175677485655050927000860231,792131783062753783192832245011815485211186317516729,0:36274050046894199444508304306949846655815849306835
+invmod:612911230333178233436163590340359496090089351991282071005,572255259654004408298629798022675847670239895312539448,0:403266920799126234196133278222931567019309289982594389
+invmod:213241578824971760442836297601417939805892681628568881016,3475071686128494213859357380055444712046960621996643,0:314926700961595267117992983958097210528266000605468
+invmod:89881958503908564448695138563460417549093214244379,33280210266097827064329998950581767848637995197241605416,0:12771855655553092160496981250440547140648269015354531011
+invmod:73159396554894592455810450837975467585529573360122965037,161924163103234420910961871269258741990082667722423375,0:55900291355504579400968626517795006263004157119627223
+invmod:869777439024092504944123032140706083242764771562615,3691156600535012715499994551919740723415019969643,0:181436500307965243185392814904512789376492449509
+invmod:9146539798430854552628645300653561881701305853292111330247,6627303121361849299873564751355803129746293824560475542,0:2409578230798119285960935905755578839375100707728705163
+invmod:24992448558250395162546529057033728367963608818369,97104418275857998682685499767517746419160351530467647181,=1:62070924902659777799435874506647028956762328885724256288
+invmod:11569840794297110873922272445085763696814732411121,3856710587570728871230191743757018008573821992755,0:80733435598402588027986814199605794544352758136
+invmod:649787313291617912250345498890431010716418004127770,550784775616289426175030973861257697988532404146125403,0:190014706473838692857161698137541544033343388692933291

Added: polly/trunk/lib/External/isl/imath/tests/lcm.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/lcm.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/lcm.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/lcm.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,780 @@
+# Least common multiple tests
+
+# Basic tests contributed by Hal Finkel 
+lcm:2,3,0:6
+lcm:2,3,=1:6
+lcm:2,=1,0:2
+lcm:123456,34,0:2098752
+lcm:123456,34,=1:2098752
+lcm:123456,34,=2:2098752
+lcm:-568,34,0:-9656
+lcm:25,=1,=1:25
+
+# More involved tests extracted from gcd.t
+lcm:0,0,0:$MP_UNDEF
+lcm:0,0,=1:$MP_UNDEF
+lcm:0,0,=2:$MP_UNDEF
+lcm:0,=1,0:$MP_UNDEF
+lcm:0,=1,99999:$MP_UNDEF
+
+lcm:-7,328492456,0:-2299447192
+lcm:16522181,930,0:15365628330
+lcm:844378,24,0:10132536
+lcm:209,3,0:627
+lcm:70522336,34102,0:1202476351136
+lcm:32557663,995533,0:32412227919379
+lcm:641,701,0:449341
+lcm:290748,-233,0:-67744284
+lcm:290748,-233,=1:-67744284
+lcm:290748,-233,=2:-67744284
+lcm:-95,4770,0:-90630
+lcm:6839092,7,0:47873644
+lcm:787590783,-6789049,0:-5346992417735367
+lcm:721,15845,0:11424245
+lcm:-37028,-949534667,0:35159369649676
+lcm:618,-3,0:-618
+lcm:16657,-544851,0:-9075583107
+lcm:28271,6,0:169626
+lcm:-35357673,5207718,0:-61377596706738
+lcm:99,-565,0:-55935
+lcm:9311525,-5,0:-9311525
+lcm:6221599,7764515429,0:48307701428550971
+lcm:21590339,486739392,0:10508868477933888
+lcm:335,3699183948,0:1239226622580
+lcm:14,8755508782,0:61288561474
+lcm:-5302,9,0:-47718
+lcm:8236,9462435,0:77932614660
+lcm:43040,2766705,0:23815796640
+lcm:863478587,63,0:54399150981
+lcm:8874055124,10,0:44370275620
+lcm:8204,-89955,0:-737990820
+lcm:3303887262,3,0:3303887262
+lcm:75504,-62,0:-2340624
+lcm:436,2123372,0:231447548
+lcm:3361227,943089540,0:1056646008421860
+lcm:37340421,223177728,0:2777850107114496
+lcm:-35694701,238293550,0:-8505817017478550
+lcm:4263,15500547338,0:66078833301894
+lcm:1493,38730799,0:57825082907
+lcm:-635007,298501,0:-189550224507
+lcm:4968,-98492710997,0:-489311788233096
+lcm:3367542606,17576297,0:59188929003209982
+lcm:232155550,3921719,0:910448831390450
+lcm:4860966,700,0:1701338100
+lcm:2323372237,867,0:2014363729479
+lcm:4268,-29035,0:-123921380
+lcm:8,-73804207633,0:-590433661064
+lcm:395170,26163606,0:5169536091510
+lcm:-70027196,6945032910,0:-243170590407510180
+lcm:5871172260,26773591,0:157192364779785660
+lcm:17125540,836,0:3579237860
+lcm:1988202315,-68060596,0:-135318234527479740
+lcm:554434367524,-909419,0:-504213148079308556
+lcm:-40457802353,3398,0:-137475612395494
+lcm:410791452776,4492144466,0:922667275633904368808
+lcm:135751970,7417878752,0:503495826902570720
+lcm:9593,31047471995,0:297838398848035
+lcm:-18387143,50226,0:-923512644318
+lcm:413450673851,-124,0:-51267883557524
+lcm:-618513698871,-318914624,0:197253063714294189504
+lcm:37416674596,-8817,0:-329902819912932
+lcm:6242382,-943205,0:-5887845914310
+lcm:-4949666413,1501091102,0:-7429900210422557126
+lcm:-6385784303120,899228089,0:-5742276615660794337680
+lcm:6308,-79643949,0:-502394030292
+lcm:2421,136928,0:331502688
+lcm:333180111,442438,0:147411541950618
+lcm:723761305,611024432789,0:442235840862251429645
+lcm:-91289,-9223787613074,0:842030347409912386
+lcm:10944,57098,0:312440256
+lcm:57145099,-94544476,0:-5402753440923124
+lcm:9327105307,88173695233,0:63261949288116530887
+lcm:73230770347,67182928,0:4919857571607036016
+lcm:4810254287,-4310,0:-20732195976970
+lcm:7200253992,9893,0:71232112742856
+lcm:-92709373682,-664752121448,0:30814376416612439465768
+lcm:-2236424417,-69570761,0:155589748609671337
+lcm:781963714,61084006246,0:23882738195060678822
+lcm:781963714,61084006246,=1:23882738195060678822
+lcm:781963714,61084006246,=2:23882738195060678822
+lcm:78553,-3773682081509,0:-296434048548776477
+lcm:24811454802,-26314981001549,0:-652912961735421705488298
+lcm:805866671,8061826,0:6496756880801246
+lcm:4281823377004,2916710,0:6244418530970668420
+lcm:15229,320560332911,0:4881813309901619
+lcm:6093153060,357460,0:108902924641380
+lcm:624794507388,3264784,0:509954777752056048
+lcm:2632503413711,-514594728450,0:-1354672379322310051777950
+lcm:7216089,86034,0:206943000342
+lcm:112578025,4532680608704,0:510280230883694129600
+lcm:-972617496,-1100642928524,0:267626142282779963976
+lcm:-972617496,-1100642928524,=1:267626142282779963976
+lcm:-972617496,-1100642928524,=2:267626142282779963976
+lcm:86658,-56860,0:-2463686940
+lcm:2292080,40552081391276,0:3319593382689853360
+lcm:57144144326678,3579498119,0:204547357129208422518682
+lcm:77390585076,614924,0:11897332034318556
+lcm:685579,959286825595306,0:657666902604804292174
+lcm:346354116,451435163995,0:156356427156803253420
+lcm:443946215999,260668,0:115722572232027332
+lcm:640447120070,-441698,0:-141442106020339430
+lcm:1253208493501,-8521171736,0:-10678804794135860887736
+lcm:8507343,62395589,0:530820677310027
+lcm:81126006,461820852819773,0:37465681276782021316638
+lcm:87891707090,40954510522233,0:327232894803129615339270
+lcm:-767589,-991593,0:253711959759
+lcm:86229155,43027930,0:742052409059830
+lcm:-431963821,48986055721,0:-21160203804962069941
+lcm:101557073166691,-74080192,0:-7523367479146517284672
+lcm:-34269048183,250074,0:-2856599318438514
+lcm:7650667716360,-959482143,0:-2446893018624669653160
+lcm:-176432105527291,712269105001105,0:-125667137897384071121162656555
+lcm:91973525400419,-52180215632622,0:-4799198387886300095948868618
+lcm:9054526,-21388581343089,0:-10192813993374435306
+lcm:19326311972,3180878,0:30737320286435708
+lcm:501569850634,39035351302,0:9789477660994928712734
+lcm:-3470290487760846,622612793613,0:-720215751744466904366758866
+lcm:827793089252612,77591849874263,0:64229997108241062748844324956
+lcm:19866668332,4414961,0:87710565885715052
+lcm:136274450771,8659380001,0:1180052253653656430771
+lcm:952660786088689,171372582380,0:163259939044179413638699820
+lcm:429415374,9140880954,0:654205802258564466
+lcm:-368107346,2945634,0:-542154757013682
+lcm:2147845929,79983807840463,0:171792896056056736025127
+lcm:77885771608,-51236668812562,0:-1995303742544970246669848
+lcm:62272695670,208399244,0:6488791349735036740
+lcm:61973019,-1405255816878779,0:-87087945439289091663801
+lcm:286206733986,212837117931767,0:60915416394244148267933262
+lcm:-131938894,1048695278656631,0:-138363695208977699906114
+lcm:27109492,306933238851468,0:2080201045794490233564
+lcm:-314477095129839,3837918787896,0:-402312517253922259873876248
+lcm:4116345,9101435151,0:12488215692214365
+lcm:63853435249810,902940229903,0:57655835504559765637068430
+lcm:80076033,14791385,0:1184435433375705
+lcm:-31038678,1454704764,0:-7525352125810332
+lcm:-31038678,1454704764,=1:-7525352125810332
+lcm:-31038678,1454704764,=2:-7525352125810332
+lcm:20638192722,-14267370499730,0:-147226371004802594482530
+lcm:8065790684,-1977228453431,0:-2278272977117641090972
+lcm:362687955673,99742877979696,0:36175540507397430642015408
+lcm:1235326072088,201675880263044,0:62283868250058987186578968
+lcm:568009735,49546482048450,0:5628576827704468332150
+lcm:849579042,-3197920541,0:-2716886269614901722
+lcm:1808291492597692,96814519920612,0:43767218183093114768373606876
+lcm:6275712123233717,739880208952795162,0:4643275197065752315694969352877154
+lcm:774075573665981,7523229210171,0:5823547966683781965601892751
+lcm:2944466357361,497012903828640,0:487812591499242877115539680
+lcm:282862415058866,-6240991940068,0:-882671026265275987882021444
+lcm:571225883598025,189932649930728,0:108494445780794463607647612200
+lcm:815309478,-371377784,0:-151393913606918376
+lcm:320172590239,777220834144,0:248844807655600692320416
+lcm:654332382,7919190746613,0:575753660527071413574
+lcm:-5094673003562,268414312780910,0:-683741576547274437277800710
+lcm:-77841790209187781,35267718271550,0:-2745302326850733800658699930550
+lcm:735762990564598234,-32739891496,0:-12044400238928708979996609032
+lcm:-5999905013129575,144027889596460,0:-172830731364054662969688260900
+lcm:6861193105404525,-4725324526382425,0:-1296854562448559876288579018925
+lcm:859748569384694164,98523184164,0:21176291659055938820647004724
+lcm:570460270963,-54720108308,0:-31215647812506387460604
+lcm:61750383079701,3452251304617,0:213177840547497299540279517
+lcm:-1738716695,8560399484936237,0:-14884109500328036282376715
+lcm:9953417006786660,90085339160,0:44832847342864414393180280
+lcm:188523146978,954842405502,0:90004947576640310936478
+lcm:198834734074395695,171072375577893,0:34015130305505499211880376370635
+lcm:-102893613303732727,155104650554,0:-2279896847959124297878354394
+lcm:90836124710855,-98332551310,0:-1786429578786341640294010
+lcm:10512242068892,84377075433,0:886992242016856266730236
+lcm:-726835478343584190,29339956106373,0:-7108440343718461118245907014290
+lcm:5033847480079150451,-69469662902517,0:-349699687543783241256712189585167
+lcm:3869558083241,-8770208065,0:-33936829509626159538665
+lcm:46079368203995132,23609959311256,0:271983002096177133105574201448
+lcm:979137194422864421,-1378816153373947,0:-1350050180039492392646639294639687
+lcm:-72618673468,-244198092166982349,0:1612121956052969066631874212
+lcm:529564016606,376298866055896536,0:99637169476421881457260938408
+lcm:554186920892,-629719688885314,0:-174491207704210180689290044
+lcm:3455963977845612750,271884481278417471,0:313207657811150223746536093433451750
+lcm:-41270780965441117,-4124462824121691009,0:170219801814430998805436931657817053
+lcm:47581683736,9394210662450,0:223496180345027475456600
+lcm:8196306676684,76732052476696223555,0:628919434030412315441895170091620
+lcm:2939970750639,-2013582768244,0:-5919874442628068251907916
+lcm:70476757656499,-100957934015971,0:-7115187849144405009597945529
+lcm:3674841030712174173,540185467629182772,0:661698573546054604863388890438315852
+lcm:82915322420038008,123799513890,0:1710812768272220630953988520
+lcm:466513077506,73565730651787738,0:2451383957524498065361030102
+lcm:-38890216282311653,91459939591112,0:-3556896831865504089438972828136
+lcm:-38890216282311653,91459939591112,39285:-3556896831865504089438972828136
+lcm:576595981539992,20909590051109791,0:12056385599118501431228849261672
+lcm:956905636477652,8381376662473,0:8020186569762664723411553396
+lcm:9187294026565993,54295427509,0:498828056823282593136101437
+lcm:8866081281165098,6545042142269515,0:58028875622012459166053127387470
+lcm:338772425501,-750860960783,0:-254370988898468150127283
+lcm:6750486296504,8609697533187,0:58119645214823136262078248
+lcm:736067207074328,329259058372493427315,0:242356795500164369960320250670469320
+lcm:680100030114145,52232423165123,0:35523272567534917195872964835
+lcm:22697310250913136791,365228836596285515,0:8289712216805950219366224267686882365
+lcm:30594845950075862222,37349482121506846253,0:1142701651822614557685156508694964954166
+lcm:866936756424,-1765396942933391,0:-1530487499507519421423353784
+lcm:6939438360479781,24559856763503,0:170431612152541518812930232843
+lcm:927595346004843560,7670228140092963222,0:3557433962772809951143296742471775160
+lcm:-357321286444971587,7925597841132985664,0:-2831984816439127983772762412958328768
+lcm:6673370692769029,520191499051311630305,0:3471430704396611186160057152801823845
+lcm:9013236794945,1008467412252240244,0:9089555586614859880726704766580
+lcm:406532185466775673747,9519149309169118189,0:3869840572441069484183117712436347484183
+lcm:548046408595014443,777065152533771,0:425867766090470284154159790254553
+lcm:23897406396584,-8555442893510156172118,0:-102226447864489365824170750635622456
+lcm:54729344028716311850,2026849525600172204,0:55464072490506137031056639711882908700
+lcm:-7936445752013,-98698488318151151,0:783315198342695407195996516963
+lcm:6309028281362257922,271678876766048827,0:1714029716965733695518439315219557494
+lcm:6357785774765671053291,56936125648067424,0:10969323930774361884705778197353487648
+lcm:11095109588014,9104811531028000846,0:50509440857484599522180551729922
+lcm:-921590308699737078,472826384755153630,0:-217876106943941345664446493248646570
+lcm:652120832633171211942,-3387083844442113181,0:-2208787936835953406166467995677302807502
+lcm:32731949302549,335896184427699,0:1570648125658156079680986393
+lcm:3635516318567409721998,16713986701316425,0:60763971400954533716595371769881217150
+lcm:6746198240933100303896,2007405485449,0:13542355354775500078274959306009304
+lcm:-19072614334803913032,-240759760944833349,0:1530639355946797274927793576109768056
+lcm:828472954262165857,127978158379025077,0:106026442953302260750986298136195989
+lcm:8306750095431507743,6378030328941226919,0:52980704043597587430846783712468533817
+lcm:7938532173109072,7646615157112938170608,0:3793931277507783816896749585208034736
+lcm:25274397567311,3125247753747112,0:78988754224550174717491855832
+lcm:0,-6378030328941226919,0:0
+lcm:-6378030328941226919,0,0:0
+lcm:400327281633151431,37147489147345586,0:14871153349853852722430493627433566
+lcm:28164658061513141691,818613450005821036296,0:7685322634656510878949613649488100605512
+lcm:476291935913056166817,170589720180888384,0:27083502690607291480376538585587184576
+lcm:84130837655605609,16051948347568699941145,0:1350463860485469013094700782617631882305
+lcm:438146043336536562159,-2206822496905640873917,0:-966910545365262749689560255553699552306803
+lcm:8120293725815373571,24028314574527126,0:195116972081450718759827878362986946
+lcm:-667658265953408,8440015504605457600699,0:-5635046116424757633428637247402232192
+lcm:53314441150262832895,283247085055963859,0:15101160047199676268547968068076341805
+lcm:6658153298145442,2140281300389057549,0:14250320999144418995877331910041658
+lcm:213046498706732967,784948480361985741,0:55743508468763934304784144916207849
+lcm:-3857522843819,419578526133778265155,0:-1618533749336956944635887834826945
+lcm:-4948941087660882967,-779517282262677550602,0:3857785106731510951136294197380142396134
+lcm:4277076043224464,448010594023993,0:1916175378810781677476700564752
+lcm:-644113523059324254840,-71225587742718143,0:45877364252933205602125580469623562120
+lcm:264902435468141506,-823887292259809475,0:-218249750270876020336340975899569350
+lcm:1538706915662950684,448326823774496344436,0:172460896054755625075686197059836448556
+lcm:2036808313025110180,30422160628736748027,0:61964109668796220999356441366572614860
+lcm:7385426850078311,9871854919284839,0:72907862380963907579111265026929
+lcm:804644713550364054117828,8379163811459445,0:2247416621621120599518832306788891161820
+lcm:981008037679996757191201,-641409668917881464,0:-629228040654107304092567432937180101798264
+lcm:64201713053871850,879119102660231895102,0:28220476184584758536715661672075339350
+lcm:1033957429367195,1113485105415049436,0:1151296197233604656037339121652020
+lcm:14455075580451942850,-1885962875546302716,0:-13630867953974143493153933318215890300
+lcm:2615475057635555327591,71606675442458157933637,0:187285473579953754910128144228132079173078467
+lcm:596676024530775,2621192750454214313695,0:312800573973981674572351390206292725
+lcm:71665682789483848832034,351563529541544408090967,0:8398346796158551916852810998534107080858545626
+lcm:5092055214749737510271,-1833800774226189505,0:-9337814795210574311088704576082129905855
+lcm:600508413963341945,5057063373752305154,0:3036809105884103889579068197287884530
+lcm:-92318043858914149,958444935645415778103,0:-88481761605267642819033271229511079347
+lcm:385447683586530283,1775981280157037775814,0:684547870529570889684189390051875975362
+lcm:80717517906672139,362327909576030289130356,0:29246209529290308450092391020660324351484
+lcm:31249856290116188,7875872084416640,0:61529967699339457577602450142080
+lcm:5339381130045070,-287550419156538713298378,0:-767670640990486609645612376307748948230
+lcm:-28993892995370333046,698005135756870427,0:-20237886216353643864566444205658230642
+lcm:9179674525723481348,81469928617693608886,0:373933714172176229761960288978914029164
+lcm:7522547789649675160016,285918417200326088447794,0:1075417478665223340089057247433582968006102352
+lcm:-901774653467788803,236000195734098992,0:-212818994726447447848669649751186576
+lcm:142671415131788790,-2583777714764598301032762,0:-61438537158574095028788610137898909056330
+lcm:951078283105727024828,1487627587101952300275691,0:1414850291441640178530450466337072693601856148
+lcm:19185476025869672486,2445736876347152429980675,0:4265693291522152053797221279874464505382550
+lcm:6741226163186521681303,2568160083399218078514720,0:17312547945462088421236893499979478635434280160
+lcm:3987919571578399660412212,9884144363611069680876,0:9854293188987727688997011704065958289363314428
+lcm:99431631881940059268,-291965406586754754564989,0:-29030596829995156232729757591886192217768052
+lcm:36727416735327035,-1612205593089728906670,0:-11842429336086311491916222123088564690
+lcm:19590774006340220367562,984968880458891391,0:19296302740348077288926838014277057458742
+lcm:70695613219926859099201753,62591913993270611799645,0:4424973742363186825608316839246937058962268777685
+lcm:77425442645246583405,-296832015660977965,0:-656638577252342429795743277063990595
+lcm:807971872592227526408,40230405885131399744453603,0:32505036378154987781247713889763216622213248024
+lcm:965370212546292322,92058451234918953535616,0:44435243317668098531171705039686887170176
+lcm:418561885926860582,239657399821326936,0:50155726622771131306218069956618376
+lcm:4657697584188823828175,78713797195009784682708,0:366625063037526091489561582727843402285697900
+lcm:-38091455008728662,5763777114003492300442812,0:-109775328309201979538317902240813878138772
+lcm:54943065861736600767,6268390929335695219433,0:344404615677603400985934681975925581105111
+lcm:-697639190379957186138,2936028900796584636,0:-341381470880647489965333380835887162628
+lcm:96018089280939789090187,29566309848085271814423786,0:2838900578701380961562729671686086004548591987982
+lcm:-1112368751522257152114,1995174854903534746993983,0:-246596684713071723298909011042483787097081118
+lcm:-84342841213955171500540,5699084396809137598518,0:-240338485172501289667138051435146885070099860
+lcm:225675029492277024520800,92998377812004114915728728,0:2623426456932243737035123197311725507407124192800
+lcm:7655269162163547244,594548791001649285,0:4551431025156545678791700910016320540
+lcm:17608380663675562604,264448308193844308642824889,0:4656506476542203967645749547080047894928850956
+lcm:223093179893694063251643,17908241494426478956477995,0:1331735513765267693007651331958962321896225698595
+lcm:-9501451313199296478183,164266650410143061944307590,0:-1560771581254303549338241248628058185171476308970
+lcm:4558730178677382262,3122005086984557462,0:7116189404010403994895797264339269522
+lcm:54440882483631228680923933,4478571958703194374379,0:34831058528320962440312711060757171496803301801
+lcm:36855929355558415329723,308635436762628905,0:11375045853945367585945011810669865443315
+lcm:28683868680975381560,42902583850929860163229,0:1230612081254607193977374775224312156657240
+lcm:24731088466679335541839144,81462858536522998396,0:503666290303833545129681622218515211800503256
+lcm:-72335534127835253275,-227166439208550011362,0:16432205716068881729381218555965397710550
+lcm:474777034176054735892,839001319154604024448982,0:199169278989010220914577285259796918419130972
+lcm:6299666296143449904,797331145004636509,0:5022920141051174455685525850770945136
+lcm:8540885149755672764459236,41765710483565552588310,0:178358068219039923285097732763708140948642565580
+lcm:385990739803366398,2963466700114736836981086,0:190645117326654704160162372267660375658038
+lcm:-37246197932269024,3005402223074948482,0:-55969903033365437079467727082210784
+lcm:-751622018429096822596,3003864133422104297,0:-2257770423049491832679123307914818295012
+lcm:-6108319432277782804,-82931541043539126216389,0:506572343704992558730984950135146447174756
+lcm:30921518942393713547539642,721143788088068568685,0:22298861303554770289882384831917605974237310770
+lcm:570903751254308471830202651,-564896588437884119958,0:-322501581409949262735089396741686909437933608658
+lcm:1054271475454361570597270062,16484741384321323400,0:8689696310866008240570033696584650327520025400
+lcm:6529831639822170310307759,85346429845722052312845786,0:557297817952459046702350223377401463955562766253574
+lcm:-754058902141939454006,69516695016006129145191,0:-52419682724305615903366455441899934040585146
+lcm:976193241125104191848393,33823563038032982713854,0:33018333628496693179640404511073605465668736622
+lcm:2920092456500658009757,8895875497550350532901302605,0:25976778934365816392930294156133718389132099516985
+lcm:9994369499844252132394601638,93334243646132127297454621,0:932816917987935116609350111907831170748502078677269198
+lcm:569015432462996733746,16322837154963292812416483,0:9287946242754509292015515862839485902412735318
+lcm:192500272569416024937360278,-235265435750733300361,0:-45288660508178593749288683427056889794244460358
+lcm:5267095375035104443898399000,-764192677627393558125306,0:-2012537858983468571142965526423649868280387392547000
+lcm:51025753118541843018,-1664207936338749988204,0:-42458731648769528582814028192013959879836
+lcm:-62402848465899883613105,12900108782353988220438351,0:-805003533538860189408921682314395887504788189855
+lcm:-8212641700259728565,297115088713153106682478,0:-2440099767342009818056382435156531921584070
+lcm:-5313586393962705049080,-76998532453336088964044527295,0:81827670879828485147952271763338965987967674927720
+lcm:463290189242313601142817059,969769350842083604500926,0:64183518010432075137644646337185534388781059156662
+lcm:1917277332460964412252,-708614825339303498360550,0:-226435190344805337091761225274903062722243100
+lcm:99562752968815530108,23844471852654970991199350,0:1187010630368881028219592827335680236477514900
+lcm:3003923448532254675001,7732856831499478812681071,0:23228909960284118604870886637597256802569606071
+lcm:5794073936773633607324540860,-76553654622431077040278132,0:-110889383753149576103727978239709891143940060899618380
+lcm:-644932980169883872037968349,42642515095105038480,0:-27501564342225351457715028479060110852667069520
+lcm:41892582203464757978762451494,68041907390182959305068217308,0:1425225599311887918623588695629495898803810573641200629076
+lcm:-5550794996398648089925,-61773015425098686639107,0:342889344934094297210650346841878123357696975
+lcm:26506218374693057900,-167675112099207386871,0:-4444433137302729109790367830963302830900
+lcm:145568384864275126584,40072954892382195328941863291,0:5833355320423028246614959434448834158605847827944
+lcm:3161170925861501561771687,413220145707787390821,0:1306259510591710846827739981054213899841485027
+lcm:723440854928237000349411,-71208223609049472714282072,0:-1907960672801919279694226377330300776949407891096
+lcm:94994080481292730137,4307839512004666207932600136,0:409219253303864061854413637026462925940577498632
+lcm:7821178378958515500742,3087104738440174209004586,0:12072398416934336857114452721997626257582201406
+lcm:869891649236864909625695,991848579874131467931448097,0:862800796939950559315938082847205513561495590052415
+lcm:17628160996789341122894,299337591195948255548811,0:5276771249993287502058785568793774940966579034
+lcm:99527056994641754235498057471,655773087035017085668857,0:21755721802962104371752823247713242761829805420293549
+lcm:596721281791001887739,-328175786669349585798669238390,0:-195829476074104675040288189805440291150559409100210
+lcm:266802917073126657350936,148259550527207353925931727,0:39556080564609535241696861668682911763097415546472
+lcm:297095531532857951877,8071469565512676957784213778,0:2397997540817274789320989692996853463867804361306
+lcm:-64574484904487858142015156737,351049851111701482889769,0:-22668863311335277552737854676715612712147868228723753
+lcm:9213606993296693767546,-974475310790221342435,0:-8978432538291752468015873684497297955614510
+lcm:-6506246525097752180174,-95653949321972166356216836249,0:88906882198279699370047684476316613423860643189618
+lcm:7211807452760603826715508,25981532388511222064867790,0:93686904456803121715837451769742014367676981343660
+lcm:244358078258267292267766114,6788410077941126965241803849,0:1658802841074748272013529977344553715539817794996972786
+lcm:-84498071017578145227329893,51359077717175899950414794158,0:-4339742996343244440353286358071234877760977371555165094
+lcm:315675121566194900458712010,607326754590110945679173086,0:95858973542817944770878937652762380762977850708481430
+lcm:3336777364604897112789890,24326442512123908471776,0:40585961367908674095931490287547594986841572320
+lcm:-631164366791648249399815693437,224085205047080377284686,0:-141434596550917146771849565583627819691166316250805782
+lcm:-9374071452933990971885163627,-8124264246742383054580586,0:76157433551480046450059234199385450235104896467545422
+lcm:-8986611810629266612086889,39090932189616079255587,0:-351295032903711635666432166463380265071682698843
+lcm:131042125952122412011234961669,-603299752062616670818260436,0:-79057682096673636704088945577099341952975178863719227684
+lcm:-5931135084197112120929525527383,817854717051260202081870677650,0:-4850806806078831488870903900854502497422338114185819841089950
+lcm:37076034350171687718404493,6575825691817817445639700141386,0:81268513076859634022073542658756708736205992975479215766
+lcm:6586877468189252639017707825771,813151310907233772623665199797,0:5356128048043411806613358165516537614499231407192441180568487
+lcm:2933337084774328653741904208050,516673656644156545121601676651,0:1515577997760262602679690085554979355436376363966312331240550
+lcm:-9902991686684787357658450,173313993122814232472956,0:-858163516540686876248980610636336072294554939100
+lcm:9274522469490915283112908394363,44864081129175577116760112,0:416092928505602244504563614588785724831758965222564048656
+lcm:9608655195311416270604257657,65867528105907714734959487,0:632898366137150893335309426569727530606624485604541959
+lcm:853239911600142024011098491,17829323361272785163230303,0:15212690288662738268179355293062413175232317048772773
+lcm:23972081642808055559504902,-4501717580058722285684735,0:-107915541362031999704526719592126415237678659070970
+lcm:5314236376598680151908105,3994830160691915764873,0:21229471758282529614266075257916580301482995665
+lcm:4935319583093232012062136782,881389216056886912824752493825,0:4349937458332745712903267792817007035077166975812760371150
+lcm:580231659494763900889556,96767644291944525456085901,0:56147650832913989511127904567807102400387849749956
+lcm:303622305001319462939309066150,-27984889540977885375442171280684,0:-4248418333819511268163760331043084702315340960497818786623300
+lcm:8908131273613694428163643,418798812110676949375564324,0:3730714795515386967446577233797553865021052144672332
+lcm:604960317372762640669451812,820482420778387317631260055,0:496359305672865772215202726749222319854411791662969660
+lcm:3125355862613621420823337,52123353846012574000878521623,0:162904029521719649924422263486125418351967284017515951
+lcm:35876668588605457895900,-237986271303986771473105323,0:-8538154584211078670353490608427234416302669875700
+lcm:-43001262189486935668928474222321,75601013836677651900921245468148,0:-3250939017782005364312622194873995196088464819832369459876131508
+lcm:50360054222226284955381499,-7538629547593198554710875138,0:-379645792778070687264466482409787805710036592944271862
+lcm:16303655607623383537122,23252538460647040924816117157,0:379101379065406527294500251303186510479764610602154
+lcm:29876051059586965106021953,26235768232838079362376,0:783821151311760139992194729309972935608098240328
+lcm:29623076251397963944271763623335,47441755805615786352682527,0:127760977248178043763492761350640873496807885066769451595
+lcm:9892811422980328964557595259,603482574014084208448431822759,0:1990046433925368031040084916604965307795191807343715566527
+lcm:-2549498483308845928405350,2555383871703609992631017913548,0:-3257473652590120103062390285427854673645669471900340900
+lcm:-935906971037827073384146870,879641356065373793312781,0:-823262477154750723009760282203349336801144752145470
+lcm:19597038710644290533555897021,2985160892106475439715913026,0:58500313560112043537702497574448903543850923995448495546
+lcm:-5608937456930306694772980,836399586633606428927522624674,0:-180435114247317699327868488365007039436425700237558020
+lcm:7718522069758342120350478031,7389561033066750535580836572,0:57036489919551968141273365317951375124662579683087349732
+lcm:718875898101761373218778459,686314096776480574628984874102515,0:493374662700091643313347796063672168629137876643552239724385
+lcm:1300200863593962819188902,525922101427424561614551608409976,0:341902185229544560458110713971475236149786740307102643176
+lcm:539220635752920237029329058,29487916769600117002583914582181,0:15900493227532973069876042371837383552914044277544832315498
+lcm:5654437789656914341120143121414,6765853316633901505298664574837,0:5465299524692900146239549597899398996727386837109100340037074
+lcm:103114174998937498500059583,920095995082794389728025430890882,0:94874939452788796816569177101730218978113456477925771422206
+lcm:29882936700790118228421849,-1860889369990333700884198092,0:-18536279750198114735901679591403044437012106352304036
+lcm:8909623809613954310018698,-462806578041198407432067106139,0:-4123432506961820007043026316146032423296431299840587022
+lcm:7230230288816368650543810,22162946284655819337870476,0:80121602758364354591303319881368491740552371776780
+lcm:734442358589456361847988629,1647427465162259118128391711,0:1209940513118819039348215846845414818873067603985854219
+lcm:47616626651192848094181030316,2182277257935167463613810412,0:25978170360121936072057209849558211193870620332212112548
+lcm:294703827229370598691617,63046555168872062038888853,0:18580061101894254060770213008323255399294285845301
+lcm:-533653415261740333749397,-51216937243134223196656339350075,0:27332093479044801759907744737948616465079304814903154775
+lcm:784368839220787531616946253680351,39613735771181195550018240677,0:31071779944040382951244796866071327091341523727977793343837627
+lcm:5770744507580580048400572,231937913382367374762373686161,0:1338454439750996843543440906327507234975603867940884092
+lcm:388816489715059942531589642,82051838197217717225950877,0:31903107702510265086302832415272579698669593814016034
+lcm:60241729629297025142644618709,85181464884435369517497693388632,0:5131478776995614297555781224894400552133266197008401795116088
+lcm:1560786485638020475934392460005620,8850527081981124295638445,0:2762756612065888665370691207806362094705896562533237612180
+lcm:8296622334734688413856037840,-83875508267086319614619277276,0:-173970853806483090137656801493133601685389930382427030960
+lcm:-45794179084517723375284971259238,-49063790774577780701852303,0:2246836021296323435311993617164824492625064891225000325114
+lcm:1752071933321291709931075226933,57773126045256149501100162,0:101222672644126613791673432521136796654007466067313063146
+lcm:730668796977177255106481634556,938608337106204028806933670639254,0:342905912253069470166105593930151155858159563381855355668230612
+lcm:921730456287198291208119641693911,5458708493078803375257300,0:5031457870064330030425732359718797657583243087557468300300
+lcm:213400535376420556914942871216081,4183995847570912793889135547893162,0:892866953884353287726737673843872033409506009951957939872404338122
+lcm:32806047880829491896013320805772,753489056993475245589087354,0:12359499040704505410450582731649402374098432708182687703644
+lcm:15218771998961411533589410518,23457061020403160442042221,0:356987663435240813815179640133949762707316007457480478
+lcm:9046617676720978441798060,7479379807328977629621989162,0:4833077826849448212160770633271094897459555793758980
+lcm:2219170169044655639393672927,-5391273013704097527490654785062,0:-11964152245187612169646728984856115656974060298999913416474
+lcm:277590531551034474232270111103,579362077865358674190909581933,0:14620493377741521712796730933686046346752536860927744682009
+lcm:51422590325724235826789079575,2121952875387495603452158,0:109116313401543756339172704192689685091698905367472850
+lcm:511034032165016743768820348,458982236103828060996895790272,0:58638885702063744673892798532850716778223793123163513664
+lcm:4440454508740215531301617636697,3258309525326637800581711028116821,0:14468375222607860310511042523813260258037478238688128668452580237
+lcm:6330009746329830092300048092,-6167250670699283492360751201828007,0:-39038756853585645999814749830700965509494204090781844412512644
+lcm:-9374602262965156933926707655416,-30595740075402425097079774283,0:286822894147961315557763521486314502763707907853113422466728
+lcm:83645893910576549628700447097824,49931389572768584324081547829643,0:4176555715011469153471691311085610269167538819874387285307996832
+lcm:8030747712125824227213267818544,63329417394086865663449328880556,0:127145643461956118439868630218929081813205737418762248914457616
+lcm:378845361147099357535431194,38180105668041356349238612217040,0:7232177960221771411730351326884973759795619786776357172880
+lcm:25958762365949818177158173188075174,40582859445868015162861781,0:1053480804486029724349686454924029433193919106275980799524894
+lcm:95871031013239291309686124,64936572493882710890460913285902999,0:6225536155454490886042480192744349881519233810545112600285876
+lcm:455128054133718561191432952712,39088645380524987234419335395029,0:17790339110761304357582067458548970370146644724724054396868648
+lcm:1307047523348091088814812136,44132853285705545682051355847561,0:57683736585366097743814172916945483114493512756215268800296
+lcm:1418285824252402530993393665755,636810955908181043849421782278,0:903179951493194917152704617449910466299855863874287914489890
+lcm:3071172872783184341780369192882346,-58125204065109316437571977973,0:-178512549949750604044117019967590439630943828607057692292564658
+lcm:56958148205198214736866933854,4922289245511311172745764679844,0:140182240177343281524353792167921226808367574258629117519388
+lcm:4836813580368584281452577588,-5400032605107989894617874622172581,0:-26118951038819470026364723997465834517846139303988539028714628
+lcm:493001845960066187429806680791,4028800209124423703294502145421185,0:1986205940102641576976415454897329744147895770653902923543957335
+lcm:71197215106470682909632132625,70077573297929109151274279,0:4989328060232124924682056253101608707528304143079252375
+lcm:486722080146274783096432055886,505595939085965376271620470551,0:246084707185430303071142220010478564391091338964955649213186
+lcm:-194536785271632924316130857883181,8276525052027013498990299177664024,0:-1610088576841469642302988316918048088947156051499250583217058380344
+lcm:241211965193448971857220311,2710726738427327769580581757190,0:653859723678484041534242084550730982398579984949338286090
+lcm:667013805494915469984846976421,118549400818390788595763048,0:79074086979016886300666397440542951393124558234159091208
+lcm:507926799850267721181735296662204,67253859677995358015731931706714,0:17080018861911569471437509381376023258751803251807601040628418828
+lcm:448088677681619431331494894631309,779948091351174817338856782981850,0:349485908913850840791957607115202038571061594442475706481388741650
+lcm:187408370748924381155985806145,495794563709904959946586644094587256,0:92916051411047078205447640432962006059741039970472932758203488120
+lcm:868633158815673181555237006,836615025635832190680248872,0:363355776215354156722969079237153819583812159512078616
+lcm:945386362083356835627622353491,8230893874122803805176630038821,0:7781374816351144698349349350957993282560652485452042714874111
+lcm:5596932048341890824814087121,-2850793263280920843358756089,0:-15955696178454147555303366966824500182482049050635229769
+lcm:92079468846004092188293849,65000203344267255501708018874742834,0:5985184198822387758738668838849529371861013959766705099028066
+lcm:284485059147524530505559245415623974,-52174853366891975161102679787418,0:-7421483123046841473739983029315899581631043634755295287353072179566
+lcm:225019940499042054289943285,88057001889802818516938839002453179,0:19814581325767463952213083138864703402608880611447063777953015
+lcm:267625311635136684363577960127905,2364801628264216400078340665206601706,0:632880772719489569595591177205490383145217286350462293583250151205930
+lcm:-43414374537943144129863577734786164,-7033210862612719519352562332,0:76335612648449696783117174288123936538806867445493650875293612
+lcm:32883132771659855270849300682688,359989040176539024964573548207106,0:5918783702233763351390712750327251738350635067527850802106390464
+lcm:8225754994306229461538669946760,79816684330375527507314556065816,0:82069061219943782694121246737779709549970645203965267471994520
+lcm:7425838080456254658426507595,-1772612320788255147892065709861,0:-13163132073595363322916797538873046375619972048032782894295
+lcm:1660461221569443640519526747903779,1120888096894032723781619067526671,0:1861191218611314482654724970474950053651690424934372619599424189709
+lcm:-11718764104457037189982579964973,581785925357694644406822708535571,0:-973973145508581880509230586205500094467304746237860191614936369
+lcm:6811677000322905212875962023,8457366124986245338105030092893823455,0:57608846316878860294885890656152159404437095902874498977846649465
+lcm:234277964462994083732538315234,60350281492645017737168270090,0:7069370551432789506447807101173043521312584531845436775530
+lcm:4183588612759663468880479337,-629574038019737820951243554610835051,0:-2633878776348494576596482359410905898287329191507888206720841187
+lcm:2509727174403533842481294816277585179,366325095871570289922697736369296,0:919376047774859744204436335735246570640422606903982773682501840263984
+lcm:9652053493694317708921453500950,-91539642994112368354952933916454,0:-441772765486426429307043005631104317228468588998611266554815650
+lcm:35148593969489612322148628595,-82585065708416968121031576511657,0:-2902748942528768024032450841226352229253814757005116581031915
+lcm:2800741702103544119527140802733199,46761480207188283686223358035,0:43655609222787234193883724749974391389581728627052774652634655
+lcm:441336276433669766301405280032,2656936104993980830437872804,0:293150571825055340462835975394089506580252706417004262432
+lcm:19746122571650880858695931178058857,104545112367422664420669962306,0:2064360603074142331524120459909153582079341868724637548439444242
+lcm:74432478600289091913597803372,1021411507303737809729230605483660893,0:76026190159474490029899083115858462446496838080724392481739931196
+lcm:37218119790882940825047165121,-9786692593914842780007874460688,0:-364242297316869514078703840625474873421751340567491159263248
+lcm:68400175404962139133336849460667620753,8111497426974768586772111911266,0:42679065138613326270921172084657529459737080671434543323843052007946
+lcm:-36411507888779255237781266679960702586,288273015425729999064058691683,0:-10496455175296151796260705657513107808386313037221881095512634792238
+lcm:-93804297004149089553676142929158,72597578405766612297542242292431,0:-6809964806556531666828055851398144826196098989021186645152603098
+lcm:-82026709713179475197473688526642531,5827788603588390535677091203646382966,0:-478034324056320484117325267961249121989480834362662252362566162209526946
+lcm:545760067487517393173385480028,42151112506666653978439280505,0:23004394006312331510547051427125022225825594077610367254140
+lcm:-697412421088675986809554647004214,6926944054264140642234974161460,0:-2415468411815081649186019052688434218369772793280624742868196220
+lcm:57812799959867792819685059219,779735108345604313576941265627654,0:45078669840470262146069880262711457187904686148856378194042226
+lcm:1472311567166258003445083977221663144,83378953824849274359711951741465,0:13639977574949655229291079317010538142583886970067850684854934118440
+lcm:570337459673916278308389115966167469,6333660822968779197930730584647562275,0:76857957961877010509843395509780188770354864577206186663499194154396425
+lcm:-388785693105293562593219349398,820248784628021659491960244881371621,0:-318900992250380064850834487637248605290643186101012034699480634158
+lcm:11679788667362042415563834445557578,-5819547639993570526822921884507,0:-67971086574770424077123666817486620774164160205639229582134644046
+lcm:-3982959591737356792197606403519482273,-333248358612381656382679653253,0:1327314746365915910353403610458733118195746910957791963061720284069
+lcm:17221610285774362123428353448280602,11458184790118982447972303969280231679,0:28189770433973774114920757867056877758202824175213356039046635823084394
+lcm:772738633297996807166456840381926971,785759122171938805714543081571173360415,0:607186430168577693296664258953260658244617930008242877365346151059192252965
+lcm:125784145401376536208808801528812039333,452055550313139515567680226389953055,0:56861421070087227190049678638474498681709153815504817562127254516683512315
+lcm:32903571905950760393177782893378791,6631740924411766007832465757451477,0:218207964368018909275497254276866261100277667630506488424913763424307
+lcm:8742677352155721160009371273251,25083360125803108633092433384973055,0:219295724487824718593455764107115931859507036987734897375677251805
+lcm:36273669132247708836176424212020,533102320793846929600697481505030771,0:19337577198109381261236591896304826004083902938845516133439528067420
+lcm:11965144674509690079804137520044857,9349045655011350274674885782216185552,0:111862683830807014974569906953845003630437520055543213513177982475306064
+lcm:3321305668226664033356712162893,-403949753985171409898849824686029161,0:-1341640607589716272160331793818630136041627867704613639659980122773
+lcm:7395363159337411027760652209127419265,44729331460301249556947662501414682,0:330789650023303701714182934884591650253917627482713804287730858240648730
+lcm:871058047335719958990871843414,28094200616974302760918376942978068402,0:12235839765439807545562104355459585845290919144959079858231362602214
+lcm:7704699734056436938779166257084,546898541513497897846722209401,0:4213689047354900490455012376163453543698919981174872047646684
+lcm:950290435067652970604023856243611,4001208123591666075058892234775,0:3802309808564151732408385790073534886035212910698424588605772525
+lcm:3119293215232541154035748455321571,808684220462127868482572087900610,0:840841067384377328832287433031234586779556451356106729978612352770
+lcm:432360858532087298548744564083197299,240846574096518547683557847064319535,0:104132631550882737065113576806715978014672912813529852776264204584935965
+lcm:-310788798729818682147559678302,-2172955391250831365155305151397888,0:337665097870164518242716524072816191896004699076265879441113088
+lcm:649283478652713472152371045373000641269,9179675498867400603641823155076,0:5960211640807708792849652271953975864417053692073644908051640832431444
+lcm:79980532708199255123596245351024866045,35273005660545430889304120342364,0:2821153782949751307464444766122322349363016295719088889624882638630380
+lcm:-83351007958684418946822288153831314277,-51634644710916030743119182132599855,0:100088364703334986444002041507106189114327438112522438638963055385805345
+lcm:4992915740405389949821656927954249501,4523923119542484578579105473053048,0:1075598426283215515120154478613079151358480623324833686397654095263288
+lcm:-801991401381703662108108758716412,1462655905419442096496214673085035312112,0:-293259364831640743777507251364478142142085309047027174124191748729195536
+lcm:679369055865583831572651301119431385801,6364653911974833953564963906049365,0:4323948919089537646576384302944771028193868888345656961053886629066066365
+lcm:32178714589413433072024739357148883,2182815001928827996341206621079833349525,0:3696851628871457289339239307548138692732309404324005056784243872842227925
+lcm:604754886257955637472038235002006997,75686581968330008368600832791867,0:4161075479046440938277498574104870338592618123335252527305070790309
+lcm:287068066584060661996114628597630371136,52011890293701406927883275870768865,0:14930952785995133944874986127466642449246463907028312778992290363623480640
+lcm:3979837024286745384581666788748758,7350136706945206821986896298939283,0:29252346199869589826241656345690372038181000414430037048634183660514
+lcm:7385865195603313817759905903511277,1520983986703891701713359953638,0:11233782690466247146504034010039435409908987896556224062130175726
+lcm:764457193068206149728854992613,27858021258550102776458498820919,0:21296264735745627187463264202183322605488975579352986954871347
+lcm:-4155789385717252736363125208379519,513716864065732253356348104577569642,0:-711633030316107622405824053747853916334740454203908038895636729654066
+lcm:97365354260983249124725672833811771,5020029690975786355406829440294084209626,0:488776969262511703376009046688465573304498084561257966650740834323390307646
+lcm:83139160308299020652846789174256754,3913486804605023733190361150860684,0:162682003406234977077539172530366012958142362329068266990181550029868
+lcm:-17691166446369130975076403772363811082668,94600134419678935394632555907142,0:-836793361933716751903610096654309723151466648559815713270120684946807428
+lcm:634823647473707443708903538054380,3956996255499668253479385484122050809317,0:2511994795956101788922355113644864677876582447280810271598141786556658460
+lcm:-3637804742599340390876015169076139565692,783241759542604459838225899706055858717,0:-2849280587465938677344529171806295752584262014073034029610817921718004492337164
+lcm:585812248650822285457691267576462,21534520461947113931625020852108318,0:6307592927715191546338604981717905869057205471110964228553485605458
+lcm:11281432653044672416448534028211038025,711109480140515578563170257201359462,0:8022333709146834455095073412796362253303159149746025747385289864175542550
+lcm:676293649029453415159585825583394,97280549393475973449516311017466882903,0:65790217728903847286239146189723168106268785797184624412977724659312782
+lcm:-60552656313655809329731693060696763524,493007935144068742422888317617165,0:-29852940056683907903878516926766558721475796609356660329816267168289460
+lcm:499127054152037037035927375386500,1203956412395744650060889503126393,0:600927217446543074982206780295985557213897685478460386666725894500
+lcm:50094686288665713475507184834256049095574,-832478827433992238527275985275884802100,0:-20851382851131060794973993277969178760786122158514529534407995697925158487952700
+lcm:3587136855297236649460183411772356035310,-712398604370738955166219235841134498742,0:-1277735644700296381952103446442115125860633433942353227167692631711417651290010
+lcm:-8101551106022390770336067301182994,9185799272249263720169676176910186035467,0:-74419222253790694721684461955969753328255728462706287902254787547941248198
+lcm:68680574795029722620883183609775450677,-84158462638889794851250260034014551972363,0:-5780051587904985041122626676950144438458787116758152359160332249952887573639751
+lcm:155258118178686765062886673806448566,-6850017870177195667059084688029341396610,0:-177253480669014543271712665559172404205382093546240559566299352291761960210
+lcm:285166743996114296479394289968524943,559627723033455856754700399288311,0:159587215627409862324848662934458300983070878875254327058667651841273
+lcm:97635198013817214038209538637709608537616,-43337611052093405089732573050042882425535,0:-4231276236516932968241697386864918819022381398914657632453889680479868318366424560
+lcm:2025635628106428290541842218677337,8363403252785996217814021695187802,0:16941207601064506909583426911328603088283663942724754575178256243274
+lcm:39403341320445818916772945982544618,-3081545887974055895915003777735743,0:-121423204418458019221260007112987567988534380636151689137057510881174
+lcm:66538675039876745133366881210395320367369,385523580015310377616062750074359,0:25652228210848657783496179630561675959121693223651695460689142031947191471
+lcm:568797587304724025372575349953868,-809993079501337508688725757864677957,0:-460722109353884289924314758764698126555664169725436270804746626487676
+lcm:87438670031005707662235517162074411507878,762858503307630620547057859718065131261504,0:33351666475531395026558166505559631395861641079699397271443823762152715254487064256
+lcm:-135539991676075663249711183869449098,3187117064807540583340853903135708355720,0:-215990910217346375421192415314259011732701914127161619020473509115908570280
+lcm:3623316226168035106420698863103708,281527696822113339094642926844583498510,0:510031936005639216824268963288080554001943557921657188124458629796737540
+lcm:462743256592937700094228107961335,-6269566498572477078237555404177435,0:-580239923795081947084080072036122971178457338970051983328091895145
+lcm:-685484600842741055621576203380446857767,871551172534175305655069705808532,0:-597434907618612100896516584776549623778036010575252420692205107539068044
+lcm:220964518681325411201409247135357488007,-5641829172229111635876189209726787450,0:-1246644067523866218886679493927269969586873926750864717926006590010013112150
+lcm:302531333113895329527974519952510,186535245939488501803212618851457571589,0:56432756626801787093558631197271214562205468328076903171812192205238390
+lcm:817537141270922830542026664184986,7821981713799768623509532856543951,0:2131586856457765504425364967419253491712890096440257591636701106562
+lcm:8468979244486855292413811013010058,-209488808243349961649691393540068,0:-887078184482608830617084669743435658018755140226162895602555001972
+lcm:879852422051274089521663230058530,49497155404087571445757965616479604,0:21775096033467380006952525371180650761765159390311330589646735611060
+lcm:21764922287301916637920770938954126,164044760066720848860497915166650797335,0:3570421454491268052799273529790558940088345201564664677181891708888054210
+lcm:59469732179854673335933541543666124,33859516881008254191737434099260638598,0:47943247634591169393256397833360901700530080487187711490425670722367956
+lcm:5622782096444522942366700649751601671560,1818924766888381565955786591467033096941030,0:1022741761403951928879352842728218349531334767337439634606427252402319167074810680
+lcm:-83658234598433632746857009684831849359505,-29016349811234824466750396183186748,0:2427456599698498400779164525993522755993904434491695109250156524973603839740
+lcm:7054089120269602821498711515003074,4095832337673576318592596805192095781914,0:14446183165815794387548075169511726311756130919745539387698300521071801818
+lcm:990394898068553803695514279851854605418847,-7739084020331097221051527297005947155388,0:-7664749329459790605184280312841813382942964148487855083039273635724968309932797636
+lcm:54075935489906064661012070011939942732,7918292813066039667153314788962651008581,0:428189091349545982631162674290883455991732907828213951097897291399359180583292
+lcm:8772115771437424285869834799732506658796,-932849018789404004804426567212331569,0:-8183059590092457014103801212671744691867340048481623621821910552497102330924
+lcm:-474373401937043543973615567508636867124,-23736477393422078122335330115520892673,0:11259953531119359125561737495585820068714950649943932579707916447562566182452
+lcm:8436352086792195283692976718955932574,-24226347745891111460405966918193715809620,0:-102190999680700937261627650760472234672389538208298360366751473305837270280940
+lcm:814519302031186083731939523439915121,55324835095437197264275880684820442585,0:3466395851301998018482796204627115585152729004909209666935241139850294445
+lcm:-237764758709584162016066869681905512952347,27730963225107998869867496093972168,0:-6593445780002155177144945210712636481509108047897422208741783636396128278296
+lcm:7518474854158787395750001309747813,8381114315785290417935232114225100106214,0:63013197233061936586019793610222181046567760778431006705881553819854209982
+lcm:57926271609377407522025180011097851547,-460438760475654775684236043340437433561,0:-26671500698797845620038488129522785806400814035581845817517898599701653568867
+lcm:6638349918167655693810387712273716693403,55308325418124425819340246954531134649556,0:367156017513396353523080763860964198057435071526450849007117311720362229502079068
+lcm:-792096039638367514268257857215475476214,17985352918594429617981644232595132,0:-7123063409158501091874013108015475150372207113988264273740643324379095124
+lcm:17523605051927467343416676052611136060682,32818776862511079287568864844380549,0:575103284025979425337961066906823946761256491065774387656701755680364474418
+lcm:435598204136143930685119666237820390,902306362378699323196514142749053448065695,0:78608606206555625579369041525511439839013315758266695141072573521539666104210
+lcm:7246625600474134146152993995542881524104,84045078681310625106949990828070364497,0:609043218765848459070950953243439359310276390319003636791153856018486171335688
+lcm:-787638361574460696958641849383712843152717,-98972482600264920015196417920239935812005,0:77954524036229481100840641198098180090516196148063542559493953965332234357616967585
+lcm:82374608290966933640517911377351376793038534,3375365592517566879211534105358267232412929,0:278044418522442081159379773928407521481969102832422171826378968402371349113290496806086
+lcm:-65869507968457359071511077346860349916,233541308077986424091233056554170108328607,0:-15383251053406881762895333316227673851604711244588922960984017463587249932847012
+lcm:434965647854018848199731601803786298508849,6881642201690537465635377223216241,0:2993277958557881269328249998872265799210459572563672559065439071522179016609
+lcm:719612999193225374224745692059996056358,-315519530953816852193901984099603790510,0:-113525977986857927473880514812648272923195988059593175472980415910454192781290
+lcm:3371856558784507755414140667220962994794,-46940188151078159734582108552804551252391781,0:-158275581287791729316741990876515371668219778704190560942981767461139678285151388114
+lcm:4803433840417804894873156694592939602852,-72456645795090954873268375616538340122311,0:-348040704375306339795449754303228838077133852627838127804760032434988381444430972
+lcm:48568835567133010333265540506612310476167,-10706367926604784868082114989212135746648832,0:-519995823348494578419271225922535589824979430677892239954987805560794580396454386944
+lcm:-640514959144433868933444881224466486263623,495227035072426375802319189512972514543836,0:-317200324136634298803490410310491121240672331811889843420769547754733113081885677828
+lcm:-6488859550432975345382980598094012298,1739553070312394609661279054142037504040,0:-5643857776890793418849823122431638031104808487025959819767412990038492341960
+lcm:62439762329215278757554454849955204768025718,79602289985731119990152260854511851,0:4970348067570324615570705607275557501940237030878572771873031709232361903784018
+lcm:6054057220822234921996955072468282902047103,-41461621564455176604944655360416823,0:-251011029419288750464457350960394818104993744337372045669164809905502059613769
+lcm:41593335543156355768394832800525873230,751910447000975730197547607815241920,0:284313304731966064820099773565043464563065151891136193714105004651834560
+lcm:994454253731718339598418586069934146007,674502407982587721309172287657440910774,0:670761788770571291425639315014529979293655007270270606543282922218043975379418
+lcm:467599304203676521904495847137440151064429,1065364075426775111107441639016359411726,0:498163500393153194363286906417357715847233221784448787935167388300077631164094454
+lcm:-50006834540638623993722097585899096403763,-5313099491095445109561808031972399857647,0:265691287149161199757555723574229252417144350517780818574650795718178070835125661
+lcm:80633786527554906657368596063180401716797,60423064130048311342811193512905633441,0:4872140454403075663557443919045087358815687394738194780627830508431609174608477
+lcm:7515721962363288712694440724080300383839,847957688242291310060264069657345589412622,0:6373014220677391433202574116816230429840218559515683152967957040454035241151415858
+lcm:27726212382161724111674518621229053817654,844465139764626291093420179330707907,0:23413819814445912412285655292812080594927908481755534067419056195692713990178
+lcm:-9817131728229141224738800156068771165515,5514447437310670168515402768125807553,0:-7733722414353494049116967432808422342245494692973084146482292477938628590685
+lcm:1101490427405231724327190816394483390794764,-1715150116840413365727028822839059671039358,0:-944610717631340024199197825772309008665579808517055858746594565467440593828772160756
+lcm:8714614705512806124985108394035361802445153,2277516152797095323407597912040972562623326,0:19847675757208518019561453963926275072330819370134031638574421823784137713762913438878
+lcm:-40241069975197162607015133362864260639182295,92350494843755720369837991386076354459722485,0:-743256545050331739906343199965798133902862257044301031935484830446583922737000605080615
+lcm:94926798565178929705057494111757110129555,654944641739167114202854904453615515658738188,0:62171798077717196972382133382107571708777354355494810646721424261049356268684505946340
+lcm:265280847975099333384365084677641815670787,79159871617113409657206914064640126799879245,0:20999597868187843053561037716605216806384147652131248848290439305459650098340274115815
+lcm:116347226264838928071222153238640922289035,68573180747149861177662470447052670907671443,0:2659433125362780479271819825899011059848120776197137181515334033569979255463087175835
+lcm:1040609825768545533315151293676302487896884,-81323728160947963681253577857302080515,0:-84626270592412620351087782103887368619510384932135633101731317980537259985615260
+lcm:995902591817252306534602024050315471330353754,5332558356879676808399004303967153306,0:2655354344316609212808731137647072862609841217315610320176187816399151656665305362
+lcm:2001969035383918099033090062929650143669765948,4190101466247488888803682714062857957220,0:2097113347636056547892257576607870417625666910651072024691458074358445968441699186140
+lcm:520711239532941932960582838954921846930386522,-3853096594619017503346777573808512971,0:-2006350703824226084150485654917370322708059670415383459171549901585565143080576862
+lcm:60199373689261241651972446393273631317362,4966864098864732001544113870901038040,0:149501053975666897103050547412658552280636970592772990519302688978409237225240
+lcm:945149245494027792287917914515672725163081263,8902933189066222709145663761457459365794,0:8414600586329679076832097202813182563472890369046719691038445973643576962794864517822
+lcm:42113632082774519107063284261972952560637120,550965713086089226514793739995356299364345,0:4640633466226213589957981239329763407434377391979443407814888806055710449184842297280
+lcm:699130208513509445029837360613055447835,1388996167624703080432361535173321299212301763,0:971089180295924181746449876683106046223557368848629195863225292564207370057125033105
+lcm:2708864861499120155181972404884433662661130826,-9669434874243213781569557549324652869447,0:-26193192361391605615558952560977409140576479476697591006776382263831361618654765273222
+lcm:-2663320619224926510783240759799877830,-9288856838720796348912703146202293649985994,0:12369601973796782329028816697760192304592616771255092738637656832851511205556510
+lcm:129339208558322679510730678747389994722,12274162664070343010820636150243461714,0:793765242343485804331099446227740401740373258846764856738702670720734536754
+lcm:7927826382521640149002540477963715500150746,169024688202278131082480706237325364215068990,0:223333063737919130606048178474544752216924447740470128636366880733694566431051631661090
+lcm:136906526225769628858637915191370345692692,539213183682016621647404279498623014328141,0:73821803873042744699575963663268898393281778327505656899589792517391459419633645572
+lcm:30681142365936990868501835461428152495,-5027491490146180677917496407674117704,0:-154249182152711677657936575800296045756593757870287279358854312185891271480
+lcm:-971981137022757867271162004648718096950546,4334305792750860480761829171455584581712,0:-2106431736321153641881651019375387709927826224608513058301342860436792581080007376
+lcm:578802014801938809246604894083179003839,4755521418153118560811649969223227339815203,0:2752505378260798366799002210776469662264057939931455802132200174149940527887564317
+lcm:-85637729865865539531457719920611651870241486,974400175977421869121902925057819107693817,0:-83445419051606298238772725013236132640041467317129471694684769066837807060528339092062
+lcm:-168964790731095355351979412256338118430524648,170138331609580398941494555432555720911428772,0:-7186846898937614525591235743048196241372711495546492763752347187132124897827551810593064
+lcm:790938498909251314495722876378080005340582079,5214770204816378474402582970231763702140978,0:1374854172651385139955310854649879453753928013886594694727948344749512222152267012777754
+lcm:3097935765451813281781983641770574025792276,42609404056306319259222360596281494320705429231,0:132001196770618914910107580782114196079241607233335405092295156225025350707315539424419756
+lcm:-98485087154927525975034391790808080098982,19775664577849930783360381707025488283978,0:-973804024748081746850819013189941767013339940621603669747325245218966911782355198
+lcm:25900464334299058097279910365875929228,58255952834922520501042331752256379575,0:1508856228661518846300670852569471328709790883165326524402490612694204718100
+lcm:79400185595521899110261406600117591081721314118,201740226840130845073877991057259510967,0:16018211453189077537841902603464990449906833086676810898799136608951219916977272932106
+lcm:981167299738316185980724229187020822277,8133607419206585086507618470282084549435045911,0:7980429628634459820355488852068596406179426323528568158104015662222056961076466559347
+lcm:81466412463591236560961446462245299836549126707,866192944729287017177690246604876328497,0:23521877236122927651693163907061883464266675326601201698284201208926249964967269289793
+lcm:6534998388738554052417315288897046254899165842,46609611771478693989087838979597248775,0:304593737826342807250457708401174251945994165789414852595908172190369819865656343550
+lcm:948084924179221265735435784532032916982,31095014697784883179376411641933005719333,0:29480714652101151829666949589520351343767111464822561182540749953951625181413006
+lcm:2750322192684776089555518232723747026,16282797711115835147148988819960931175880625768,0:22391469951939378515729446954104603778487035357551482666768260498213644003304482984
+lcm:-916832268194684002726682872945582785046,80175456371164380904577325966825746198033406059,0:-73507445518318567912336331397416597212835389484585058461161628079009895397414630993714
+lcm:282231592138255672195189656428026230056,96673996679717919403145753072968455552546,0:13642228000642615449413724806392411795013641635130782296987254387670532396261288
+lcm:550580097204590201609373226827993784219420731,60517713169991893657707958780297059239491,0:33319848399733645437661395589377990023027893949147177182635468091834964459423419287921
+lcm:31526794192792048622410273704705620482050682,70537996848502378104686898733501905256490,0:1111918454707274300580233711800474352600757530537587705043968883837787075495194713090
+lcm:-923613180033278870451470473112995033306843225,62635452857298067541908563173475507759656054707,0:-57850929796353591491544159777994055136678493390586182701070726329142717640752659048072310075
+lcm:469196843768624413897755875308788890398465291232,-15296277161521766221056511754171865009042943213,0:-7176964965596105854796051880140430745806790021143791822882675477990460153884190250962482808416
+lcm:2628065716223500508449356215564412668664236,713708318009199991674271791693482010536664884,0:468918090485879510666557537656446407094985302907396727300429235150492228937795661972156
+lcm:604553604369312265623368647573085123221252020,990982890678004704551740474471789043760433700479,0:599102278427707884215998875763263404402845043498163599628915781601939770631217226224053717580
+lcm:97586462652371414650265963064033775148721243,969409880443270812997088798402379069080662,0:94601281092717085428971288705993159426354381047162321909314102361504796669908919902866
+lcm:-765406874969209688613302257358735487317,687488505077706911028822098735771705823765697808,0:-526208428248781293790355829561494931467780389995278558390525263117575307179181438701136
+lcm:85075624707999635862443444914978287825359,778046486301986342411165862027907781749497,0:66192790874005569505967522431892177262190586520494284537342391004284567008622094423
+lcm:8227248806783006644129224253415431417213104067,-96883503079217553138854609209329008354340832050,0:-797084685105450364093424636607878440722968607757607323583949926033112024630877523264018947350
+lcm:5027554007771258456873599804445876368468,9124875242153734630106913217321584664013715,0:45875803094102741048036279096734905134493820588179489085096405521013297169145538620
+lcm:39245745484403729199058188063461104557810253,220067769421357576954105356315871937975114,0:8636723668031045203182769468262937482316831571209371261835666035163932603354648043842
+lcm:12265626358518464602956912462337886264411404165,-62808539324142868756473505816723401975937,0:-770386075474250281180131471535743658895165686987724121596740049447065305055237711577605
+lcm:-12272356051659726939876917766506363796290,17656166644036956054896242696928896080969790493,0:-216682763563059549497954402078347159387989008283715984882662478463368364976841430670970
+lcm:637223594292638303876168193085997138882431056,94504571343119776477559774058446419793557358444,0:15055135657086962151475550300387890956134219709831955986646383218960383823718063770077359216
+lcm:5571012420064356266635359647247635200655740,-21295217227115690481188602248443089551209070396,0:-29658979915057488281375910245844852139690143598685009046127888233506587535909343755368260
+lcm:5263843748978600609740419748581371970418448276216,5384845751134428162699702180820131424931650492254,0:14172493323161468463600107052030558175510328324645921496255479072988481662969199337241737080215432
+lcm:886573921242233631853410597832339291851986573,91564665302299543163193474542608720062467,0:81178844364292397724319168352869382688643286956887488649289119221530204376834605255591
+lcm:26539751625701457124278640373644598585396,2325338527842485879693477585982320189921160388553,0:61713906974613847646349243530903967347131153357438117664659209426320342893497093511371988
+lcm:353508003643539157483752498296868928280378,10742495675871104458509832622060247315860,0:1898779100263273019527576105561544611151524288153407344701797320631121810003097540
+lcm:-4734613561112436559828705330418786656799216681,5767402184612349878575526105980302509419976764,0:-27306420595655124123966761566392172844463942752586247604702902500841784311547866248421200284
+lcm:82083010698635736174070971617820650592649198695,632174562080517027772509374721051956918078145045,0:3459386089510696037697607329475150733631394015157940860209532577771197095497123578020748981085
+lcm:6173991144338684494350090118957116722781373,-738485502817232028305101940854863776286515,0:-4559402954616091182455382994371638790076884277447195239272169152306248043072153085095
+lcm:-493513047233893983448577482415236886372545860,510358065314512191744416886029069217313650,0:-2798537377708440066088399588452377494483186344049452196318380194547765420639340322100
+lcm:326654054139623246358073868314669601484091,-749350879522921841553744544029160051092161118734,0:-244778502769254807928944561265310682694306143662100245399456722534220714864996773263060794
+lcm:1402621524995633967650615579165227953957890517212,-4307813373241246419295301377872133252586,0:-3021115881486111596495041468952452755324614644604079117686302481886685354889693688255116
+lcm:429404746005804957738561594094664667352987,378882853314853204091011966904771925997210303,0:162694095393619197081345508962117529189396776805991399292350948184192266104441374225061
+lcm:332341701384724523211310134953299492552149033413,851224516641538736779656410258860743437969813415,0:282897404121038737349436193561640178534459124296792792204901752510516940857699900180164210635395
+lcm:8093542646198882950722808884458624246299608906958,-36537804019444103265563497755234936603188804846,0:-147860137514913904634692391142170680202258776956700982397999849944457772330156859656606216759234
+lcm:22659814113479956892126670971189905912120035824,-7769923990496178313173088170032841760727,0:-176065033300511807783943084226119789640585676482818345603663798333554090985834476284048
+lcm:-66431972193306385702365512934093484764859082,36581996652652744665199423002405565247156,0:-173586727457475315287286644140245293266784314041722406717122380794776682723917233628
+lcm:-888473800362239868616054745127669042022317,142999759078860850560633007783677610020527766,0:-42350513133226737836563925020363583106497633262140965689620958730476127814149430051274
+lcm:5971942663513046812876552589351160577576206860,5155119487765712370432570496238254289228130147,0:30786078004495581876769132581215368897074670048309664867385023649025961965929287514674208420
+lcm:36328343589972083920724771391132711614346,626466814451530915421088090957480792070888316,0:1034477349232295636348590401427803652375984824843092173570332762552453722767574062788
+lcm:5293116409600323220539205506696278195160522774280,-89478075685508708042860880549625934136374,0:-236808935355212916308616284114978382722590502180363697942174473357408509364368655169830360
+lcm:79576614103508536656978289576589750212587261,852468870734033057111244131505440601392558836846,0:67836586361655850604287977041894979998590061103440929502231721634765812139562797406437018806
+lcm:8225066772418695359596812838151452668642167,32895491347247919323385073727832554930053,0:270567612842635564451661105276011053846580530826552326236219991362408128533171344851
+lcm:6163942593967174125699747500635651388266851958125,35785148285967657728202559017385960485415693874,0:220577599751307459197829958073417379960145796516327396960366172323789774042408250526882467026250
+lcm:2768453763718344802615194690925869147682838954,295289393573622382700104229276698254424111309,0:817495033025002504068133964169976601685138884223266625508984010676066936521469461617130786
+lcm:543530772918490900335995207569824317804903920459,3816523263571207729432080444412751436592123632,0:2074397839310259902661375133149465196577634869313509399704184579022798133468044005917222187088
+lcm:1092477340633785505464776554395206472561372312061,-80145274095041381989361699268630409045305877,0:-87556895907716629238600642139851536991533588781637223712321645442750907264691471870441282497
+lcm:5221300639042222043517187865188827094681806,28716457589092549537459686031371792838180039728,0:24989543060159632642010593077696572867622550344397734652621919451008087743078495099798128
+lcm:-468871256127286679587501070578429844680401783,7709908112767006788780052051800778651016113933,0:-3614954301459024712014678778499413536274302047069226791616378154943247688691115133744342539
+lcm:60187668034435065431875732180204005950423,6575730301760601160210842777500398231559661,0:395777872486342581314679269175741080629857948827943943881264571589081297075932686603
+lcm:85750547893356514086330287277441673045104762,79743140579005364490235586620393656130064,0:3419008997693330405464249977225918848757344180361491250868746891061450981564188882384
+lcm:4548581293372942515724176487253593549214930,4238661184062900689214356649238748109095650,0:1927989497077451677556406438992119682437686855444693788604757451990503919504977805450
+lcm:870890539340345883811990618518239041519315472381,-326492148393756245001717974027772662339968,0:-284338923205026619246910784734503794029639825911870769385331694156076881647046490736423808
+lcm:66987553698256227716875714961629477167428173612,90975165679807773385648454136069587671757554212,0:1523550949045970063245867032701707546441284497509992114155614817828087572926246444944809463436
+lcm:55214217278725852504312036656428464058159216571,-38639629611220548541845337991516346077285504,0:-2133456904923420705886788529419803172916228952081562524788395230166386012381289930934886784
+lcm:891217139364757949280558543150622433360536923866,30525879876993440244467275213072433106397646327,0:27205187340566323080358381531226152260280933712987740283334272666071747659070919682319193540182
+lcm:-27569366446500582408824975793718887457276922405388,634666021153562229559368735956062829411322343,0:-2499620015475006770093631859600965442502552615908591007003664916282081612538456035180769712012
+lcm:502864235446447920785714797929749621810588808385,-661761137717295415776353819805381820532626437501375,0:-66555201713275857902811739936791100923712566713387105483008138592982591252568436643492447609805875
+lcm:846540274257645306570757431119674434472851673,8616613565185012233547219046445322085886975,0:7294310410643867160484254450457795378883045914986526511813394090546583372432655817659175
+lcm:-3309007371119113533010968742743901666008447,-54456422219293958622124113256532150483182055,0:180196702528418384342054817105817441009885252753576126005393548812004572770935068818585
+lcm:3808438337556464123872249539607274641406985997532,8958313515020597801994910602927304472155060964765,0:34117184630454650095284221741033298990688190756311433174116017572873358206925691228892157828959980
+lcm:3966980856734279836284487724100931405197679196,7991199588345191911654938564028578389298180118364,0:7925233947327058439656989443340159765395723535993677440234885472317622785961246017870345088836
+lcm:65639444382189527381103754239686068124303248439,57344187472963481946737524023690750337279473205806,0:3764040604273435895633212274119116479837782295002539485107922790189834206416168312084346995236834
+lcm:415167227201847402226579925485934896345892,586575228633844519664975226407615633553394085108,0:60881702804300728422164607733352957690389009263077497409872743056634977203755428913544084
+lcm:61619333876398280418219395631027787927517659829394,919912829682211281138193507951318719985265,0:56684415789370483176959265833922690931907142380410669255035534110985337015940545738093879410
+lcm:-868753784405826481862596863379498777711457154096,545880080147628730834302628389405153791727839,0:-474235385460008330984602458660116725933386690418517481411723635621365531412330794841516078544
+lcm:9429941770445780812848883836626433106364646270218,13789105660912116612159357433833332620650429,0:130030463448925543470092963482754387029792169816829218586198208779745648441067644420051623522
+lcm:43608475425036256086742701999180132009804867174088,26543470249142438881834938827109299420258184885237,0:1157520270054909035662868646857940204973664076401942399990577391349752558661122837219065938780138856
+lcm:57684506610503798187871631196324475714333617510881,471695506003883133237678946411955700467360,0:27209522534225930626068350341042360052253774045631066166444663548471852016504199451585344160
+lcm:45545031179301366913301053296868047362176530184,-91968879037454375774626628433933013352182139387,0:-4188725463286255430640627639956152535588659815635253627540812068959602079281136816961500757208
+lcm:-390021533721654785753654976920878586915091,77031076759836910371783959035306703983828680,0:-10014592900700703269560078738266286134110215752142363776248874904012749586637416869960
+lcm:423541795082126371645621560317104281087986536944,8300998559716429411460238557591751288655280830676799,0:1171939943652147365555234596255224305456012312168414340835337509553512002426738855055186061245720752
+lcm:-22004254439719621882091733525180851819037175217519,99335356922776842325949741933027888097618837,0:-2185800468589145609464205476226975010639204222945574205629223171319215468510436674371426805403
+lcm:-568617824838411255064542027229734991599889058339286,663945656360600870466864889023341282183894393751666,0:-20973963051704229852295393571808922528386258405366303052934095222591753315525189202845488663836430582
+lcm:79416546968775553905606945911160893343240489,57823044209535496953371020115352329847370545,0:510234056260462346114599875341456302082293607904671871750490172957566065355271803332945
+lcm:944931014689390846530685010237152128723129879051,9132010491010578008428313272813386452749469110941235,0:8629119939424787805155145456276331139041940822281098763310858175298740567987777487797475766318567985
+lcm:10724730362623743957337791385603755532922863,72480373654893123070601266938859686093303005387292,0:777332464030946381953104911976964384403745616151494866542937429270491850221347238960076456996
+lcm:7713352208339235603081099644445084271357860,603624463205826416829628929324533190899935786563381,0:1551989362092082286509226742932313310071126914988546921498365356500657461247063016086607508220
+lcm:-374652992235609318781751374140306949494493761487551,-8211631925711097443824357620157273567158306960781,0:3076512472105121389035620380499987642797429799314779956051883946663228512561940943539675904376737331
+lcm:148033237001979427358794216800322662159772216729882,-2761071692676096788505988250569937615812882,0:-204365190130688570487960579178439169815175152384146484286930819001830464147276002695624969962
+lcm:8799836897423935827052239970797993642793054321869,7294647877437509677171255169879966954414823484,0:64191711545589794049942507329622817162690486075145161653225201426081306037945865801824955971596
+lcm:638050122120135743843926357476168630346968836720976,-521011870575614667006902791543319211035082259559038,0:-166215843823405648565930328412825365823057474431930443033112986539191112250557243418309377653802490544
+lcm:-17589569754541719055752617853886490778777621596833622,-757763302557856615098419826290170728613135917189,0:13328730467773320372749612468589169429951770262414798041479922130537436948993914504659373603202928558
+lcm:-9391500830250456597029446286855934735787373415653,28432489383197015180933073382445953529667174,0:-267023747648382060661246943486871855039477521250741910116209365765385119618211444260651874622
+lcm:597671128380217947385553643776956963479914986403,71727950226724858021016384499343090206442916,0:42869724948406755644439192851387407923848606069058040508413206852418378147081162495135671148
+lcm:220524861586728547654066186650842017022514113,99830670175055229565653522851124444573641171168883370,0:22015144722464404290431089740908195479979690191563438782672166808199720494718314317705872276000810
+lcm:-19711747183549435340491469077888147043386014913558,-1141914280129478236596364286858351511269528735,0:22509125595197123566803201916751380078133670163026469768611121772532745591006866402480422089130
+lcm:-8382072953685010521572064715326232892979307367,8986558828596332338706049003428573784660004270,0:-75325991703876567601582024901200837475422482663143278160590315962341962045355062611862457090
+lcm:8502152308582607794375019565844324676023491104593,10470050208175536662422671560468368371690332,0:89017961548415452362336397742460566038542969501801207576446421265423116103719862689218894876
+lcm:594601725521916181847167140525593251441576703983,963458725567603941710493681498226412426881800,0:572874220691643607273440473752072791294210386705034629979437739545297813514469057230330209400
+lcm:7141961266638507042734562322157608790427840009,-4549724799885066646710284284349071123364728193387,0:-32493958294643778569864068941415075147150500523994618476463881411873140452414616492271247820483
+lcm:-556279059738139499395948604306347001411150129841210,96265906951839620646630096006130967227739083772932,0:-26775354102004285429276113769844676372118786237607285907901215316500732869575305395080596584428063860
+lcm:9097507009232650355633416767082868346314279788737,-12952310876092402836370081770801404571317963729609,0:-117833738981010925067125768441840140051091195908538031159411055746004033932320364747308545111613833
+lcm:4268792759888467657870170840963084681877952381149,45230992824683770972952637110379461673717665076497477,0:193081734692577312252243894972856695658000409843190512520961090560296517492619302198905276169040861073
+lcm:-14981624589272129153412283534256311120144659052,-3422881033749335138988900898217088225431538419464,0:12820079665343060974655754692608143432268798103331572831567462724320648718570784069585310147032
+lcm:1220927142068793741881867214403185329458765760024,30622524744504892825380221509502752145574896,0:4673483952404909633169042534451903822067192939697796248187569718957914620535643481481844688
+lcm:37912807996403481194979034824173466165481184382714959,-90878397829297201187948170371749592240094934625,0:-3445455247922915696812807051659782073986976942393793434021443082292576682286942256582247061114555375
+lcm:11421510093950565340830017403217629128966938056,2237414009357389011349863244579333296452235392013656,0:3194330836527727905955302104398524198341681114056770994737458183451820031389704288272506307261592
+lcm:192657988036570687555057992620686662908295387946910176,931495134488306662235768448970442482109561110,0:89729989238185994297883659301090589093198151954531577310187242340555592504853957169920465976427680
+lcm:3406199971289940059753501832956133340637816361746774,21717729758322757474808809344766892648120530501033,0:73974930479281653383172304844520436444384314366038505444774962096871058594711397484185935845291417542
+lcm:6909979467876024377878180024452018966109074368033,842722308262405734840545048662350517397572773044955,0:5823193847214313361590850639006414894786757219881236880655209757454129105445924052644535803723923515
+lcm:373077837411940479742523640303846004174658252010,174968689985940718533112057941120724001834591,0:65276940474755009773288570940982140032743912931132908824689438802225554298870445697213277910
+lcm:69447921082122879577796325457481062492384026062297,4859735149388070292660864796695584862286590039960,0:337498503134721348480339150893268639814027256856202938192556796481021571996594857372873378679388120
+lcm:97668956744134573191931364533568770116368809990432277,32650097939706033583832290610502297382443475332059,0:47595537363655312568235002972649323651425354794543144885024534520500637904064737938316663353067559229
+lcm:-1130623853521736649164698623052358825973875071086,97117938880122601762963490311393663414262844,0:-18300643050455451520453923979067578852655453746004433917321519890785213164382247444464754764
+lcm:5196766948376722446473792182397797566282488000645,612809465745222737408369151997835003504928829,0:3184627977237170791819733844305891092484494030274488141848280463948439552688134126307231094705
+lcm:-260800009832764286426719551521843883719112476,-4764630548313512861236355180550436291099515479440,0:310653923462413311921327308749420033511079033275390302805253842034181828205601401085106373360
+lcm:446884272848375074930942162217302913946161786743256,21042882325490620038960351129083746002919260315816,0:1175466645832599956073813923052542976086932578597582904412735700346940000639354255670643544083517112
+lcm:951599922613172445123982155673072679115439437787116,170174123089259663169419228763721448308107859122519941,0:161937682362503977661236466402707947708915167258582987092600978773889146161299886218655580651394622880156
+lcm:21383950451514823653827321489681070470148156716394,474049024111864801681311013604155672359293053819708610,0:5068520421598536425525321235142815292646675811310319106405942660104400045766803347060423723469744976170
+lcm:-470414357544256461922663993336752968654129573423633,9062081906619161788388889503790336651084511675587,0:-4262933438115683672713863671510520101815219800470041585560023172590216986734948687990123769014947571
+lcm:780091812513073375693179028189802313142318232500,3497278556984926411479728842600230671778387696053,0:2728198368381477015989505443597065418103138169441425077910216137727395317905388139191010186322500
+lcm:-1625948018138433921639232759767284243608022009577,842118879046315463699452834842435152085239651627,0:-1369241522422316177317692449844295269090380811960323302423745772493265931792379448342891937631779
+lcm:25026283351500865895404594716390919370787136725638,193605742569640932386538365909397399503766353419,0:4845232172025567337840956469216133356563858466840983726314706900481952782728859639508827146256322
+lcm:4935030558829975380051283297334807636335988292915939464,826975811338155401386754284486847375740824437795565,0:4081150900367009340504991854566589470179310873827349635534175745385923686159595506846989467997551147677160
+lcm:692976306506130156561485116659173381923120836885557,770158528298664593632506223863839610768381103479684,0:76243087480657930190487337287128939416904506467283930926671128904847462858452992556512523992854646284
+lcm:79877139216893064041018839082816187503862428735,7269106113282857654532427145534479409503583394410641,0:580635400993063264937521052415287406491591842310757481379039941960972027583729569639227998188169135
+lcm:2539745404867281753796678186777103230989134057269,1232562503892732555700624680547460824244298064,0:3130394955473278587381949607908298163614591827039064669019870794477245183817740184883281827216
+lcm:-12342369542383197426854745694214905543911988477283,900468407001638487525579769577535461149066925224901,0:-11113913840455339589057682433788692760910363591045622111658103604207392316252364497138359285304423983
+lcm:25508383419230789798346692675791795579961116333703,-3196912743165527117167038251788165837584914845275,0:-81548076010491152335265692912387445585857263580983374333387917442921969005827781555255165512803325
+lcm:-1299528036083269250543034346520127753461072609198859,600594652353551219594047525595273354045086799190,0:-260163196351708086868697255894653649721720334580389492055788614848359699200918752705348100836708070
+lcm:2299157394917175882710807816574923359426328448491205413,-72838172890838078649390158065336999589794176457016,0:-167466423834226138899695762647031472841630725693307898812516233189758231307075087592787449022731421027608
+lcm:-7349901043851956691882158234459042155688766310737050452,38963935506607940884321914070762438994955796523516,0:-71595267563149505923669861270167245818680944504703982056789830331584906867289180261861884773409374107308
+lcm:958387014018743982544025716556283287504010616036,1443504353635051762579994152447131178181054158,0:691717913601677162440619033523279055938959283051812778789604206481811449086596467058729638844
+lcm:246125390054194220242986809766512103907648232140291,244701030143825150512131468437935457382757506654,0:60227136490812102782907271910174306533407908424359655603867506529129414912591634812915769093996314
+lcm:-704660850546084071765145007935951186831012905395382833,5588984198927622386999113229239134076765551765835797488,0:-3938338359304962728083277304047487715370320826599483665593576088149516002866532798742909925478892863619723504
+lcm:50682657377075501007405908966255159073041913889268,-221227972486061875975200412557047324616212536548,0:-2803105382934039975715503660314214227088117486692399200394931533988665689815391470714606568741716
+lcm:-65153936048938235385603864221810574284616709045012408,2620409042204728497893539911547700871421142555353,0:-170729963157866373963111608067452447067616052160696883002411341925443387533862472832785201804711820024
+lcm:2124140486540339235997181873057458560557130144031198,6337118390151757487365380009696068490770095523526655,0:13460929740520685472324728914077419222468164771987370279610883339996690538208206652608006128131304582690
+lcm:70505951289040282645383932312380844925860919298,7547000534925894125969206219651626162975048702546706065,0:532108452093846047616616850898050963751081524640768880912328456268423081073299532380834291122692142370
+lcm:-41539404414450841529694974131865311088044938789,-87120273993379326877611820290578462959192080166852098,0:1206308098036249351756945897983313304106264694400442480326890301234582878846035432318850625075409774
+lcm:8365100924146743906263010309561180555381451232169,64464903694507870558459227754837948332608708108908133757,0:179751808489986211172946844019445427528755317573706157771373596620024395670275172869683254867277971076311
+lcm:-607028381550248615720149092346152462853976790359415563,-638047705393414341349283089715056902457142563666819,0:387313065956814142347580416821601619522788233833564805598190281345003710840619549824608697022583095304097
+lcm:9617834842433276206013447576300042077483363020815285,528061422615472570377974310003284316297281680382590494,0:461709777215997755037224920599333096287843157872778309854711289206537291450554735917549911763077470081890
+lcm:86576571095874523146332767288469633576872568596,28806568894922815646464384363885717260300665904363145435,0:2493973959959492744618741686252959362351894366493500719340778231935540767761675386859282345646361759260
+lcm:307009198563449723583109556832166934014223122475324,138726608616028283757694379054230076836833023549,0:42590344930632202620089538756907194977499968842538325319841912047531571749213635995957120063404876
+lcm:950446831200123302940271854492691726825599408858,-72101792770002156123347099210449392040964040896942,0:-34264460231048255033825169994117823623249265283681750151900757832396404944731172193421125649956118
+lcm:981208671446974342191660850214776536471793694644642,42331603864003005956059961823201488180622810810249336717,0:41536136787617995005181391797616187316701801094427498210675495592371812354190764162938589949104015517920314
+lcm:436034751789860072246023599184144455891992330310990,72833959249163120346712529298424162613591559886645,0:6351627468616324890653950471065605238944270582911744198034275769361278389558892161259769728399545710
+lcm:90712859511805773491925085535825623597765615019643547,-747515802065477997196092836504038150570958532540685162,0:-67809295935620517600810302668580552577312402195771262364310764109361834590609187219719805153318608391949614
+lcm:397399782669545823592934194763075791833495372998,-59196779886291303828419299835113054892183602687860135035,0:-23524787461549105672926147613053790427130112546635830152219683595731769479837306026216856302451972784930
+lcm:32400956990211215478801690694170683149459902468,-4583955972534683626923454093368608704790928252299,0:-148524560311118107934748825020984325384128831537817042673475700215519245003301091136794236773932
+lcm:987205647053507741802554416690401353287928887038,99876648283232575129630115679242229378848334523759990898,0:7042770799570301963626168264039468160084000109548666284236360269531859091326565782062357924306725012866
+lcm:613843278686603793281546390730144010908586402122774247,-5096436233192165525303465082471737429087562092805456864,0:-3128413126999883739898127525581773020068974144641842702264583891275711281299548031054626111037897411968581408
+lcm:-976952961430926103170472845979881570029763109667,935178486322270132160329332160301439376977149568344208099,0:-913625391679032626735612276016819847879751832378461622543415386714525380228017439645010525807254806593033
+lcm:-14766907052440196735362466027665124699631240785562617,56185497908476101017098165076418921931361374576783903,0:-829686025309539659436877109175759992995713482163632861241130851163598589293178881677705053185350284154151
+lcm:8086945629611784458016532027184114429962417844094,915144274243273504802165174453120299631299876477769004475,0:7400721989055888996136233798580013159529233408791044035035967083245349723159601722480356017380766138320650
+lcm:78088762763327100616786616097147636046671948600444,567540241084477255158834032762283528860020033647985833,0:14772838414895737660959188658560357264170049117788265097974792165237624507227111109881234062081296503284
+lcm:719986964333569855824423695658491299542433105292,-615276910378191482694097418592439439457014608822814,0:-221495677463866003861265966742219836258928444486382973104855851549896711750780958155476829316865844
+lcm:45518095176552517046254533808850801860612235127698055,35562211507032265793347677842985571735031362689772443740,0:323744825613157159148934641716894736150323375120651628592606014999068335232090157998718113595333671638985140
+lcm:9347651927739244225461883666785850681796998039204,-49878021756813856103391637115956958358002286487531,0:-35864798940530846688181260694471898202801103161830397888280327472734771199678233550132451645781948
+lcm:-918018144578664428004161449615771398954961013294489,-670699097650597095681408528960639081653596263477957,0:615713941195785615974127065795375976710193022314921690147944271007135254397488569454896629925801078973
+lcm:27390700201762535100035783959539579449610388231,-1589447744597072139866306928627083981945967837919031841,0:-43536086658626030220375532900736667658969827278059194645833847995230392704902546272550528175660663271
+lcm:2277199840598187516900058221233481999025368188568,9608219845154413235861538421470991851896216584568613,0:7293278899939323922333519302858351340649305819231682068123769660826907879720133355526830831172738728
+lcm:-384224188940171310851587214747099156035618205974037811,-365155157346205326208918238248019306559191342503,0:140301444168666379290296176915045491501178018946537404762619540722359114634558549786149744296773380933
+lcm:286446854858822908871115682474835177238732522628,-57158496101544373650727927690968913495792599007869,0:-16372871436747676262278174307506297592132492975051635951931260785772478739228382233254016392559732
+lcm:-381089856197823678538852020226946248080829424869589,-3010621081997078653311455126099557341287585438919,0:1147317155204403033538417293781061706820038418656862236980125391331092308923135144143540086900134291
+lcm:116824003493453841699155925492342665434851317689062,-23510392931055495213857939210838689217666922526899551035,0:-2746578225910099677716238357776888697288117665636655886289546239917490129557481316738650939508921530279170
+lcm:580076669302513896163920831671903321718154827187111,57642903862300589084685292813271561699366462736142,0:33437303681368339826568875036607309078951222489453540109258834689115591802250959764588162866456265762
+lcm:5760449410973032312996903274730533429280588604119,54924391723347076414566698417788233810196808558058264,0:35154353327867417497336892157787775216597147261438145141426040243888036287697412053742388607203598824
+lcm:5657781195595763129830083459999757852112323789572340704,692061618840647789470644193517118113508111433346167161307,0:3915533213270179560961108305159334536041508008965034741386030883311266330352593550098270684221170821027129940128
+lcm:-411686824144764716061907353842274549877341843077020461,64596348790121485579427789661619008385819947602752810318,0:-26593465684752629063594295950004957994828988051383949912582218957039523707407380651277297287183402393737916598
+lcm:632256394728894097701649213009572878755743290206395156077,831219707790000649838963373434914934485492976701321111,0:525543975674910659026260706288720204381515414601996591588570479429744161463440855422928774392151685316940041547
+lcm:1670481530219772906326138470230000469885289884882422,468290338328174403769157221534943442214405575737600,0:391135180478791974386986543598623230679031886475719459105679828323568651046861349186906657695962233600
+lcm:-5940255960924729598832299636442321100271324046668226,57672031765846684220194592702663453624777841860734299817,0:-342586630475711125183923927161946766514304847978409032225317328682383801381008087781458635612556537811514642
+lcm:1070320750308710183653165839089007570013512879851785,1457798154372592051774290334996812066679847800239,0:1560311614386725640264706359282306460222595994684719021358994107802507336028163090509939936607576615
+lcm:4878833860261622243309660185570248437064542060170266009303,2713399212910344466363698742990679778889654409261764714,0:13238223956354223315835115083131058404743853065832322244195207641759173433600815039556809272534689440156121134342
+lcm:-153727669883775746511963322850970227020812560900211022,967696702028565741720227898697068313091723784217356354,0:-10625839939790418437169093271198280114670637344943720676814969693439380312693668799845699120787148112323842
+lcm:-540592613733911579302709730020084890208422708295834255759,1487237786400760689794761062671094249214728767786149324317,0:-803989762194224119099880670025468825040986939150865705871247661626924722104597624198557832395582009863760415991603
+lcm:6147134348286513705872901614503400707429078163757093529,477008107151085089956583728568535862114663515203848020888,0:225556378452274534034927784413743699904109572650798922040352209009358253405098100518908280809464240096750894904
+lcm:7614680849639684551334463800131196276563566036683927,25187069984138015151555984154271413618496480687947851,0:191791499466750257309658251576197471575523021858632537910036998866329759048429339136517641910254745890877
+lcm:34751974072174908316243318351151710272413759348773,8306602488518142539700335965542308143538343391985,0:288670834308846061096235572592461254734354939539314534410107250770305649520412166539742961467784405

Added: polly/trunk/lib/External/isl/imath/tests/mod.t
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/imath/tests/mod.t?rev=228193&view=auto
==============================================================================
--- polly/trunk/lib/External/isl/imath/tests/mod.t (added)
+++ polly/trunk/lib/External/isl/imath/tests/mod.t Wed Feb  4 14:55:43 2015
@@ -0,0 +1,754 @@
+# Modulo (remainder) tests
+
+mod:-52,67,0:15
+mod:-54090198,1,=1:0
+mod:-76,427,0:351
+mod:-84,576007732,=2:576007648
+mod:0,9268611,=2:0
+mod:0,807,0:0
+mod:8268,487413,0:8268
+mod:1146574,836443419,=1:1146574
+mod:68387,38,0:25
+mod:822,3971,0:822
+mod:6236,52183125,0:6236
+mod:3339,8463,0:3339
+mod:-6911,492807317,0:492800406
+mod:38291,7924,0:6595
+mod:768,7974,0:768
+mod:-753573,5272420932,0:5271667359
+mod:422,509441099,0:422
+mod:930,3648323446,0:930
+mod:2427,67,0:15
+mod:88,9301062895,0:88
+mod:7238405237,35596,0:29829
+mod:791480,518904571,0:791480
+mod:451304532,47,0:4
+mod:92202398,405459259,0:92202398
+mod:349,6205,0:349
+mod:-4,9246262,0:9246258
+mod:-5200,499,0:289
+mod:605,411571,0:605
+mod:343980431,136,=2:119
+mod:-5765,7596,0:1831
+mod:43599271968,8373850989,0:1730017023
+mod:41585052,17623,0:12395
+mod:-2409446,38,0:20
+mod:181096791,3565,0:1921
+mod:424266851,9078599,0:6651297
+mod:8187966,773,0:350
+mod:2,628566175,0:2
+mod:5095350857,5051807279,0:43543578
+mod:-93,65,0:37
+mod:2833717,10804793,=1:2833717
+mod:3929,893,=1:357
+mod:-8433693,960816587,0:952382894
+mod:79150,8266,0:4756
+mod:8999807,39604219825,0:8999807
+mod:71019,11742958502,0:71019
+mod:62049796028,8668788,0:7280312
+mod:663,501536125446,0:663
+mod:9405339512,4946,0:1182
+mod:8398326144,695282,=1:14866
+mod:2040205440,4831,0:1675
+mod:80471943965,888059767,=1:546564935
+mod:69485028101,554070,0:217541
+mod:673,944658680,0:673
+mod:670561,90183207,0:670561
+mod:87072012,7500022,0:4571770
+mod:910888567055,779049027843,=2:131839539212
+mod:963684578354,34003127,0:1956047
+mod:909044,302,0:24
+mod:5117486344,275346901,0:161242126
+mod:946663509903,66919981611,0:9783767349
+mod:80280109,35551,0:5951
+mod:92755422,4885132452638,0:92755422
+mod:404434561,300368787584,0:404434561
+mod:7641992913,2639,=2:464
+mod:4268,10435873,0:4268
+mod:-16867245244,3938443,0:1106125
+mod:7471011989,656899,0:99662
+mod:10540460484,86682087637,=2:10540460484
+mod:284094,8671306,0:284094
+mod:9452633,5574,0:4703
+mod:87858,294942647,0:87858
+mod:-6925741,254505734568,0:254498808827
+mod:5567849,8785,0:6944
+mod:5715920872437,47382,0:30681
+mod:-7228582013,17846758280596,0:17839529698583
+mod:-4825967237258,629489737727,0:209950664558
+mod:-97364920350289,7307271,0:982130
+mod:-5267574,1302960,0:1247226
+mod:36680428,6651498734,0:36680428
+mod:80778366511135,18049323,0:11222506
+mod:5246691699374,70706752,0:38580718
+mod:-76528261247430,881359,0:586489
+mod:2510155,9882180356,0:2510155
+mod:205710633,89629157572,0:205710633
+mod:38304,635189,0:38304
+mod:61339988670,8789855847549,0:61339988670
+mod:-95895,39680647996348,0:39680647900453
+mod:3783159,35551417,0:3783159
+mod:434657,27849425,0:434657
+mod:-922645,2692809,0:1770164
+mod:9973857,61929174655,0:9973857
+mod:491931072,76925934085,0:491931072
+mod:36870777851,79112622642,0:36870777851
+mod:38419240,600490113,0:38419240
+mod:4286489,4746879,0:4286489
+mod:-5967532,617005,0:202518
+mod:-50370862538738,6877482182,0:6694444412
+mod:948978223,306059033,0:30801124
+mod:1939139989,7192751179579,0:1939139989
+mod:871928,56723606527336,0:871928
+mod:5777442393,771454160,0:377263273
+mod:-2052133016,7833337,0:201278
+mod:200227,787554274823,0:200227
+mod:3616468166,851332729232285,0:3616468166
+mod:-48554766181,2252075,0:2222894
+mod:2085689725679,557651117,0:74548099
+mod:2079714930,6441707850091,0:2079714930
+mod:-464256354428,40650020675934,0:40185764321506
+mod:-209095689322770,332963733020,0:5535013790
+mod:92840725060170,4953669615741,0:3674671976832
+mod:6233198674119,5752924138093,0:480274536026
+mod:-94439733,73783193078726,0:73783098638993
+mod:524856,25938632,0:524856
+mod:-3642534,51609507988,0:51605865454
+mod:556443616571,195489997,0:79085109
+mod:747271697917685,801669727071100,0:747271697917685
+mod:4017563378374,1995926813097,0:25709752180
+mod:-13638096565,3048867,0:2534393
+mod:304947884525,888510602,0:188748039
+mod:5378877455085643,43074731164862996,0:5378877455085643
+mod:89177886913,4817647675701342,0:89177886913
+mod:-865014493293680,219168754644,0:44581286188
+mod:6321573844,258781732494,0:6321573844
+mod:1400577334033142,14009914614715892,0:1400577334033142
+mod:-337804687,158388274759,0:158050470072
+mod:-3733377356597,469670806,0:35880297
+mod:51974564129148100,903237315049451,0:490037171329393
+mod:56996153270005410,2396515,0:7985
+mod:-67091637443329,19220071611,0:5632550672
+mod:9064750093935233,171857609,0:35046324
+mod:-71156951211655456,39266481994,0:466181614
+mod:4362072502442,7301990213272,0:4362072502442
+mod:-86003145010044,116261682333982,0:30258537323938
+mod:56216118551114756,455637223,0:305042665
+mod:262802582,8458718157713811,0:262802582
+mod:364016243349347,542092606375782,0:364016243349347
+mod:519321257779118,727275719430783,0:519321257779118
+mod:350650081861106,54037636428,0:53896716242
+mod:-342917424075566,19042847036414481,0:18699929612338915
+mod:3486471961809,6003086967,0:4681520949
+mod:693821889,68575560399616,0:693821889
+mod:3401139672999,693846027567975612,0:3401139672999
+mod:676404815653530286,614916221034390945,0:61488594619139341
+mod:4874055499517062,6434678789,0:5095928388
+mod:-9967718379562,6518969637,0:6305165048
+mod:10248458540,38512788750888978,0:10248458540
+mod:934811913,2221199202368,0:934811913
+mod:-6684245035389913,2828258378747,0:1757771967995
+mod:970708744192,5063581816300,0:970708744192
+mod:8778023537730,865180741691,0:126216120820
+mod:651572737854772745,819932061443536802,0:651572737854772745
+mod:31675213895884,13227242908836,0:5220728078212
+mod:-977172760207173,171558790519620575,0:170581617759413402
+mod:-45853408229656454,238503345091356,0:177737372975254
+mod:24097409593,335638746639,0:24097409593
+mod:13695822253044092,1732994051411821,0:1564863893161345
+mod:33933477593,3772615655961401,0:33933477593
+mod:1359484164716016,16485762808614,0:7651614409668
+mod:6194976547,9790288403118,0:6194976547
+mod:35165676304962247,326491511837,0:255039534488
+mod:50698603380253,837874905080656658,0:50698603380253
+mod:-6677472401203205,206803331886510165,0:200125859485306960
+mod:-2753237124185,71096000432140,0:68342763307955
+mod:1652954342334,4660678399996257311,0:1652954342334
+mod:762003770264,58114453785466092291,0:762003770264
+mod:83319117929825,29022700876993701,0:83319117929825
+mod:-437222911638931,2017017077397633602,0:2016579854485994671
+mod:50533577363426220,29452376981671,0:22750839860455
+mod:9775773078526862,883620114446,0:283752410764
+mod:86103820030464773010,9526822249,0:7814958303
+mod:472571956027154222,812207565469535,0:679360489354387
+mod:383374451459403337,4477129646684214,0:2818431491245147
+mod:7081720213022716854,503311092329338,0:133143948931194
+mod:4630128377779,800171178832441,0:4630128377779
+mod:54693593051710401,980996545405933,0:738783054384086
+mod:150482763687955095,749819481017,0:742223172348
+mod:593450696047000,13586015736,0:13528698520
+mod:-730500097181725110,728537309580,0:620447592990
+mod:-767181280549335,8336534436990434,0:7569353156441099
+mod:42981969692069,6887667892543850584,0:42981969692069
+mod:-28591748475152,101365562837426064,0:101336971088950912
+mod:-7968036669154,98303283928623932,0:98295315891954778
+mod:494411386598,8574532520081676103,0:494411386598
+mod:68913463428,37113484763365761,0:68913463428
+mod:79048317647131571,4246788999212,0:2834004798615
+mod:-7998703715314196040,603932675107699279,0:456353736193593866
+mod:37189110674330836953,371484075669789573,0:40703107351879653
+mod:4919085789477,6627653096140609,0:4919085789477
+mod:1124829404566321352,1113121353192745,0:576837841648902
+mod:73970998780022288,690593097938779270,0:73970998780022288
+mod:406559451598,291528733390141,0:406559451598
+mod:8337041054557098684,144564322413327450,0:96874676997434034
+mod:33602045710930,3944255323850,0:2048003120130
+mod:36881013741727574167,2358692215512,0:2217232253623
+mod:6055783116809477,665900361366484113746,0:6055783116809477
+mod:6874334379769379421,7685349776541,0:4194447198069
+mod:4114973877055494,6202439146871230,0:4114973877055494
+mod:3926099959854080246,275452944727,0:275423967496
+mod:4029793101439201031,660396995221451032884,0:4029793101439201031
+mod:301872874428635697,54874102367289078,0:27502362592190307
+mod:5569303592565,237882890299906,0:5569303592565
+mod:-5030250164815763124,20652997723024,0:14613601685340
+mod:228359514067103,297994781044164,0:228359514067103
+mod:-424197230384775822561,35518873718705666052,0:2029254239692170063
+mod:264447937587468968,14314680638460766,0:6783686095175180
+mod:6394566749820905145,9683844165303,0:4880613879246
+mod:-8688948887808654898,734279103507671775,0:122400354283406402
+mod:-626916205862869883,94382847154774,0:69047786293799
+mod:1626914326860229332,7062310571812316625,0:1626914326860229332
+mod:54001071080896262095,42490007593568841,0:38761437063834025
+mod:24728563187886295882350,709499139923539295422,0:605592430485959838002
+mod:-1107994585324963758433,26155793492434894341,0:16704534849736698230
+mod:654008549965770,51389913007264,0:37329593878602
+mod:-519456375679038,4624572350871880932563,0:4624571831415505253525
+mod:-82236922719413533430,72103334739677626,0:32982218558637836
+mod:-323874523758275336,8012542519209926,0:4639719529331630
+mod:28055503703579420,59306141019480998333,0:28055503703579420
+mod:331202177649495634,20031374822914022410,0:331202177649495634
+mod:-130081790443955,81911619024148257,0:81781537233704302
+mod:12392000130570253028635,427646582276340386,0:85115948737663513
+mod:-3408044901060955810,3826012386295493550,0:417967485234537740
+mod:-2520566214354390679555,7522956445489849326,0:7147151330198693981
+mod:1980291342375366442,2779172585704919,0:1520461353464114
+mod:81051547602981,72198401841564,0:8853145761417
+mod:-92876397580264953214156,67027595927289169530,0:23850374957835754424
+mod:5011749939685736607,233831869913631792,0:101280671499468975
+mod:-809134913749137460747114,775995673975034727,0:431478675099304148
+mod:643341365602570,69924772710009984856,0:643341365602570
+mod:27791967964909927,59009798124981438889038,0:27791967964909927
+mod:-113914260724456,4611599197279102,0:4497684936554646
+mod:363308545066340586,9662463842692591834,0:363308545066340586
+mod:27756526116505105,3891223619279919535107,0:27756526116505105
+mod:704802873683670599667791,7264024574741209,0:546567259370500
+mod:787136088375328,120969078621542,0:61321616646076
+mod:7670850065383883511434,877940228500467933,0:286288975295180813
+mod:702943840459603392464,184873925058119829752751,0:702943840459603392464
+mod:346820606266075751,258033318226999763369665,0:346820606266075751
+mod:-19738877253014425,881986541366353479688437,0:881986521627476226674012
+mod:43236561155260520835698,38481338895759451581,0:22017575322656710235
+mod:482681206446127491983,75672199144043749590770,0:482681206446127491983
+mod:-9003595768210252773151956,24542596402501089193,0:2977625686803835252
+mod:500595090938893533,22068045096454773348,0:500595090938893533
+mod:2380288714663108486927735,564958976857884405,0:163611608764475305
+mod:-61794208268134898961577,163988560200473972889023,0:102194351932339073927446
+mod:-801112647021780575,5997315269791230838613,0:5996514157144209058038
+mod:3375858304586431,650460337591609485545992,0:3375858304586431
+mod:8320311342983951,42251663165732904527,0:8320311342983951
+mod:7459256407267723209637006,417970890631288166,0:349337361754478408
+mod:848180762170013347,7469835660313775,0:4089332554556772
+mod:8089787096351751904254417,50129556268942208341,0:29694338665148808860
+mod:-34903538093781704569582,183184852451752183835379,0:148281314357970479265797
+mod:48619014890072452,80354799021914778903,0:48619014890072452
+mod:-815988375058446388,8738660656145657284,0:7922672281087210896
+mod:31813448306518054090072,207434655868203321566266,0:31813448306518054090072
+mod:-8633600698002819419017,586048397265776638134,0:157125260983830152993
+mod:-857216833834708698,9172367193130972108680,0:9171509976297137399982
+mod:5504547056103565303478,13822143042666022,0:2988649206036176
+mod:9870113591998328200,40859674965133754765576,0:9870113591998328200
+mod:5384435851045720977148,202201600690593374,0:9426255910020902
+mod:-2551078867778519184089893,60228847348701786402454201,0:57677768480923267218364308
+mod:91679210346975867109461657,9997426629350491363488423,0:1702370682821444838065850
+mod:2292649799687862201,546378248247723870,0:107136806696966721
+mod:588814820029030818332181,8113490218013508525654874,0:588814820029030818332181
+mod:65454498830100158031,780288548110175467735,0:65454498830100158031
+mod:4709646238170145522365,55608341104804744,0:9004980917338773
+mod:-225535148248500667,8159132039306813709871312,0:8159131813771665461370645
+mod:76763315297183633054184,85934198951388076635,0:24075633594080619129
+mod:1133129576897649900,54644763452092731277,0:1133129576897649900
+mod:-67382808234452914542138,8955363760101370992534,0:4260101846358053398134
+mod:-90953375293336830190945,6853448055620747690936,0:4994897485353637482159
+mod:443616999780543985329,602650474818987637619854235,0:443616999780543985329
+mod:-32726760956482080293262442,7257539124551086281136,0:4740495243318834660918
+mod:8064248346280114405840575,2215292120106396321855736,0:1418371985960925440273367
+mod:-7028166529953061572415,793014187917784076,0:318217562258693173
+mod:-24801752752631583807972,746849063653448560403834425,0:746824261900695928820026453
+mod:866033908626319182842,6382377566902718089,0:4412937094452240827
+mod:-5696109440363786526866,467357847433239609373,0:379542576268328394983
+mod:-10407234425686004311,628564472015312749963777,0:628554064780887063959466
+mod:209459609329564838657,2486115412259790740945969,0:209459609329564838657
+mod:83211005582689134709,427365949717166750,0:302011337558785209
+mod:522043226813009221,84636707853907370269,0:522043226813009221
+mod:505480107359090528100756,628892849069663750,0:562098008522737006
+mod:-310708269201043467381433563,29010904881853615009335053,0:8411684499346297721252020
+mod:945016205353589874668951,176007434590298672,0:79677746280043975
+mod:3611093895058265247,4523612444279050027926505809,0:3611093895058265247
+mod:2248073915672967969228420426,417993946449832515848531,0:102471665768698995020708
+mod:75483556005338850007382,767992806236118220580991044,0:75483556005338850007382
+mod:349175730044864846750,194542620085155145157549,0:349175730044864846750
+mod:5214057366956683393,6766485378347583109969578772,0:5214057366956683393
+mod:42801122269815033051372,76491121430284940146293642,0:42801122269815033051372
+mod:1504356843590479398148441,98825538637920229212984,0:21973764021675959953681
+mod:1422956549105294508549700,73999528905391695937,0:19607783517587377127
+mod:199912292615681783148398065,5625251527460055267035,0:2103832806339068508235
+mod:8738762075990650132321428,8066858358673855106257,0:2354473546865052245097
+mod:8744971293400903575143822441,2181608008778482293077393,0:1086394216746544489631297
+mod:63912100585682096593583,11361184476808394745245,0:7106178201640122867358
+mod:64684262754316464701,22376578863907224393672,0:64684262754316464701
+mod:13792618112420611117,792966702790880958054,0:13792618112420611117
+mod:1114011944265093423883128,24116689971306070038294352,0:1114011944265093423883128
+mod:39678469855084024947237050,42142535719623301934525721,0:39678469855084024947237050
+mod:83034763665077760046967629,82778559778204667638,0:4244359548962628019
+mod:2396471122363838882513850900,59747356384740003525,0:57225475716145829475
+mod:864549729107840811638,74264623502102569648,0:47638870584712545510
+mod:293471055432367196531,95629011563915920942031898043,0:293471055432367196531
+mod:805770771235800281066969751,444417493982143896834,0:79401739074580625355
+mod:99254856446162105637797829350,101981775402621358245361,0:73717806842511917782490
+mod:22541739862903307325,418383569773975023302632076,0:22541739862903307325
+mod:13599043000903587396023017,686395340986063801303,0:178505287691364607981
+mod:-921575422288638694625782546,2041485695291750177603,0:216222744337548474126
+mod:-489269754337315502376167081,501875735917569336224,0:368721212244829894711
+mod:-80044798953445460081243,6139390882382293287544714,0:6059346083428847827463471
+mod:1697244421022884241204,9839911566031781174211,0:1697244421022884241204
+mod:940445668109981090346872,1166998590007295684475234,0:940445668109981090346872
+mod:399066130721328784362180646,2466979168009327704701836,0:1882484671827023905185050
+mod:-48110448286951664808938217,6924833390360325487794,0:3294109271876680254495
+mod:8202438083226798875527459,2712253233103808901251657,0:65678383915372171772488
+mod:5450714727456153005642027367,100450439174668838374882,0:72996960272497744180283
+mod:409375235483978782700540,154442023996251499419641,0:100491187491475783861258
+mod:75895449457418931569869638,96657756211092917375958176,0:75895449457418931569869638
+mod:-337896716384821901508,136332254359196503233175760151,0:136332254021299786848353858643
+mod:286597911534314020993735125,8939960441559894748118849,0:519177404397389053931957
+mod:-3629523279922780081559669,47176221977787068435634953,0:43546698697864288354075284
+mod:721006898368058427667864053628,560134433649198454347279482,0:113882261540016922915360294
+mod:5816434052384442045783498,8295493150888286278058,0:1293353611753364864840
+mod:609810757121108447302938155,91911350135942492551802190,0:58342656305453491992125015
+mod:-19105264771397651242810,62812840189408438467870,0:43707575418010787225060
+mod:-3384023484275449303514510512,36865912947085723132571998682,0:33481889462810273829057488170
+mod:794103148636604290205719396698,60830693353207800202838586376,0:3304135044902887568817773810
+mod:-872647162068256604091329081711,7171269767341809905452128,0:3142110266217873424018225
+mod:1741864928041849080630509776343,4019228270224295025021,0:3953212345502485484813
+mod:46472481719179435494357769,7926074597166240368807886225357,0:46472481719179435494357769
+mod:-8260893021299279875407235,8110427213374126288611,0:3632309128954812687374
+mod:-12778559515327410738082,60133073412668338924778,0:47354513897340928186696
+mod:-33979239742647553347892336,6474568036342863013409,0:5767880116134609491505
+mod:983404512267124852163233,80477942869108029021719,0:17669197837828503902605
+mod:3832523396251835150772,9395631266939763227204675100039,0:3832523396251835150772
+mod:88670226724007548654482766,32452353295811216769641,0:10397519851304439823554
+mod:96278532026543994019519712307,129820052877663606606885,0:86210882333451655589757
+mod:-5810653163494420168043,36986477497409060096423733207,0:36986471686755896602003565164
+mod:3126207974581460571577891,32180478067769596422373325424,0:3126207974581460571577891
+mod:51956357441149158122167659,1003490769172375032993217,0:778328213358031439513592
+mod:-561702379847624714751550,53922991187327968536105231702,0:53922429484948120911390480152
+mod:446077868534077880774451137,67277848506923282427435882416,0:446077868534077880774451137
+mod:1575047464232207678249043,70194506692490651832280909556,0:1575047464232207678249043
+mod:814270662793297992963934,403564259479336969832400620632,0:814270662793297992963934
+mod:790699201198504136904045859970,68724106656555736601709440224634,0:790699201198504136904045859970
+mod:8110552276797224689344660171,3909333328494414590072213560549,0:8110552276797224689344660171
+mod:-65870994230220283146814283,3379239242265180710762324,0:1713790615083331068432197
+mod:4019795295333902960419848174,50295832366163431551511941,0:46424538406991867850404835
+mod:11568598680110024328705699675,22452048595187151195492,0:1025051083178018882739
+mod:387522780739724474268318533074,9155092309434144095404353111490,0:387522780739724474268318533074
+mod:2391972635448121089016589,39976990962848470908868,0:33330168640061305393377
+mod:866848655025962221176014879,40996252765546194841051793,0:5927346949492129513927226
+mod:9039212181347754641685676061753,1413755859430626067769418378148,0:556677024763998235069165792865
+mod:62309693047935174482238300219097,1448468173515469111051509167,0:937627820239732135530382258
+mod:10235771277419233732197767436,47759815237747782490291,0:30955110842232226071189
+mod:4510445237186840834301611,9536931548375816882114508,0:4510445237186840834301611
+mod:32374689605351221312665153746,773865694054081649089543,0:18294598715523004122341
+mod:58121462593501432960291,544699189690679924713807,0:58121462593501432960291
+mod:487815493709763477417262324977,100467558757425018298664228901,0:85945258680063404222605409373
+mod:98070875983658870659113425694,60099405211091721761658040174,0:37971470772567148897455385520
+mod:918364128985502035087214237,2299858822935844817555228747,0:918364128985502035087214237
+mod:98947035094409552251212724,2825141475757917666304644602636,0:98947035094409552251212724
+mod:1526039375858118801195007,9842198071310595711976222424051,0:1526039375858118801195007
+mod:956310510459469197042596,12660491958158211655462388289,0:956310510459469197042596
+mod:712022876493637494246773,6907620845496782089063213,0:712022876493637494246773
+mod:-127487606866501768951687217731413,97214150491566835275008318146,0:57358578433918929123695676139
+mod:6751815551565439795678949,31071725936607844864896266530950,0:6751815551565439795678949
+mod:207247716655973517840426399106,8676153294057052584605417,0:442920832702751956803227
+mod:-966202956730918757628959,506872112425906694585759,0:47541268120894631542559
+mod:-68170698773654086579499859368,5144430238993385147152349982479,0:5076259540219731060572850123111
+mod:183149199419924949681672,26683244363440548441986070029128,0:183149199419924949681672
+mod:-9975221264569424411536101126696,74192946761934634594295284416,0:40826548291751258693762269464
+mod:225922343593361728051942267585750,5683400149678094053656150,0:3825868296308226483712150
+mod:1590802748651151308839006,37444237944901366482969738035104,0:1590802748651151308839006
+mod:9067619839451785696827107956190777,87355497973165371903530913,0:84293482668838694674156358
+mod:-86293581881377444715621610358507,7692884519189179893063221146996,0:6021032348892714001137043405445
+mod:797270639908743442539388404065,246054564304506055627938724988881,0:797270639908743442539388404065
+mod:205038144424990428525674376,85234961390603945529096075,0:34568221643782537467482226
+mod:35844939430843764162712556,653126866666115633914185924567756,0:35844939430843764162712556
+mod:4259287602245499035603599602,50729589724528668468977995092499,0:4259287602245499035603599602
+mod:2261834480876028227185763,424795020529636248111781917,0:2261834480876028227185763
+mod:39152906040428126999262088,4297272364540702463008576,0:477454759561804832184904
+mod:-5930922183829543621704345694286,197786250025515478569975835009,0:2665316935920735394929355984
+mod:13648638091639720241268467,60685727322075123781463007100346,0:13648638091639720241268467
+mod:-668319624482464990058154959802,710719216881033542598449292474287,0:710050897256551077608391137514485
+mod:642021199249584712913865808325586,543227057645582873078752689,0:152765287910622645761540601
+mod:-2656447484733675418860019290432,205011691602629984379183426293586,0:202355244117896308960323407003154
+mod:-76116380282907702927282762504,936328544643249459199496754,0:662560377838752727075971324
+mod:8093358695607350358964677676389573,829984096904096704239626252,0:340210087590552445135735881
+mod:-9278168173113556399784725246186,4280082896252256282175389133291,0:3562080515643212446741442153687
+mod:2802211761443428677828547316,747494545678197065832762122247199,0:2802211761443428677828547316
+mod:23492204756311184079845536545,337250910922702955980510700463272,0:23492204756311184079845536545
+mod:64710301838085669236316870323,868170439410850659865082898,0:465689321682720406300735871
+mod:2741127245480801383259770751238076,74176417788834011756636699109536,0:70776205082776960020849583294780
+mod:415065500982033616775933433,28746890219519286864975018117944504,0:415065500982033616775933433
+mod:-89217744891275021874139963535100059,3290121624016777142908239971,0:2829430817460639915155471175
+mod:-9317836992515247957659739610258,361276376419354526411745198556357,0:351958539426839278454085458946099
+mod:298421168958661320791582460540,9311321600116774390269301187799304,0:298421168958661320791582460540
+mod:5274155275590071857725575099101060,98122204238639783506999069,0:57734636536655754953174064
+mod:865783349805109330441131327,162630826994678660982290958,0:52629214831716025529676537
+mod:708516761779855069848378277411149,35904666994288818268923584882788350,0:708516761779855069848378277411149
+mod:6609496417442545300703371471487286,5902561608289411469926303,0:3737357682418540243913209
+mod:206488861625670348490519145948,55768433595490812270050489117,0:39183560839197911680367678597
+mod:235462255567476370046316727231771335,90122239517029363511961434219818206,0:55217776533417643022393858792134923
+mod:7378753800396502033389928296562,22504168678875184770299793837483,0:7378753800396502033389928296562
+mod:2757925654768646392546972258732,66265998215956320290751023811589600,0:2757925654768646392546972258732
+mod:-4495627928966379121510140686227227,4292233509252118764895120750881,0:2632788729841344099945860696061
+mod:60075078241755197289597987901298258,85793760621445664196834659007562403,0:60075078241755197289597987901298258
+mod:640202717640040770302982685361,1043941556622236018146973420441,0:640202717640040770302982685361
+mod:981675333306953772484178502284,14989243876208586685329510289358317,0:981675333306953772484178502284
+mod:87715989707184594635823373687043380,2924631585179762875239333452363500,0:2901673736971471253882703568501880
+mod:-323249437311463874466227132752562758,54630285509683054247993598313342182,0:4532275746634451021734457127490334
+mod:-14647356048136737851231147317,175677379713875589633642881,0:109543847828811677994854687
+mod:-6268327123157272100193046712,31032884392623150618360081127,0:24764557269465878518167034415
+mod:8830187989453831993186309990340663,959494270231543012302622845163608617,0:8830187989453831993186309990340663
+mod:2102106468815389931443009975417,244048361348982984508269787947,0:149719578023526055376851671841
+mod:767756521870180222085097228863,5629352943535035124861550483062,0:767756521870180222085097228863
+mod:852449392775158289272424932198,564809949353895492950864832457,0:287639443421262796321560099741
+mod:-94075133584459673485423491471,7078005136840583876255761330997303,0:7077911061706999416582275907505832
+mod:94026202014853579487205142874162,363228855132321701963096787271215,0:94026202014853579487205142874162
+mod:78501236594767796495670623879783,7018641410498793931533837751986,0:1296181079281063248798408607937
+mod:-83121914354650984352606847805013,52556446964608987755585827141661,0:21990979574566991158564806478309
+mod:554612894627846154817277112226378,90600992903463982226644139632,0:44217065743119607988333538906
+mod:525293194961196331029028416806301039,736093318498847487453110088942,0:72734093290490277635805244173
+mod:157610281371549009553406136918536,976813980235355373377808309891,0:343230553656794439578999026085
+mod:-266509790805154856208324746487,7013639425300014015101241233380,0:6747129634494859158892916486893
+mod:59653129021803829007632144466094,6178618914324116986866641510962341019,0:59653129021803829007632144466094
+mod:-1025495993097568795964701500702,857271481493597231020277064636,0:689046969889625666075852628570
+mod:481051936536536822112378933191985353,9466673918671293738127743696345889772,0:481051936536536822112378933191985353
+mod:848825342321881584621547504882,5509051479604448499464250938005578,0:848825342321881584621547504882
+mod:-26930177732304779325732093789608,5553144086178691095750038113040,0:835542698588676153018096775592
+mod:-930412667133937228253381813097,66449017645940693043271729675,0:66322597555173167395694132028
+mod:393034277242496542604957925805,4799386565947366109662393955284617,0:393034277242496542604957925805
+mod:86603638626688955985063356610183,1769014799372327392140745286156481,0:86603638626688955985063356610183
+mod:40877446922338785512028664714,3627227112486512731974346137499409882,0:40877446922338785512028664714
+mod:951744546236842962508833599628258421,802365455425080101863813995676143,0:139116102697961698350200756352823
+mod:30829284319654404192904595052,1296652777164452508914199335388219666,0:30829284319654404192904595052
+mod:73660971721825840324689412056336,5684533154366812172288342524757974326,0:73660971721825840324689412056336
+mod:8127358843185844147904557106702570660,3688282607387577967901654384422862,0:2072259111009884617212497819005674
+mod:36532892525294324678919117123848496713,92715061891153280227822277460692,0:5828075633057629393846902185185
+mod:-8597748351805543505111910190253821104,9557218184864474744270904051127420194,0:959469833058931239158993860873599090
+mod:774575051270128492444548860406,78181627397979349461399043516039569227,0:774575051270128492444548860406
+mod:71412172829277670593171097931971081,734737459512775442295997263661678,0:142639256538452690459363356788315
+mod:6184659289209085822436564762850,90249969123878877878427941364168671,0:6184659289209085822436564762850
+mod:188404876454609678788443725411,6011866633368206495263558549515721,0:188404876454609678788443725411
+mod:81043932065078534018074416730418,8372433471866735006229336375535354,0:81043932065078534018074416730418
+mod:6912342702093810814710065121185782090,79053815437751598622884440565862252,0:34660759009421734519118791955766166
+mod:-3169060990465931351414443670,3481005717923100913496633725151171,0:3481002548862110447565282310707501
+mod:-3677873239878011216446421508552,39945867794076672579972752013115,0:36267994554198661363526330504563
+mod:-88408316452809240011823526997216147179,430749395485673956071441817182,0:247080945638127516958667217647
+mod:-7006029462687996724256881439538686,5752004602477767685988190527369919519,0:5744998573015079689263933645930380833
+mod:172663755283332370937921725543,6631081406973798665639408060368,0:172663755283332370937921725543
+mod:877725872115390827864622867155990409562,3246622975450958412670313198657575,0:1350702224220999203693898915008312
+mod:1162325904966484479085618134964501604,9810351533284785336335637682672874,0:4704424038879809398012888409102472
+mod:-67246779579026319613494857580231,4479147727625713736723230094972,0:4419584062985100174076823939321
+mod:-83311824891620553984522523676903100800,570821292295355560082171193531,0:517563010884629547920243561062
+mod:25686998142667809989182628560877290,2025104174001151569408893055981534120,0:25686998142667809989182628560877290
+mod:-6182593212766128996183974088677690094,21672462542175162551645329360574,0:18538952890500736647244660057756
+mod:-294700116350712193407358863563690,47602175104818483716891162778987,0:38515109383017192610879275889219
+mod:99318338781646049264027201614,31132733056517268309209622249797280421,0:99318338781646049264027201614
+mod:-2566422039368713945896870934278082067,3422938407926845108634793366952796,0:781766576419885579224090936514933
+mod:1798229479312127271076623168674216,146420794203382070378885907918865097585,0:1798229479312127271076623168674216
+mod:-10575907960389417493180423047371,548554000428335526399148116041,0:395172048177293034802539273449
+mod:-41585237394069668771815671048852049750,6620785900949628605472441451228089,0:6539635695898127762206147762805348
+mod:1375415227799292140480888477226023092,123029527135707896415325486765764221416,0:1375415227799292140480888477226023092
+mod:-2079331025811185903148784604677,95045957198248711390742316452607286039,0:95045955118917685579556413303822681362
+mod:-212508186835656490444057415261195182,4829012565342247873891632422752490038715,0:4828800057155412217401188365337228843533
+mod:-560425113540022327972433105315966740,96209074671864129929198408439658600,0:16829334491162451602757345321984860
+mod:878336664644268081456398188824415429,932061958650634766658892044044056328852,0:878336664644268081456398188824415429
+mod:28882941735745195429234419733039022447,64140280097846201870647655651438569,0:19815691714404587442974689891666397
+mod:88232952784596907289907603989240788,93349243418019298106177761581992320992,0:88232952784596907289907603989240788
+mod:792301762499682540474009585487691810,421120400044388668787389960907,0:367290969121964719876967770219
+mod:76111941484805465095241888868932546,2831856059624821529741336978732478,0:2483683934560105321967127421888118
+mod:-5427708288474184011690247672955482270191,671682251167994228841481066017358827,0:155983214377351577760821530794410796
+mod:-8530853102666682143315062468746465,213498385560089813626810097876341271155,0:213489854706987146944666782813872524690
+mod:968866609367366454712369109246988,628634209852159542629660518990065356620,0:968866609367366454712369109246988
+mod:96097393485358514676281731274665078,3957833123075932141830397414925844074923,0:96097393485358514676281731274665078
+mod:-81978182783653208012914682683646556932,972774031969126613105009607688574,0:403212480999053283791985092639770
+mod:313104324214756365552882262334038,5945062360867852334605007338592823936,0:313104324214756365552882262334038
+mod:2735884017629695152167391129737071822780,3290205739029218948898407572995748,0:2270894901924122540569416928458576
+mod:-97466756197931651810599360815010262,3315237020945784440159312220994155,0:1990354430441881394180005814814388
+mod:4287211941100891093508540048565501812,594177978658290517920278334613052052,0:127966090492857468066591706274137448
+mod:5617959241381925678540184778777695094011,4078448937249847013764977403503471090,0:1935054788886340585810894153415403081
+mod:-3548112469563645005797230889810299281193,34963401912331074261420878238937,0:23794960044874975729481854354116
+mod:4922552264219521070158559671565380834,5646798983979557962421505933015709,0:4190349173326084889428003908698295
+mod:32565692680193961073474123363666015,878047053403499712307729237883224199,0:32565692680193961073474123363666015
+mod:768830069274599347793505224871406391916,49256101034975375638954310064864965,0:40844320703684820706353378994018196
+mod:642199331170025417801554157178084,71675957995271890601200242650759107386,0:642199331170025417801554157178084
+mod:42268335126087027949341092958250555849,386269043855800901191675132738936,0:72464078302734639658208027006177
+mod:61951474950542877141809186776499309394,1575592140257546405587708780583660678216,0:61951474950542877141809186776499309394
+mod:-50372525688338317312158892618403161,479484240404243987384900356318490043390,0:479433867878555649067588197425871640229
+mod:44683217172537023841274434066246364,58011321282881808274541027575827116208550,0:44683217172537023841274434066246364
+mod:114588115678254964728743791898564,4589417972133701399012552730584485633,0:114588115678254964728743791898564
+mod:787749081823153927726813864184041,31678364830089024747329753309219782268,0:787749081823153927726813864184041
+mod:-4210686607729439615194829247147791999288,202013476656713406344999304149677576978377,0:197802790048983966729804474902529784979089
+mod:-201317765219861856053478772267939948214725,28008182775029748896931627041800444,0:11094152473662864315215654119177355
+mod:-232349757997193586311539481768342879244,86500898319812757120814118782924774,0:78155788143292072088055401375988494
+mod:3459368213898794108935715830804259,645307545853931027509103766501511211,0:3459368213898794108935715830804259
+mod:-28214486245399572630623366879671715,4787018465719437691521185074756254,0:507624548917053518503743568865809
+mod:3106180109929449357402363559818380895066,469482281886594475593365429169214,0:356674718833276575481292181443332
+mod:770130766600035002140959295669804,926634653367571574740533619678875292928275,0:770130766600035002140959295669804
+mod:-6708203696875914373713983952300480,1838061152155611054471652207874138,0:644040911746529844172624879196072
+mod:-7022023536539325666545120950542389888,61599165978198027775591136704700507491129,0:61592143954661488449924591583749965101241
+mod:-3443533443745355681222242435436421990276,114311172439204299235358268154904366,0:90625985673833242925392730072035474
+mod:110440434921544638432764637319049273043,85855605443431360697149818939494456029,0:24584829478113277735614818379554817014
+mod:46258128333769427123848668553344812866281,2571328063101410768335059965106947440246,0:2545551261045444062152649146526706382099
+mod:363228842811153324360949224721752071886096,519776907108357809938962249484450996075,0:424561649519573023553574581605276625746
+mod:-7481133759236874924421451125199442,918037057467449661018383366170845,0:781199757970172024743999170338163
+mod:150233345756076313394229291485865,5605171356421762519368513553022673456091977,0:150233345756076313394229291485865
+mod:3185172342747413751304414848146001953,6651506504167945767766564692832116791091,0:3185172342747413751304414848146001953
+mod:605932275764163370707058593099297764806358,14520707105209378213724439334671383,0:12284018060727065660013089171020638
+mod:-47981623369556624178550389594061247212904,9181422689232628129475009481374015950,0:491604373090426086009955599360141796
+mod:874599738760971500384056236606682756504,44920344543206332304195675515171507,0:630504744210421366434326293515214
+mod:-5100339758640008895519382671699671,18538376885121966053582708191078256,0:13438037126481957158063325519378585
+mod:965966374431724388594710850103760963,51329769618720367882036219795372158,0:42030521294757766718058893787062119
+mod:55365396231165487163722749393764963,742461596124505780223115709313334341,0:55365396231165487163722749393764963
+mod:6538244814994833769942887762335568415335737,235589470700074178427678879883234150432018,0:177329106092830952395558005488246353671251
+mod:-19650261899708426741119367893002798,8812987996700889285483125610332533544693,0:8812968346438989577056384490964640541895
+mod:97698921976137171810654806439140172,2150746254976033978038152730412247,0:915340502215642798937933570589057
+mod:89923455582480950213180680168369292947024,990694177649308076053947944961089214039,0:760979594043223368325365121871263683514
+mod:723635984996285778841783493422287881642264,32276235065854550279733766315134173,0:19063611098078828395533076621443386
+mod:-5037258901456714281661245286129845002,306535320966797925963773461282861033272807,0:306530283707896469249491800037574903427805
+mod:166532365585666920632121582151238444,4667090491545163201419847209865957,0:3184198381586208582426929805929949
+mod:911936886147819373421198830106569057199,5615756921004609557346343726386068926525410,0:911936886147819373421198830106569057199
+mod:86811484072885033355160274493374615256,37068107901315780002032584004147872592,0:12675268270253473351095106485078870072
+mod:900473503013044141279558739534891246414484,563077317551901922040540262359036981493665,0:337396185461142219239018477175854264920819
+mod:296206604339420484011101863526048420,6943888401750337638037748772448658766,0:296206604339420484011101863526048420
+mod:76766227336308707540545234943801585701916947,862719523018962547718304126230369079803,0:581458558401082022815487697114611966204
+mod:82054010479033741262889658973891816396202551,74207348922359582189434798229625162234441019,0:7846661556674159073454860744266654161761532
+mod:5755949428068825531208655649279932079247416,534856249135883824768051408128323875,0:303149412971297936011710552241756791
+mod:-4452928490319786360637181545589562421706,303160457106458311370564160984723696,0:195464116979775085035415115043948838
+mod:-33234789698150515963593845391683006297003,247588244673392242851888266520387546,0:218325582291755629376064681215940307
+mod:45977596818262545665224859936336489390180665,27112842992285248552330285939262767,0:7978970070244814382475981419198853
+mod:19746632039239597257084558812475187,78543233940000315537304287419172400279725,0:19746632039239597257084558812475187
+mod:5238660120000018347305860723869512579464,9519590072642166905656304842744016323,0:2885580046826549194893060360303601814
+mod:421929309968572623211165422203258159204,6170672461209605966222290081308608002126042,0:421929309968572623211165422203258159204
+mod:97091659698518128542501333936202976578952,9041846719954776582047878587371155342936,0:6673192498970362722022548062491423149592
+mod:23139165317306380078171479574331055567930602,3235715510499720116696692085743763585,0:687224054572373129244754482756731812
+mod:7726755134733624542969321051092429534,137447273592584087361585543516012636379,0:7726755134733624542969321051092429534
+mod:-8035318446247202234206121089089275957949,1797181404653889821209194311109353672704806,0:1789146086207642618974988190020264396746857
+mod:44241982166867606755367641125284961693,185309069767665166238795112362391081,0:138423562163297190534404383035884415
+mod:-65785436012415799791107145824395590258329666,325370594025067544378522706736314963998472679,0:259585158012651744587415560911919373740143013
+mod:821027673057722511274869415993294010068508911,57940761411167592399099541246011867856,0:15088585564533356226393273829101110479
+mod:-897376592880832081463108433977538716243727,63994684847881571668961590693909662872,0:20872741011198050739952323156486210329
+mod:191486322813809144772467638907874658537,8919158359079954072103703171632009622394,0:191486322813809144772467638907874658537
+mod:163217130341378273663281863598861624,6240813543901974803730523328640195566309,0:163217130341378273663281863598861624
+mod:642113355959693728339535203311987630159829,323941666913544410706066077917137340119619,0:318171689046149317633469125394850290040210
+mod:90922298984492607133074207595203967287,4174997092394433838709995127446401945171627,0:90922298984492607133074207595203967287
+mod:-56138446847378331284150081036618044197,841578896703894278645078028402014609956835,0:841522758257046900313793878320977991912638
+mod:160326346782265576182652967313761281,561264601142183384980166754221561305236177968,0:160326346782265576182652967313761281
+mod:62576995621135938138768719119421725807,52496992618170687901372956534626144856655,0:62576995621135938138768719119421725807
+mod:-810322268830690053691854099385548648,520427764614796522518452921164896518986058,0:520426954292527691828399229310797133437410
+mod:-7946357739653867559456965124148378449835470,5327876492137615168373368729394652862957684,0:2709395244621362777289772334640927276079898
+mod:51331569935780141651744430445423490878343,752393011036235424760251760776480444081267,0:51331569935780141651744430445423490878343
+mod:6390091523604851953175389451017692789149570,538026068781142884378652825927355725561390604,0:6390091523604851953175389451017692789149570
+mod:50795967128946679209456313061694178754547719,2799907523414076596435050064346492259123881,0:397631707493300473625411903457318090317861
+mod:931794725698638185508827954509566305382537413,188887874108390274677254477767965547955941480,0:176243229265077086799810043437704113558771493
+mod:45956761520600045904065879294257993751858393,2754559558487710326209328606488100503,0:1112021195932856302477743058115163232
+mod:86998056199797702223316805148045842457568,853454763663288996214888780372138920872593497,0:86998056199797702223316805148045842457568
+mod:-20704801388339426733036642845379116124827,1435867681437150310057862989648368134,0:410577984280737997741465350352367453
+mod:2856130129221222388492861978859662650626462,3415046666744379998032348811600467386135912906,0:2856130129221222388492861978859662650626462
+mod:9174094790970904280083488936332437588,80223089031357892324412497824961233579,0:9174094790970904280083488936332437588
+mod:4534642237573685930694951916760916917,1687939078118830937441972536472082033553313,0:4534642237573685930694951916760916917
+mod:4953285485878049171718509399492969344,8438715605646215951383851878799856179,0:4953285485878049171718509399492969344
+mod:-5473561371563615410812461706913472604,214334897451541211570930222077036158481210,0:214329423890169647955519409615329245008606
+mod:32314040316433349581573558346471215798,854672171304077635036322002646520921344854,0:32314040316433349581573558346471215798
+mod:984601652834979681176881179524440398165232732,6010771562748020948016078628902359752985473102,0:984601652834979681176881179524440398165232732
+mod:698822785190474223385164957713213782961023671,150442537951079536547656264208689393334480936,0:97052633386156077194539900878456209623099927
+mod:-832138567182782528876254228044578514024849,377042837783032738781722401918006460405664,0:298989946166315687468912977709440867192143
+mod:-271707131793885697341132963275474633346,74513535025253601112542022792779088685,0:26347008307128707109035127895641721394
+mod:44640484386299773856766873434498216561663,5213123770976745902224829213477542076627816299,0:44640484386299773856766873434498216561663
+mod:-8174713099269176537506457338358109028363056209,7202185449263765965193807505095247595858978029,0:6229657799258355392881157671832386163354899849
+mod:12355340492830472409960851629397705304982,6132966232951258768476406645904988676022226517,0:12355340492830472409960851629397705304982
+mod:740672577198687499703984527131597058855628260,62988497968425244096425380714180031243,0:25908678444459756553419138341753752738
+mod:319004336538265669049369604224595570722530952,61211042298242370348907837021107959589032437,0:12949125047053817304830419119055772777368767
+mod:4806439359677487573544166219831820280885,5343125957234791643541038079815655996180160,0:4806439359677487573544166219831820280885
+mod:323024441762812965484474248139147756931591832,5765121910212312442407559411924073985538984,0:177614790923468709650921071399613741408728
+mod:4723337975870144045814369863570042890658212,89287300568064096399722912162338068807417604,0:4723337975870144045814369863570042890658212
+mod:4046612007916961296580001696582058791225882326,5729739966517853346267035412515108513431626770,0:4046612007916961296580001696582058791225882326
+mod:540533121775179300141141525507624112998,4914658151314087364162157813143111418270829,0:540533121775179300141141525507624112998
+mod:66280283111826907749579181590044353153733,204172771634272898466853823821147342141093,0:66280283111826907749579181590044353153733
+mod:925538924182292886302889784301398233703,1123951844806914762874832168405952076336884530,0:925538924182292886302889784301398233703
+mod:-9277230270610927782719268661989105709153,55678956296429757152650874683611007657644,0:46401726025818829369931606021621901948491
+mod:50293591559684931942237588278999569425818428,141131236033928957276244084171780508793074,0:50871531606223151894694313845708295484084
+mod:227536874010521150326799753293426594405370122100,5663713263329817356263170887251834777947840,0:2857369509067856283126068971384036093597940
+mod:-159636069245107191231315124801771805922519,5376563717710166640876235141463100221226553282,0:5376404081640921533685003826338298449420630763
+mod:296211412518831858845632004066852419532092957,9193193936667373505606545836126920558776593,0:2029206545475906666222537310790961651241981
+mod:86602967441811929071383589926953279497600400,29113787967675780279817029258848956369351891,0:28375391506460368511749531409255366758896618
+mod:935808235992985547250049168223094462501588,823359169504337998748976932597778859831206424,0:935808235992985547250049168223094462501588
+mod:1241588731631743791569571581848113730164929826,171962803446046629060145060037355991426961,0:17290751287129755324248378403472062271406
+mod:-74403542912395173151108580799350125207208,117394870062241902513223079179473780570881,0:42991327149846729362114498380123655363673
+mod:-97438192951192117314716964768364222640372905637,8024586066648229541713894611454280576509407,0:4355656117334010314857498525106400180823564
+mod:-737958699044282011354135601107494488027530,158340104707707507507946829328121909848911613226,0:158339366749008463225935475192520802354423585696
+mod:7238206747053249220557962252149262130217519,26583927802751023597693302694515406325578,0:7378384704970801985383919241071609660303
+mod:-76298303799498407827228786401180081621564,305509547184311996384274460275527665616703456,0:305433248880512497976447231489126485535081892
+mod:8484126595409899812717896552747684329372,304175476902105667248597679191320877778921077,0:8484126595409899812717896552747684329372
+mod:16618292546225677123057630920609252345178704453,1759703193372771615772702336566528721798637962,0:780963805870732581103309891510493848990962795
+mod:-86688490323412015602068918712338617474038884337,68055712910244091518751770267361236110795,0:60113101985245418861232982916749058457123
+mod:-2147105590126324395866565651207583306108779,8080551616254563514320925568870382437821720942,0:8078404510664437189925059003219174854515612163
+mod:8351518777266745029929974668820179263529631715443,175331741086869721483946575985451578498971069791,0:110926946183868120184485597503955074077991435266
+mod:-1795087841202144142663615322625965929380012985,35306979241856773462781084288773766694122468,0:5568100132551303938219976101496172020232883
+mod:1223266620160352395848150839920704951768,4664479506170256011858225502160377500533300400637,0:1223266620160352395848150839920704951768
+mod:39982725086518866718673198942063749137891,461771175994919359694841662569213792123219861,0:39982725086518866718673198942063749137891
+mod:357581778914196308302086292874528466152700626874,3109407409714291140644239657248083936467914372416,0:357581778914196308302086292874528466152700626874
+mod:149499532166554918559602886813953835372516,4116995844742979208794059184185312557100182485,0:149499532166554918559602886813953835372516
+mod:30162948061054933954336062823716515388316534139,210277285976133726432524140550436988594139754,0:93296166467811074485110725004026019354549317
+mod:52810485653680320320369005564031524621022350,82825120387123890672981225414839234585635496,0:52810485653680320320369005564031524621022350
+mod:7208022814700388108567430430861339898438,2633586073486065955736662183793128252475,0:1940850667728256197094106063275083393488
+mod:1133096693748508212236566391854344691508408508,2601250202595579849376374699877144432325855432,0:1133096693748508212236566391854344691508408508
+mod:24110493767768334678283829225780182918079966113,62617472892345734441670381366941494160023,0:11535407963705925298902727562240728070101
+mod:2029154393292042830677214368668639182381808222081,82610125404955917046846600049858255083588,0:65547351731225346301018769765882024339145
+mod:950870388742015370309491008506921827067333129594,9135792372038219712944984119888962386493530278645,0:950870388742015370309491008506921827067333129594
+mod:646334826846693204541658068926128186360010,54407099890316510058892785158311428336873182,0:646334826846693204541658068926128186360010
+mod:428552882985823327962705708694562616508577,141639571156330467462518777812629657176255,0:3634169516831925575149375256673644979812
+mod:21509351141318679646739001694607822320768,21896381149810489046647085552887947819439418684,0:21509351141318679646739001694607822320768
+mod:632728454831941197355087764542806015137812368262,222724285350635099362081058306677746403035965,0:191484436137515166777558951841215353190227662
+mod:29001858864232179857863618818997005925607,263069727005942155120496500688512817218817,0:29001858864232179857863618818997005925607
+mod:2833859942689944963761411216780529093075213667,24836085579076290404924895501933094503621863,0:2546186675247857599973129560156319662321285
+mod:87503819229335363919830481339117453040132756753,7265931585748836565776184592881080221565467,0:205142162125158187890287050603931819837672
+mod:3785119298527941754940929232952910144091163,384452066294060303214343786012747535262261,0:325050701881399026011835158838182326730814
+mod:38179577399511020742387225982022507255362,265561978107157383888631215376392729015255,0:38179577399511020742387225982022507255362
+mod:-42541955629872910052396184385091366868620,7073377596138431111003761711368230096543870670658,0:7073377553596475481130851658972045711452503802038
+mod:962822498059104139629105773638997541722777,291785910412123339651738662863457030701079,0:87464766822734120673889785048626449619540
+mod:-610694008008712552303733816313602703956727091,10013831675645158459604313031569589122775,0:9530562183081513694818229700258284829059
+mod:25840001817997722382069756182552718470600133,8684986931293242801082346374758755111010579020,0:25840001817997722382069756182552718470600133
+mod:65515204463103763906150928285942229386532511441,6904523147545678419356084749116545717835399,0:5088839190367063300396186324443615710245729
+mod:88029876839939054322959996030895683781141381988805,87155086119890274408175255450625302996948,0:42833542489532412926993261659835596440801
+mod:-140728222219088662551331451181555518857060,85465120005353614253381442147197316880331584686,0:85464979277131395164718890815746135324812727626
+mod:9386187660146534186830943256786039971200765327416,587965300048494341491681576852042742249853,0:156828577987386328282882864848506418512778
+mod:8015087164840320324802166753130112000577091656,6127305412955855242353538605784472950012242,0:571684694061667803738256764021381961079120
+mod:200585481998602232012071307195117379072828517,688377212094972591154108498471394888446887,0:267713278965207986225734139941466534784400
+mod:-2500594129935211199120603938323647766148423982331,1361156037555715012439087715972060812276689,0:599374805963096380934653500844754016423148
+mod:117111132825449273925221124600613715199470024967190,6687987114639191794225780163327374060501630866595,0:3415351876583013423382861824048356170942300235075
+mod:17302923664832474983271296805121649995183106066,41453082247135300103242413890739246798747574758,0:17302923664832474983271296805121649995183106066
+mod:804590820827842054650903665300245592864154,31922670356859924926370586627082780796917147,0:804590820827842054650903665300245592864154
+mod:1419527821402660938221344683778268760948333788257,28865159616287527805126478593002688908873146865,0:5135000204572075770147232721137004413549591872
+mod:-6349296345256358340236015836865079291052256775642,178072362342080585886203440168430935242413913,0:51806412867030122454025780494135951253706286
+mod:83483775554984848270591505226690350944356856326,500899723948831224438405152518791040164077250979465,0:83483775554984848270591505226690350944356856326
+mod:-5202440839318488047646864687648754749799822,423723177170085295356066936482198199652980649761,0:423717974729245976868019289617510550898230849939
+mod:525675600985546172797713152878987836214364203032,52969787195069967379407272322490869598290122,0:3432861671816524475382350588446320933032304
+mod:37858860128097787570803474618858008892810909590,5748777360917412753508983838083899279156995949,0:3366195962593311049749571590354613217868933896
+mod:45957868400560169903622579655897442394944091417163,62063277048172505864034466895124800993363976911,0:31043384912515564237074153505089659854748503023
+mod:18051383988929839561139635711444280609605686,829384533321617231836740782712342923300954,0:634308789175877692568079274485079220285652
+mod:2455769442319397759077734120262920951648644195950,902538521133892788023206849882232725042383975,0:864664835209375654611488583247939533359783950
+mod:4589658345087491870839566381729330015793440,513428177661658876831707141329481947688426657,0:4589658345087491870839566381729330015793440
+mod:-3573981672918561820060475190255839052046119,6138097283471921734295336167784166932835047133,0:6134523301799003172475275692593911093783001014
+mod:651620293244411254456830208908605775265324147,49737728886554678175954115600491082303192404,0:5029817719200438169426706102221705323822895
+mod:-16650974859063823766693159687850998551426028,945869854077417138401154817030148430752804974724,0:945853203102558074577388123870460579754253548696
+mod:-965598273519770488416791785443027019154228220991,58147062667685853263523283369280759917430291182,0:22901791830889017063104031834745899442086729103
+mod:28701469969197750610229907539580754650086642,3909053247766771922418857228732717683752395675,0:28701469969197750610229907539580754650086642
+mod:-8748391241949190130773015442145843092096091103,42809713885017092071880308569574525272117288,0:27600104479313743962447814616934588687952937
+mod:-6130419437464601359973583052365059560631450,2868142672962642021474985766046232299028848,0:2474008581423324704451374245773637336455094
+mod:95640797562953613006161464063899219827371659541,19819192346118145486800692560690336691790893,0:13194492933561032348122458568345289480600816
+mod:-5004080847919147880779643424152795003888630787668,21840420756428944369875564516044464145680642454,0:19215926059509324291736414537431749617916976752
+mod:2939482810778921033958889604777113454839240320170,566855177384622843277537161088088916192047616362,0:105206923855806817571203799336668873879002238360
+mod:291726867119014526479710686475643665173438062,202885774177743860764627132154911476520592335058005,0:291726867119014526479710686475643665173438062
+mod:8683025332039408014362977905935333328608348,78614799730964514801510410033797138266803757860,0:8683025332039408014362977905935333328608348
+mod:869468342614628804595566251564864548106595266,73624620788538462644074114115939464475401814111645,0:869468342614628804595566251564864548106595266
+mod:4728910553503250598863512353801889257516953314,648895113009231703768170210292430028966664779037,0:4728910553503250598863512353801889257516953314
+mod:760566451760297307988377549048192013905533937,2697105353808446098263423690773776969485171497,0:760566451760297307988377549048192013905533937
+mod:918153477317716353524438631647119722202588746160,40888243303074949046907063669422917592190788906358,0:918153477317716353524438631647119722202588746160
+mod:-1473776558819659703245310105293049377337981709,31054248040311137303584740614306271791161270545,0:29580471481491477600339430509013222413823288836
+mod:905086443229432348861962052611640110347186013855,16319880347082113262021644716353623982591699522702,0:905086443229432348861962052611640110347186013855
+mod:-3948357993060778828570152166999624499401960763170,77670033625089877508398637915359376482388910,0:75836304290184446800990065584763456761865590
+mod:-784992783303820924306757780883007042021257440780615,463574560419641941889185992215306604381633902571284,0:142156337535462959471614203547606166742010364361953
+mod:3823677606013902933129598925384688189274201201551,99529942495899622221328610053601822241548249,0:35805148927146252817712955466984220642119718
+mod:12254504447986771204864826285146960991558427605699,6125051499311360686388425114933437945893268599,0:4401449364049832087976055280085099771890407699
+mod:-2580894945525990910646902811077109168493411986,572510241156643657546678509117136144990147708808871,0:572507660261698131555767862214325067880979215396885
+mod:343089829587091844514156149817937152291781907,43377295017128784286263228943698366029281236815,0:343089829587091844514156149817937152291781907
+mod:7853011116124010483217978861490662971029642862525,552677408447001109928623269020934228695696472,0:17819500571712242170831972208515492491691877
+mod:887815431705947711841094597810602130602260715,8486574430538892118817816797303238023509341587403,0:887815431705947711841094597810602130602260715
+mod:67620759311796073899200379294956624554814285201520,87303800600842937580229698689028406709310049288843035,0:67620759311796073899200379294956624554814285201520
+mod:-38490591886267408374352863050032614782701178357,66475506278603268018635318767149490286581760362179844,0:66475467788011381751226944414286440253966977661001487
+mod:-544395011810833021655729041737889469872310533646777,731611503205277837707380015577043727374026342728599368,0:731067108193467004685724286535305837904154032194952591
+mod:8890962095194591840604729292735591304316116728,517571143480065164208802281191733497859755993101179949,0:8890962095194591840604729292735591304316116728
+mod:40588319468481766273347382652716318465741545598763,1536971037850601936767123301111618687777305090,0:1525271960920929137957640261803777606250087133
+mod:48235707095020151632145028961335649832134676937,794868261145529770762797624857872107306805378170,0:48235707095020151632145028961335649832134676937
+mod:-9523841594085891512065672092684699107288546273626439,473487777070786775175577792880772873295554421457750,0:419401724400630766621461557811531231918096576986311
+mod:90074633895471637214960779532906651648038212359500386,820079595762158387084577717033680869242497989232,0:371415339208611139101404795279693919203214214434
+mod:502553209306579947121167024397370721577297298727046100,52494082558436951205873151813775449908847817944715,0:27356974663013227343342084098339599897137542289405
+mod:5790702792462693399581381818523043045468711777,48910417508813857701976328940621637734412004053009,0:5790702792462693399581381818523043045468711777
+mod:8115756631582685507536476067391256503367264361488762,84450889017264877905314659939101106548473815858544561,0:8115756631582685507536476067391256503367264361488762
+mod:8194219075070331821784044970434313099982993771,652282608320462546135364960046755034411967968039334154,0:8194219075070331821784044970434313099982993771
+mod:75033785162139990322256697516355737268216190660,50448201882288504062521017516515948614320857837,0:24585583279851486259735679999839788653895332823
+mod:-310420971441772166248782136661913235149811988,52251157147894938842540415683732209931823110303,0:51940736176453166676291633547070296696673298315
+mod:-465851374976907401549861928175506333511972756050,404205507663774789620852323466440811463681452434704718,0:404205041812399812713450773604512635957347940461948668
+mod:86727934051201027780798621123886995870064920795,2623457841745489387377116124239592088889194223622807,0:86727934051201027780798621123886995870064920795
+mod:-2164209564341937597697994551840383739114494141322,5822096741927098565898057075974774660691292113200355,0:5819932532362756628300359081422934276952177619059033
+mod:-21572594290097356729450557279398987661535311983806,95173892429181732470545230031265828462190645462413613,0:95152319834891635113815779473986429474529110150429807
+mod:896154498632105428944035878874928031422856104434543133,2920373159440158169043176499665564441266475422,0:603088578315357918226288933626857244348602913
+mod:-28106796449976334513237948147051254770072052831429,8250476728385872623793527898989079209376092358,0:2577763634333516026601404804538096272293832277
+mod:-5910781525258418818015395848760618489911223430349957,51598547888760073234245679451691550056130732598,0:38529590602611260383715148455335218776511681335
+mod:7727963353453460964292856120418469526804141877435331,9692488255114907303703797109203796514048948603078,0:3050214126879843240929824383043705107129840782165
+mod:937009697498591315869575189938875974899784631458,9231715369857992569685209191243252034527233388658,0:937009697498591315869575189938875974899784631458
+mod:190934454146310086697642361797951041146551500749,10448518118997830258656577725632025806308987954,0:2861128004349142041823962736574576632989717577
+mod:716842295935464600709869948911248187992875653195892447,401547841844896246538515909881184133363330747247974,0:79398242324800638619049773334509939330269358258857
+mod:-538446228722400194015060345964154302722009578079,57520540642458327434814547831209263785958735384,0:36759177702183080333085132347938335137577775761
+mod:96967488061013453069137268213397106742518252838974707,4323900098433218426906897807465481156203036443592813,0:1841685895482647677185516449156521306051451079932821
+mod:4248753403571933538992485400308861658493364877663,939067422305299585909602271217318347813010825877,0:492483714350735195354076315439588267241321574155
+mod:-107460187565073890428227205420824162161759055432,282612401032124761876915123928433707969500860981828349,0:282612293571937196803024695701228287145338699222772917
+mod:6649481706449462881752315195565911763474357952858741,659725471155847914828668487679599556025560898493899721,0:6649481706449462881752315195565911763474357952858741
+mod:6305756385410127441079092163742836866873755879,9919320027008577000539126363765101039097548804251,0:6305756385410127441079092163742836866873755879
+mod:-38180683008697554526126494541279186939566773312,4697678019691033242250502480954454444789783096,0:4098419168521744654128027787310903063541274552
+mod:627353070533528810361133250533207881585454632738,247981734193053924842956535127898645616700024063945,0:627353070533528810361133250533207881585454632738
+mod:-977100235060594126432793245647088458561713536019153,711683384963018548537977961275571093400571875056194861,0:710706284727957954411545168029924004942010161520175708
+mod:1498139275498305618541952433970427820083740864078175,3957896946470021688374936335906211866428578229500974,0:1498139275498305618541952433970427820083740864078175
+mod:597201805617750253952058296204205724608800648357149,4978798146323419820714075023507404888549551451,0:4925562548693297046425284539523037059050912601
+mod:-56676822442119009829407208281675487240867001784809049878,6406684614200209335872193933373288202798878241606,0:2690987740863316857560626374071228113763853811606
+mod:8685426845950882129513316465433060160017749608742,5862536885517747336130664930278619887073507404339873116,0:8685426845950882129513316465433060160017749608742
+mod:-758552875949625615550950682460830448030408807239369540,6928982530621565423313581311775944174511467885237190,0:3635202418746581013543261834523411165852660136721360
+mod:165930319304414878413873653644927162776703980852674518,70941371417197323006528137030561117730233179743191461,0:24047576470020232400817379583804927316237621366291596
+mod:-30974844728461949004845422334486602888821195017,323336199778314705263073710488111629703644763021,0:292361355049852756258228288153625026814823568004
+mod:6133073724222023714159452874993644151837626947339205812,7463402457118308536507525382128605388905979122243374,0:5620306927892405686774536266059127545818087977395758
+mod:45342828302867171033162078210088228770176829233725,826633934789479436275857854693648185626420538347806062,0:45342828302867171033162078210088228770176829233725
+mod:-26272751936716551812042161754718676251990474722,3726791277147420607688434457942745910700285747248,0:3700518525210704055876392296188027234448295272526
+mod:-39318997476790646356737814318350583742657677501,1994697821466452959618065249537163794020403205602,0:1955378823989662313261327435218813210277745528101
+mod:8027107780836872755806128697397537471698261298622,1333439935985760787392296885353944866764267524928758610,0:8027107780836872755806128697397537471698261298622
+mod:-55936499409386931117510358618192060334282485918550322,398438202364094320499957997907168092925880758462,0:239820508270537478744707995268231581913761929858
+mod:4986596463362462090356441596215520136635434728102133698,904796510225702345660178949801987674355175932951442952042,0:4986596463362462090356441596215520136635434728102133698
+mod:206550560537111820336709370332003111271041434735753,8863245846520291116010486302557366093750491313639489405,0:206550560537111820336709370332003111271041434735753
+mod:576258003770289338613512178842212632031473801519,112928562274312812079466249863533328301249309332,0:11615192398725278216180929524545990525227254859
+mod:5044250943493799862304047991036206572453520324334513,35881021726135630824830413448736592392545545812443121,0:5044250943493799862304047991036206572453520324334513
+mod:905588871665990684975164361624636275705950128546215874,53243625735815790460446478875365074647441813141773592808,0:905588871665990684975164361624636275705950128546215874
+mod:5991116388159027989458739990542641030328044128925695503,721278676327052740788584942208715418345142864101,0:431868180450652741834416094047706629629986812960
+mod:-3474677351996973979038623915159768162722810109611432906,763685814389121867002329466465821059768201256128129,0:93103473530515821975157259717659222505605771554044
+mod:8460371705356400367952890710394988728910116421931757,6311797752969747892862660456068082967585770509045488820,0:8460371705356400367952890710394988728910116421931757
+mod:-264756559717037431451787362436705748418817738411460,7816554223015299624827224356467518163226383802462318164,0:7816289466455582587395772569105081457477964984723906704
+mod:84752881980947180661815959615676455311403364453605403063,52250068596287507582088091160391730925462299132305704,0:3270717768843363669075753521067750303515261005551175
+mod:64938454622435247872445936607970411171632403906819,964092617858022639258083183616152671542900110410,0:344249225947731042154363305688182178258096509349
+mod:40144089093980612505699952982513757457937212093962271,10902061466143734099157856887908326325446558980281568,0:7437904695549410208226382318788778481597535153117567
+mod:107130104935801948815478025681375166396055326914961974,6641641026382469722494881921027536542476581953333157,0:863848513682433255559914944934581716430015661631462
+mod:375770000201081420238670197853908213239792155799109438568,741847952379716980656595421052880669705080727039,0:186232142856874724410035514392651753500883140216
+mod:314494472877016149904621158951181139298853721401432703777,2289213676835383723493513562354885152593212937649884,0:8739694298587358772241304662150445534814153989973
+mod:491754906560818931573946605055051948215890543148276100,5346198427406770324055146743032112633140429155293,0:882811089383626706097337472163994367588586115374
+mod:831402402931313770942586028473722467913682852291371107996,249203176454681279672468752353764682559981472637056324863,0:83792873567269931925179771412428420233738434380202133407
+mod:-927301671513394245404756806010463865731294755475136031104,128994162476254345599482066271274174336327781183511925567,0:104651628296640519391099724159729528959327493992959373432
+mod:49063903583376380376914162724558461583861450724317254,941774744692403469242853096809411489238020290379296849870,0:49063903583376380376914162724558461583861450724317254
+mod:95814446741364664911508702682923954900446789248313,2444989997188453542574239416826458624894367967952,0:459836851014976751113365426692068529566438498185
+mod:96634339550441353817958772505469549255037435683448,78081012036785909772650615373227006202901241216144834,0:96634339550441353817958772505469549255037435683448
+mod:930319417728873563211760140268194907413484971952354004,89121326206650943149280333205573781193492882117302434,0:39106155662364131718956808212457095478556150779329664
+mod:296149508458734377319788304412051836966914377456545014105,5775874526745986573435749392656102466476051398568,0:3756015598637200337676470424188468229410269716225
+mod:42844020401978935822457442747009223068912783208882,70773879393663215011878508613578824050038059978191899,0:42844020401978935822457442747009223068912783208882
+mod:-90593635206751701986722625420716592016545661236480979772,6587808211180976790034063002169935351319078136248018,0:1903313409090829825808985124358934794301293201763764
+mod:5733125812846132405536083211632006878958607745362254467,12605191511011498307650361584364883404677231252914573,0:10368866846912173862819052330349813235144756539038325
+mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,0:35334176700018152414903708698661724515806296523250
+mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,=1:35334176700018152414903708698661724515806296523250
+mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,=2:35334176700018152414903708698661724515806296523250
+mod:95998165422977408040950062135290204359238945742902842,40371405656826836301445165513921557692353024588296,101:35334176700018152414903708698661724515806296523250
+mod:-76855972323011457703707050993748256077521513979037807,1910956865546821689289334552684591792222791353473,0:801852416163817820695380673341213886931466292780
+mod:-9872019059197505082121902831056682448354872822219660550903,908082149115602660075723278246449391327542696231965833,0:650065987327038221360650038715334158171371214271985473
+mod:595855064966654171339977100486303810714342893653637711,594549781214651234933649045428169123584477791281395609,0:1305283752002936406328055058134687129865102372242102





More information about the llvm-commits mailing list