|
@ -41,119 +41,120 @@ template Mix(t, M) { |
|
|
template Poseidon(nInputs, t, nRoundsF, nRoundsP) { |
|
|
template Poseidon(nInputs, t, nRoundsF, nRoundsP) { |
|
|
|
|
|
|
|
|
var C = [ |
|
|
var C = [ |
|
|
1354025385229961744769229343273868518314335569873439558835166239576773343708, |
|
|
|
|
|
14378844218625331047742339561309620904043097700980163591187076404481144585564, |
|
|
|
|
|
19370813333785034372560258124535206525278124675105547990205946542330734467847, |
|
|
|
|
|
19339919977375282793227987561727366424934767905100680591050582380667086628202, |
|
|
|
|
|
8422275364316831706903446151602338206948363474119622730702497535467809432414, |
|
|
|
|
|
7433947928146794739292515659214608949964639549664630885486968546133071892830, |
|
|
|
|
|
20753350951496713264979200428833003140825588922450200809553577914404143341040, |
|
|
|
|
|
21437018888080559864996889038552602698883513894753499324572098534369350747880, |
|
|
|
|
|
6815447461573214810645016226370803316854141900901895816072622961504507953749, |
|
|
|
|
|
11746901014017411226283657362310634990885933032228701131899561585228216986615, |
|
|
|
|
|
13428722985713722660261823704226749286675766756093697029778643398137361221114, |
|
|
|
|
|
10894749142018158588533110743373157663019829222177356873395009880383491602356, |
|
|
|
|
|
13720066349319517776784660327982201297420012713976744204318378121767771862484, |
|
|
|
|
|
4665971664531891307640113589671067488692829783046247264698659233443166028412, |
|
|
|
|
|
5364541878673041196937884015923978656299860601766012213141306792903990539664, |
|
|
|
|
|
1747411112078838632103476037026417344408680910500491241306123941341644055714, |
|
|
|
|
|
1835035066071759522152578007305026433897204459772540871869487151042238374039, |
|
|
|
|
|
21055637025200882290106914253232617255445210101773537879323245961051751183138, |
|
|
|
|
|
19215142378199333594641095299020637309879189505235993967243075316794127016728, |
|
|
|
|
|
5264915734761449905856538116909638235466879053604660991987579054616980096262, |
|
|
|
|
|
10045917614023673044141331581538797960977704806582630277050701175565262856382, |
|
|
|
|
|
7789533631025313780520004400945166898631872921910178131342071973345076732672, |
|
|
|
|
|
19972498130123740615813398456152565371201412297339860820234719562997192378694, |
|
|
|
|
|
14216077977931104808041453382683965630500368477063603536695472115075869912121, |
|
|
|
|
|
2555981910568472028679439033700033287358333564454149464965229699417319912931, |
|
|
|
|
|
11735111941739477522347883122573591136355121750109794306409399099068977659499, |
|
|
|
|
|
16957890207070910233505303498878270130436461648242792271152604513138986611609, |
|
|
|
|
|
358520143235124107055243451716507147499373646513864848163778795927281509793, |
|
|
|
|
|
6389190271835493841487214043252929516390267871881261173336690351147926750010, |
|
|
|
|
|
12939611907106878137030264379019786496625916664142697309441198804098015086205, |
|
|
|
|
|
456696638239570875759108333278090964360604015255503302016190396687826618227, |
|
|
|
|
|
20569764931577491771523222445135914903999292206008007769649255123342890660989, |
|
|
|
|
|
3341317247281280728261320226215152668194921091152837358683334635401182164637, |
|
|
|
|
|
11821224368797169892747612081573458772211068320533296007836648033607696236615, |
|
|
|
|
|
2185176387193659864764608304330502180888068591409305411859725028056771843945, |
|
|
|
|
|
17161758741114551704796078639849789476380746803787101178795737276111464575519, |
|
|
|
|
|
11889888355183092530573415929875444766831739308191993115663429638848547668798, |
|
|
|
|
|
19503084309842095729857399025417533485089330284851492085544757107759925099089, |
|
|
|
|
|
20280152151768521735424910115623976684589382048161526796204268413029416266256, |
|
|
|
|
|
17607351334578006856860845064970248988416315904757246948622629528628773644114, |
|
|
|
|
|
20769468546336672951384440602623018830493119282829911435465737079851020547355, |
|
|
|
|
|
1546429204704408801701093430086546742691081844046642451323347737810191940866, |
|
|
|
|
|
11200569249561318620053458114013886527484999499632128671282997438827107108229, |
|
|
|
|
|
20198213289062010915914579158889968647687156198219713083074315178786791524034, |
|
|
|
|
|
12911209060630719799682705729835581341676468319742562559036843993017369855977, |
|
|
|
|
|
18925188847138989248835676768641716482476141553833902070405850166412140133887, |
|
|
|
|
|
20376466983584239909415025821007315251422803039634139484663713769887712746966, |
|
|
|
|
|
5250536177612235431141386983455571232984126980327432803966957255414592397060, |
|
|
|
|
|
344847263093423485167610155050688875010578621416939967999896518937961396680, |
|
|
|
|
|
19870333728541576497318505013425518731999037041271340888970559590767369935385, |
|
|
|
|
|
20604512495859902382577228682521142736989261702707317046150335692410020156250, |
|
|
|
|
|
18293964088694556689667514948280720605277532123251572448395882397578643211622, |
|
|
|
|
|
21211253784206079547762943120791531326787601501123474236198383850531142559075, |
|
|
|
|
|
17247914781304154940895909185506123510423535554247372833321968000513811053190, |
|
|
|
|
|
16432189025237084563810000088202867449333673799705533820685782829379758927490, |
|
|
|
|
|
7204783063529242442830743239980168374343946353418800547956909848044774363774, |
|
|
|
|
|
2108268032972510691814120801033692084861951866306906253604497017452204030001, |
|
|
|
|
|
13483247063999686990721729188827693318708500027762095503921527692630827328070, |
|
|
|
|
|
18194665574704709729868916970580318177272365766028499528691737819467051567534, |
|
|
|
|
|
9275639092314761435364537152118796424056864859607619908791935597976913759411, |
|
|
|
|
|
12700165678727983685032332532042155014245610964583614362270316386368455898604, |
|
|
|
|
|
19127554193875137546212792134421555344854604853165878912238751527694270097310, |
|
|
|
|
|
16817455471920423226570476063669349525676437756352144502692679769377074040335, |
|
|
|
|
|
17331185397945904160678487303485263376032543419657328137924881433628614769955, |
|
|
|
|
|
11605569208043267134285833752214422326246425655661043119023566733685555142420 |
|
|
|
|
|
|
|
|
14397397413755236225575615486459253198602422701513067526754101844196324375522, |
|
|
|
|
|
10405129301473404666785234951972711717481302463898292859783056520670200613128, |
|
|
|
|
|
5179144822360023508491245509308555580251733042407187134628755730783052214509, |
|
|
|
|
|
9132640374240188374542843306219594180154739721841249568925550236430986592615, |
|
|
|
|
|
20360807315276763881209958738450444293273549928693737723235350358403012458514, |
|
|
|
|
|
17933600965499023212689924809448543050840131883187652471064418452962948061619, |
|
|
|
|
|
3636213416533737411392076250708419981662897009810345015164671602334517041153, |
|
|
|
|
|
2008540005368330234524962342006691994500273283000229509835662097352946198608, |
|
|
|
|
|
16018407964853379535338740313053768402596521780991140819786560130595652651567, |
|
|
|
|
|
20653139667070586705378398435856186172195806027708437373983929336015162186471, |
|
|
|
|
|
17887713874711369695406927657694993484804203950786446055999405564652412116765, |
|
|
|
|
|
4852706232225925756777361208698488277369799648067343227630786518486608711772, |
|
|
|
|
|
8969172011633935669771678412400911310465619639756845342775631896478908389850, |
|
|
|
|
|
20570199545627577691240476121888846460936245025392381957866134167601058684375, |
|
|
|
|
|
16442329894745639881165035015179028112772410105963688121820543219662832524136, |
|
|
|
|
|
20060625627350485876280451423010593928172611031611836167979515653463693899374, |
|
|
|
|
|
16637282689940520290130302519163090147511023430395200895953984829546679599107, |
|
|
|
|
|
15599196921909732993082127725908821049411366914683565306060493533569088698214, |
|
|
|
|
|
16894591341213863947423904025624185991098788054337051624251730868231322135455, |
|
|
|
|
|
1197934381747032348421303489683932612752526046745577259575778515005162320212, |
|
|
|
|
|
6172482022646932735745595886795230725225293469762393889050804649558459236626, |
|
|
|
|
|
21004037394166516054140386756510609698837211370585899203851827276330669555417, |
|
|
|
|
|
15262034989144652068456967541137853724140836132717012646544737680069032573006, |
|
|
|
|
|
15017690682054366744270630371095785995296470601172793770224691982518041139766, |
|
|
|
|
|
15159744167842240513848638419303545693472533086570469712794583342699782519832, |
|
|
|
|
|
11178069035565459212220861899558526502477231302924961773582350246646450941231, |
|
|
|
|
|
21154888769130549957415912997229564077486639529994598560737238811887296922114, |
|
|
|
|
|
20162517328110570500010831422938033120419484532231241180224283481905744633719, |
|
|
|
|
|
2777362604871784250419758188173029886707024739806641263170345377816177052018, |
|
|
|
|
|
15732290486829619144634131656503993123618032247178179298922551820261215487562, |
|
|
|
|
|
6024433414579583476444635447152826813568595303270846875177844482142230009826, |
|
|
|
|
|
17677827682004946431939402157761289497221048154630238117709539216286149983245, |
|
|
|
|
|
10716307389353583413755237303156291454109852751296156900963208377067748518748, |
|
|
|
|
|
14925386988604173087143546225719076187055229908444910452781922028996524347508, |
|
|
|
|
|
8940878636401797005293482068100797531020505636124892198091491586778667442523, |
|
|
|
|
|
18911747154199663060505302806894425160044925686870165583944475880789706164410, |
|
|
|
|
|
8821532432394939099312235292271438180996556457308429936910969094255825456935, |
|
|
|
|
|
20632576502437623790366878538516326728436616723089049415538037018093616927643, |
|
|
|
|
|
71447649211767888770311304010816315780740050029903404046389165015534756512, |
|
|
|
|
|
2781996465394730190470582631099299305677291329609718650018200531245670229393, |
|
|
|
|
|
12441376330954323535872906380510501637773629931719508864016287320488688345525, |
|
|
|
|
|
2558302139544901035700544058046419714227464650146159803703499681139469546006, |
|
|
|
|
|
10087036781939179132584550273563255199577525914374285705149349445480649057058, |
|
|
|
|
|
4267692623754666261749551533667592242661271409704769363166965280715887854739, |
|
|
|
|
|
4945579503584457514844595640661884835097077318604083061152997449742124905548, |
|
|
|
|
|
17742335354489274412669987990603079185096280484072783973732137326144230832311, |
|
|
|
|
|
6266270088302506215402996795500854910256503071464802875821837403486057988208, |
|
|
|
|
|
2716062168542520412498610856550519519760063668165561277991771577403400784706, |
|
|
|
|
|
19118392018538203167410421493487769944462015419023083813301166096764262134232, |
|
|
|
|
|
9386595745626044000666050847309903206827901310677406022353307960932745699524, |
|
|
|
|
|
9121640807890366356465620448383131419933298563527245687958865317869840082266, |
|
|
|
|
|
3078975275808111706229899605611544294904276390490742680006005661017864583210, |
|
|
|
|
|
7157404299437167354719786626667769956233708887934477609633504801472827442743, |
|
|
|
|
|
14056248655941725362944552761799461694550787028230120190862133165195793034373, |
|
|
|
|
|
14124396743304355958915937804966111851843703158171757752158388556919187839849, |
|
|
|
|
|
11851254356749068692552943732920045260402277343008629727465773766468466181076, |
|
|
|
|
|
9799099446406796696742256539758943483211846559715874347178722060519817626047, |
|
|
|
|
|
10156146186214948683880719664738535455146137901666656566575307300522957959544, |
|
|
|
|
|
19908645952733301583346063785055921934459499091029406575311417879963332475861, |
|
|
|
|
|
11766105336238068471342414351862472329437473380853789942065610694000443387471, |
|
|
|
|
|
11002137593249972174092192767251572171769044073555430468487809799220351297047, |
|
|
|
|
|
284136377911685911941431040940403846843630064858778505937392780738953624163, |
|
|
|
|
|
19448733709802908339787967270452055364068697565906862913410983275341804035680, |
|
|
|
|
|
14423660424692802524250720264041003098290275890428483723270346403986712981505, |
|
|
|
|
|
10635360132728137321700090133109897687122647659471659996419791842933639708516 |
|
|
]; |
|
|
]; |
|
|
|
|
|
|
|
|
var M = [ |
|
|
var M = [ |
|
|
[ |
|
|
[ |
|
|
12037235000515189726428793905458162231976011685774991261061889278958802340039, |
|
|
|
|
|
15885254491685089152627111704751054604879027605518712546805347341940526552948, |
|
|
|
|
|
12220682901774309471330657931458552366575439534877271150866614914170639536810, |
|
|
|
|
|
11195096069395318710866553226959674457987772316145705151894647995087349332576, |
|
|
|
|
|
598000700605575401177173118514166571064818339748567530524299773749024042768, |
|
|
|
|
|
1430722853270801285936618367966028727146977818314178365893636191280860605092 |
|
|
|
|
|
|
|
|
19167410339349846567561662441069598364702008768579734801591448511131028229281, |
|
|
|
|
|
14183033936038168803360723133013092560869148726790180682363054735190196956789, |
|
|
|
|
|
9067734253445064890734144122526450279189023719890032859456830213166173619761, |
|
|
|
|
|
16378664841697311562845443097199265623838619398287411428110917414833007677155, |
|
|
|
|
|
12968540216479938138647596899147650021419273189336843725176422194136033835172, |
|
|
|
|
|
3636162562566338420490575570584278737093584021456168183289112789616069756675 |
|
|
],[ |
|
|
],[ |
|
|
2478807512283787086755520696277192042388812450777005645736937700857950416751, |
|
|
|
|
|
2233078558675693495109307103888903813217767160310116996267068037131890781382, |
|
|
|
|
|
18876120310576321787684235034151243856925703159922712959767164734820803570163, |
|
|
|
|
|
16850806847813838898693870637445284830832219430572133120914449039176718036761, |
|
|
|
|
|
1333036876405396107763619427367607232034082504897380383847654332653606615427, |
|
|
|
|
|
8024813862822108072341428765418554797098705487914663416123759888639403831315 |
|
|
|
|
|
|
|
|
17034139127218860091985397764514160131253018178110701196935786874261236172431, |
|
|
|
|
|
2799255644797227968811798608332314218966179365168250111693473252876996230317, |
|
|
|
|
|
2482058150180648511543788012634934806465808146786082148795902594096349483974, |
|
|
|
|
|
16563522740626180338295201738437974404892092704059676533096069531044355099628, |
|
|
|
|
|
10468644849657689537028565510142839489302836569811003546969773105463051947124, |
|
|
|
|
|
3328913364598498171733622353010907641674136720305714432354138807013088636408 |
|
|
],[ |
|
|
],[ |
|
|
6500095533434910955474026763873910167129305339747639394388586826716085593160, |
|
|
|
|
|
8370208895752773828195461153114215021863221486187756770286440396339432061839, |
|
|
|
|
|
9303960191058819387902927958335344077259478983903385066838134730814638010892, |
|
|
|
|
|
12233235273183315334651707749232602313616943260130930740801007863528547113209, |
|
|
|
|
|
9140649423847813564210562288927015604065254723368331178903734405333716165919, |
|
|
|
|
|
1715897011776785698388835993891828784112980527691698420841641796168725014542 |
|
|
|
|
|
|
|
|
18985203040268814769637347880759846911264240088034262814847924884273017355969, |
|
|
|
|
|
8652975463545710606098548415650457376967119951977109072274595329619335974180, |
|
|
|
|
|
970943815872417895015626519859542525373809485973005165410533315057253476903, |
|
|
|
|
|
19406667490568134101658669326517700199745817783746545889094238643063688871948, |
|
|
|
|
|
17049854690034965250221386317058877242629221002521630573756355118745574274967, |
|
|
|
|
|
4964394613021008685803675656098849539153699842663541444414978877928878266244 |
|
|
],[ |
|
|
],[ |
|
|
19092640119254952117901733765506685707486610088248205883870061221436629780176, |
|
|
|
|
|
3099417239661426161523333446616746096617346084970490427773391639810420659748, |
|
|
|
|
|
4498351799178816410443394768364090919370619407529999860500200773846156676605, |
|
|
|
|
|
17766546613911504681964882079687098358108049762069064124348111606619240189874, |
|
|
|
|
|
19735199036142202254810745273503942799136628866093225336283966579447096889407, |
|
|
|
|
|
18618071352177331467649099054615438672487187348128402045695624605978242597928 |
|
|
|
|
|
|
|
|
19025623051770008118343718096455821045904242602531062247152770448380880817517, |
|
|
|
|
|
9077319817220936628089890431129759976815127354480867310384708941479362824016, |
|
|
|
|
|
4770370314098695913091200576539533727214143013236894216582648993741910829490, |
|
|
|
|
|
4298564056297802123194408918029088169104276109138370115401819933600955259473, |
|
|
|
|
|
6905514380186323693285869145872115273350947784558995755916362330070690839131, |
|
|
|
|
|
4783343257810358393326889022942241108539824540285247795235499223017138301952 |
|
|
],[ |
|
|
],[ |
|
|
13282641901514824677915134398195165361567825236648422290753355584311135817423, |
|
|
|
|
|
842963276112770184096507757019973399127531993386626262873928307889423235104, |
|
|
|
|
|
5724939764407712239242783736588389538981693110806985476155198757555171230777, |
|
|
|
|
|
3015568820237516884743892014063659856564948150197038824747891972506031149123, |
|
|
|
|
|
8926202997251578932273751544826990276848999132609774201265891812369804099098, |
|
|
|
|
|
13523975980414815337318802343464374889255493007711857898760066111901192774093 |
|
|
|
|
|
|
|
|
16205238342129310687768799056463408647672389183328001070715567975181364448609, |
|
|
|
|
|
8303849270045876854140023508764676765932043944545416856530551331270859502246, |
|
|
|
|
|
20218246699596954048529384569730026273241102596326201163062133863539137060414, |
|
|
|
|
|
1712845821388089905746651754894206522004527237615042226559791118162382909269, |
|
|
|
|
|
13001155522144542028910638547179410124467185319212645031214919884423841839406, |
|
|
|
|
|
16037892369576300958623292723740289861626299352695838577330319504984091062115 |
|
|
],[ |
|
|
],[ |
|
|
13163705634211158833717167498904899472888572514300041636511944020589976373689, |
|
|
|
|
|
6705743158328622712684686369234272301477431173971663001146157949982901448493, |
|
|
|
|
|
5341285785102635724684809992160578025785996331334612975598752577556138916495, |
|
|
|
|
|
2365134732811643517126128253974711531515283135672252986518431351700239265326, |
|
|
|
|
|
11812366860142870031000585328436207067560705932658624313008187741187899702321, |
|
|
|
|
|
11192751017231920972897699839932659451476356148115786649719660565307185769796 |
|
|
|
|
|
|
|
|
15162889384227198851506890526431746552868519326873025085114621698588781611738, |
|
|
|
|
|
13272957914179340594010910867091459756043436017766464331915862093201960540910, |
|
|
|
|
|
9416416589114508529880440146952102328470363729880726115521103179442988482948, |
|
|
|
|
|
8035240799672199706102747147502951589635001418759394863664434079699838251138, |
|
|
|
|
|
21642389080762222565487157652540372010968704000567605990102641816691459811717, |
|
|
|
|
|
20261355950827657195644012399234591122288573679402601053407151083849785332516 |
|
|
] |
|
|
] |
|
|
]; |
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
signal input inputs[nInputs]; |
|
|
signal input inputs[nInputs]; |
|
|
signal output out; |
|
|
signal output out; |
|
|
|
|
|
|
|
|