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, 64-bit)

Test 1: uops

Code:

  ldp x0, x1, [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)1e1f2022293a3e3f404346494f51schedule 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)l1d 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)a9abacafldst x64 uop (b1)b5b6bbl1d cache miss ld nonspec (bf)c2c3cfd5map dispatch bubble (d6)ddfetch restart (de)e0e7? int output thing (e9)eaeb? ldst retires (ed)? int retires (ef)f5f6f7f8fd
30051060800216026004010252045934252000100010001000100052827455920104010575743648200010002000100010001040381110011000100010320189103980366411027125459407700732161110370100017321000200010411041104110411041
300410408001040430020102502331925200010001000100010005283145592010401040574364820001000200010001000104038111001100010001000009510380100441035125458446000731161110180100017201000200010461046104610461046
3004104080064017101010259388222520001000100010001000528144558901040104557436482000100020001000100010403811100110001000102701671038612910481060125455356000731161110371100027271000200010411041104110411041
300410408008201910712102526344202520001000100010001000528144559501040104557436482000100020001000100010403811100110001000102400661040702110391047125386305100731161110210100018331000200010411041104110411041
3004104080010702800201025103851725200010001000100010005280645590110401040574365320001000200010001000104038111001100010001013028510430100431038125566346000731161110370100027271000200010411041104110411041
300410408001270131050102503751925200010001000100010005284345590110401040574364820001000200010001000104038111001100010001013015910491011510521041125457525100731161110370100033341000200010411041104110411041
300410407008802110501025134841725200010001000100010005283945591110401040574364820001000200010001000104038111001100010001000008610360000371034125457295900731161110370100023291000200010411041104110411041
30041040700710230020102505562825200010001000100010005281945592010451040574364820001000200010001000104038111001100010001000007510370100401037125399336800731161110370100027401000200010411041104110411041
300410408011450320020102503442325200010001000100010005281645586110401040575364820001000200010001000104038111001100010001000006510330000341026125395276800731161110370100033221000200010411041104110411041
300410407001800200050103006763325200010001000100010005278145591110401040574364820001000200010001000104538111001100010001017027510591302810391059125337354331731161110370100033281000200010411041104110411041

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

Chain cycles: 3

