use crate::poseidon::ArithmeticSpongeParams;
use mina_curves::pasta::Fq;
use once_cell::sync::Lazy;
use std::str::FromStr;
pub fn params() -> ArithmeticSpongeParams<Fq> {
ArithmeticSpongeParams {
mds: vec![
vec![
Fq::from_str(
"28115781186772277486790024060542467295096710153315236019619365740021995624782",
)
.unwrap(),
Fq::from_str(
"22098002279041163367053200604969603243328318626084412751290336872362628294144",
)
.unwrap(),
Fq::from_str(
"10518156075882958317589806716220047551309200159506906232124952575033472931386",
)
.unwrap(),
],
vec![
Fq::from_str(
"8515206633865386306014865142947895502833797732365705727001733785057042819852",
)
.unwrap(),
Fq::from_str(
"19310731234716792175834594131802557577955166208124819468043130037927500684373",
)
.unwrap(),
Fq::from_str(
"361439796332338311597104753147071943681730695313819021679602959964518909239",
)
.unwrap(),
],
vec![
Fq::from_str(
"2193808570710678216879007026210418088296432071066284289131688133644970611483",
)
.unwrap(),
Fq::from_str(
"1201496953174589855481629688627002262719699487577300614284420648015658009380",
)
.unwrap(),
Fq::from_str(
"11619800255560837597192574795389782851917036920101027584480912719351481334717",
)
.unwrap(),
],
],
round_constants: vec![
vec![
Fq::from_str(
"2517640872121921965298496967863234221143680281046699148760560696057284005606",
)
.unwrap(),
Fq::from_str(
"3391756047431116221709518926936538303706203177575259437741546230828058541679",
)
.unwrap(),
Fq::from_str(
"28193080211857729746868575888309975056941007202713113547154010421664334143056",
)
.unwrap(),
],
vec![
Fq::from_str(
"25261619184426186938919514618416881383323154981235406731208902193655587998749",
)
.unwrap(),
Fq::from_str(
"5438499261516835502981531641588657477212528137520578797088407969732830437134",
)
.unwrap(),
Fq::from_str(
"1447697894671779324954748568939217281372628544919576009518449387265606369859",
)
.unwrap(),
],
vec![
Fq::from_str(
"5035532530235542599906399941203951970682478985022204457211063504597080640029",
)
.unwrap(),
Fq::from_str(
"18548939393800290417015907795270784249198528773378593112394621615021029911007",
)
.unwrap(),
Fq::from_str(
"28314657632459005492203969796973258399484591559931227050853551342156833947891",
)
.unwrap(),
],
vec![
Fq::from_str(
"10075465805557971120845970058070916255338843492716768289922460436606689369477",
)
.unwrap(),
Fq::from_str(
"21985996556868691161386211003270106475915714625334030557267947035839814254081",
)
.unwrap(),
Fq::from_str(
"9778523497398309788873186849997676949503189428912377745814036481347657299161",
)
.unwrap(),
],
vec![
Fq::from_str(
"6085447467925843146276340167082679235758707259098174769103982431882228334038",
)
.unwrap(),
Fq::from_str(
"11214803418623679719680560978819619149235769633101428825693192995405955507848",
)
.unwrap(),
Fq::from_str(
"20585482519401972421539035665320299097144487427998598740316244173221216198246",
)
.unwrap(),
],
vec![
Fq::from_str(
"18602266896623204184748247002001496873223612100325866696399863661914256384486",
)
.unwrap(),
Fq::from_str(
"22165919841309962137671309308234475433816142848229812860682345190836583925843",
)
.unwrap(),
Fq::from_str(
"22833505632200982123686653495190412951871851216487329681987951602744930627412",
)
.unwrap(),
],
vec![
Fq::from_str(
"200996541962081036547810490655955282117589336000744078845964972887355639644",
)
.unwrap(),
Fq::from_str(
"17159390488590225463405148524511348095493761844950655304775985535830170165304",
)
.unwrap(),
Fq::from_str(
"7519689807382250126180254188667761476713509751388558140260305473388567529705",
)
.unwrap(),
],
vec![
Fq::from_str(
"14159331841037307097148990917607709903712709092721125605507719995418592745663",
)
.unwrap(),
Fq::from_str(
"10490695046555645615062072066940833278139280813429718770298136076375411280286",
)
.unwrap(),
Fq::from_str(
"9996921069626538041923613626115903019578182147993504053879837245826104687293",
)
.unwrap(),
],
vec![
Fq::from_str(
"28009241574980093348462093077828465154604666812509186537490618830383877236685",
)
.unwrap(),
Fq::from_str(
"18925279443828804264179873719494108834579217607847079902207023181925588871175",
)
.unwrap(),
Fq::from_str(
"13126164514615718686767880517156253918404905174962666942976286681458411835722",
)
.unwrap(),
],
vec![
Fq::from_str(
"1125667389564136291825905670957082668987611691949011617627091942772124917554",
)
.unwrap(),
Fq::from_str(
"12737072162917928935765906421286553437026542524142430058538254259863452556200",
)
.unwrap(),
Fq::from_str(
"9855113244149548216327019561589719324434080884827484555441182992249251832158",
)
.unwrap(),
],
vec![
Fq::from_str(
"6006604346195593001833550983798183088851044846011297061071167569148810544010",
)
.unwrap(),
Fq::from_str(
"23783465709464699444911580329342599880163107932561352210466223087637763994288",
)
.unwrap(),
Fq::from_str(
"1581060363083815351710754851350813999229829634252940169154424073664057276774",
)
.unwrap(),
],
vec![
Fq::from_str(
"24121961545310887440574053281799796355427122479626872394472157625455666323022",
)
.unwrap(),
Fq::from_str(
"23925781309638869606256007860000699567158045595326122474217734988331349678475",
)
.unwrap(),
Fq::from_str(
"433512980570318160778040929743715681206456334448542248765142091911433454703",
)
.unwrap(),
],
vec![
Fq::from_str(
"8080307140515367021419180108267113624095868360927897204642243727009503935719",
)
.unwrap(),
Fq::from_str(
"13661807750191096117929173962837770733539092996971801228126331071941306856508",
)
.unwrap(),
Fq::from_str(
"9268394414065063505331314418649987795374055416089324253185088859000252370756",
)
.unwrap(),
],
vec![
Fq::from_str(
"22374115023493407761095751712373350824513305398485824175669182288521610150311",
)
.unwrap(),
Fq::from_str(
"22951274634403942446739133926874770994604864227598567536319143390467218980824",
)
.unwrap(),
Fq::from_str(
"21411532836345163980832919797897483979345524322135010935120723250070247464549",
)
.unwrap(),
],
vec![
Fq::from_str(
"20688285497159372157224857370703211924056803904697620218749985029000049442943",
)
.unwrap(),
Fq::from_str(
"8350087190167057556241775495760369408781696125331535735138679647687106863977",
)
.unwrap(),
Fq::from_str(
"13485893160159637778707269611856683957779710980787754997470728774769162419576",
)
.unwrap(),
],
vec![
Fq::from_str(
"4621792784192688819920303666439776744566536330750316034321950771579978771021",
)
.unwrap(),
Fq::from_str(
"13900656491552343190424687336475573267660717627286734246676255663734655019912",
)
.unwrap(),
Fq::from_str(
"16577037405341365304416318048187907895286388691199320947077947552959834207823",
)
.unwrap(),
],
vec![
Fq::from_str(
"17453637937712580666297652202332273322112052411250919589546137386514183913993",
)
.unwrap(),
Fq::from_str(
"9852736110707561006399582579453396957225552488023642073454517393228764176471",
)
.unwrap(),
Fq::from_str(
"8053970357622019747109700798952789019805031210730923951116580579194625334710",
)
.unwrap(),
],
vec![
Fq::from_str(
"14566849926060034944494603512439278530775668595134329897253012222562109882008",
)
.unwrap(),
Fq::from_str(
"8863944349051942080060073891691580009950648437676309749771884964336231381737",
)
.unwrap(),
Fq::from_str(
"16455762285584757654310476505019438984453107876908065440396394186006196612077",
)
.unwrap(),
],
vec![
Fq::from_str(
"28098375311516838082882166381119795701982164671360574802728073046992978741339",
)
.unwrap(),
Fq::from_str(
"13538346067341652694825445642847479918140731375902310280683284825070643960891",
)
.unwrap(),
Fq::from_str(
"18313412784975078534612748781201087502203257054025866271209086293337241477805",
)
.unwrap(),
],
vec![
Fq::from_str(
"24807061345703288899043018750567607387907450632666147403804744880717736838940",
)
.unwrap(),
Fq::from_str(
"16638378638176552952794487891875614248110181610295183306789394461536640085108",
)
.unwrap(),
Fq::from_str(
"2342874860138849081032934096750004917991517717553229739958552529472431319656",
)
.unwrap(),
],
vec![
Fq::from_str(
"21631810094765090996871180483650934431972930909326270651252393395613356531282",
)
.unwrap(),
Fq::from_str(
"2220759912186713489010197903069023809260408491503960321105305330086947471014",
)
.unwrap(),
Fq::from_str(
"14815764944505758746761442212662459585220143243155504464852948007238083120696",
)
.unwrap(),
],
vec![
Fq::from_str(
"23947619952183462858644581465494050309407721428302029371055887418452994318961",
)
.unwrap(),
Fq::from_str(
"25035254658153233628169609451068923631269927394392748023889572264723092874720",
)
.unwrap(),
Fq::from_str(
"17468020412163678868776493601957969748197290347006692843306595815987772942732",
)
.unwrap(),
],
vec![
Fq::from_str(
"15262198027618900223004625662874755104828479630165814039838611768431063172994",
)
.unwrap(),
Fq::from_str(
"25161066724266754383358798644805908588326959881061318668106454787543611445887",
)
.unwrap(),
Fq::from_str(
"2454250001039770891411267760383268680504653332090622148533496270387793031332",
)
.unwrap(),
],
vec![
Fq::from_str(
"9171946491887082474979985164918822959719377078284664312866368737511724712644",
)
.unwrap(),
Fq::from_str(
"6672870238005411132577302023934139592378291207852994424857452575898007687159",
)
.unwrap(),
Fq::from_str(
"2950400608762766076731526167833938554190979516192019010641815746350334547745",
)
.unwrap(),
],
vec![
Fq::from_str(
"10653725154501691589476837895400001173933804810435931645261606197625601363132",
)
.unwrap(),
Fq::from_str(
"12717400214508961810851553873706609743505640660238109459222577386574996883747",
)
.unwrap(),
Fq::from_str(
"5871058785976817081042949511195036111847495052209270758342334312740290470200",
)
.unwrap(),
],
vec![
Fq::from_str(
"18192562665205900830717234913238180302424621739145466326708104656354353538015",
)
.unwrap(),
Fq::from_str(
"19946412409172091711185698839696950657650658896270607012902209489827790455314",
)
.unwrap(),
Fq::from_str(
"21997416257528392077410699901606794827305154904508120972585193876767785262539",
)
.unwrap(),
],
vec![
Fq::from_str(
"16525092684784199198745517563091041705366544303388462641935777835264970071331",
)
.unwrap(),
Fq::from_str(
"27613372589672512522307803997948488817865025374001297632527692577079750053456",
)
.unwrap(),
Fq::from_str(
"23369674747888778238616865774843237791546925005553032792584302158017141634655",
)
.unwrap(),
],
vec![
Fq::from_str(
"11012136308159330675912474383855146192700147583104742924419195363346115019405",
)
.unwrap(),
Fq::from_str(
"20632243971343595216801828590185617698839041744000918292113739726624680548813",
)
.unwrap(),
Fq::from_str(
"10530371852841765918702282883445676639977895775479854136871270050807595649710",
)
.unwrap(),
],
vec![
Fq::from_str(
"1610594053831245596683250788274018471388810111366046583216577135605955718023",
)
.unwrap(),
Fq::from_str(
"452300846172044702598793611907955884294868639769163388132276731316720796255",
)
.unwrap(),
Fq::from_str(
"22297945145153422883128810575530182077542612397826351322358420927950400316504",
)
.unwrap(),
],
vec![
Fq::from_str(
"28212510899948152845929142163236606049756849316851154583029383581129293825706",
)
.unwrap(),
Fq::from_str(
"28325924586146971645663587791728624896861517146549428987043066595915712075981",
)
.unwrap(),
Fq::from_str(
"23489013325315178311518261165509151135555509351661386106070231815049642443022",
)
.unwrap(),
],
vec![
Fq::from_str(
"10150108696154604591036176090028652090941375062280095655463112192524823306544",
)
.unwrap(),
Fq::from_str(
"14935856239824547404885450872472169780177654619496758596151670953532153419587",
)
.unwrap(),
Fq::from_str(
"4367251608666794961207658726914177158125339342277880902441218521648798930454",
)
.unwrap(),
],
vec![
Fq::from_str(
"14278046449956534912766622635951826857049583276976844525135170835571509013020",
)
.unwrap(),
Fq::from_str(
"11627801940273881243235293875277734806211947530882079339115454640100174268255",
)
.unwrap(),
Fq::from_str(
"22853853581419894582873479603685652928885253184240650995805892818180355600894",
)
.unwrap(),
],
vec![
Fq::from_str(
"4405193089432137585625363585733613667088817369599257533888439029942466720878",
)
.unwrap(),
Fq::from_str(
"26434497741746827048559732407319982377645052620918789373329661707603241810667",
)
.unwrap(),
Fq::from_str(
"23558650878002025381506445692526977061352711282820117441110868042756853707843",
)
.unwrap(),
],
vec![
Fq::from_str(
"27427423077748345654234924309581695092179468167973406115643356520054395647078",
)
.unwrap(),
Fq::from_str(
"17585801825757985265979208086560185342609289319992678737491966299829354657891",
)
.unwrap(),
Fq::from_str(
"22079131836316223121286612953926945430480043835170303484162677394496378207190",
)
.unwrap(),
],
vec![
Fq::from_str(
"20126865597655889981803452476686954944892814234259869552204215672627920656068",
)
.unwrap(),
Fq::from_str(
"5591585339015997308682985123056479221565470335707041924016523106405300562835",
)
.unwrap(),
Fq::from_str(
"9422316572086279209843572429137982927615080330725918371521370800874341571474",
)
.unwrap(),
],
vec![
Fq::from_str(
"2735677349719528139570614238939713941030373684882307164259316901880218894412",
)
.unwrap(),
Fq::from_str(
"16229147459127626384090303399894157248853232127961182470501666316464149067069",
)
.unwrap(),
Fq::from_str(
"17151067888069760812629817914442472623785916486309268828873486698948911058517",
)
.unwrap(),
],
vec![
Fq::from_str(
"13833972862865550568348750465964022581895521701070662509936215512761615491351",
)
.unwrap(),
Fq::from_str(
"9624679817699048440664645568701817641311119158936258215534754849666144699339",
)
.unwrap(),
Fq::from_str(
"10273179847163882031630140477902608240997857384703412878925192706057610103613",
)
.unwrap(),
],
vec![
Fq::from_str(
"3172037826021850467928085880043492158321918352296515787555947245998877188849",
)
.unwrap(),
Fq::from_str(
"28890802281119993101506497911757988639840653958256859430239635494708187190915",
)
.unwrap(),
Fq::from_str(
"23496953773368274731821824281559682992786773767847557735733251263969009271239",
)
.unwrap(),
],
vec![
Fq::from_str(
"1509044982655321910215442389040863370827049078919961070795919190828975736187",
)
.unwrap(),
Fq::from_str(
"13927172650979098916742472053302036482743492746437467103459483008024082210879",
)
.unwrap(),
Fq::from_str(
"17248379591027039069313293591621091031164062825086122980769287846951363066520",
)
.unwrap(),
],
vec![
Fq::from_str(
"11350333545134487336540967650634077894516131586708748380417042089147896079201",
)
.unwrap(),
Fq::from_str(
"639497848254405996993150855123515463224731962182127668267769103213580096582",
)
.unwrap(),
Fq::from_str(
"24528361599642320451530127347946798949257664936307333999618279589325586618880",
)
.unwrap(),
],
vec![
Fq::from_str(
"8217015496508457685301448884203977810298711070026260090660268003968421268717",
)
.unwrap(),
Fq::from_str(
"6703444480721420507060701216472376128524677965704475494357937059812166295103",
)
.unwrap(),
Fq::from_str(
"8051365375874262471960241848873604339195556527603956582828833313772444122472",
)
.unwrap(),
],
vec![
Fq::from_str(
"10412735174026641936105532807659667596947675372330827493649954160029449767122",
)
.unwrap(),
Fq::from_str(
"8447576362386697729021229138353952824970707645851763166490398451107606293885",
)
.unwrap(),
Fq::from_str(
"4802965296970904162106502573136505305073730277702271660292532219583823320181",
)
.unwrap(),
],
vec![
Fq::from_str(
"3244354881334856885788568976540712586633556478250043997221528214026130052269",
)
.unwrap(),
Fq::from_str(
"817270901440592571623549787267103386561304980129799240746702119063425010300",
)
.unwrap(),
Fq::from_str(
"6566338353152134577893356938981496347522747926131278635019050445923229718029",
)
.unwrap(),
],
vec![
Fq::from_str(
"4854521709622003124815206874897232905514824969466266873443062691298769768277",
)
.unwrap(),
Fq::from_str(
"12830134034124699064152980183243986699241944691238427861184919962819448276943",
)
.unwrap(),
Fq::from_str(
"24309439157688106320977023683093060719537142150089588950480669629964661236785",
)
.unwrap(),
],
vec![
Fq::from_str(
"1853791709949511636795588377016980571084333441972847324139062389997895453872",
)
.unwrap(),
Fq::from_str(
"11399505004623970417786749745036397690793259153591025248188283534764565207306",
)
.unwrap(),
Fq::from_str(
"6280235834578097246976697944083887557501831809932305676532914637669922657807",
)
.unwrap(),
],
vec![
Fq::from_str(
"1516294190187225192808636261678393666537186816904214776860202535671714230097",
)
.unwrap(),
Fq::from_str(
"5835813607391397757416951433662507638966861369364000865214031356023042341328",
)
.unwrap(),
Fq::from_str(
"25777313996516799380163546628133415256678997511953860435781885414872422583905",
)
.unwrap(),
],
vec![
Fq::from_str(
"9749298878960864917089442034293906589697892682402070689770627645324414273893",
)
.unwrap(),
Fq::from_str(
"19986612197193695239708718365565978831607994386509967951279410162135133793419",
)
.unwrap(),
Fq::from_str(
"5020585421647265067890838871263925730422335215511670656851726444447972642755",
)
.unwrap(),
],
vec![
Fq::from_str(
"7256822974971238434100017358319972368738353570339258522235883585691301791128",
)
.unwrap(),
Fq::from_str(
"9789139064283320903202623693175751994730652446378861671859478926598420184293",
)
.unwrap(),
Fq::from_str(
"19283468246375057076525422714896652730563534118070235174488237489890270899533",
)
.unwrap(),
],
vec![
Fq::from_str(
"11487321478704551489982188818171823402443882145686911658585221913500937481156",
)
.unwrap(),
Fq::from_str(
"16513958012405406860890342996091255867910990589443610357743227675107758695101",
)
.unwrap(),
Fq::from_str(
"24764429351173766080138047602436205744310671344674490826288279531917797263231",
)
.unwrap(),
],
vec![
Fq::from_str(
"8256258316375000496541664568891934707113720493937218096466691600593595285909",
)
.unwrap(),
Fq::from_str(
"26919625894863883593081175799908601863265420311251948374988589188905317081443",
)
.unwrap(),
Fq::from_str(
"10135851848127171199130812615581006825969108287418884763125596866448544567342",
)
.unwrap(),
],
vec![
Fq::from_str(
"17567146349912867622479843655652582453162587996421871126612027345809646551661",
)
.unwrap(),
Fq::from_str(
"2524802431860351616270075327416865184018211992251290134350377936184047953453",
)
.unwrap(),
Fq::from_str(
"3417609143162661859785838333493682460709943782149216513733553607075915176256",
)
.unwrap(),
],
vec![
Fq::from_str(
"6906455011502599710165862205505812668908382042647994457156780865092846286493",
)
.unwrap(),
Fq::from_str(
"21042097659487317081899343674473811663642293019125869396575405454328274948985",
)
.unwrap(),
Fq::from_str(
"25222370053690749913129090298406788520061040938312366403907461864202905656238",
)
.unwrap(),
],
vec![
Fq::from_str(
"18933201791079410639949505893100361911334261775545573219434897335758052335005",
)
.unwrap(),
Fq::from_str(
"14503331557348715387048413780116585195932777696828173626366829282421027153184",
)
.unwrap(),
Fq::from_str(
"3558781473325529402549318082942465709639711182863041375748599816583729962116",
)
.unwrap(),
],
vec![
Fq::from_str(
"23932570601084008621895097434501731960424360312878373523779451810455362953625",
)
.unwrap(),
Fq::from_str(
"13286131463754478912858022007443470896920464302917391606059553157137090717219",
)
.unwrap(),
Fq::from_str(
"9969435194445819847988134248075866286921574284754991873902788928171429847506",
)
.unwrap(),
],
vec![
Fq::from_str(
"10821551500865029673311799086099720530496516676117927814621168667836737594374",
)
.unwrap(),
Fq::from_str(
"57689402905128519605376551862931564078571458212398163192591670282543962941",
)
.unwrap(),
Fq::from_str(
"4484359679395800410695081358212522306960518636189521201445105538223906998486",
)
.unwrap(),
],
],
}
}
pub fn static_params() -> &'static ArithmeticSpongeParams<Fq> {
static PARAMS: Lazy<ArithmeticSpongeParams<Fq>> = Lazy::new(params);
&PARAMS
}