Add the pidigits shootout benchmark
authorJohan Tibell <johan.tibell@gmail.com>
Tue, 5 Feb 2013 18:14:45 +0000 (10:14 -0800)
committerJohan Tibell <johan.tibell@gmail.com>
Tue, 5 Feb 2013 18:14:45 +0000 (10:14 -0800)
.gitignore
Makefile
shootout/Makefile [new file with mode: 0644]
shootout/pidigits/Main.hs [new file with mode: 0644]
shootout/pidigits/Makefile [new file with mode: 0644]
shootout/pidigits/pidigits.stdout [new file with mode: 0644]

index 0e3bf34..bf0eebb 100644 (file)
@@ -51,6 +51,8 @@ real/scs/scs
 real/symalg/symalg
 real/veritas/veritas
 
+shootout/pidigits/pidigits
+
 spectral/ansi/ansi
 spectral/atom/atom
 spectral/awards/awards
index cecfba3..4ecbdf9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -28,7 +28,7 @@ SUBDIRS = runstdtest nofib-analyse $(NoFibSubDirs)
 #
 SRC_DIST_DIR=$(shell pwd)/nofib
 SRC_DIST_NAME=nofib
-SRC_DIST_DIRS=docs fibon gc imaginary smp spectral real parallel mk
+SRC_DIST_DIRS=docs fibon gc imaginary smp spectral real parallel mk shootout
 
 dist :: nofib-dist-pre
 include $(TOP)/mk/target.mk