Code:

  ldp x0, x1, [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.8522

retire uop (01)cycle (02)03l1d tlb fill (05)0e0f1e2022243a3f404346494d51schedule 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 cache miss ld (a3)ld unit uop (a6)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)c2cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
60209840725980003131010475784657202783732552815421561063240110100076750292980669149746817768677377704860671382501174023220016702561000877934351140201100991001000030100100001100100175131002019912100191250465810450600261025811780874202451414969488410000501007764477782781467828678400
6020478588586100339910488778737201789922552650421321050340100100006696302994044049747257869678399705310370504501004020020000702001000078429351140201100991001000030100100000100100145531002110913100191250453610451000261015621785284225953845414533010000501007915579031785707799278895
60204784855880003391010481786699200783922552600423671050840100100006845513005200049760917808578262706000370898501004020020000702001000078720351140201100991001000030100100000100100185411001910916100201250454010451600261015711777534220853525145549810000501007860379941798647909678008
60204779865870003358104847780011200783242552655421841050640100100006805033035128049752717859878487699670370429503044020020100702001000078823351140201100991001000030100100000100100175581001918712100171250449310449500261015811784494234055935505533410000501007839078405783777840278238
60204785225870003241010511788818200774812552735422161052740100100006769542984000049752897908078674709850371882501004020020000702001000078180351140201100991001000030100100000100100185391002013719100191250454010455100261015711786254214456125274513710000501007799577941781047822478092
60204779635840003229104687871310200783592552695421681052440100100006740722987749049753337837078898704020371063501004020020000702001000078304351140201100991001000030100100000100100174871002014910100191250454110450500261015801781594206451275026530610000501007846978230788997817878587
60204783575830003031010511785809200783932552715421321051040100100006784222999176049755387892678498707110370528501004020020000702001000081243351140201100991001000030100100000100100155491002016916100201250453610453100261015611786794202052865286547910000501007822179461788117876479367
60204789975890003129105137833111200783372552755423001054740100100006808563002914149761287854778744708900370980501004020020000702001000078797351140201100991001000030100100000100100175261001712813100171250449810455801261015711785744223655005339540010000501007916078922787897903679021
602047913559100031771051078758102008045925528104212810497401001000068590630000830497546579456783117081503712125010040200200007020010000780173511402011009910010000301001000001001001753310017121013100171250450110450800261015811780714211652705346522610000501007855578483792407885079024
60204794235950003087105097875611200782922552690422041051640100100006778003027982049753757796678302705100370720501004020020000702001000078113351140201100991001000030100100000100100165371001816913100171250451310450700261015811783694213651405503500210000501007852977918780637788778411

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0e0f18191e1f202223243a3f404346494d51schedule 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)9d9fl1d tlb access (a0)l1d tlb miss (a1)l1d cache miss ld (a3)ld unit uop (a6)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2cdcfd5map dispatch bubble (d6)d9ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
6002984692599111110001310710048878560890978394255248541950106194001010000676074300083404975664781657818970501371540500104002020000700201000078343351140021109101000030010100000101001914891002910102810026125046161745321102520364225792214197655275634598710000500107842678463787697932678559
600247884958611000000163012200501795841591778097255248542002105164001010000677719300960614976089787287864370709447126250010400202000070020100007869035114002110910100003001010000010100172506100357102010026125045021744841002520364234780954204457975824542110000500108018478873786737848578721
6002478770594000000001570610048878773810067849825525854223010507400101000067862629949230497638378517784967067437102750010400202000070020100007853035114002110910100003001010000010100150513100221562510021125045181645000002520264252782994198053535323557710000500107945478800786977924578541
60024782345880000000015405100478782771090779257255269042026104844001010000677575303677414975442781777829470940370977500104002020000700201000078501351140021109101000030010100000101001705311002615102610027125044731644590002520464223791624206459635795551710000500107874678701786917844178287
6002478235589000000001410101004657900778067845825524954196210546400101000068316430152471497591278507782107040737162050010400202000070020100007866135114002110910100003001010000010100180499100271092210025125044881645240002520364222794054205253415206601010000500107836479593790587868178728
6002478721591000000001420810050478786810077882425527004221810513400101000068206630228521497560079351793157073937114750010400202000070020100007907635114002110910100003001010000010100150512100261272510022125045081745220002520364244787174201655005662531010000500107906278425788557867978653
6002479470590000000001640610046278326111004784502552425420181051440010100006761533002523149759747872178752714943710375001040020200007002010000796933511400211091010000300101000001010017052510024872210023125044521544830002520264232781784213253855237535410000500107843878190785797929978751
60024783005930000000015801010048879766107067809425526204203010523400101000067720830052520497601779324785937163337062350010405202000070020100007833235114002110910100003001010000110100300533100261092410026125045861744890002520264222795104199255735879527910000500107871978467785117836878066
600247793258600000000155071005357902010706781742552675420661052540010100006757032997225049756247846978129714233716755001040020200007002010000790283511400211091010000300101000001010017054310023892310035125044721745100002520264252782804212855855906564510000500107922580216787467853078439
6002478150585000010002412641210048779050109067846625526304205810516400101000067991529987210497574578616789457095737029350010400202000070020100007884335114002110910100003001010000010100150494100221171910023125044691444700002520264222785684204854015270515110000500107832078394785757841378443

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

Chain cycles: 3

