Apple Microarchitecture Research by Dougall Johnson

M1/A14 P-core (Firestorm): Overview | Base Instructions | SIMD and FP Instructions
M1/A14 E-core (Icestorm):  Overview | Base Instructions | SIMD and FP Instructions

LDP (post-index, 32-bit)

Test 1: uops

Code:

  ldp w0, w1, [x6], #8
  mov x0, 1
  mov x1, 2
  mov x8, 0

(no loop instructions)

1000 unrolls and 1 iteration

Retires: 3.000

Issues: 2.000

Integer unit issues: 1.000

Load/store unit issues: 1.000

SIMD/FP unit issues: 0.000

retire uop (01)cycle (02)03mmu table walk data (08)l2 tlb miss data (0b)0e0f191e2022243a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)606d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst int load (95)inst ldst (9b)9dl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5b6bbl1d cache miss ld nonspec (bf)c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaeb? ldst retires (ed)? int retires (ef)f5f6f7f8fd
30051054800000758310341025027620252000100010001000100052844455910104010405743648200010002000100010001040381110011000100001023006110334032122910515972864073116111037100044271000200010411041104110411041
30041040700000594700201028024415252000100010001000100052840455920104010405743648200010002000100010001040381110011000100001012120561034902961710303252456073116111037100030281000200010411044104110411041
30041040800000624810201025102711202520001000100010001000528334559201040104057436482000100020001000100010403811100110001000010161254010323115121910584952148073116111037100031241000200010411041104110411041
30041040710000724110201025034816252000100010001000100052828455920104010405743648200010002000100010001040381110011000100001024005110282122123510573551364073116111037100030311000200010441041104111091041
30041040801000680002010250385192520001000100010001000528474559101040104057436482000100020001000100010403811100110001000010000048102000002710154461556073116111020100030311000200010441041104110411041
300410408000008035102010281767112025200010001000100010005283645592010431040574365120001000200010001000104038111001100010000101700651023000054610264742572073116111037100035311000200010411041104110411041
3004104380010062550020102893661525200010001000100010005284045592010431040574365120001000200010001000104038111001100010000101600431027101362010343452648073116111037100036271000200010441041104410411041
3004104080100061400022010251434826252000100010001000100052837455921104010405743648200010002000100010001040381110011000100001021005710261301301510304073156073116111037100041281000200010411044104110411041
300410408000005442104010250341116252000100010001000100052830455920104010435743648200010002000100010001040381110011000100001012006410284015182210323552164073116111037100038281000200010411041112310411044
300410408000004329102010251036101325200010001000100010005283145592110401055574365720001000200010001000104338111001100010000100000561027111302910544152156073116111037100036271000200010411041104110411041

Test 2: Latency 1->3 (with chain penalty)

Chain cycles: 3

