
// Make newform 3.40.a.a in Magma, downloaded from the LMFDB on 23 April 2024.
// To make the character of type GrpDrchElt, type "MakeCharacter_3_a();"
// To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
// To make the newform (type ModFrm), type "MakeNewformModFrm_3_40_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_3_40_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function ConvertToHeckeField(input: pass_field := false, Kf := [])
    if not pass_field then
        poly := [-94580724378, -216694123, 0, 1];
        Kf := NumberField(Polynomial([elt : elt in poly]));
        AssignNames(~Kf, ["nu"]);
    end if;
    Rf_num := [[1, 0, 0], [0, 72, 0], [-46805930568, -212148, 324]];
    Rf_basisdens := [1, 1, 1];
    Rf_basisnums := ChangeUniverse([[z : z in elt] : elt in Rf_num], Kf);
    Rfbasis := [Rf_basisnums[i]/Rf_basisdens[i] : i in [1..Degree(Kf)]];
    inp_vec := Vector(Rfbasis)*ChangeRing(Transpose(Matrix([[elt : elt in row] : row in input])),Kf);
    return Eltseq(inp_vec);
end function;


// To make the character of type GrpDrchElt, type "MakeCharacter_3_a();"
function MakeCharacter_3_a()
    N := 3;
    order := 1;
    char_gens := [2];
    v := [1];
    // chi(gens[i]) = zeta^v[i]
    assert UnitGenerators(DirichletGroup(N)) eq char_gens;
    F := CyclotomicField(order);
    chi := DirichletCharacterFromValuesOnUnitGenerators(DirichletGroup(N,F),[F|F.1^e:e in v]);
    return MinimalBaseRingCharacter(chi);
end function;

function MakeCharacter_3_a_Hecke(Kf)
    return MakeCharacter_3_a();
end function;