Code:

  ldp x0, x1, [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.9960

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)09l2 tlb miss data (0b)0f18191e1f2022243a3f404346494d51schedule 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)60696a6b6d6emap 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 ld (a3)ld unit uop (a6)st unit uop (a7)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch mispred nonspec (cb)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
60209849166080000000243071053580444612506779732255337042992107874010010000692400306501804977340080353801127192837313350100402002000070200100008038335114020110099100100003010010000100100170611101400156129101421250458312945040000261055611795084246456145415530010000501007981879981794877930879131
6020479662601000000026301110466799351113007179793255328542560106194010010000688756304842114976546079486794777144937197050100402002000070200100007959435114020110099100100003010010000100100151588101460158133101501250450312544912000261015811795524240855155839546510000501008024479699798108043279921
6020480802598000000025208105267981891220717889425532804266410631401001000069158230581720497703707993279457714543723295010040200200007020010000799103511402011009910010000301001000010010018058510133089122101391250449713445010000261015611798494257659395911602410000501007992379940796897983680426
602048070259600000002520610489805971011307779835255345042884106554010010000688793305886004976790080667802337304637275350100402002000070200100008012735114020110099100100003010010000100100170585101400199135101421250449613245050000261015711802364258856865701560410000501008082180129803498035280146
6020479987600001000024108105407994391170667938525533304259210655401001000069417530459261497708608004180197724533729125010040200200007020010000801553531402011009910010000301001000010010017061710133087135101551250453012645420000261015611794634259256975901594510000501007968779765796937910680068
6020480626599000000027701010487794751013107579736255329042652106214010010000692455305177804976762080262797297172037218750100402002000070200100007984635114020110099100100003010010000100100170591101380139136101391250449214445400000261015611795034271257855439569910000501007992880259798377992279431
6020479655597000000026401010498799377122075819252553445426481063940100100006857773033478149769230799838050372173227428150100402002000070200100008040135114020110099100100003010010000100100180621101340119142101421250450113445010000261025711794464259258376046600310000501008015779353796937984279925
60204802676040000000277091053979622101070667954925534354276810640401001000070401330704351497758107930480523719343721265010040200200007020010000807823511402011009910010000301001000010010017061810133099137101541250452113245690000261015711798954260058545920581510000501008034179555797868033979905
60204800855950000000251091050380248913007079213255336542672106344010010000696569306812414977811079914800637191837247450100402002000070200100007987835114020110099100100003010010000100100150587101600119132101401250453812845281000261015611800864253658145612589910000501007944279735803007958179747
602048078760011100002890101050179992712005979726255329542532106504010010000688295303348114976424079559797147172137195950100402002000070200100007965135114020110099100100003010010000100100150572101260169132101381250453212444850000261015611792484247656055652578310000501007990479249792217968379822

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk instruction (07)mmu table walk data (08)09l2 tlb miss data (0b)0f18191e1f2022233a3f404346494d51schedule 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)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 ld (a3)ld unit uop (a6)l1d cache writeback (a8)a9acafldst x64 uop (b1)ldst xpg uop (b2)b5bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch mispred nonspec (cb)cfd5map dispatch bubble (d6)ddfetch restart (de)e0? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
600298356759500000000138091049878275700078381255241542006106014001010000679488297913049757107817178394714133712125001040020200007002010000792763521400211091010000300101000001010015252710018127181001512504601944801100252026411782344195254905540531010000500107808778983789327862478626
6002478737589100010001310710501784451000078428255260541918105094001010000677279299322849759467856979272705413713335001040020200007002010000788633511400211091010000300101000001010017248510018881210015125045231044951000252016411791934200052415371552810000500107832278181786937873078935
6002478656587101000001440710459785877010779032552485420621048940010100006795563040206497582378582788157101437114450010400202000070020100007877235114002110910100003001010000010100181499100181381810016125045001145821000252016411784794198055565337543110000500107881478839788207863878732
600247855858710000000140071046878484701078619255276042110105114001010000676938299832749755157861178266707953720915001040020200007002010000795113511400211091010000300101000001010018246510022117151001712504500944531000252016411781824200853165349539710000500107915078660785817841878817
6002478804589000000001250910449785121000078553255257041998104964001010000679205300022249755947863478790707943710055001040020200007002010000787793511400211091010000300101000001010018248710019168211001612504500945341000252016411790214210457525384534110000500107891878620786307871179009
6002478950591101000001470710544792619000787152552550420661050340010100006882443025871497558779004783877098737157150010400202000070020100007861035114002110910100003001010000010100162514100161392010019125044981045081100252016411792434213259986037597410000500107876378460796517884478804
60024787555921010100013709104767864011000782482552455420501052140010100006825803038518497552078897788677046237143350010400202000070020100007889035114002110910100003001010000010100161497100187111610014125044811144841100252016411784534211260335782573010000500107869178860788017908678868
600247877959210101000152071048078507901078894255252042046104974001010000678998304409449762337823078209707783716545001040020200007002010000793703521400211091010000300101000001010014049510020127151001712504501945080000252016412786124204857005591578610000500107898078707809008029778623
6002478658586000000001350710464784506001787962552470422181049640010100006815273004827497560079104788087114037145850010400202000070020100007907035114002110910100003001010000010100173530100171681510016125045051144821000252016411785964193653095332581610000500107830678353782737818678639
60024787355891010000015907105027856210011781712552520420821050140010100006821933045017497554578684790517101537151250010400202000070020100007875135114002110910100003001010000010100192510100181591510021125044891144981000252016411784554206856865056534610000500107876078159786437951678308

