circomlib/circuits/poseidon_constants.circom

95 lines
256 KiB
Plaintext
Raw Normal View History

// Parameters are generated by a reference script https://extgit.iaik.tugraz.at/krypto/hadeshash/-/blob/master/code/generate_parameters_grain.sage
// Used like so: sage generate_parameters_grain.sage 1 0 254 2 8 56 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001
function POSEIDON_C(t) {
if (t == 2) {
return [4417881134626180770308697923359573201005643519861877412381846989312604493735, 5433650512959517612316327474713065966758808864213826738576266661723522780033, 13641176377184356099764086973022553863760045607496549923679278773208775739952, 17949713444224994136330421782109149544629237834775211751417461773584374506783, 13765628375339178273710281891027109699578766420463125835325926111705201856003, 19179513468172002314585757290678967643352171735526887944518845346318719730387, 5157412437176756884543472904098424903141745259452875378101256928559722612176, 535160875740282236955320458485730000677124519901643397458212725410971557409, 1050793453380762984940163090920066886770841063557081906093018330633089036729, 10665495010329663932664894101216428400933984666065399374198502106997623173873, 19965634623406616956648724894636666805991993496469370618546874926025059150737, 13007250030070838431593222885902415182312449212965120303174723305710127422213, 16877538715074991604507979123743768693428157847423939051086744213162455276374, 18211747749504876135588847560312685184956239426147543810126553367063157141465, 18151553319826126919739798892854572062191241985315767086020821632812331245635, 19957033149976712666746140949846950406660099037474791840946955175819555930825, 3469514863538261843186854830917934449567467100548474599735384052339577040841, 989698510043911779243192466312362856042600749099921773896924315611668507708, 12568377015646290945235387813564567111330046038050864455358059568128000172201, 20856104135605479600325529349246932565148587186338606236677138505306779314172, 8206918720503535523121349917159924938835810381723474192155637697065780938424, 1309058477013932989380617265069188723120054926187607548493110334522527703566, 14076116939332667074621703729512195584105250395163383769419390236426287710606, 10153498892749751942204288991871286290442690932856658983589258153608012428674, 18202499207234128286137597834010475797175973146805180988367589376893530181575, 12739388830157083522877690211447248168864006284243907142044329113461613743052, 15123358710467780770838026754240340042441262572309759635224051333176022613949, 19925004701844594370904593774447343836015483888496504201331110250494635362184, 10352416606816998476681131583320899030072315953910679608943150613208329645891, 10567371822366244361703342347428230537114808440249611395507235283708966113221, 5635498582763880627392290206431559361272660937399944184533035305989295959602, 11866432933224219174041051738704352719163271639958083608224676028593315904909, 5795020705294401441272215064554385591292330721703923167136157291459784140431, 9482202378699252817564375087302794636287866584767523335624368774856230692758, 4245237636894546151746468406560945873445548423466753843402086544922216329298, 12000500941313982757584712677991730019124834399479314697467598397927435905133, 7596790274058425558167520209857956363736666939016807569082239187494363541787, 2484867918246116343205467273440098378820186751202461278013576281097918148877, 18312645949449997391810445935615409295369169383463185688973803378104013950190, 15320686572748723004980855263301182130424010735782762814513954166519592552733, 12618438900597948888520621062416758747872180395546164387827245287017031303859, 17438141672027706116733201008397064011774368832458707512367404736905021019585, 6374197807230665998865688675365359100400438034755781666913068586172586548950, 2189398913433273865510950346186699930188746169476472274335177556702504595264, 6268495580028970231803791523870131137294646402347399003576649137450213034606, 17896250365994900261202920044129628104272791547990619503076839618914047059275, 13692156312448722528008862371944543449350293305158722920787736248435893008873, 15234446864368744483209945022439268713300180233589581910497691316744177619376, 1572426502623310766593681563281600503979671244997798691029595521622402217227, 80103447810215150918585162168214870083573048458555897999822831203653996617, 8228820324013669567851850635126713973797711779951230446503353812192849106342, 537585143374650961404581247695852606544937755869575213249453366637044941587
} else if (t == 3) {
return [6745197990210204598374042828761989596302876299545964402857411729872131034734, 426281677759936592021316809065178817848084678679510574715894138690250139748, 4014188762916583598888942667424965430287497824629657219807941460227372577781, 21328925083209914769191926116470334003273872494252651254811226518870906634704, 19525217621804205041825319248827370085205895195618474548469181956339322154226, 1402547928439424661186498190603111095981986484908825517071607587179649375482, 18320863691943690091503704046057443633081959680694199244583676572077409194605, 17709820605501892134371743295301255810542620360751268064484461849423726103416, 15970119011175710804034336110979394557344217932580634635707518729185096681010, 9818625905832534778628436765635714771300533913823445439412501514317783880744, 6235167673500273618358172865171408902079591030551453531218774338170981503478, 12575685815457815780909564540589853169226710664203625668068862277336357031324, 7381963244739421891665696965695211188125933529845348367882277882370864309593, 14214782117460029685087903971105962785460806586237411939435376993762368956406, 13382692957873425730537487257409819532582973556007555550953772737680185788165, 2203881792421502412097043743980777162333765109810562102330023625047867378813, 2916799379096386059941979057020673941967403377243798575982519638429287573544, 4341714036313630002881786446132415875360643644216758539961571543427269293497, 2340590164268886572738332390117165591168622939528604352383836760095320678310, 5222233506067684445011741833180208249846813936652202885155168684515636170204, 7963328565263035669460582454204125526132426321764384712313576357234706922961, 1394121618978136816716817287892553782094854454366447781505650417569234586889, 20251767894547536128245030306810919879363877532719496013176573522769484883301, 141695147295366035069589946372747683366709960920818122842195372849143476473, 15919677773886738212551540894030218900525794162097204800782557234189587084981, 2616624285043480955310772600732442182691089413248613225596630696960447611520, 4740655602437503003625476760295930165628853341577914460831224100471301981787, 19201590924623513311141753466125212569043677014481753075022686585593991810752, 12116486795864712158501385780203500958268173542001460756053597574143933465696, 8481222075475748672358154589993007112877289817336436741649507712124418867136, 5181207870440376967537721398591028675236553829547043817076573656878024336014, 1576305643467537308202593927724028147293702201461402534316403041563704263752, 2555752030748925341265856133642532487884589978209403118872788051695546807407, 18840924862590752659304250828416640310422888056457367520753407434927494649454, 14593453114436356872569019099482380600010961031449147888385564231161572479535, 20826991704411880672028799007667199259549645488279985687894219600551387252871, 9159011389589751902277217485643457078922343616356921337993871236707687166408, 5605846325255071220412087261490782205304876403716989785167758520729893194481, 1148784255964739709393622058074925404369763692117037208398835319441214134867, 20945896491956417459309978192328611958993484165135279604807006821513499894540, 229312996389666104692157009189660162223783309871515463857687414818018508814, 21184391300727296923488439338697060571987191396173649012875080956309403646776, 21853424399738097885762888601689700621597911601971608617330124755808946442758, 12776298811140222029408960445729157525018582422120161448937390282915768616621, 7556638921712565671493830639474905252516049452878366640087648712509680826732, 19042212131548710076857572964084011858520620377048961573689299061399932349935, 12871359356889933725034558434803294882039795794349132643274844130484166679697, 3313271555224009399457959221795880655466141771467177849716499564904543504032, 15080780006046305940429266707255063673138269243146576829483541808378091931472, 21300668809180077730195066774916591829321297484129506780637389508430384679582, 20480395468049323836126447690964858840772494303543046543729776750771407319822, 10034492246236387932307199011778078115444704411143703430822959320969550003883, 1
} else if (t == 4) {
return [11633431549750490989983886834189948010834808234699737327785600195936805266405, 17353750182810071758476407404624088842693631054828301270920107619055744005334, 11575173631114898451293296430061690731976535592475236587664058405912382527658, 9724643380371653925020965751082872123058642683375812487991079305063678725624, 20936725237749945635418633443468987188819556232926135747685274666391889856770, 6427758822462294912934022562310355233516927282963039741999349770315205779230, 16782979953202249973699352594809882974187694538612412531558950864304931387798, 8979171037234948998646722737761679613767384188475887657669871981433930833742, 5428827536651017352121626533783677797977876323745420084354839999137145767736, 507241738797493565802569310165979445570507129759637903167193063764556368390, 6711578168107599474498163409443059675558516582274824463959700553865920673097, 2197359304646916921018958991647650011119043556688567376178243393652789311643, 4634703622846121403803831560584049007806112989824652272428991253572845447400, 17008376818199175111793852447685303011746023680921106348278379453039148937791, 18430784755956196942937899353653692286521408688385681805132578732731487278753, 4573768376486344895797915946239137669624900197544620153250805961657870918727, 5624865188680173294191042415227598609140934495743721047183803859030618890703, 8228252753786907198149068514193371173033070694924002912950645971088002709521, 17586714789554691446538331362711502394998837215506284064347036653995353304693, 12985198716830497423350597750558817467658937953000235442251074063454897365701, 13480076116139680784838493959937969792577589073830107110893279354229821035984, 480609231761423388761863647137314056373740727639536352979673303078459561332, 19503345496799249258956440299354839375920540225688429628121751361906635419276, 16837818502122887883669221005435922946567532037624537243846974433811447595173, 5492108497278641078569490709794391352213168666744080628008171695469579703581, 11365311159988448419785032079155356000691294261495515880484003277443744617083, 13876891705632851072613751905778242936713392247975808888614530203269491723653, 10660388389107698747692475159023710744797290186015856503629656779989214850043, 18876318870401623474401728758498150977988613254023317877612912724282285739292, 15543349138237018307536452195922365893694804703361435879256942490123776892424, 2839988449157209999638903652853828318645773519300826410959678570041742458201, 7566039810305694135184226097163626060317478635973510706368412858136696413063, 6344830340705033582410486810600848473125256338903726340728639711688240744220, 12475357769019880256619207099578191648078162511547701737481203260317463892731, 13337401254840718303633782478677852514218549070508887338718446132574012311307, 21161869193849404954234950798647336336709035097706159414187214758702055364571, 20671052961616073313397254362345395594858011165315285344464242404604146448678, 2772189387845778213446441819361180378678387127454165972767013098872140927416, 3339032002224218054945450150550795352855387702520990006196627537441898997147, 14919705931281848425960108279746818433850049439186607267862213649460469542157, 17056699976793486403099510941807022658662936611123286147276760381688934087770, 16144580075268719403964467603213740327573316872987042261854346306108421013323, 15582343953927413680541644067712456296539774919658221087452235772880573393376, 17528510080741946423534916423363640132610906812668323263058626230135522155749, 3190600034239022251529646836642735752388641846393941612827022280601486805721, 8463814172152682468446984305780323150741498069701538916468821815030498611418, 16533435971270903741871235576178437313873873358463959658178441562520661055273, 11845696835505436397913764735273748291716405946246049903478361223369666046634, 18391057370973634202531308463652130631065370546571735004701144829951670507215, 262537877325812689820791215463881982531707709719292538608229687240243203710, 2187234489894387585309965540987639130975753519805550941279098789852422770021, 191896563509204556590064184224093900139670643105253141600263569161729761529
} else if (t == 5) {
return [6652655389322448471317061533546982911992554640679550674058582942754771150993, 2411464732857349694082092299330329691469354396507353145272547491824343787723, 21491443688002139478732659842894153142870918973450440713149176834049574486740, 20196926676989483530222124573030747187074792043523478381149800153065505592963, 12986278951352369831003505493892366673723882190521699331613883287145355738793, 21126146258242782643168619000295062005037298340836817770565977031890883232034, 15509665795506578582538177431401381655815033647735781734613703976071034655246, 6989769181472743404364681671283889685042701491627165526899522083327752110839, 7062179885254277466334896166987547257487047183881628199983668518000910197987, 13842521112365108087725039904948872289730786568469683976372377853164252494752, 3830559505943186272618534143266118508463381443414165428900505002474439179836, 17704863473432653834041116667846189591617394753001613253930974854399793083900, 875580502229441633079974792778818749112423694973231971690365132230865385439, 1971134273535892826573832061354985059300866001765691176219451252512658771248, 4865738840363990164915013008693722144676933915103280504727326977328013515878, 1148603338028060679975883868174895825055359423662532941509525326937127571764, 17506086433923270253695698017062834613463718526046463655503742220257039588796, 21580033018107258179208198773211859664893072138803756118939260252922297665067, 15411900706973212043830142913959920716501447427702082030760032355626616412240, 12219699506725448409610279620972339448030565224304464695714944121760832152291, 4525719544192047521328360848269156485222470829314314216955024799558286708479, 19667371373588322336224317159113441765198420040800065314868656839300028747331, 18916925604689704279265158984702141998345424765142129953154245912230835240445, 12789343981741773931665143789673052782408749041041266509485929045869073416222, 3094428508959717445577232225505810354980663487713729230015754183012845687401, 18544590634480965569098056786078005630500574069468005220462377474861119476492, 20990087440247450018723844204951613913840993427110495085701200965767234569705, 17552251989761134508416634118845221324472178264364440017634233349418103869223, 21000797802575507763447855752602183842956182733750968489641741136166640639409, 19292751508591545849778577901067988044973302547209758604667395356943370737868, 18314088316445539319869442180584299715533304874169767778761887632882728399870, 15003745150856597539000559910957155642193629735521291045949652201905498569732, 7839443900003691950104175747634267110464104444913379977500178134209666299140, 13568305490393393394812598233983935295266242465548739772708079888867621061127, 6453005227995051361096639028742707098785560656441339640433794156400437698140, 1420171596348195609536167209221442141824294918625468780931400849866478645240, 8347329128252205996443084339884155586061343024498283583400215109265013719709, 7893774494551056447960817286805128884970061671041428326788899872964096959040, 8970476243368194065341537088653900235777512204874037182428362347342487241690, 239049405935404678508864874854718951364753739466303321590415544572014148257, 15772878921699764223771017074289335629553777447709755479885293350677783703695, 5416082112919155131434995906647355834510201879607888732259087164602171650389, 4384524908062410354304345761652962203632712291085564157560146286207296352050, 4210984612917608245844011498198864216639269565627982123611519493203177283139, 18816442907032290878644773027005263628136050677095986565400687355912498966559, 21443510232279945782338486087712914668515437675585863788610958361560172084515, 3234314779308300525339049581669531363375743827111579883853941968586490182859, 11029499234949696730080035941750777601416171837281021031653841244636590396063, 11145210633226924132308292113124660576759662647204939721872338908644906571564, 4583160563963432761409369246361117506465307518522062239686649163525543782173, 9813992026757562966842771727657080117609486122615087352428596024939855084450, 1008417185703948070643028218797278272594847926017936778077612578611948958140
} else if (t == 6) {
return [9174141306060971809979631725764298697615039980311809306145004207410652431953, 4847693924685156250211477469465516228032151306221739650606132660616428517315, 19669833054057639609249840291533340493211768292967819468538893000195036768991, 19800508893433268850924828171290876015556093796000695603651522426066333836892, 8244699449852279148780456022144420353408196866113049322676048275081354214716, 1563672068712965454176533719400672258364596155638916268717470967009721945171, 12723223712027468580318230235559705540011996847167975439677647504573149248849, 19944398841194165937952509356635863229327574447452745793253427406349161295763, 21218058308392585368594275702746106483411305671883946244077923955757637296177, 18442884961885927579732373746933397748806426938144021013884176466434407012116, 11138408360119814115926439449668526422561003790198269766757675305576549475808, 12724564576884231109847024566806896391934587839830522481308995309797961575379, 4897733190252075532660075013731462724561461746919488679609618967302541674417, 4797748331306263412471031924618974997396620231469532262170060449304337691527, 8626839560132907403537141283531395025838110825355541158539075100658769738351, 6096293906324574249636975851522292408228519044739444932687579741964974917617, 2351617695830568421216396081605990689071283678701192113347036659596049514149, 3045682390398203085155257535118136303069379656645406266260961816947178911890, 6935829264874515341379952008241845470659188886156484974987865751370715745075, 19847439266968955911971997829840067368072860877451092633069920565944933744280, 12795097343831149148337906863235678514689648096503928066579129201713661539889, 10424580232112390318877053133877999442988769389050776486274146627765228950235, 11651452649618223740363812212607761589812354035139843126315028745587570714609, 21307929358023177131550002602820591970791247513576735567457471459920519084552, 2579908580162153663820021562014873149811195641589016321720930006635393981680, 8198198178555784054784079137247244121807775986273563786249987394640289859893, 17176088986876377315956611075288620878117708836881362200541916957398026761276, 671389874397910339333118510595007038137908096657753354622355890021074216004, 19161949137729278558310070194809106779119877882343914445178348849980058405327, 10827554013954037091657804154642286174226562252063767377995268439458401752538, 11693672899474469123468133710607776304784343543318650064064636202512816205843, 7026547767612627656560992117440221331093280829523426249915938274837157551621, 14422968137896343032446633683271253661000603582016449215470992885331170459671, 7685352543184863430081115767111935982586458632527708735083385591291346555502, 14089009391529192464370954954330128327830078875414722902347666490457756695535, 8424161061743752192085022963953944100289245618074575727145394775891645849043, 9809236779073852557054640507912802523501426410996355424610807253990040160483, 14100245203768962710288059230665566265892855964739454261791429988929622355986, 7775683622333704945225255741567928967674629526812606133980425422182282014012, 8739247215686497264451630351996892836638898510934389758205488381695687859658, 9431876969679115468275053745264413939426444105271849398322497961102606290132, 257914055321743732506701382989022126153391940932933566664491918941925247878, 21801414068435960590201256257290267142214176965736081788536576642934903066059, 9465495933537134443327560834432669768951376466867005153580146079082722525723, 7862366214258716333873810314803222267215825847232397599183717032713290878315, 10701164906390193792620967030790214270231326273599373762943959252633779929633, 11951628827727068395937910010248864431667047516686609553745879936868276916066, 14268744039571470490378560085356767818183790841094115879980723591887874138419, 14468215915818797151199796266933432577607248341385185700017147731054148927023, 1523824033338639123415809477892820349580561577160869448927791050266158538520, 13559991428776910947424645696251487328999214391124402586267086012691140984198, 18151203063828433535061866995346135260543721730169485344610433976436663085882
} else if (t == 7) {
return [15193892625865514930501893609026366493846449603945567488151250645948827690215, 8655680243784803430516500496316192098841666200175185895457692057709359214457, 11710807066713707084726423334946631888369490193496350458331067367713412617049, 15442364818086019103203999366702499670382575019009657513015496640703659810202, 1358747428976145481402682338881091555771254635226375581638965497131373838774, 15658002471767984962034589730824699545808755102240624650914676102923421241582, 6420480504329990097173256112095253518339231893829818344055438052479612135029, 15457172495394305353698644252424643614748461590123908880271021612601244389162, 5745943350537490600340174787616110056830333091917248931684290284533019091654, 3877253492903478989342845512796806320713689655633086736499730391667425329322, 11257677301507982757739320943403112189613848490812422490591766717141506751601, 16906586852467953445509312290627525856126394969718997799028223470195783329296, 15263589725854108297280528692120758129000336125328939290924952731952242586386, 21735940039489460025710098364749096267519151075908323637361429746399161905338, 20023056608360522105358681147781839024069418874082333862551226466128829664291, 5677500725280079960679484373333947430817198394184436922575072427342643665917, 3080516739494460477657748111767941482024045797587058388950619118994388252853, 21486496065617100719537932626843898998311175055335457507845650282870586541596, 5371049178920102602305531530023787518286335086323221270202212974241707302466, 3074817222296007572297581554183445947239252698770067839721345984255386069425, 19180807038569629573914331337874446591506172622522351734982093457681161813141, 16937785199372956273358037645552299688842385008757508130180245705952406225194, 1688218397616770248184651775433764527272029131542529408516364801909017591719, 16315958669815317541884966612581197291281164499674338063931623110684590850347, 6218230753007070123505625054833158632732536069700963073464625252554943737669, 17774528060285257656595928889288330429565059134928074258373583886985960212139, 16197131592052727313460949906369199026477758140133103701908949020106767192893, 13418604038232148873269488320329340508522225417123160144993642839875173062296, 7265658443160253752317166706266927598319661172006072732797351716897681315157, 17200150079219747370109251547638276280610591698078334228421747259741754887, 8627121890622175767416692555014275717515106888840919734160364408960047296494, 14546964505431549758350267964924534495477687922558528647552728692912697049247, 17132720822762740343718421124251772119916072270451579802112353604446214831761, 234333065870376500756753915306346778417056884715946003873280290982247600083, 18375643491701271245209094287106352436174133929245169725584150600992143374298, 5158448692161567615645197008737390561357077078129599243188536485308363800282, 614161645152783610732075198073600394068518413590650990586931263981193439341, 12661793104597977909223565537293318966803153852970198322604479648383643541371, 13041905650419760925682179803296711066088286278603171065755078690359168540579, 15006023590144168506070897325649191051975999212058008674224953860265667513015, 4983349941266961584317889823965291023669365981564144622292227613558024302012, 482274340065333833495445682213681402212945945150526736364263233985449810602, 3966893131006556898236790392613869798057510088913626163333804949895810673044, 20923301526284527685000591080290190641416245135554916208054502046381491809443, 20838692384005825835959734210506718428443540957544929066941550833051093000166, 8282357714606447781782716442854085217089572080066047419459610560432999443766, 5410651444876169088887579490283094453001167796545260026969919887357676973543, 15276966646285075387317940436655285872037988805762800567413073418506412856419, 15066911464727337689573664613158712498015597773345106524271610486257089622849, 14583790985054968382519116885383608902981814292128186470697458065499359610203, 12059090796146479535492139954279038037217093044815277624197659219529427760034, 7273811886044732271171500579064359282424476926867187108258957006777685922641,
} else if (t == 8) {
return [8243355230504186170667337521705529968548180153769821936979698914169521362326, 21549235422807751640146583237936799392598740234259041629069949854834009192195, 15309683586299089746803554818142261058154570215179112411063662706557055610156, 12007539402495575255755232938576927941514879725482443887151392201585760698040, 18793669376013417649313139054009540629720623019893420956495818743913188610515, 6637074549079529416739232814950531409613090469922787253991308038219905474403, 3042007484821627445120830225760006405192082634864137749621636257026891883326, 5337388510268581167254715112479133594089770138749507073603490761032513368106, 12325446798142239188409242319577957593792614990556679862642230477712636037037, 676789245562467194073706116744095779362669155912771165373940448756070927910, 5854747984773506278911353281567883752585612596682487681686710970786834920041, 11245406467967785626327694659468342056789182160059009120973665143197638081760, 10395601815816075071544509552592627172226369015806880764151195346316980080894, 6756096862783612163697577917108261850810460757753491809406999449771712474223, 1708595072322964393019739105130946639405776432058599259998973103484499438306, 2817817145890818701877539103826217929456570347854153048034669346981432211659, 20337270972708498869284875601749656006552838338471813066271573323209168221011, 19192338172842323468707146045612196807750411464817516820711948717057036544820, 17223253657227310295312621282100531845543865578630870272599545474783775759681, 15004735209586276209064505708625280228119288986650187909395010184201059452346, 3875652974956649356154345677088455126258183810851242537013757276075769588050, 10514447960615206081458524578173743817818597124482828867666984705327684376752, 2087647010835075851760610474040959236825470174942075295716631067964093542910, 5927163251920754154392384551305623830535034440727310604898855074616515892551, 20585333621997037505291454298836355589763292536744926081563336065939121006537, 19320876518201905459682928158170419256739531666800973485138890064423348282196, 15942638804716709831210239594904570403189415026144938623559274984027906868220, 11197022744936474661934096628367688581641778841814728682794507017845346201383, 11034020922250561671038205476395109731446686553549026383358725302157324264144, 7574933006942933995255906769787776608010920618615581322603847524789684181970, 10061361506744906780155460423367413099657465765582917482575074226383566926764, 18611343221859570540963418999548488653944851224739716224660835306206658947980, 17094203924957299390365889251598099482992645049968199405515681968938743421467, 9407145832890449495071969940777105644547801064593141904558463573167881762713, 10921438560879150587765515492087524756046482460218342400194862909363870270743, 15101279960899220452674629307354995123411280418550386595937683027146194547144, 1872357133681596467751878560069114718371273548294363719900935160833598069645, 15505500304018853111989216259257978796595506623204851206292254759641600763191, 2079667978353221447444850850900204451820443725835104896018664141845782871343, 2852655320672908960411014862634757863509253400797831983637863741066632490909, 2702824031197306101989338159138451445088523866133498139857862801497066633794, 14553308731276493692643101846551382187575566516925133957384350697980935154102, 4314969815396483242407853639218064117498232660761075778657880116870422414637, 20236724297078811959918602376319440958076910292454596856154100774072250182183, 6360017115980704736383763605019264589498600998515606807745670287390050560160, 20856970531105411628054833058646203890148287930330473527735908484791842390307, 17691356258507144960616314395885779533907781694329041597441621553108536658757, 4464167934150673174817562382299722091160711333547138388803048452674668158635, 11538922347277268848344412167140306567742076984016453903533772667841006045703, 15558861252260038101730449864896864763293561339637017072015859069059083288561, 931980552683520059135814229579184511049009637966018180567726214946979768011, 12746506550979326220422215987591117730943427023997792332255149062957909690
} else if (t == 9) {
return [14715728137766105031387583973733149375806784983272780095398485311648630967927, 12450793357728630597819493697261391961392738728208603858426218806728799382497, 4427733724068610336929510244982091587998132283636864368924406075658439074153, 17863554236640577761956319447874252524561947852685470820159498661269344021716, 10723868775598272126873918500257797117892409794706524915527428530195343520361, 8041366806917098496431513544630989490693774700064656765914266570204855843526, 13046986480231887538692223126751085950758763070227069247275787663666591811005, 20228999562936372999611354929112125019466353738760451044697249912024766542482, 14238976012080913074226552202264063302466135977295108038770514743089287570221, 19486717852389551661121716850619781027370627632295683938875312739716376501717, 15733057748709959668511822511174594221965585899587926036013893958610587491491, 12041333229715539748857491855115983195198694619439452683631630426350435252478, 1829888811413627407640409778757789140470123549237476514374669162490680512211, 10288898018349095056494632386514957183841700001184195479721999387950102580094, 7360553146019695788111059047354435502690072975650576744373916804385350955674, 17476063720528136669048514677420727796180556343667231122803521620226101935369, 18384724266969916899691009636435516722111206340289089258767862754828208946542, 11046121967047431151707881264774621308937270618998625466342467829704953599782, 20018232138773775379089542131722766973741687507582662224374276186775807685863, 7926534193496947015875888176706209291021745851605316909116853588598743879034, 8826996877877607049084007876351017199517432230182001641783930871320527792100, 11760708819943554023765145606995747732169597984739408998714117029765838566505, 19598000655770319703844060561747179253151181702222064644764822676806532882514, 15036675263180992517064890091049355832990063162957265821390555448206776251789, 1053420874580688637503969479036991299021138740018858993455108201424412879748, 3723543690610038931361367959096800720510056325209292666118208798533818425035, 4599370243050726453512484851927735252841106375733105184316191846221056036380, 18291400382386598447603657416871816375751118990979359745849342284893280004873, 300341627009231088404894405580745838091318300821994947846008201887884150151, 13332605655619720841053062902143052543375741442250678582318225211621890248982, 13197729598850829723360679245789196039442968018972826673455394330035263151299, 510788688496484172389408566109007465667555285205327059265048317979249570221, 1685584118031999835794907889275254096486823415278284757369286336252006457602, 15103945090904102223538479231258677032197950627619049222966748226967974852043, 6653802896618953033344296077900828173967467309849915708475948018848254380036, 9254803560511166426410537422101769642611302194250107918342410310963831784950, 17006557344160230194691541621666219420787918477303225545533644141096551358258, 773112329554511160545400721342977593377624843987783062638455005748446223137, 6671483881284330250685026918783029584764740571210869197688044338476895092050, 20812941492969561606721983530907505914064782270990490150214736286311482532652, 1156984923268097592347582093730300227184163551449762803735684309575717323017, 15303159756724065068145651405407765401796657934219121639364061501460295743948, 18999785075801878445291021498876384414176522501978873700451842582224940767334, 3782716983967799050957535371991538595453996691838733068933109780481907925378, 810443910646366078824923626573819081371243815242873044781414798707744583851, 3940687718063184864573934886068875138239553970085689518511531571139105765743, 1222092197964451545227395363538155091563596468425395922702697716100572937718, 11901775018663948557424314950737290815973735008800495766054692238446226616230, 21839369981774608005059280910009281502958794510307248992429390932011110951241, 819873152679629471918450179717035855395702808145570990556719950289951175212, 2918016794043041559376798791171848118057043459636680115122516324180788251680, 10788401265856066217998495397128704450484607734353922353470809976686155443188,
}
}
function POSEIDON_M(t) {
if (t == 2) {
return [
[2910766817845651019878574839501801340070030115151021261302834310722729507541, 19727366863391167538122140361473584127147630672623100827934084310230022599144],
[5776684794125549462448597414050232243778680302179439492664047328281728356345, 8348174920934122550483593999453880006756108121341067172388445916328941978568]
];
} else if (t == 3) {
return [
[7511745149465107256748700652201246547602992235352608707588321460060273774987, 10370080108974718697676803824769673834027675643658433702224577712625900127200, 19705173408229649878903981084052839426532978878058043055305024233888854471533],
[18732019378264290557468133440468564866454307626475683536618613112504878618481, 20870176810702568768751421378473869562658540583882454726129544628203806653987, 7266061498423634438633389053804536045105766754026813321943009179476902321146],
[9131299761947733513298312097611845208338517739621853568979632113419485819303, 10595341252162738537912664445405114076324478519622938027420701542910180337937, 11597556804922396090267472882856054602429588299176362916247939723151043581408]
];
} else if (t == 4) {
return [
[16023668707004248971294664614290028914393192768609916554276071736843535714477, 17849615858846139011678879517964683507928512741474025695659909954675835121177, 1013663139540921998616312712475594638459213772728467613870351821911056489570, 13211800058103802189838759488224684841774731021206389709687693993627918500545],
[19204974983793400699898444372535256207646557857575315905278218870961389967884, 3722304780857845144568029505892077496425786544014166938942516810831732569870, 11920634922168932145084219049241528148129057802067880076377897257847125830511, 6085682566123812000257211683010755099394491689511511633947011263229442977967],
[14672613178263529785795301930884172260797190868602674472542654261498546023746, 20850178060552184587113773087797340350525370429749200838012809627359404457643, 7082289538076771741936674361200789891432311337766695368327626572220036527624, 1787876543469562003404632310460227730887431311758627706450615128255538398187],
[21407770160218607278833379114951608489910182969042472165261557405353704846967, 16058955581309173858487265533260133430557379878452348481750737813742488209262, 593311177550138061601452020934455734040559402531605836278498327468203888086, 341662423637860635938968460722645910313598807845686354625820505885069260074]
];
} else if (t == 5) {
return [
[16789463359527776692258765063233607350971630674230623383979223533600140787105, 17179611066821656668705197789232102741366879862607190942874777813024566441829, 18653277315487164762584377009009109585010878033606596417396490909822722930739, 7373070639853668650581790286343199505413793790160702463077019294817051722180, 4823864393442908763804841692709014014130031798360007432734996408628916373879],
[19196309854577132760746782449135315310664418272926255500908899397538686486585, 18123132816088485879885148351452823314623055244145916622592591084094232513914, 18436594886553181913092702411547018228276047601279727265790147051821171174455, 15167500404313194506503404655898040457721633218143681920692711693000769735187, 9437986152015460505719924283993842205604222075968464846270136901243896809793],
[21445376105821232747280055223032050399373725161014449207033808524504027971613, 49684738714301073369749035791061182456037935161360748355432247732088942674, 9826409059947591908303145327284336313371973037536805760095514429930589897515, 8494798325496773219358794086647759478982958403252584257436898618394561204124, 21251937175072447337747316555423152807036003235223125066270735279039060889959],
[5539100337780919206842837176908516952801756637410959104376645017856664270896, 6297628909516159190915174165284309160976659474973668336571577778869958189934, 12792263637464508665199868777503118105486490400267592501708855807938962470650, 17254685306085558791725544672172906900581495686070720065168939143671412445514, 3590396502942934679818900672232030233017710909687947858184099000783280809247],
[19055249881366445073616526879263250763682650596233071589085239500077496415637, 7367697936402141224946246030743627391716576575953707640061577218995381577033, 1322791522030759131093883057746095061798181102708855007233180025036972924046, 20456741074925985565499300081580917471340328842103779922028754640077047587707, 9059147312071680695674575245237100802111605600478121517359780850134328696420]
];
} else if (t == 6) {
return [
[8266021233794274332054729525918686051968756165685671155584565440479247355160, 7947823415909040438587565055355894256799314737783432792935458921778371169026, 16508811191852041977017821887204137955816331040385276110261643892701458724933, 1804800467126006102677564831888710635194614232739335985819349312754063580223, 11189892034806587650995829160516587240879881493093022855087765921356611070470, 20567450145123179140729389574352706949280207113956641415022972885523439610844],
[4666756311257455192796774305229624459258864488677689058174087310651786875914, 11389253665835451896363091846189307652796786468610595637047377864063404843117, 18793736599347263150867965517898541872137378991464725717839931503944801692688, 4206344588923325482680116848820594823631536459347642329098796888497153867720, 1739462481670645248707834504605096139894257554120906850613041004917967456145, 18514227342636266640333254638454588508118462110178719555586534011641424431745],
[17887039315911403193186866703775654467672391491657957999455462537283842145802, 2824959020572825365047639014537190268717891749361604043531643698340708119767, 12521547103713919592301476538318318223836047611311454785951907894055964264287, 8658146183671258251984364885894342376430874614261222570603159082682815800788, 154390145585284450772861151318029820117470958184878116158462181541183085587, 7593705166056392393963956710828665339496927193740869686529339432486182720653],
[5529559239163081088908568555890212324771345012509269613465629182165427812002, 3729910453162885538930719732708124491456460687048972152311428493400220125686, 11942815243552870715777415109008273807076911177089425348095503288499102855779, 498938524453430895689241565973888863905147713935369405079343247530256066618, 3976257517234324421403708035200810671331954932478384823208414346189926720724, 723540703523219510043977323240437576248315561543814629392162302024056718473],
[13306548824219676333032339487546407241767961556934015003605485324283250885682, 7970147269291664639740298762956131361316495463191268382513594527221399186752, 20633313939958767604804835838065337107615699351647541991788258289962727735454, 17162090859520817529294904484646695645841022315617926715432606252643123848792, 9181379842957190051440498041153333325098774266789773971685141362947015398641, 7051606617662816798224904133351061549832959857069896192072217769241273559278],
[16619522548478824222688310091434959542211899852679631815023615875678448806029, 14965311177811968100298579672135357167599499478246106482433786066289128683961, 9792733250919070275775594069208673385381167169182805600474820364274865306108, 2069253833779081039049908513863485270550301879399727430830923273191877809560, 15847298987712771667136245955631872888473964330474501593909263901393348546986, 12244443532166430060291409356011430759892629145539185535677568234713942157668]
];
} else if (t == 7) {
return [
[19332164824128329382868318451458022991369413618825711961282217322674570624669, 12346323761995603285640868741615937712088302657627126374070962894016296466118, 3913895681115272361294397190916803190924061797587910478563401817340941991811, 7048322889096718105055545382948709082135086733564574465991576956878202831861, 10375086910057323893637057154182902576957472442368661576421122036461645295833, 12765622911241487148932810040772504127756393086809438933166282251044289864727, 266900212758702307861826326591090138389415348463003233900705815890364224151],
[14435131616556129905356866638030823183270286404767286105643513738132789033353, 5780976801287540146775934937953368730928109502001687434229528186520268917700, 1618320442446662026869390273942730786145909339107736579759397243640902802126, 3818399583522206096165108192531271582827953520684743806492664825009577810261, 11764506724346386316602508039052965575734225646587104133777798242528580374987, 2414215974836165993714858157462355581258152126063378817495129367240311967136, 17609437036230923129211608175600293197801044251801590649435913902851695334081],
[363438080029711424794236047863047716381155074181485245036621530063262917196, 535766679023716739184211613469394818313893958493710642899297971974381051070, 5305068908469731303772738758164870877638068032868328180355958394150421214337, 10807632568240507366657354568432178961148417327580695024415275247652313539292, 15964415873358391713354948903242729080763777490509563223190335273158191600135, 20700362719972015883260687302741075186857660623182772413609788566925949033885, 10135127975676256977820296631533839366076919827597067890970660746228807376456],
[4251490167543116819728642817282216847143714366441358372252125244838181656331, 7745587495915033527847242564710473705100826890903278244320948416581724663023, 11741113129223221800185946819924457344647035336264986754437921049066977440806, 11630296782890656599545188109639399768829653360050213193782325240600583381364, 16861140446185941149398487176581839232380972247302922484807333229513905651035, 365879246117123675211400356410703684399715291171114630107795112994207447819, 21725607857580053522363567649763546934441685061337033780528788383243719579033],
[9222866548596464928765000608129177609426964853736257576074550520759533736918, 10261578281201197531384003420612639018011405529775212563256392340336951230146, 15644037447921591571869862919382888810859308861783088910843592577202362807673, 12752004188139535619565478547449108772137477456363099481095747591698702436636, 4205805109630387448825516813913983509046636797101589615147198457314360427718, 21047095155106717901091873146599497621258071512562421967648909471775919992713, 15624165295872926124160584750951090817255240214488120310950503163805737026315],
[15064589937731741958666763896598138037875460434244947486199623542160035749721, 1801577872277160959016940766173040841160105238799805406938450020949902989173, 2896766420608048344829901127120623317655260981420052771341833288256800199953, 12828791469509204618898135640019714232831708508424682785876476343251730674999, 21363471986981372923191391880511344708743312828234098289107697080824665183315, 21372706354350795416381912271616633829725494570576895047490974943034914894898, 16006531510217730955981102005088687858079561573088629102219485906666961331083],
[2389357602244845938251345005183369360523566673990464798041306722747500447645, 15275955107196234672088664710679934029171843237458844492987233368659104714648, 8038797517535218686870517662905230585331773059774130312418943649247287196930, 17923922393436914864421862212181654800719733137689602673604754147078808030201, 12890519745320143484176500044628647247549456778462652469313611980363507314914, 8058516556024397257577081553178859094042894928866720408652077334516681924252, 768425396034382182896247252731538808045254601036758108993106260984310129743]
];
} else if (t == 8) {
return [
[12051363189633051999486642007657476767332174247874678146882148540363198906151, 6387692555402871022209406699166470377527846400909826148301704257996818597444, 5501161701967897191598344153113501150221327945211106479845703139297020305204, 11704372055359680530622226011526065512090721245437046184430227296826364812961, 1448611482943320179763394986273491989368427112997509352702795612841455555221, 11429145481524962708631235759094055797723504985787912972575745356597208940857, 18021858528471759023192195347788820214752298716891162685115069036283008604659, 19817577944622399780828745167469547332167999743980557486183403063955748437619],
[16868980302925985719076889965831700407328155411673408077166038059874616424216, 14717432944340806781505761211058502775325970511884444497202848327581753493322, 6273484270523289845253546319956998489830555038697388950038256377785540828355, 7726043103954429233325852791166106732104332590864071922310309250010129731951, 21052353119157611359715869265647287129868507410601603360127523286602350622783, 14881796557136180514390287939887071460258251160875710427576954128871507002642, 16341327439981153879863707938117355436152690262312411284193970279829974799334, 10737675906107372302108775622264379258926415910493665638388971468924879578019],
[17652699767629314433191915267767147860052614073432922215674211498672835339113, 7457854400138129895665591719907473144796504905294990100367501377050420942800, 2136850802972823585140870808569264373787409642804109426616292140046700710743, 14029467347298896610468190615212519453678316548442709087191045978401072380889, 17927699952921266007590534383984238136710494507499176330493504416180410161683, 1404719213830610030709583332543456268094679432456284386108188509031502237811, 15774757292079018355173698870903422490868220545526384876021336136892926326596, 13992040374687149195439840459922227749294794072303579532004750946306028893274],
[19895094843870397064274579657905921299619388074084417486420154568847155746891, 943833985612967248618844364501030453998731991825395875139617731659343743483, 18334641092245356682448009823797080853859186519922476229272838591594967878678, 12440287044655505483131716236615633401781045711053210640202766768864619378050, 19130942564098572936370308509908873069169152245172660555660369853346605570826, 13687979327148217614616687417475244897906227789285703940171633508277844471062, 16887921327479880141959363366262254722342925451159884082370074726344024008329, 20378003125024698406589040864014894045124234695859352480989552885205935609512],
[9961553412530901953022991497331082655746860319830309417179972582392489275965, 17755268665220780466271147660314410613992814315871705414495724015443459797439, 15394131279964876131165951719955566821453162041574233072088124095626652523043, 12668230348320365182085867728169435383987570924921845106243310905832768752125, 14046812111383844816383347755263287603387502282980410255379630204396960343368, 11590093969266595252327261214735156204516524792938909229175092594303424141199, 4623517074925959322927421514289132524032863498392441375476410779446526502799, 11550389531965919926150256242174358326491059727918559332939872696684299343135],
[408487396317981846281976563618407581852133413686169882346565860317912856432, 10717757571561029382519744040791773994731123262749372629687813122941078154016, 21323787615496251932181222397986048515693661833099659753170924658480548866921, 20780799310067873093555276926357624414275975377319941015818682052081980020892, 9948385944800296129032348634683354181546876394979291412116493575442898426065, 4957033413111065858035065225611730571499258914257595411830870977545212164095, 5227254936689728148737265263965107718869714128941995977191096572191110991079, 3582814872786080867997255427740166393615552773099677831398251586195329933975],
[2136737803483410555580163900871515004623198990079556379647848364282254542316, 2965752098571712086281180512370022839542603960309127077035724860894697782076, 1478525086510042909660572998242949118476342047444968703549274608283885678547, 3563375996604290844805064443647611841824012587505923250907062088840679700555, 15461452581843517997080348781604020486994675070532901120353124746087231692278, 20472517020063295821544268171575414161230806406668271887185150097779785573889, 21058001005918321995459971112208002381460494177332965873048074199074929946172, 15805746645980285645504697043988763170971539673993759868487715403982423015009],
[7141240965656437676130015766799708612940092856280620325870466265817008351948, 21418010338098024788434337801477243267248314524079104488811186206038748626642, 20272108634229595317682817969506273496034097230124371921628691470754475805838, 16734095147399743907618148751687506877774623133599770145304816136018239803101, 8439324632051181834455499457268557602816180314723268640869118054114888151316, 4953900961796661020464968131122569974581908893169105485631905994366550928492, 18071625983692455679240094911529791119099077429122520426399552756115503123111, 19638917592063029281156873227053827678889868373299664608974791764751784473040]
];
} else if (t == 9) {
return [
[708458300293891745856425423607721463509413916954480913172999113933455141974, 14271228280974236486906321420750465147409060481575418066139408902283524749997, 15852878306984329426654933335929774834335684656381336212668681628835945610740, 14650063533814858868677752931082459040894187001723054833238582599403791885108, 5582010871038992135003913294240928881356211983701117708338786934614118892655, 17817167707934144056061336113828482446323869140602919022203233163412357573520, 16618894908063983272770489218670262360190849213687934219652137459014587794085, 10883405878649359800090160909097238327402403049670067541357916315880123123342, 7439184039942350631846254109167666628442833987137988596039526179738154790587],
[2727663760525187222746025175304386977552466570311228286110141668880678011929, 16992375884417886634716738306539629570444547136030480542879886913528563834233, 4178586893949624406750122665277033849762243490544460031634329370298105635905, 2517914797385699886738929430037355069462619900197972886482360691236776726214, 20164173810534657634631187494276970100735049909727379228976555863615716408280, 19970958827248077001061220127605534603528515080207197493660642269195127427214, 15606275977308968307194602612931727810866183872589808138812916593200446820753, 12261436001550634140750381230737452634746867040398895669545077774504957433511, 10405309809257831434323731445544896504541938387524726028487604098725193737428],
[13408856444092113657034337770571899796129642125690066226794939383190876435468, 19768080898957882918527124226120459667739640387901357739011662191034806046251, 16749889646056241484852997428132695501278739424507088920371060969471495213919, 12331609790192161246735870679870317366088443875784324655482358218146673901073, 15769331739277556832196167201116801527901089923090632364403958141614820528626, 5227172275505968397128736045169568430462701766148126842874241545343535393924, 919073378344729780131814412541912290691661039815032069498359347682919854836, 17858725475505870077023114050620337312678855554361132257763133392017321111169, 21805188450184460363143840112266872832328782034569970452376470141743078343745],
[15808413311863154368918155104905222670782553225279887458053980771135357021692, 12828907214414139667587331812274388831051429093098655261887619166452245292431, 19323880880917307340820066456419195877039970908109908221992925424585030574269, 17591732412986269470826282099678922890996647592922237928486497997144096433314, 5282593184575641056912422403901924986019740793240905758215569065763629999318, 16013130707598525718519250412251656096494468043256226360413191733653074896117, 928381583587170989315021718439506896903185927814675820160976165627097308915, 13354336789663524324458402003354905134416094005220899335023797754517805691310, 8780135673134081873589118311874067764073719549433574820315100541871522642766],
[3334957744389892864165113989538814646945861179021194859030934481494560681812, 10553413566358881045095498839713459314577909144176577153981801574128014927353, 18894321506279909207228932263261226433242541255661384643559047811974513999438, 20211894014628303327332299342564779073614790317614402383971270594430055013904, 16723480621932556506775906903415088312771104391224076734252099577243237899106, 1131872547334579236404174618548801749854242069301712398106619948805304881636, 17386814048141719093058723520379257085987299288710382497237609774141718421404, 13729980537487612221640320393867198844745491357830417754869369043292518007370, 15860780436383591737179656321807464721751913977397035980422407138400867838633],
[14708550460111247278740231297332510059116901767161326454481923990389610737973, 3132820559166321299152015048428879769905404947939291493327190426785911502819, 8658132367999084824971296219169212568783540935524918908332001856872807119287, 21064783047501777742084787259676320053480170916619513986794406566953069418035, 20731000104011695148048713576219525164619502119638555785381543866326561323, 17189725817866212967650950297463469529475851286172280116066228706121595462088, 3310440878606659516028312898499559492876015493892608849966645073367377278233, 18463918215326370595980949760897480127622730018343709491036454088497976892863, 10894192430593140913557164014343360386192963621862346779515699758352916852228],
[5060610877870389107953459328006060153180283860738879092399406248484265273634, 9068988823145592214189961315730261367007076042069390630024839612151270430414, 13160707893890865447331361630522644819624543031829773191665491273833460019183, 13920568292534026180186486064598876780779571940988254327823480971820885713801, 3894011501178134026216736522445829906312115650019712122802932677318433032635, 17895318821130376385979570244603067634449453259842805202694945793852667231847, 9777993060458301797155055013115849176281006051494461044565335406558308324220, 16521293541516305251718414192107787058980727971856888501176820100904791554730, 7744063601405355255689420547832904761861257642931934580021876189691881462544],
[5444730929053688962452159157646022068806222098484627080046464163159451208522, 1524118152994294864739915388438939180298324297960159419600850033701763764640, 1334622237342346242862023763160346671504959163544406543315614662442562816653, 16126317914306849967682996412350336172782726693375105190424151365140854833923, 6345975085253358297751050638846919833013142450462810543971050115910612860460, 2703875280053263252177031410407166981522153304496807669518295313468095058674, 20550626512184448884716175825490086259235894802178999642552696391947509065676, 15013718986700828670892638677446258841869291160144196138236407826511808592486, 4682264015512203762723381542642871160915706748420642731100634327658667608042],
[12834108073603507925748862283503586970613250684810871463629807392488566121352, 8422606792378744850363509404165092879785007388646473871019846954536829739979, 9339209090550177650528715604504958143078492516052997365409534971861874881780, 9141831918422847136631159987994781722269889810731887947045878986971886716767, 18329180549061748373684938917948729366786279119056979983310618862430068636631, 2009551904565170718789964252583363785971078331314490170341991643087565227885, 3859729780601667888281187160881197567257456581829833310753128034179061564519, 8535335342372994336873304745903510543599314397287086554558824692658347277251, 14148514289641991520153975838000398174635263164584825009402034843810351225518]
];
}
}