function ExtendMultiplicatively(weight, aps, character)
    prec := NextPrime(NthPrime(#aps)) - 1; // we will able to figure out a_0 ... a_prec
    primes := PrimesUpTo(prec);
    prime_powers := primes;
    assert #primes eq #aps;
    log_prec := Floor(Log(prec)/Log(2)); // prec < 2^(log_prec+1)
    F := Universe(aps);
    FXY<X, Y> := PolynomialRing(F, 2);
    // 1/(1 - a_p T + p^(weight - 1) * char(p) T^2) = 1 + a_p T + a_{p^2} T^2 + ...
    R<T> := PowerSeriesRing(FXY : Precision := log_prec + 1);
    recursion := Coefficients(1/(1 - X*T + Y*T^2));
    coeffs := [F!0: i in [1..(prec+1)]];
    coeffs[1] := 1; //a_1
    for i := 1 to #primes do
        p := primes[i];
        coeffs[p] := aps[i];
        b := p^(weight - 1) * F!character(p);
        r := 2;
        p_power := p * p;
        //deals with powers of p
        while p_power le prec do
            Append(~prime_powers, p_power);
            coeffs[p_power] := Evaluate(recursion[r + 1], [aps[i], b]);
            p_power *:= p;
            r +:= 1;
        end while;    
    end for;
    Sort(~prime_powers);
    for pp in prime_powers do
        for k := 1 to Floor(prec/pp) do
            if GCD(k, pp) eq 1 then
                coeffs[pp*k] := coeffs[pp]*coeffs[k];
            end if;
        end for;
    end for;
    return coeffs;
end function;


function qexpCoeffs()
    // To make the coeffs of the qexp of the newform in the Hecke field type "qexpCoeffs();"
    weight := 40;
    raw_aps := [[-369000, -1, 0], [1162261467, 0, 0], [3119016476430, 32303812, -513], [4613961459153368, -30823389604, 348985], [-13350109203715747932, 87947509241336, 4631921442], [-4644234166992797828698, -569679887088520, -206263539326], [-56566935045664726701006, 926992962792897096, -6009628140594], [-2319156847501829672320996, 2957557631558772120, -160826348093766], [-85724213328074970659366424, -245600718328174951496, 7342398742559922], [-15424263166030541562145329162, 18158126842746718696844, 119886169875921837], [-94251323327724803951117639296, 90210083346967387257260, 2713599485454965797], [-1746465149899861287424448146162, 1993160864886748833732000, 85573013785692403224], [15891132466681713607488089661594, -384881477267452673709224, 535700968025268120138], [-4978816404455885156492692275196, -68657285706874121213850424, -618160610527737195218], [-4346895037823430681923239732848, -201667380143741053206654040, -9922424675437324293642], [-3682354692725169372670220990598114, 1070048189826795357995686524, 18739297598471656124337], [11877802247039838403081390438830516, -40797069858395732496278502752, 268316415326914099849944], [-8748609634448992575740469808578634, -59490173899318957170646728400, -181954519185672837868556], [-66913848992150158023745236068259796, 268975823489974110807605973920, -14134958847187265579187560], [-1046888449552161610414869933078955848, -254600351768542882985531797416, 16913646293143984290577674], [-1275203394000797505244366782533503174, -1657466127598077977195490415488, 37917618291612159247069920], [-346238984373518386115880298576990000, 7387726361074650728162074513244, -36025060904612297141488391], [23075775579218152825452208915043029980, 1223473092054569924123429931608, -535217669648186338274861430], [45532570081911919705633055256618511914, -22960088488383637902717778869072, 342585993506572017292763412], [-446309509247833089312052420141905290206, 356097781736051966056741320193136, -2750728056131642504217474524], [630625285180385780910035768956265803758, -993359762365503020583505030219492, -17781530312633154168567565431], [250417515011047451076644590618181691704, -704774069421801682529894236895260, 22231567140029409885641081911], [-510751836456288288665476188998891823228, -2001469839173923569603425141751216, -151154128716965513048375389908], [-3803707374766239712754885243474434073146, -6637834931164194550304364838665240, 126477506944834264329229026534], [3940109725997122332916829163902925397650, -1198377221660912565047069054728592, 265940316306910181845934792100], [32247717096194402251684308968271018564704, 41241731871784885088174633575887108, -662012804783897998578643131537], [-213313212251566343189019627517221054417684, 166544846218875266977773264922957120, 1038782795486233820390600712624], [-205642386612174739843043736224499373260870, 663897953314835188624848973657319432, 9343138653590039485151210749278], [-300863845991351888393460208063865160020764, -796182215602993685477309947450375936, -1336619585520479812718475990080], [-1025224703518041165441684962198122708172418, -820406423829724649368625198250701756, -90197327195486434243819496364129], [-1353512528325264551335337324560385921401528, 70985816553122601439833511697102300, -17965116651597208019306080532135], [-3180954588781959095080878069439564742376490, 4847216756225497450171542099702251744, 10560747436887279717186268891720], [-2876693950344733767357988328771866420161652, 13201692761586873005988673829601510600, -188283792891354667768066187090130], [16049004986651012927501915400776057661924888, 8119978999077081085389601958697327904, -602416075826447971098201767157192], [17465462830082916734644449694698970353298470, -43289459833470344868886436880645098188, -880993333311646027910082931500381], [-24131712155914509187899118688214517138053060, 27444197617010426514941011910476848864, 1863754245923256330609411009539784], [16336154887986482920176079972630512934267454, 60903067057227720090356050590921900744, -2976893182900480675553250442069074], [-201126746598472085032466129778672968073173952, -245985995060895363221598300186714868384, -2822701611025930915934450287368408], [374092738773625891282749331686437548469901890, 85014747846305201608030615357130945024, -2637639685958412403899201335786624], [271221406067662955214638205880239944256458766, -21455947706800242668076494188237171380, 8120202437235920132452932576258237], [324064335456119576815809848695463531934291032, -44604261368649343689408083227948931532, 1165748087489462957215940769578595], [-570720177293852106405260095281207156767446756, 2486696437185009474208943795458393363424, 69690710077553222764408891384147336], [-905705241174015598443623218033798253069519488, -125467948173657548923154391601879029676, -139192265637424033152012917741161637], [3592384360454530392108049898095067889524517708, -3190802049250466917573876458350066729080, -6813623896576070640377122745632386], [-1708946599343379056311267359263234516625268594, 8410140419821022017608268580631881180696, 306191751451286897660543267277078682], [-9180110625419715389657149836100241456062733286, -8613074372100846022367972110650195950928, -205027550169648838117913855226300012], [4649452963891059564770771020751778346242059664, 21758862637378449787304449653109593090640, 606960306614636298284786890737944364], [-5660147176667753695250385915889129256284948462, -8031279432978021701428258536339965939248, 336414411339606115335783270443235148], [30831840079603346318222620818816236656928053812, 80827118895905642589678524861409914403576, -795666881448772451785686051226397214], [118825336685438510505492525944150669626542088962, 24668142691345001686151366178864529175680, 2177401132863487873630978359504062688], [-53144076398085370041645876135973865588874159432, -83520906476258255411071204452651318342208, -336116432580952957398007262132389488], [13258244066286663850021235080741618908578842374, -32586280171396063881827310996753536016372, 722744530972575148383195382101319437], [-64889036002012590467796762368412419751772607152, -101292549056514191359765477059860246193036, 6045765646398458259018086939737543635], [-265107152277737091029100023243753779233996756514, -263001548978338468219615484197860806235640, -9279400700040917747447205384250449698], [298473893438823829114894918878829855936867155690, 125963133843291122566989842369111064374720, -7835004284207181428523007973743992432], [-209805685222768404562894355024033683852591710508, 70705232437382957832334454475919831908224, 1992467853186602347857134884707785248], [-193230893815730003863997768353748924597890521042, 1274977245142529780300880923561341672528828, 2469544875037835628974938047513806433], [439057163907285917667498585651831663031915056572, 2225248826026721416368956888964015283087392, -47701021735462801990584685991793818760], [252040690699359705466201381203085666298652202248, -3957078945086484506882882149041496190713040, 81002756305992604651733877853476355956], [-909476361909233208458940549220381199104686354742, -5832813084517504794252413953744900046630464, 16123749433567967231484083795359916176], [951854286314749314457772207254435479225229106262, 223736140382902972937533524470981603417372, -71260517878249623889919076346810967415], [3180783702914311036915151051086235414061647186852, 17413435308838387832896216436580822081624656, -70935739900706984233087464100198966484], [-2964449365499823138667579291714853288694737577934, 15332704864097656249926441462217947684202496, -121999441905721194435224558599383552512], [18125015931859973386138324635080576080352360780244, 3046762908384234479949024199767693982374808, -443726528601285583390722251723754069702], [-17222234733263207667006134407136727523284823869802, -17223170098995050702814125743100331256657360, 46535807460651304001612695477963963828], [29240687451663546805992856040233598124429321916962, -22825548463292884111976155245241523448892432, 1144125778090077420613101559414241526852], [2015770220311125059446375399826361599434438637976, 28415858801894789564304205630217302857985752, -90920680323166516485032978821568597142], [-85899537714611304134862966323972541392736213885904, 34650137561958559632620881587169694916586700, 312336348246425074363634369507508248797], [-63917349671334091281887011235857647463510544133826, -109242393413217911810278501821314804376706480, -1229667310106763374081544310271139973844], [22548716048414665046144008285746849213660007731380, -186168462786484621876442625185208677770271208, -3343362972061769881283874185065982528358], [179029766523570651169648143623776063985390714498688, 55814168756111397943097087652089973593272576, 6218121826696331343371352637037496647616], [146380362550027377476768734301701072625797356595086, 503971643854685135530236784038601821522288836, -8553275046413714239525976626057201960833], [-127469895147690007631348060042295286350005446293658, 543838218374141215054599280520692444081087248, 8830455489955611379785326446275130447356], [469113427192170430361517286780824996296853180553266, -142123502271998181897418976806466118540401768, -7358439563005079552714740110704132192454], [-132065528312205941484439608084955343477747011360534, -281029950149539780761161670384438154949096176, -754089536340465884735031505062730754180], [1280615874239037354821545968142855689240761784012684, -779494709937133495343022860639009572485438680, -16687297816422998474040813237036476213226], [-217713076240596977039430377512751343187460206309810, 740788909386187263552113132277171170190929480, -37438662153550055034094464337670694143282], [802032528949107117017237347246724378054211695239824, 206603880687439527480711505332508180506493656, 34897647251646977078518268247267060588138], [-2054173102770878703608702198146806559021981225518382, 57896430079939437744169885644166125984793632, 38514923903382621938761180204686338215032], [-543073224303799439657452731560214386922340578370840, 2897677726306928841426345570454575159556057988, -25811813333302257563742928183242529815857], [-553527182366211483041938490240500146855630084398988, 2309519653311726978049310235337108025588021720, -73386500564446201379134195008561211913046], [-3191228307395378605668400288649219468133217290575358, 999329897063059002470679658288911655403728296, 105132047808415039637554124912228694629238], [-432660304601743495976224277939316246191568466108102, -3284906579549567562657104329992312208862270032, -44279887961970920563460267403766623239468], [-3798351818439812476810780347385149937508453022365178, 4069504359445549190944189812604932744154736468, -330200358697428138183611323173677057207397], [482035661499117632804644929937589886609457457258384, -5539648724457336738723009796988229836834253292, 87808264907934304500615910330669693338859], [2688657223980298475136152420371606979293331259552732, -8410176354449866866410877894908828636896355160, -16103907208569743085701979357936143193162], [15147666845018836348299523316575750861778323619123040, 15061603164560256535323981985676935520948854424, 104726876290261023166592695025589032922234], [2569590810041470536083601368226534627492635230888184, -27840743717784883283232919349354400707497687428, -373062317075810691664084482484422058137423], [-7020038734152314405854016300674636272724998707388924, 11366376396624679462720326706185080765471397712, -1140295324327874540526462187391439845484564], [51328677918648654729893224653392794108577080931248124, 13880166273924204602574713868610172256052118528, 27151174636518916880085725345687283150592], [19310614986864154101846395244932059375824238893681672, 16793538781892207572954046394647826121361757432, 862706025888086450349293916130762759429986], [-43197728223045391539395852154790290811342331096715114, 34370635059382708081688512193631022383020432572, 1118967463933820450257087827220276151800353], [-95283689359827212911240089260537867824121404830116166, -22129748811156907093945250714833655693895559944, 851545729954500085464249687201558647914338], [59289242193312261648461745231796804510903251616596644, 91466876587493724277626585636786453016113410520, -1147595734051680502897889588892242048858454], [-105574297003733631046623953951971885165311735090553066, -89758278588976087532345659422318438534492556536, 5580504959041294468754403527186251011947166], [141254853008632638430988018247083756264521003510860428, 48232923000466224729343069002271303331489290808, 6718501268703120548039222561616158948410642], [-355608142755472909598443913307750300040763189719552986, -53330656053448733509384843724165445097441033212, -10213462454608814104946058106389198619136337], [292485717261353347119856450614596781252539782172349180, -261984249832706840171773094690949847074981729128, 2708141208194993583231868686657205710485754], [-21763874381032839681639086373308559742076706807137526, 181399279136466380571732167265026085250516998488, 10451631817502416866079906177190261743593162], [670713503103660951382688153308552335173985179044166708, -94037464010961056784292123189138085223484418800, -4736175340737139258242123884167232881244804], [105451356667079222591930936291804112774715188467570114, 403382745917863755635464907918946165730681022016, -12208573994913062318406424376020936207081104], [-183985422489194755919647846097846743911390228427580508, -455058644261163844532886596015132732853133620688, 3332596944516908964335751946982006844576180], [-911078731096892267816815756573690110940354019455776846, 1204702869063517685202209753271144723226295698800, 1989468161198232649579063426022443150856676], [-526034302061144540635672635179465872098217814628675288, 1371252726617135598764850989435926691911439679880, -12008337085982268110278734389577568453670658], [-599736898141633276115596497102030421303955810360735062, -1356056502473220062224837621757400716166677861920, -14041406508271030222823974724223012085000184], [19931255392494483310684695113500590082348374782812544, 483047176018465661104449474288137118251600190500, 50650169232330465220505307272724942669031975], [365575887896506056758588729856069581266599275995415630, -162282498913887368109063557951214108597542537808, -709967990396146323491331027221636582908716], [981330875810888052897740435600323151502040955151725850, -1438729076357177933405274613256516866955133582368, -38535100461955802493805762454473234925624952], [-1351793372704158617694813981978194944739592355414830844, -1867197462368208443933013051352103951631659441056, -59056996308940960811413297422130804144386200], [-3402274424302826668471101781333231969274801716022468248, -1425837929721507274697672184170085093335791458852, -32146425231980332741767902550915701866386087], [811856860416051699273203126473534584659644883298820674, 1478766677232517279118759160295278348889457933384, -37399773203275704401869204826481513814056114], [-1092880185483136799062367764664579948543129315968565716, 934723091709039088528575228145890406292876375192, 131012860762795644315535922326441495619563258], [-3632303916060618210373688779426555136891929494537474696, 2342165385293020256850286719746414454380184321528, -188279354380511700560886231486963477304266462], [-953136530674868714993018968820002716074589183176662842, -3392749806366370803951217553136771773524575587996, -19445748517580082952267108390907672557496361], [9007745951089332102394035363330188086280567627169812700, 3246955290284074880686630143069765391693106723312, 247980365575167775862547424851439576142199492], [-1557195302549011770014476242177884770568300864842219618, -5095304059246726504723040303800723528956031034848, -212509729304933063218626124297261689615156488], [13381553648037810041550559577499278131471915089159322466, -6893600528910834131748633338936737228951001535232, 126618151095375614493294257890375459200692416], [3342899240902263680305844586597835898486446934901379566, 17208327008418758097935481489390614625773085123284, -176307237513220197466107467416392765808800069], [-5005162411439468462818609052889724340372011790025974652, 2066961559332518634747618168802476611882759480040, -28677379093929512852777085407275072631030490], [13725113836307031527400703586013707851564211808673028348, 26541941861889176001605197555686385702460730781640, -363933773264796873138131334464657375771213714], [36362332211923958930227422842191050315475564247328891606, 9232458471990921324651696966709142578760950958940, -546096479080832699623376400443886622026120711], [25942189697292201539062954865617169586868728365942681774, -4601240884564598999428655516919862972242261764968, -288388658808496895425374077012322450706435334], [-26631542791974518359438858566926555281239261554299657488, -37971309060633310942919811094723020024232117735512, 662085330778693133460468699166401863521104630], [-80570837585746981314665529303503464306397867221184548600, -14897867061426883492494811184899010636528949676132, 2688250271803691431333190029160359894083049], [15631012480234158716910198473508586391963922838812763094, 44265464907365333276774209813621460963145577637912, 495480885268369491036238934496244260446861338], [-69226258776768903525338868280776362456882675046555809524, 23470265768572942881884424092421312540378203184720, -1301908217284031781316229258270046035224298964], [-128686428080842700655154314130014111296474900743925653416, 45779206751328121590622059977747725357248112913296, 858485960041860060226870519225453754240183772], [-35005713919963759800535033508359568700166709530757328592, 14547001775989201192030537254693807126561219320444, 617738648484237755506732627858539928065188785], [59157888293637272311514653176553077582952228605391188350, -165579775167185560058799628758620102343968683482984, -1037260472825443821205197616062106940352233478], [83866550290101998110990281365065746646047673136082779850, -150000929623960305601057494832982844941437358824568, -453572495518266836394487805830442431869351810], [-22924861903327709114812078805007238385474665251861599998, 137707974914417271635435651864533396401084141998624, 4277100148356745549154155576610807381264181496], [-83788637080897560469578147297068048930986387442982545202, 145130773385653398963594224795765298241677868364460, -531760952894256507863114262352178488048163355], [1505056642609603372478551209889095963114512838741537692, -87198245556439697577522199400247697111922169489976, 11462852647869352356845394935534563360701648622], [-194939836499478995868931520179983824728388028190794872778, -401823111894918918730186729507535160013111460021852, 8012014917936011272901275514378265085358723271], [13231079393514563220095355935549157643781442124138484250, -62697654656991051073052140537029291535875567763128, -12183842797196460115121576095880737206346260978], [465500058540562236312461031676265633641721453647795533572, -131238422240736484035733921461936637029457967447544, -5236308511715741070286334061196508973382242594], [-19584462091689449423880212435891382473018291359224412770, -405313684009780112635770345851786362887070038753556, -7421151024410080776475181857729513231165575723], [-248812391541130559035840328259072100134673802167358332120, 450037375733486178530236480292788700763669955430540, 7969427171190983156758458833531050280278597357], [-358610011648971290502774024290610409941336296066200204236, 782010995618177534360151813877219607330870244229872, 17533549957265959875152077263889252996492661892], [-108174217353126032726047249503922590443128476054616876810, -282349648203480374123571186241745028960694718767896, 28837469834444827464587417215949137272878156454], [236137538475859723547203416422193496318751217244818936120, 209783537955785019382585561388565886447356306567272, 32703425941264440902436383490533571260316820422], [227601691632974058416724844052009911050762907849346007518, -2092359257314301787552732015266648378618560149529984, -5675823713591967678502008020567939676661832864], [-1166548453916394646225502750400365201172398716229985456918, -934225137474918880962508547229813342697378721096488, 38024867621291086602889592317186762665316544490], [-1225246539217840820112963555791323570967812663281500070700, 1165647465992064673388155043866406164351114564801400, 9922911463262223803276943779432058869426621890], [302986399989218376130281399426657597911478467506156892064, -1869140130384305152839847618734276066769813304163168, -27147298355705671465419083235451653392123092392], [-3710651118958858735528046503787595339214093621741286305402, 1015805665508421986338892970544496909299473776118992, 7998531739131966574499276404588507489734465676], [1664707062961393907914943197164262951795015430765115290130, -578801517675749554522632688470583553562660490871136, -751319202767981412675321213523593071742215208], [-748869833109243018928065785069226847406704102743018432196, -637330912297872155456329658404217887300063612149528, -10175316721004968642924298502966075162567639642], [2027953375915369914263248464606743954113046499678607226952, 2443325078970668859566929392030832905619889116198528, 26972674371287489639833399724141324313005998176], [3798537556294940104618256994622755423279530450953503201572, -153611466649274000452373053287284459998471214522920, -31995060378986350270039750879635760829373858902], [3296091889204418943568888272903093884789346238622828098032, 176390006699240647463281818064109380668799825741040, -121879431872535371169639910621259641478054831100], [2841057817833306293803365586006552386724471718196052462280, 1506745600450794459977253119465753163482351563161420, -118384834180059508790436182704793259877907539395], [-5073674962366967631587145473280561453589214413075121000286, -4845223735877666072506747165268234943606009971385352, 160732234004128468624455630174900465983674917282], [-1946712347149515624200148237309007798348650113889686886694, -1427153225953920853425538089979171599356121592860480, -84923720147082149583115690860051593705288067888], [-7576584844858240101033926870178397152164556512362097671386, -2207752581126201997352760878840551253061880492020428, -79306680706031807556719557952406269484740629341], [-6626618964403155684994381728496034177602502044426915480260, -1611595976658120030737893648202568985981723432179616, 188258254267213724312850161963206622940121202280], [342267156820995006252016838018270945658808173123369913482, -15251381599459834081464206335491193359176845329529224, 304844193275648639169638139711355583801614820610], [170103696246357667241853784982289371157235171240044121304, 12428852461147098359690014736222817460035664108372292, 330005649506937133965257101588079850180366305887], [-14194683478765515588354075979606682147157149390166607134876, -12629618478163268873090330514672087304910228683380024, 55327195476134172800080573495777929165274140078], [262787216010054126655600632529670795210498885533775314674, -6457510303570624949444542144513503889664461040481608, -20257547678021585993497242828829843393807700238], [-6873579522943334860758297043793552449330152371768123715864, 2277521408576085877897477575473772039845721939644768, -434445097696424126619386069930996146733318262744], [-6576845804395564470055615482533034305253626745808617473728, -3451322835188778627077329344344295882071936333832516, 470638375239600241363618308510454705799334792609], [4875736342951395489483295549524117284156890262918268236750, -7543523714519086306277624488701935096451985648606000, -656442943834520876600233572148042908016326598004], [44748025799648946550912602603750524554517486715982829142290, 12170630556106213909304478177728561999639197029858768, 172793502412647043997846062309950890880998485068], [30963796953840887026168450157850779601924322648994114275230, 19241314130515091922958039995438606926439172357580692, -548806759617378865465711756782846576809845588341], [-33683790691581080173413791310427679145570004972151639581836, -31763794002934159521604147469570683533370217199261904, -489158047332573716777988032051967122019608807820], [16553981389043940501396264390625417619518668637218510592886, -39699231655281839380089908371327251886647401608988032, 664768413192884442571429813463317668409931389792], [-24885150064095699903408523161120309579032029865980196631240, -11153550825889738583928861334962283380658445961942896, 966736062982223469077310264432482426170034797212], [23709755600292682404825654880953353547320058083178640732538, -28326352123293747905727936712032288900826329551581696, 178122022733822908634026954909121297150048162944], [-53665593919427139287925375043512137306102530257895192581232, -22953627315042581234004720467703615928889398263439348, -984493757484272006593617917475192162670866210035], [-17793585148315527332516224705052897648823346582766959053846, 24819934894195847129895582846666323246547689070906304, 654952503023471521259831435871411377659745219088], [-20666369654077089560954537374292902508118763423601354796076, 73029787482912342612145394687648907330403872764809472, 892522776181741131053523678924387555890777397184], [-36214555812210426602150082336133027445547695391513466654482, 55903268712724429502723825451498754259508539591864004, 1633932714690868620446485294765850734855021255935], [-28609300059415437877597218028089463541242502345791785588616, 17247771737704542378064241624213148041511326343782148, -3809132730341439373195622408307507020263014682641], [-916460775858803043631478864771753492808054937527593116090, -62211671620988968182258282477709432716262812484369312, -1513439121137073561555074187874417091774366592152], [37153103045775816081386115697294710717255998559526841290208, -3230538560347071246251494989950898994090906677433828, 4195164145028909730412373680302903527517888292681], [-54572702310945583383950679643164044855299983307273296687252, -12419283074553558798081922933197460694226062086493704, -951974057032998594547503526274464498656953631198], [69696458452953772098363407183644295997119778599802183361070, -31309003840395283736643266587177995905139931347712264, 2674546674154693906862698538728745550469723387618], [110815214069795569692882894027441810840070099302595145763642, -168757924526289632488646180326551236139110690430215808, -2367692702598213553793941759294802201782735156320], [49139123549888434200354723025464025603176374271168481143984, 36688809595062433411922838364504940719428628311657472, 3176928809583463227719562464690901228047042112768], [68137984291815489981256240441756440849544336870062928834110, -38166653754639137545532132712329193845723217556866892, 6054835310592824398012243621523501579570562048963], [67749948510188672533254602929940483615145098587651964153174, 5768035704906305260600359267095241414856025735292792, -2077895671709025062124210314290852021300412214078], [315672675092692464963405398504510585643767589036627097614092, -59532573444773880355764279408687778375580224013377696, 6915295566396913411463812829039132805589963740328], [313308068326163427904316834368749209246284425722499763700378, -186618491898613456990531678943439034474452357166322032, -1168600438094128470053907664674247280866250241764], [-36710379042053211620050501883324095268587671487023298719360, 902582827776682912968460575413814390094958879596741440, 1519677443714796336904538538428762703118061084208], [180422960999230946550316504402797677826732541279348431023234, -70173953520210210892789632660147757004615578120901664, 19675427800032858227137590618058321903960133117832], [426480643934050716717411312478829030688950576306451534385380, 175838984318428658106817006911645049403486939636953088, 3788303334185446970746027259141928836115710653440], [-469191285303178218631152898894559136119815823352526001565604, 115628969274296115035776148721526500240607931144667072, -1098405939070825800939201318784714993821495704304], [-802074861800709613099448843748286869994254276156845741809482, -315594653108519113885883116824116665513998018628574044, -6069091946498923856004484514593789424406049093113], [716502649812975544260647407290586256122477362019783707076044, -285541811946781345963452572900599651369020723244380480, 634608424581970169769381205637538224997322220880], [-408637737840518532312993873775140171271382688227697713627430, -835843922450637232221605045780611670861416508733438944, -19427050619958231640715649812941227057952500052872], [-388120264500391737647125809062616850594536098255316535981102, -350262281959634720454110081078728403546491150888397440, -22576197897099913805390451531533968591461912075104], [-683564634077334074877254675857609590494090623724962120177930, 466853199032656407527999945417771758006162404092223608, 8116897279736264440859070498797592281271791669890], [-807885420189557168905478443302317836491051779240169938463678, 2033323071783621375014767300868401932042087736277963936, 22600002596997742391824009524439702521677994446424], [-891675515567984242756409084546424930215406864619482963359112, -753012671933781010895852829720795187601798967727688880, -15105030547922139070487425740762655697414488702740], [131206118763793245794399732147685812982931423259038685654022, -581431500665682296983680389465086042371008474923516556, 49161301764246496971819211247625003827494058767251], [360276675062019119129941688661961379707462338947380963930256, -361009125685399731100765555353710963602599062137887340, 71903057658856678366366953850551691501482892851979], [1432651291418934005202327087131684179596131470332547612422686, 1535957317191102950111980454097678251466856489735127816, -21194693934740204615579063403607694655758917634402], [328643764526268391325119365895185385206028964224234350883874, 1274032285300623235914730118709166749201543895474401344, -60494286735129345519127112651326537934321676318992], [683330628974087714553207981323574758252438954202726512525892, -1379901762497041634377729894619359903924106398934269656, 104760345083332960337706441429490063719546911533206], [-188346941886330630881072662682656607329911818853093655617642, -4560043714216817273441438244759587584177456614895906500, 106875842637922285805304990632195692600170588416769], [-3093462812667097275128003849179308395176344370047662064007456, 642469999532080476078119285271026336229432937995754788, -99864264125743015763379388794671691058163559193113], [-1989774893074796848252983528586118077760797110452508792430932, 2422884577867373633854455031349267628936220107398441656, -32673549429085997914013149403043914862081223348494], [-1345669906835517493691117316760921585938279394771488073293318, -416994600893266366631787415856589068886598834998056752, 49601546498412717695829248986599424998148934636940], [-859297362388365232903768804828338787175402456094375775943260, -1104409389406647604896502807406722125427598193873883624, -45759156200950093380232896864638081755054994726246], [1704428766022942489510812373747343598515330218739919991241330, 2174288160118035071384075194470206588030902526691078432, 146689016357250065754446682200993146696390797567288], [-184742393733525064528622359599486712679561076646451013556098, -2742708410820729742186871358818023920046580396494414124, -161019802318184146196742461980127143300546228654149], [-3397723057509819720366361124587299970905524659151452299568504, -1978254020725512043718881381485007245530705291445408028, 106550923058847251422097598080357228184855173582455], [160698779198622787597422460199047210751551236520304070818004, -6516094236138332513774958661116090679187840091921116224, -8762223189145767201468336622757619419108715028464], [2444359312006234305705413412041440544416919952262908456113496, 3308183768948950672734707969119644123078105227246099944, 192984980393583075233709172242806720624653230647910], [3821356903311151022716656564799017126969744080807602097920346, -7104241538764110941276450671408627883833948228812932896, -51041565445719539194984761359061458694127454265272], [-4921878958841093804322235844175953369907890544642781408483600, 5148394284791721912298953161986685738180238071802943868, -25979515677872516528357519647153666325769560938511], [2549029739644846373842110953553149523346720510112323509274866, 4426767863128847326501767615635529645666401585922734408, 294338514031875390453818212020054265548622073540622], [2175624262989624248925267344759665327706279823736556501385576, 7453158763404077613534068372612853456539230169395502304, -417915072966793230675855803417825227518598023219384], [-5275684612579020405328765999266122200496160441586075149239946, 5336378525126539864078292411682808061750668041475063924, -33882026024575630093108908767649148747692157466925], [13147265149542145231279673416135627854850782970583255278160270, -9829034037481993589480723331489799924338072178996566808, -110394264440748594338779453588458794701401935148890], [-12803402548699752341629355357898512983950965787005660163533272, -16349184213268852371140486466768672704907524604638493148, 397480951466206725104149055211714155489800373458855], [-5543126336069656662526500100740141119681288600411250561476670, -18892606763426101701495710250887594635080026067883980872, -822405172297097067407130690394996431496717503243342], [11255177763667629725433171444830070579293505026317985660642000, 4331775732009831324442505880042567960739037250901663284, 452576655027074578705001873463701441323395884531811], [11839145796049354994861333806274121108299369732175777201332892, 19738106969438265401409107126342649463838950001378966680, -284290715891003885948606685083026569191404191357702], [11698567367843587371093329145193845940719789402856350926848670, 29905648259136503765625834358787483902718298705482554784, 251223886845943950729214519323151228390400022369304], [-9298095970904747327896071880750106574704284269037908142154262, -47259076709124601682431049140168743925112951001881714992, 561056909094853781675959369903484103322496022859788], [3460942379857056084845592407137740522028778362686763702210464, -32270471134799391339285071805681207817708190858587226088, 398842475757843489078385757068476433536800279365146], [13317684418530450517213485344483282180904109898895138192987512, -35192670023122768221523880780393225619637250194986592588, -1175813910538019907394677005863754675055790985889725], [16853936649884160978159142469568818698675407138087802350518340, -5201127202272095303128834389156573394751799254607029296, -1063404167611362759788798664615172925561981923525428], [-40646257250544339426192532362630285094312179528024211316986234, -6024530026819624982860247433829974961196587577644219096, -436454879019894286514329775647505819601227575247978], [14160728342646607010261014102835704642592482497093860274718844, 34027073230258984600935280354439172777885008589041444472, 489177028307805314580682969550208766000724755074306], [-28474300574960874843214889199012306058427048763734977906210912, 10875905703387690118831351973919307213297797683846149748, 1762041902882404971210242273745064833805917412603219], [-79948509763667505902590689202337635487848790781515610533452614, 17995142254059507755038758009546426902345014147439527840, 571075237086742431144244905830955687875109108274584], [3505694019823556630536718108534475621248828408196148095245540, -85391482864701671490171818143812795596586478874676423976, -770566317263264843190976788623879131247674433349014], [11129188259519862407036647699525954026014676419357839408216944, 81492851966624965980564105388619879449359043028405900984, -240016390566726860987290792184680499929214483571726], [-10385778464070094128882400625078568036317574836044354739730382, -78582140374357774156971407385782987319123095847703714288, 1193712367778776515010096928908758526108317021072700], [-103952498326892533977288695455728854822125210227929150344830402, 3057391564068719364525199838386667825987460971324432388, 439058870684562139762137754469865248751057593431983], [20339889681124144709073749834058393420063089684252674566192084, 10206131998890855043836031673117215613029998896179353928, 1363600955687691271785905401005536871576113940901902], [68256416213087184266999637932359004367987881092892497440118296, -73915408421860385060348127535125099845783645037424125768, -1718953717748218906678042913100058298942153115610254], [180238440983523617290387417600787077659644847740856092874612540, -14545197658524379112690221918688354929057618000910414632, 838482038499837280975428687991561473954083680156650], [16342020442550683849633180949249289501487217390206585469674100, -49553783237573794331225816625301996490921008737215075568, 668088685743072958088189711540180928552236405684220], [-115432069406825023460849842008736250294274078695549474205365032, 141162839646273889412970656978337370915053390377964745532, 1740285406319558820941635991163826726005458131353217], [9584815665874686050897098786307243190520877565182521211751782, -189016515741872058653384376610143502799515335538059554304, 2454675791658082756053260002549847452682718459723648], [-95353106250390590886765126853162585269986640406511912811607182, -23276451156363517693770023302263521993540007283036498880, -1425858322555270566162813348495921915669385912646160], [45642025928583704400042169424086297361684863361384456396860776, -24454834744559460781711249821969516887577564535869612280, -4138277617090849965854982065413576993726446250003554], [19671343312319569008764520902755088368792781412902220177950336, 85521915850740192150538480919376359331912201237539355468, -2456272368864892594548079149533286999495138074219715], [17766898372781295016486165726097690442008750035972432421518284, 157636762074836319423565481569209739734024605354862100816, 612292066911963655456831851255646476390313840047468], [-94066474507375767204389549483905679540315538105132540882986044, -333033958952815162473805951639836933800458490988632882224, 5027529900626595335628123661123925517634838857712332], [-244110136549452956158929645885394416853492526207282798156087472, -58375130103268343458323897143026925556808836503522655888, -801677456029368871704218453452118737747908204412188], [71475347590823899553778451380072708836562826539810568187539958, 262054138452889018125717965222110051081918003854050041640, -2273289226003942118672002425874435136251107565425386], [86901466816460637871079470891832926363332385323072981235931202, -203318450740954671466116436910273538219028776835628133264, 10740709278139531067038338779284679514642689147650596], [171960081769775987652577419314931964365635745027963492607622328, 71578185201200926726670075920727307565591296133994186776, 7721009830592602157274418665550213969292464501126170], [319135163741827966702400223991571245728180149163814051073410106, 217833310674301165979494428627579385241901757375973925536, -1775463833232297562958483837972039948930898260892968], [-318424217315538604981394889020607112029918187563216379275167802, 124831720028468852429309864358653489953224829379050687052, -1489046867526854945824555756237472528086271187454083], [-58532782007108226093400640190425312725930534632595250928855012, 21398959828347077568862535696195513387632699295348581968, -7193014850299088885226819590452790737094654030501844], [-189590708369958819982541543735701457817913264569503390742506338, 331311360337357691147951636312552597645502251702703965640, 3138993613935538751262808566697756260015213639061230], [-172744594835619183537184065305933507856559430978797353189401836, 461099685787892118467761645005625216484431221613902194960, 12430873663213192556475286193045241707091592420417660], [77763666985133331191003530525280532627852406181185274161421166, -662453921599100065205425774153819820334040143009225843732, -8070151138739003838630434175349485199198690001943915], [741159484758412271306946112783323004730141278637594103012182666, -285142273771464441588501925089449647043280902041696125216, -4242955182277039038512907027600166601251223204186424], [-370840918213259093068490016742661979636779251891489287133814176, -70974141327136477119274689707332567580935994937117511036, -1518649961338256683056995961821580021150145355590385], [291278661933403864792962782593220515277744464006603496843775468, 685625901280377430021097874604046978217106450172978134496, -2713139065568034285846235880378222608288074010780920], [76012450814622057813625094844514316353852899657079991938518638, -770934601185122080668942712911865822028010960418587282328, 181467043539890988390612647277230350638616375639750], [340719526913747808814109708801725404814115993279700087472262870, 587561829061506313685615909985658672854104991457645942656, 7030236277966728802801104575542420540151647419068448], [-163884010991533222411672484877512498025621279306282468756791646, 1230402064277644265768472169020014679800860534465098275800, -1886789585641260558095082800205085751897251285527510], [-837981666302383791321701608693191846159709946046950602638439348, -167192842967244081934915233286489395314380667724151682128, 2562300072849026352876180481389789452458400016536404], [-1614811206218274147634251501910248313772694086826131902538432346, 544936408548844290247200816576966713342472103078298979492, 6569496117998234683573566564402133585511045223317511], [-461720336484900140676003237781088629549051094564935008321185334, 204318988494999930279624291296061794462620807967698634768, -32961320056811145804350319006547787622215068334068548], [58739932916186155225869417182723285590902878730874137950490356, -1667674207836005351956761075896213726902071870136654922008, 1184807236799885460604168632437305392094793187610150], [-796587739573125291205623690604839911392549817815848598550765490, 1775861274018101046298418012805388036350220706903897790340, 31343958503805956965550799300491375423644670805615567], [1548123863868115494236766565746234800859214323673363478615918630, -328245491079277054394297563167212314432616292257148218608, -10411177670714317045336547177671321189878866634528260], [-725075842032178248431894409391735298932165106702301609436317028, 1655960325912741259359126851512863492332714936844083013360, 353065241206866319500816447330094775832458231298948], [-950450342446576157477022935666074502916683704165388542108681942, 134098656671649879648073201611732309691355083118491034624, 34615484074874253882896172823057453454553028848465664], [858483938805074667007423684762217778545220698957209225653912128, -966642325345045126129123619093246614210059063935454028996, -1357260416738739545425814295663154277955316653857663], [700332028303935323099822166887125588858747168220607363531461522, -21286423706720260663886594155671167452180410020815953280, 46778575484676125500031887888901666616341490333582688], [5167228706217486802630485558019654855672449510583228222142888, 1765850364673212522431070766455984946556736221081342477700, -70695397508869462010127004266405836985124314312407985], [1977429845978426923475378678190664401876324068953349054764045236, 1503830668708828425240089840745871525065546384694151072008, -29850873239829187564803990129840400912324368182879970], [-2124604462424971078498331950701102627295598362598937998609852170, -1115842665666193086367257697923753689174874389189256857296, -28928793234957392054807953333494628637627543784856076], [3032711462245102392066969656412761608642151636089325987980390778, -507634911040313719843715558423213461860046078538334829152, 7503240040052274280544098232637143302483986397324824], [4108485734904266145317772345575252961514083646006546637714451804, 914450746237113901363804488356333858507373217466955722960, -18018989019135183115433317577310045476093628154104948], [2401026063148168550454666881500381978960470450250843455186717216, 3571819851299861826609056071856558627803227422129002693528, -31781666963368898708288616132620205912128760796102854], [575042660278771849058468352930354950166848218737769520106487160, -931518147129245540333023621737006539236199761911413686012, -1804591604234158014000680256818562330226303975420049], [-917405613675779939712341014910281860658337826888249783104972472, 5046659638938512538726916290308787648024575030410908617384, 11056346614885193913138610396596485010258418169462838], [-2753602250764121459376475671618031739383928398375738660301455762, -6394661280596095301391947853957482804123664647827806980656, -69778089033340863425971236470551569044538978959586740], [-2003583807449567854248526471675442130989856482958289771226749468, -3855018751715128359974741739965347704732785637976684248184, -107826463982296233839225605831151719809106493895360386], [3501529352544590169306931200306096343363012984160947417760560944, -6472999082053366846314780699952597349951145477702085172784, -13663064057139625593265933403953239933999105028979892], [-1921988952105051166461567527707889775570314440520015422907736142, 1548444774455832252675299777864935981727343903665727923184, -266637357121167831444414964292092896976368108019994556], [278641289016237586733576934914758276508764727896592974773084990, 5129164105426355706024374618425956597820523248720305514996, 261198328199622776739248189033828408601602157712481907], [572562785191283307072615440624432563587206093892926133878163848, -2798198152164513670514137488996727845901832657343463153924, -24063307963071296261120998395714362226109342562666351], [2123244206229536824597066911677125189258952348422614901292942370, -4387155751887129354635277215037977720316309087846367748880, 82420780159131392090279776882793269583272713955022340], [-1124440182458649339956953881635048127215812019364937814650210842, -11104124133138659952296308160039388173026205952596141359900, -9608951951286118326888465304866574334649965839130889], [-5751973155255072672400787988806579912085034716777865605967554948, 3855188048683470860830423441153112200777580807746190358144, -103446231132842430387647610967182471974255304935276448], [8795502539696914053149056818246351699625073952871879250692391178, 3427102133833703034486199578672280737886355889535276150864, -93818609410380156984610485056083904569562288405770836], [3019514020209616596576674568778802469884000864918841036706544100, 4037403234942276572231464910050745680377629069352112531456, -35754430051160267477972272574236579841279445501590016], [2735263801691011819087518427779774833978335662414842837068443878, -12520934543300588163558391411997707174918984374850029854944, 88433224141132727031760348824039890614847492421641656], [-3686295812381463513409781989141217809037102900234395978147866570, 1418813834858744765862059515222526266391660201633158969108, -628532895977766899668070511067517149003216554224483157], [-5816265156095152496702023941750104959678108349005013115880577728, -2223469657758242891754525321660364113926805657089412780028, -117267566998543263430725119630064763742952311110879313], [-8503875891813546203860200759570491768916429528554538533455429218, 22272990099460201311787189531741511915540570000608505289116, 139583725499508685356624199742751856920262055313281385], [-13503077284120192634343191715720630960534558894997175257779207180, -15616272672440952728230994750277897238110700346566846555608, -140851748086229248937661741459273131995493068039913898], [-4375007731474243212973632890255054363715484825123623132337696660, -642503250391037044693516377680126499938499518761172790424, -801888961823027612783787228072535048771968609220292858], [14436900684497329724363941171460644734832332328581113103613954490, 5384669769713654866678942543340813543015915045362445118176, 720277211922043876531827640271694900242911059263775688], [-5850331910061818254720095550100779831089780810866171389369750650, -13250033064442681861200825040500712521251220846204350162268, 30346889179248727363272260528174355252616781919433863], [-2642944853996982610368738581362924454907899047922478025123627312, 11981212740992906717284218395088254902306282757953084312620, -106511328533786755358434532542166270765656386550577787], [-18359498039841993024941789645795747178435750781541393758082065380, -4594017414691014140801799988479499023075806144824210279520, 162785001019808347407612238774456971086447084898880152], [-1290241703484342819450233915265520863301464272830278529107591724, 16843424283997862312094368537315706914823276880493689373768, 990590730295120661586576761735557505540073118336463182], [23292886580764720020007575226327694081243571703668305618959108514, -25610084519663376848928139421022416985046279279570571265840, -532743540411543872937005866963042732485670101920126580], [-4070813123142984956269827131455171917612430912862117699986130748, -1257970697285800237708118931966248007584658294951153856648, -877242531142606965807217381617966464496447454438275390], [-21580822587664096111941772866951001432691543625182030200378295866, 19761369833247042278561422252217526918765683362065197593784, 33447139774366948646309725805774320154265655641892978], [8129379401000319318307769025968661794410922845932528985968946824, 28285448899943105956068779221290559446604097953099014298216, 308499716514342000991217052077299854790712501139534150], [-42160579310288865875211427023836868800988886948507541320524420946, -7600814923046138467889440402761952268396033712128301924432, 81529415248668845523118963185632573484927828663943764], [-57347417264300567477370433565287716946057753624495256568576788496, 9915159697549083300244681261457825488148101810756997410592, -462785321203934973386571476047215034485978253915445832], [-8565121072557503615692614246602708747589326558634009612669625026, -8364979405672050491911608465462295094808710200189925371620, 622796756838134877669043273010887483481598317899816329], [35507648748387547026304993375429855011166022240333709171264241314, 13146492204423061161436787800997047649251611935500150767272, 651713321734865370182400216754627149822144346664805174], [6747428417329373914696791322718754596931772355339757983181566348, -63711043838852305741761937151640856607567737787011554862696, -426868726086713424790567168247318762577025887107309126], [3807902323999072262075539560562621576656362812076503535836328472, -35513640213843350558350090246359760838734612521925232699088, -1590309561828004419903627755543121004622925946336194060], [19529359519085732442028665062678064795557212903335274978404556634, 9049880839678569114797184944816984112499814153404854366624, -975440251259523222947885759463865435108387146495073512], [-3182378962291099898825415772200272022352158507879620161709236932, -29110989648257190690817664035883574770960151731726430162352, 1490924385299041464559765029988182575646668011722986796], [9352521050626017541202012990606437701831383767822483875368468352, -32993687643718499586597057011784904422080658155264469987512, 836686129877953543987603692908835759808503196131816078], [55224663394941485058214048597691060918009321553903894663961788866, -14629450350142797420416838149906843649510893923081592228224, 891617241583901604902374470699016652483222736973969504], [119528765091250677604564206217411386309016874896778257523294820018, -4693434539839107473826241358161717106554216907217216041264, 444512693308472998443560293627103192262621906739110924], [18236542150178328010316524586310801992127341643086834956300091804, 60420164321209403489013991346769239794209442547466560661344, -385718330289924149765954820507893894989902843764075864], [51192311303748378331676867304373144914543185386375654832071811498, 37061389024916980740404828656900751195262089876168432418656, -1812692291146845406346150858057410161698639121717951320], [-95602343305860575018157153133981189922391814624044165714561008202, -6866172854794649320240071458893486563474697478858963385396, 911181764212370446434507943972095923842316844471053085], [75108550670487721788998930376236311019857598736748461201210599744, -51695385054813976050303744445634414664314089859617717178964, 1324053610578868181903665091803116864954070184190160677], [29081096885293333446582432907516148955203332629534761087692783194, 157225390853132136902581029509865219033560640928993944130136, -1144274830644256094604010749099983025960320917043874678], [-3960458194717620897759339754879164161651160722852347769732513902, 55248230876050381339281785722921919802737578122546360282096, 3430097389658043890935022228355874593588565382195336772], [41818712242111311697819510257069740814062465734489242118495965740, 128849660436548871047800623529726652371122425259519693399000, -2462862716204549166885556912789017561121627125139533270], [-127870839159095397615919153578828087416083845935578434580058092012, 121655204964428415414182303374821602493840480327563320109672, -2033617050856488856355774825222410956330330016212234938], [44936848499546192119286172610564090208058032781807404777490710880, -217805529787698218367665705690131242285901165073870639002432, -155843352089995798924027121810649790044939021534970416], [18559964623720024581031260371277083769242444774661088405257326190, -66112784062997292414530930941385961801469445662532525908668, 3146728917420376666585798923239740922292623134982696799], [-227084955624239114448403170954962792928600605729268878662591513978, 27356322920683810922676759437491482940382426087191819725320, 2268237243410465238051859086039199166384309145679065310], [-98207283785474329367431824560743177996489470180437994275896238826, -181914801139845662014219359095312694881346544643208718028588, -1075668040942098781146460600454270326936571450713578693], [-119749446414312095701520686033611651803675547106051743509053141600, 135891557762541711690398877943587327780189353817613280623700, 5079227756906301429287635475924197077816553362988813915], [-172043816151836610813328312030282770563454137741134691226111871188, -27955465562250997195064685250976310423066433833243135858256, 4636409694861406972556691843712731713517446872352125908], [11354755494539221290083276326091340333684759567769321369878243236, 97405819624644175730539086575103586984022933457314684822112, -5869810658604388298127116110878186873538345358156052504], [-142525897692965194343071860680432790542895713528009581848980386860, 175071360925540672978299836997246720302510760184480395265896, -1272060174559087412530729394376085046495645428942738938], [109155910835753601438097503318451031360201558840515176756772447382, 105813290150173066510210269472210105633211182469564509365120, 1233945027289324417860460732586150666379032468076432672], [66918016655298801977879738209518604886450171265748251282494654370, 210218762810556130462135699074792625511247670526823692213200, 4463174841156381420850982989325582410990111688857771212], [277681002079085382543945705876871185019853880592832677617945498266, -76922308137995036893510437652343604718003484454127025104288, -74846191836023987407362408778294556719067671821032984], [-86689048237563525124568055632324804504347113565522990231928133136, -199251930455362667539274711699916049231671665462272859411484, 7509187957906922824704007379660520228647979951094029111], [-77266551681411700972423070164300496800233957103060648328155404226, 52637157469695875655159429840706473866626649645043615002048, -1970395573790575035484725612921784878438817322163126896], [243625182642039664649486530907346632623519246403943675003468550218, -175649196336476282739719214023637413595233790009238481549032, 115083643440292142514249585371646494845948650564730842], [-90823223635519575241287175719233974883336773258668320538078093234, 85154455670667166874016672192241759785314774126581167901564, -5765417814697493801690660562501216180252880992130220175], [-9237711619540843240491431626807743300233001751266387832588413928, 157160877547207331074561845459077932855691900683062296316596, -6205448237098304338682276442168214309372059016457630909], [-287059668189943889829254937240435816073732716456958626566841553290, 135117233660163573371166538765989321371956836885369070211420, 3657290359921325062478874034633817615808846195961911417], [-234481132368400219650210201262759925890791817525796862170942178420, -96549536851062877966318412034263773230835769179968137139912, -14972999140656924220446303438720047203464792782032655022], [58731669574044526967744551748373380475559022910950852353344247886, -179557243659152199139077128229166587951077190038865025358184, 4074163355218390360038310361643384277287126547090052730], [-102028344864915137016837100272023751397459978760149045024703851324, 105964206468495838952341506106322278714640800397647365093584, 14518327618359390351703653275553793266595000000116121996], [-71824799331406890299559276770799717294978740366467746019405462896, -794553932348918990903259307366593285592633726920807810532504, -2695391147378456282282076718561395059072571937327135482], [134144628292011605948813475239692565999576703288153093795364454046, 111253752874364950892546233748556351161936696934300526412364, 1330040710629351959696793871041313473161589271185930621], [-319630361120755802622735355607866964317220127213663249836818687252, -294966993855433353540121857341599497392593468954180468436248, -10972411759356050533479935720800174494991286665041790682], [233700645912778412620416268927555459015911712644284968711333241786, 1041050290045922163431117234450066339187172771280271168543216, -6663855802017427598057878500961490553581793789608570172], [-287832148524912891456686913893511286639748240263298110451419733946, 188143898694567740178373420418935209171488358705069458969500, -16468641212931910474473464993974343991209158729820304663], [315081106143424192741811646770244877304845522845110130161856013712, 911620213423215633119637517163107711367702475777833366396132, -5446110329893164248061218557444839889356436647182501129], [129154334440651579592314191772904265812923626393343358540759566814, 841499864630968074933142618626199898803625794228988137566848, 10550094689941994995900073318394580986320503612769910112], [-219845380920903410245126934452005494308733820266537088052545063510, 898447654922688174368376851819770566686540707265722957846176, 8153713723002195782511056013683667845139105750721136088], [-347269648284355140675793674722889013787553168222224761213504556256, 28167139150304933247712257568087176251375625507056537685232, -914934754178469667058348377793348468345596692215100924], [648166707207528875277968152457445429871564655588697961817174324100, 370354776264052572027121593979363765448017570127172184963632, 14808486341176397495762579977159820374468369115935622580], [-592565184391785670941087510927571261404351481283546149888134326574, -1202448559419406169345649198430954216846966039681074863106392, 17078697035316370675889042402036056639357622528741350710], [-114472536265010176180080481028588241766925855472557789694165835320, 561513447472227617962962552327916141772858107371206516912912, 25985390244575940467887087977728764874864901300822742524], [207676628537033539401978708193586053128169688028559381559733624494, -21001710982312324776250012101006156986569168207883284393024, -367870635356662976100224819105497394372729616467911664], [335756756970631051039311412409445167672189206519112023136457015930, 492130293448700382823293305494578487821081398483590758845360, -36334045774275758223648203670057563212375863342855326892], [240371763062622720213112471252818421212234533496526620067460578416, -762343339111572312224932711577769220008911259259172036029344, -11417459646382083135756128570030832689902375631653289112], [633145829070853208523640301615101333761907538253354954182679375636, 120666343786396055884652870911683738403331915417240828546600, -13370239755431636986587762034777952845025399067746082474], [-827804981774312739668985299908493180993238010470886483817575959988, -585697124684043156287025730310760812607516184923356985028848, -53534092192159792815263077097719753302714412003553689860], [332401624357079733945813493183551134670539044789683395384511622106, -340251692326903965268122754606761399496470927175709394641056, -44224079199496234564670819837121049134695281334631904088], [492018503902908542904637600733284740423285005955464907401489333094, 875182911358626972578312638155857445269290371836727956040044, -29826554224681556001054065414407686122524759601474334411], [278781097432932562833064083138795264453204798230965174154212704920, 1761356302435584729646915523323662001880753045044971238934028, -50498371611149812399135237467837408327937073972585623155], [-1029299540665401610225320738816186607513324412717663105266544230102, 1228411716077459371154136054833558037073598849773488146482752, 38441048283751111313171473897987098323461081158123336048], [1366505989733898214087028137632797391447931640607444967843681366860, -1682904003744078670439584810672485151240423169881784017327384, 19721013736879889621905060779959869832494815612944632614], [886201178101373811217334746742051680083261664787277061425710726084, -1954438527757510107073587575848836214075870137731019460502952, 53354415126032690305308872495368015033983334919164875402], [-1508955545075944160377598624541197175641698262040603532856656138224, -669414304684156229673046446965810371382769305159533355031200, -71081711546966320131835243005990065144215466976627741912], [-1691004225648136563143233437052774668416586815698689540741770271906, 1320473547919035781232683546174868780664735390271545216628700, -39213560600483821454372382808359653524655675823809102631], [-2210211126081373905344074398814002755268587859264143867030554510360, 2167878200371857011461217765281672381308755829271343206900892, -21411591842609983128559088016049903592060628045713078615], [268451108247655125138926684944410859931506052161521458333912518838, -1917502069094787125814539744713603015794141500263291149644712, 11698677454022095342123108094029255209015648413808937482], [1764644864783412592140314578989864120427273048134623352617166588444, -1147192722558254426919597692305328585381930319777094859263208, 132448523458120148174098306855908466770312908028464891226], [1677909958492868029610249463663678490288526075063592642030783749856, 2491868036616795386063720602997523188037804335195279379265248, 44887985717437735363441455066340715725321448689184499912], [-490842499731234369863383913023972472992861418392437231368964268318, 174563013000168756352468626460716035692089792901815929341440, 27948556554109964838181374030039777225881631340384585344], [-2112161025480332631744499615107272300105490071165091459992322216558, -694456097300635446840239668288334970332594063152573177024008, -177917372128101186405265837752349835003081964600203115486], [2743437224838510177541233155162497336610160922905617691920643790922, 525402098472580243362011094534128938462848691789271637430256, -32991885334827196370504435207842691188395584774436407996], [-1317617772760693585046828970532896459079384226284108001807614395498, 2005182373357017666324410411513928593438806643817062695157204, -58947615021672056178192035662963213972234298694932448261], [-6482726735230158909234516041889207176860380447957523073102203507206, 374224749322392761561799665987972214735859501348948773202504, 53714791950163340705314806893093246983782440303493140430], [163798992589042873169898845831124175254950647499635704118237484936, 1356922477960464995900741020970458171584803183858851594748892, 40573752196324225023182938363152081891135970551856147929], [-3227664860471652601546999369784613004568848390543852571310856232286, 1102465237788455351111546635542999540013750390243060815449792, 75052846514602663545918651106165565795830805941639505232], [186094944095756360744912295335562721477416217385971084388356667468, 3131402144291416202792678543581263467149202667560457188418872, -127927230672068497813799356710690180260438767583982008750], [-522595537787647501550787174595225801095587355292326399757221685416, 6550862331548888177343377712665124436972497686361845208938304, 310482860490448877005574845406135720646868907546833200], [-5007966832163829275787090422482340921860339542795585519938134354000, 3958757004822464723528483316504567227997239237754840536872892, -49618978838248029836045503508640304049356974475823062175], [6900887027431230532340379383458771391757571229837248866490137821822, 2504599862067948729558834942971017849237548820086071904401480, 118011393061064156639713783596898326818936472007440793678], [-3928652949612094833202062311728014056053590929703037831230781696396, -4874600468056438918593236967698953732223847600726778146628992, 17423920333582042651584313723880782681977669221773256544], [3573409350664664071098018326708216866174408204791689784887714357952, -77767506908980134128020698581225404680853768341485200754408, -39260417530264382624645502858293870607108469284256218150], [-5160213521975052653393923917824692938277563764420606291097038580094, 4750337640942580670705969254028260144589467576805789498108384, 5660687081528914998436384992915657470227929790660861960], [252380575281022823161117134394015170716450274958179337925986521870, 1629417383080377329238321758934043422585687244788372554541236, -208813028788119174583125788528824487282000879275501131837], [-6665228758302064140892002101955688427676326858354106883085849318172, 624222126103377432094725292887464019203929864961480855894592, -201612026091683939609381273961031925035564076629270223760], [2432328744070543872142971730597710452465810409752436322067119480988, -1539953139885646737103310954835874238705252237099750410345672, 200381035408622600759932900717256184185270224533029043922], [1279479416484332791671807808812584168810946644795039620516564950696, -11573736288998782719100285489497824136598124218540592239632496, 14178646881932897108975023867881347225340480762897993948], [4786330259837716157250048853682894364087020313953688449355096080618, -12798489654728522199694710891169863407946741276066463882213648, -202599939802654483322515363084514879733516275145189305468], [-90364946677677305058192897930710332782999073735450904165594918080, -5132784424731374289354429684935597015283357681895279789503516, 107600322191028343850832411315191240212245046747507430199], [3031510232398010291969980615506493465399947404212743917414402152986, 1375172230478955673358757661577378790919071662813471698484312, 379614794236161679810922717948218680320236805851079479818], [-2974880672108131948007738134315492674957590534743488498937264682236, -10608247974002339094352426629344169516969338897934722863753192, 312579894868728400783642309735176401699466316493857316890], [3317242307780274212796624265653586180147679077367660031202556132190, 5982971127082332394699380224145271198287361448478844193996548, -176233053379679308887029506563848514200187843600872737809], [6779967682193050788933522529333797113115295009819400391570724318262, -3811496005851006286955884787334288510507766808650871113695088, -46214233796828042353449581146891625248074099936796331876], [-16096823580742020684967383367914938265167909902735367009136008236158, 6751363768759006087923685005464918200458488128781566760831448, 150454822109596998157244568573244539704309062447565258922], [-3804491448019010667994987254010212335459382815232635772043592645872, 4444647465946602757346166856599427789506528888057074405049860, -206155867739010042810126689354264685199303892004316231121], [5743944809483895693668239004591166967377948106582589126379658122858, 10860833851347079826605321774118515723648334738366911319649592, -290204240390868158773533072726083666477543764338899884974], [9982355951489275041180371388885440402310395294267663536542503540334, -14643210961225427896976202444532105928301216857648529639164868, 29255007072644952149659679240741048641350204666607330881], [2850042900838319210467497764229133167954555454749707381854106457464, -5380875112579186438194113882494930644146271514145176318031796, 257974459828443811527560318404049065480474545270206137341], [-2526185323511680583068172246520143166132205907926378033997674762426, 21668100518524804852727111323172397043597043592350650806923432, 109645988054110518674295009557017383891228883426198715062], [-8615481672447304031116427842596722926397845594910071885463727535662, -4372025520949961926611490154808121263190079019775894030144744, -719317111748598818896141765881723165096824196400125427878], [3812478585550871699372509419875177090812877393222312073410495979068, 21773991179072741917391625890296372990094554801506778677752792, -414088175649241692156316404855548941120520121104334901718], [4774033636557915298970364553492851247345807910364271105374649570476, -18102781783869175088206998717122960099921548230795261329463880, -403833099782026799698589177977878950189617888050491177934], [-18485454365865295224017819771674005311549194399990429010034876032398, 64867797477880444874370235792993822542109771724826761157440, 189876027545858415367410255775982379854135638450668199984], [13519525245602497223448482808553867027980287278852988981121529503102, 20422209480932806710621152722463442140686687889938010033989556, 286417750980335862404988900210827359499273590662080388099], [-6381855876690375447629855042798672998642785588563921368497368897004, -18207868542511254882921455468786935654067926502650199498547048, 377788305172909845422399786591402200172684428742886951930], [-18547172152786874099394907920961775149091921627701200222704150139892, -6688016288443315082568298477886183726929121603934120096324376, -394415879021612098449895487831765536549026986177918862170], [-21901055070083769985496661530771607118855315987687858206014933452198, -8270712869033372910883413244548162181205839245330076700626720, -177215636814327801727115528669458600890580069208440845752], [6000220641476570225655205444782811145178878591153614347920539049190, -21300537892472464513809652167716236304705201228613495601158132, 136770806590971220691880165943826237648078967660186238221], [-9641554187182943951419024675598465164878017256278768686187154086976, -18855891080031881770876835347101981529758589149046112093152992, -732314310569883216192592539815632624933123681538259647688], [10791396654855745009355862952126426272799579268249153053282733078552, 1813674825173508407942723383776704395383935776637496062975276, 1070900863322984339261329798645345495620414228573548227909], [-17917065840744652562704051802542154095025378349030018112116975434382, -903390679292475499241263039447555344573049339779883370598024, 93909553734236811555007804195381896816473161284138991170], [-25799435008450734590028986650587384833873662167884527853032535926488, 27120747140635534750346881934489652192731592224313418006517608, 348804984751895920824817258358505560790346125719988481542], [14864219507644761276556236104294181784063339188315268707518115836022, 33427613195658994752386381152337506474189988920394472919785236, -77355328144384943363373716542556478930762554096777491797], [-4901613568874293442254675359899945358389260947521069966450209923634, -6657230186886623784766408725409357335389822664725955379567200, -457360165002449316681586155807111282195090134206800993768], [-13516045164771432910898953154574638236126563632189908768448894030064, -13813519676003286569646299504977256024516008480141484573059888, -464779522601037836948785484868204279780568727664129396], [-2710826126803783876106681633636501627882930028830809783794556827084, 25257777245246342015692359666610166249134749864841370054543272, 601428366192032036117115598284860699910787991556926948598], [-16254523370462646002526513468866702666851568790327263156133611441158, -4175889475289513286667450532896686876460390345631725258050720, 199393720598646237668240192909593507065103674908939548584], [8701025464857179479612282950233409152201451757584927030516753323142, 5643873627376942299779673745987158728655551310757688953086028, -965307277524550094242644323956758214772445711281688086019], [-22462308605929790332433261183468349575734270415396788818676329920484, -45413545430178819452459048851277435864037468490687850486275672, 645777693753559179673515615340800613832926289359823533686], [3254470669455499730831682555382483290020887585628785566699598676970, -28206251224016482207097682504772797709304899450859082413810352, 244359108532876766685431434009143406617155299344221990508], [5071989711709168208720776530134975953385608053937925143374434103188, -37008115797498698956514874942559400044964751215476243745333928, -1379794435408806397700840194102559669831427210605042170422], [27609733540118095557473704343440381302571336825119307323123476788296, -21918496722962009679557479542389392034860801790754333413117128, -201249275436879165848840858345845184064123312248752768302]];
    aps := ConvertToHeckeField(raw_aps);
    chi := MakeCharacter_3_a_Hecke(Universe(aps));
    return ExtendMultiplicatively(weight, aps, chi);
end function;


// To make the newform (type ModFrm), type "MakeNewformModFrm_3_40_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose lines below.
// The precision argument determines an initial guess on how many Fourier coefficients to use.
// This guess is increased enough to uniquely determine the newform.
function MakeNewformModFrm_3_40_a_a(:prec:=3)
    chi := MakeCharacter_3_a();
    f_vec := qexpCoeffs();
    Kf := Universe(f_vec);
    // SetVerbose("ModularForms", true);
    // SetVerbose("ModularSymbols", true);
    S := CuspidalSubspace(ModularForms(chi, 40));
    S := BaseChange(S, Kf);
    maxprec := NextPrime(2999) - 1;
    while true do
        trunc_vec := Vector(Kf, [0] cat [f_vec[i]: i in [1..prec]]);
        B := Basis(S, prec + 1);
        S_basismat := Matrix([AbsEltseq(g): g in B]);
        if Rank(S_basismat) eq Min(NumberOfRows(S_basismat), NumberOfColumns(S_basismat)) then
            S_basismat := ChangeRing(S_basismat,Kf);
            f_lincom := Solution(S_basismat,trunc_vec);
            f := &+[f_lincom[i]*Basis(S)[i] : i in [1..#Basis(S)]];
            return f;
        end if;
        error if prec eq maxprec, "Unable to distinguish newform within newspace";
        prec := Min(Ceiling(1.25 * prec), maxprec);
    end while;
end function;


// To make the Hecke irreducible modular symbols subspace (type ModSym)
// containing the newform, type "MakeNewformModSym_3_40_a_a();".
// This may take a long time!  To see verbose output, uncomment the SetVerbose line below.
// The default sign is -1.  You can change this with the optional parameter "sign".
function MakeNewformModSym_3_40_a_a( : sign := -1)
    R<x> := PolynomialRing(Rationals());
    chi := MakeCharacter_3_a();
    // SetVerbose("ModularSymbols", true);
    Snew := NewSubspace(CuspidalSubspace(ModularSymbols(chi,40,sign)));
    Vf := Kernel([<2,R![-328967845897568256, -714859333632, 1107000, 1]>],Snew);
    return Vf;
end function;