diff --git a/shootout/Makefile b/shootout/Makefile
new file mode 100644 (file)
index 0000000..45ed28e
--- /dev/null
@@ -0,0 +1,7 @@
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
+
+SUBDIRS = pidigits
+
+include $(TOP)/mk/target.mk
+
diff --git a/shootout/pidigits/Main.hs b/shootout/pidigits/Main.hs
new file mode 100644 (file)
index 0000000..665641f
--- /dev/null
@@ -0,0 +1,22 @@
+-- The Computer Language Benchmarks Game
+-- http://benchmarksgame.alioth.debian.org/
+-- contributed by Bryan O'Sullivan
+-- modified by Eugene Kirpichov: pidgits only generates
+-- the result string instead of printing it. For some
+-- reason, this gives a speedup.
+
+import System.Environment
+
+pidgits n = 0 % (0 # (1,0,1)) where
+ i%ds
+  | i >= n = []
+  | True = (concat h ++ "\t:" ++ show j ++ "\n") ++ j%t
+  where k = i+10; j = min n k
+        (h,t) | k > n = (take (n`mod`10) ds ++ replicate (k-n) " ",[])
+              | True = splitAt 10 ds
+ j # s | n>a || r+n>=d = k # t
+     | True = show q : k # (n*10,(a-(q*d))*10,d)
+  where k = j+1; t@(n,a,d)=k&s; (q,r)=(n*3+a)`divMod`d
+ j&(n,a,d) = (n*j,(a+n*2)*y,d*y) where y=(j*2+1)
+
+main = putStr.pidgits.read.head =<< getArgs
diff --git a/shootout/pidigits/Makefile b/shootout/pidigits/Makefile
new file mode 100644 (file)
index 0000000..c84f48a
--- /dev/null
@@ -0,0 +1,11 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
+FAST_OPTS = 10000
+NORM_OPTS = 10000
+SLOW_OPTS = 10000
+
+# The benchmark game also uses -fllvm, which we can't since it might
+# not be available on the developer's machine.
+HC_OPTS += -O2
diff --git a/shootout/pidigits/pidigits.stdout b/shootout/pidigits/pidigits.stdout
new file mode 100644 (file)
index 0000000..757a2cf
--- /dev/null
@@ -0,0 +1,1000 @@
+3141592653     :10
+5897932384     :20
+6264338327     :30
+9502884197     :40
+1693993751     :50
+0582097494     :60
+4592307816     :70
+4062862089     :80
+9862803482     :90
+5342117067     :100
+9821480865     :110
+1328230664     :120
+7093844609     :130
+5505822317     :140
+2535940812     :150
+8481117450     :160
+2841027019     :170
+3852110555     :180
+9644622948     :190
+9549303819     :200
+6442881097     :210
+5665933446     :220
+1284756482     :230
+3378678316     :240
+5271201909     :250
+1456485669     :260
+2346034861     :270
+0454326648     :280
+2133936072     :290
+6024914127     :300
+3724587006     :310
+6063155881     :320
+7488152092     :330
+0962829254     :340
+0917153643     :350
+6789259036     :360
+0011330530     :370
+5488204665     :380
+2138414695     :390
+1941511609     :400
+4330572703     :410
+6575959195     :420
+3092186117     :430
+3819326117     :440
+9310511854     :450
+8074462379     :460
+9627495673     :470
+5188575272     :480
+4891227938     :490
+1830119491     :500
+2983367336     :510
+2440656643     :520
+0860213949     :530
+4639522473     :540
+7190702179     :550
+8609437027     :560
+7053921717     :570
+6293176752     :580
+3846748184     :590
+6766940513     :600
+2000568127     :610
+1452635608     :620
+2778577134     :630
+2757789609     :640
+1736371787     :650
+2146844090     :660
+1224953430     :670
+1465495853     :680
+7105079227     :690
+9689258923     :700
+5420199561     :710
+1212902196     :720
+0864034418     :730
+1598136297     :740
+7477130996     :750
+0518707211     :760
+3499999983     :770
+7297804995     :780
+1059731732     :790
+8160963185     :800
+9502445945     :810
+5346908302     :820
+6425223082     :830
+5334468503     :840
+5261931188     :850
+1710100031     :860
+3783875288     :870
+6587533208     :880
+3814206171     :890
+7766914730     :900
+3598253490     :910
+4287554687     :920
+3115956286     :930
+3882353787     :940
+5937519577     :950
+8185778053     :960
+2171226806     :970
+6130019278     :980
+7661119590     :990
+9216420198     :1000
+9380952572     :1010
+0106548586     :1020
+3278865936     :1030
+1533818279     :1040
+6823030195     :1050
+2035301852     :1060
+9689957736     :1070
+2259941389     :1080
+1249721775     :1090
+2834791315     :1100
+1557485724     :1110
+2454150695     :1120
+9508295331     :1130
+1686172785     :1140
+5889075098     :1150
+3817546374     :1160
+6493931925     :1170
+5060400927     :1180
+7016711390     :1190
+0984882401     :1200
+2858361603     :1210
+5637076601     :1220
+0471018194     :1230
+2955596198     :1240
+9467678374     :1250
+4944825537     :1260
+9774726847     :1270
+1040475346     :1280
+4620804668     :1290
+4259069491     :1300
+2933136770     :1310
+2898915210     :1320
+4752162056     :1330
+9660240580     :1340
+3815019351     :1350
+1253382430     :1360
+0355876402     :1370
+4749647326     :1380
+3914199272     :1390
+6042699227     :1400
+9678235478     :1410
+1636009341     :1420
+7216412199     :1430
+2458631503     :1440
+0286182974     :1450
+5557067498     :1460
+3850549458     :1470
+8586926995     :1480
+6909272107     :1490
+9750930295     :1500
+5321165344     :1510
+9872027559     :1520
+6023648066     :1530
+5499119881     :1540
+8347977535     :1550
+6636980742     :1560
+6542527862     :1570
+5518184175     :1580
+7467289097     :1590
+7772793800     :1600
+0816470600     :1610
+1614524919     :1620
+2173217214     :1630
+7723501414     :1640
+4197356854     :1650
+8161361157     :1660
+3525521334     :1670
+7574184946     :1680
+8438523323     :1690
+9073941433     :1700
+3454776241     :1710
+6862518983     :1720
+5694855620     :1730
+9921922218     :1740
+4272550254     :1750
+2568876717     :1760
+9049460165     :1770
+3466804988     :1780
+6272327917     :1790
+8608578438     :1800
+3827967976     :1810
+6814541009     :1820
+5388378636     :1830
+0950680064     :1840
+2251252051     :1850
+1739298489     :1860
+6084128488     :1870
+6269456042     :1880
+4196528502     :1890
+2210661186     :1900
+3067442786     :1910
+2203919494     :1920
+5047123713     :1930
+7869609563     :1940
+6437191728     :1950
+7467764657     :1960
+5739624138     :1970
+9086583264     :1980
+5995813390     :1990
+4780275900     :2000
+9946576407     :2010
+8951269468     :2020
+3983525957     :2030
+0982582262     :2040
+0522489407     :2050
+7267194782     :2060
+6848260147     :2070
+6990902640     :2080
+1363944374     :2090
+5530506820     :2100
+3496252451     :2110
+7493996514     :2120
+3142980919     :2130
+0659250937     :2140
+2216964615     :2150
+1570985838     :2160
+7410597885     :2170
+9597729754     :2180
+9893016175     :2190
+3928468138     :2200
+2686838689     :2210
+4277415599     :2220
+1855925245     :2230
+9539594310     :2240
+4997252468     :2250
+0845987273     :2260
+6446958486     :2270
+5383673622     :2280
+2626099124     :2290
+6080512438     :2300
+8439045124     :2310
+4136549762     :2320
+7807977156     :2330
+9143599770     :2340
+0129616089     :2350
+4416948685     :2360
+5584840635     :2370
+3422072225     :2380
+8284886481     :2390
+5845602850     :2400
+6016842739     :2410
+4522674676     :2420
+7889525213     :2430
+8522549954     :2440
+6667278239     :2450
+8645659611     :2460
+6354886230     :2470
+5774564980     :2480
+3559363456     :2490
+8174324112     :2500
+5150760694     :2510
+7945109659     :2520
+6094025228     :2530
+8797108931     :2540
+4566913686     :2550
+7228748940     :2560
+5601015033     :2570
+0861792868     :2580
+0920874760     :2590
+9178249385     :2600
+8900971490     :2610
+9675985261     :2620
+3655497818     :2630
+9312978482     :2640
+1682998948     :2650
+7226588048     :2660
+5756401427     :2670
+0477555132     :2680
+3796414515     :2690
+2374623436     :2700
+4542858444     :2710
+7952658678     :2720
+2105114135     :2730
+4735739523     :2740
+1134271661     :2750
+0213596953     :2760
+6231442952     :2770
+4849371871     :2780
+1014576540     :2790
+3590279934     :2800
+4037420073     :2810
+1057853906     :2820
+2198387447     :2830
+8084784896     :2840
+8332144571     :2850
+3868751943     :2860
+5064302184     :2870
+5319104848     :2880
+1005370614     :2890
+6806749192     :2900
+7819119793     :2910
+9952061419     :2920
+6634287544     :2930
+4064374512     :2940
+3718192179     :2950
+9983910159     :2960
+1956181467     :2970
+5142691239     :2980
+7489409071     :2990
+8649423196     :3000
+1567945208     :3010
+0951465502     :3020
+2523160388     :3030
+1930142093     :3040
+7621378559     :3050
+5663893778     :3060
+7083039069     :3070
+7920773467     :3080
+2218256259     :3090
+9661501421     :3100
+5030680384     :3110
+4773454920     :3120
+2605414665     :3130
+9252014974     :3140
+4285073251     :3150
+8666002132     :3160
+4340881907     :3170
+1048633173     :3180
+4649651453     :3190
+9057962685     :3200
+6100550810     :3210
+6658796998     :3220
+1635747363     :3230
+8405257145     :3240
+9102897064     :3250
+1401109712     :3260
+0628043903     :3270
+9759515677     :3280
+1577004203     :3290
+3786993600     :3300
+7230558763     :3310
+1763594218     :3320
+7312514712     :3330
+0532928191     :3340
+8261861258     :3350
+6732157919     :3360
+8414848829     :3370
+1644706095     :3380
+7527069572     :3390
+2091756711     :3400
+6722910981     :3410
+6909152801     :3420
+7350671274     :3430
+8583222871     :3440
+8352093539     :3450
+6572512108     :3460
+3579151369     :3470
+8820914442     :3480
+1006751033     :3490
+4671103141     :3500
+2671113699     :3510
+0865851639     :3520
+8315019701     :3530
+6515116851     :3540
+7143765761     :3550
+8351556508     :3560
+8490998985     :3570
+9982387345     :3580
+5283316355     :3590
+0764791853     :3600
+5893226185     :3610
+4896321329     :3620
+3308985706     :3630
+4204675259     :3640
+0709154814     :3650
+1654985946     :3660
+1637180270     :3670
+9819943099     :3680
+2448895757     :3690
+1282890592     :3700
+3233260972     :3710
+9971208443     :3720
+3573265489     :3730
+3823911932     :3740
+5974636673     :3750
+0583604142     :3760
+8138830320     :3770
+3824903758     :3780
+9852437441     :3790
+7029132765     :3800
+6180937734     :3810
+4403070746     :3820
+9211201913     :3830
+0203303801     :3840
+9762110110     :3850
+0449293215     :3860
+1608424448     :3870
+5963766983     :3880
+8952286847     :3890
+8312355265     :3900
+8213144957     :3910
+6857262433     :3920
+4418930396     :3930
+8642624341     :3940
+0773226978     :3950
+0280731891     :3960
+5441101044     :3970
+6823252716     :3980
+2010526522     :3990
+7211166039     :4000
+6665573092     :4010
+5471105578     :4020
+5376346682     :4030
+0653109896     :4040
+5269186205     :4050
+6476931257     :4060
+0586356620     :4070
+1855810072     :4080
+9360659876     :4090
+4861179104     :4100
+5334885034     :4110
+6113657686     :4120
+7532494416     :4130
+6803962657     :4140
+9787718556     :4150
+0845529654     :4160
+1266540853     :4170
+0614344431     :4180
+8586769751     :4190
+4566140680     :4200
+0700237877     :4210
+6591344017     :4220
+1274947042     :4230
+0562230538     :4240
+9945613140     :4250
+7112700040     :4260
+7854733269     :4270
+9390814546     :4280
+6464588079     :4290
+7270826683     :4300
+0634328587     :4310
+8569830523     :4320
+5808933065     :4330
+7574067954     :4340
+5716377525     :4350
+4202114955     :4360
+7615814002     :4370
+5012622859     :4380
+4130216471     :4390
+5509792592     :4400
+3099079654     :4410
+7376125517     :4420
+6567513575     :4430
+1782966645     :4440
+4779174501     :4450
+1299614890     :4460
+3046399471     :4470
+3296210734     :4480
+0437518957     :4490
+3596145890     :4500
+1938971311     :4510
+1790429782     :4520
+8564750320     :4530
+3198691514     :4540
+0287080859     :4550
+9048010941     :4560
+2147221317     :4570
+9476477726     :4580
+2241425485     :4590
+4540332157     :4600
+1853061422     :4610
+8813758504     :4620
+3063321751     :4630
+8297986622     :4640
+3717215916     :4650
+0771669254     :4660
+7487389866     :4670
+5494945011     :4680
+4654062843     :4690
+3663937900     :4700
+3976926567     :4710
+2146385306     :4720
+7360965712     :4730
+0918076383     :4740
+2716641627     :4750
+4888800786     :4760
+9256029022     :4770
+8472104031     :4780
+7211860820     :4790
+4190004229     :4800
+6617119637     :4810
+7921337575     :4820
+1149595015     :4830
+6604963186     :4840
+2947265473     :4850
+6425230817     :4860
+7036751590     :4870
+6735023507     :4880
+2835405670     :4890
+4038674351     :4900
+3622224771     :4910
+5891504953     :4920
+0984448933     :4930
+3096340878     :4940
+0769325993     :4950
+9780541934     :4960
+1447377441     :4970
+8426312986     :4980
+0809988868     :4990
+7413260472     :5000
+1569516239     :5010
+6586457302     :5020
+1631598193     :5030
+1951673538     :5040
+1297416772     :5050
+9478672422     :5060
+9246543668     :5070
+0098067692     :5080
+8238280689     :5090
+9640048243     :5100
+5403701416     :5110
+3149658979     :5120
+4092432378     :5130
+9690706977     :5140
+9422362508     :5150
+2216889573     :5160
+8379862300     :5170
+1593776471     :5180
+6512289357     :5190
+8601588161     :5200
+7557829735     :5210
+2334460428     :5220
+1512627203     :5230
+7343146531     :5240
+9777741603     :5250
+1990665541     :5260
+8763979293     :5270
+3441952154     :5280
+1341899485     :5290
+4447345673     :5300
+8316249934     :5310
+1913181480     :5320
+9277771038     :5330
+6387734317     :5340
+7207545654     :5350
+5322077709     :5360
+2120190516     :5370
+6096280490     :5380
+9263601975     :5390
+9882816133     :5400
+2316663652     :5410
+8619326686     :5420
+3360627356     :5430
+7630354477     :5440
+6280350450     :5450
+7772355471     :5460
+0585954870     :5470
+2790814356     :5480
+2401451718     :5490
+0624643626     :5500
+7945612753     :5510
+1813407833     :5520
+0336254232     :5530
+7839449753     :5540
+8243720583     :5550
+5311477119     :5560
+9260638133     :5570
+4677687969     :5580
+5970309833     :5590
+9130771098     :5600
+7040859133     :5610
+7464144282     :5620
+2772634659     :5630
+4704745878     :5640
+4778720192     :5650
+7715280731     :5660
+7679077071     :5670
+5721344473     :5680
+0605700733     :5690
+4924369311     :5700
+3835049316     :5710
+3128404251     :5720
+2192565179     :5730
+8069411352     :5740
+8013147013     :5750
+0478164378     :5760
+8518529092     :5770
+8545201165     :5780
+8393419656     :5790
+2134914341     :5800
+5956258658     :5810
+6557055269     :5820
+0496520985     :5830
+8033850722     :5840
+4264829397     :5850
+2858478316     :5860
+3057777560     :5870
+6888764462     :5880
+4824685792     :5890
+6039535277     :5900
+3480304802     :5910
+9005876075     :5920
+8251047470     :5930
+9164396136     :5940
+2676044925     :5950
+6274204208     :5960
+3208566119     :5970
+0625454337     :5980
+2131535958     :5990
+4506877246     :6000
+0290161876     :6010
+6795240616     :6020
+3425225771     :6030
+9542916299     :6040
+1930645537     :6050
+7991403734     :6060
+0432875262     :6070
+8889639958     :6080
+7947572917     :6090
+4642635745     :6100
+5254079091     :6110
+4513571113     :6120
+6941091193     :6130
+9325191076     :6140
+0208252026     :6150
+1879853188     :6160
+7705842972     :6170
+5916778131     :6180
+4969900901     :6190
+9211697173     :6200
+7278476847     :6210
+2686084900     :6220
+3377024242     :6230
+9165130050     :6240
+0516832336     :6250
+4350389517     :6260
+0298939223     :6270
+3451722013     :6280
+8128069650     :6290
+1178440874     :6300
+5196012122     :6310
+8599371623     :6320
+1301711444     :6330
+8464090389     :6340
+0644954440     :6350
+0619869075     :6360
+4851602632     :6370
+7505298349     :6380
+1874078668     :6390
+0881833851     :6400
+0228334508     :6410
+5048608250     :6420
+3930213321     :6430
+9715518430     :6440
+6354550076     :6450
+6828294930     :6460
+4137765527     :6470
+9397517546     :6480
+1395398468     :6490
+3393638304     :6500
+7461199665     :6510
+3858153842     :6520
+0568533862     :6530
+1867252334     :6540
+0283087112     :6550
+3282789212     :6560
+5077126294     :6570
+6322956398     :6580
+9898935821     :6590
+1674562701     :6600
+0218356462     :6610
+2013496715     :6620
+1881909730     :6630
+3811980049     :6640
+7340723961     :6650
+0368540664     :6660
+3193950979     :6670
+0190699639     :6680
+5524530054     :6690
+5058068550     :6700
+1956730229     :6710
+2191393391     :6720
+8568034490     :6730
+3982059551     :6740
+0022635353     :6750
+6192041994     :6760
+7455385938     :6770
+1023439554     :6780
+4959778377     :6790
+9023742161     :6800
+7271117236     :6810
+4343543947     :6820
+8221818528     :6830
+6240851400     :6840
+6660443325     :6850
+8885698670     :6860
+5431547069     :6870
+6574745855     :6880
+0332323342     :6890
+1073015459     :6900
+4051655379     :6910
+0686627333     :6920
+7995851156     :6930
+2578432298     :6940
+8273723198     :6950
+9875714159     :6960
+5781119635     :6970
+8330059408     :6980
+7306812160     :6990
+2876496286     :7000
+7446047746     :7010
+4915995054     :7020
+9737425626     :7030
+9010490377     :7040
+8198683593     :7050
+8146574126     :7060
+8049256487     :7070
+9855614537     :7080
+2347867330     :7090
+3904688383     :7100
+4363465537     :7110
+9498641927     :7120
+0563872931     :7130
+7487233208     :7140
+3760112302     :7150
+9911367938     :7160
+6270894387     :7170
+9936201629     :7180
+5154133714     :7190
+2489283072     :7200
+2012690147     :7210
+5466847653     :7220
+5761647737     :7230
+9467520049     :7240
+0757155527     :7250
+8196536213     :7260
+2392640616     :7270
+0136358155     :7280
+9074220202     :7290
+0318727760     :7300
+5277219005     :7310
+5614842555     :7320
+1879253034     :7330
+3513984425     :7340
+3223415762     :7350
+3361064250     :7360
+6390497500     :7370
+8656271095     :7380
+3591946589     :7390
+7514131034     :7400
+8227693062     :7410
+4743536325     :7420
+6916078154     :7430
+7818115284     :7440
+3667957061     :7450
+1086153315     :7460
+0445212747     :7470
+3924544945     :7480
+4236828860     :7490
+6134084148     :7500
+6377670096     :7510
+1207151249     :7520
+1404302725     :7530
+3860764823     :7540
+6341433462     :7550
+3518975766     :7560
+4521641376     :7570
+7969031495     :7580
+0191085759     :7590
+8442391986     :7600
+2916421939     :7610
+9490723623     :7620
+4646844117     :7630
+3940326591     :7640
+8404437805     :7650
+1333894525     :7660
+7423995082     :7670
+9659122850     :7680
+8555821572     :7690
+5031071257     :7700
+0126683024     :7710
+0292952522     :7720
+0118726767     :7730
+5622041542     :7740
+0516184163     :7750
+4847565169     :7760
+9981161410     :7770
+1002996078     :7780
+3869092916     :7790
+0302884002     :7800
+6910414079     :7810
+2886215078     :7820
+4245167090     :7830
+8700069928     :7840
+2120660418     :7850
+3718065355     :7860
+6725253256     :7870
+7532861291     :7880
+0424877618     :7890
+2582976515     :7900
+7959847035     :7910
+6222629348     :7920
+6003415872     :7930
+2980534989     :7940
+6502262917     :7950
+4878820273     :7960
+4209222245     :7970
+3398562647     :7980
+6691490556     :7990
+2842503912     :8000
+7577102840     :8010
+2799806636     :8020
+5825488926     :8030
+4880254566     :8040
+1017296702     :8050
+6640765590     :8060
+4290994568     :8070
+1506526530     :8080
+5371829412     :8090
+7033693137     :8100
+8517860904     :8110
+0708667114     :8120
+9655834343     :8130
+4769338578     :8140
+1711386455     :8150
+8736781230     :8160
+1458768712     :8170
+6603489139     :8180
+0956200993     :8190
+9361031029     :8200
+1616152881     :8210
+3843790990     :8220
+4231747336     :8230
+3948045759     :8240
+3149314052     :8250
+9763475748     :8260
+1193567091     :8270
+1013775172     :8280
+1008031559     :8290
+0248530906     :8300
+6920376719     :8310
+2203322909     :8320
+4334676851     :8330
+4221447737     :8340
+9393751703     :8350
+4436619910     :8360
+4033751117     :8370
+3547191855     :8380
+0464490263     :8390
+6551281622     :8400
+8824462575     :8410
+9163330391     :8420
+0722538374     :8430
+2182140883     :8440
+5086573917     :8450
+7150968288     :8460
+7478265699     :8470
+5995744906     :8480
+6175834413     :8490
+7522397096     :8500
+8340800535     :8510
+5984917541     :8520
+7381883999     :8530
+4469748676     :8540
+2655165827     :8550
+6584835884     :8560
+5314277568     :8570
+7900290951     :8580
+7028352971     :8590
+6344562129     :8600
+6404352311     :8610
+7600665101     :8620
+2412006597     :8630
+5585127617     :8640
+8583829204     :8650
+1974844236     :8660
+0800719304     :8670
+5761893234     :8680
+9229279650     :8690
+1987518721     :8700
+2726750798     :8710
+1255470958     :8720
+9045563579     :8730
+2122103334     :8740
+6697499235     :8750
+6302549478     :8760
+0249011419     :8770
+5212382815     :8780
+3091140790     :8790
+7386025152     :8800
+2742995818     :8810
+0724716259     :8820
+1668545133     :8830
+3123948049     :8840
+4707911915     :8850
+3267343028     :8860
+2441860414     :8870
+2636395480     :8880
+0044800267     :8890
+0496248201     :8900
+7928964766     :8910
+9758318327     :8920
+1314251702     :8930
+9692348896     :8940
+2766844032     :8950
+3260927524     :8960
+9603579964     :8970
+6925650493     :8980
+6818360900     :8990
+3238092934     :9000
+5958897069     :9010
+5365349406     :9020
+0340216654     :9030
+4375589004     :9040
+5632882250     :9050
+5452556405     :9060
+6448246515     :9070
+1875471196     :9080
+2184439658     :9090
+2533754388     :9100
+5690941130     :9110
+3150952617     :9120
+9378002974     :9130
+1207665147     :9140
+9394259029     :9150
+8969594699     :9160
+5565761218     :9170
+6561967337     :9180
+8623625612     :9190
+5216320862     :9200
+8692221032     :9210
+7488921865     :9220
+4364802296     :9230
+7807057656     :9240
+1514463204     :9250
+6927906821     :9260
+2073883778     :9270
+1423356282     :9280
+3608963208     :9290
+0682224680     :9300
+1224826117     :9310
+7185896381     :9320
+4091839036     :9330
+7367222088     :9340
+8321513755     :9350
+6003727983     :9360
+9400415297     :9370
+0028783076     :9380
+6709444745     :9390
+6013455641     :9400
+7254370906     :9410
+9793961225     :9420
+7142989467     :9430
+1543578468     :9440
+7886144458     :9450
+1231459357     :9460
+1984922528     :9470
+4716050492     :9480
+2124247014     :9490
+1214780573     :9500
+4551050080     :9510
+1908699603     :9520
+3027634787     :9530
+0810817545     :9540
+0119307141     :9550
+2233908663     :9560
+9383395294     :9570
+2578690507     :9580
+6431006383     :9590
+5198343893     :9600
+4159613185     :9610
+4347546495     :9620
+5697810382     :9630
+9309716465     :9640
+1438407007     :9650
+0736041123     :9660
+7359984345     :9670
+2251610507     :9680
+0270562352     :9690
+6601276484     :9700
+8308407611     :9710
+8301305279     :9720
+3205427462     :9730
+8654036036     :9740
+7453286510     :9750
+5706587488     :9760
+2256981579     :9770
+3678976697     :9780
+4220575059     :9790
+6834408697     :9800
+3502014102     :9810
+0672358502     :9820
+0072452256     :9830
+3265134105     :9840
+5924019027     :9850
+4216248439     :9860
+1403599895     :9870
+3539459094     :9880
+4070469120     :9890
+9140938700     :9900
+1264560016     :9910
+2374288021     :9920
+0927645793     :9930
+1065792295     :9940
+5249887275     :9950
+8461012648     :9960
+3699989225     :9970
+6959688159     :9980
+2056001016     :9990
+5525637567     :10000