Code:

  ldp w0, w1, [x6], #8
  eor x8, x8, x0
  eor x8, x8, x0
  add x6, x6, x8
  mov x0, 1
  mov x1, 2
  mov x8, 0

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 3 chain cycles): 4.2198

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk instruction (07)mmu table walk data (08)09l2 tlb miss instruction (0a)l2 tlb miss data (0b)0e0f1e2022293a3e3f4043494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
602097257254211001000463798168841287217079544171988255102040865101734010010000620411275482904969199723017201164546036458750100402002000070200100007209835114020110099100100003010010000100108851147485106752595878114551100211751123109002612657537193340752971102587310000501007217972213721027224072309
602047213654021001001449823154439672078805452719622550995407961017140100100006246052759210049692637214872162642010364785501004020020000702001000072242351140201100991001000030100100001001091411424891072326498987861109941304812310700261255734721634064411421118107310000501007215172290721097200972044
602047217554111001000455841171221207206180550171808255102040808101584010010000622445276328704968974723137236964373036457450100402002000070200100007213435114020110099100100003010010000100109291162518106652386938746710935124511091330026123574572146406561046100099910000501007235072136722477241372313
602047226853911001000486828168021127213480352272020255095540804101714010010000621203275576104968958722057240664138036465250100402002000070200100007214735114020110099100100003010010000100109221144505106842696877445510971125491071030026125575572185405921123116492610000501007216072152724007225872217
602047219955911001110461834174431607193481647171746255093540732101694010010000621428275477214969258721677203164301036462550100402002000070200100007244035114020110099100100003010010000100108612169510106742916887506010968124461161030026125574471992406769631057102710000501007200772170720927212672113
60204723725401100100053480817283108720827794907185525509804081610164401001000062118527557031496899072235721466433103646055010040200200007020010000720833511402011009910010000301001000010010912215749710676265786444621098611550124203002612557647205740648995100799910000501007221472214721907219372003
602047200054021001000495816170441327205681446571941255101040776101774010010000622913276555314969361721697244764477036465450100403962000070200100007231835114020110099100100003010010000100109143157503107072867943405210951128511172030026125575372169406409521066113710000501007212772067721957213872170
6020472301541210010005287991680310472204765514717922550995408361018340100100006211492756698149689817229272229642040364510501004020020000702001000072393351140201100991001000030100100001001091561585021068425699241447210960124491182250026124575572140407041134966101410000501007235172283721967239972241
602047219654021201000483817171231127239979745371998255099540844101674010010000622922274889514968987723937222164444036472550100402002000070200100007230335114020110099100100003010010000100108942152516106962667875806310961118491292070026125576672068407321104983102110000501007200872158721937226372078
602047204855921001000469810168831447244781844371955255097040856101644010010000620537275885404968904721317220664043036459950100402002000070200100007229135114020110099100100003010010000100108924145496106752797878726410964135481261070026125575672176407121031106398910000501007228772256722127232772278

1000 unrolls and 10 iterations

Result (median cycles for code, minus 3 chain cycles): 4.2237

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f18191e1f2022293a3e3f4043494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch cond mispred nonspec (c5)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
60029721475411000000058108071720296721578305377205725509704078610192400101000062389527655981496914272229722886457103646935001040020200007002010000722213511400211091010000300101000001010911214749410747263129344890109521295613013800252015611721984072094893096010000500107214472206723117214372285
60024722985411000000059708361720214872365820529719432551018407261018740010101656336412765149149690647214372237643370364547500104002020334700201000072102351140021109101000030010100000101090111605031069127812924507510986129531341070025201561172183407321000101690810000500107233572267723497233472249
600247224854010010000622080217122112722188065110719872550925407341018240010100006217712759874149692437222472214644310364765500104002020000700201000072446351140021109101000030010100000101092311605001069927913960489210976129531311013002520156117221840764900928100010000500107218072291723137212172143
600247219754111000000680080914482128723398195787190925509554070610191400101000062238327681741496912372196723026446003645865001040020200007002010000722093511400211091010000300101000001010924114448710716257108924484110081295513610300252015621717944073694098498610000500107224072196723137227272119
60024720755411010000056808211736010872226817537719912550985407421019540010100006229862757545149692397216772189644820364534500104002020000700201000072208351140021109101000030010100000101091611595281070327111902501893109831315313510700252015611719434072494098098210000500107229072343721647227972178
60024723685411000000056708151720110472189805545719622550865407501018540010100006230852758699149691567232972194643680364764500104002020000700201000072167351140021109101000030010100000101095611505121071228198957894109731195313213700252015611720884076495297898410000500107226772105721737217072233
60024722225411000100059909001768114472209816548720482550945407741018540010100006228962759892049693797208372180644980364698500104002020000700201000072315351140021109101000030010100000101092011495041071327411902487710966133561421310002520156117196140800914950103210000500107228672143721857223372230
6002472293540110100005920831272011007222980555772122255096040702101744001010000624111276331714969175720417210464527036483350010400202000070020100007247235114002110910100003001010000010109371154533107012581193278861101613454134137002520156117209040768980107299010000500107218972213721517222672003
600247226954210011000654085217440136723678125287198925509854069810181400101000062263527607631496911172208721316434103646945001040020200007002010000722383511400211091010000300101000001010921116951710717275139287694109991455312600400252015611719704071693897294010000500107233272158722927213972143
600247197954200001000579080817360116722288126097183325509154077410166400101000062018727591431496911572234723306432603646905001040020200007002010000722653511400211091010000300101000001010879013250410701272119377682109781275314100710252015611721504073694294695610000500107236172294721487220972290

Test 3: Latency 2->3 (with chain penalty)