Test 4: throughput

Count: 8

Code:

  ldp x0, x1, [x6], #8
  ldp x0, x1, [x7], #8
  ldp x0, x1, [x8], #8
  ldp x0, x1, [x9], #8
  ldp x0, x1, [x10], #8
  ldp x0, x1, [x11], #8
  ldp x0, x1, [x12], #8
  ldp x0, x1, [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.4083

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)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)a9abacafldst x64 uop (b1)ldst xpg uop (b2)b5b6bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch cond mispred nonspec (c5)branch mispred nonspec (cb)cdcfd5map dispatch bubble (d6)ddfetch restart (de)e0e7? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
24020932983246000000767685215284611603272784170614681306181280116015480138800128011880019400673692943024492949732662329991463104882717160137802181600388021880019323763811802011009913100800001008000010080961849247438553373711968925543861261000032622126594432454900311151180160032878154800345395223800001601003252732470326663285732773
2402043289524611001072128031560465144327007697231459160415307531601508013180011801188001940063469105302849297113244532513152212447242616013780218160038802188001932687381180201100992210080000100800001008099216409474685928727129367662618623010000326941235692324983167011151180160032744170800507186652800001601003270832694325533274032913
24020432553243100010751781316404891483281980770715661343173579516011880121800008010080000400555660962130492958032673325501378101732657160100802001600008020080000328313811802011009941008000010080000100810041749444898594176010950905625864971000032634140501532525016016000511011611326301508002363655513800001601003280532561324143300132699
2402043294924511001076218211720466196325948406941474127716287361601308011880000801008000040055763298912549295553272532586136910243257416010080200160000802008000032624381180201100992610080000100800001008101015423503385426747119423459658614010000326081295957326365166200051101161132742156800235665063800001601003270432779327873263632546
2402043263824410000069598251784435136326678056851505139815877491601288011580000801008000040058565447812449296203263232628172710213282316010080200160000802008000032658381180201100991610080000100800001008100516391530586367759991717060588661310000326241145967324683160400051101161132632138800225875655800001601003286332471326903276232952
240204325442451001107502809167246796325508146621334164014787491601288012280000801008000040058670251202949295653268432423166111423275516010080200160000802008000032637381180201100991510080000100800001008097716452565585454788119013453148659210000326891206023324747161000051101161132543169800265015417800001601003253732738328723255932731
240204327152421101008117808176044814032552807644138816391452799160129801198000080100800004006066825411294929749325663274713591039323371601008020016000080200800003261138118020110099171008000010080000100810141543454488707079599289456818733510000326881266043324777150500051101161132616172800296075617800001601003260432655327113282532520
240204325002441000007101815163236911632843789758152115431711755160133801278000080100800004006007086261234929735328123267017191007326781601008020016000080200800003279738118020110099810080000100800001008100216431566185998748119028458058659810000326331275326325388160501051101161132572164800236795454800001601003258832455326713284432677
240204325292441000007683834172843396327008066651289146716257541601378012380000801008000040057767760312249295603258232488165010933255816010080200160000802008000032696381180201100993610080000100800001008100217421506986228773129193663968656610000326481295826324660160500051101161132599161800225325504800001601003258932731329363272532894
24020432654242100010754980217524792643252680661512751420154976416012480125800008010080000400551688235029492963632592325991870120432483160100802001600008020080000326263811802011009933100800001008000010081000164504879863687481387010054748674110000325741125647324735160900051101161132427161800255554853800001601003250232309324903266332965