Chain cycles: 3

Code:

  ldp w0, w1, [x6], #8
  eor x8, x8, x1
  eor x8, x8, x1
  add x6, x6, x8
  mov x0, 1
  mov x1, 2
  mov x8, 0

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code, minus 3 chain cycles): 4.1915

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0e0f1e2022293a3e3f4043494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)696a6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
6020972148539200004488241736114871931795327167125507254060810141401001000062028527451764968864720377188864137036430050100402002000070200100007181035114020110099100100003010010000100109253147521106632621390616630109011386135307261025711717994052810561021109710000501007171071886718847213471869
6020471833538100104488181680110071668803327165325507654061610130401001000061873727528064968684719337180564003036448450100402002000070200100007191635114020110099100100003010010000100108771163492106312791190434197110929137512520326101571171952405081041102296510000501007186571777718577197571957
602047191853833000446790172031447184281032716922550775406561012240100100006182242744865496879571797721996419703643505010040200200007020010000718153511402011009910010000301001000010010915315453510666255129087632109081235115343261015711716064054010801189110910000501007181271987718987195071904
602047202453930000428818170431167169480322716692550725406001012640100100006189622742137496899972004719736409203643645010040200200007020010000718673511402011009910010000301001000010010906314550010649256148849438108911256124102261011711718844049210271051104410000501007188571725720277189171987
6020471759540300004478131704213671774798237146925507904061610128401001000061836827508674968802718187183564117036426350100402002000070200100007185735114020110099100100003010010000100109293118512106252581391478351090412151303052610157117150640472956104296810000501007192771909719207177371675
60204718405393110042983716883148718448033371575255083040584101284010010000619979274385449689617198372103640710364381501004020020000702001000071959351140201100991001000030100100001001091331454921065227912916742310948125513230326101571171598404841007102797510000501007182871967718837199471975
602047197253830000474802171221127189880623716092550755406561013040100100006195562751100496899471972719856413003643575010040200200007020010000720503511402011009910010000301001000010010889316252510645267149098029109211226128303261015711715194050811501103101010000501007198671859717797195671889
602047192854030300500821168031367201378732714762550785406521013440100100006203572745747496887271830719456423903644395010040200200007020010000719883511402011009910010000301001000010010906413348810630256138817428109001225119339261015711716954054011421070101910000501007186172032718567186971766
602047182353944400451827172031527185679122717742550700406241014440100100006191692745929496899871949720166413003643595010040200200007020010000720013511402011009910010000301001000010010929314850610643254119528432109261235134305261015711717514047210431090106010000501007195872039719707194171955
602047202453830000459823168841207187279222716162550760406201012540100100006189532750806496884372073716976419303644815010040200200007020010000719013511402011009910010000301001000010010904412653210640275158867830108961287132435261015711718434059610591076115410000501007196172018718577177371876

1000 unrolls and 10 iterations

Result (median cycles for code, minus 3 chain cycles): 4.1733

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0f1e1f2022293a3e3f4043494d51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)60696a6d6emap stall dispatch (70)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch cond mispred nonspec (c5)cfd0d5map dispatch bubble (d6)d9ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
600297185553810011464082723921212717168055271586255061040538101734001010000618302274468909868976716917188664031364134500104002020000700201000071742351140021109101000030010100001010893116051710668276129348046109151277130133025200164011717244051290092283610000500107176871739714967176871895
60024716655371001050908292544128871536803637156725506854056210132400101000061709627460890496874371812718406409636405150010400202000070020100007167135114002110910100003001010000101091111434921066726110913152241093010881261014025200164012715374053688283093210000500107164471764718247176871797
60024718015371001051708762568127671758818637156525507004051810132403021000061749227431110496874771626717186401436416550010400202000070020100007178635114002110910100003001010000101090521325301067126813923664910943135101321112025200264011716254050086885886410000500107169371711717417168471855
6002471729537100005120837249612807174080463715202550650405341012240010100006170692739732098689857154771677639913643115001040020200007002010000716413511400211091010000300101000010109221151530106522771492476401094813061281511025200164011715744048489287094010000500107169371853715307184171647
6002471850538101005060845249612287171081261715252550610405341013340010100006168622735554049687737192771775640063641675001040020200007002010000718943511400211091010000300101000010108901152519106502701291513037109041138123137025200164011716964051289481088610000500107183471834716947168371652
6002471587537101005320830248012727162779574716802550725405061013040010100006171502744457049686527186171927639733640905001040020200007002010000716843511400211091010000300101000010108971155517106412721489212249109031215141125110252001640127145740516920102294210000500107187971803718097168471635
60024717245371100047108492536128071903809637171525506404053410121400101000061761827441270496854471864716026395036419850010400202000070020100007193235114002110910100003001010000101090811555151067325313902104361092613671401311025200164011715514052497690684210000500107170271799717377180871838
60024716815371001053508302512123271675805577166525506754054610126400101000061828427429780496884971797716696390536426750384403542000070020100007178435114002110910100003001010000101096711515441065026713904134148109131237128117025200164011716104052490297890010000500107162371636718397181671778
6002471634537111005110832252812167160982163715012550580405461013240010100006188782746413049687217181471724640243642025001040020200007002010000718883511400211091010000300101000010109121151500106752559932134441094911871281617025200164011714624054486291685410000500107177771759719007176771895
60024716545381000047008372504138471731820837156425506754053010128400101000061750127390290496858871805716026391536412450010400202000070020100007159635114002110910100003001010000101091011535021064926999378443109301334123108025200164011716054053692292091010000500107180671825717417166971759

Test 4: throughput

Count: 8

Code:

  ldp w0, w1, [x6], #8
  ldp w0, w1, [x7], #8
  ldp w0, w1, [x8], #8
  ldp w0, w1, [x9], #8
  ldp w0, w1, [x10], #8
  ldp w0, w1, [x11], #8
  ldp w0, w1, [x12], #8
  ldp w0, w1, [x13], #8
  mov x7, x6
  mov x8, x6
  mov x9, x6
  mov x10, x6
  mov x11, x6
  mov x12, x6
  mov x13, x6

(fused SUBS/B.cc loop)

100 unrolls and 100 iterations

Result (median cycles for code divided by count): 0.3963

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f1e2022293a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)6067696a6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)92inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5b6bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
240209319732373011006949780155211092317577853822060197215312516012080121800008010080000400577684404018492861431816316931477893158516010080200160000802008000031718381180201100993710080000100800000100809426536152918578163012869385092859227721284841490863035110116113162037800235355267800001601003155531605318603168831721
2402043179423840000074737831704931163169178637520672007149525160125801168000080100800004005766899390234928529320063191015651073177716010080200160000802008000031584381180201100993110080000100800000100809494839353798564369311876425654859848991255052525047265110116113160638800216004897800001601003181431607316123163031580
24020431612237300300680980716801061083166978035120671966156625160124801218000080100800004005806728690314928697317203175316271473170516010080200160000802008000031713381180201100994510080000100800000100809194737057208547565312927305164860527231315139532947065110116113198123800184715714800001601003182531503315643160831688
2402043165323740110074897811720901043166774033118881780155725160118801258000080100800004005726870840184928727315743164214211053170116010080200160000802008000031760381180202100994710080000100800000100809534732755008564969517855385368863938151265403487347315110116113168421800245005254800001601003165831600317513170831712
240204316752363000007075833172098148315997933551868178215472516012180131800008010080000400587687325125492870531553317291564823172516010080200160000802008000031769381180201100993410080000100800000100809556438452068569765013876305345865107461365582554061355110116113173635801386385716800001601003162031721317733178231507
2402043163023730100085517971704102883160076636419611913166225160129801208000080100800004005736803960254928553315243171515131163168216010080200160000802008000031710381180201100993210080000100800000100809133237860488551064113860425478859467141415263476734035110116113177623800194955301800001601003164131573318283159631657
240204317802382002107003793170493128317427543372183205915342516012280118800008010080000400552689435028492858931690317021354943169616010080200160000802008000031583381180201100993310080000100800000100809374837260088556468117889484937856427811285432538848055110116113175925800256275424800001601003154331661316773164531701
2402043172323830001061607781672102156317998173551906188916882516011380123800008010080000400586671053022492874131652318181602923167816010080200160000802008000031691381180201100993510080000100800000100809334833158498464965611854365469857107501185128549349055110116113173528800275275830800001601003173031857316053183231543
2402043167723730000068298081696107923174378731517841961156725160122801198000080100800004005866833110194928691317103167615731613147516010080200160000802008000031672381180201100994310080000100800000100809626338155778485963614938764964861768061345369473665335110116113179326800175395093800001601003179831691315663170031872
24020431640238440000728881417281009231652792365210117741538251601208013180000801008000040058568922701249286493177031890159651319191601008020016000080200800003172738218020110099401008000010080000010080941643885823853596849902345545856167291295960490464065110116113161429800265705232800001601003155331796315703181831758