1000 unrolls and 10 iterations

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

retire uop (01)cycle (02)03l1d tlb fill (05)mmu table walk data (08)l2 tlb miss data (0b)0e0f181e1f2022293a3e3f404346494f51schedule 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)5f606167696a6d6emap 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)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)a9abacafldst x64 uop (b1)ldst xpg uop (b2)b5b6bbbel1d cache miss ld nonspec (bf)l1d tlb miss nonspec (c1)c2c3branch mispred nonspec (cb)cdcfd0d2l1i cache miss demand (d3)d5map dispatch bubble (d6)dbddfetch restart (de)e0e7? int output thing (e9)eaebec? ldst retires (ed)? int retires (ef)f5f6f7f8fd
240029330862431000107715078917285241443248380867318811988158377316004280031800008001080000400161643119000304929686324913244416271050325951600108002016000080020800003234038118002110917108000010800001080913841063418605576317866565932861741000032650114586232488915000050200001616017632524130800204384422800001600103247732695327283281732555
2400243253624522100073360834172855518032688756657176420061646866160040800478000080010800004001656639100002049296273265332653144710783247816001080133160225800208000032714381180021109010800001080000108095816428586885729748148633849108633110000326511265435325452161120050200006160171732675151800144553993800001600103264432987325983262632444
240024326312431000008089080817525069632402801643174618561694765160035800448000080010800004001366708840003249296103280032588131612043248016001080020160000800208000032577381180021109131080000108000010809671641048208572178412902405755862151000032634130587532444516180050200001715017632538146800234144091800001600103272732430325193228232634
240024326092441000007228081617205301283242479164017161712122082516003580032800008001080000400135663083000234929325325333252014131027325051600108002016000080020800003262738118002110991080000108000010809893236549128526177613880345981864881000032674133600332489132000050200001316017832523149800244684343800001600103264032494324943262832646
24002432703244110000779707881712590124324587776651737188214478161600288002880000800108000040015866287400026492933732471324891435108432622160010800201600008002080000324793811800211091110800001080000108097715428503086389755138323261748699810000326901306010324656060005020000616017632580142800263714804800001600103257132730323373253932449
2400243241624410000077550831168850292327737835651956164816577601600338004080000800108000040012067228011019492943232746325401264110232421160010800201600008002080000326723811800211099108000010800001080915164135553856127539833325715863411000032611129609232454916030050200001716017632520155800224144272800001600103249332768325063246432387
2400243257324600000072300811172048511632813777663194518871384805160030800338000080010800004001656759290002749293683276132527137711623266216001080130160000800208000032666381180021109101080000108000010809920375532085451759148485059108686010000326051325861324662000005020000815017832426147800204974170800001600103257932631326483264032561
240024327842440000006493077916485571323264573464117571729139784916003780039800008001080000400157660872010254929278325913243913131042324651600108002016000080020800003269638118002110961080000108000010809240413562885925754986450580786911100003259211156513249370011005020000171601717324371428001739946612800001600103247432666324493261132599
240024322902430000007578078816805409632952765739179118101432803160035800348000080010800004001556555600002449294143279432708149610773246716001080020160000800208000032723381180021109510800001080000108094404245038862577821588542618286152100003263613354463247970060050200001715081732553157800214143514800001600103262432476325613263632379
240024326572441000007357078916805721443251876066520611731141983316003080033800008001080000400141645569010284929541322833240814251174327411600108002016000080020800003250638118002110951080000108000010809100411541085879769208622462708695110000326041325962324747160300502000017160171732485140800294113631800001600103233632586325953257032333