1000 unrolls and 10 iterations

Result (median cycles for code divided by count): 0.3973

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0e0f1e1f2022293a3e3f404346494f51schedule uop (52)schedule int uop (53)schedule ldst uop (55)dispatch int uop (56)dispatch ldst uop (58)int uops in schedulers (59)simd uops in schedulers (5a)6067696a6d6emap stall dispatch (70)int prf full (71)map rewind (75)map stall (76)dispatch uop (78)map int uop (7c)map ldst uop (7d)map int uop inputs (7f)map ldst uop inputs (80)8283flush restart other nonspec (84)85inst all (8c)inst branch (8d)inst branch taken (90)92inst branch cond (94)inst int load (95)inst int alu (97)inst ldst (9b)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss st (a2)l1d cache miss ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9abacafb5b6bbl1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3cfd5map dispatch bubble (d6)d9ddfetch restart (de)e0e7? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
24002931902237110008474085917208215632006783199218632111171025160029800368000080010800004001067577730264928802316053197615881103198116001080020160000800208000031620381180021109610800001080000010809323441354968652676619888486439870447671176879404616855020716123631838308002350343314800001600103156831816317903161031449
240024317622382100086700773162494963170177620751986234013562516004080039800008001080000400135730654022492862431634317081519162317451600108002016000080020800003174138118002110991080000108000001080926183915715866367381587514267158747777112566475314164450206168323174033800285114747800001600103185531854318413170431954
240024318182371000088120816172099356317598132013232025971619251600298003180000800108000040010673611303049287503167731815163017831561160010800201600008002080000317913811800211097108000010800000108092318364565086530699198881306528872486811166816490016635020316102331994158003361242721800001600103165231680319033166031663
24002431890237111009491079317209312831767803190720352383173225160039800368000080010800004001237224210314928919317473167115471393209116001080020160000800208000031513381180021109910800001080000010808873336756708641271711919286811874016851286474510934355020216102231889348002844142622800001600103180031738316353159631911
24002431784239212007822080617369315231669803192120042276171725160030800328000080010800004001417456650244928646319163177017511583165416001080020160000800208000031555381180021109111080000108000001080916344315609867667432092632729287232700144654955213234502021683231696218002348650412800001600103182531798318673183831700
2400243164623722200880308141632861563150980819962063240117162516002980034800008001080000400142718843027492876331782316711408143317051600108002016000080020800003174838118002110991080000108000001080921333836038873667041791032683287132755122655349143204502021682631843238002051649510800001600103166231786317273188031660
2400243189123922200889308431728961523193677521532046222814672516003280048800008001080000400113731718034492889831845319441575963177216001080020160000800208000031779381180021109131080000108000001080940494116133869047041293728727187762762133704656674907502021682231876268003250246818800001600103170131814318793176131921
24002431666239221008449081417048611631496786240721372198164325160039800398000080010800004001487817970274928730318723166815491013161016001080020160000800208000031660381180021109111080000108000011080959344545867865537341588232659488134759117647453143209502031687331824318002448747416800001600103161232002317363190131869
2400243147725022200800308281712831083176783220882089216114242516003680035800008001080134400167776232118492855131712317831379102317631600108002016000080020800003176038118002110971080000108000001080933314016164866936732390740715087881746127639851673234502021610323211023800415355668800001600103165431913318203194631725
240024317622382200085610813172090108317237942164197321891567251600508002880000800108000040011172323702949287513183431756145217531806160010800201600008002080000318013811800211091610800001080000010809383340252668696972514903907381882177401296182485431355020616102231890388002853356122800001600103166631981316903178131891