sakke.c 313 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909
  1. /* sakke.c
  2. *
  3. * Copyright (C) 2006-2022 wolfSSL Inc.
  4. *
  5. * This file is part of wolfSSL.
  6. *
  7. * wolfSSL is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * wolfSSL is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
  20. */
  21. #ifdef HAVE_CONFIG_H
  22. #include <config.h>
  23. #endif
  24. #include <wolfssl/wolfcrypt/settings.h>
  25. #ifdef NO_INLINE
  26. #include <wolfssl/wolfcrypt/misc.h>
  27. #else
  28. #define WOLFSSL_MISC_INCLUDED
  29. #include <wolfcrypt/src/misc.c>
  30. #endif
  31. #ifdef WOLFSSL_HAVE_SP_ECC
  32. #include <wolfssl/wolfcrypt/sp.h>
  33. #endif
  34. #ifdef WOLFCRYPT_HAVE_SAKKE
  35. #include <wolfssl/wolfcrypt/error-crypt.h>
  36. #include <wolfssl/wolfcrypt/sakke.h>
  37. #include <wolfssl/wolfcrypt/asn_public.h>
  38. /* SAKKE Build Options:
  39. * WOLFSSL_SAKKE_SMALL: Small code size version of SAKKE.
  40. * WOLFSSL_SAKKE_SMALL_MODEXP: Small code size for just SAKKE modexp.
  41. */
  42. #ifdef WOLFCRYPT_SAKKE_CLIENT
  43. /*
  44. * Initialize the client components of the SAKKE key.
  45. *
  46. * @param [in] key SAKKE key to initialize.
  47. * @return 0 on success.
  48. * @return MEMORY_E when dynamic memory allocation fails.
  49. */
  50. static int sakke_init_client(SakkeKey* key)
  51. {
  52. int err = 0;
  53. key->tmp.p1 = wc_ecc_new_point_h(key->ecc.heap);
  54. if (key->tmp.p1 == NULL) {
  55. err = MEMORY_E;
  56. }
  57. if (err == 0) {
  58. key->tmp.p2 = wc_ecc_new_point_h(key->ecc.heap);
  59. if (key->tmp.p2 == NULL) {
  60. err = MEMORY_E;
  61. }
  62. }
  63. if (err == 0) {
  64. key->tmp.p3 = wc_ecc_new_point_h(key->ecc.heap);
  65. if (key->tmp.p3 == NULL) {
  66. err = MEMORY_E;
  67. }
  68. }
  69. if (err == 0) {
  70. key->rsk.rsk = wc_ecc_new_point_h(key->ecc.heap);
  71. if (key->rsk.rsk == NULL) {
  72. err = MEMORY_E;
  73. }
  74. }
  75. if (err == 0) {
  76. key->i.i = wc_ecc_new_point_h(key->ecc.heap);
  77. if (key->i.i == NULL) {
  78. err = MEMORY_E;
  79. }
  80. }
  81. return err;
  82. }
  83. #endif
  84. /**
  85. * Initialize the components of the SAKKE key.
  86. *
  87. * Must be called before performing any operations.
  88. * Free the SAKKE key with wc_FreeSakkeKey() when no longer needed.
  89. *
  90. * @param [in] key SAKKE key to initialize.
  91. * @param [in] keySize Size of the curve. For SAKKE set 1, use 128.
  92. * @param [in] curveId ID of curve. For SAKKE set 1, use ECC_SAKKE_1.
  93. * @param [in] heap Heap hint.
  94. * @param [in] devId Device identifier.
  95. * Use INVALID_DEVID when no device used.
  96. * @return 0 on success.
  97. * @return BAD_FUNC_ARG when key is NULL.
  98. * @return MEMORY_E when dynamic memory allocation fails.
  99. */
  100. int wc_InitSakkeKey_ex(SakkeKey* key, int keySize, int curveId, void* heap,
  101. int devId)
  102. {
  103. int err = 0;
  104. SakkeKeyParams* params = NULL;
  105. if (key == NULL) {
  106. err = BAD_FUNC_ARG;
  107. }
  108. if (err == 0) {
  109. XMEMSET(key, 0, sizeof(*key));
  110. key->heap = heap;
  111. params = &key->params;
  112. err = wc_ecc_init_ex(&key->ecc, heap, devId);
  113. }
  114. if (err == 0) {
  115. err = wc_ecc_set_curve(&key->ecc, keySize, curveId);
  116. }
  117. if (err == 0) {
  118. params->base = wc_ecc_new_point_h(key->ecc.heap);
  119. if (params->base == NULL) {
  120. err = MEMORY_E;
  121. }
  122. #ifdef WOLFCRYPT_SAKKE_CLIENT
  123. if (err == 0) {
  124. err = sakke_init_client(key);
  125. }
  126. #endif
  127. if (err == 0) {
  128. err = mp_init_multi(&params->prime, &params->q, &params->g,
  129. &params->a, &key->tmp.m1,
  130. #ifdef WOLFCRYPT_SAKKE_CLIENT
  131. &key->tmp.m2
  132. #else
  133. NULL
  134. #endif
  135. );
  136. }
  137. if (err == 0) {
  138. key->mpInit = 1;
  139. }
  140. if (err != 0) {
  141. wc_FreeSakkeKey(key);
  142. }
  143. }
  144. return err;
  145. }
  146. /**
  147. * Initialize the components of the SAKKE key.
  148. *
  149. * Must be called before performing any operations.
  150. * Free the SAKKE key with wc_FreeSakkeKey() when no longer needed.
  151. *
  152. * @param [in] key SAKKE key to initialize.
  153. * @param [in] heap Heap hint.
  154. * @param [in] devId Device identifier.
  155. * Use INVALID_DEVID when no device used.
  156. * @return 0 on success.
  157. * @return BAD_FUNC_ARG when key is NULL.
  158. * @return MEMORY_E when dynamic memory allocation fails.
  159. */
  160. int wc_InitSakkeKey(SakkeKey* key, void* heap, int devId)
  161. {
  162. return wc_InitSakkeKey_ex(key, 128, ECC_SAKKE_1, heap, devId);
  163. }
  164. /**
  165. * Frees memory associated with components of the SAKKE key.
  166. *
  167. * Must be called when finished with the SAKKE key.
  168. *
  169. * @param [in] key SAKKE key.
  170. */
  171. void wc_FreeSakkeKey(SakkeKey* key)
  172. {
  173. if (key != NULL) {
  174. SakkeKeyParams* params = &key->params;
  175. if (key->mpInit) {
  176. mp_free(&params->prime);
  177. mp_free(&params->q);
  178. mp_free(&params->g);
  179. mp_free(&params->a);
  180. mp_free(&key->tmp.m1);
  181. #ifdef WOLFCRYPT_SAKKE_CLIENT
  182. mp_free(&key->tmp.m2);
  183. #endif
  184. }
  185. #ifdef WOLFCRYPT_SAKKE_CLIENT
  186. if (key->i.i != NULL) {
  187. wc_ecc_del_point_h(key->i.i, key->ecc.heap);
  188. }
  189. if (key->rsk.rsk != NULL) {
  190. wc_ecc_del_point_h(key->rsk.rsk, key->ecc.heap);
  191. }
  192. if (key->tmp.p3 != NULL) {
  193. wc_ecc_del_point_h(key->tmp.p3, key->ecc.heap);
  194. }
  195. if (key->tmp.p2 != NULL) {
  196. wc_ecc_del_point_h(key->tmp.p2, key->ecc.heap);
  197. }
  198. if (key->tmp.p1 != NULL) {
  199. wc_ecc_del_point_h(key->tmp.p1, key->ecc.heap);
  200. }
  201. #endif
  202. if (params->base != NULL) {
  203. wc_ecc_del_point_h(params->base, key->ecc.heap);
  204. }
  205. wc_ecc_free(&key->ecc);
  206. }
  207. }
  208. /*
  209. * Load order (q), prime (p) and a, hex strings in ECC object, into fields of
  210. * key.
  211. *
  212. * Flags that the p, q and a are available so it isn't loaded multiple times.
  213. *
  214. * @param [in] key SAKKE key.
  215. * @return 0 on success.
  216. * @return MEMORY_E when dynamic memory allocation fails.
  217. */
  218. static int sakke_load_params(SakkeKey* key)
  219. {
  220. int err = 0;
  221. SakkeKeyParams* params = &key->params;
  222. if (!params->havePrime) {
  223. /* Load prime or modulus from string. */
  224. err = mp_read_radix(&params->prime, key->ecc.dp->prime, MP_RADIX_HEX);
  225. if (err == 0) {
  226. params->havePrime = 1;
  227. }
  228. }
  229. if (!params->haveQ) {
  230. /* Load order from string. */
  231. err = mp_read_radix(&params->q, key->ecc.dp->order, MP_RADIX_HEX);
  232. if (err == 0) {
  233. params->haveQ = 1;
  234. }
  235. }
  236. if (!params->haveA) {
  237. /* Load parameter A from string. */
  238. err = mp_read_radix(&params->a, key->ecc.dp->Af, MP_RADIX_HEX);
  239. if (err == 0) {
  240. params->haveA = 1;
  241. }
  242. }
  243. return err;
  244. }
  245. /*
  246. * Load the base point, hex encoded in the ECC object, as an ecc_point.
  247. *
  248. * @param [in] key SAKKE key.
  249. * @return 0 on success.
  250. * @return MEMORY_E when dynamic memory allocation fails.
  251. */
  252. static int sakke_load_base_point(SakkeKey* key)
  253. {
  254. int err = 0;
  255. SakkeKeyParams* params = &key->params;
  256. if (!params->haveBase) {
  257. /* Load base point modulus from string. */
  258. err = mp_read_radix(params->base->x, key->ecc.dp->Gx, MP_RADIX_HEX);
  259. if (err == 0) {
  260. err = mp_read_radix(params->base->y, key->ecc.dp->Gy, MP_RADIX_HEX);
  261. }
  262. if (err == 0) {
  263. /* Affine co-ordinates have a Z of 1 in Jacobian. */
  264. err = mp_set(params->base->z, 1);
  265. }
  266. if (err == 0) {
  267. /* Base point loaded. */
  268. params->haveBase = 1;
  269. }
  270. }
  271. return err;
  272. }
  273. #ifdef WOLFSSL_HAVE_SP_ECC
  274. /*
  275. * Scalar multiply the base point.
  276. *
  277. * @param [in] key SAKKE key.
  278. * @param [in] n MP integer that is the scalar.
  279. * @param [out] res ECC point to hold the result.
  280. * @param [in] map Map the result to affine co-ordinates.
  281. * @return 0 on success.
  282. * @return MEMORY_E when dynamic memory allocation fails.
  283. */
  284. static int sakke_mulmod_base(SakkeKey* key, const mp_int* n, ecc_point* res,
  285. int map)
  286. {
  287. int err = NOT_COMPILED_IN;
  288. #ifdef WOLFSSL_SP_1024
  289. if ((key->ecc.idx != ECC_CUSTOM_IDX) &&
  290. (ecc_sets[key->ecc.idx].id == ECC_SAKKE_1)) {
  291. err = sp_ecc_mulmod_base_1024(n, res, map, key->heap);
  292. }
  293. #endif
  294. return err;
  295. }
  296. /*
  297. * Scalar multiply the base point and add a point.
  298. *
  299. * @param [in] key SAKKE key.
  300. * @param [in] n MP integer that is the scalar.
  301. * @param [in] a ECC point to add.
  302. * @param [out] res ECC point to hold the result.
  303. * @param [in] map Map the result to affine co-ordinates.
  304. * @return 0 on success.
  305. * @return MEMORY_E when dynamic memory allocation fails.
  306. */
  307. static int sakke_mulmod_base_add(SakkeKey* key, const mp_int* n,
  308. const ecc_point* a, ecc_point* res, int map)
  309. {
  310. int err = NOT_COMPILED_IN;
  311. #ifdef WOLFSSL_SP_1024
  312. if ((key->ecc.idx != ECC_CUSTOM_IDX) &&
  313. (ecc_sets[key->ecc.idx].id == ECC_SAKKE_1)) {
  314. err = sp_ecc_mulmod_base_add_1024(n, a, 0, res, map, key->heap);
  315. }
  316. #endif
  317. return err;
  318. }
  319. #else
  320. /*
  321. * Scalar multiply the base point.
  322. *
  323. * @param [in] key SAKKE key.
  324. * @param [in] n MP integer that is the scalar.
  325. * @param [out] res ECC point to hold the result.
  326. * @param [in] map Map the result to affine co-ordinates.
  327. * @return 0 on success.
  328. * @return MEMORY_E when dynamic memory allocation fails.
  329. */
  330. static int sakke_mulmod_base(SakkeKey* key, const mp_int* n, ecc_point* res,
  331. int map)
  332. {
  333. int err;
  334. SakkeKeyParams* params = &key->params;
  335. err = wc_ecc_mulmod(n, params->base, res, &params->a, &params->prime, map);
  336. return err;
  337. }
  338. /*
  339. * Scalar multiply the base point and add a point.
  340. *
  341. * @param [in] key SAKKE key.
  342. * @param [in] n MP integer that is the scalar.
  343. * @param [in] a ECC point to add. Point ordinates must be in Montgomery
  344. * form.
  345. * @param [out] res ECC point to hold the result.
  346. * @param [in] map Map the result to affine co-ordinates.
  347. * @return 0 on success.
  348. * @return MEMORY_E when dynamic memory allocation fails.
  349. */
  350. static int sakke_mulmod_base_add(SakkeKey* key, const mp_int* n, ecc_point* a,
  351. ecc_point* res, int map)
  352. {
  353. int err;
  354. mp_digit mp = 0;
  355. SakkeKeyParams* params = &key->params;
  356. /* Scalar multiply base by n - leaves ordinates in Montgomery form. */
  357. err = wc_ecc_mulmod(n, params->base, res, &params->a, &params->prime, 0);
  358. if (err == 0) {
  359. err = mp_montgomery_setup(&params->prime, &mp);
  360. }
  361. if (err == 0) {
  362. /* Add a to result. */
  363. err = ecc_projective_add_point(res, a, res, &params->a,
  364. &params->prime, mp);
  365. }
  366. if ((err == 0) && map) {
  367. /* Map result back to affine co-ordinates. */
  368. err = ecc_map(res, &params->prime, mp);
  369. }
  370. return err;
  371. }
  372. #endif
  373. #ifdef WOLFSSL_HAVE_SP_ECC
  374. /*
  375. * Scalar multiply a point.
  376. *
  377. * @param [in] key SAKKE key.
  378. * @param [in] n MP integer that is the scalar.
  379. * @param [in] p ECC point to multiply.
  380. * @param [in] table Precomputation table for p. May be NULL.
  381. * @param [out] res ECC point to hold the result.
  382. * @param [in] map Map the result to affine co-ordinates.
  383. * @return 0 on success.
  384. * @return MEMORY_E when dynamic memory allocation fails.
  385. */
  386. static int sakke_mulmod_point(SakkeKey* key, const mp_int* n,
  387. const ecc_point* p, byte* table, ecc_point* res, int map)
  388. {
  389. int err = NOT_COMPILED_IN;
  390. #ifdef WOLFSSL_SP_1024
  391. if ((key->ecc.idx != ECC_CUSTOM_IDX) &&
  392. (ecc_sets[key->ecc.idx].id == ECC_SAKKE_1)) {
  393. if (table == NULL) {
  394. err = sp_ecc_mulmod_1024(n, p, res, map, key->heap);
  395. }
  396. else {
  397. err = sp_ecc_mulmod_table_1024(n, p, table, res, map, key->heap);
  398. }
  399. }
  400. #endif
  401. return err;
  402. }
  403. #else
  404. /*
  405. * Scalar multiply a point.
  406. *
  407. * @param [in] key SAKKE key.
  408. * @param [in] n MP integer that is the scalar.
  409. * @param [in] p ECC point to multiply.
  410. * @param [in] table Precomputation table for p. May be NULL.
  411. * @param [out] res ECC point to hold the result.
  412. * @param [in] map Map the result to affine co-ordinates.
  413. * @return 0 on success.
  414. * @return MEMORY_E when dynamic memory allocation fails.
  415. */
  416. static int sakke_mulmod_point(SakkeKey* key, const mp_int* n, ecc_point* p,
  417. const byte* table, ecc_point* res, int map)
  418. {
  419. int err;
  420. SakkeKeyParams* params = &key->params;
  421. err = wc_ecc_mulmod(n, p, res, &params->a, &params->prime, map);
  422. (void)table;
  423. return err;
  424. }
  425. #endif
  426. #ifdef WOLFCRYPT_SAKKE_KMS
  427. /**
  428. * Generate KMS Master Secret (z_T) and KMS Public Key (Z_T).
  429. *
  430. * RFC 6508, Section 4.1
  431. *
  432. * Called when establishing a new KMS.\n
  433. * z_T must be kept secret while Z_T is required by clients for encapsulating
  434. * and deriving.
  435. * Export key using wc_ExportSakkeKey(), once generated, to reuse the key.\n
  436. * Export KPAK using wc_ExportSakkePublicKey(), once generate to send to
  437. * clients.
  438. *
  439. * @param [in] key SAKKE key.
  440. * @param [in] rng Random number generator.
  441. * @return 0 on success.
  442. * @return BAD_FUNC_ARG when key or rng is NULL.
  443. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  444. * @return Other value when an an internal operation fails.
  445. */
  446. int wc_MakeSakkeKey(SakkeKey* key, WC_RNG* rng)
  447. {
  448. int err = 0;
  449. int digits = 0;
  450. if ((key == NULL) || (rng == NULL)) {
  451. err = BAD_FUNC_ARG;
  452. }
  453. if (err == 0) {
  454. digits = (key->ecc.dp->size * 8 + DIGIT_BIT - 1) / DIGIT_BIT;
  455. err = sakke_load_params(key);
  456. }
  457. if (err == 0) {
  458. err = sakke_load_base_point(key);
  459. }
  460. if (err == 0) {
  461. int genTryCnt = 0;
  462. /* Generate a random number that is not 0 - master secret. */
  463. do {
  464. /* Don't infinitely loop on random number generation failure. */
  465. if ((++genTryCnt) > SAKKE_MAX_GEN_COUNT) {
  466. err = RNG_FAILURE_E;
  467. }
  468. if (err == 0) {
  469. err = mp_rand(&key->ecc.k, digits, rng);
  470. }
  471. if (err == 0) {
  472. err = mp_mod(&key->ecc.k, &key->params.q, &key->ecc.k);
  473. }
  474. }
  475. while ((err == 0) && mp_iszero(&key->ecc.k));
  476. }
  477. if (err == 0) {
  478. /* Calculate public key by multiply master secret by base point. */
  479. err = sakke_mulmod_base(key, &key->ecc.k, &key->ecc.pubkey, 1);
  480. }
  481. if (err == 0) {
  482. key->ecc.type = ECC_PRIVATEKEY;
  483. }
  484. return err;
  485. }
  486. /**
  487. * Generates the KMS Public Key (Z_T) from the KMS Master Secret (z_T).
  488. *
  489. * Only z_T is required to calculate Receiver Secret Key (RSK).
  490. *
  491. * @param [in] key SAKKE key.
  492. * @param [out] pub ECC point containing KPAK.
  493. * @return 0 on success.
  494. * @return BAD_FUNC_ARG when key or pub is NULL.
  495. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  496. * @return Other value when an an internal operation fails.
  497. */
  498. int wc_MakeSakkePublicKey(SakkeKey* key, ecc_point* pub)
  499. {
  500. int err = 0;
  501. if ((key == NULL) || (pub == NULL)) {
  502. err = BAD_FUNC_ARG;
  503. }
  504. if (err == 0) {
  505. err = sakke_load_params(key);
  506. }
  507. if (err == 0) {
  508. err = sakke_load_base_point(key);
  509. }
  510. if (err == 0) {
  511. err = sakke_mulmod_base(key, &key->ecc.k, pub, 1);
  512. }
  513. return err;
  514. }
  515. /**
  516. * Export the SAKKE key as encoded public/private ECC key.
  517. *
  518. * Use when saving the KMS key pair.
  519. *
  520. * Private key, x ordinate of public key and y ordinate of public key
  521. * concatenated. Each number is zero padded to key size.
  522. *
  523. * @param [in] key SAKKE key.
  524. * @param [out] data Buffer to hold encoded SAKKE key.
  525. * @param [in,out] sz In, size of buffer in bytes.
  526. * Out, size of encoded SAKKE key in bytes.
  527. * @return 0 on success.
  528. * @return BAD_FUNC_ARG when key or sz is NULL.
  529. * @return LENGTH_ONLY_E when data is NULL - sz is set.
  530. * @return BUFFER_E when size of buffer is too small.
  531. */
  532. int wc_ExportSakkeKey(SakkeKey* key, byte* data, word32* sz)
  533. {
  534. int err = 0;
  535. if ((key == NULL) || (sz == NULL)) {
  536. err = BAD_FUNC_ARG;
  537. }
  538. if ((err == 0) && (data == NULL)) {
  539. *sz = 3 * key->ecc.dp->size;
  540. err = LENGTH_ONLY_E;
  541. }
  542. if ((err >= 0) && (*sz < (word32)(3 * key->ecc.dp->size))) {
  543. err = BUFFER_E;
  544. }
  545. if (err == 0) {
  546. /* Write out the secret value into key size bytes. */
  547. err = mp_to_unsigned_bin_len(&key->ecc.k, data, key->ecc.dp->size);
  548. }
  549. if (err == 0) {
  550. data += key->ecc.dp->size;
  551. /* Write out the public key point's x ordinate into key size bytes. */
  552. err = mp_to_unsigned_bin_len(key->ecc.pubkey.x, data,
  553. key->ecc.dp->size);
  554. }
  555. if (err == 0) {
  556. data += key->ecc.dp->size;
  557. /* Write out the public key point's y ordinate into key size bytes. */
  558. err = mp_to_unsigned_bin_len(key->ecc.pubkey.y, data,
  559. key->ecc.dp->size);
  560. }
  561. if (err == 0) {
  562. *sz = 3 * key->ecc.dp->size;
  563. }
  564. return err;
  565. }
  566. /**
  567. * Import the SAKKE key as DER encoded public/private ECC key.
  568. *
  569. * Use when restoring the KMS key pair.
  570. *
  571. * Private key, x ordinate of public key and y ordinate of public key
  572. * concatenated. Each number is zero padded to key size.
  573. *
  574. * @param [in] key SAKKE key.
  575. * @param [in] data Buffer holding encoded SAKKE key.
  576. * @param [in] sz Size of encoded SAKKE key in bytes.
  577. * @return 0 on success.
  578. * @return BAD_FUNC_ARG when key or data is NULL.
  579. * @return BUFFER_E when size of data is not equal to the expected size.
  580. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  581. */
  582. int wc_ImportSakkeKey(SakkeKey* key, const byte* data, word32 sz)
  583. {
  584. int err = 0;
  585. if ((key == NULL) || (data == NULL)) {
  586. err = BAD_FUNC_ARG;
  587. }
  588. if ((err == 0) && (sz != (word32)key->ecc.dp->size * 3)) {
  589. err = BUFFER_E;
  590. }
  591. if (err == 0) {
  592. /* Read the secret value from key size bytes. */
  593. err = mp_read_unsigned_bin(&key->ecc.k, data, key->ecc.dp->size);
  594. }
  595. if (err == 0) {
  596. data += key->ecc.dp->size;
  597. /* Read the public key point's x value from key size bytes. */
  598. err = mp_read_unsigned_bin(key->ecc.pubkey.x, data, key->ecc.dp->size);
  599. }
  600. if (err == 0) {
  601. data += key->ecc.dp->size;
  602. /* Read the public key point's y value from key size bytes. */
  603. err = mp_read_unsigned_bin(key->ecc.pubkey.y, data, key->ecc.dp->size);
  604. }
  605. if (err == 0) {
  606. err = mp_set(key->ecc.pubkey.z, 1);
  607. }
  608. if (err == 0) {
  609. key->ecc.type = ECC_PRIVATEKEY;
  610. }
  611. return err;
  612. }
  613. /**
  614. * Export the SAKKE key as DER encoded private ECC key.
  615. *
  616. * Use when saving the KMS private key.
  617. *
  618. * Private key zero padded to key size.
  619. *
  620. * @param [in] key SAKKE key.
  621. * @param [out] data Buffer to hold encoded SAKKE key.
  622. * @param [in,out] sz In, size of buffer in bytes.
  623. * Out, size of encoded SAKKE key in bytes.
  624. * @return 0 on success.
  625. * @return BAD_FUNC_ARG when key or sz is NULL.
  626. * @return LENGTH_ONLY_E when data is NULL - sz is set.
  627. * @return BUFFER_E when size of buffer is too small.
  628. */
  629. int wc_ExportSakkePrivateKey(SakkeKey* key, byte* data, word32* sz)
  630. {
  631. int err = 0;
  632. if ((key == NULL) || (sz == NULL)) {
  633. err = BAD_FUNC_ARG;
  634. }
  635. if ((err == 0) && (data == NULL)) {
  636. *sz = key->ecc.dp->size;
  637. err = LENGTH_ONLY_E;
  638. }
  639. if ((err >= 0) && (*sz < (word32)key->ecc.dp->size)) {
  640. err = BUFFER_E;
  641. }
  642. if (err == 0) {
  643. /* Write out the secret value into key size bytes. */
  644. err = mp_to_unsigned_bin_len(&key->ecc.k, data, key->ecc.dp->size);
  645. }
  646. if (err == 0) {
  647. *sz = key->ecc.dp->size;
  648. }
  649. return err;
  650. }
  651. /**
  652. * Import the SAKKE key as DER encoded private ECC key.
  653. *
  654. * Use when restoring the KMS private key.
  655. * Use wc_MakeSakkePublicKey() to recalculate the public key.
  656. *
  657. * Private key zero padded to key size.
  658. *
  659. * @param [in] key SAKKE key.
  660. * @param [in] data Buffer holding encoded SAKKE key.
  661. * @param [in] sz Size of encoded SAKKE key in bytes.
  662. * @return 0 on success.
  663. * @return BAD_FUNC_ARG when key or data is NULL.
  664. * @return BUFFER_E when size of data is not equal to the expected size.
  665. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  666. */
  667. int wc_ImportSakkePrivateKey(SakkeKey* key, const byte* data, word32 sz)
  668. {
  669. int err = 0;
  670. if ((key == NULL) || (data == NULL)) {
  671. err = BAD_FUNC_ARG;
  672. }
  673. if ((err == 0) && (sz != (word32)key->ecc.dp->size)) {
  674. err = BUFFER_E;
  675. }
  676. if (err == 0) {
  677. /* Read the secret value from key size bytes. */
  678. err = mp_read_unsigned_bin(&key->ecc.k, data, key->ecc.dp->size);
  679. }
  680. return err;
  681. }
  682. /*
  683. * Convert the public key from montgomery form.
  684. *
  685. * The public key is needed in Montgomery form for validation and derivation.
  686. *
  687. * @param [in] key SAKKE key.
  688. * @return 0 on success.
  689. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  690. * @return Other value when an an internal operation fails.
  691. */
  692. static int sakke_z_from_mont(SakkeKey* key)
  693. {
  694. int err = 0;
  695. mp_digit mp;
  696. ecc_point* z = &key->ecc.pubkey;
  697. mp_int* prime = &key->params.prime;
  698. if (key->zMont) {
  699. err = mp_montgomery_setup(prime, &mp);
  700. if (err == 0) {
  701. err = mp_montgomery_reduce(z->x, prime, mp);
  702. }
  703. if (err == 0) {
  704. err = mp_montgomery_reduce(z->y, prime, mp);
  705. }
  706. if (err == 0) {
  707. err = mp_montgomery_reduce(z->z, prime, mp);
  708. }
  709. if (err == 0) {
  710. key->zMont = 0;
  711. }
  712. }
  713. return err;
  714. }
  715. /*
  716. * Encode a point into a buffer.
  717. *
  718. * X and y ordinate of point concatenated. Each number is zero padded tosize.
  719. * Descriptor byte (0x04) is prepended when not raw.
  720. *
  721. * @param [in] point ECC point to encode.
  722. * @param [in] size Size of prime in bytes - maximum ordinate length.
  723. * @param [out] data Buffer to hold encoded data.
  724. * NULL when needing length of encoded data.
  725. * @param [in,out] sz In, the size of the buffer in bytes.
  726. * Out, the size of the encoded data in bytes.
  727. * @param [in] raw On 0, prepend descriptor byte.
  728. * On 1, only include ordinates.
  729. * @return 0 on success.
  730. * @return BAD_FUNC_ARG when key or sz is NULL.
  731. * @return LENGTH_ONLY_E when data is NULL - sz will hold the size in bytes of
  732. * the encoded data.
  733. * @return BUFFER_E when size of buffer is too small.
  734. */
  735. static int sakke_encode_point(ecc_point* point, word32 size, byte* data,
  736. word32* sz, int raw)
  737. {
  738. int err = 0;
  739. if (data == NULL) {
  740. *sz = size * 2 + !raw;
  741. err = LENGTH_ONLY_E;
  742. }
  743. if ((err == 0) && (*sz < size * 2 + !raw)) {
  744. err = BUFFER_E;
  745. }
  746. if (err == 0) {
  747. if (!raw) {
  748. data[0] = 0x04;
  749. data++;
  750. }
  751. /* Write out the point's x ordinate into key size bytes. */
  752. err = mp_to_unsigned_bin_len(point->x, data, size);
  753. }
  754. if (err == 0) {
  755. data += size;
  756. /* Write out the point's y ordinate into key size bytes. */
  757. err = mp_to_unsigned_bin_len(point->y, data, size);
  758. }
  759. if (err == 0) {
  760. *sz = size * 2 + !raw;
  761. }
  762. return err;
  763. }
  764. /*
  765. * Decode the data into an ECC point.
  766. *
  767. * X and y ordinate of point concatenated. Each number is zero padded to
  768. * key size. Supports prepended descriptor byte (0x04).
  769. *
  770. * @param [out] point ECC point to encode.
  771. * @param [in] size Size of prime in bytes - maximum ordinate length.
  772. * @param [in] data Encoded public key.
  773. * @param [in] sz Size of the encoded public key in bytes.
  774. * @return 0 on success.
  775. * @return BAD_FUNC_ARG when key or z is NULL.
  776. * @return BUFFER_E when size of data is not equal to the expected size.
  777. * @return ASN_PARSE_E when format byte is invalid.
  778. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  779. */
  780. static int sakke_decode_point(ecc_point* point, word32 size, const byte* data,
  781. word32 sz)
  782. {
  783. int err = 0;
  784. if ((sz != size * 2) && (sz != size * 2 + 1)) {
  785. err = BUFFER_E;
  786. }
  787. if ((err == 0) && (sz & 1)) {
  788. if (data[0] != 0x04) {
  789. err = ASN_PARSE_E;
  790. }
  791. data++;
  792. }
  793. if (err == 0) {
  794. /* Read the public key point's x value from key size bytes. */
  795. err = mp_read_unsigned_bin(point->x, data, size);
  796. }
  797. if (err == 0) {
  798. data += size;
  799. /* Read the public key point's y value from key size bytes. */
  800. err = mp_read_unsigned_bin(point->y, data, size);
  801. }
  802. if (err == 0) {
  803. err = mp_set(point->z, 1);
  804. }
  805. return err;
  806. }
  807. /**
  808. * Encode the KMS public key (Z_T) into a buffer.
  809. *
  810. * Z_T is required by all clients in order to perform cryptographic operations.
  811. *
  812. * X and y ordinate of public key concatenated. Each number is zero padded to
  813. * key size.
  814. * Descriptor byte (0x04) is prepended when not raw.
  815. *
  816. * @param [in] key SAKKE key.
  817. * @param [out] data Buffer to hold encoded data.
  818. * NULL when needing length of encoded data.
  819. * @param [in,out] sz In, the size of the buffer in bytes.
  820. * Out, the size of the encoded data in bytes.
  821. * @param [in] raw On 0, prepend descriptor byte.
  822. * On 1, only include ordinates.
  823. * @return 0 on success.
  824. * @return BAD_FUNC_ARG when key or sz is NULL.
  825. * @return LENGTH_ONLY_E when data is NULL - sz will hold the size in bytes of
  826. * the encoded data.
  827. * @return BUFFER_E when size of buffer is too small.
  828. */
  829. int wc_ExportSakkePublicKey(SakkeKey* key, byte* data, word32* sz, int raw)
  830. {
  831. int err = 0;
  832. if ((key == NULL) || (sz == NULL)) {
  833. err = BAD_FUNC_ARG;
  834. }
  835. if ((err == 0) && (data != NULL)) {
  836. err = sakke_z_from_mont(key);
  837. }
  838. if (err == 0) {
  839. err = sakke_encode_point(&key->ecc.pubkey, (word32)key->ecc.dp->size,
  840. data, sz, raw);
  841. }
  842. return err;
  843. }
  844. /**
  845. * Calculates the Receiver Secret Key (RSK) for the identity.
  846. *
  847. * RFC 6508, Section 6.1.1
  848. *
  849. * RSK = [ (a + z_T) ^ 1 modulo q ]P\n
  850. * RSK is required by receiver to derive SSV.
  851. *
  852. * @param [in] key SAKKE key.
  853. * @param [in] id Identity to create hash for.
  854. * @param [in] idSz Length of identity in bytes.
  855. * @param [out] rsk Receiver Secret Key as an ECC point.
  856. * @return 0 on success.
  857. * @return BAD_FUNC_ARG when key, id, or rsk is NULL.
  858. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  859. * @return Other value when an an internal operation fails.
  860. */
  861. int wc_MakeSakkeRsk(SakkeKey* key, const byte* id, word16 idSz, ecc_point* rsk)
  862. {
  863. int err = 0;
  864. mp_int* a = NULL;
  865. if ((key == NULL) || (id == NULL) || (rsk == NULL)) {
  866. err = BAD_FUNC_ARG;
  867. }
  868. if (err == 0) {
  869. err = sakke_load_params(key);
  870. }
  871. if (err == 0) {
  872. err = sakke_load_base_point(key);
  873. }
  874. /* Compute RSK = [ (a + z_T) ^ 1 modulo q ]P */
  875. if (err == 0) {
  876. a = &key->tmp.m1;
  877. err = mp_read_unsigned_bin(a, id, idSz);
  878. }
  879. /* a + z_T */
  880. if (err == 0) {
  881. err = mp_addmod(a, &key->ecc.k, &key->params.q, a);
  882. }
  883. /* (a + z_T) ^ 1 modulo q */
  884. if (err == 0) {
  885. err = mp_invmod(a, &key->params.q, a);
  886. }
  887. /* [ (a + z_T) ^ 1 modulo q ]P */
  888. if (err == 0) {
  889. err = sakke_mulmod_base(key, a, rsk, 1);
  890. }
  891. return err;
  892. }
  893. /**
  894. * Encode the SAKKE Receiver Secret Key (RSK) as DER encoded public ECC key.
  895. *
  896. * Encode the RSK to send to ther receiving client.
  897. *
  898. * X and y ordinate of RSK point concatenated. Each number is zero padded to
  899. * key size.
  900. * Descriptor byte (0x04) is prepended when not raw.
  901. *
  902. * @param [in] key SAKKE key.
  903. * @param [in] rsk ECC point that is the Receiver Secret Key (RSK).
  904. * @param [out] out Buffer to hold encoded RSK.
  905. * @param [in,out] sz In, size of buffer in bytes.
  906. * Out, size of encoded RSK in bytes.
  907. * @param [in] raw On 0, prepend descriptor byte.
  908. * On 1, only include ordinates.
  909. * @return 0 on success.
  910. * @return BAD_FUNC_ARG when key, rsk, or sz is NULL.
  911. * @return LENGTH_ONLY_E when data is NULL - sz will hold the size in bytes of
  912. * the encoded data.
  913. * @return BUFFER_E when size of buffer is too small.
  914. */
  915. int wc_EncodeSakkeRsk(const SakkeKey* key, ecc_point* rsk, byte* out,
  916. word32* sz, int raw)
  917. {
  918. int err = 0;
  919. if ((key == NULL) || (rsk == NULL) || (sz == NULL)) {
  920. err = BAD_FUNC_ARG;
  921. }
  922. if (err == 0) {
  923. err = sakke_encode_point(rsk, (word32)key->ecc.dp->size, out, sz, raw);
  924. }
  925. return err;
  926. }
  927. #endif /* WOLFCRYPT_SAKKE_KMS */
  928. #ifdef WOLFCRYPT_SAKKE_CLIENT
  929. /**
  930. * Decode the KMS public key (Z_T) into the key.
  931. *
  932. * A client imports Z_T to perform derivation of SSV.
  933. *
  934. * X and y ordinate of public key concatenated. Each number is zero padded to
  935. * key size. Supports prepended descriptor byte (0x04).
  936. *
  937. * @param [in] key SAKKE key.
  938. * @param [in] data Encoded public key.
  939. * @param [in] sz Size of the encoded public key in bytes.
  940. * @param [in] trusted 1 when public key is trusted.
  941. * 0 when validation is required to be performed.
  942. * @return 0 on success.
  943. * @return BAD_FUNC_ARG when key or z is NULL.
  944. * @return BUFFER_E when size of data is not equal to the expected size.
  945. * @return ASN_PARSE_E when format byte is invalid.
  946. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  947. * @return ECC_OUT_OF_RANGE_E when point is invalid.
  948. * @return ECC_INF_E when point is at infinity and invalid.
  949. */
  950. int wc_ImportSakkePublicKey(SakkeKey* key, const byte* data, word32 sz,
  951. int trusted)
  952. {
  953. int err = 0;
  954. if ((key == NULL) || (data == NULL)) {
  955. err = BAD_FUNC_ARG;
  956. }
  957. if (err == 0) {
  958. err = sakke_decode_point(&key->ecc.pubkey, (word32)key->ecc.dp->size,
  959. data, sz);
  960. }
  961. if (err == 0) {
  962. key->ecc.type = ECC_PUBLICKEY;
  963. key->zMont = 0;
  964. }
  965. if ((err == 0) && (!trusted)) {
  966. err = wc_ecc_check_key(&key->ecc);
  967. }
  968. return err;
  969. }
  970. /**
  971. * Decode the SAKKE Receiver Secret Key (RSK) as DER encoded public ECC key.
  972. *
  973. * A receiving client needs the RSK for deriving SSV.
  974. *
  975. * X and y ordinate of RSK point concatenated. Each number is zero padded to
  976. * key size. Supports prepended descriptor byte (0x04).
  977. *
  978. * @param [in] key SAKKE key.
  979. * @param [in] data Buffer holding encoded SAKKE key.
  980. * @param [in] sz Size of encoded RSK in bytes.
  981. * @param [out] rsk ECC point to hold the Receiver Secret Key (RSK).
  982. * @return 0 on success.
  983. * @return BAD_FUNC_ARG when key, data or rsk is NULL.
  984. * @return BUFFER_E when size of data is not equal to the expected size.
  985. * @return ASN_PARSE_E when format byte is invalid.
  986. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  987. */
  988. int wc_DecodeSakkeRsk(const SakkeKey* key, const byte* data, word32 sz,
  989. ecc_point* rsk)
  990. {
  991. int err = 0;
  992. if ((key == NULL) || (data == NULL) || (rsk == NULL)) {
  993. err = BAD_FUNC_ARG;
  994. }
  995. if (err == 0) {
  996. err = sakke_decode_point(rsk, (word32)key->ecc.dp->size, data, sz);
  997. }
  998. return err;
  999. }
  1000. /**
  1001. * Decode the SAKKE Receiver Secret Key (RSK) as DER encoded public ECC key and
  1002. * stores internally.
  1003. *
  1004. * A receiving client needs the RSK for deriving SSV.
  1005. *
  1006. * X and y ordinate of RSK point concatenated. Each number is zero padded to
  1007. * key size. Supports prepended descriptor byte (0x04).
  1008. *
  1009. * @param [in] key SAKKE key.
  1010. * @param [in] data Buffer holding encoded SAKKE key.
  1011. * @param [in] sz Size of encoded RSK in bytes.
  1012. * @return 0 on success.
  1013. * @return BAD_FUNC_ARG when key or data is NULL.
  1014. * @return BUFFER_E when size of data is not equal to the expected size.
  1015. * @return MP_MEM or MEMORY_E when dynamic memory allocation fails.
  1016. */
  1017. int wc_ImportSakkeRsk(SakkeKey* key, const byte* data, word32 sz)
  1018. {
  1019. int err = 0;
  1020. if ((key == NULL) || (data == NULL)) {
  1021. err = BAD_FUNC_ARG;
  1022. }
  1023. if (err == 0) {
  1024. err = wc_DecodeSakkeRsk(key, data, sz, key->rsk.rsk);
  1025. }
  1026. return err;
  1027. }
  1028. /* Base (g) for SAKKE parameter set 1. */
  1029. static const byte sakke_param_set_1_base[] = {
  1030. 0x66, 0xFC, 0x2A, 0x43, 0x2B, 0x6E, 0xA3, 0x92,
  1031. 0x14, 0x8F, 0x15, 0x86, 0x7D, 0x62, 0x30, 0x68,
  1032. 0xC6, 0xA8, 0x7B, 0xD1, 0xFB, 0x94, 0xC4, 0x1E,
  1033. 0x27, 0xFA, 0xBE, 0x65, 0x8E, 0x01, 0x5A, 0x87,
  1034. 0x37, 0x1E, 0x94, 0x74, 0x4C, 0x96, 0xFE, 0xDA,
  1035. 0x44, 0x9A, 0xE9, 0x56, 0x3F, 0x8B, 0xC4, 0x46,
  1036. 0xCB, 0xFD, 0xA8, 0x5D, 0x5D, 0x00, 0xEF, 0x57,
  1037. 0x70, 0x72, 0xDA, 0x8F, 0x54, 0x17, 0x21, 0xBE,
  1038. 0xEE, 0x0F, 0xAE, 0xD1, 0x82, 0x8E, 0xAB, 0x90,
  1039. 0xB9, 0x9D, 0xFB, 0x01, 0x38, 0xC7, 0x84, 0x33,
  1040. 0x55, 0xDF, 0x04, 0x60, 0xB4, 0xA9, 0xFD, 0x74,
  1041. 0xB4, 0xF1, 0xA3, 0x2B, 0xCA, 0xFA, 0x1F, 0xFA,
  1042. 0xD6, 0x82, 0xC0, 0x33, 0xA7, 0x94, 0x2B, 0xCC,
  1043. 0xE3, 0x72, 0x0F, 0x20, 0xB9, 0xB7, 0xB0, 0x40,
  1044. 0x3C, 0x8C, 0xAE, 0x87, 0xB7, 0xA0, 0x04, 0x2A,
  1045. 0xCD, 0xE0, 0xFA, 0xB3, 0x64, 0x61, 0xEA, 0x46
  1046. };
  1047. /*
  1048. * Load Pairing Base (g), hex strings in ECC object, into field of key.
  1049. *
  1050. * Flags that the g is available so it isn't loaded multiple times.
  1051. *
  1052. * @param [in] key SAKKE key.
  1053. * @return 0 on success.
  1054. * @return MEMORY_E when dynamic memory allocation fails.
  1055. * @return Other -ve value on internal failure.
  1056. */
  1057. static int sakke_load_pairing_base(SakkeKey* key)
  1058. {
  1059. int err = 0;
  1060. SakkeKeyParams* params = &key->params;
  1061. if (!params->haveG) {
  1062. if (key->ecc.dp->id != ECC_SAKKE_1) {
  1063. err = NOT_COMPILED_IN;
  1064. }
  1065. if (err == 0) {
  1066. err = mp_read_unsigned_bin(&params->g, sakke_param_set_1_base,
  1067. sizeof(sakke_param_set_1_base));
  1068. if (err == 0) {
  1069. params->haveG = 1;
  1070. }
  1071. }
  1072. }
  1073. return err;
  1074. }
  1075. #ifndef WOLFSSL_HAVE_SP_ECC
  1076. /*
  1077. * Put point into Montgomery form.
  1078. *
  1079. * @param [in] p ECC point.
  1080. * @param [in] prime Prime modulus.
  1081. * @param [in] mu Temporary MP integer to hold mu.
  1082. * @param [in] set 1 when mu is set and 0 when it needs to be calculated.
  1083. * @return 0 on success.
  1084. * @return MEMORY_E when dynamic memory allocation fails.
  1085. * @return Other -ve value on internal failure.
  1086. */
  1087. static int sakke_point_to_mont(ecc_point* p, mp_int* prime, mp_int* mu, int set)
  1088. {
  1089. int err = 0;
  1090. if (!set) {
  1091. /* Calculate multiplier that converts to Montgomery form. */
  1092. err = mp_montgomery_calc_normalization(mu, prime);
  1093. }
  1094. if (err == 0) {
  1095. err = mp_mulmod(p->x, mu, prime, p->x);
  1096. }
  1097. if (err == 0) {
  1098. err = mp_mulmod(p->y, mu, prime, p->y);
  1099. }
  1100. if (err == 0) {
  1101. err = mp_mulmod(p->z, mu, prime, p->z);
  1102. }
  1103. return err;
  1104. }
  1105. /*
  1106. * Take point out of Montgomery form.
  1107. *
  1108. * @param [in] p ECC point.
  1109. * @param [in] prime Prime modulus.
  1110. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1111. * @return 0 on success.
  1112. * @return MEMORY_E when dynamic memory allocation fails.
  1113. * @return Other -ve value on internal failure.
  1114. */
  1115. static int sakke_point_from_mont(ecc_point* p, mp_int* prime, mp_digit mp)
  1116. {
  1117. int err;
  1118. err = mp_montgomery_reduce(p->x, prime, mp);
  1119. if (err == 0) {
  1120. err = mp_montgomery_reduce(p->y, prime, mp);
  1121. }
  1122. if (err == 0) {
  1123. err = mp_montgomery_reduce(p->z, prime, mp);
  1124. }
  1125. return err;
  1126. }
  1127. /*
  1128. * Put Z into Montgomery form.
  1129. *
  1130. * @param [in] key SAKKE key.
  1131. * @param [in] mu Temporary MP integer.
  1132. * @return 0 on success.
  1133. * @return MEMORY_E when dynamic memory allocation fails.
  1134. * @return Other -ve value on internal failure.
  1135. */
  1136. static int sakke_z_to_mont(SakkeKey* key, mp_int* tmp)
  1137. {
  1138. int err = 0;
  1139. ecc_point* z = &key->ecc.pubkey;
  1140. if (!key->zMont) {
  1141. err = sakke_point_to_mont(z, &key->params.prime, tmp, 0);
  1142. if (err == 0) {
  1143. key->zMont = 1;
  1144. }
  1145. }
  1146. return err;
  1147. }
  1148. #endif
  1149. #ifdef WOLFSSL_HAVE_SP_ECC
  1150. /**
  1151. * Generate a pre-computation table for the RSK point.
  1152. *
  1153. * The table contains sensitive data.
  1154. *
  1155. * @param [in] key SAKKE key.
  1156. * @param [in] rsk Point to generate table for.
  1157. * @param [out] table Pre-generated values. Passing NULL indicates that
  1158. * the length of the table is required.
  1159. * @param [in,out] len On in, the size of table buffer in bytes.
  1160. * On out, the size of the pre-generated data in bytes.
  1161. * @return 0 on success.
  1162. * @return BAD_FUNC_ARG when key, rsk or len is NULL.
  1163. * @return LENGTH_ONLY_E when table is NULL.
  1164. * @return BAD_LENGTH_E when table is specified and len is too small.
  1165. * @return MEMORY_E when dynamic memory allocation fails.
  1166. */
  1167. int wc_GenerateSakkeRskTable(const SakkeKey* key, const ecc_point* rsk,
  1168. byte* table, word32* len)
  1169. {
  1170. int err = 0;
  1171. if ((key == NULL) || (rsk == NULL) || (len == 0)) {
  1172. err = BAD_FUNC_ARG;
  1173. }
  1174. if (err == 0) {
  1175. SAVE_VECTOR_REGISTERS(return _svr_ret;);
  1176. #ifdef WOLFSSL_SP_1024
  1177. err = sp_Pairing_gen_precomp_1024(rsk, table, len);
  1178. #else
  1179. err = NOT_COMPILED_IN;
  1180. #endif
  1181. RESTORE_VECTOR_REGISTERS();
  1182. }
  1183. return err;
  1184. }
  1185. /*
  1186. * Calculate r = pairing <P, Q>.
  1187. *
  1188. * That is, multiply base in PF_p[q] by the scalar s, such that s.P = Q.
  1189. *
  1190. * @param [in] key SAKKE key.
  1191. * @param [in] p First point on E(F_p)[q].
  1192. * @param [in] q Second point on E(F_p)[q].
  1193. * @param [out] r Result of calculation.
  1194. * @return 0 on success.
  1195. * @return MEMORY_E when dynamic memory allocation fails.
  1196. * @return Other -ve value on internal failure.
  1197. */
  1198. static int sakke_pairing(const SakkeKey* key, const ecc_point* p,
  1199. const ecc_point* q, mp_int* r, const byte* table, word32 len)
  1200. {
  1201. int err = NOT_COMPILED_IN;
  1202. #ifdef WOLFSSL_SP_1024
  1203. if ((key->ecc.idx != ECC_CUSTOM_IDX) &&
  1204. (ecc_sets[key->ecc.idx].id == ECC_SAKKE_1)) {
  1205. if (table == NULL) {
  1206. err = sp_Pairing_1024(p, q, r);
  1207. }
  1208. else {
  1209. err = sp_Pairing_precomp_1024(p, q, r, table, len);
  1210. }
  1211. }
  1212. #else
  1213. (void)key;
  1214. (void)p;
  1215. (void)q;
  1216. (void)r;
  1217. (void)table;
  1218. (void)len;
  1219. #endif
  1220. return err;
  1221. }
  1222. #else /* WOLFSSL_HAVE_SP_ECC */
  1223. /**
  1224. * Generate a pre-computation table for the RSK point.
  1225. *
  1226. * Empty table as not supported in this implementation.
  1227. *
  1228. * @param [in] key SAKKE key.
  1229. * @param [in] rsk Point to generate table for.
  1230. * @param [out] table Pre-generated values. Passing NULL indicates that
  1231. * the length of the table is required.
  1232. * @param [in,out] len On in, the size of table buffer in bytes.
  1233. * On out, the size of the pre-generated data in bytes.
  1234. * @return 0 on success.
  1235. * @return BAD_FUNC_ARG when key, rsk or len is NULL.
  1236. * @return LENGTH_ONLY_E when table is NULL.
  1237. * @return BAD_LENGTH_E when table is specified and len is too small.
  1238. * @return MEMORY_E when dynamic memory allocation fails.
  1239. */
  1240. int wc_GenerateSakkeRskTable(const SakkeKey* key, const ecc_point* rsk,
  1241. byte* table, word32* len)
  1242. {
  1243. int err = 0;
  1244. if ((key == NULL) || (rsk == NULL) || (len == 0)) {
  1245. err = BAD_FUNC_ARG;
  1246. }
  1247. if ((err == 0) && (table == NULL)) {
  1248. *len = 0;
  1249. err = LENGTH_ONLY_E;
  1250. }
  1251. if ((err == 0) && (*len != 0)) {
  1252. err = BUFFER_E;
  1253. }
  1254. if (err == 0) {
  1255. *len = 0;
  1256. }
  1257. (void)table;
  1258. return err;
  1259. }
  1260. /*
  1261. * Square a modulo m in Montgomery.
  1262. *
  1263. * @param [in] a MP integer that is number to square.
  1264. * @param [in] m MP integer that is modulus.
  1265. * @param [out] r MP integer that is the result.
  1266. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1267. * @return 0 on success.
  1268. * @return MEMORY_E when dynamic memory allocation fails.
  1269. * @return Other -ve value on internal failure.
  1270. */
  1271. static int sakke_mont_sqrmod(mp_int* a, mp_int* m, mp_int* r, mp_digit mp)
  1272. {
  1273. int err;
  1274. err = mp_sqr(a, r);
  1275. if (err == 0) {
  1276. err = mp_montgomery_reduce(r, m, mp);
  1277. }
  1278. return err;
  1279. }
  1280. /*
  1281. * Multiply a by b modulo m in Montgomery.
  1282. *
  1283. * @param [in] a MP integer that is first number to multiply.
  1284. * @param [in] b MP integer that is second number to multiply.
  1285. * @param [in] m MP integer that is modulus.
  1286. * @param [out] r MP integer that is the result.
  1287. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1288. * @return 0 on success.
  1289. * @return MEMORY_E when dynamic memory allocation fails.
  1290. * @return Other -ve value on internal failure.
  1291. */
  1292. static int sakke_mont_mulmod(mp_int* a, mp_int* b, mp_int* m, mp_int* r,
  1293. mp_digit mp)
  1294. {
  1295. int err;
  1296. err = mp_mul(a, b, r);
  1297. if (err == 0) {
  1298. err = mp_montgomery_reduce(r, m, mp);
  1299. }
  1300. return err;
  1301. }
  1302. /*
  1303. * Add a and b modulo m. r = a + b % m
  1304. *
  1305. * @param [in] a MP integer that is first number to add.
  1306. * @param [in] b MP integer that is second number to add.
  1307. * @param [out] m MP integer that is modulus.
  1308. * @param [in] r MP integer that is the result.
  1309. * @return 0 on success.
  1310. * @return MEMORY_E when dynamic memory allocation fails.
  1311. * @return Other -ve value on internal failure.
  1312. */
  1313. static int sakke_addmod(mp_int* a, mp_int* b, mp_int* m, mp_int* r)
  1314. {
  1315. int err;
  1316. err = mp_add(a, b, r);
  1317. if ((err == 0) && (mp_cmp(r, m) != MP_LT)) {
  1318. err = mp_sub(r, m, r);
  1319. }
  1320. return err;
  1321. }
  1322. /*
  1323. * Triple a modulo m. r = 3.a % m
  1324. *
  1325. * @param [in] a MP integer that is number to triple
  1326. * @param [out] m MP integer that is modulus.
  1327. * @param [in] r MP integer that is the result.
  1328. * @return 0 on success.
  1329. * @return MEMORY_E when dynamic memory allocation fails.
  1330. * @return Other -ve value on internal failure.
  1331. */
  1332. static int sakke_tplmod(mp_int* a, mp_int* m, mp_int* r)
  1333. {
  1334. int err;
  1335. err = mp_mul_d(a, 3, r);
  1336. if ((err == 0) && (mp_cmp(r, m) != MP_LT)) {
  1337. err = mp_sub(r, m, r);
  1338. }
  1339. if ((err == 0) && (mp_cmp(r, m) != MP_LT)) {
  1340. err = mp_sub(r, m, r);
  1341. }
  1342. if ((err == 0) && (mp_cmp(r, m) != MP_LT)) {
  1343. err = mp_sub(r, m, r);
  1344. }
  1345. return err;
  1346. }
  1347. /*
  1348. * Subtract b from a modulo m. r = a - b % m
  1349. *
  1350. * @param [in] a MP integer that is first number to add.
  1351. * @param [in] b MP integer that is second number to add.
  1352. * @param [in] m MP integer that is modulus.
  1353. * @param [out] r MP integer that is the result.
  1354. * @return 0 on success.
  1355. * @return MEMORY_E when dynamic memory allocation fails.
  1356. * @return Other -ve value on internal failure.
  1357. */
  1358. static int sakke_submod(mp_int* a, mp_int* b, mp_int* m, mp_int* r)
  1359. {
  1360. int err;
  1361. #if !defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_SP_INT_NEGATIVE)
  1362. err = mp_sub(a, b, r);
  1363. if ((err == 0) && mp_isneg(r)) {
  1364. err = mp_add(r, m, r);
  1365. }
  1366. #else
  1367. err = sp_submod_ct(a, b, m, r);
  1368. #endif
  1369. return err;
  1370. }
  1371. /*
  1372. * Square the element of PF_p[q] (projectivization of F_p with order q).
  1373. *
  1374. * Calculation:
  1375. * r.x = (p.x + p.y) * (p.x - p.y)
  1376. * r.y = (p.x * p.y) * 2
  1377. *
  1378. * @param [in] p MP projective integer - value to square.
  1379. * @param [in] prime MP integer that is the modulus of the field.
  1380. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1381. * @param [out] r MP projective integer - Result of square.
  1382. * @param [in] t1 MP integer temporary.
  1383. * @param [in] t2 MP integer temporary.
  1384. * @return 0 on success.
  1385. * @return MEMORY_E when dynamic memory allocation fails.
  1386. * @return Other -ve value on internal failure.
  1387. */
  1388. static int sakke_proj_sqr(mp_proj* p, mp_int* prime, mp_digit mp, mp_proj* r,
  1389. mp_int* t1, mp_int* t2)
  1390. {
  1391. int err;
  1392. /* t1 = p.x + p.y */
  1393. err = sakke_addmod(p->x, p->y, prime, t1);
  1394. /* t2 = p.x - p.y */
  1395. if (err == 0) {
  1396. err = sakke_submod(p->x, p->y, prime, t2);
  1397. }
  1398. /* r.y = p.x * p.y */
  1399. if (err == 0) {
  1400. err = sakke_mont_mulmod(p->x, p->y, prime, r->y, mp);
  1401. }
  1402. /* r.x = (p.x + p.y) * (p.x - p.y) */
  1403. if (err == 0) {
  1404. err = sakke_mont_mulmod(t1, t2, prime, r->x, mp);
  1405. }
  1406. /* r.y = (p.x * p.y) * 2 */
  1407. if (err == 0) {
  1408. err = sakke_addmod(r->y, r->y, prime, r->y);
  1409. }
  1410. return err;
  1411. }
  1412. /*
  1413. * Multiply two elements of PF_p[q] (projectivization of F_p with order q).
  1414. *
  1415. * q must not be the same object as r.
  1416. * Calculation:
  1417. * r.x = (p.x * q.x) - (p.y * q.y)
  1418. * r.y = (p.x * q.y) + (p.y * q.x)
  1419. *
  1420. * @param [in] p MP projective integer - first value to multiply.
  1421. * @param [in] q MP projective integer - second value to multiply.
  1422. * @param [in] prime MP integer that is the modulus of the field.
  1423. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1424. * @param [out] r Result of operation.
  1425. * @param [in] t1 MP integer temporary.
  1426. * @param [in] t2 MP integer temporary.
  1427. * @return 0 on success.
  1428. * @return MEMORY_E when dynamic memory allocation fails.
  1429. * @return Other -ve value on internal failure.
  1430. */
  1431. static int sakke_proj_mul(mp_proj* p, mp_proj* q, mp_int* prime, mp_digit mp,
  1432. mp_proj* r, mp_int* t1, mp_int* t2)
  1433. {
  1434. int err;
  1435. /* t1 = p.x * q.y */
  1436. err = sakke_mont_mulmod(p->x, q->y, prime, t1, mp);
  1437. /* r->x = p.x * q.x */
  1438. if (err == 0) {
  1439. err = sakke_mont_mulmod(p->x, q->x, prime, r->x, mp);
  1440. }
  1441. /* t2 = p.y * q.y */
  1442. if (err == 0) {
  1443. err = sakke_mont_mulmod(p->y, q->y, prime, t2, mp);
  1444. }
  1445. /* r.x = (p.x * q.x) - (p.y * q.y) */
  1446. if (err == 0) {
  1447. err = sakke_submod(r->x, t2, prime, r->x);
  1448. }
  1449. /* r.y = p.y * q.x */
  1450. if (err == 0) {
  1451. err = sakke_mont_mulmod(p->y, q->x, prime, r->y, mp);
  1452. }
  1453. /* r.y = (p.x * q.y) + (p.y * q.x) */
  1454. if (err == 0) {
  1455. err = sakke_addmod(t1, r->y, prime, r->y);
  1456. }
  1457. return err;
  1458. }
  1459. /*
  1460. * Multiply two elements of PF_p[q] (projectivization of F_p with order q).
  1461. *
  1462. * q must not be the same object as r.
  1463. * Calculation:
  1464. * r.x = (p.x * q.x) - (p.y * q.y)
  1465. * r.y = (p.x * q.y) + (p.y * q.x)
  1466. * But qx = 1
  1467. * r.x = p.x - (p.y * q.y)
  1468. * r.y = (p.x * q.y) + p.y
  1469. *
  1470. * @param [in] p MP projective integer - first value to multiply.
  1471. * @param [in] q MP projective integer - second value to multiply.
  1472. * @param [in] prime MP integer that is the modulus of the field.
  1473. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1474. * @param [out] r Result of operation.
  1475. * @param [in] t1 MP integer temporary.
  1476. * @param [in] t2 MP integer temporary.
  1477. * @return 0 on success.
  1478. * @return MEMORY_E when dynamic memory allocation fails.
  1479. * @return Other -ve value on internal failure.
  1480. */
  1481. static int sakke_proj_mul_qx1(mp_proj* p, mp_int* q, mp_int* prime, mp_digit mp,
  1482. mp_proj* r, mp_int* t1, mp_int* t2)
  1483. {
  1484. int err;
  1485. /* t1 = p.x * q.y */
  1486. err = sakke_mont_mulmod(p->x, q, prime, t1, mp);
  1487. /* t2 = p.y * q.y */
  1488. if (err == 0) {
  1489. err = sakke_mont_mulmod(p->y, q, prime, t2, mp);
  1490. }
  1491. /* r.x = p.x - (p.y * q.y) */
  1492. if (err == 0) {
  1493. err = sakke_submod(p->x, t2, prime, r->x);
  1494. }
  1495. /* r.y = (p.x * q.y) + p.y */
  1496. if (err == 0) {
  1497. err = sakke_addmod(t1, p->y, prime, r->y);
  1498. }
  1499. return err;
  1500. }
  1501. /*
  1502. * Calculate the gradient of line through P, P and [-2]P.
  1503. *
  1504. * @param [in] p ECC point - first point on the elliptic curve.
  1505. * @param [in] t2 MP integer temporary.
  1506. * @param [in] prime MP integer that is the modulus of the field.
  1507. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1508. * @param [out] l MP integer representing gradient.
  1509. * @param [out] z2 MP integer representing p.z^2.
  1510. */
  1511. static int sakke_calc_dbl_rx(ecc_point* p, ecc_point* q, mp_int* prime,
  1512. mp_digit mp, mp_proj* r, mp_int* l, mp_int* z2)
  1513. {
  1514. int err;
  1515. mp_int* t = r->y;
  1516. /* z2 = p.z^2 */
  1517. err = sakke_mont_sqrmod(p->z, prime, z2, mp);
  1518. /* t = p.x + p.z^2 */
  1519. if (err == 0) {
  1520. err = sakke_addmod(p->x, z2, prime, l);
  1521. }
  1522. /* r1 = p.x - p.z^2 */
  1523. if (err == 0) {
  1524. err = sakke_submod(p->x, z2, prime, t);
  1525. }
  1526. /* l = ((p.x - p.z^2) * (p.x + p.z^2) = p.x ^ 2 - p.z^4 */
  1527. if (err == 0) {
  1528. err = sakke_mont_mulmod(l, t, prime, l, mp);
  1529. }
  1530. /* l = ((p.x ^ 2) - p.z^4) * 3 */
  1531. if (err == 0) {
  1532. err = sakke_tplmod(l, prime, l);
  1533. }
  1534. /* t = q.x * p.z^2 */
  1535. if (err == 0) {
  1536. err = sakke_mont_mulmod(q->x, z2, prime, t, mp);
  1537. }
  1538. /* t = p.x + q.x * p.z^2 */
  1539. if (err == 0) {
  1540. err = sakke_addmod(p->x, t, prime, t);
  1541. }
  1542. /* r.x = l * (p.x + q.x * p.z^2) */
  1543. if (err == 0) {
  1544. err = sakke_mont_mulmod(l, t, prime, r->x, mp);
  1545. }
  1546. return err;
  1547. }
  1548. #ifdef WOLFSSL_SAKKE_SMALL
  1549. /*
  1550. * Calculate gradient of line through P, P and [-2]P and accumulate line.
  1551. *
  1552. * Calculation:
  1553. * l = 3 * (p.x^2 - p.z^4) = 3 * (p.x - p.z^2) * (p.x + p.z^2)
  1554. * r.x = l * (p.x + q.x * p.z^2) - 2 * p.y^2
  1555. * r.y = 2 * p.y * p.z^3 * q.y
  1556. * v* = v*^2 * r*
  1557. *
  1558. * @param [in] p ECC point - first point on the elliptic curve.
  1559. * @param [in] q ECC point - second point on the elliptic curve.
  1560. * @param [in] prime MP integer that is the modulus of the field.
  1561. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1562. * @param [out] r MP projective integer - gradient in PF_p[q].
  1563. * @param [in] t1 MP integer temporary.
  1564. * @return 0 on success.
  1565. * @return MEMORY_E when dynamic memory allocation fails.
  1566. * @return Other -ve value on internal failure.
  1567. */
  1568. static int sakke_accumulate_line_dbl(mp_proj* v, ecc_point* p, ecc_point* q,
  1569. mp_int* prime, mp_digit mp, mp_proj* r, mp_int** t)
  1570. {
  1571. int err;
  1572. mp_int* t1 = t[0];
  1573. mp_int* t2 = r->z;
  1574. mp_int* z2 = t[1];
  1575. mp_int* l = t1;
  1576. /* v = v^2 */
  1577. err = sakke_proj_sqr(v, prime, mp, v, t1, t2);
  1578. /* l = 3 * (p.x^2 - p.z^4), z2 = p.z^2, rx = l * (p.x + q.x * p.z^2) */
  1579. if (err == 0) {
  1580. err = sakke_calc_dbl_rx(p, q, prime, mp, r, l, z2);
  1581. }
  1582. /* t1 = p.y ^ 2 */
  1583. if (err == 0) {
  1584. err = sakke_mont_sqrmod(p->y, prime, t1, mp);
  1585. }
  1586. /* t1 = 2 * (p.y ^ 2) */
  1587. if (err == 0) {
  1588. err = sakke_addmod(t1, t1, prime, t1);
  1589. }
  1590. /* r.x -= 2 * (p.y ^ 2) */
  1591. if (err == 0) {
  1592. err = sakke_submod(r->x, t1, prime, r->x);
  1593. }
  1594. /* r.y = p.y * 2 */
  1595. if (err == 0) {
  1596. err = sakke_addmod(p->y, p->y, prime, r->y);
  1597. }
  1598. /* r.y = (p.y * 2) * q.y */
  1599. if (err == 0) {
  1600. err = sakke_mont_mulmod(r->y, q->y, prime, r->y, mp);
  1601. }
  1602. /* t2 = p.z^3 */
  1603. if (err == 0) {
  1604. err = sakke_mont_mulmod(p->z, z2, prime, t2, mp);
  1605. }
  1606. /* r.y *= p.z^3 */
  1607. if (err == 0) {
  1608. err = sakke_mont_mulmod(r->y, t2, prime, r->y, mp);
  1609. }
  1610. /* v = v^2 * r */
  1611. if (err == 0) {
  1612. err = sakke_proj_mul(v, r, prime, mp, v, t1, t2);
  1613. }
  1614. return err;
  1615. }
  1616. /*
  1617. * Calculate gradient of line through C, P and -C-P and accumulate line.
  1618. *
  1619. * Calculations:
  1620. * r.x = (q.x + p.x) * c.y - (q.x * c.z^2 + c.x) * p.y * c.z
  1621. * r.y = (c.x - p.x * c.z^2) * q.y * c.z
  1622. * v* = v* * r*
  1623. *
  1624. * @param [in] p First point on elliptic curve.
  1625. * @param [in] q Second point on elliptic curve.
  1626. * @param [in] c Third point on elliptic curve.
  1627. * @param [in] prime MP integer that is the modulus of the field.
  1628. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1629. * @param [out] r Resulting gradient in PF_p[q].
  1630. * @param [in] t MP integer temporary.
  1631. * @return 0 on success.
  1632. * @return MEMORY_E when dynamic memory allocation fails.
  1633. * @return Other -ve value on internal failure.
  1634. */
  1635. static int sakke_accumulate_line_add_one(mp_proj* v, mp_int* prime, mp_digit mp,
  1636. ecc_point* p, ecc_point* q, ecc_point* c, mp_proj* r, mp_int* t1)
  1637. {
  1638. int err;
  1639. mp_int* t2 = r->z;
  1640. /* r.x = (q.x + p.x) * c.y */
  1641. err = sakke_addmod(q->x, p->x, prime, r->x);
  1642. if (err == 0) {
  1643. err = sakke_mont_mulmod(r->x, c->y, prime, r->x, mp);
  1644. }
  1645. /* t2 = c.z^2 */
  1646. if (err == 0) {
  1647. err = sakke_mont_sqrmod(c->z, prime, t2, mp);
  1648. }
  1649. /* t = q.x * c.z^2 */
  1650. if (err == 0) {
  1651. err = sakke_mont_mulmod(q->x, t2, prime, t1, mp);
  1652. }
  1653. /* t = q.x * c.z^2 + c.x */
  1654. if (err == 0) {
  1655. err = sakke_addmod(t1, c->x, prime, t1);
  1656. }
  1657. /* t = (q.x * c.z^2 + c.x) * p.y */
  1658. if (err == 0) {
  1659. err = sakke_mont_mulmod(t1, p->y, prime, t1, mp);
  1660. }
  1661. /* t *= c.z */
  1662. if (err == 0) {
  1663. err = sakke_mont_mulmod(t1, c->z, prime, t1, mp);
  1664. }
  1665. /* r.x -= t */
  1666. if (err == 0) {
  1667. err = sakke_submod(r->x, t1, prime, r->x);
  1668. }
  1669. /* t = p.x * c.z^2 */
  1670. if (err == 0) {
  1671. err = sakke_mont_mulmod(p->x, t2, prime, t1, mp);
  1672. }
  1673. /* r.y = c.x - p.x * c.z^2 */
  1674. if (err == 0) {
  1675. err = sakke_submod(c->x, t1, prime, r->y);
  1676. }
  1677. /* r.y = (c.x - p.x) * q.y */
  1678. if (err == 0) {
  1679. err = sakke_mont_mulmod(r->y, q->y, prime, r->y, mp);
  1680. }
  1681. /* r.y = c.x - p.x) * q.y * c.z */
  1682. if (err == 0) {
  1683. err = sakke_mont_mulmod(r->y, c->z, prime, r->y, mp);
  1684. }
  1685. /* v = v * r */
  1686. if (err == 0) {
  1687. err = sakke_proj_mul(v, r, prime, mp, v, t1, t2);
  1688. }
  1689. return err;
  1690. }
  1691. #else
  1692. /*
  1693. * Calculate gradient of line through P, P and [-2]P and accumulate line.
  1694. * Double the point p.
  1695. *
  1696. * Calculation:
  1697. * l = 3 * (p.x^2 - p.z^4) = 3 * (p.x - p.z^2) * (p.x + p.z^2)
  1698. * r.x = l * (p.x + q.x * p.z^2) - 2 * p.y^2
  1699. * r.y = 2 * p.y * p.z^3 * q.y
  1700. * v* = v*^2 * r*
  1701. * p'.x = l^2 - 8 * p.y^2 * p.x
  1702. * p'.y = (4 * p.y^2 * p.x - p'.x) * l - 8 * p.y^4
  1703. * p'.z = 2 * p.y * p.z
  1704. *
  1705. * @param [in] p ECC point - first point on the elliptic curve.
  1706. * @param [in] q ECC point - second point on the elliptic curve.
  1707. * @param [in] prime MP integer that is the modulus of the field.
  1708. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1709. * @param [out] r MP projective integer - gradient in PF_p[q].
  1710. * @param [in] t1 MP integer temporary.
  1711. * @return 0 on success.
  1712. * @return MEMORY_E when dynamic memory allocation fails.
  1713. * @return Other -ve value on internal failure.
  1714. */
  1715. static int sakke_accumulate_line_dbl(mp_proj* v, ecc_point* p, ecc_point* q,
  1716. mp_int* prime, mp_digit mp, mp_proj* r, mp_int** t)
  1717. {
  1718. int err = 0;
  1719. mp_int* t1 = t[0];
  1720. mp_int* t2 = r->z;
  1721. mp_int* z2 = t[1];
  1722. #ifdef WOLFSSL_SMALL_STACK
  1723. mp_int* l = NULL;
  1724. mp_int* ty = NULL;
  1725. l = (mp_int *)XMALLOC(sizeof(*l), NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1726. if (l == NULL)
  1727. err = 1;
  1728. ty = (mp_int *)XMALLOC(sizeof(*ty), NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1729. if (ty == NULL)
  1730. err = 1;
  1731. #else
  1732. mp_int tmp[2];
  1733. mp_int* l = &tmp[0];
  1734. mp_int* ty = &tmp[1];
  1735. #endif
  1736. if (err == 0)
  1737. err = mp_init(l);
  1738. if (err == 0) {
  1739. err = mp_init(ty);
  1740. }
  1741. /* v = v^2 */
  1742. if (err == 0) {
  1743. err = sakke_proj_sqr(v, prime, mp, v, t1, t2);
  1744. }
  1745. /* l = 3 * (p.x^2 - p.z^4), z2 = p.z^2, rx = l * (p.x + q.x * p.z^2) */
  1746. if (err == 0) {
  1747. err = sakke_calc_dbl_rx(p, q, prime, mp, r, l, z2);
  1748. }
  1749. /* ty = p.y ^ 2 */
  1750. if (err == 0) {
  1751. err = sakke_mont_sqrmod(p->y, prime, ty, mp);
  1752. }
  1753. /* ty = 2 * (p.y ^ 2) */
  1754. if (err == 0) {
  1755. err = sakke_addmod(ty, ty, prime, ty);
  1756. }
  1757. /* r.x -= 2 * (p.y ^ 2) */
  1758. if (err == 0) {
  1759. err = sakke_submod(r->x, ty, prime, r->x);
  1760. }
  1761. /* r.y = p.y * 2 */
  1762. if (err == 0) {
  1763. err = sakke_addmod(p->y, p->y, prime, r->y);
  1764. }
  1765. /* r.y = p.y * 2 * p.z */
  1766. if (err == 0) {
  1767. err = sakke_mont_mulmod(r->y, p->z, prime, p->z, mp);
  1768. }
  1769. /* r.y = p.y * 2 * p.z^3 */
  1770. if (err == 0) {
  1771. err = sakke_mont_mulmod(p->z, z2, prime, r->y, mp);
  1772. }
  1773. /* r.y = (p.y * 2 * p.z^3) * q.y */
  1774. if (err == 0) {
  1775. err = sakke_mont_mulmod(r->y, q->y, prime, r->y, mp);
  1776. }
  1777. /* v = v^2 * r */
  1778. if (err == 0) {
  1779. err = sakke_proj_mul(v, r, prime, mp, v, t1, t2);
  1780. }
  1781. /* Double point using previously calculated values
  1782. * l = 3 * (X - Z^2).(X + Z^2)
  1783. * ty = 2 * Y^2
  1784. * Z = 2 * Y * Z
  1785. */
  1786. /* Y = 2 * 2 * Y^2 */
  1787. if (err == 0) {
  1788. err = sakke_addmod(ty, ty, prime, p->y);
  1789. }
  1790. /* T2 = 4 * Y^4 */
  1791. if (err == 0) {
  1792. err = sakke_mont_sqrmod(ty, prime, t2, mp);
  1793. }
  1794. /* T2 = 8 * Y^4 */
  1795. if (err == 0) {
  1796. err = sakke_addmod(t2, t2, prime, t2);
  1797. }
  1798. /* Y = Y * X */
  1799. if (err == 0) {
  1800. err = sakke_mont_mulmod(p->y, p->x, prime, p->y, mp);
  1801. }
  1802. /* X = l * l */
  1803. if (err == 0) {
  1804. err = sakke_mont_sqrmod(l, prime, p->x, mp);
  1805. }
  1806. /* X = X - Y */
  1807. if (err == 0) {
  1808. err = sakke_submod(p->x, p->y, prime, p->x);
  1809. }
  1810. /* X = X - Y */
  1811. if (err == 0) {
  1812. err = sakke_submod(p->x, p->y, prime, p->x);
  1813. }
  1814. /* Y = Y - X */
  1815. if (err == 0) {
  1816. err = sakke_submod(p->y, p->x, prime, p->y);
  1817. }
  1818. /* Y = Y * l */
  1819. if (err == 0) {
  1820. err = sakke_mont_mulmod(p->y, l, prime, p->y, mp);
  1821. }
  1822. /* Y = Y - T2 */
  1823. if (err == 0) {
  1824. err = sakke_submod(p->y, t2, prime, p->y);
  1825. }
  1826. #ifdef WOLFSSL_SMALL_STACK
  1827. if (ty != NULL) {
  1828. mp_free(ty);
  1829. XFREE(ty, NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1830. }
  1831. if (l != NULL) {
  1832. mp_free(l);
  1833. XFREE(l, NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1834. }
  1835. #else
  1836. mp_free(ty);
  1837. mp_free(l);
  1838. #endif
  1839. return err;
  1840. }
  1841. /*
  1842. * Calculate gradient of line through C, P and -C-P and accumulate line.
  1843. * Add point p into c.
  1844. *
  1845. * Calculations:
  1846. * r.x = (q.x + p.x) * c.y - (q.x * c.z^2 + c.x) * p.y * c.z
  1847. * r.y = (c.x - p.x * c.z^2) * q.y * c.z
  1848. * v* = v* * r*
  1849. * r = p.y * c.z^3 - c.y
  1850. * c'.x = r^2 + h^3 - 2 * c.x * h^2
  1851. * c'.y = r * (c'.x - c.x * h^2) - c.y * h^3
  1852. * c'.z = (c.x - p.x * c.z^2) * c.z
  1853. *
  1854. * @param [in] p First point on elliptic curve.
  1855. * @param [in] q Second point on elliptic curve.
  1856. * @param [in] c Third point on elliptic curve.
  1857. * @param [in] prime MP integer that is the modulus of the field.
  1858. * @param [in] mp Multiplier to use when converting from Montgomery form.
  1859. * @param [out] r Resulting gradient in PF_p[q].
  1860. * @param [in] t MP integer temporary.
  1861. * @return 0 on success.
  1862. * @return MEMORY_E when dynamic memory allocation fails.
  1863. * @return Other -ve value on internal failure.
  1864. */
  1865. static int sakke_accumulate_line_add_one(mp_proj* v, mp_int* prime, mp_digit mp,
  1866. ecc_point* p, ecc_point* q, ecc_point* c, mp_proj* r, mp_int** t)
  1867. {
  1868. int err = 0;
  1869. mp_int* t1 = t[0];
  1870. mp_int* t2 = t[1];
  1871. #ifdef WOLFSSL_SMALL_STACK
  1872. mp_int* h = NULL;
  1873. mp_int* ty = NULL;
  1874. mp_int* tz = NULL;
  1875. mp_int* t3 = NULL;
  1876. h = (mp_int *)XMALLOC(sizeof(*h), NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1877. if (h == NULL)
  1878. err = 1;
  1879. ty = (mp_int *)XMALLOC(sizeof(*ty), NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1880. if (ty == NULL)
  1881. err = 1;
  1882. tz = (mp_int *)XMALLOC(sizeof(*tz), NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1883. if (tz == NULL)
  1884. err = 1;
  1885. t3 = (mp_int *)XMALLOC(sizeof(*t3), NULL, DYNAMIC_TYPE_TMP_BUFFER);
  1886. if (t3 == NULL)
  1887. err = 1;
  1888. #else
  1889. mp_int tmp[4];
  1890. mp_int* h = &tmp[0];
  1891. mp_int* ty = &tmp[1];
  1892. mp_int* tz = &tmp[2];
  1893. mp_int* t3 = &tmp[3];
  1894. #endif
  1895. if (err == 0)
  1896. err = mp_init_multi(h, ty, tz, t3, NULL, NULL);
  1897. /* r.x = (q.x + p.x) * c.y */
  1898. if (err == 0) {
  1899. err = sakke_addmod(q->x, p->x, prime, r->x);
  1900. }
  1901. if (err == 0) {
  1902. err = sakke_mont_mulmod(r->x, c->y, prime, r->x, mp);
  1903. }
  1904. /* tz = c.z^2 */
  1905. if (err == 0) {
  1906. err = sakke_mont_sqrmod(c->z, prime, tz, mp);
  1907. }
  1908. /* t = q.x * c.z^2 */
  1909. if (err == 0) {
  1910. err = sakke_mont_mulmod(q->x, tz, prime, t1, mp);
  1911. }
  1912. /* t = q.x * c.z^2 + c.x */
  1913. if (err == 0) {
  1914. err = sakke_addmod(t1, c->x, prime, t1);
  1915. }
  1916. /* ty = p.y * c.z */
  1917. if (err == 0) {
  1918. err = sakke_mont_mulmod(p->y, c->z, prime, ty, mp);
  1919. }
  1920. /* t = (q.x * c.z^2 + c.x) * p.y * c.z */
  1921. if (err == 0) {
  1922. err = sakke_mont_mulmod(t1, ty, prime, t1, mp);
  1923. }
  1924. /* r.x -= t */
  1925. if (err == 0) {
  1926. err = sakke_submod(r->x, t1, prime, r->x);
  1927. }
  1928. /* t = p.x * c.z^2 */
  1929. if (err == 0) {
  1930. err = sakke_mont_mulmod(p->x, tz, prime, t1, mp);
  1931. }
  1932. /* h = c.x - p.x * c.z^2 */
  1933. if (err == 0) {
  1934. err = sakke_submod(c->x, t1, prime, h);
  1935. }
  1936. /* t3 = (c.x - p.x * c.z^2 ) * c.z*/
  1937. if (err == 0) {
  1938. err = sakke_mont_mulmod(h, c->z, prime, t3, mp);
  1939. }
  1940. /* r.y = (c.x - p.x * c.z^2) * c.z * q.y */
  1941. if (err == 0) {
  1942. err = sakke_mont_mulmod(t3, q->y, prime, r->y, mp);
  1943. }
  1944. /* v = v * r */
  1945. if (err == 0) {
  1946. err = sakke_proj_mul(v, r, prime, mp, v, t1, t2);
  1947. }
  1948. /* Add p to c using previously calculated values.
  1949. * h = c.x - p.x * c.z^2
  1950. * ty = p.y * c.z
  1951. * tz = c.z^2
  1952. * t3 = (c.x - p.x * c.z^2) * c.z
  1953. */
  1954. /* R = p.y * c.z^3 - c.y */
  1955. if (err == 0) {
  1956. err = sakke_mont_mulmod(ty, tz, prime, ty, mp);
  1957. }
  1958. if (err == 0) {
  1959. err = sakke_submod(ty, c->y, prime, ty);
  1960. }
  1961. /* c'.z = -H * c.z */
  1962. if (err == 0) {
  1963. err = sakke_submod(prime, t3, prime, c->z);
  1964. }
  1965. /* c'.x = R^2 + H^3 - 2 * c.x * H^2 */
  1966. if (err == 0) {
  1967. err = sakke_mont_sqrmod(ty, prime, t1, mp);
  1968. }
  1969. if (err == 0) {
  1970. err = sakke_mont_sqrmod(h, prime, t2, mp);
  1971. }
  1972. if (err == 0) {
  1973. err = sakke_mont_mulmod(c->x, t2, prime, t3, mp);
  1974. }
  1975. if (err == 0) {
  1976. err = sakke_mont_mulmod(t2, h, prime, t2, mp);
  1977. }
  1978. if (err == 0) {
  1979. err = sakke_addmod(t1, t2, prime, c->x);
  1980. }
  1981. if (err == 0) {
  1982. err = sakke_addmod(t3, t3, prime, t1);
  1983. }
  1984. if (err == 0) {
  1985. err = sakke_submod(c->x, t1, prime, c->x);
  1986. }
  1987. /* c'.y = R * (c.x * H^2 - c'.x) + c.y * H^3 */
  1988. if (err == 0) {
  1989. err = sakke_submod(t3, c->x, prime, t3);
  1990. }
  1991. if (err == 0) {
  1992. err = sakke_mont_mulmod(t3, ty, prime, t3, mp);
  1993. }
  1994. if (err == 0) {
  1995. err = sakke_mont_mulmod(t2, c->y, prime, t2, mp);
  1996. }
  1997. if (err == 0) {
  1998. err = sakke_addmod(t3, t2, prime, c->y);
  1999. }
  2000. #ifdef WOLFSSL_SMALL_STACK
  2001. if (t3 != NULL) {
  2002. mp_free(t3);
  2003. XFREE(t3, NULL, DYNAMIC_TYPE_TMP_BUFFER);
  2004. }
  2005. if (tz != NULL) {
  2006. mp_free(tz);
  2007. XFREE(tz, NULL, DYNAMIC_TYPE_TMP_BUFFER);
  2008. }
  2009. if (ty != NULL) {
  2010. mp_free(ty);
  2011. XFREE(ty, NULL, DYNAMIC_TYPE_TMP_BUFFER);
  2012. }
  2013. if (h != NULL) {
  2014. mp_free(h);
  2015. XFREE(h, NULL, DYNAMIC_TYPE_TMP_BUFFER);
  2016. }
  2017. #else
  2018. mp_free(t3);
  2019. mp_free(tz);
  2020. mp_free(ty);
  2021. mp_free(h);
  2022. #endif
  2023. return err;
  2024. }
  2025. #endif /* WOLFSSL_SAKKE_SMALL */
  2026. /*
  2027. * Calculate r = pairing <P, Q>.
  2028. *
  2029. * That is, multiply base in PF_p[q] by the scalar s, such that s.P = Q.
  2030. *
  2031. * @param [in] key SAKKE key.
  2032. * @param [in] p First point on E(F_p)[q].
  2033. * @param [in] q Second point on E(F_p)[q].
  2034. * @param [out] r Result of calculation.
  2035. * @return 0 on success.
  2036. * @return MEMORY_E when dynamic memory allocation fails.
  2037. * @return Other -ve value on internal failure.
  2038. */
  2039. static int sakke_pairing(SakkeKey* key, ecc_point* p, ecc_point* q, mp_int* r,
  2040. const byte* table, word32 len)
  2041. {
  2042. int err;
  2043. ecc_point* v = key->params.base;
  2044. ecc_point* c = key->tmp.p1;
  2045. mp_proj* t2 = key->tmp.p3;
  2046. mp_int* t3 = &key->tmp.m2;
  2047. mp_int* prime = &key->params.prime;
  2048. mp_int* t[] = { &key->tmp.m1, t3 };
  2049. int i;
  2050. mp_digit mp = 0;
  2051. SakkeKeyParams* params = &key->params;
  2052. (void)table;
  2053. (void)len;
  2054. err = sakke_point_to_mont(p, prime, &key->tmp.m1, 0);
  2055. if (err == 0) {
  2056. err = sakke_point_to_mont(q, prime, &key->tmp.m1, 1);
  2057. }
  2058. if (err == 0) {
  2059. err = wc_ecc_copy_point(p, c);
  2060. }
  2061. /* Set v to 1. */
  2062. if (err == 0) {
  2063. params->haveBase = 0;
  2064. err = mp_set(v->x, 1);
  2065. }
  2066. if (err == 0) {
  2067. err = mp_set(v->y, 0);
  2068. }
  2069. if (err == 0) {
  2070. err = mp_montgomery_setup(prime, &mp);
  2071. }
  2072. for (i = mp_count_bits(&params->q) - 2; (err == 0) && (i >= 0); i--) {
  2073. #ifdef WOLFSSL_SAKKE_SMALL
  2074. /* Accumulate line into v and double point. */
  2075. err = sakke_accumulate_line_dbl(v, c, q, prime, mp, t2, t);
  2076. if (err == 0) {
  2077. err = ecc_projective_dbl_point(c, c, NULL, prime, mp);
  2078. }
  2079. if ((err == 0) && (i > 0) && mp_is_bit_set(&params->q, i)) {
  2080. /* Accumulate line into v and add P into C. */
  2081. err = sakke_accumulate_line_add_one(v, prime, mp, p, q, c, t2,
  2082. &key->tmp.m1);
  2083. if (err == 0) {
  2084. err = ecc_projective_add_point(p, c, c, NULL, prime, mp);
  2085. }
  2086. }
  2087. #else
  2088. /* Accumulate line into v and double point. */
  2089. err = sakke_accumulate_line_dbl(v, c, q, prime, mp, t2, t);
  2090. if ((err == 0) && (i > 0) && mp_is_bit_set(&params->q, i)) {
  2091. /* Accumulate line into v and add P into C. */
  2092. err = sakke_accumulate_line_add_one(v, prime, mp, p, q, c, t2, t);
  2093. }
  2094. #endif /* WOLFSSL_SAKKE_SMALL */
  2095. }
  2096. /* Final exponentiation */
  2097. if (err == 0) {
  2098. err = sakke_proj_sqr(v, prime, mp, v, &key->tmp.m1, t3);
  2099. }
  2100. if (err == 0) {
  2101. err = sakke_proj_sqr(v, prime, mp, v, &key->tmp.m1, t3);
  2102. }
  2103. /* Convert from PF_p[q] to F_p */
  2104. if (err == 0) {
  2105. err = mp_invmod(v->x, prime, r);
  2106. }
  2107. if (err == 0) {
  2108. err = mp_mulmod(r, v->y, prime, r);
  2109. }
  2110. if (err == 0) {
  2111. err = sakke_point_from_mont(p, prime, mp);
  2112. }
  2113. if (err == 0) {
  2114. err = sakke_point_from_mont(q, prime, mp);
  2115. }
  2116. return err;
  2117. }
  2118. #endif /* WOLFSSL_HAVE_SP_ECC */
  2119. /**
  2120. * Set the Receiver Secret Key (RSK) and any table associated with it.
  2121. *
  2122. * @param [in] key SAKKE key.
  2123. * @param [in] rsk Receiver Secret Key (RSK) as an ECC point.
  2124. * @param [in] table Pre-computation table. May be NULL.
  2125. * @param [in] len Size of pre-computation table in bytes.
  2126. * @return 0 on success.
  2127. * @return BAD_FUNC_ARG when key or rsk is NULL.
  2128. * @return MEMORY_E when dynamic memory allocation fails.
  2129. */
  2130. int wc_SetSakkeRsk(SakkeKey* key, const ecc_point* rsk, byte* table, word32 len)
  2131. {
  2132. int err = 0;
  2133. if ((key == NULL) || (rsk == NULL)) {
  2134. err = BAD_FUNC_ARG;
  2135. }
  2136. if (err == 0) {
  2137. key->rsk.set = 0;
  2138. err = wc_ecc_copy_point(rsk, key->rsk.rsk);
  2139. }
  2140. if (err == 0) {
  2141. key->rsk.table = table;
  2142. key->rsk.tableLen = len;
  2143. key->rsk.set = 1;
  2144. }
  2145. return err;
  2146. }
  2147. /*
  2148. * Compute the elliptic curve point I for device B. Partial for point R.
  2149. *
  2150. * RFC 6508, Section 6.2.1, Step 3.\n
  2151. * RFC 6508, Section 6.2.2, Step 5.\n
  2152. * I = [b]P + Z_S
  2153. *
  2154. * @param [in] key SAKKE key.
  2155. * @param [in] id Identifier to of device B.
  2156. * @param [in] idSz Size of identifier in bytes.
  2157. * @param [out] i ECC point - partial for point R.
  2158. * @return 0 on success.
  2159. * @return MEMORY_E when dynamic memory allocation fails.
  2160. * @return Other -ve value on internal failure.
  2161. */
  2162. static int sakke_compute_point_i(SakkeKey* key, const byte* id, word16 idSz,
  2163. ecc_point* i)
  2164. {
  2165. int err;
  2166. mp_int* b = &key->ecc.k;
  2167. /* Load b - ID of receiver */
  2168. err = mp_read_unsigned_bin(b, id, idSz);
  2169. if (err == 0) {
  2170. err = sakke_load_base_point(key);
  2171. }
  2172. #ifndef WOLFSSL_HAVE_SP_ECC
  2173. /* Convert to montgomery form for add operation. */
  2174. if (err == 0) {
  2175. err = sakke_z_to_mont(key, &key->tmp.m2);
  2176. }
  2177. #endif
  2178. /* [b]P + Z_S */
  2179. if (err == 0) {
  2180. ecc_point* z = &key->ecc.pubkey;
  2181. err = sakke_mulmod_base_add(key, b, z, i, 1);
  2182. }
  2183. return err;
  2184. }
  2185. /**
  2186. * Validate the Receiver Secret Key (RSK) with the identity.
  2187. *
  2188. * RFC 6508, Section 6.1.2
  2189. *
  2190. * A receiving client should validate an RSK before use.
  2191. *
  2192. * @param [in] key SAKKE key.
  2193. * @param [in] id Identity to use.
  2194. * @param [in] idSz Size of identity in bytes.
  2195. * @param [in] rsk Receiver Secret Key as an ECC point.
  2196. * @param [out] valid 1 indicates RSK is valid for identity.
  2197. * 0 otherwise.
  2198. * @return 0 on success.
  2199. * @return BAD_FUNC_ARG when key, id, rsk or valid is NULL.
  2200. * @return MEMORY_E when dynamic memory allocation fails.
  2201. * @return Other -ve value on internal failure.
  2202. */
  2203. int wc_ValidateSakkeRsk(SakkeKey* key, const byte* id, word16 idSz,
  2204. ecc_point* rsk, int* valid)
  2205. {
  2206. int err = 0;
  2207. mp_int* a = NULL;
  2208. if ((key == NULL) || (id == NULL) || (rsk == NULL) || (valid == NULL)) {
  2209. err = BAD_FUNC_ARG;
  2210. }
  2211. SAVE_VECTOR_REGISTERS(return _svr_ret;);
  2212. /* Load elliptic curve parameters */
  2213. if (err == 0) {
  2214. err = sakke_load_params(key);
  2215. }
  2216. if (err == 0) {
  2217. err = sakke_load_base_point(key);
  2218. }
  2219. /* Load pairing base - g */
  2220. if (err == 0) {
  2221. err = sakke_load_pairing_base(key);
  2222. }
  2223. /* Load a - identifier */
  2224. if (err == 0) {
  2225. a = &key->tmp.m1;
  2226. err = mp_read_unsigned_bin(a, id, idSz);
  2227. }
  2228. if (err == 0) {
  2229. /* I = [b]P + Z_S */
  2230. err = sakke_compute_point_i(key, id, idSz, key->i.i);
  2231. if ((err == 0) && (idSz <= SAKKE_ID_MAX_SIZE)) {
  2232. XMEMCPY(key->i.id, id, idSz);
  2233. key->i.idSz = idSz;
  2234. }
  2235. }
  2236. /* < [a]P + Z, K_(a,T) > = < K_(a,T), [a]P + Z > = < rsk, i >*/
  2237. if (err == 0) {
  2238. err = sakke_pairing(key, rsk, key->i.i, a, NULL, 0);
  2239. }
  2240. /* Compare pairing result with generator. */
  2241. if (valid != NULL) {
  2242. *valid = ((err == 0) && (mp_cmp(a, &key->params.g) == MP_EQ));
  2243. }
  2244. RESTORE_VECTOR_REGISTERS();
  2245. return err;
  2246. }
  2247. /**
  2248. * Get the size of the authentication data that is the first part of the
  2249. * encapsulated data.
  2250. *
  2251. * Clients need to know how long the authentication data so as the SSV starts
  2252. * after the authentication data in a buffer.\n
  2253. * For SAKKE parameter set 1: 257 bytes
  2254. *
  2255. * @param [in] key SAKKE key.
  2256. * @param [out] authSz Size of authentication data in bytes.
  2257. * @return 0 on success.
  2258. * @return BAD_FUNC_ARG when key or authSz is NULL.
  2259. * @return MEMORY_E when dynamic memory allocation fails.
  2260. * @return Other -ve value on internal failure.
  2261. */
  2262. int wc_GetSakkeAuthSize(SakkeKey* key, word16* authSz)
  2263. {
  2264. int err = 0;
  2265. if ((key == NULL) || (authSz == NULL)) {
  2266. err = BAD_FUNC_ARG;
  2267. }
  2268. if (err == 0) {
  2269. err = sakke_load_params(key);
  2270. }
  2271. if (err == 0) {
  2272. word16 n = (word16)((mp_count_bits(&key->params.prime) + 7) / 8);
  2273. *authSz = 1 + 2 * n;
  2274. }
  2275. return err;
  2276. }
  2277. #ifdef WOLFSSL_HAVE_SP_ECC
  2278. /*
  2279. * Modular exponentiate the value in F_p*.
  2280. *
  2281. * @param [in] key SAKKE key.
  2282. * @param [in] b MP integer that is the base to exponentiate.
  2283. * @param [in] e MP integer that is the exponent.
  2284. * @param [out] r Result of exponentiation.
  2285. * @return 0 on success.
  2286. * @return MEMORY_E when dynamic memory allocation fails.
  2287. * @return Other -ve value on internal failure.
  2288. */
  2289. static int sakke_modexp(const SakkeKey* key, const mp_int* b, mp_int* e,
  2290. mp_int* r)
  2291. {
  2292. int err = NOT_COMPILED_IN;
  2293. #ifdef WOLFSSL_SP_1024
  2294. if ((key->ecc.idx != ECC_CUSTOM_IDX) &&
  2295. (ecc_sets[key->ecc.idx].id == ECC_SAKKE_1)) {
  2296. err = sp_ModExp_Fp_star_1024(b, e, r);
  2297. }
  2298. #endif
  2299. return err;
  2300. }
  2301. #else
  2302. #ifdef WOLFSSL_SAKKE_SMALL
  2303. /*
  2304. * Modular exponentiate the value in F_p*.
  2305. *
  2306. * @param [in] key SAKKE key.
  2307. * @param [in] b MP integer that is the base to exponentiate.
  2308. * @param [in] e MP integer that is the exponent.
  2309. * @param [out] c Result of exponentiation.
  2310. * @param [in] mp Multiplier to use when converting from Montgomery form.
  2311. * @return 0 on success.
  2312. * @return MEMORY_E when dynamic memory allocation fails.
  2313. * @return Other -ve value on internal failure.
  2314. */
  2315. static int sakke_modexp_loop(SakkeKey* key, mp_int* b, mp_int* e, mp_proj* c,
  2316. mp_digit mp)
  2317. {
  2318. int err;
  2319. mp_int* t1 = &key->tmp.m1;
  2320. mp_int* t2 = &key->tmp.m2;
  2321. mp_int* by = key->tmp.p1->z;
  2322. mp_int* prime = &key->params.prime;
  2323. int i;
  2324. /* Set the working value to the base in PF_p[q] */
  2325. err = mp_montgomery_calc_normalization(c->x, prime);
  2326. /* Set c->y as montgomery form of b - base */
  2327. if (err == 0) {
  2328. err = mp_mulmod(b, c->x, prime, by);
  2329. }
  2330. /* Set by as montgomery form of b - base */
  2331. if (err == 0) {
  2332. err = mp_copy(by, c->y);
  2333. }
  2334. /* Simple non-constant time exponentiation over a field. */
  2335. for (i = mp_count_bits(e) - 2; (err == 0) && (i >= 0); i--) {
  2336. err = sakke_proj_sqr(c, prime, mp, c, t1, t2);
  2337. if (err == 0) {
  2338. if (mp_is_bit_set(e, i)) {
  2339. err = sakke_proj_mul_qx1(c, by, prime, mp, c, t1, t2);
  2340. }
  2341. }
  2342. }
  2343. return err;
  2344. }
  2345. #elif defined(WOLFSSL_SAKKE_SMALL_MODEXP) || !defined(USE_FAST_MATH)
  2346. /*
  2347. * Modular exponentiate the value in F_p*.
  2348. *
  2349. * @param [in] key SAKKE key.
  2350. * @param [in] b MP integer that is the base to exponentiate.
  2351. * @param [in] e MP integer that is the exponent.
  2352. * @param [out] r Result of exponentiation.
  2353. * @param [in] mp Multiplier to use when converting from Montgomery form.
  2354. * @return 0 on success.
  2355. * @return MEMORY_E when dynamic memory allocation fails.
  2356. * @return Other -ve value on internal failure.
  2357. */
  2358. static int sakke_modexp_loop(SakkeKey* key, mp_int* b, mp_int* e, mp_proj* r,
  2359. mp_digit mp)
  2360. {
  2361. int err;
  2362. #ifdef WC_NO_CACHE_RESISTANT
  2363. mp_proj* c[2] = { r, key->tmp.p2 };
  2364. #else
  2365. mp_proj* c[3] = { r, key->tmp.p3, key->tmp.p2 };
  2366. #endif
  2367. mp_int* t1 = &key->tmp.m1;
  2368. mp_int* t2 = &key->tmp.m2;
  2369. mp_int* by = key->tmp.p1->z;
  2370. mp_int* prime = &key->params.prime;
  2371. int i;
  2372. /* Set the working value to the base in PF_p[q] */
  2373. err = mp_montgomery_calc_normalization(c[0]->x, prime);
  2374. /* Set c[0] to [mont_one, zero] */
  2375. if (err == 0) {
  2376. mp_zero(c[0]->y);
  2377. /* Set 'by' to montgomery form of 'b' - base */
  2378. err = mp_mulmod(b, c[0]->x, prime, by);
  2379. }
  2380. for (i = mp_count_bits(&key->params.q) - 1; (err == 0) && (i >= 0); i--) {
  2381. int j = mp_is_bit_set(e, i);
  2382. err = sakke_proj_sqr(c[0], prime, mp, c[0], t1, t2);
  2383. if (err == 0) {
  2384. #ifdef WC_NO_CACHE_RESISTANT
  2385. err = sakke_proj_mul_qx1(c[0], by, prime, mp, c[j^1], t1, t2);
  2386. #else
  2387. err = sakke_proj_mul_qx1(c[0], by, prime, mp, c[2], t1, t2);
  2388. mp_copy(c[2]->x,
  2389. (mp_int*) ( ((wc_ptr_t)c[0]->x & wc_off_on_addr[j]) +
  2390. ((wc_ptr_t)c[1]->x & wc_off_on_addr[j^1]) ) );
  2391. mp_copy(c[2]->y,
  2392. (mp_int*) ( ((wc_ptr_t)c[0]->y & wc_off_on_addr[j]) +
  2393. ((wc_ptr_t)c[1]->y & wc_off_on_addr[j^1]) ) );
  2394. #endif
  2395. }
  2396. }
  2397. return err;
  2398. }
  2399. #else
  2400. /* Table for 8-bit striping exponentiation. */
  2401. static const byte sakke_1024_g_table[256][128] = {
  2402. { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2403. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2404. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2405. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2406. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2407. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2408. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2409. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2410. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2411. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2412. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2413. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  2414. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  2415. { 0x59, 0xe9, 0x3c, 0x6a, 0x6b, 0xd3, 0xba, 0xf4, 0xaf, 0xd5,
  2416. 0x88, 0x91, 0xe8, 0x6c, 0xb2, 0x21, 0x61, 0x52, 0xba, 0x02,
  2417. 0xc7, 0x27, 0xc9, 0x8e, 0x21, 0xf1, 0x1c, 0x06, 0x7d, 0x3b,
  2418. 0x4f, 0x7d, 0x66, 0xdb, 0xd0, 0x9a, 0x9b, 0x67, 0xe0, 0x96,
  2419. 0x6f, 0xaf, 0x7a, 0x00, 0x61, 0xc1, 0xf3, 0x0d, 0x0e, 0x74,
  2420. 0x1a, 0x1b, 0x2d, 0x8e, 0xae, 0x58, 0xd6, 0xd8, 0x59, 0xbf,
  2421. 0x16, 0xac, 0x6c, 0x6f, 0xad, 0xde, 0xdc, 0x85, 0x8f, 0x88,
  2422. 0x71, 0x7c, 0x27, 0xbe, 0x88, 0x2c, 0x2f, 0xd1, 0x51, 0xe6,
  2423. 0xd8, 0x9e, 0x2d, 0x14, 0x72, 0xbf, 0x1a, 0xfb, 0x3a, 0xf4,
  2424. 0x9b, 0xb4, 0xb3, 0x65, 0x76, 0xd1, 0x26, 0x46, 0xf8, 0x15,
  2425. 0x82, 0x64, 0x24, 0x75, 0x40, 0xe8, 0xf3, 0xdf, 0x43, 0xca,
  2426. 0x4a, 0x73, 0xea, 0xc9, 0xe9, 0x71, 0xe1, 0x00, 0x7a, 0x58,
  2427. 0x17, 0x0a, 0x46, 0xd2, 0x33, 0x5c, 0x16, 0x85 },
  2428. { 0x63, 0xef, 0x18, 0x7b, 0x74, 0xf6, 0x2e, 0x03, 0xbe, 0x85,
  2429. 0xac, 0x6a, 0x9b, 0x6a, 0x52, 0xb9, 0x5f, 0x19, 0xc2, 0x0d,
  2430. 0x6f, 0x83, 0x73, 0xd3, 0x16, 0xf1, 0x86, 0x31, 0x50, 0xa9,
  2431. 0xd0, 0xd9, 0x13, 0x94, 0x6d, 0x17, 0x9f, 0x7b, 0xfa, 0x2e,
  2432. 0xdd, 0x9f, 0x6a, 0x91, 0x0a, 0x18, 0x0e, 0xb6, 0x51, 0xf7,
  2433. 0x11, 0x9b, 0x4a, 0xc8, 0x43, 0x1c, 0xfd, 0x45, 0x62, 0x67,
  2434. 0x40, 0x38, 0x98, 0x13, 0x81, 0x3d, 0x1c, 0xb2, 0x2e, 0xcb,
  2435. 0x96, 0x52, 0xb9, 0xbd, 0x3a, 0xfd, 0xf5, 0xcb, 0x6a, 0xb5,
  2436. 0x11, 0x8b, 0xd7, 0x92, 0xc1, 0x13, 0x99, 0xfa, 0x97, 0x53,
  2437. 0x79, 0x4c, 0x8f, 0x5c, 0x14, 0x18, 0x85, 0x88, 0xaa, 0x99,
  2438. 0x3f, 0x52, 0x09, 0x28, 0x9e, 0xa5, 0xa4, 0x4e, 0xa1, 0x9f,
  2439. 0x65, 0x30, 0xbb, 0xc9, 0xcc, 0x9f, 0x00, 0xae, 0xf1, 0xe6,
  2440. 0xe5, 0x4d, 0xd3, 0x6f, 0x71, 0xdd, 0x45, 0x94 },
  2441. { 0x4f, 0xe6, 0x79, 0x1c, 0xf1, 0x92, 0xda, 0x23, 0x90, 0xdc,
  2442. 0xc7, 0x94, 0xdd, 0xac, 0x2c, 0xda, 0x50, 0x5e, 0x8e, 0xc2,
  2443. 0xeb, 0x19, 0x96, 0x33, 0x68, 0x2e, 0xcc, 0x49, 0x47, 0x68,
  2444. 0x5f, 0xbe, 0xab, 0x0c, 0xb6, 0x3c, 0x12, 0x9f, 0x85, 0xcb,
  2445. 0xb1, 0x36, 0x09, 0x86, 0x15, 0x55, 0x9c, 0x41, 0x7f, 0xf3,
  2446. 0x35, 0x4e, 0x3f, 0x98, 0x60, 0xc8, 0xa0, 0xed, 0x29, 0x9b,
  2447. 0x0f, 0x5c, 0x6c, 0xd1, 0xae, 0x18, 0x28, 0x30, 0x73, 0x3f,
  2448. 0xa3, 0xbe, 0x93, 0x3e, 0x0d, 0x41, 0xb3, 0x30, 0xbc, 0x4d,
  2449. 0x5b, 0x40, 0x74, 0x74, 0xbb, 0x60, 0xf8, 0xcf, 0xbd, 0xa4,
  2450. 0x1b, 0x1f, 0x72, 0x41, 0x09, 0x8b, 0x6f, 0xdb, 0xf0, 0xa2,
  2451. 0xc7, 0xaf, 0xd8, 0x1d, 0x73, 0x92, 0xf7, 0x41, 0xce, 0x42,
  2452. 0x9b, 0x60, 0x1c, 0x1b, 0xdb, 0x57, 0x2b, 0xec, 0x82, 0xf8,
  2453. 0x7c, 0x37, 0x6b, 0x7f, 0x01, 0x6f, 0x45, 0xe7 },
  2454. { 0x04, 0x48, 0x2a, 0x18, 0x56, 0x1d, 0xb2, 0x97, 0x55, 0x5d,
  2455. 0x1f, 0xfe, 0xbe, 0x78, 0xd9, 0xd2, 0x18, 0xc2, 0x1f, 0x61,
  2456. 0x1a, 0x04, 0x01, 0x70, 0x30, 0x95, 0x70, 0xc4, 0x4e, 0x9a,
  2457. 0x1e, 0x52, 0xfa, 0x4d, 0xb1, 0x14, 0x8e, 0x95, 0x07, 0x61,
  2458. 0x30, 0xcf, 0xa7, 0xce, 0x5c, 0xac, 0x4a, 0xab, 0xb5, 0x5e,
  2459. 0xfd, 0xd0, 0x60, 0x68, 0x9a, 0x9a, 0xea, 0x52, 0xd0, 0x26,
  2460. 0x23, 0x3f, 0x98, 0xd5, 0xaa, 0xa7, 0xa6, 0x1a, 0x7b, 0x81,
  2461. 0xce, 0xa6, 0x43, 0x0a, 0x6d, 0xe5, 0xe8, 0x8c, 0xea, 0xf6,
  2462. 0x9d, 0xfd, 0xe9, 0xed, 0xb2, 0xc1, 0x7b, 0x09, 0x00, 0xc8,
  2463. 0x75, 0xe2, 0x71, 0x3b, 0xd7, 0x21, 0x0c, 0x44, 0x71, 0xc6,
  2464. 0xdb, 0x41, 0x81, 0xcc, 0x23, 0x7c, 0x7e, 0x88, 0xe9, 0x61,
  2465. 0xb3, 0x22, 0xcc, 0x84, 0x5e, 0x65, 0x1d, 0x57, 0x17, 0xc1,
  2466. 0x94, 0xa4, 0x23, 0xd5, 0x05, 0xe8, 0x73, 0x3c },
  2467. { 0x83, 0x3a, 0x0f, 0xf8, 0xde, 0xdb, 0xf8, 0x9f, 0x1a, 0x9c,
  2468. 0x3f, 0x25, 0x68, 0xcc, 0xdb, 0x44, 0xfa, 0x13, 0x50, 0xd3,
  2469. 0xe7, 0x34, 0x27, 0x02, 0x0d, 0x26, 0x7f, 0xd9, 0x86, 0x92,
  2470. 0x07, 0x7a, 0x66, 0xe1, 0xa4, 0x9f, 0xd7, 0x35, 0x57, 0xe9,
  2471. 0x5b, 0x51, 0x85, 0x4d, 0x35, 0x45, 0x96, 0x68, 0x40, 0xc2,
  2472. 0x7a, 0x04, 0x32, 0xa3, 0xd2, 0x22, 0x96, 0x3b, 0x05, 0x3e,
  2473. 0xd7, 0xb2, 0xea, 0x45, 0xc8, 0xe4, 0x49, 0x9c, 0x57, 0x12,
  2474. 0x8d, 0x37, 0xd6, 0xf2, 0x1f, 0x1a, 0x7e, 0x44, 0xfe, 0xb5,
  2475. 0x28, 0xfc, 0x30, 0x7c, 0x45, 0x31, 0xbc, 0x60, 0x56, 0x0b,
  2476. 0xee, 0x25, 0xbd, 0x8c, 0x22, 0x60, 0xa0, 0xe5, 0x4f, 0x02,
  2477. 0xf3, 0x37, 0x36, 0x30, 0x72, 0x3c, 0x99, 0xfc, 0x21, 0x88,
  2478. 0xab, 0x4f, 0x81, 0x69, 0xf9, 0x46, 0x61, 0xcd, 0xc1, 0xe7,
  2479. 0xe7, 0x75, 0x8a, 0xc2, 0x73, 0xd4, 0x86, 0xd8 },
  2480. { 0x69, 0x2b, 0x3c, 0xe3, 0xeb, 0x24, 0x96, 0x5f, 0x2e, 0x2d,
  2481. 0xf9, 0x5a, 0x85, 0xf8, 0x11, 0xa0, 0x74, 0x1f, 0xd5, 0x1a,
  2482. 0xf4, 0xf0, 0x5c, 0x0c, 0x03, 0xf7, 0x3e, 0xa6, 0xa2, 0xb7,
  2483. 0x44, 0xf1, 0x1f, 0xec, 0x95, 0xe1, 0xd8, 0xa1, 0x05, 0x8a,
  2484. 0x22, 0xd6, 0x39, 0xc8, 0xcb, 0x11, 0x87, 0xdb, 0x42, 0x13,
  2485. 0xbe, 0x88, 0x2d, 0xd0, 0x6e, 0xc0, 0xf3, 0x66, 0xed, 0x59,
  2486. 0xe9, 0xdb, 0xad, 0xd1, 0x33, 0x9e, 0xda, 0xd6, 0xa1, 0xd5,
  2487. 0xc2, 0x70, 0xe5, 0x13, 0x35, 0x0b, 0xe6, 0xeb, 0x26, 0x0b,
  2488. 0x04, 0xbe, 0x5a, 0xee, 0xb4, 0xc1, 0x6a, 0x2a, 0x56, 0xfe,
  2489. 0xe0, 0x7b, 0x09, 0x8c, 0x0a, 0x88, 0x93, 0x1b, 0xa5, 0x1e,
  2490. 0xa6, 0x25, 0x75, 0xa6, 0xe5, 0x6b, 0xb9, 0xe2, 0xa9, 0x0c,
  2491. 0x51, 0x4d, 0x3b, 0x72, 0x94, 0xf3, 0x27, 0xd0, 0xf0, 0xcc,
  2492. 0xa8, 0xc4, 0x19, 0xc7, 0xab, 0x37, 0x6b, 0x76 },
  2493. { 0x33, 0x3e, 0x43, 0x0a, 0xf4, 0x00, 0x42, 0xd6, 0xc0, 0xcf,
  2494. 0x0a, 0xaf, 0x81, 0xde, 0x5f, 0xe0, 0x77, 0x41, 0x91, 0xb1,
  2495. 0x89, 0xef, 0x09, 0xf2, 0x64, 0x47, 0x90, 0x38, 0x70, 0x36,
  2496. 0x1f, 0x25, 0x32, 0xd6, 0x43, 0x31, 0xd4, 0x12, 0x83, 0x27,
  2497. 0x8c, 0x4e, 0x85, 0x33, 0x54, 0x52, 0x64, 0x3c, 0x05, 0xb9,
  2498. 0x49, 0x1c, 0xa0, 0x9d, 0x46, 0x95, 0x58, 0x1f, 0xa3, 0x97,
  2499. 0x3d, 0x65, 0x29, 0x36, 0x54, 0xc2, 0x40, 0xd7, 0x7d, 0x2a,
  2500. 0xf8, 0x31, 0x17, 0x4d, 0x0b, 0x40, 0x74, 0xe2, 0x52, 0xf9,
  2501. 0x2f, 0x42, 0x6c, 0xae, 0x4d, 0xe4, 0xe6, 0x65, 0xc8, 0x14,
  2502. 0x5c, 0x6d, 0xb2, 0xed, 0xbe, 0x8c, 0x16, 0x3d, 0x9a, 0x01,
  2503. 0xe0, 0xab, 0x96, 0xee, 0x43, 0xec, 0xf4, 0x63, 0x47, 0xa3,
  2504. 0x76, 0x16, 0x66, 0xa4, 0x6e, 0xa5, 0x8f, 0x92, 0x81, 0x6f,
  2505. 0x0c, 0xe6, 0xcb, 0x72, 0xd2, 0xa1, 0x27, 0xb4 },
  2506. { 0x10, 0xe8, 0xb3, 0x1d, 0xd6, 0xbb, 0xd7, 0x08, 0xae, 0x12,
  2507. 0x76, 0x36, 0x2f, 0x77, 0x91, 0xd1, 0xbb, 0x18, 0xd1, 0x75,
  2508. 0x4a, 0xeb, 0x02, 0xa3, 0x8a, 0xdc, 0x6f, 0xe5, 0x45, 0x9e,
  2509. 0xa4, 0x62, 0xeb, 0x9a, 0x71, 0xa1, 0x15, 0xaa, 0xa4, 0x08,
  2510. 0x94, 0xfe, 0x18, 0x62, 0x65, 0x72, 0xcd, 0x52, 0xb3, 0xa1,
  2511. 0x04, 0xe5, 0xcd, 0xde, 0xb5, 0x8c, 0x3f, 0xc2, 0x1e, 0x74,
  2512. 0x04, 0x63, 0x13, 0x86, 0xb5, 0x44, 0x34, 0x83, 0xfe, 0x3e,
  2513. 0xe7, 0x55, 0x94, 0x8a, 0x37, 0xaf, 0xf1, 0x3b, 0x85, 0x87,
  2514. 0xd9, 0xd0, 0x4d, 0xd9, 0x65, 0xc9, 0x13, 0xbb, 0x1f, 0xfc,
  2515. 0x9d, 0x7d, 0x0b, 0x06, 0x10, 0x37, 0xef, 0x29, 0x1e, 0xa4,
  2516. 0x85, 0x03, 0x73, 0x60, 0xa4, 0x01, 0x3c, 0x5f, 0x18, 0x08,
  2517. 0xb6, 0x64, 0x57, 0xa7, 0x73, 0x06, 0xb5, 0x3f, 0x79, 0xbe,
  2518. 0x5d, 0xf0, 0x4d, 0xe4, 0xcf, 0x26, 0xd3, 0xb7 },
  2519. { 0x64, 0x85, 0x52, 0x4c, 0x0c, 0xdc, 0xc4, 0xbc, 0xfd, 0x26,
  2520. 0x1c, 0x83, 0x2a, 0x84, 0x95, 0xab, 0x38, 0x64, 0x6b, 0x32,
  2521. 0xe7, 0xac, 0x0a, 0x06, 0x9a, 0x87, 0x39, 0x3f, 0x5b, 0x6f,
  2522. 0x55, 0x57, 0x3c, 0x8e, 0x1d, 0xb2, 0xda, 0x0a, 0x55, 0x68,
  2523. 0xcb, 0x1f, 0xbc, 0x54, 0xf3, 0x5e, 0x1a, 0x88, 0xcf, 0xcb,
  2524. 0x6e, 0xae, 0x4f, 0xdc, 0x3f, 0x7f, 0xfe, 0x59, 0x0d, 0xfe,
  2525. 0x03, 0x6c, 0x03, 0x57, 0x90, 0x38, 0xf9, 0x5d, 0x2f, 0xbe,
  2526. 0xb5, 0x4c, 0x6d, 0xc7, 0xfc, 0x7c, 0x26, 0xd5, 0x5e, 0xf5,
  2527. 0x97, 0x82, 0xe9, 0xe4, 0x93, 0x82, 0x54, 0x7a, 0xb1, 0x65,
  2528. 0x4d, 0x17, 0x1a, 0xf9, 0x9c, 0x15, 0x18, 0x77, 0xe2, 0xb0,
  2529. 0x26, 0xb1, 0xe8, 0x5b, 0x38, 0xdc, 0xd6, 0x30, 0x74, 0xce,
  2530. 0x15, 0xb8, 0x03, 0xad, 0x24, 0x77, 0x56, 0x67, 0x61, 0x66,
  2531. 0xb8, 0x7f, 0x03, 0xe5, 0x3e, 0xd9, 0xf1, 0xaf },
  2532. { 0x1f, 0x76, 0xf3, 0xf2, 0xf2, 0x34, 0x56, 0x3c, 0xa4, 0x06,
  2533. 0x1c, 0x7a, 0x2d, 0xf8, 0xb4, 0x49, 0x65, 0x46, 0xa6, 0x0c,
  2534. 0x00, 0xa3, 0x3d, 0x80, 0x24, 0x07, 0x8b, 0xac, 0xfa, 0x38,
  2535. 0x3f, 0x09, 0xa6, 0x50, 0xa8, 0xf5, 0x63, 0x2d, 0x28, 0xb2,
  2536. 0x32, 0x75, 0x8d, 0x24, 0x57, 0x4b, 0x99, 0x97, 0x13, 0x5c,
  2537. 0x44, 0x37, 0x19, 0x81, 0x18, 0x2d, 0x5d, 0x51, 0x81, 0xd5,
  2538. 0xb9, 0x14, 0xbe, 0x7c, 0x70, 0x0b, 0x19, 0x03, 0x57, 0x0c,
  2539. 0xbb, 0x5b, 0x92, 0x41, 0x1f, 0xeb, 0x91, 0x7b, 0x1e, 0x7a,
  2540. 0xb9, 0xf0, 0x76, 0x4d, 0x49, 0xa0, 0x1f, 0x05, 0x38, 0x18,
  2541. 0x6a, 0xe9, 0xd2, 0xa1, 0x82, 0xcb, 0x23, 0x37, 0x88, 0x3a,
  2542. 0xba, 0x5d, 0xbd, 0x93, 0x88, 0x42, 0x27, 0xf0, 0x89, 0xaf,
  2543. 0xf7, 0x42, 0x2a, 0xa0, 0x3f, 0xba, 0x35, 0xa6, 0x42, 0x8a,
  2544. 0x1a, 0xbf, 0xb3, 0xe2, 0xc4, 0xa6, 0xff, 0x2a },
  2545. { 0x04, 0x92, 0x4f, 0xfb, 0x3d, 0x10, 0x8e, 0x05, 0xd0, 0xf3,
  2546. 0x67, 0xbb, 0x04, 0x9e, 0xa7, 0x26, 0xc0, 0x28, 0xca, 0x94,
  2547. 0x4e, 0xd2, 0xa5, 0x38, 0xfd, 0x9f, 0xc3, 0x3c, 0x04, 0xed,
  2548. 0x89, 0x9d, 0x3c, 0x25, 0x62, 0xaf, 0xf1, 0xd4, 0x99, 0x5a,
  2549. 0xaf, 0x92, 0xa4, 0xcc, 0xdc, 0x84, 0xbc, 0x92, 0x3a, 0x6f,
  2550. 0x93, 0xdd, 0x18, 0x12, 0xac, 0xb7, 0x7f, 0x87, 0x80, 0x26,
  2551. 0x2e, 0xe5, 0xfd, 0xe8, 0xa9, 0x8a, 0x5a, 0x8c, 0x9b, 0xb9,
  2552. 0x44, 0x3a, 0xb2, 0x7b, 0xf6, 0x93, 0x11, 0x6b, 0x74, 0x88,
  2553. 0xa9, 0x9f, 0x29, 0x15, 0x3a, 0xdc, 0xe7, 0x1e, 0xf8, 0x31,
  2554. 0x46, 0x4f, 0x7d, 0x0a, 0xfa, 0x48, 0x85, 0x76, 0x1f, 0x41,
  2555. 0xed, 0x56, 0xba, 0x82, 0x35, 0xf3, 0x11, 0x7b, 0x5f, 0x6d,
  2556. 0xb2, 0xdf, 0x79, 0x07, 0x05, 0x56, 0x1f, 0x69, 0xc8, 0x7a,
  2557. 0x9a, 0xa2, 0xc1, 0x43, 0x44, 0xc4, 0x36, 0xb0 },
  2558. { 0x4d, 0xfc, 0xe8, 0x09, 0xc3, 0x80, 0xae, 0x35, 0x08, 0xcd,
  2559. 0x84, 0x9c, 0xc1, 0x46, 0x84, 0x26, 0x58, 0xa8, 0x2b, 0x76,
  2560. 0x9f, 0x14, 0x27, 0x99, 0x87, 0x80, 0xa7, 0x84, 0xf3, 0xc5,
  2561. 0x3b, 0xce, 0xda, 0xd9, 0xe1, 0x82, 0x90, 0x62, 0xfa, 0x49,
  2562. 0xb4, 0x0b, 0x07, 0x2e, 0x25, 0x07, 0x26, 0x61, 0x79, 0xa7,
  2563. 0xb2, 0xcb, 0x15, 0x08, 0x27, 0x2a, 0xc9, 0x7e, 0x24, 0xa3,
  2564. 0x92, 0x5e, 0x5f, 0x4e, 0xf8, 0xa0, 0xdf, 0x66, 0xe0, 0x12,
  2565. 0x90, 0xd3, 0x4a, 0xe8, 0xb7, 0xd4, 0x20, 0x99, 0x1b, 0x8c,
  2566. 0x4b, 0x8e, 0xbb, 0x8e, 0x14, 0xd7, 0xe9, 0x5b, 0x76, 0x73,
  2567. 0x91, 0xc0, 0x41, 0xd6, 0xe1, 0x8e, 0x42, 0x4e, 0x20, 0x64,
  2568. 0x6e, 0xbe, 0x55, 0x7b, 0xe6, 0x1f, 0xd3, 0x2b, 0x5e, 0x1c,
  2569. 0x69, 0x77, 0xd3, 0xb3, 0x30, 0x25, 0xe2, 0xea, 0xe4, 0x8c,
  2570. 0x06, 0x54, 0x8e, 0x3d, 0xc6, 0x73, 0x56, 0x2f },
  2571. { 0x0d, 0x07, 0x59, 0x08, 0xb8, 0xa0, 0x68, 0x02, 0xdc, 0x7d,
  2572. 0xaf, 0xf8, 0x93, 0x39, 0xbd, 0x23, 0xc5, 0x62, 0x59, 0x5d,
  2573. 0xe4, 0x28, 0xa4, 0x08, 0x59, 0xe9, 0xe8, 0x1d, 0xe2, 0x15,
  2574. 0x3c, 0x22, 0x24, 0xa5, 0x71, 0x53, 0x9f, 0x3a, 0x53, 0x2f,
  2575. 0x30, 0x7f, 0xd7, 0xd8, 0x47, 0xd0, 0x12, 0x28, 0x7f, 0xce,
  2576. 0xcb, 0x04, 0x5c, 0x4e, 0xd9, 0xba, 0xf1, 0x73, 0xdc, 0x2e,
  2577. 0x81, 0xdc, 0x56, 0xb3, 0x1e, 0x10, 0xf1, 0x39, 0xd1, 0x5c,
  2578. 0x8d, 0x8a, 0x83, 0xfa, 0x8c, 0xc5, 0xca, 0x91, 0x6e, 0x7c,
  2579. 0xd6, 0x89, 0x13, 0x82, 0x45, 0xf0, 0xff, 0x47, 0x4c, 0x65,
  2580. 0x26, 0x23, 0x55, 0x4a, 0xdf, 0x3c, 0x34, 0x10, 0x2c, 0x26,
  2581. 0xbb, 0x2d, 0x1b, 0x2b, 0x10, 0xcc, 0x60, 0x0b, 0xe2, 0x7d,
  2582. 0x02, 0x63, 0xd5, 0x2d, 0xa0, 0x15, 0x97, 0x79, 0x30, 0xdd,
  2583. 0x45, 0x06, 0x9c, 0xb2, 0xd5, 0x27, 0xb7, 0x80 },
  2584. { 0x24, 0xfa, 0x96, 0x1c, 0x2f, 0x08, 0x53, 0x5a, 0xf2, 0xcd,
  2585. 0xe2, 0x15, 0xa4, 0x36, 0x0d, 0xfe, 0xfb, 0xee, 0xd7, 0xed,
  2586. 0x70, 0x0c, 0x11, 0x51, 0x28, 0x3f, 0x74, 0x4d, 0x39, 0x3f,
  2587. 0x2e, 0x2a, 0xb6, 0x86, 0x12, 0xb9, 0xf0, 0x49, 0x28, 0xe9,
  2588. 0xf5, 0xda, 0xfc, 0xec, 0x52, 0x61, 0x17, 0xe5, 0xef, 0x0d,
  2589. 0x22, 0x44, 0x1c, 0xfc, 0xbc, 0x52, 0x88, 0x3d, 0x0b, 0xb5,
  2590. 0xa8, 0xd6, 0x4e, 0xf6, 0x39, 0x2f, 0x28, 0x96, 0x27, 0x26,
  2591. 0x95, 0xbe, 0x01, 0x48, 0xcf, 0x1c, 0x79, 0x10, 0xc6, 0x82,
  2592. 0x5c, 0x05, 0xc2, 0xf5, 0x6d, 0xca, 0x36, 0x15, 0x83, 0xb9,
  2593. 0x60, 0x21, 0xf6, 0x22, 0xda, 0x0d, 0x1f, 0x02, 0xa2, 0xe4,
  2594. 0x85, 0x59, 0xf8, 0x51, 0x88, 0xc0, 0xd2, 0x61, 0x59, 0xca,
  2595. 0x41, 0x3b, 0x88, 0xfc, 0xd2, 0x4f, 0xbe, 0x99, 0xb2, 0xe5,
  2596. 0x87, 0x0a, 0xf2, 0xa7, 0xde, 0x08, 0x5f, 0x2a },
  2597. { 0x37, 0x1c, 0xc2, 0x3d, 0xfc, 0x4f, 0x01, 0x14, 0x94, 0xd7,
  2598. 0xa0, 0x3d, 0x4a, 0x6f, 0xb6, 0xe1, 0x20, 0x1f, 0x61, 0xd1,
  2599. 0x77, 0x52, 0xfa, 0x60, 0x8e, 0xff, 0x77, 0xe3, 0x75, 0x56,
  2600. 0x03, 0xf3, 0xf6, 0x35, 0xb1, 0xfc, 0x8f, 0x4d, 0x7d, 0x4e,
  2601. 0x5e, 0x1b, 0x8b, 0x7f, 0xe5, 0x0e, 0xe1, 0x73, 0x8c, 0xeb,
  2602. 0x75, 0x9f, 0x39, 0xad, 0x43, 0xab, 0x27, 0x3e, 0x1c, 0x8f,
  2603. 0x41, 0x95, 0x01, 0x58, 0xc0, 0x32, 0x14, 0xe9, 0xcc, 0x94,
  2604. 0x2f, 0x9e, 0x5a, 0x57, 0xf4, 0x86, 0xc9, 0x89, 0x51, 0x45,
  2605. 0xba, 0xb4, 0x6a, 0xf4, 0xd6, 0xc2, 0x7d, 0x12, 0x18, 0xb1,
  2606. 0x91, 0xdf, 0xcc, 0x89, 0xa0, 0x60, 0x22, 0x84, 0xf3, 0x45,
  2607. 0x68, 0x96, 0x43, 0xdb, 0x17, 0x4d, 0xaa, 0x90, 0x6e, 0x82,
  2608. 0xd5, 0x44, 0x64, 0x30, 0x57, 0xd8, 0xfb, 0xd9, 0x03, 0x26,
  2609. 0x07, 0x67, 0xdb, 0x3f, 0x61, 0x6d, 0xf7, 0xf6 },
  2610. { 0x92, 0xb6, 0xbc, 0xa0, 0x0c, 0x80, 0xfb, 0x7f, 0x3e, 0x60,
  2611. 0x2e, 0x4f, 0xc9, 0xf4, 0xd7, 0x8f, 0x33, 0x0f, 0x6a, 0x7a,
  2612. 0xf1, 0xbc, 0x13, 0xe8, 0x03, 0xc2, 0xc0, 0xe8, 0x5b, 0xa6,
  2613. 0xe6, 0xc6, 0x06, 0xf6, 0xa5, 0x8d, 0x76, 0x40, 0xc3, 0x0e,
  2614. 0x70, 0xd9, 0x7d, 0x07, 0x26, 0xdd, 0xe2, 0x4a, 0x45, 0x69,
  2615. 0x7e, 0x91, 0xe8, 0x7d, 0x34, 0x74, 0x40, 0xa4, 0x94, 0xd3,
  2616. 0x3a, 0x80, 0x20, 0x38, 0x3f, 0x9a, 0x6d, 0x78, 0x99, 0xcb,
  2617. 0x39, 0x53, 0x12, 0x80, 0xf1, 0x56, 0xe0, 0x02, 0x40, 0xf2,
  2618. 0x88, 0x36, 0xcd, 0x08, 0xdc, 0x4c, 0x80, 0x7b, 0xdc, 0x4f,
  2619. 0x7e, 0x36, 0x08, 0x10, 0x01, 0x27, 0xcc, 0x28, 0xc1, 0x64,
  2620. 0x6f, 0x57, 0x64, 0x2f, 0x77, 0xa8, 0x92, 0x02, 0xf6, 0x50,
  2621. 0xb3, 0x1b, 0x6d, 0x19, 0x6e, 0xbf, 0x36, 0x4d, 0x9c, 0x06,
  2622. 0x28, 0x9b, 0x11, 0x5d, 0xda, 0x90, 0xc3, 0x51 },
  2623. { 0x71, 0xff, 0x62, 0xc9, 0x4f, 0x02, 0xf8, 0x9d, 0xe7, 0xdb,
  2624. 0x4b, 0x98, 0xcf, 0x33, 0x87, 0x1c, 0x21, 0x5a, 0xd8, 0x30,
  2625. 0x1f, 0x27, 0x7e, 0x31, 0x9a, 0xaf, 0x6e, 0x67, 0x79, 0x0e,
  2626. 0x30, 0x88, 0xd7, 0xec, 0x5e, 0xda, 0xa3, 0xb6, 0x27, 0x59,
  2627. 0xf4, 0x01, 0x41, 0xb8, 0x3f, 0xd5, 0x8f, 0x65, 0xfe, 0x2b,
  2628. 0xae, 0x08, 0x4a, 0x9b, 0x63, 0xb6, 0xa4, 0xe1, 0xd8, 0x72,
  2629. 0x5c, 0xde, 0xbb, 0x70, 0xe8, 0xf0, 0x9e, 0x7e, 0x00, 0xf0,
  2630. 0xc0, 0xf9, 0xcd, 0x47, 0x2a, 0xfa, 0xea, 0x3b, 0x91, 0x53,
  2631. 0xed, 0xfb, 0x7b, 0xaa, 0x4a, 0x92, 0xca, 0x27, 0x0b, 0xee,
  2632. 0x9c, 0xee, 0x1b, 0xb1, 0x41, 0x3f, 0x6b, 0x4e, 0x32, 0xad,
  2633. 0xa7, 0xcc, 0x19, 0x54, 0x81, 0xc3, 0x29, 0xc4, 0x92, 0xb0,
  2634. 0xa3, 0x30, 0x0e, 0x82, 0x57, 0x12, 0xb8, 0xb1, 0x6f, 0x12,
  2635. 0x2e, 0x3d, 0x5c, 0x83, 0x5f, 0x00, 0x82, 0x2e },
  2636. { 0x40, 0xfd, 0x47, 0xe7, 0x5f, 0x95, 0x82, 0x73, 0xe6, 0xa8,
  2637. 0x3f, 0xe9, 0xdf, 0x1b, 0xba, 0x69, 0x6c, 0x18, 0xb3, 0x50,
  2638. 0x84, 0xef, 0x6b, 0x4c, 0xf1, 0xe1, 0x9f, 0xc6, 0xfd, 0xc3,
  2639. 0x7d, 0xda, 0x38, 0xdb, 0xb6, 0x3e, 0xa3, 0xd2, 0x66, 0x1c,
  2640. 0xd3, 0xaa, 0x0f, 0x7d, 0xd2, 0x22, 0x64, 0x32, 0xed, 0xde,
  2641. 0x69, 0x2a, 0x72, 0xcc, 0xd1, 0xf0, 0x92, 0xed, 0xc4, 0xb1,
  2642. 0xb6, 0xd4, 0xf6, 0x8a, 0x75, 0x3f, 0x28, 0xa0, 0x33, 0xaf,
  2643. 0x53, 0x6b, 0x8b, 0x83, 0x2d, 0x46, 0xf5, 0x98, 0x28, 0xc1,
  2644. 0xe1, 0xe9, 0xf9, 0x90, 0xca, 0x04, 0x41, 0x80, 0xa4, 0xc5,
  2645. 0x98, 0xe1, 0x09, 0xe6, 0x50, 0x33, 0x83, 0xf5, 0xef, 0x9f,
  2646. 0xff, 0xf1, 0x20, 0xa5, 0x3b, 0x11, 0xa8, 0xa5, 0xf1, 0xcd,
  2647. 0x65, 0x78, 0xe2, 0xee, 0x4a, 0xcd, 0x5e, 0xbc, 0x71, 0xe6,
  2648. 0xaa, 0x4c, 0x71, 0x02, 0x2a, 0x4a, 0x84, 0xd9 },
  2649. { 0x5b, 0x1c, 0x11, 0x57, 0xe6, 0x39, 0x33, 0x8c, 0x0b, 0x33,
  2650. 0x4d, 0x98, 0xdf, 0xfb, 0xe2, 0x86, 0x68, 0xd8, 0x21, 0x11,
  2651. 0xd8, 0x54, 0xa6, 0x95, 0x18, 0xb9, 0xfa, 0xb3, 0xf9, 0xb6,
  2652. 0xae, 0x43, 0x1a, 0xc1, 0x6a, 0x26, 0x1f, 0x57, 0x8a, 0xa3,
  2653. 0x20, 0xcf, 0x0b, 0x97, 0xf7, 0x30, 0x08, 0x4d, 0xe5, 0x2c,
  2654. 0x01, 0x39, 0xec, 0x6c, 0x21, 0x74, 0x14, 0xd6, 0x8a, 0x08,
  2655. 0x41, 0x13, 0x42, 0x5c, 0x2d, 0x85, 0xd4, 0x52, 0x1b, 0x46,
  2656. 0x83, 0x37, 0x93, 0x38, 0x9c, 0x05, 0x41, 0x71, 0xfb, 0x69,
  2657. 0x95, 0xd5, 0xc9, 0x6e, 0xb5, 0xa2, 0x19, 0x50, 0xcf, 0xc2,
  2658. 0x21, 0x4a, 0x8a, 0xc8, 0xff, 0x88, 0x69, 0xbe, 0xeb, 0xa1,
  2659. 0x2e, 0xb6, 0xef, 0xc2, 0xdd, 0x9e, 0xc8, 0x8e, 0x69, 0x86,
  2660. 0x25, 0x48, 0x6d, 0xbb, 0xfc, 0x1e, 0xea, 0xb6, 0xf2, 0xfb,
  2661. 0x5b, 0x88, 0xb7, 0x46, 0x26, 0x71, 0x40, 0xa4 },
  2662. { 0x96, 0x3a, 0xb8, 0x3a, 0xa7, 0x56, 0xee, 0xf4, 0x84, 0xde,
  2663. 0x9c, 0xb8, 0x33, 0xe5, 0x0a, 0xb3, 0xce, 0x16, 0x48, 0x01,
  2664. 0x6e, 0x1c, 0x63, 0x44, 0xe4, 0xd3, 0xfc, 0x44, 0xda, 0x0f,
  2665. 0xd5, 0x91, 0xb6, 0xad, 0x1c, 0xf4, 0x78, 0x5e, 0x67, 0xa3,
  2666. 0x0a, 0xc3, 0xbd, 0x66, 0xc7, 0x79, 0x1a, 0x48, 0x1f, 0x91,
  2667. 0x65, 0x1c, 0x7d, 0xa1, 0x2c, 0x10, 0x4f, 0xd1, 0xac, 0xe6,
  2668. 0x81, 0xc6, 0x5f, 0x57, 0xab, 0x18, 0xd8, 0x30, 0xea, 0x6e,
  2669. 0xdc, 0xa8, 0x28, 0x09, 0xc7, 0x64, 0xa4, 0xf3, 0x2c, 0x9d,
  2670. 0x16, 0xe7, 0x06, 0xe7, 0x05, 0x6d, 0xcf, 0x94, 0xcb, 0x2d,
  2671. 0x66, 0xa3, 0x63, 0x24, 0x20, 0xdc, 0x31, 0x6d, 0xc6, 0x5f,
  2672. 0xcb, 0x54, 0xdc, 0xe4, 0xf4, 0x2b, 0xa3, 0xc5, 0xfe, 0x69,
  2673. 0x4c, 0x73, 0x8d, 0xc6, 0x4e, 0xd2, 0x02, 0xfc, 0x92, 0xc2,
  2674. 0x90, 0xed, 0xaa, 0xb1, 0x72, 0xb6, 0xbb, 0x8f },
  2675. { 0x44, 0x34, 0x80, 0xfc, 0xbe, 0x45, 0xc5, 0x58, 0x6b, 0x82,
  2676. 0xb8, 0x99, 0x07, 0x6b, 0x98, 0x84, 0xc8, 0x9b, 0x91, 0xfd,
  2677. 0x83, 0xc1, 0xdc, 0x07, 0x66, 0x59, 0x4a, 0xaa, 0x83, 0x73,
  2678. 0x82, 0xda, 0x01, 0x1b, 0x25, 0x21, 0xa6, 0x0c, 0xfb, 0x6a,
  2679. 0x03, 0x7d, 0x13, 0x21, 0xb9, 0x9f, 0x4e, 0x3b, 0x8e, 0x55,
  2680. 0x09, 0x69, 0x7d, 0x7d, 0x95, 0x78, 0x81, 0x89, 0xe8, 0xb0,
  2681. 0x7c, 0x20, 0xbf, 0xd8, 0x36, 0x45, 0xbc, 0xb6, 0x33, 0x19,
  2682. 0xad, 0xac, 0xfe, 0x8c, 0x39, 0x0d, 0xbb, 0xa7, 0x55, 0x70,
  2683. 0x71, 0x00, 0x6f, 0x29, 0x04, 0x05, 0x7d, 0xce, 0x3f, 0xee,
  2684. 0x20, 0x4d, 0xf5, 0x50, 0x71, 0xbc, 0x84, 0xe5, 0x5b, 0x3e,
  2685. 0xe7, 0xc9, 0x9e, 0x15, 0xd1, 0x6e, 0x7d, 0x58, 0x8a, 0x3c,
  2686. 0x35, 0x64, 0x96, 0x56, 0x88, 0x15, 0x5c, 0xfe, 0x45, 0xfe,
  2687. 0x94, 0x4b, 0x47, 0xd8, 0xdf, 0x4e, 0xa5, 0xa3 },
  2688. { 0x97, 0x11, 0x8a, 0x88, 0xcf, 0xfa, 0xa7, 0xeb, 0xab, 0x6d,
  2689. 0x1e, 0xb0, 0xa1, 0x70, 0x03, 0x71, 0xb9, 0xd3, 0x55, 0xcf,
  2690. 0x8e, 0xb0, 0x3e, 0x6d, 0x9b, 0x6c, 0x22, 0x4b, 0xf6, 0xd7,
  2691. 0x2b, 0x58, 0xd5, 0xb1, 0x38, 0xd8, 0xc4, 0x42, 0xbe, 0x82,
  2692. 0xc2, 0xda, 0xda, 0x9e, 0x06, 0x5a, 0x8e, 0xe9, 0x38, 0x14,
  2693. 0x90, 0x71, 0xd3, 0x16, 0x05, 0xac, 0xdb, 0xef, 0x7c, 0x00,
  2694. 0xc1, 0x17, 0xa7, 0x8d, 0xa3, 0x86, 0x89, 0x17, 0xe7, 0x21,
  2695. 0xba, 0x7b, 0x24, 0x12, 0x84, 0xed, 0x24, 0x57, 0x2a, 0xc6,
  2696. 0xc2, 0xa9, 0xd0, 0xf2, 0xfb, 0x43, 0xa8, 0x6a, 0xb2, 0x29,
  2697. 0x65, 0x37, 0xfb, 0xfe, 0x9b, 0x77, 0xef, 0x3e, 0x6b, 0x31,
  2698. 0xd6, 0xf9, 0x61, 0x52, 0x42, 0xe2, 0xd0, 0xe4, 0x0f, 0xa5,
  2699. 0x47, 0x87, 0x4a, 0xec, 0x4f, 0x2e, 0x3e, 0x85, 0x7a, 0x7a,
  2700. 0xf8, 0xff, 0xff, 0xb4, 0x91, 0x14, 0x22, 0x1a },
  2701. { 0x17, 0xc0, 0x77, 0x8d, 0x4b, 0x71, 0xfa, 0x82, 0xd5, 0x6a,
  2702. 0x17, 0x7a, 0xa5, 0x73, 0x38, 0x7c, 0x30, 0xb5, 0x40, 0x5a,
  2703. 0x27, 0x0f, 0x45, 0xf6, 0x55, 0x4f, 0xe7, 0x63, 0xfe, 0x52,
  2704. 0xea, 0xe7, 0xdb, 0xa2, 0xba, 0x26, 0x85, 0xc3, 0xfc, 0x72,
  2705. 0xe4, 0xe7, 0x62, 0x99, 0x8a, 0x02, 0x23, 0xa5, 0xa4, 0x2c,
  2706. 0x02, 0xf4, 0x10, 0x2f, 0xee, 0x2a, 0xa2, 0x73, 0x00, 0x83,
  2707. 0x3b, 0x06, 0xef, 0xa5, 0x5b, 0xa7, 0x0a, 0x49, 0x8a, 0x88,
  2708. 0x2f, 0xf2, 0xb8, 0x58, 0x63, 0x7b, 0x14, 0xb3, 0xe5, 0x01,
  2709. 0xa8, 0xb0, 0xd8, 0x20, 0x3e, 0xf2, 0xa1, 0xc4, 0x9d, 0x35,
  2710. 0x2f, 0xbb, 0x0f, 0xbf, 0xb7, 0x81, 0xe7, 0x79, 0xa3, 0xca,
  2711. 0xa0, 0x20, 0x70, 0xb4, 0x24, 0xe0, 0xdd, 0x81, 0x04, 0x77,
  2712. 0x4f, 0xbf, 0x80, 0x83, 0xc8, 0x1b, 0xa9, 0x3a, 0x68, 0x66,
  2713. 0xbf, 0x9c, 0x59, 0xa2, 0xcd, 0xec, 0xb5, 0xd8 },
  2714. { 0x12, 0x19, 0xd5, 0xc8, 0x57, 0x1f, 0xe4, 0xc6, 0xd6, 0xce,
  2715. 0x84, 0xe1, 0xa4, 0x52, 0xed, 0x66, 0x9f, 0xfe, 0xc3, 0xa1,
  2716. 0xe2, 0xbf, 0x5d, 0x84, 0x6d, 0xd1, 0x2a, 0xe0, 0x1a, 0xd2,
  2717. 0x3a, 0x38, 0x5a, 0x8d, 0xb7, 0x9b, 0xa9, 0x6c, 0xc9, 0xa3,
  2718. 0x72, 0x3f, 0x43, 0x09, 0xa0, 0xff, 0xce, 0x0e, 0x7a, 0x0d,
  2719. 0x91, 0x57, 0x37, 0x85, 0x9a, 0x6a, 0x16, 0xe1, 0x2c, 0x45,
  2720. 0xe8, 0x6d, 0x5f, 0xd5, 0xf2, 0x24, 0x95, 0x2b, 0x18, 0x69,
  2721. 0x1c, 0x4a, 0x76, 0x8b, 0xca, 0x70, 0x05, 0x28, 0xbd, 0x40,
  2722. 0xa1, 0xa1, 0xde, 0xcd, 0x96, 0x7a, 0x2e, 0xca, 0x8c, 0x3f,
  2723. 0xa1, 0x77, 0xf5, 0xb0, 0x43, 0x77, 0x40, 0xfa, 0x45, 0x18,
  2724. 0xba, 0x09, 0xf3, 0xc4, 0xa2, 0xf5, 0xac, 0x9d, 0x9e, 0xbb,
  2725. 0xa9, 0x78, 0xc9, 0x88, 0x4e, 0x56, 0x65, 0x6e, 0xc5, 0x72,
  2726. 0x0e, 0x6d, 0xff, 0x1d, 0x27, 0x35, 0xe3, 0x7b },
  2727. { 0x2c, 0x8d, 0x7a, 0xb2, 0xd6, 0x57, 0xf2, 0x30, 0x13, 0x14,
  2728. 0xa8, 0x2f, 0x7e, 0x62, 0x6f, 0x42, 0x70, 0xb5, 0x7e, 0x1f,
  2729. 0x0b, 0xe2, 0x9e, 0xce, 0x76, 0xf9, 0x28, 0x39, 0x3a, 0x07,
  2730. 0x93, 0xf9, 0x3c, 0x29, 0x6b, 0x0d, 0xd2, 0x34, 0xa0, 0x7a,
  2731. 0x28, 0x65, 0xdd, 0x61, 0xcb, 0xa5, 0x7c, 0xc8, 0x43, 0x08,
  2732. 0xf7, 0x62, 0xa0, 0x4e, 0x6b, 0x87, 0x21, 0x6a, 0x61, 0xd0,
  2733. 0x7f, 0xac, 0x67, 0xc6, 0x95, 0xcd, 0x99, 0x90, 0xeb, 0x24,
  2734. 0xc3, 0x88, 0x14, 0x84, 0xbd, 0xb1, 0x8b, 0xac, 0x11, 0xd6,
  2735. 0x51, 0xd3, 0xd0, 0x75, 0xa9, 0x74, 0x3e, 0x6b, 0xff, 0xff,
  2736. 0xca, 0xd8, 0xe5, 0x80, 0xbd, 0xbd, 0x0f, 0x82, 0xb0, 0xed,
  2737. 0x8d, 0x15, 0x02, 0x74, 0xe6, 0x12, 0x7e, 0x51, 0x57, 0xbb,
  2738. 0x09, 0x09, 0x3a, 0x3a, 0xb3, 0x9d, 0x2f, 0x03, 0xe7, 0x73,
  2739. 0x43, 0xea, 0xa6, 0x7f, 0x26, 0x29, 0x69, 0xeb },
  2740. { 0x22, 0x99, 0xd2, 0x77, 0x4b, 0x09, 0xd9, 0x58, 0x96, 0xeb,
  2741. 0x70, 0x5a, 0x1b, 0x40, 0x4c, 0x44, 0x59, 0x60, 0x13, 0xdb,
  2742. 0x94, 0xa2, 0x0b, 0x11, 0xb0, 0xfd, 0x1c, 0xd5, 0xd1, 0xd3,
  2743. 0x98, 0xfb, 0xd4, 0x42, 0x8b, 0x2e, 0xed, 0x8c, 0xd5, 0x9a,
  2744. 0x74, 0x74, 0xbf, 0x0d, 0x77, 0xf8, 0x4a, 0x34, 0x6c, 0x98,
  2745. 0xd0, 0x5d, 0xc6, 0x7d, 0x6a, 0x8a, 0x69, 0xce, 0xd5, 0xaa,
  2746. 0xac, 0xa2, 0xd7, 0xef, 0xda, 0x89, 0x78, 0xbd, 0x29, 0xe3,
  2747. 0x7f, 0xeb, 0x11, 0x8a, 0xab, 0x77, 0x5a, 0x4d, 0xf3, 0x81,
  2748. 0x99, 0xda, 0xe4, 0x69, 0xd4, 0x5e, 0xbb, 0xa7, 0x8c, 0x4b,
  2749. 0x14, 0xdd, 0x9d, 0xf6, 0x43, 0x6a, 0x22, 0x9f, 0x89, 0xf5,
  2750. 0x8d, 0xd0, 0x96, 0x3f, 0x63, 0xe6, 0x65, 0xd8, 0x13, 0x10,
  2751. 0x10, 0x8d, 0xdf, 0x51, 0xea, 0xa5, 0x6e, 0xf8, 0x3b, 0x44,
  2752. 0x67, 0xcf, 0x58, 0x92, 0x08, 0x25, 0xe4, 0xd6 },
  2753. { 0x21, 0xac, 0x67, 0x79, 0x19, 0x36, 0x61, 0x8e, 0xaf, 0x9f,
  2754. 0xfa, 0x57, 0x27, 0xb4, 0x6c, 0x26, 0x97, 0x1b, 0x73, 0x6f,
  2755. 0x52, 0xca, 0x0d, 0x50, 0x71, 0xc4, 0x41, 0x35, 0xf0, 0xb6,
  2756. 0x59, 0x34, 0xc7, 0xad, 0x1d, 0x2b, 0x82, 0x1c, 0x44, 0x6b,
  2757. 0xe8, 0xd3, 0x8b, 0x48, 0x25, 0x31, 0x7e, 0x95, 0x0c, 0xf5,
  2758. 0x62, 0x91, 0xac, 0xe0, 0x07, 0x4e, 0x69, 0x25, 0xb1, 0xb3,
  2759. 0x04, 0x2d, 0xf4, 0x8e, 0x33, 0x6f, 0xd1, 0x3d, 0x91, 0x6e,
  2760. 0xe9, 0x8b, 0xed, 0x5d, 0x51, 0x89, 0xbe, 0xc4, 0xf8, 0xa0,
  2761. 0xdc, 0x96, 0x3f, 0x2d, 0x41, 0x1d, 0xb5, 0xf6, 0xa4, 0xb2,
  2762. 0x80, 0xcd, 0xe5, 0x3c, 0x01, 0xfd, 0x40, 0x5a, 0xe2, 0x87,
  2763. 0x8f, 0xcd, 0xc6, 0x8c, 0x58, 0x66, 0xd8, 0xe1, 0x3e, 0x9f,
  2764. 0x1d, 0xb2, 0xac, 0x19, 0x8f, 0x1e, 0xbf, 0x6d, 0xd3, 0x1e,
  2765. 0x5b, 0x9c, 0xd5, 0x8d, 0xc6, 0x43, 0x97, 0xe6 },
  2766. { 0x0e, 0x8e, 0xc1, 0xe7, 0x0e, 0x62, 0xd9, 0xd8, 0x66, 0x3d,
  2767. 0x88, 0xd6, 0x24, 0x48, 0x3a, 0x56, 0x01, 0x5f, 0x7e, 0x78,
  2768. 0x92, 0xc2, 0xe1, 0xbb, 0x30, 0x46, 0x3e, 0xe4, 0xe7, 0xf7,
  2769. 0xbe, 0x9f, 0x61, 0x22, 0x11, 0xdb, 0xee, 0x01, 0x64, 0xcd,
  2770. 0xc3, 0xf1, 0xc4, 0x31, 0xb2, 0x61, 0xca, 0x1c, 0xff, 0xa3,
  2771. 0x49, 0x6a, 0x3e, 0x60, 0x2f, 0x74, 0xfc, 0x0e, 0x1a, 0x45,
  2772. 0x61, 0x5a, 0x43, 0x89, 0x4f, 0x39, 0x89, 0x97, 0x0f, 0xf2,
  2773. 0x7b, 0x9c, 0x70, 0x97, 0x8a, 0x59, 0x03, 0x7c, 0x19, 0xb8,
  2774. 0x13, 0xd6, 0xf3, 0x75, 0xa0, 0xf2, 0x28, 0x14, 0xdf, 0xc1,
  2775. 0x9b, 0x09, 0xb3, 0x3c, 0x36, 0x25, 0x6f, 0xcd, 0x42, 0x36,
  2776. 0x38, 0x07, 0xb7, 0xd3, 0x49, 0x20, 0x33, 0xf8, 0x4d, 0xf5,
  2777. 0xd4, 0xb4, 0x12, 0x72, 0x24, 0x73, 0x97, 0xbd, 0xfc, 0x18,
  2778. 0xab, 0x42, 0x0e, 0x3f, 0x2d, 0x7f, 0xbc, 0xd2 },
  2779. { 0x65, 0x3a, 0x79, 0x5f, 0x5d, 0x10, 0x36, 0x35, 0xd8, 0x50,
  2780. 0xc1, 0xc0, 0x1b, 0x6b, 0x73, 0xfd, 0xe2, 0xa2, 0xbd, 0x12,
  2781. 0xf4, 0xb1, 0x3e, 0x5b, 0x76, 0xaa, 0x0f, 0x56, 0x86, 0x4d,
  2782. 0x83, 0x26, 0x58, 0x19, 0x2c, 0x86, 0xa2, 0x94, 0xa3, 0x25,
  2783. 0x67, 0xb1, 0x21, 0x7e, 0xd0, 0x77, 0x36, 0x66, 0xe1, 0x84,
  2784. 0x7a, 0x4c, 0x49, 0x5d, 0x83, 0x25, 0x78, 0x30, 0xae, 0x28,
  2785. 0x9b, 0x23, 0x7e, 0x91, 0x59, 0xef, 0x6c, 0xdd, 0xe0, 0xb9,
  2786. 0x14, 0x53, 0x42, 0xee, 0x03, 0x82, 0x4c, 0x67, 0xa7, 0x71,
  2787. 0xb7, 0x4b, 0x3d, 0xe7, 0x95, 0x9c, 0x48, 0xe3, 0x30, 0x78,
  2788. 0x5b, 0xd4, 0x88, 0xd2, 0x21, 0xa1, 0x31, 0x6d, 0x02, 0x3e,
  2789. 0xdd, 0x58, 0xa3, 0x15, 0x90, 0x34, 0x48, 0x20, 0xa5, 0x17,
  2790. 0x36, 0x17, 0x99, 0xac, 0x17, 0x5d, 0x66, 0x40, 0x07, 0x1a,
  2791. 0xa8, 0x8c, 0xcc, 0x29, 0x8a, 0x08, 0x78, 0xdd },
  2792. { 0x30, 0xdf, 0xc4, 0x7b, 0xd4, 0x44, 0x67, 0x5e, 0x08, 0x3f,
  2793. 0x65, 0xa5, 0xfb, 0x9d, 0x79, 0x76, 0x11, 0x18, 0x6d, 0x31,
  2794. 0x9a, 0x40, 0xda, 0x4b, 0xd2, 0x89, 0xeb, 0x4f, 0x27, 0xfb,
  2795. 0x0f, 0xd1, 0xf9, 0x94, 0xa1, 0x14, 0x7c, 0x6a, 0x42, 0xb1,
  2796. 0x46, 0xec, 0xbd, 0x3f, 0x1f, 0xef, 0x20, 0xe9, 0xbd, 0x75,
  2797. 0x73, 0x9c, 0xee, 0x7d, 0xaa, 0x26, 0xc9, 0x97, 0xf9, 0x3e,
  2798. 0xb2, 0x12, 0x5e, 0x8e, 0x14, 0xf9, 0x70, 0xcb, 0xdb, 0x45,
  2799. 0xd7, 0x63, 0x0b, 0x12, 0x83, 0x9a, 0xc5, 0xd1, 0xb1, 0x13,
  2800. 0xe2, 0x06, 0xb1, 0xd8, 0x1d, 0xb7, 0x25, 0xc7, 0x3a, 0xa7,
  2801. 0x04, 0xde, 0xe2, 0xb1, 0x2d, 0x52, 0xb0, 0xe5, 0x28, 0x8d,
  2802. 0x27, 0xf1, 0x31, 0xb5, 0xbc, 0xa7, 0xd7, 0xc3, 0xc9, 0x76,
  2803. 0x03, 0xd0, 0xb3, 0x5b, 0x8e, 0x5e, 0x7f, 0xa0, 0x2b, 0x60,
  2804. 0xcf, 0xe2, 0x89, 0x85, 0x50, 0xdc, 0xb1, 0x99 },
  2805. { 0x57, 0x2a, 0x59, 0x1f, 0x54, 0xc2, 0x12, 0xcf, 0xe1, 0x6f,
  2806. 0xe8, 0x72, 0x39, 0x7f, 0x25, 0x01, 0x15, 0x35, 0xc7, 0xda,
  2807. 0xae, 0x0f, 0xe2, 0x18, 0x9a, 0xc5, 0x2a, 0x4d, 0x40, 0x7a,
  2808. 0x3a, 0xa0, 0x98, 0x3a, 0xf1, 0x75, 0x25, 0x18, 0x49, 0x39,
  2809. 0x5d, 0xa6, 0x9e, 0x0b, 0xeb, 0x1a, 0xe2, 0x89, 0x27, 0x61,
  2810. 0x92, 0xbf, 0x07, 0xd7, 0xc3, 0xc8, 0x86, 0xe1, 0x14, 0xa6,
  2811. 0x2d, 0xdf, 0x7a, 0xc6, 0x17, 0x07, 0x3c, 0xe6, 0x3e, 0x2f,
  2812. 0x69, 0x84, 0xb7, 0xbe, 0x23, 0x36, 0xc4, 0xb7, 0x8e, 0x1c,
  2813. 0xa3, 0x51, 0x4b, 0x21, 0x98, 0x83, 0x11, 0x0f, 0xb1, 0xa3,
  2814. 0xdf, 0x7a, 0x30, 0x59, 0x06, 0x8e, 0xa2, 0xb9, 0xc2, 0x04,
  2815. 0x56, 0xa6, 0xa2, 0x14, 0xab, 0x07, 0x02, 0xdf, 0x8b, 0x53,
  2816. 0x35, 0x61, 0x25, 0x02, 0x7e, 0x54, 0xb4, 0xd4, 0xe8, 0x12,
  2817. 0xbc, 0xfc, 0x5a, 0xe2, 0x9e, 0xaa, 0xdf, 0xe8 },
  2818. { 0x65, 0xc2, 0xcb, 0xe1, 0xd8, 0xc8, 0x2c, 0x3c, 0x80, 0xc8,
  2819. 0x65, 0x53, 0x24, 0x91, 0x9a, 0x4e, 0x12, 0x0c, 0x6f, 0xbc,
  2820. 0x6c, 0x8b, 0x19, 0x0e, 0x81, 0x42, 0xdb, 0x5c, 0x90, 0xaf,
  2821. 0xd0, 0x7b, 0x6e, 0x3e, 0x49, 0x9d, 0x8d, 0x15, 0x76, 0x7a,
  2822. 0x90, 0x2f, 0xe9, 0x29, 0xf9, 0x08, 0xab, 0x43, 0xa3, 0x84,
  2823. 0x67, 0xdc, 0xe5, 0x3d, 0x1a, 0xa9, 0x15, 0xbc, 0xf3, 0xc6,
  2824. 0x11, 0xcb, 0x8c, 0x31, 0xf1, 0xd3, 0x62, 0x2b, 0x67, 0xf3,
  2825. 0x3f, 0x76, 0xb7, 0x05, 0xed, 0x61, 0x3d, 0x67, 0x4f, 0xe5,
  2826. 0xbb, 0xa5, 0x97, 0xce, 0xca, 0x03, 0x06, 0xd8, 0x6d, 0x96,
  2827. 0x71, 0xc0, 0x2f, 0xed, 0x95, 0x78, 0xbd, 0x3c, 0xbf, 0x9b,
  2828. 0xf2, 0x21, 0x26, 0xd4, 0xf9, 0xce, 0xb4, 0xb2, 0x3e, 0xef,
  2829. 0xd6, 0x90, 0x3f, 0x05, 0x43, 0x18, 0x32, 0x77, 0x33, 0xbc,
  2830. 0x49, 0x66, 0x84, 0x19, 0x09, 0xa5, 0x55, 0x3a },
  2831. { 0x83, 0x14, 0x40, 0xd5, 0x3b, 0xa7, 0x7f, 0x66, 0xd8, 0x05,
  2832. 0x50, 0x16, 0x0e, 0x78, 0x88, 0xb9, 0x25, 0x33, 0xad, 0x58,
  2833. 0xa0, 0xdc, 0xf4, 0xab, 0x43, 0x53, 0xd7, 0x2e, 0x1a, 0x09,
  2834. 0x98, 0x52, 0x46, 0xdb, 0x73, 0x8d, 0xdf, 0xae, 0x7a, 0x1a,
  2835. 0x78, 0x3e, 0xff, 0x1b, 0x94, 0xef, 0x7e, 0xd3, 0xa5, 0xc4,
  2836. 0xf1, 0xdc, 0x22, 0x9b, 0xd3, 0xde, 0x8c, 0x3c, 0xa3, 0x49,
  2837. 0x73, 0xe1, 0xd2, 0xf1, 0x5e, 0x34, 0xe3, 0x00, 0x47, 0x73,
  2838. 0x81, 0x83, 0x92, 0xea, 0x15, 0xec, 0x95, 0x01, 0x17, 0x70,
  2839. 0x82, 0x9b, 0xc6, 0xb3, 0x41, 0x3f, 0x57, 0x9e, 0xb6, 0x88,
  2840. 0x42, 0x77, 0x08, 0x45, 0x2d, 0x44, 0x79, 0xc1, 0x62, 0xe5,
  2841. 0x67, 0x9d, 0xd1, 0x58, 0x76, 0x47, 0x2c, 0xf6, 0x6b, 0xa0,
  2842. 0xee, 0xd7, 0x27, 0xdc, 0x3b, 0x0a, 0x86, 0xe8, 0x62, 0x45,
  2843. 0x68, 0x4c, 0xda, 0x20, 0xa6, 0x60, 0xbb, 0x63 },
  2844. { 0x50, 0x4c, 0x3a, 0x8a, 0x6d, 0x5f, 0x45, 0x66, 0x4a, 0x98,
  2845. 0x5a, 0x70, 0xe1, 0x5a, 0x28, 0x15, 0x38, 0x53, 0x99, 0xcd,
  2846. 0xbc, 0xf1, 0x19, 0xca, 0x57, 0x39, 0xac, 0x8f, 0x98, 0x5f,
  2847. 0xb4, 0x6d, 0xe9, 0x56, 0x63, 0xcc, 0x1b, 0x41, 0x1e, 0x3e,
  2848. 0x3c, 0xd1, 0x7f, 0x7f, 0x82, 0x14, 0x7b, 0x71, 0x7e, 0x0c,
  2849. 0x7a, 0x3c, 0x64, 0xca, 0xdf, 0xc6, 0x04, 0x88, 0x38, 0x2f,
  2850. 0x48, 0x53, 0x6b, 0x3b, 0xc9, 0x97, 0x7d, 0xb5, 0x63, 0x8c,
  2851. 0xe1, 0x1a, 0xea, 0x3f, 0xce, 0x98, 0x3d, 0xe0, 0x78, 0xdd,
  2852. 0x73, 0x5b, 0x86, 0x0a, 0x10, 0x1e, 0x85, 0x17, 0x92, 0x9d,
  2853. 0x7f, 0x66, 0xdf, 0xd2, 0x7a, 0x66, 0xc4, 0x5c, 0x28, 0xe6,
  2854. 0x1d, 0x3e, 0x44, 0xf0, 0xe8, 0x97, 0xf3, 0xe8, 0x82, 0x0b,
  2855. 0x3c, 0x0d, 0x5d, 0x06, 0x6e, 0x29, 0xd0, 0xfa, 0x46, 0xac,
  2856. 0xf4, 0x3e, 0x2e, 0x32, 0xf6, 0x11, 0xb2, 0xda },
  2857. { 0x49, 0x6e, 0x46, 0x99, 0xc7, 0x1d, 0x21, 0xd2, 0xc2, 0x7a,
  2858. 0xf0, 0xb1, 0x69, 0xf5, 0x6a, 0xdd, 0x38, 0xca, 0xf7, 0xd0,
  2859. 0x77, 0xfd, 0xc5, 0x20, 0xbf, 0x2e, 0xa6, 0xc9, 0xf8, 0x43,
  2860. 0x04, 0x22, 0x5e, 0xca, 0xc3, 0xe5, 0x6d, 0xe9, 0x37, 0xdc,
  2861. 0x2a, 0xe6, 0x84, 0xde, 0x55, 0x37, 0xb7, 0xda, 0x85, 0xa7,
  2862. 0xa9, 0xc3, 0xe6, 0xe2, 0x8e, 0xac, 0xbc, 0x70, 0xb3, 0xce,
  2863. 0xa6, 0x96, 0x73, 0xea, 0xb3, 0x5e, 0x56, 0x7e, 0xa6, 0xe8,
  2864. 0xa3, 0xbb, 0x4c, 0x23, 0xc6, 0xb6, 0x67, 0x0b, 0x27, 0x02,
  2865. 0xa2, 0xdc, 0x00, 0x1d, 0x7e, 0xe8, 0x1e, 0xe1, 0x6a, 0xd3,
  2866. 0x89, 0x56, 0xaa, 0xbc, 0xc6, 0x74, 0x29, 0x83, 0x24, 0x30,
  2867. 0xe5, 0xa1, 0x29, 0xed, 0x23, 0x4d, 0x24, 0x1c, 0x43, 0x7c,
  2868. 0xe2, 0x5f, 0x98, 0x5c, 0xff, 0x38, 0x50, 0x94, 0x74, 0xe3,
  2869. 0x00, 0xb5, 0x52, 0x83, 0xb8, 0xfa, 0x53, 0xc7 },
  2870. { 0x13, 0x38, 0x91, 0x73, 0x13, 0x03, 0x7f, 0xe8, 0x4f, 0x2b,
  2871. 0x5c, 0xcf, 0xcb, 0x37, 0x44, 0xb5, 0x35, 0x4c, 0xdc, 0xdb,
  2872. 0xe5, 0xf0, 0x69, 0x52, 0xc1, 0x4b, 0x21, 0x5e, 0xb0, 0xd6,
  2873. 0x86, 0x3a, 0x8b, 0xa0, 0xd9, 0xe9, 0xae, 0xab, 0x51, 0xf9,
  2874. 0xd6, 0x7a, 0xac, 0xaf, 0x76, 0x5b, 0xa2, 0x68, 0xce, 0xb4,
  2875. 0x0e, 0xdc, 0x95, 0x11, 0x67, 0xb7, 0x97, 0xbf, 0x6a, 0x54,
  2876. 0x22, 0x03, 0xd5, 0xc4, 0x5a, 0x21, 0xec, 0xe6, 0x2c, 0xd6,
  2877. 0x40, 0xc5, 0xbd, 0x01, 0xfa, 0x86, 0xbb, 0x04, 0x79, 0x3b,
  2878. 0xc4, 0x63, 0xbd, 0xa6, 0x17, 0xc0, 0x81, 0xb8, 0x40, 0xbf,
  2879. 0xd0, 0x80, 0x81, 0xf3, 0x21, 0x6a, 0xbc, 0x85, 0x97, 0x52,
  2880. 0x36, 0x86, 0xbd, 0xcc, 0x65, 0x9b, 0xcf, 0xaf, 0x48, 0x33,
  2881. 0xe0, 0x9b, 0xc2, 0xe3, 0x76, 0x84, 0x0e, 0xb2, 0xa6, 0x14,
  2882. 0xba, 0x14, 0xfc, 0x82, 0x9f, 0xa9, 0x34, 0x67 },
  2883. { 0x42, 0x2e, 0xb5, 0x73, 0xf3, 0x83, 0x3f, 0xbd, 0x4c, 0x81,
  2884. 0x02, 0xb4, 0x6d, 0xa1, 0xf3, 0x45, 0xd2, 0xce, 0xfa, 0x09,
  2885. 0x69, 0x5e, 0x3a, 0x02, 0x02, 0xc5, 0x10, 0x4d, 0x4d, 0xea,
  2886. 0x47, 0x96, 0x50, 0xf0, 0xc0, 0xa6, 0x04, 0x85, 0xdf, 0xf4,
  2887. 0x4b, 0xb2, 0x95, 0x2e, 0x55, 0xfb, 0xdb, 0xac, 0x9e, 0x7a,
  2888. 0x9b, 0x46, 0x3b, 0x45, 0xfe, 0xa5, 0xae, 0xc0, 0xfc, 0xb2,
  2889. 0x6b, 0xc8, 0xaa, 0x2a, 0x68, 0x07, 0x41, 0x72, 0x54, 0x33,
  2890. 0x04, 0xef, 0x0b, 0xc4, 0x93, 0xf9, 0x50, 0xa3, 0x4a, 0x7b,
  2891. 0xec, 0xc4, 0xcf, 0xb0, 0x26, 0x09, 0x90, 0xc8, 0xbb, 0x57,
  2892. 0x76, 0x2d, 0x38, 0xf3, 0x7e, 0x01, 0x81, 0xe3, 0x4e, 0xb9,
  2893. 0xc7, 0xce, 0xa9, 0x5c, 0x4b, 0xcd, 0x41, 0x9f, 0xde, 0x8e,
  2894. 0x53, 0x14, 0xfd, 0xac, 0x17, 0xbc, 0x44, 0xae, 0x2a, 0xc6,
  2895. 0xee, 0x68, 0x06, 0x40, 0x45, 0x00, 0x3c, 0xd1 },
  2896. { 0x36, 0x85, 0x41, 0xcf, 0x2c, 0x25, 0x25, 0x82, 0xcf, 0xba,
  2897. 0x27, 0xd7, 0xa0, 0xda, 0x2d, 0xc6, 0xa9, 0xfb, 0xbb, 0x4c,
  2898. 0xb7, 0xfd, 0x2b, 0x05, 0x7d, 0x19, 0xb9, 0xc2, 0x72, 0x79,
  2899. 0x99, 0xff, 0x09, 0xfe, 0xbc, 0x9c, 0x74, 0x73, 0x12, 0xe1,
  2900. 0x40, 0xf1, 0xc7, 0xe1, 0x66, 0xa3, 0xf2, 0xbf, 0xee, 0x63,
  2901. 0xfa, 0x8b, 0x88, 0x9d, 0xf8, 0xbc, 0x26, 0xea, 0x5a, 0x54,
  2902. 0xd6, 0x60, 0x59, 0xfe, 0xf2, 0xe2, 0x0c, 0xb4, 0x5b, 0x0f,
  2903. 0xd3, 0xad, 0xc8, 0x9e, 0x89, 0x20, 0xcb, 0xa0, 0x3c, 0xdc,
  2904. 0xf2, 0xa6, 0xba, 0x41, 0xda, 0xfb, 0x73, 0x6a, 0x72, 0x53,
  2905. 0x76, 0xac, 0x54, 0xb1, 0x27, 0x23, 0xcf, 0x7c, 0x94, 0xe2,
  2906. 0x64, 0xea, 0x58, 0x03, 0x57, 0xc1, 0xe9, 0x19, 0x07, 0x28,
  2907. 0x14, 0x59, 0xb0, 0x86, 0x1f, 0x6d, 0x97, 0x14, 0xba, 0x0e,
  2908. 0xac, 0x59, 0x2e, 0xb6, 0xa6, 0xad, 0x3f, 0x47 },
  2909. { 0x59, 0xa5, 0xbf, 0x59, 0x22, 0x26, 0x13, 0x34, 0xb8, 0x97,
  2910. 0x78, 0x80, 0x22, 0x41, 0xa5, 0x66, 0x07, 0x3b, 0xf8, 0x69,
  2911. 0xc7, 0xf9, 0x27, 0xe9, 0x09, 0xd8, 0xcf, 0x2d, 0x86, 0xa5,
  2912. 0x86, 0xf4, 0x16, 0x69, 0x78, 0x6a, 0x97, 0xe9, 0x4c, 0x11,
  2913. 0xe2, 0x64, 0xfa, 0x41, 0xb6, 0xa1, 0x3d, 0x00, 0xb0, 0x0d,
  2914. 0xbf, 0x9d, 0x2a, 0xc1, 0xaf, 0x48, 0xe6, 0x7c, 0x10, 0x2a,
  2915. 0xf5, 0x15, 0xe2, 0x3e, 0x34, 0xb4, 0x73, 0xf0, 0x65, 0x4b,
  2916. 0xe2, 0xf2, 0xd0, 0x20, 0x8a, 0x03, 0xbd, 0x07, 0xd8, 0x77,
  2917. 0xd5, 0xa6, 0xf2, 0xaf, 0xac, 0x06, 0x7f, 0xe8, 0x79, 0x75,
  2918. 0x41, 0xb6, 0x0e, 0x84, 0x2d, 0xc2, 0x69, 0xb5, 0x3c, 0x2a,
  2919. 0xaf, 0xc8, 0xdf, 0xc2, 0x4e, 0x6a, 0xe1, 0x8f, 0x08, 0x0f,
  2920. 0x79, 0x5b, 0x1b, 0x67, 0x7d, 0xe5, 0xac, 0xfa, 0x33, 0x3a,
  2921. 0x51, 0x0d, 0x3c, 0x9e, 0x22, 0x79, 0x9d, 0x37 },
  2922. { 0x46, 0x75, 0x64, 0xc1, 0x43, 0xeb, 0x79, 0x9c, 0xf1, 0x4e,
  2923. 0xf6, 0x18, 0xd3, 0xd3, 0xe0, 0xf8, 0x04, 0xda, 0x45, 0xf8,
  2924. 0x98, 0x4c, 0xfd, 0x36, 0x8d, 0x0b, 0x5c, 0xbe, 0x4a, 0xcc,
  2925. 0x5f, 0x4d, 0x77, 0xe7, 0xe0, 0x79, 0xb1, 0x3f, 0x3b, 0xd1,
  2926. 0x36, 0xdd, 0xc2, 0x37, 0x2a, 0xaa, 0x91, 0x35, 0xaa, 0x1b,
  2927. 0x05, 0xe0, 0x39, 0x84, 0x8b, 0xc9, 0x9c, 0xaa, 0x06, 0xb7,
  2928. 0xa6, 0x15, 0x6f, 0x8a, 0x6a, 0x6a, 0x71, 0xaa, 0xda, 0xdb,
  2929. 0x47, 0xfb, 0xf9, 0x38, 0x60, 0xd0, 0x94, 0x22, 0x81, 0x00,
  2930. 0x82, 0x67, 0xfd, 0x78, 0xf8, 0xdd, 0x3c, 0x6c, 0x08, 0xbe,
  2931. 0xe9, 0xf1, 0xd9, 0x1b, 0x9a, 0xa0, 0xda, 0x93, 0xcf, 0xcc,
  2932. 0xda, 0xa7, 0xd3, 0x97, 0x07, 0x88, 0x87, 0x67, 0xa9, 0xd4,
  2933. 0x6a, 0x7f, 0x18, 0x6c, 0x1a, 0xbc, 0xeb, 0x96, 0x99, 0x72,
  2934. 0xe9, 0xd1, 0xc9, 0x1e, 0x81, 0x34, 0x71, 0x91 },
  2935. { 0x8a, 0x0d, 0xee, 0x16, 0x4e, 0xe9, 0x84, 0xd5, 0x0d, 0x0f,
  2936. 0x7a, 0xdb, 0xed, 0x6a, 0x1e, 0x03, 0x17, 0x73, 0xf0, 0x16,
  2937. 0x7b, 0x7c, 0x50, 0xd9, 0x06, 0x8f, 0x39, 0xcb, 0x4f, 0x81,
  2938. 0xe0, 0x9e, 0xfe, 0x8d, 0x72, 0x8c, 0x7a, 0x03, 0x62, 0x18,
  2939. 0xf3, 0x16, 0x77, 0x32, 0x2f, 0x15, 0xb8, 0x50, 0x9f, 0x71,
  2940. 0xbc, 0x0c, 0xa5, 0xd2, 0xa0, 0x06, 0xa2, 0x8f, 0xe1, 0x28,
  2941. 0xc7, 0x9e, 0xdc, 0xb2, 0x8e, 0xb4, 0x8b, 0x15, 0x01, 0x1b,
  2942. 0xc6, 0xf3, 0xac, 0x92, 0xb6, 0xa2, 0xea, 0x87, 0x74, 0x86,
  2943. 0x61, 0xc5, 0x03, 0x18, 0x94, 0xd3, 0x5c, 0x61, 0xa2, 0xfe,
  2944. 0xb4, 0xaf, 0x68, 0xa2, 0xb9, 0xb0, 0x32, 0x23, 0x5f, 0xc1,
  2945. 0x43, 0xba, 0xec, 0x39, 0x90, 0x95, 0xd5, 0x75, 0x6d, 0x20,
  2946. 0xb8, 0xaa, 0x03, 0x7f, 0x33, 0xaf, 0x92, 0xdc, 0x47, 0x52,
  2947. 0x8d, 0x72, 0x59, 0x04, 0xb6, 0xff, 0xf5, 0xd7 },
  2948. { 0x7b, 0x04, 0xb5, 0xd2, 0xee, 0x97, 0xce, 0x23, 0x2c, 0xe7,
  2949. 0xfe, 0x7d, 0xb6, 0xf6, 0xbe, 0xd2, 0x9e, 0x9d, 0xb1, 0x9f,
  2950. 0xc1, 0xf0, 0x00, 0x73, 0x77, 0x78, 0xa9, 0x66, 0x3f, 0xe0,
  2951. 0xa1, 0x7c, 0xe8, 0x9b, 0xbc, 0x1d, 0x7b, 0x62, 0x84, 0x03,
  2952. 0xf1, 0xe8, 0x0c, 0x84, 0x55, 0x4c, 0xc2, 0x77, 0xf9, 0x7c,
  2953. 0xfd, 0x0e, 0x7e, 0x20, 0xa2, 0xc3, 0x31, 0x0d, 0x91, 0xf1,
  2954. 0xe3, 0xe1, 0x81, 0x09, 0xc0, 0x36, 0x7e, 0xf8, 0xbb, 0xaa,
  2955. 0x1e, 0x8c, 0x6a, 0x8e, 0x45, 0x3e, 0xc7, 0xee, 0x80, 0x8d,
  2956. 0xdb, 0x8d, 0x1b, 0x57, 0xc9, 0x1e, 0x21, 0x5f, 0x56, 0xa7,
  2957. 0x85, 0xf9, 0x40, 0x44, 0x5e, 0x43, 0xbb, 0xb4, 0x6a, 0xa6,
  2958. 0x3f, 0x19, 0x61, 0xe2, 0x14, 0xc4, 0xc7, 0x51, 0xa4, 0x0c,
  2959. 0xce, 0x36, 0xb8, 0x08, 0x4d, 0x9f, 0xe8, 0x6c, 0x30, 0x05,
  2960. 0x50, 0x49, 0x91, 0xbf, 0x47, 0x36, 0x6e, 0x6f },
  2961. { 0x1c, 0x6a, 0x95, 0xa4, 0xc9, 0x9b, 0xe3, 0x1c, 0x51, 0x5b,
  2962. 0x08, 0x1c, 0x9c, 0x7b, 0x27, 0x2c, 0x4f, 0x14, 0xd0, 0x32,
  2963. 0x37, 0x86, 0x97, 0x7a, 0xd8, 0x51, 0x19, 0xa0, 0xa8, 0xd8,
  2964. 0x18, 0x22, 0xe5, 0x46, 0x5a, 0x55, 0x33, 0x88, 0x63, 0x72,
  2965. 0x3a, 0xe2, 0x1b, 0x23, 0xa6, 0xdd, 0x80, 0x2f, 0xcd, 0x4d,
  2966. 0x50, 0x89, 0xc6, 0x22, 0xd6, 0xe3, 0x07, 0x29, 0x02, 0xd7,
  2967. 0x66, 0xe3, 0xad, 0xf0, 0x0a, 0xa2, 0xac, 0x6e, 0xcf, 0xa5,
  2968. 0x18, 0x57, 0x2e, 0xc6, 0xf0, 0xbb, 0xe1, 0xbb, 0xef, 0x41,
  2969. 0x60, 0x77, 0x38, 0xfb, 0xe0, 0xc1, 0x48, 0xec, 0xc7, 0x35,
  2970. 0x17, 0x31, 0xc3, 0xc3, 0xc3, 0x7c, 0x83, 0x3a, 0x10, 0x13,
  2971. 0xe9, 0x56, 0xd5, 0x1f, 0x3d, 0x56, 0x68, 0x61, 0xe7, 0x78,
  2972. 0x51, 0xe0, 0x1a, 0x73, 0x4c, 0x5e, 0x8e, 0xb8, 0x10, 0x97,
  2973. 0x5b, 0x54, 0x6b, 0xc7, 0x82, 0xc5, 0xfa, 0xf8 },
  2974. { 0x72, 0x70, 0x8a, 0x02, 0x30, 0xa8, 0x64, 0xc9, 0xa5, 0xc0,
  2975. 0x9c, 0x84, 0x14, 0xf6, 0x87, 0x9c, 0xd4, 0xb3, 0x91, 0x9e,
  2976. 0x08, 0x18, 0xe4, 0xbe, 0x4c, 0xec, 0x87, 0x09, 0xe6, 0x56,
  2977. 0x25, 0xfb, 0x5c, 0x91, 0x22, 0x6e, 0xba, 0x9a, 0xbd, 0xa3,
  2978. 0x2a, 0x46, 0x48, 0x81, 0x34, 0xbd, 0x9a, 0xf1, 0x83, 0x6f,
  2979. 0x61, 0x64, 0x4b, 0x70, 0xab, 0x45, 0x99, 0xdd, 0x0a, 0xd6,
  2980. 0xdb, 0xbb, 0xa8, 0xfe, 0x47, 0x5a, 0x79, 0x23, 0xb7, 0x5f,
  2981. 0x3b, 0x76, 0xf4, 0xaa, 0xda, 0xb8, 0x1a, 0x1d, 0x9f, 0xb1,
  2982. 0x6f, 0x87, 0xbd, 0xf4, 0x75, 0xcb, 0xad, 0x1f, 0x92, 0xc9,
  2983. 0xc0, 0x98, 0xf0, 0x81, 0xd9, 0x27, 0xf4, 0x12, 0xab, 0x39,
  2984. 0x82, 0x48, 0x9e, 0x27, 0xae, 0xf5, 0xd2, 0xc4, 0xcc, 0xad,
  2985. 0xe8, 0x48, 0x82, 0x9c, 0x18, 0x23, 0x4d, 0x17, 0xde, 0x1c,
  2986. 0xa6, 0xb1, 0x4a, 0xd5, 0xc2, 0x82, 0x13, 0x63 },
  2987. { 0x74, 0x91, 0xc7, 0x4c, 0x73, 0x26, 0x5d, 0x21, 0x7d, 0xb5,
  2988. 0x5c, 0x0b, 0x43, 0x69, 0x51, 0x13, 0x95, 0x25, 0xc4, 0x73,
  2989. 0x73, 0x46, 0x7e, 0x9d, 0xf1, 0x69, 0xd3, 0xcc, 0xfa, 0xe1,
  2990. 0x03, 0xf7, 0xc8, 0x65, 0xf9, 0xfb, 0x61, 0xa8, 0x5b, 0xd5,
  2991. 0x9e, 0x08, 0x18, 0x69, 0xf7, 0x09, 0x69, 0x1c, 0xcf, 0xe8,
  2992. 0xb5, 0xce, 0xbb, 0x16, 0xb5, 0x15, 0x35, 0x5e, 0xb6, 0xe2,
  2993. 0x3e, 0x5c, 0x1b, 0x2a, 0xdb, 0x62, 0xd5, 0xb0, 0xb3, 0x5c,
  2994. 0x93, 0x65, 0x2b, 0x59, 0x06, 0x49, 0xc9, 0x79, 0x3e, 0x1c,
  2995. 0x73, 0x3d, 0xa7, 0x13, 0xce, 0xc6, 0xf4, 0x32, 0xe2, 0x41,
  2996. 0x6c, 0x2a, 0xbb, 0x04, 0x3d, 0xa3, 0x82, 0x4c, 0x71, 0x46,
  2997. 0x90, 0x88, 0x08, 0x81, 0xd7, 0x0f, 0x0f, 0xee, 0x0e, 0x28,
  2998. 0x78, 0x5c, 0xa1, 0xba, 0xe0, 0x9c, 0x7f, 0x9d, 0x45, 0xba,
  2999. 0x4f, 0x33, 0xc0, 0xb1, 0xf3, 0x4a, 0x46, 0x6c },
  3000. { 0x8b, 0xcf, 0xd3, 0xe5, 0x74, 0x17, 0x68, 0x41, 0x68, 0x29,
  3001. 0xd1, 0xc2, 0x68, 0x90, 0x6b, 0x76, 0xb7, 0x32, 0x9f, 0xab,
  3002. 0xbc, 0xe6, 0x86, 0x64, 0xcb, 0x59, 0x14, 0x93, 0xc6, 0xe8,
  3003. 0xdc, 0xbb, 0x00, 0xfd, 0x4b, 0x01, 0x0b, 0x3b, 0xa2, 0x2e,
  3004. 0xe5, 0x48, 0x7e, 0x25, 0xd3, 0xdd, 0x4a, 0xbd, 0x1f, 0xda,
  3005. 0x9f, 0x37, 0xc8, 0x5d, 0x3c, 0xb9, 0xd6, 0xc4, 0x70, 0x9f,
  3006. 0x01, 0x2a, 0xa3, 0xba, 0x69, 0xe7, 0x57, 0x84, 0xd9, 0xfc,
  3007. 0x5a, 0xdc, 0x93, 0xe2, 0x95, 0xc8, 0x59, 0x74, 0xb2, 0x01,
  3008. 0xda, 0xa7, 0xd8, 0x98, 0xe4, 0x2b, 0xcd, 0x5a, 0x2d, 0xfb,
  3009. 0x29, 0xee, 0x59, 0xef, 0x9c, 0xed, 0x31, 0x7c, 0xcf, 0x6b,
  3010. 0xae, 0xb8, 0x2c, 0x8e, 0xac, 0x86, 0xc5, 0x8c, 0xd6, 0x22,
  3011. 0x19, 0xa1, 0x1b, 0x8a, 0xc6, 0x33, 0xba, 0x4b, 0x26, 0x0b,
  3012. 0x31, 0x2e, 0xd5, 0xbf, 0x80, 0xd2, 0xb9, 0x4d },
  3013. { 0x53, 0xca, 0xdc, 0xf7, 0xbd, 0x37, 0xab, 0x49, 0x3e, 0x18,
  3014. 0xd1, 0xe4, 0x90, 0x5a, 0x93, 0x78, 0xbd, 0x78, 0x01, 0x0e,
  3015. 0x1d, 0xb9, 0x32, 0xad, 0xf1, 0x4d, 0xda, 0x81, 0x52, 0x89,
  3016. 0x04, 0x18, 0x6f, 0x54, 0x25, 0x09, 0x05, 0x7f, 0xe9, 0x1e,
  3017. 0xd1, 0xe5, 0xf8, 0xaf, 0x67, 0x1e, 0xc3, 0x79, 0xd9, 0xe8,
  3018. 0xd2, 0x06, 0x40, 0x22, 0xa6, 0x91, 0x09, 0xd7, 0x97, 0x0b,
  3019. 0x50, 0x74, 0x62, 0x57, 0x83, 0x44, 0x6b, 0x89, 0x6a, 0xf2,
  3020. 0x0e, 0xad, 0xd5, 0x8b, 0x3d, 0xf2, 0x2f, 0x58, 0x63, 0x89,
  3021. 0x0a, 0x06, 0x96, 0x48, 0x27, 0xdf, 0xfd, 0x4f, 0x15, 0x52,
  3022. 0x7e, 0x5e, 0x1f, 0x99, 0x22, 0x27, 0x53, 0x65, 0xe0, 0xd8,
  3023. 0x77, 0x92, 0x47, 0x87, 0xb9, 0x37, 0xf7, 0xc3, 0xc0, 0x68,
  3024. 0xba, 0x16, 0x95, 0xf0, 0xb2, 0xf1, 0x11, 0x87, 0x08, 0x33,
  3025. 0x06, 0x88, 0x27, 0x34, 0xd3, 0xc8, 0xc3, 0x14 },
  3026. { 0x90, 0x84, 0x99, 0x64, 0xbf, 0x8c, 0x62, 0xb1, 0x69, 0xbd,
  3027. 0x75, 0xe9, 0xc3, 0x2d, 0x10, 0x46, 0x75, 0x42, 0xa5, 0xae,
  3028. 0xb6, 0x9a, 0x97, 0x60, 0x10, 0x6f, 0x19, 0x0a, 0xa6, 0x50,
  3029. 0xec, 0x5c, 0x36, 0x94, 0x14, 0x85, 0x10, 0xf2, 0x62, 0x24,
  3030. 0x3d, 0xcd, 0xb9, 0xd2, 0x1e, 0x79, 0x42, 0x9e, 0xca, 0xf6,
  3031. 0x78, 0x4b, 0x49, 0x1f, 0x2b, 0xed, 0x01, 0x8b, 0x4e, 0xab,
  3032. 0x9e, 0x42, 0x87, 0x9c, 0x61, 0x75, 0x2e, 0x59, 0xda, 0x55,
  3033. 0xdd, 0x53, 0x4e, 0x10, 0x64, 0x82, 0x23, 0x96, 0x24, 0xd1,
  3034. 0x8c, 0x1e, 0x58, 0x67, 0x7d, 0xc9, 0xe5, 0x95, 0xab, 0xa6,
  3035. 0x79, 0x4b, 0xb1, 0x73, 0xb3, 0x17, 0xb3, 0x01, 0x83, 0x45,
  3036. 0xe2, 0x2b, 0x6a, 0x33, 0x64, 0x91, 0xb0, 0xf8, 0x12, 0x20,
  3037. 0x6d, 0x15, 0xd8, 0x86, 0x60, 0x6c, 0x88, 0x8a, 0xbf, 0x67,
  3038. 0x1b, 0xb5, 0xed, 0xf7, 0x5e, 0x53, 0xd0, 0xff },
  3039. { 0x3d, 0x7f, 0x6f, 0xfa, 0x46, 0x8c, 0xd7, 0xe8, 0xc2, 0xb7,
  3040. 0x5b, 0xe4, 0x73, 0x58, 0x0d, 0x22, 0xd4, 0xed, 0xbd, 0x5e,
  3041. 0x08, 0xdc, 0x4c, 0xc0, 0xcd, 0xee, 0x18, 0xf0, 0xe9, 0x3c,
  3042. 0x92, 0x68, 0x3e, 0x19, 0x49, 0xab, 0xf6, 0xb7, 0xde, 0x33,
  3043. 0xf6, 0x86, 0x22, 0x09, 0xc4, 0x21, 0xfb, 0x7a, 0xbd, 0x86,
  3044. 0xd2, 0xca, 0xc4, 0x10, 0x12, 0x4b, 0x49, 0xd3, 0x2d, 0x7b,
  3045. 0x87, 0x5e, 0xc5, 0x16, 0xc9, 0x21, 0xb3, 0x37, 0x60, 0x89,
  3046. 0xa4, 0xf2, 0x96, 0xfd, 0xa5, 0x0e, 0xbb, 0x5a, 0x42, 0xf8,
  3047. 0xf9, 0xb4, 0x38, 0x2d, 0x4e, 0x62, 0x42, 0x3e, 0x6e, 0x67,
  3048. 0xfe, 0xbd, 0x7c, 0x71, 0x48, 0x7c, 0x1b, 0x0c, 0xbb, 0x8f,
  3049. 0x67, 0x72, 0xde, 0x9a, 0x92, 0xa9, 0x3a, 0x9d, 0xa5, 0x1a,
  3050. 0x17, 0x88, 0x18, 0x48, 0x62, 0x64, 0x9d, 0xb5, 0xf0, 0x56,
  3051. 0xb1, 0x39, 0x0c, 0xf6, 0x5a, 0x93, 0xc6, 0x61 },
  3052. { 0x8f, 0xb1, 0x2d, 0x3f, 0x6d, 0xde, 0x74, 0xe6, 0x40, 0x99,
  3053. 0x4d, 0x6f, 0xfd, 0x43, 0x4e, 0x7c, 0x3e, 0x18, 0xc4, 0xfd,
  3054. 0x22, 0x54, 0xab, 0xee, 0x30, 0x3f, 0x9e, 0xb9, 0x1d, 0x16,
  3055. 0xa5, 0x55, 0x3f, 0x06, 0x4e, 0xd4, 0x51, 0x1e, 0x60, 0x19,
  3056. 0x56, 0x75, 0x28, 0xe3, 0x9c, 0x9c, 0x60, 0x17, 0xb5, 0x41,
  3057. 0x92, 0x03, 0x94, 0x92, 0xf2, 0x3a, 0x5f, 0xc6, 0x89, 0x35,
  3058. 0x54, 0x8b, 0xa5, 0x62, 0x55, 0x77, 0x1b, 0xf5, 0x55, 0x65,
  3059. 0x16, 0x33, 0x65, 0x9a, 0x34, 0x2c, 0xd8, 0x3c, 0x21, 0xf4,
  3060. 0x56, 0x12, 0x46, 0x7f, 0x7f, 0x19, 0x5b, 0x60, 0x85, 0x19,
  3061. 0xdf, 0x2b, 0xb2, 0xae, 0x4d, 0x82, 0xbc, 0x69, 0x0a, 0xf5,
  3062. 0x42, 0xdc, 0xe6, 0x8e, 0x56, 0x68, 0x0b, 0x08, 0x90, 0xfe,
  3063. 0xed, 0xc9, 0x9d, 0x75, 0x9d, 0xa6, 0x97, 0x03, 0x38, 0xdf,
  3064. 0xea, 0x7b, 0x29, 0x0c, 0xdf, 0xfb, 0xd5, 0xd1 },
  3065. { 0x3f, 0xcc, 0x67, 0x31, 0x75, 0xd2, 0x37, 0xb1, 0x4f, 0x93,
  3066. 0x03, 0xa2, 0x06, 0xff, 0x34, 0x53, 0xbe, 0x94, 0x6a, 0x59,
  3067. 0x19, 0xab, 0x1c, 0x97, 0xe7, 0x85, 0x8e, 0xcd, 0x37, 0x59,
  3068. 0x81, 0xec, 0x9b, 0x64, 0x3e, 0x77, 0x86, 0x7c, 0xa0, 0xe9,
  3069. 0x5f, 0x20, 0xfd, 0x2e, 0x4f, 0x47, 0x49, 0x9d, 0xaf, 0x77,
  3070. 0x1f, 0x6d, 0xfe, 0x23, 0x9f, 0x83, 0x29, 0xdd, 0x85, 0x0a,
  3071. 0x26, 0x8a, 0x5a, 0xf7, 0x87, 0x89, 0x69, 0x96, 0x29, 0x32,
  3072. 0xfb, 0x89, 0x13, 0x58, 0xf9, 0x7b, 0x4c, 0x2f, 0x13, 0x07,
  3073. 0x14, 0x68, 0x1a, 0x14, 0xf6, 0xf5, 0x80, 0xa0, 0x4a, 0x2b,
  3074. 0x69, 0x6a, 0x71, 0x6b, 0xa4, 0xdd, 0xe8, 0x9f, 0xfa, 0xd0,
  3075. 0x57, 0x8c, 0xae, 0x91, 0x4f, 0x21, 0x28, 0x23, 0x07, 0x8a,
  3076. 0xc3, 0xef, 0x45, 0x3e, 0x09, 0xf0, 0xb8, 0x7b, 0x7e, 0x4d,
  3077. 0x6c, 0x63, 0x81, 0xa2, 0x29, 0x3c, 0xb7, 0xa4 },
  3078. { 0x64, 0x51, 0x46, 0xfd, 0xc7, 0x15, 0x1c, 0x34, 0xd4, 0x13,
  3079. 0x45, 0xdc, 0xb3, 0xfa, 0x86, 0x85, 0x75, 0xf0, 0xfb, 0xac,
  3080. 0xaf, 0x42, 0x99, 0x39, 0x24, 0xec, 0x69, 0x03, 0x7e, 0x62,
  3081. 0xa1, 0x88, 0xbe, 0xbe, 0x30, 0xcf, 0xa1, 0xf5, 0x24, 0x9c,
  3082. 0xc3, 0xa5, 0xa0, 0x5d, 0x56, 0x46, 0x12, 0xb7, 0x15, 0x44,
  3083. 0x24, 0xa3, 0x6b, 0x0f, 0x25, 0x4b, 0x60, 0xdd, 0x62, 0xcf,
  3084. 0xdf, 0x0c, 0xb3, 0xc2, 0x2a, 0x2f, 0x5d, 0x62, 0xf1, 0x0f,
  3085. 0xdb, 0xd2, 0x56, 0x08, 0x5a, 0x59, 0x5b, 0x51, 0xbc, 0x46,
  3086. 0x12, 0xf3, 0xe4, 0xc0, 0x9f, 0xb3, 0xf1, 0xdc, 0x1d, 0x4c,
  3087. 0x93, 0xf4, 0x7d, 0xeb, 0x92, 0x6b, 0xf2, 0x12, 0x08, 0x55,
  3088. 0x2c, 0x37, 0xa1, 0x22, 0x24, 0x29, 0xcb, 0xfd, 0x95, 0xa6,
  3089. 0x4a, 0xaf, 0xfa, 0xf7, 0x0e, 0x1f, 0xc1, 0x40, 0x1b, 0x90,
  3090. 0x50, 0x9d, 0xeb, 0xd5, 0xdf, 0x21, 0xf9, 0x20 },
  3091. { 0x44, 0x8d, 0x3d, 0x72, 0xab, 0xfb, 0x9f, 0x2e, 0x2a, 0x7c,
  3092. 0xa4, 0xa9, 0x4d, 0x00, 0x5d, 0xda, 0x6d, 0xc7, 0x85, 0x05,
  3093. 0x6c, 0x05, 0x0a, 0x74, 0x92, 0xd7, 0x0a, 0x9f, 0x54, 0xba,
  3094. 0x14, 0xce, 0xca, 0xd0, 0x3b, 0xe7, 0xc0, 0x58, 0xfa, 0x80,
  3095. 0x1d, 0xc0, 0x77, 0x55, 0x29, 0xaa, 0x26, 0x5d, 0x43, 0x4d,
  3096. 0x09, 0xb9, 0x81, 0x97, 0xbe, 0x85, 0x7a, 0xf2, 0xd3, 0x5f,
  3097. 0x98, 0x58, 0xfa, 0x48, 0xf1, 0x78, 0x9c, 0x69, 0x6e, 0xd1,
  3098. 0xa9, 0xc3, 0x01, 0xbc, 0x30, 0x05, 0x7b, 0xb1, 0xd0, 0x00,
  3099. 0x6e, 0x21, 0xd5, 0x8f, 0xd3, 0x14, 0x12, 0xb8, 0x95, 0x45,
  3100. 0xa6, 0xaa, 0x51, 0xdc, 0x5a, 0x74, 0xca, 0x53, 0x19, 0x19,
  3101. 0xef, 0x3d, 0x8e, 0x00, 0x20, 0x37, 0x57, 0xac, 0x7e, 0x50,
  3102. 0xfc, 0x17, 0xbb, 0xa6, 0xf1, 0x36, 0x00, 0x63, 0x26, 0xe1,
  3103. 0xec, 0xec, 0x63, 0x3a, 0xba, 0x19, 0x24, 0xf9 },
  3104. { 0x76, 0x88, 0x14, 0x79, 0xcb, 0x70, 0x19, 0xa5, 0x72, 0x49,
  3105. 0x71, 0x75, 0xd9, 0x2a, 0x30, 0x9f, 0x28, 0x5a, 0x33, 0xdf,
  3106. 0x99, 0x63, 0xc4, 0x59, 0x4d, 0x8c, 0x5d, 0x67, 0x25, 0x92,
  3107. 0x8c, 0x78, 0x20, 0x81, 0x78, 0xec, 0x96, 0xf2, 0xfd, 0x89,
  3108. 0x3d, 0xcd, 0x13, 0x1f, 0xb4, 0x6f, 0x7c, 0xbc, 0xb8, 0x25,
  3109. 0xb1, 0x62, 0xd0, 0xe2, 0xf3, 0x37, 0x40, 0x2e, 0xf5, 0x84,
  3110. 0xe5, 0x48, 0x44, 0xc9, 0x10, 0x8a, 0x28, 0xb8, 0xf6, 0xa4,
  3111. 0x47, 0x0a, 0x0c, 0x61, 0xec, 0x99, 0x56, 0x66, 0xef, 0xdf,
  3112. 0xd3, 0xaa, 0xc7, 0x15, 0xa5, 0x0e, 0xaa, 0x91, 0x13, 0xad,
  3113. 0xe4, 0xec, 0x5f, 0xf6, 0xe4, 0xa3, 0x95, 0x5c, 0xe4, 0x2a,
  3114. 0x3c, 0xd9, 0xf3, 0x3b, 0xb3, 0xf4, 0x56, 0x13, 0x4b, 0x07,
  3115. 0x44, 0x14, 0x86, 0x83, 0x51, 0xbc, 0xa9, 0xae, 0x81, 0x5a,
  3116. 0xdc, 0x56, 0xf1, 0x45, 0x29, 0xb3, 0x39, 0x89 },
  3117. { 0x67, 0x0e, 0xb0, 0x1c, 0x5e, 0x5a, 0x86, 0x26, 0xf3, 0x76,
  3118. 0x00, 0xfb, 0x53, 0x2c, 0xe1, 0x80, 0x67, 0x13, 0x52, 0x60,
  3119. 0x59, 0xfa, 0xe5, 0x06, 0x50, 0xb9, 0xd0, 0x6e, 0xdd, 0xab,
  3120. 0xed, 0x19, 0xa4, 0x79, 0x24, 0x1c, 0x9f, 0xff, 0x0e, 0x3a,
  3121. 0xde, 0x25, 0x3f, 0x4c, 0x56, 0xcc, 0xe8, 0x15, 0xc3, 0x59,
  3122. 0x25, 0xd0, 0x4b, 0x18, 0x69, 0x2d, 0x17, 0x91, 0x4e, 0x1d,
  3123. 0xb0, 0xb7, 0x12, 0xa7, 0x1c, 0xff, 0x0e, 0xe7, 0xd0, 0x8a,
  3124. 0x26, 0x5d, 0x75, 0xb8, 0xd5, 0x75, 0x8b, 0xf2, 0xe1, 0xd7,
  3125. 0x4b, 0xc0, 0x62, 0x64, 0xa0, 0xb2, 0xae, 0xe5, 0xc2, 0xc5,
  3126. 0x63, 0xb4, 0x4a, 0x9e, 0xad, 0x62, 0x63, 0x60, 0x44, 0x21,
  3127. 0x2a, 0x33, 0x54, 0x15, 0xe8, 0xa2, 0x2c, 0xe0, 0x03, 0xa5,
  3128. 0xe2, 0x1a, 0x5e, 0x11, 0xb9, 0xad, 0x92, 0xbf, 0x65, 0xdb,
  3129. 0xba, 0x43, 0xa1, 0x14, 0x91, 0x76, 0x7e, 0xed },
  3130. { 0x50, 0x48, 0x52, 0xe7, 0x63, 0x5d, 0xff, 0x27, 0xb7, 0x7f,
  3131. 0x03, 0x66, 0x00, 0x75, 0x16, 0x6a, 0x2d, 0x0f, 0x2f, 0x98,
  3132. 0x1c, 0xba, 0xae, 0x32, 0x1f, 0xa9, 0xc8, 0xf5, 0x91, 0x12,
  3133. 0xf7, 0xd6, 0x2e, 0xe9, 0xcc, 0x15, 0x4b, 0xb9, 0x0b, 0x1f,
  3134. 0x23, 0x55, 0x29, 0x32, 0x7f, 0x4b, 0x79, 0x6b, 0x7b, 0x82,
  3135. 0x12, 0x50, 0xdb, 0x23, 0x45, 0xe9, 0x80, 0x93, 0x89, 0x9e,
  3136. 0x5d, 0x64, 0xee, 0xce, 0x7d, 0x93, 0x23, 0x40, 0x97, 0x5a,
  3137. 0x46, 0xf0, 0xa6, 0x9e, 0x94, 0x30, 0xb5, 0xe4, 0xb4, 0x76,
  3138. 0xfc, 0x3b, 0x3b, 0x4e, 0x7c, 0x2d, 0x13, 0x22, 0x43, 0x52,
  3139. 0xf3, 0x8d, 0xbe, 0xac, 0x7e, 0xff, 0x69, 0xa1, 0x04, 0xf2,
  3140. 0x92, 0x24, 0xdd, 0xf1, 0x91, 0x78, 0x05, 0x41, 0x2a, 0x1a,
  3141. 0x38, 0x45, 0xcf, 0x08, 0xec, 0xc5, 0x7f, 0x24, 0x31, 0xad,
  3142. 0xdf, 0x73, 0xc0, 0xaf, 0x73, 0xcd, 0xbb, 0x43 },
  3143. { 0x99, 0x2f, 0xe1, 0x51, 0xf7, 0xe9, 0x0c, 0xc4, 0xfb, 0x24,
  3144. 0xdc, 0x40, 0x52, 0x40, 0xf8, 0xb0, 0x50, 0xd0, 0xce, 0xe7,
  3145. 0x61, 0x8c, 0xe6, 0xc4, 0x3f, 0x4c, 0x9a, 0x19, 0xb9, 0x1e,
  3146. 0xae, 0x9c, 0x2f, 0x3a, 0x73, 0x08, 0xe9, 0xa9, 0xe1, 0x3f,
  3147. 0xd0, 0x5e, 0xf6, 0x9b, 0xe8, 0x66, 0x7d, 0x30, 0xab, 0xff,
  3148. 0xd9, 0xfc, 0xa9, 0xc7, 0xde, 0xb9, 0xa0, 0x53, 0x00, 0x02,
  3149. 0x05, 0x8b, 0x31, 0x77, 0x8a, 0x31, 0xb1, 0x2a, 0x1f, 0xab,
  3150. 0xf0, 0x27, 0x77, 0x35, 0x14, 0x0e, 0xd3, 0xc4, 0x29, 0xa0,
  3151. 0xc6, 0x6f, 0xd6, 0x17, 0x38, 0x53, 0xaf, 0x38, 0x71, 0x30,
  3152. 0x5c, 0x24, 0x2d, 0x95, 0x09, 0x08, 0xb0, 0x1b, 0x16, 0xd3,
  3153. 0xcb, 0xe8, 0xe9, 0x93, 0xad, 0x01, 0xde, 0x92, 0x84, 0xba,
  3154. 0xaa, 0xf6, 0x32, 0x6c, 0x07, 0x6a, 0xec, 0x6c, 0x90, 0x78,
  3155. 0x2f, 0x0f, 0x3c, 0xe5, 0xa2, 0xf3, 0x92, 0xfa },
  3156. { 0x5a, 0x68, 0xbf, 0xa8, 0x4c, 0x5b, 0x71, 0xe0, 0x13, 0x4e,
  3157. 0xcf, 0x4b, 0x9c, 0x8e, 0xb9, 0xfb, 0x1d, 0xc8, 0x16, 0x8a,
  3158. 0x99, 0x2b, 0xcc, 0x2a, 0xca, 0x92, 0xe4, 0x84, 0x9b, 0x60,
  3159. 0x82, 0xa9, 0x73, 0x21, 0xbe, 0xb9, 0xa2, 0xb0, 0xab, 0xd2,
  3160. 0x6e, 0xea, 0x5e, 0x98, 0x38, 0xa5, 0xe3, 0x3d, 0x62, 0x6e,
  3161. 0xe7, 0x5f, 0xc4, 0x41, 0x32, 0x5c, 0xc4, 0x45, 0x1e, 0x9c,
  3162. 0xef, 0x10, 0x35, 0x50, 0xa9, 0xbe, 0x08, 0x0a, 0xcd, 0x50,
  3163. 0xe9, 0x6b, 0xba, 0x5b, 0xb4, 0xa8, 0x47, 0x47, 0x55, 0x73,
  3164. 0x20, 0xb8, 0x4f, 0xa8, 0x48, 0x0c, 0xb3, 0xae, 0xe3, 0x8c,
  3165. 0xb0, 0x9f, 0xdd, 0x98, 0xef, 0xec, 0x98, 0x21, 0xe1, 0xae,
  3166. 0xa3, 0x1e, 0x48, 0xc6, 0x97, 0xb4, 0x27, 0xb0, 0x44, 0xf0,
  3167. 0xa8, 0x28, 0xa4, 0xde, 0xd6, 0x9d, 0x87, 0x87, 0x2f, 0x98,
  3168. 0x44, 0x54, 0xdb, 0x31, 0x38, 0xf1, 0x97, 0xaa },
  3169. { 0x78, 0xac, 0xfd, 0xf9, 0x9f, 0x5e, 0xf4, 0x39, 0x56, 0xce,
  3170. 0x6e, 0xf7, 0xbe, 0xf1, 0x62, 0x8f, 0xd1, 0x5c, 0x8f, 0xa0,
  3171. 0xa6, 0x33, 0x7b, 0x7c, 0x4b, 0xc2, 0x4a, 0x46, 0x08, 0x5a,
  3172. 0xd5, 0xe7, 0xeb, 0x40, 0xb0, 0x45, 0x81, 0x89, 0x7b, 0xc1,
  3173. 0xff, 0x98, 0x2e, 0x0a, 0x0d, 0x5c, 0xa5, 0x77, 0x71, 0xe0,
  3174. 0xdc, 0x98, 0x40, 0x11, 0xa3, 0x96, 0x91, 0xca, 0x1e, 0x3a,
  3175. 0xb8, 0xcb, 0xbb, 0xec, 0x6a, 0xb3, 0x63, 0xa8, 0x50, 0x9b,
  3176. 0xef, 0x61, 0x48, 0x71, 0x54, 0x8a, 0xe2, 0x41, 0x8f, 0x2e,
  3177. 0x6a, 0x22, 0xf4, 0x93, 0xf4, 0xdb, 0x3c, 0x0e, 0x2f, 0x5a,
  3178. 0x24, 0x53, 0x02, 0x6d, 0x39, 0x17, 0xed, 0x16, 0x86, 0x5b,
  3179. 0x0d, 0x3b, 0x9d, 0x04, 0x14, 0xde, 0x58, 0x85, 0x5b, 0x1c,
  3180. 0x0c, 0x26, 0xd1, 0x05, 0xff, 0xf9, 0x55, 0x02, 0xf8, 0xb0,
  3181. 0xb4, 0xff, 0x3b, 0x45, 0xff, 0x0a, 0x2b, 0xfb },
  3182. { 0x0a, 0xd9, 0x2d, 0x73, 0xd0, 0x75, 0xa3, 0x66, 0x8c, 0xb4,
  3183. 0xb4, 0x8c, 0xb0, 0x61, 0xc9, 0x49, 0x6f, 0x10, 0xae, 0x0f,
  3184. 0x90, 0x8b, 0x4a, 0x29, 0x66, 0xbc, 0xb8, 0xf0, 0x8b, 0xaa,
  3185. 0x6e, 0xd2, 0xf2, 0x5c, 0x93, 0xf6, 0x90, 0xae, 0x48, 0x90,
  3186. 0x2d, 0xfc, 0x53, 0x32, 0x37, 0xde, 0x86, 0x1f, 0xe8, 0xda,
  3187. 0x25, 0x3c, 0xbf, 0x31, 0xbe, 0x71, 0x98, 0x62, 0xbb, 0x76,
  3188. 0xa0, 0x41, 0x23, 0x1a, 0x53, 0x81, 0x52, 0x18, 0xb8, 0x3a,
  3189. 0x58, 0xe0, 0xe2, 0x30, 0x6e, 0xa0, 0xae, 0x36, 0xb6, 0xf7,
  3190. 0xde, 0x76, 0xa1, 0x24, 0x05, 0xe9, 0xf1, 0x23, 0xcd, 0x93,
  3191. 0x39, 0x29, 0x48, 0x14, 0xcc, 0x52, 0xd2, 0xd6, 0x02, 0x67,
  3192. 0x1f, 0x4a, 0x34, 0x87, 0x39, 0xed, 0xc6, 0xb9, 0xdf, 0xa2,
  3193. 0x2e, 0x1b, 0x95, 0x42, 0x02, 0xa0, 0xc7, 0x7f, 0x61, 0xc4,
  3194. 0x45, 0xbf, 0x7f, 0x15, 0xf8, 0x52, 0x01, 0x89 },
  3195. { 0x95, 0xbb, 0xd8, 0xa0, 0x70, 0xa6, 0xe9, 0xae, 0x8e, 0xf4,
  3196. 0xdc, 0xaf, 0x07, 0x5b, 0x3c, 0xed, 0x1a, 0x4f, 0xe9, 0x34,
  3197. 0x27, 0x9a, 0xa6, 0x6b, 0x1b, 0x78, 0xb4, 0xba, 0x0b, 0x50,
  3198. 0xa9, 0xeb, 0x5e, 0xbf, 0x80, 0xb7, 0x94, 0xb9, 0x0b, 0xcf,
  3199. 0x08, 0xfa, 0x64, 0xd3, 0x46, 0x42, 0x10, 0x97, 0xdc, 0x2a,
  3200. 0xc1, 0x7b, 0xa3, 0xd7, 0xd8, 0x8f, 0xec, 0x1c, 0xcf, 0xd1,
  3201. 0x98, 0xc3, 0x11, 0x63, 0x9a, 0xdc, 0x51, 0x51, 0xb3, 0xae,
  3202. 0xd5, 0xf6, 0x3e, 0xf2, 0xcb, 0x4d, 0x4a, 0xeb, 0x7f, 0xe8,
  3203. 0xf2, 0x2a, 0x8f, 0x4b, 0x02, 0xf4, 0x01, 0x61, 0x84, 0x7b,
  3204. 0x79, 0x95, 0x13, 0xe6, 0x81, 0xed, 0xea, 0x3b, 0xe0, 0x93,
  3205. 0xd4, 0xbe, 0x89, 0x02, 0xbe, 0x99, 0x15, 0x4b, 0x34, 0x66,
  3206. 0xc2, 0x80, 0x47, 0x78, 0xc6, 0x20, 0x80, 0xcd, 0x89, 0xab,
  3207. 0xbf, 0xb9, 0x5f, 0xed, 0xc2, 0xca, 0x54, 0x8a },
  3208. { 0x37, 0x5a, 0x88, 0x4f, 0xc1, 0x25, 0xa9, 0x19, 0x48, 0x0d,
  3209. 0xc6, 0x6f, 0xb8, 0x86, 0x7a, 0x2a, 0xad, 0x14, 0x70, 0x59,
  3210. 0xf2, 0x0d, 0xfc, 0xf5, 0xa0, 0xa1, 0x0d, 0x6d, 0xdf, 0xb9,
  3211. 0xcf, 0x21, 0xe2, 0x9f, 0xb0, 0x60, 0x2a, 0xeb, 0xe4, 0x87,
  3212. 0xab, 0x1d, 0x86, 0xb7, 0x2a, 0x35, 0x94, 0x7f, 0x89, 0x30,
  3213. 0x53, 0xfc, 0xc0, 0x55, 0x4e, 0xc1, 0x69, 0xff, 0x35, 0xea,
  3214. 0x51, 0x4f, 0x5c, 0x04, 0xca, 0xc1, 0xe5, 0xd0, 0xbd, 0x07,
  3215. 0xd9, 0x0f, 0xfa, 0x42, 0x9c, 0x71, 0xe2, 0xf0, 0xe3, 0x89,
  3216. 0x07, 0x2b, 0xaa, 0x63, 0x5c, 0x16, 0xd3, 0x36, 0x31, 0x4e,
  3217. 0xf4, 0xe0, 0xaa, 0xde, 0x06, 0x6a, 0x2b, 0xfa, 0xaf, 0x47,
  3218. 0x8e, 0x83, 0x5c, 0x42, 0xe2, 0x47, 0xc9, 0xec, 0xfc, 0x1b,
  3219. 0xd6, 0xa7, 0x75, 0x67, 0xa8, 0x87, 0xb8, 0x23, 0xe3, 0x63,
  3220. 0x59, 0xf9, 0x24, 0x95, 0xe6, 0x14, 0xbb, 0xd0 },
  3221. { 0x26, 0x8d, 0x81, 0x8b, 0x08, 0xcb, 0x84, 0xec, 0x66, 0xbb,
  3222. 0x09, 0x3b, 0x38, 0x41, 0x53, 0x79, 0x9f, 0xe0, 0xdd, 0xa7,
  3223. 0x19, 0x68, 0x83, 0x8a, 0x01, 0xcd, 0xcd, 0xe2, 0x4f, 0xd1,
  3224. 0x2a, 0xdb, 0xde, 0xc7, 0x5c, 0x81, 0xaf, 0xa6, 0x3c, 0x55,
  3225. 0xc7, 0x30, 0x3c, 0x80, 0x1e, 0xaa, 0x8c, 0x47, 0x26, 0xaa,
  3226. 0x69, 0xea, 0x60, 0x79, 0xc9, 0xa0, 0xfd, 0x97, 0xfb, 0xb0,
  3227. 0xb9, 0x1a, 0x67, 0x63, 0xfd, 0xf3, 0x67, 0x63, 0x54, 0x1e,
  3228. 0x06, 0x67, 0xb9, 0x3e, 0xd9, 0xc9, 0x2f, 0x1c, 0x59, 0x50,
  3229. 0x40, 0x32, 0x5f, 0x99, 0xc8, 0xd3, 0x06, 0x68, 0xba, 0xeb,
  3230. 0xc6, 0x64, 0xd1, 0x3a, 0x0d, 0x86, 0x67, 0x88, 0x64, 0xa0,
  3231. 0xe4, 0xfd, 0x73, 0xca, 0xf7, 0x70, 0x7e, 0xc0, 0x1b, 0xdb,
  3232. 0x1a, 0x54, 0x1a, 0x16, 0x1e, 0x2a, 0x87, 0x5c, 0x6d, 0xab,
  3233. 0x17, 0x8c, 0xbe, 0x2e, 0x12, 0x17, 0xf7, 0xea },
  3234. { 0x8b, 0x02, 0x73, 0x5c, 0x05, 0x6c, 0xa4, 0x4b, 0x84, 0x19,
  3235. 0xed, 0x4b, 0x01, 0xb5, 0x3a, 0x56, 0x3e, 0xb9, 0x3b, 0x33,
  3236. 0x4f, 0x5f, 0x2b, 0xf5, 0x11, 0x71, 0xfe, 0x3c, 0x44, 0x35,
  3237. 0x51, 0x6a, 0xe2, 0x4c, 0x02, 0x8a, 0x2e, 0x7a, 0x20, 0x8e,
  3238. 0x81, 0x6b, 0x63, 0x3a, 0x0f, 0x97, 0x91, 0x89, 0x88, 0x3f,
  3239. 0xad, 0x37, 0xbd, 0x70, 0x7c, 0x2e, 0xa5, 0xe7, 0x7e, 0xed,
  3240. 0x3a, 0x7d, 0x83, 0x75, 0x86, 0xef, 0x4e, 0xdb, 0x33, 0x9e,
  3241. 0x4a, 0x78, 0x7f, 0x7d, 0x31, 0x64, 0x2b, 0x72, 0x01, 0x40,
  3242. 0xb5, 0xae, 0x04, 0xe4, 0x64, 0x38, 0xd7, 0xee, 0x37, 0xb0,
  3243. 0xcb, 0x5b, 0x9f, 0xa8, 0xe0, 0x66, 0xda, 0x40, 0x99, 0xf2,
  3244. 0xb2, 0x4e, 0xe9, 0xde, 0x24, 0x0c, 0x10, 0x13, 0xbe, 0xcc,
  3245. 0xc1, 0xab, 0x4f, 0xc3, 0x2e, 0x67, 0x47, 0x3d, 0x10, 0x3b,
  3246. 0x73, 0xda, 0xe3, 0x58, 0x41, 0x58, 0x05, 0x55 },
  3247. { 0x40, 0x0e, 0x3a, 0xa0, 0x4b, 0x4d, 0x85, 0xfe, 0x5a, 0xb4,
  3248. 0x5c, 0x3f, 0x04, 0x36, 0x50, 0x42, 0x58, 0x22, 0xa7, 0x82,
  3249. 0xfd, 0x35, 0x40, 0xd8, 0xb3, 0x2e, 0xcf, 0x7e, 0x58, 0x77,
  3250. 0x3d, 0x4c, 0xf5, 0x71, 0xff, 0xdb, 0xc3, 0x00, 0x6c, 0x0d,
  3251. 0xd1, 0xf0, 0x02, 0x4c, 0x8a, 0x0c, 0x81, 0x82, 0x3e, 0x14,
  3252. 0x9a, 0xf9, 0x5e, 0x98, 0x97, 0x34, 0x16, 0x7d, 0x82, 0x81,
  3253. 0xd7, 0xe3, 0xad, 0x1b, 0xba, 0xe6, 0xc7, 0xfe, 0x8e, 0x1b,
  3254. 0x76, 0xc2, 0xd9, 0x55, 0x2d, 0x19, 0xaf, 0xbc, 0xe2, 0x65,
  3255. 0x97, 0xc6, 0x76, 0x8e, 0xe6, 0x49, 0x1f, 0xfe, 0x48, 0x5d,
  3256. 0x7a, 0xb4, 0x0d, 0x99, 0x5b, 0xc9, 0xec, 0x71, 0xbc, 0x5a,
  3257. 0x91, 0xbd, 0xf9, 0x2f, 0xac, 0x12, 0x0e, 0x6e, 0x2b, 0xfc,
  3258. 0x3b, 0x21, 0x1d, 0xe4, 0xc0, 0x26, 0xf3, 0xfc, 0x28, 0xc1,
  3259. 0xb8, 0x9b, 0xb4, 0x64, 0xe1, 0x01, 0x91, 0x95 },
  3260. { 0x13, 0x1c, 0x3d, 0xa2, 0x8d, 0xa6, 0xe0, 0x39, 0x4a, 0x42,
  3261. 0xb9, 0xac, 0xf3, 0xa6, 0xa1, 0x98, 0x36, 0x2f, 0x76, 0x47,
  3262. 0xad, 0xaf, 0x1f, 0x4d, 0x09, 0xc1, 0x57, 0xd4, 0x4a, 0x13,
  3263. 0x00, 0x9b, 0xc8, 0x07, 0xc7, 0x79, 0x96, 0x71, 0x85, 0xb1,
  3264. 0x27, 0xc3, 0xe0, 0x32, 0x67, 0xcb, 0x58, 0x6f, 0x3e, 0xd3,
  3265. 0x50, 0xb9, 0xf1, 0x64, 0x51, 0xa7, 0xa3, 0xc2, 0x85, 0x06,
  3266. 0xc8, 0x9f, 0xc3, 0xf5, 0xfe, 0xd6, 0x60, 0xd5, 0x06, 0x21,
  3267. 0xa9, 0x9b, 0xff, 0x38, 0x67, 0xb8, 0xa5, 0x01, 0x22, 0x96,
  3268. 0x65, 0xb2, 0x2e, 0xc9, 0x73, 0xc2, 0x53, 0xdb, 0xda, 0x17,
  3269. 0xc4, 0x1b, 0xc5, 0x10, 0x7a, 0xb7, 0x5e, 0x13, 0xaa, 0xc3,
  3270. 0xe5, 0xe0, 0xac, 0x2e, 0x65, 0x92, 0x23, 0xb1, 0xc6, 0x0e,
  3271. 0xc7, 0x7d, 0x37, 0xa2, 0xed, 0x64, 0x24, 0x13, 0x60, 0x74,
  3272. 0x47, 0x32, 0x16, 0x49, 0x5e, 0x46, 0xe4, 0xa2 },
  3273. { 0x71, 0xd1, 0xa4, 0x6a, 0x34, 0x54, 0x5c, 0xe9, 0xde, 0x80,
  3274. 0x98, 0xad, 0x44, 0xaa, 0x0f, 0xf0, 0xb9, 0x20, 0xaa, 0xc1,
  3275. 0xb2, 0xc1, 0x76, 0x15, 0xa7, 0xc0, 0x74, 0xf1, 0x1c, 0xb0,
  3276. 0xe8, 0xff, 0x13, 0x15, 0x14, 0xd7, 0x5d, 0x75, 0xf1, 0x54,
  3277. 0x6b, 0x79, 0xcf, 0x97, 0xc4, 0xc6, 0x90, 0xc9, 0x0f, 0xf7,
  3278. 0x83, 0x8b, 0x9d, 0xf1, 0xe7, 0xc8, 0x06, 0x0c, 0xa4, 0xdf,
  3279. 0xcb, 0x02, 0xdb, 0x90, 0x60, 0xc2, 0x61, 0xaf, 0x73, 0x0e,
  3280. 0x83, 0xfd, 0x19, 0x8c, 0x44, 0x4b, 0xf4, 0xc2, 0x08, 0x3c,
  3281. 0x99, 0xbb, 0x45, 0x04, 0xcd, 0x3b, 0x2f, 0x32, 0x3d, 0x32,
  3282. 0xd6, 0x10, 0xfd, 0xa2, 0x51, 0xb9, 0xc5, 0x8d, 0x41, 0x1a,
  3283. 0x80, 0xf5, 0xf4, 0xa2, 0x7c, 0x08, 0x99, 0xbd, 0xec, 0x03,
  3284. 0xf8, 0x12, 0xf4, 0x15, 0xb4, 0x25, 0xd0, 0x4f, 0x44, 0x36,
  3285. 0x4a, 0x78, 0x5f, 0xf1, 0xa7, 0xda, 0x83, 0xba },
  3286. { 0x6c, 0xd2, 0x69, 0x9f, 0x11, 0x67, 0xf5, 0x21, 0xb9, 0x5c,
  3287. 0xc4, 0x16, 0x53, 0x3d, 0x0a, 0xcb, 0x39, 0x64, 0xff, 0x3a,
  3288. 0x24, 0xc5, 0x2d, 0x4b, 0x3e, 0x90, 0xd7, 0x16, 0x36, 0x48,
  3289. 0xfa, 0xb9, 0x00, 0x8e, 0xab, 0xdf, 0x32, 0x5f, 0xc1, 0x3a,
  3290. 0xd8, 0xcc, 0xf9, 0x0c, 0x17, 0xd3, 0xb6, 0xd5, 0x82, 0x4f,
  3291. 0xda, 0xdd, 0x5e, 0x4d, 0x60, 0xf6, 0x0f, 0x47, 0xb3, 0xa8,
  3292. 0x4f, 0x78, 0x54, 0x0b, 0xc3, 0xb4, 0x4a, 0x85, 0x60, 0xa4,
  3293. 0x56, 0x41, 0x1f, 0x65, 0xda, 0xfd, 0x6e, 0x65, 0xe3, 0xd7,
  3294. 0xf6, 0x37, 0xa5, 0x88, 0x79, 0x3c, 0xec, 0xcf, 0xc5, 0x41,
  3295. 0x0d, 0xb6, 0xca, 0x3b, 0xed, 0x06, 0x27, 0xd3, 0x8b, 0xa4,
  3296. 0x8d, 0x72, 0x62, 0x2c, 0xaa, 0x5a, 0xab, 0x2a, 0xc5, 0xd4,
  3297. 0xd1, 0x30, 0xa0, 0xd8, 0xec, 0xc3, 0x77, 0x2d, 0xda, 0x0d,
  3298. 0x76, 0x17, 0x8f, 0x76, 0xfa, 0x1b, 0x38, 0x2e },
  3299. { 0x32, 0x7c, 0x06, 0x3f, 0xda, 0x34, 0x5d, 0xc2, 0x19, 0xee,
  3300. 0xe2, 0x74, 0xc7, 0xee, 0xb8, 0x26, 0xfa, 0x2e, 0xfc, 0xb8,
  3301. 0x6c, 0x88, 0xc9, 0x65, 0xe8, 0xf0, 0x37, 0x42, 0x30, 0xab,
  3302. 0x19, 0x6f, 0x93, 0x38, 0xc3, 0x4d, 0xf2, 0x73, 0x55, 0x69,
  3303. 0x4b, 0x4b, 0x19, 0xa6, 0xc6, 0x1a, 0x04, 0xbc, 0x0d, 0xe4,
  3304. 0x17, 0xeb, 0xe2, 0xba, 0xc3, 0x9b, 0xd3, 0x0f, 0xe4, 0x0b,
  3305. 0xa5, 0x8a, 0xcb, 0xb4, 0x7b, 0xbd, 0xc7, 0x49, 0x16, 0xab,
  3306. 0x7b, 0x5e, 0xe1, 0x5f, 0x28, 0x2c, 0x08, 0x7a, 0xda, 0xdd,
  3307. 0x89, 0x27, 0x95, 0xa7, 0x58, 0x57, 0x42, 0xf2, 0xeb, 0x70,
  3308. 0x93, 0xd0, 0xcd, 0x8f, 0x14, 0x42, 0x22, 0xdd, 0x68, 0x93,
  3309. 0x7c, 0x5a, 0x8c, 0x82, 0x54, 0x00, 0x34, 0xf8, 0x30, 0xf3,
  3310. 0x73, 0x26, 0xb0, 0x3d, 0xcf, 0xe2, 0x99, 0xd1, 0xbd, 0xfb,
  3311. 0x2d, 0x8c, 0x0b, 0x3b, 0x12, 0xf4, 0xf3, 0xac },
  3312. { 0x02, 0x0f, 0x19, 0xd1, 0xc0, 0xdf, 0x68, 0x56, 0xeb, 0x6b,
  3313. 0x9d, 0x2a, 0x36, 0x70, 0x11, 0x2c, 0x9a, 0xfb, 0xa8, 0x22,
  3314. 0x48, 0xb0, 0x1a, 0xf2, 0x7a, 0x42, 0xa9, 0x4b, 0xda, 0x5f,
  3315. 0xa5, 0xbf, 0x1a, 0xf4, 0xc4, 0x96, 0x6c, 0x27, 0xb8, 0x3b,
  3316. 0x72, 0xaa, 0x22, 0xb2, 0xee, 0xcb, 0x4f, 0x87, 0x06, 0x23,
  3317. 0xa1, 0xfe, 0x39, 0xf3, 0xcd, 0x22, 0x1b, 0xe4, 0xe0, 0x59,
  3318. 0x93, 0xb4, 0x87, 0x80, 0x37, 0x04, 0x00, 0xf2, 0x13, 0x0b,
  3319. 0xfb, 0x7c, 0xd1, 0x59, 0x50, 0x9e, 0xda, 0x81, 0x33, 0x36,
  3320. 0xe5, 0x8d, 0xfc, 0xc8, 0x36, 0x6d, 0x6a, 0x5f, 0xc4, 0x21,
  3321. 0x6b, 0x79, 0x02, 0x2d, 0xe2, 0x71, 0xc3, 0xe7, 0xc2, 0xaa,
  3322. 0xb1, 0xc2, 0x5a, 0x16, 0xe6, 0x4e, 0xcc, 0x7b, 0x14, 0x02,
  3323. 0xa8, 0x66, 0xbb, 0xe9, 0x86, 0x9d, 0x19, 0x43, 0xae, 0xfe,
  3324. 0xab, 0x39, 0x9e, 0xff, 0x5b, 0x47, 0xcd, 0x53 },
  3325. { 0x79, 0xe7, 0x27, 0x20, 0xb0, 0x05, 0x05, 0x44, 0xf7, 0x57,
  3326. 0xe1, 0xff, 0x0c, 0x88, 0x8f, 0x60, 0x99, 0xd0, 0x90, 0xeb,
  3327. 0xac, 0xca, 0x11, 0x60, 0x54, 0xb0, 0x09, 0x2a, 0xf1, 0x8a,
  3328. 0x07, 0x70, 0x26, 0x27, 0x43, 0x86, 0x8b, 0x4f, 0x6b, 0xba,
  3329. 0x47, 0x69, 0x9e, 0xbe, 0x72, 0x0c, 0x3a, 0xdb, 0x91, 0x60,
  3330. 0x58, 0xec, 0x5b, 0x23, 0x17, 0x27, 0x5f, 0xba, 0x16, 0xd3,
  3331. 0xcc, 0xdd, 0xef, 0xce, 0x79, 0xfb, 0xbf, 0xd3, 0xa3, 0xd0,
  3332. 0x57, 0xcf, 0xe3, 0x7e, 0xe2, 0xf2, 0x4c, 0xd6, 0x11, 0x47,
  3333. 0x3b, 0x93, 0x7e, 0xe3, 0x3a, 0x48, 0x62, 0x68, 0xe9, 0xff,
  3334. 0x02, 0x3d, 0x10, 0x28, 0x5a, 0x24, 0x94, 0x40, 0x30, 0x2d,
  3335. 0xd2, 0xbc, 0xcc, 0x4d, 0x9a, 0x78, 0x0a, 0x19, 0xe6, 0x52,
  3336. 0x58, 0x40, 0xb6, 0x18, 0xeb, 0xc6, 0xdb, 0x1d, 0xe5, 0xc5,
  3337. 0x37, 0x05, 0x1a, 0x86, 0xa4, 0xdb, 0xba, 0x20 },
  3338. { 0x00, 0x1d, 0x3c, 0xe3, 0x70, 0x15, 0x84, 0x6d, 0xe4, 0x28,
  3339. 0xb2, 0xb5, 0x95, 0x11, 0xa0, 0x56, 0xa4, 0x48, 0x79, 0x27,
  3340. 0x38, 0xa1, 0x93, 0x9d, 0x37, 0xaf, 0x7f, 0x83, 0xfb, 0xd1,
  3341. 0x5e, 0x05, 0xe9, 0xb5, 0xbb, 0x45, 0x2a, 0x9f, 0x55, 0x8c,
  3342. 0x58, 0xda, 0xa7, 0x3a, 0xa1, 0x26, 0x85, 0x1c, 0x14, 0xa3,
  3343. 0x85, 0x4e, 0xcb, 0xc5, 0x38, 0xf9, 0x70, 0xc7, 0x9c, 0x56,
  3344. 0x66, 0xcd, 0xbd, 0x8d, 0xe9, 0x61, 0xaf, 0x3e, 0x77, 0x43,
  3345. 0xa9, 0x85, 0xf2, 0x52, 0xca, 0x0c, 0x78, 0x93, 0x75, 0xa1,
  3346. 0x9f, 0x29, 0xd9, 0x7b, 0xde, 0x16, 0x67, 0x6f, 0x54, 0x84,
  3347. 0x55, 0xa0, 0xb9, 0x80, 0x44, 0x6d, 0xd2, 0x45, 0x3c, 0x39,
  3348. 0x5a, 0x3e, 0xe7, 0xaa, 0xd6, 0x1f, 0xd6, 0xba, 0x48, 0xc0,
  3349. 0xa1, 0xdf, 0xb1, 0xa3, 0x97, 0x4e, 0xaa, 0xe6, 0xb3, 0x10,
  3350. 0x63, 0x2a, 0xcf, 0x25, 0x28, 0x20, 0xa2, 0x39 },
  3351. { 0x4b, 0xb8, 0xc6, 0xfc, 0x40, 0xaf, 0xc6, 0x84, 0xb3, 0x28,
  3352. 0x03, 0x60, 0x79, 0x0b, 0x7a, 0x04, 0x05, 0x75, 0x90, 0x47,
  3353. 0xfc, 0x58, 0x5e, 0x46, 0x07, 0x1b, 0xd5, 0xfc, 0x11, 0xd4,
  3354. 0x01, 0x94, 0x34, 0xcc, 0x13, 0x4a, 0xfc, 0xd2, 0xc4, 0x04,
  3355. 0xe7, 0x36, 0x94, 0xbc, 0xf3, 0x69, 0x3a, 0x18, 0xcc, 0x12,
  3356. 0xa4, 0x9d, 0x56, 0x83, 0x3e, 0xdc, 0x65, 0xed, 0x39, 0xc7,
  3357. 0x59, 0x4d, 0x02, 0xb3, 0xb4, 0xc8, 0x0e, 0x2f, 0xff, 0xb8,
  3358. 0x16, 0x5d, 0x91, 0xcd, 0xd7, 0x54, 0x75, 0x0f, 0x28, 0xe4,
  3359. 0xb1, 0xa1, 0xf7, 0x0b, 0x51, 0x2f, 0x79, 0x7c, 0xa5, 0xab,
  3360. 0x62, 0xb8, 0xd9, 0x08, 0x97, 0xb1, 0x95, 0x10, 0x44, 0xe6,
  3361. 0xc3, 0x43, 0xf5, 0x39, 0x2e, 0x56, 0x2e, 0x7d, 0xe7, 0xc0,
  3362. 0xf6, 0xdb, 0xf3, 0xe3, 0x93, 0x8a, 0x00, 0x9c, 0x56, 0x64,
  3363. 0xd6, 0xbe, 0x36, 0xb9, 0xe1, 0x45, 0xb1, 0xd7 },
  3364. { 0x36, 0x99, 0xa8, 0x81, 0xb6, 0xa7, 0x7e, 0x78, 0x2e, 0x8f,
  3365. 0xea, 0x9e, 0x9a, 0x13, 0x5d, 0x89, 0xd4, 0xf9, 0xcf, 0xa5,
  3366. 0x6c, 0x43, 0x28, 0x27, 0x99, 0xa3, 0xe8, 0x8d, 0x10, 0xff,
  3367. 0xa6, 0x90, 0xc0, 0x3f, 0x5d, 0xf9, 0x59, 0x12, 0x0b, 0xfc,
  3368. 0x56, 0x96, 0xd5, 0x45, 0x36, 0xd5, 0x05, 0x29, 0xac, 0xd1,
  3369. 0xd6, 0xf2, 0x70, 0x9d, 0xc5, 0x90, 0x86, 0x0c, 0x21, 0x8a,
  3370. 0xc8, 0x2c, 0x9c, 0x16, 0x2f, 0x12, 0x4e, 0x3b, 0x29, 0x35,
  3371. 0x19, 0xeb, 0xeb, 0x8a, 0xf4, 0x44, 0x01, 0x99, 0xb5, 0x3c,
  3372. 0x48, 0x7f, 0xe9, 0xcd, 0x9f, 0xeb, 0xc0, 0x05, 0x39, 0xe4,
  3373. 0xec, 0xf0, 0x8c, 0xb8, 0x14, 0x39, 0x37, 0xe5, 0xb6, 0xd6,
  3374. 0x60, 0x07, 0x27, 0x3b, 0xfe, 0xa3, 0x66, 0xc0, 0xa9, 0x36,
  3375. 0x9c, 0x6e, 0x69, 0x68, 0xa4, 0x0d, 0xb1, 0x33, 0xc9, 0xde,
  3376. 0x31, 0x20, 0xe2, 0xdd, 0xfd, 0x0f, 0x87, 0x96 },
  3377. { 0x4f, 0x3a, 0x4b, 0x03, 0x20, 0x8a, 0xff, 0x8b, 0x1d, 0xf0,
  3378. 0x8e, 0x9f, 0x82, 0x53, 0x51, 0x87, 0x72, 0x71, 0xf3, 0x9e,
  3379. 0x5e, 0xc3, 0x1c, 0xaa, 0xca, 0x94, 0x75, 0xe9, 0x78, 0x1c,
  3380. 0xb4, 0x73, 0xb9, 0xe0, 0x8e, 0xc0, 0x3d, 0x7a, 0x4d, 0x52,
  3381. 0x83, 0x8d, 0xaa, 0x54, 0xd3, 0xb7, 0xc2, 0x35, 0xee, 0x2c,
  3382. 0xd2, 0x0d, 0x6a, 0x8d, 0x4f, 0x9f, 0x8c, 0x23, 0xc2, 0x5f,
  3383. 0x14, 0x26, 0xa8, 0x0d, 0x79, 0x5e, 0xc6, 0xcb, 0xc5, 0xe6,
  3384. 0x7c, 0x02, 0x94, 0xdb, 0xdf, 0xe2, 0xe9, 0xac, 0x3a, 0x75,
  3385. 0x82, 0xc5, 0x3a, 0x7e, 0x88, 0x34, 0xe9, 0xc5, 0xcb, 0xde,
  3386. 0x41, 0x6e, 0x20, 0x58, 0xb3, 0x7f, 0x06, 0xc1, 0x71, 0x51,
  3387. 0x4f, 0x7c, 0xbf, 0x4d, 0xb7, 0xe2, 0xe9, 0xb3, 0x65, 0x37,
  3388. 0x10, 0x6f, 0xe9, 0xcf, 0x3a, 0x2d, 0xf1, 0xd2, 0x81, 0x54,
  3389. 0x5b, 0xca, 0x33, 0x72, 0x1e, 0xb1, 0xc6, 0x4d },
  3390. { 0x6d, 0x87, 0x44, 0x46, 0xa6, 0xd1, 0x79, 0xfd, 0x9e, 0x52,
  3391. 0x5c, 0x03, 0x0b, 0x5a, 0x7b, 0x80, 0x44, 0xf2, 0x4f, 0x4a,
  3392. 0x52, 0xae, 0x84, 0xdb, 0x49, 0xbe, 0x1c, 0x18, 0x7a, 0x02,
  3393. 0x32, 0x5e, 0x13, 0x15, 0x2b, 0x3e, 0xb0, 0x20, 0x60, 0x7a,
  3394. 0x56, 0xd7, 0x14, 0xab, 0xd1, 0x04, 0x9d, 0xf4, 0xc4, 0x3d,
  3395. 0x54, 0xfa, 0x5a, 0xc4, 0x88, 0xaa, 0x9f, 0x53, 0x59, 0xfd,
  3396. 0xdf, 0x86, 0xe0, 0xa2, 0xf9, 0x60, 0x38, 0x68, 0x6d, 0xf2,
  3397. 0x0d, 0x7c, 0xb4, 0xec, 0xd5, 0xdb, 0xd7, 0x2b, 0x21, 0xc1,
  3398. 0x24, 0x54, 0xbb, 0x9c, 0x42, 0x1e, 0xec, 0x37, 0xb9, 0x63,
  3399. 0x4a, 0x97, 0xe3, 0xe0, 0xf1, 0x6e, 0xb1, 0x14, 0x63, 0x4e,
  3400. 0x07, 0xd8, 0xe3, 0x11, 0x8b, 0x0f, 0x98, 0x52, 0xaf, 0xb3,
  3401. 0x6d, 0x1d, 0x23, 0xe3, 0x7f, 0xa6, 0xda, 0x22, 0x6d, 0x4e,
  3402. 0x0f, 0x7b, 0x81, 0x07, 0x1e, 0xd0, 0x95, 0xf8 },
  3403. { 0x3c, 0xf3, 0x84, 0xc9, 0xff, 0x9c, 0x56, 0x09, 0x95, 0xa4,
  3404. 0xac, 0xa9, 0x7b, 0xb7, 0x0f, 0x3d, 0x95, 0xa3, 0x97, 0x34,
  3405. 0x90, 0x4f, 0xc5, 0x31, 0x17, 0xf5, 0x14, 0xad, 0x07, 0xac,
  3406. 0x75, 0x9d, 0x0f, 0x5d, 0x79, 0x1f, 0xaf, 0x08, 0x48, 0xbc,
  3407. 0x5c, 0xaa, 0xc2, 0x70, 0x7d, 0xeb, 0x85, 0x80, 0xa0, 0xed,
  3408. 0xc4, 0xa7, 0x42, 0xc1, 0xd2, 0x13, 0xe0, 0x3f, 0x1f, 0x34,
  3409. 0xf3, 0xfd, 0x3b, 0x74, 0x6e, 0x1a, 0x0f, 0x01, 0xf5, 0x7f,
  3410. 0x7c, 0xeb, 0x27, 0xfb, 0xa8, 0x76, 0xcf, 0x28, 0xcc, 0xc2,
  3411. 0x05, 0xf6, 0xdf, 0x92, 0x31, 0xae, 0x94, 0xe4, 0x99, 0xc2,
  3412. 0xb4, 0xdc, 0xf8, 0xd4, 0x4f, 0x12, 0x4e, 0x19, 0xe0, 0xdf,
  3413. 0x88, 0xfe, 0xe9, 0x1a, 0x71, 0xa7, 0x5a, 0x6d, 0x9d, 0xc6,
  3414. 0x9e, 0xa1, 0x1f, 0xd5, 0x31, 0x6c, 0x37, 0x81, 0xcc, 0xc8,
  3415. 0xd2, 0x9d, 0x07, 0xaa, 0xbe, 0x9a, 0x42, 0xf5 },
  3416. { 0x2b, 0x24, 0x88, 0x50, 0xee, 0x73, 0xdf, 0x26, 0x3c, 0x67,
  3417. 0xe7, 0x3c, 0x71, 0x03, 0x07, 0x70, 0x8c, 0x8c, 0x54, 0x05,
  3418. 0xd8, 0x56, 0x0a, 0x65, 0x26, 0x48, 0x28, 0xd9, 0xd4, 0x55,
  3419. 0xe8, 0x20, 0x85, 0x52, 0x5d, 0x65, 0xbe, 0x99, 0xa6, 0x08,
  3420. 0x09, 0x98, 0x06, 0xbb, 0x74, 0x7e, 0x5d, 0x2a, 0xf4, 0xd9,
  3421. 0x7a, 0xfb, 0x14, 0x83, 0x21, 0xbd, 0xf3, 0x80, 0xfc, 0xb5,
  3422. 0x05, 0xe4, 0x51, 0xe9, 0x51, 0x17, 0x4e, 0x1a, 0x57, 0x7b,
  3423. 0x24, 0xf4, 0xb6, 0xc5, 0xd9, 0x91, 0x62, 0x93, 0x62, 0xe1,
  3424. 0x1e, 0xf3, 0x39, 0xb7, 0xfe, 0x24, 0xf3, 0x9a, 0x90, 0x58,
  3425. 0x0b, 0x90, 0xce, 0x26, 0xa8, 0xe1, 0xca, 0x86, 0x02, 0xa8,
  3426. 0x79, 0xb2, 0x09, 0xf7, 0x2b, 0x4a, 0x1b, 0x8d, 0xe7, 0x2b,
  3427. 0xf7, 0xb3, 0x49, 0x72, 0x17, 0x42, 0x67, 0x6b, 0x03, 0x99,
  3428. 0x70, 0x05, 0x06, 0xba, 0xce, 0x1f, 0xc9, 0xe3 },
  3429. { 0x93, 0x8b, 0x3b, 0xcc, 0x6a, 0x3a, 0xc2, 0x15, 0x17, 0x26,
  3430. 0x1e, 0xce, 0x74, 0x41, 0x4a, 0x1c, 0xa1, 0x08, 0xb5, 0x4d,
  3431. 0x1d, 0x46, 0x21, 0xd1, 0x52, 0x48, 0x67, 0x58, 0xe8, 0x1b,
  3432. 0x0d, 0xf0, 0xac, 0x07, 0xf2, 0xa3, 0x73, 0xce, 0x49, 0xe8,
  3433. 0xb2, 0xf9, 0xd4, 0x41, 0xc1, 0x26, 0xbc, 0xbe, 0x63, 0x48,
  3434. 0xf7, 0xf2, 0xe6, 0x6c, 0x66, 0xf6, 0x4b, 0x90, 0x36, 0x3d,
  3435. 0x74, 0xc6, 0x69, 0x75, 0x12, 0x48, 0xc5, 0x8f, 0x62, 0xd8,
  3436. 0x43, 0xb9, 0x6c, 0x56, 0xb8, 0xef, 0x81, 0x0f, 0xcc, 0x6c,
  3437. 0xdb, 0x0e, 0x58, 0x7c, 0xb5, 0xed, 0x29, 0x45, 0x07, 0x1a,
  3438. 0x02, 0x10, 0xa6, 0xb2, 0x34, 0x4a, 0x52, 0xc2, 0x07, 0xd6,
  3439. 0xa8, 0xb2, 0x3e, 0x40, 0x07, 0xa2, 0x86, 0x19, 0x1f, 0x2c,
  3440. 0xa1, 0xc7, 0x78, 0x22, 0x4c, 0x18, 0x4f, 0xb4, 0x10, 0xb2,
  3441. 0x21, 0x73, 0xcd, 0xe6, 0x85, 0x41, 0x15, 0x9f },
  3442. { 0x6c, 0xff, 0x58, 0xa5, 0xd9, 0xe8, 0x9d, 0x6b, 0x24, 0xe8,
  3443. 0xc9, 0xed, 0x15, 0x30, 0x73, 0x41, 0x98, 0x47, 0x46, 0x07,
  3444. 0x84, 0xe8, 0x3c, 0x06, 0x8a, 0xe7, 0xe0, 0xe8, 0xf2, 0xda,
  3445. 0xce, 0x56, 0x79, 0x70, 0x17, 0x9b, 0x93, 0x74, 0x7e, 0xa5,
  3446. 0x60, 0xf7, 0xa1, 0xb5, 0xa5, 0x5b, 0x44, 0xb7, 0xae, 0x46,
  3447. 0x55, 0xe5, 0x74, 0xd6, 0xeb, 0x5f, 0xb5, 0x66, 0xb7, 0x90,
  3448. 0x92, 0x53, 0x3d, 0x97, 0x74, 0x02, 0x05, 0x76, 0x56, 0xf7,
  3449. 0x6d, 0x5f, 0x81, 0x8c, 0x2a, 0xec, 0xf5, 0x54, 0x2d, 0xf5,
  3450. 0xe6, 0x0f, 0xb6, 0x1a, 0xda, 0x0b, 0xb6, 0x4c, 0xf3, 0x04,
  3451. 0xfc, 0x58, 0x49, 0x10, 0x1b, 0x06, 0x1c, 0x3a, 0x04, 0x34,
  3452. 0xaa, 0xa6, 0x57, 0xa9, 0x97, 0x08, 0x96, 0x06, 0xdc, 0xd7,
  3453. 0x3a, 0xcb, 0x8e, 0x65, 0xfb, 0x2a, 0x80, 0xe8, 0x80, 0x36,
  3454. 0xa9, 0xe4, 0xa1, 0x6b, 0xe4, 0xde, 0xd3, 0x40 },
  3455. { 0x5f, 0xe4, 0xac, 0x8f, 0x31, 0xb7, 0x93, 0x27, 0x5f, 0x67,
  3456. 0xf8, 0xaa, 0xeb, 0x93, 0x6a, 0xf7, 0x3c, 0x62, 0x7f, 0xc5,
  3457. 0x48, 0x63, 0xb3, 0xac, 0xc3, 0x3f, 0x83, 0xd8, 0x04, 0x6e,
  3458. 0x2e, 0x48, 0x7f, 0xa8, 0x47, 0xe6, 0x6e, 0xc1, 0x3f, 0x84,
  3459. 0x13, 0x3d, 0x54, 0x44, 0xcc, 0xc8, 0xc7, 0xdf, 0xb1, 0xd4,
  3460. 0x04, 0xdc, 0x38, 0xd3, 0x17, 0xe0, 0x0b, 0x68, 0x0b, 0x0a,
  3461. 0xff, 0x18, 0x20, 0xb8, 0xfb, 0xbb, 0x2f, 0xa6, 0xd0, 0x23,
  3462. 0x3f, 0xdc, 0x35, 0x00, 0x10, 0x13, 0x80, 0x9f, 0x50, 0xf4,
  3463. 0x05, 0x5c, 0x3b, 0x1e, 0x9b, 0x45, 0x38, 0x96, 0xd1, 0x48,
  3464. 0x46, 0x7d, 0x60, 0x7d, 0x97, 0x98, 0x25, 0x5e, 0x90, 0x7a,
  3465. 0x03, 0xe4, 0x15, 0xb7, 0xf7, 0x99, 0x8d, 0x0b, 0x09, 0xbd,
  3466. 0x88, 0x05, 0xe1, 0xd1, 0xf2, 0x25, 0x1d, 0x2f, 0xe7, 0xd6,
  3467. 0x50, 0x8c, 0x01, 0xb0, 0x03, 0xe5, 0x1f, 0x68 },
  3468. { 0x81, 0x37, 0x71, 0x64, 0x12, 0x1c, 0x05, 0x48, 0x20, 0x93,
  3469. 0x1c, 0x89, 0xeb, 0x2a, 0xbd, 0xad, 0x86, 0xe2, 0x54, 0xc9,
  3470. 0x69, 0x77, 0xa4, 0x20, 0x29, 0x0d, 0x95, 0xf2, 0x20, 0x10,
  3471. 0xf2, 0xe7, 0x8d, 0xcc, 0x0c, 0x42, 0x49, 0xa2, 0x78, 0x64,
  3472. 0x69, 0xc9, 0xcf, 0xb0, 0xb1, 0x84, 0xce, 0xe8, 0xdd, 0x8d,
  3473. 0xec, 0x2b, 0x34, 0xe7, 0xe7, 0x12, 0x55, 0xc3, 0x85, 0x93,
  3474. 0x00, 0xbb, 0x42, 0xdc, 0xba, 0xfc, 0x1d, 0x34, 0x6b, 0x83,
  3475. 0xe9, 0x5c, 0x18, 0x63, 0x7c, 0x7c, 0x7f, 0xef, 0x96, 0xd0,
  3476. 0x06, 0x6c, 0x55, 0xfb, 0x99, 0xa4, 0x6e, 0xaf, 0x54, 0x54,
  3477. 0xa7, 0xd4, 0x69, 0x37, 0x1c, 0x95, 0xfd, 0xd1, 0x1f, 0x04,
  3478. 0x9c, 0x22, 0xbc, 0xd4, 0x7b, 0x01, 0x87, 0x26, 0x6f, 0xb0,
  3479. 0x7b, 0x4a, 0x05, 0xdb, 0x12, 0xa3, 0xad, 0x5c, 0x7e, 0xd4,
  3480. 0x58, 0x1a, 0xa4, 0xbf, 0x8b, 0x6f, 0x40, 0x1e },
  3481. { 0x79, 0xc2, 0x80, 0xee, 0x9c, 0xd2, 0xdb, 0x98, 0xbf, 0x24,
  3482. 0x73, 0x5c, 0xd2, 0xf1, 0x46, 0xfe, 0x4d, 0x7b, 0xb3, 0x61,
  3483. 0x82, 0xe8, 0xc5, 0xba, 0x92, 0x32, 0xb3, 0x7e, 0xa6, 0x00,
  3484. 0x85, 0x15, 0x31, 0xfc, 0x58, 0x82, 0xf8, 0xf2, 0xc0, 0x75,
  3485. 0x8c, 0xcd, 0x79, 0xb0, 0x67, 0x62, 0x2c, 0x9e, 0xe0, 0xcf,
  3486. 0x16, 0xee, 0xc4, 0x7c, 0xa8, 0x96, 0xd7, 0xf6, 0x58, 0x52,
  3487. 0x7c, 0x25, 0x0c, 0x78, 0x57, 0x3e, 0xbd, 0x17, 0x51, 0xfd,
  3488. 0xff, 0x34, 0x56, 0x2a, 0xbc, 0xfa, 0x67, 0x7d, 0x0a, 0x92,
  3489. 0xba, 0xda, 0xd7, 0xb1, 0x02, 0xf7, 0x1b, 0xef, 0x3e, 0x2c,
  3490. 0xfb, 0xd9, 0xb3, 0x85, 0x38, 0x2a, 0x24, 0x2f, 0xa7, 0xf9,
  3491. 0x62, 0x74, 0x46, 0x17, 0x5f, 0x02, 0x73, 0x7d, 0x48, 0x76,
  3492. 0xee, 0xdf, 0x6e, 0x13, 0x88, 0xc2, 0x10, 0x78, 0xa7, 0xad,
  3493. 0x62, 0x66, 0xb2, 0x5e, 0x9c, 0x5a, 0x8e, 0xdf },
  3494. { 0x75, 0x80, 0x73, 0xa4, 0xa9, 0xe3, 0xff, 0x4f, 0x9f, 0xd9,
  3495. 0xf7, 0x91, 0x52, 0xc8, 0xf4, 0x08, 0x3f, 0x9d, 0xd5, 0x78,
  3496. 0xb5, 0xbe, 0x5b, 0xe4, 0x26, 0xdb, 0xc5, 0x8e, 0x73, 0xe4,
  3497. 0x0e, 0x3b, 0xe0, 0xb0, 0x44, 0x26, 0xb5, 0x1e, 0x38, 0xbc,
  3498. 0x3e, 0x3a, 0xf3, 0xc6, 0x9c, 0x66, 0x27, 0x4b, 0x1b, 0x2b,
  3499. 0xf8, 0x9f, 0x18, 0x3e, 0xae, 0x42, 0x6c, 0x51, 0x23, 0x5c,
  3500. 0xce, 0xe6, 0xb6, 0x06, 0x57, 0x0c, 0x5b, 0xb7, 0x81, 0x6b,
  3501. 0x62, 0x30, 0x24, 0xd2, 0x8c, 0xa0, 0x6b, 0xc1, 0x4b, 0x2e,
  3502. 0x17, 0xaa, 0x5a, 0xea, 0x8e, 0x1a, 0xb8, 0x20, 0x73, 0x39,
  3503. 0xe7, 0x21, 0x67, 0x6d, 0xe2, 0x50, 0xab, 0x83, 0x89, 0x97,
  3504. 0x82, 0xc1, 0x00, 0x1c, 0xac, 0xf0, 0x64, 0xdc, 0x9f, 0xc4,
  3505. 0x88, 0x5e, 0xa8, 0xc0, 0x49, 0x16, 0xb0, 0x4a, 0xc4, 0x8e,
  3506. 0xbd, 0xcc, 0x82, 0x03, 0xf2, 0xb4, 0x81, 0x22 },
  3507. { 0x3f, 0x3e, 0x34, 0x58, 0xfa, 0xf6, 0x6a, 0xa8, 0x93, 0x42,
  3508. 0xa7, 0xfa, 0x86, 0x61, 0xd3, 0x2d, 0xfb, 0xab, 0x9f, 0xa1,
  3509. 0x49, 0xe9, 0xe1, 0x04, 0x06, 0xe5, 0x25, 0x99, 0xb4, 0xfd,
  3510. 0x4c, 0x45, 0x2d, 0x21, 0x64, 0x76, 0x08, 0xc7, 0xf3, 0xff,
  3511. 0x3d, 0x0b, 0x10, 0xbf, 0xfd, 0x7b, 0xe6, 0xc7, 0xbd, 0xa4,
  3512. 0xc8, 0x24, 0x29, 0x7e, 0xe2, 0x03, 0x4b, 0xc0, 0xd0, 0x30,
  3513. 0xa9, 0xfd, 0x97, 0x83, 0x14, 0x64, 0x6e, 0x53, 0xcf, 0x4b,
  3514. 0x84, 0x32, 0xde, 0xf4, 0x44, 0xc1, 0x13, 0x66, 0x84, 0x3a,
  3515. 0x56, 0xd5, 0x75, 0x0c, 0x3c, 0x47, 0x4d, 0xbd, 0x2e, 0x16,
  3516. 0x6d, 0xe7, 0xc8, 0xa0, 0xe2, 0x4c, 0xc5, 0xd1, 0x8a, 0x2a,
  3517. 0x75, 0x53, 0x66, 0x07, 0xe8, 0x4b, 0xd3, 0x85, 0xac, 0x79,
  3518. 0x54, 0x13, 0xf2, 0x06, 0xbf, 0xd6, 0x13, 0xa2, 0xa1, 0xb6,
  3519. 0x7d, 0x27, 0xb0, 0x57, 0x86, 0x91, 0xca, 0x22 },
  3520. { 0x64, 0x0d, 0x20, 0xc4, 0x34, 0xc2, 0x94, 0xef, 0x1e, 0x9e,
  3521. 0x17, 0xed, 0x6c, 0x48, 0x29, 0x5e, 0x44, 0x1e, 0xed, 0xe2,
  3522. 0x2a, 0x0e, 0x2f, 0x63, 0x56, 0xd9, 0xf8, 0x07, 0x3c, 0x83,
  3523. 0x14, 0xae, 0xe7, 0x7b, 0x2e, 0x4c, 0xc1, 0x43, 0x3d, 0x67,
  3524. 0xc8, 0xee, 0x32, 0x3e, 0x30, 0xc7, 0x8d, 0x2b, 0xd8, 0x2d,
  3525. 0x5e, 0x9f, 0x65, 0x45, 0x7d, 0x95, 0x87, 0x34, 0xed, 0xdc,
  3526. 0xfc, 0x40, 0xe8, 0x1b, 0xb7, 0x63, 0x87, 0x58, 0x35, 0x29,
  3527. 0x2c, 0x32, 0xb8, 0xfa, 0x29, 0x56, 0x19, 0x9e, 0x5f, 0x98,
  3528. 0xf9, 0x9e, 0xe9, 0xdf, 0xed, 0xe1, 0xf0, 0x9c, 0x8a, 0x69,
  3529. 0x65, 0x53, 0xfd, 0x9b, 0xb9, 0xc3, 0x42, 0x3e, 0xca, 0x49,
  3530. 0x51, 0x5a, 0x29, 0x35, 0x02, 0x76, 0xcd, 0x9c, 0x9b, 0xf4,
  3531. 0xef, 0xf5, 0xb6, 0x77, 0xd4, 0xac, 0x49, 0xdf, 0x64, 0xeb,
  3532. 0x51, 0xec, 0x35, 0xaf, 0x95, 0x15, 0x97, 0xaa },
  3533. { 0x0f, 0x9c, 0x1c, 0xa8, 0xc0, 0xd9, 0x28, 0x16, 0xb9, 0x68,
  3534. 0x90, 0x2a, 0xc7, 0x2e, 0x05, 0xc1, 0x8e, 0xe4, 0x0d, 0x66,
  3535. 0x34, 0x9a, 0xa6, 0x39, 0xf3, 0x9e, 0x46, 0x09, 0x91, 0x2b,
  3536. 0xd1, 0x7a, 0xdf, 0xe5, 0x2b, 0x11, 0x87, 0x6c, 0x29, 0xc3,
  3537. 0x69, 0xa0, 0x74, 0xb6, 0x28, 0x57, 0x42, 0xe8, 0xb6, 0x30,
  3538. 0x2b, 0x33, 0x0f, 0x32, 0xd3, 0x67, 0x8b, 0xc4, 0x09, 0x4d,
  3539. 0x57, 0x46, 0x0e, 0x65, 0xca, 0x8e, 0x35, 0x1d, 0xfc, 0x9f,
  3540. 0x1b, 0x73, 0x4e, 0x46, 0x1a, 0xca, 0x6d, 0x4a, 0xd4, 0xc2,
  3541. 0x29, 0xb6, 0xef, 0x13, 0x30, 0x3f, 0x07, 0xa8, 0x8d, 0x9d,
  3542. 0x47, 0xdc, 0x25, 0x49, 0xfc, 0x46, 0xd8, 0x0b, 0xdc, 0xfc,
  3543. 0x1d, 0xe5, 0x0d, 0xb7, 0xb3, 0x6e, 0x74, 0x07, 0x45, 0xac,
  3544. 0xd5, 0x2a, 0x07, 0x4c, 0x35, 0x45, 0xf3, 0x15, 0x05, 0x3a,
  3545. 0x4e, 0x9a, 0x0b, 0x8e, 0x32, 0x84, 0xd5, 0x13 },
  3546. { 0x7e, 0x31, 0xc1, 0x2f, 0x45, 0xd3, 0x6e, 0xc5, 0x34, 0xbd,
  3547. 0x9b, 0xa7, 0x09, 0x8a, 0x82, 0x40, 0x9b, 0x9a, 0xce, 0xc6,
  3548. 0xe6, 0xe6, 0xff, 0x33, 0x63, 0x94, 0x9c, 0x91, 0x3e, 0x72,
  3549. 0x63, 0xf8, 0x3d, 0xb4, 0x7f, 0x70, 0xc6, 0x5e, 0x3e, 0xaf,
  3550. 0x48, 0x59, 0x3d, 0xb8, 0xb6, 0x63, 0x0f, 0xb1, 0x83, 0x20,
  3551. 0x27, 0x89, 0xd7, 0x69, 0x4f, 0x9b, 0x58, 0xad, 0x74, 0xb0,
  3552. 0x7b, 0x29, 0x0d, 0xfd, 0x5e, 0xa6, 0x0d, 0xfa, 0x66, 0x08,
  3553. 0xb3, 0x88, 0xcf, 0x25, 0x67, 0x30, 0x0a, 0x3b, 0x13, 0x26,
  3554. 0x73, 0x13, 0x99, 0xa3, 0x0b, 0x4d, 0xca, 0x09, 0x4b, 0x63,
  3555. 0x88, 0x54, 0xd5, 0x37, 0x34, 0x51, 0x72, 0xc9, 0x18, 0xcb,
  3556. 0x65, 0xe4, 0x08, 0xf9, 0x13, 0xa3, 0x20, 0xd8, 0x97, 0xf0,
  3557. 0xc5, 0xcc, 0xb6, 0xaa, 0x53, 0x47, 0x15, 0xd3, 0x62, 0x8c,
  3558. 0x1e, 0xbb, 0xaa, 0xb3, 0x67, 0x43, 0x3d, 0xf3 },
  3559. { 0x1a, 0x21, 0x9c, 0x45, 0x32, 0x6d, 0x53, 0x57, 0x4d, 0xe4,
  3560. 0x1a, 0x30, 0x7e, 0x23, 0xba, 0x60, 0xac, 0x19, 0x6c, 0xf5,
  3561. 0x33, 0x7c, 0xa1, 0xbb, 0xc5, 0x3b, 0x7e, 0x03, 0xfc, 0x4f,
  3562. 0xbb, 0x2e, 0x86, 0xbe, 0x92, 0xd3, 0xef, 0xc4, 0xd9, 0x3c,
  3563. 0x4f, 0x64, 0xee, 0x41, 0x0e, 0x2b, 0x37, 0x47, 0x74, 0x1f,
  3564. 0x0d, 0x73, 0x15, 0x6c, 0x4e, 0xe1, 0xfa, 0x91, 0x92, 0x5d,
  3565. 0xdc, 0xc7, 0x22, 0x23, 0x76, 0xb3, 0xbf, 0xad, 0xfc, 0x94,
  3566. 0x70, 0x76, 0x33, 0x6e, 0x30, 0x9e, 0xde, 0x13, 0xfd, 0x1b,
  3567. 0x7a, 0x46, 0x31, 0xbe, 0x79, 0x69, 0xa1, 0x0d, 0xfd, 0xd5,
  3568. 0xfc, 0x30, 0xcf, 0xfb, 0xb4, 0x06, 0x66, 0x0c, 0x8d, 0xfa,
  3569. 0x95, 0x9c, 0xb3, 0xbc, 0xb9, 0xc3, 0x00, 0x5f, 0x94, 0x43,
  3570. 0x1f, 0x97, 0x1e, 0xfa, 0xcb, 0x00, 0x24, 0xab, 0x61, 0xd8,
  3571. 0xbe, 0x28, 0x1d, 0x68, 0x0d, 0xfd, 0x2d, 0xd7 },
  3572. { 0x17, 0xaa, 0xa9, 0x99, 0xbc, 0x90, 0x19, 0x2f, 0xe0, 0x2b,
  3573. 0xcf, 0x77, 0xb6, 0xd0, 0xbf, 0x93, 0x6a, 0xc1, 0x53, 0x7e,
  3574. 0xf8, 0x03, 0x06, 0x62, 0xf0, 0x4c, 0xe5, 0x90, 0xbe, 0xa6,
  3575. 0x94, 0x03, 0x73, 0xcd, 0x50, 0x2d, 0x43, 0x74, 0x42, 0xd1,
  3576. 0x92, 0xff, 0x23, 0x29, 0x95, 0x56, 0x6b, 0xe6, 0x42, 0x2a,
  3577. 0x33, 0x0a, 0xc4, 0xf8, 0x9c, 0xb8, 0x95, 0x3e, 0x69, 0xb2,
  3578. 0x5b, 0x53, 0xf1, 0xc3, 0x4d, 0x6c, 0x45, 0x7f, 0x69, 0xe5,
  3579. 0x7f, 0x8e, 0xfd, 0x0d, 0xe2, 0xcb, 0x2b, 0x0c, 0x81, 0x20,
  3580. 0x78, 0xe1, 0x0e, 0xc1, 0x82, 0xcc, 0x60, 0x43, 0x99, 0x7c,
  3581. 0x8e, 0x35, 0xa2, 0xfc, 0x0e, 0xdb, 0xc0, 0xce, 0xc2, 0xe2,
  3582. 0xff, 0xdc, 0x77, 0x71, 0xc2, 0x63, 0x90, 0x67, 0x3d, 0x8a,
  3583. 0x19, 0x2f, 0x2e, 0x23, 0x18, 0x06, 0x7b, 0x6c, 0x99, 0x63,
  3584. 0xfd, 0xcf, 0x7e, 0xf8, 0xaa, 0x4d, 0xb0, 0xbc },
  3585. { 0x6b, 0x28, 0x2a, 0xf0, 0xa5, 0xf3, 0xb2, 0x4a, 0xfb, 0xd5,
  3586. 0xff, 0x8c, 0x22, 0x64, 0x74, 0xbc, 0x3b, 0x4b, 0x2d, 0x8f,
  3587. 0xbe, 0x76, 0x08, 0xef, 0xa2, 0x8f, 0xd8, 0x6b, 0xa5, 0xbf,
  3588. 0xd2, 0x67, 0x0f, 0x45, 0x6a, 0x4c, 0x0f, 0x97, 0xfa, 0x97,
  3589. 0x78, 0xbe, 0xdd, 0xe1, 0x21, 0x4f, 0x96, 0xc5, 0xe8, 0x92,
  3590. 0x5e, 0x91, 0xb4, 0x3b, 0x68, 0x13, 0x0a, 0x44, 0xa0, 0xe5,
  3591. 0x0e, 0x4a, 0x49, 0xbe, 0x94, 0xb5, 0x5c, 0x87, 0x4f, 0xf0,
  3592. 0x6b, 0x25, 0xf4, 0x00, 0xac, 0x1e, 0xdd, 0x20, 0x45, 0xc0,
  3593. 0x72, 0x17, 0xfd, 0xd9, 0xbd, 0xd6, 0x72, 0xcf, 0x23, 0xf9,
  3594. 0x9c, 0x36, 0xdd, 0x95, 0xf7, 0xa9, 0xa6, 0xff, 0x3b, 0x35,
  3595. 0xea, 0x17, 0xe2, 0x7c, 0x1a, 0x14, 0x40, 0xe5, 0x5b, 0x88,
  3596. 0x46, 0x2f, 0x83, 0x5d, 0xee, 0x43, 0x3b, 0x94, 0x68, 0x51,
  3597. 0x0d, 0x3d, 0x56, 0x43, 0x8e, 0x55, 0xdb, 0x2e },
  3598. { 0x6d, 0x4f, 0x5d, 0x23, 0x54, 0x70, 0x6e, 0xbf, 0xb6, 0x64,
  3599. 0xf5, 0x29, 0xee, 0x8d, 0x97, 0x62, 0x13, 0xe6, 0x44, 0x27,
  3600. 0x2b, 0x41, 0x2d, 0xfb, 0x42, 0x9d, 0x16, 0x7b, 0x48, 0x02,
  3601. 0xc2, 0x45, 0x76, 0xa5, 0x45, 0xc6, 0xc2, 0xbe, 0x9f, 0x3d,
  3602. 0x80, 0xb0, 0xbd, 0x68, 0xb2, 0x30, 0x6b, 0x0e, 0xee, 0x37,
  3603. 0x8b, 0xf4, 0xa8, 0x02, 0x45, 0xde, 0x69, 0xe9, 0xbe, 0x5c,
  3604. 0x59, 0x45, 0x50, 0x88, 0x2a, 0x2b, 0x2d, 0x2d, 0x0b, 0xfd,
  3605. 0x87, 0xb1, 0x10, 0x2d, 0xdf, 0x09, 0x8f, 0xd2, 0xfb, 0x64,
  3606. 0x14, 0x5d, 0x94, 0x66, 0x95, 0xa7, 0xac, 0xb4, 0x91, 0x14,
  3607. 0x14, 0xd3, 0x08, 0x3e, 0x16, 0xc4, 0x3f, 0x94, 0x66, 0xd3,
  3608. 0x75, 0x54, 0x78, 0x33, 0x72, 0xbd, 0x6e, 0x3d, 0xeb, 0x44,
  3609. 0x68, 0x42, 0x59, 0x1c, 0x38, 0xd6, 0xa4, 0x45, 0xe2, 0x8c,
  3610. 0x78, 0xfc, 0x02, 0x5f, 0x63, 0x41, 0xa5, 0x95 },
  3611. { 0x4a, 0xaf, 0x0b, 0x4f, 0xd6, 0x5d, 0x34, 0xad, 0x6e, 0xda,
  3612. 0x93, 0xc4, 0x40, 0xdb, 0x81, 0xb4, 0x55, 0x1f, 0xc8, 0x72,
  3613. 0xb9, 0x97, 0x7d, 0x90, 0xe7, 0x8b, 0xd7, 0xa5, 0x74, 0x07,
  3614. 0x0b, 0xb3, 0x9c, 0x2a, 0x5e, 0x92, 0x58, 0xf3, 0x75, 0x80,
  3615. 0xb2, 0x08, 0x51, 0x70, 0x01, 0x16, 0xde, 0xb6, 0xe0, 0xfe,
  3616. 0x46, 0x78, 0x24, 0xd0, 0x5f, 0x74, 0xd2, 0xf0, 0xa7, 0xdd,
  3617. 0x2f, 0x07, 0xae, 0xa3, 0xa9, 0xe3, 0xd5, 0x9f, 0x79, 0xb7,
  3618. 0x8a, 0x26, 0x72, 0xeb, 0xa5, 0x7e, 0x88, 0x18, 0x43, 0x4d,
  3619. 0x02, 0x8d, 0xca, 0x62, 0x63, 0xc9, 0x64, 0x87, 0x3e, 0x30,
  3620. 0x8e, 0x6f, 0xf3, 0x7d, 0xcb, 0xa6, 0x33, 0x5c, 0xe6, 0xce,
  3621. 0xa7, 0xac, 0x78, 0x1e, 0x0a, 0x12, 0x6d, 0x42, 0xb3, 0xb8,
  3622. 0x1e, 0x5b, 0xfd, 0xc8, 0x07, 0xe0, 0x7b, 0xb6, 0xd0, 0xbf,
  3623. 0x35, 0xc8, 0xf2, 0xb6, 0x00, 0xba, 0x9f, 0x88 },
  3624. { 0x8b, 0x2c, 0xbd, 0x39, 0x82, 0xbc, 0x63, 0x37, 0xa1, 0xd4,
  3625. 0x16, 0x5b, 0x1c, 0x2e, 0x14, 0xd7, 0xf9, 0x9c, 0x52, 0x6b,
  3626. 0xd6, 0xeb, 0xf3, 0xa9, 0x14, 0x4d, 0xad, 0xe1, 0xa7, 0x21,
  3627. 0xec, 0xd9, 0x72, 0xae, 0xc5, 0x77, 0xb2, 0xc1, 0x1f, 0xb1,
  3628. 0x16, 0xde, 0xde, 0x4e, 0x09, 0x70, 0x18, 0xc7, 0x11, 0xa5,
  3629. 0xa8, 0x04, 0x8b, 0xe4, 0x4a, 0xa0, 0x06, 0xf9, 0x83, 0x6b,
  3630. 0x85, 0x72, 0x86, 0x36, 0x64, 0xde, 0x98, 0x9a, 0x25, 0xbc,
  3631. 0x04, 0xdb, 0xc1, 0xcd, 0xd5, 0x2f, 0xa0, 0x61, 0xdb, 0xdb,
  3632. 0x4e, 0xef, 0x38, 0x6b, 0x8b, 0xd9, 0xc4, 0x66, 0xb2, 0x49,
  3633. 0x0f, 0xc0, 0x92, 0x1d, 0x32, 0xdd, 0xd8, 0xdb, 0xfa, 0xb5,
  3634. 0x17, 0x3b, 0x86, 0x85, 0xef, 0x3c, 0xae, 0x87, 0x8f, 0xa3,
  3635. 0xec, 0x58, 0xb0, 0x9e, 0x7d, 0xad, 0xbc, 0x18, 0x1e, 0xad,
  3636. 0x9b, 0xef, 0x25, 0x06, 0x35, 0x14, 0xc7, 0xaf },
  3637. { 0x57, 0xe2, 0x83, 0x04, 0x7d, 0xbe, 0x36, 0x70, 0x22, 0x0e,
  3638. 0xea, 0xec, 0x8f, 0xc5, 0xc8, 0x31, 0x86, 0xc2, 0x82, 0x4e,
  3639. 0x87, 0x4c, 0xcd, 0x58, 0x39, 0x9a, 0x79, 0xc8, 0xf0, 0x24,
  3640. 0x3c, 0xf5, 0x23, 0xdf, 0x80, 0xe6, 0x08, 0x6e, 0x33, 0xf6,
  3641. 0x04, 0x1e, 0xc0, 0xb5, 0x45, 0x61, 0x6b, 0xfd, 0xd1, 0x55,
  3642. 0xf5, 0x78, 0x03, 0xbf, 0x1d, 0x4c, 0xcc, 0x64, 0xee, 0xb3,
  3643. 0x35, 0xde, 0xea, 0xe7, 0x9a, 0xa3, 0xf4, 0xb3, 0xee, 0x40,
  3644. 0x5e, 0x89, 0xc7, 0x0c, 0xa9, 0x3b, 0x06, 0xba, 0x06, 0xd2,
  3645. 0xca, 0x14, 0xf1, 0xa7, 0xa3, 0x19, 0x48, 0x8a, 0xbd, 0x32,
  3646. 0x98, 0xd1, 0x48, 0x7c, 0x2a, 0x2d, 0x3f, 0xc2, 0x57, 0xb3,
  3647. 0xc5, 0x76, 0x2b, 0x9c, 0x83, 0x07, 0xd1, 0x30, 0xc6, 0x34,
  3648. 0xea, 0x45, 0x0b, 0xa2, 0x02, 0xf6, 0xcf, 0x9d, 0x42, 0xec,
  3649. 0x28, 0xec, 0x1b, 0xf2, 0x8a, 0x52, 0xe9, 0x91 },
  3650. { 0x4f, 0x12, 0xe0, 0x37, 0x69, 0x6f, 0xfd, 0xa6, 0xe8, 0xbe,
  3651. 0xe9, 0xd4, 0xc9, 0x1d, 0x60, 0x63, 0xd0, 0xd3, 0xcb, 0x56,
  3652. 0x19, 0xd4, 0xa2, 0xd7, 0x3a, 0xc0, 0xfb, 0xd5, 0x7c, 0xba,
  3653. 0x21, 0x7d, 0xeb, 0x28, 0x9d, 0x0a, 0xa9, 0x36, 0x17, 0xb0,
  3654. 0x5e, 0xcb, 0xbc, 0x8c, 0xad, 0x54, 0xef, 0x05, 0xef, 0x96,
  3655. 0xf7, 0x31, 0x53, 0xde, 0x1b, 0x2f, 0x96, 0xb3, 0x7e, 0x87,
  3656. 0xb6, 0x05, 0x47, 0x05, 0x46, 0x98, 0x99, 0x25, 0x20, 0x30,
  3657. 0xfa, 0x5a, 0x76, 0xd4, 0xf2, 0xb7, 0x0c, 0xa3, 0x76, 0x01,
  3658. 0x65, 0xc0, 0xf4, 0x92, 0x53, 0x39, 0x8a, 0x72, 0x65, 0x5c,
  3659. 0x4b, 0x9b, 0x28, 0x42, 0x3b, 0x20, 0xd7, 0x6b, 0xf7, 0x5e,
  3660. 0x52, 0x2b, 0xc8, 0x8d, 0x40, 0x44, 0xad, 0xba, 0x80, 0x49,
  3661. 0x84, 0x36, 0xbd, 0xd0, 0x6a, 0x99, 0x8b, 0xeb, 0xb1, 0xd2,
  3662. 0x6e, 0x60, 0xb6, 0x98, 0xfb, 0xcd, 0xf6, 0x66 },
  3663. { 0x83, 0xd2, 0x33, 0x3e, 0xb1, 0x26, 0x6f, 0x91, 0xa8, 0xf7,
  3664. 0x8e, 0xa7, 0x58, 0x58, 0xaf, 0xb2, 0x1a, 0x49, 0x6e, 0xa9,
  3665. 0x5b, 0x52, 0x1e, 0xcb, 0x73, 0xe6, 0x9c, 0x6e, 0xa9, 0x44,
  3666. 0x8b, 0x02, 0xf8, 0x88, 0xe9, 0x2c, 0xf2, 0x77, 0xba, 0xb1,
  3667. 0x45, 0xb2, 0x32, 0xb2, 0x9b, 0xd6, 0x44, 0x4a, 0x61, 0xa0,
  3668. 0x86, 0x6d, 0x32, 0x02, 0x53, 0x71, 0x9d, 0x9e, 0xd8, 0x9f,
  3669. 0xf9, 0xc1, 0xd4, 0xdd, 0x8c, 0x34, 0xd2, 0x2c, 0xb9, 0x5a,
  3670. 0xe1, 0x6a, 0x74, 0xe7, 0xce, 0xe7, 0x93, 0xc4, 0x80, 0x4e,
  3671. 0xfb, 0x6b, 0xa8, 0x8c, 0x70, 0xa8, 0xa0, 0xfa, 0x36, 0x46,
  3672. 0x4c, 0x65, 0x14, 0x6d, 0x13, 0x20, 0xfa, 0x15, 0xb4, 0x84,
  3673. 0x4b, 0x28, 0x4e, 0x2a, 0x12, 0x46, 0xa4, 0x54, 0x73, 0x83,
  3674. 0x81, 0x34, 0x80, 0x4a, 0x5c, 0x55, 0x37, 0x86, 0x51, 0x9a,
  3675. 0x4c, 0xcf, 0xa4, 0x22, 0x15, 0xf1, 0xa6, 0x10 },
  3676. { 0x73, 0x62, 0xf1, 0x3e, 0xc5, 0xa3, 0x16, 0x21, 0x46, 0x35,
  3677. 0x32, 0x15, 0x2f, 0x40, 0xa5, 0x5b, 0x82, 0x26, 0xb6, 0xaf,
  3678. 0xb7, 0xd1, 0xe5, 0x86, 0x8e, 0xdb, 0x61, 0x22, 0xf8, 0xe8,
  3679. 0x6e, 0xf3, 0x28, 0xb2, 0x28, 0x0e, 0x3d, 0x40, 0x75, 0x4c,
  3680. 0xa0, 0x1e, 0x0f, 0x59, 0x6b, 0xf7, 0x6d, 0xad, 0x17, 0xde,
  3681. 0x4b, 0xfe, 0xd5, 0xbe, 0xe3, 0x97, 0xd6, 0xb4, 0x3e, 0xf6,
  3682. 0xf4, 0x5d, 0x9f, 0xbb, 0xb3, 0x97, 0x8d, 0xb8, 0xd8, 0x54,
  3683. 0xdf, 0xb2, 0x52, 0x8f, 0xef, 0x00, 0x93, 0xf5, 0x5f, 0x0a,
  3684. 0xe8, 0x12, 0x01, 0x19, 0x70, 0xe7, 0x3d, 0x77, 0x15, 0x9d,
  3685. 0x66, 0x60, 0xa8, 0x11, 0x7a, 0x87, 0x69, 0xf1, 0xf2, 0x88,
  3686. 0x89, 0x3c, 0xd6, 0x96, 0x05, 0xb6, 0xab, 0x30, 0x18, 0xd2,
  3687. 0x24, 0x1b, 0xa1, 0xee, 0x1a, 0xe1, 0x50, 0xa2, 0xfc, 0x9c,
  3688. 0x1c, 0x63, 0x32, 0x88, 0x67, 0xb4, 0x78, 0xd7 },
  3689. { 0x2f, 0x10, 0x69, 0x3f, 0xa3, 0x8c, 0x0e, 0xad, 0xd9, 0xb1,
  3690. 0x6f, 0x02, 0xda, 0x0a, 0x20, 0xa8, 0xf0, 0x86, 0x1d, 0x92,
  3691. 0x90, 0x98, 0x36, 0x95, 0x1f, 0xc3, 0x9b, 0xac, 0x89, 0xf0,
  3692. 0xbf, 0x0b, 0xe7, 0xaf, 0x9c, 0xd7, 0x2f, 0x2b, 0x39, 0x9e,
  3693. 0x0e, 0xb1, 0xe7, 0x15, 0xff, 0x56, 0x8f, 0x64, 0x2c, 0x91,
  3694. 0x15, 0x4e, 0xae, 0xc8, 0x91, 0xf9, 0x63, 0xe2, 0xfd, 0xbf,
  3695. 0xb6, 0xc1, 0xa4, 0x55, 0xb6, 0x51, 0x0c, 0xd8, 0xe3, 0xa8,
  3696. 0xd0, 0xd5, 0xd9, 0x36, 0x1d, 0x68, 0x39, 0x87, 0x79, 0x5e,
  3697. 0x37, 0x6f, 0x4f, 0x58, 0xf0, 0xaa, 0x86, 0x08, 0xbb, 0xf0,
  3698. 0xa8, 0x1a, 0x4b, 0x6f, 0xbb, 0xf4, 0x18, 0x94, 0x56, 0x88,
  3699. 0x81, 0x4b, 0x49, 0x47, 0x50, 0xa5, 0xce, 0xce, 0xd2, 0x19,
  3700. 0x4f, 0x1b, 0x8c, 0xc0, 0xa6, 0x5f, 0xa5, 0x1c, 0x36, 0x57,
  3701. 0x79, 0x2e, 0xb2, 0x7c, 0x73, 0xc0, 0xc4, 0x30 },
  3702. { 0x98, 0x5f, 0x83, 0xe4, 0x4f, 0xe7, 0xa0, 0x43, 0x27, 0x75,
  3703. 0xdb, 0xdd, 0x96, 0x43, 0x7c, 0xdb, 0x1e, 0xff, 0x68, 0xd4,
  3704. 0xad, 0x6f, 0x19, 0x40, 0x5b, 0x53, 0xd2, 0x79, 0x9d, 0xaa,
  3705. 0x9e, 0x4f, 0x25, 0x51, 0xc8, 0xe4, 0xaf, 0x39, 0x53, 0xc8,
  3706. 0x7c, 0x7a, 0xfb, 0x14, 0x08, 0xea, 0x2f, 0x6e, 0x82, 0x8c,
  3707. 0x3a, 0x05, 0xd5, 0x9c, 0xda, 0x99, 0xa6, 0x86, 0xae, 0x49,
  3708. 0x47, 0xf3, 0x82, 0x83, 0x64, 0xba, 0x66, 0xfc, 0x8f, 0xaa,
  3709. 0x62, 0x9e, 0x67, 0x59, 0xac, 0xfe, 0x10, 0xd6, 0x33, 0xac,
  3710. 0x9c, 0xbd, 0x11, 0x13, 0xdc, 0x96, 0xa2, 0x01, 0x1f, 0xb2,
  3711. 0xf8, 0x9f, 0x36, 0x9e, 0xe5, 0x48, 0x04, 0xb6, 0x18, 0x91,
  3712. 0x1e, 0xd6, 0x06, 0x26, 0xe4, 0x68, 0xbf, 0xd6, 0xa9, 0xf6,
  3713. 0x35, 0xa6, 0xf9, 0x74, 0x84, 0x2f, 0x2f, 0xd9, 0x08, 0x7b,
  3714. 0x07, 0xa6, 0xce, 0x91, 0x0c, 0x06, 0xde, 0xd2 },
  3715. { 0x0c, 0x88, 0xe5, 0x40, 0x0f, 0xe9, 0x62, 0xf1, 0x54, 0xd7,
  3716. 0x79, 0xd5, 0x50, 0xdc, 0xc7, 0x99, 0xbb, 0xf1, 0x5a, 0x6f,
  3717. 0x1e, 0x78, 0x1c, 0xa7, 0x2d, 0x9f, 0x17, 0x9c, 0x0d, 0x8c,
  3718. 0xbc, 0x2e, 0x68, 0xfd, 0xda, 0xa9, 0x92, 0xc0, 0x03, 0xb3,
  3719. 0x07, 0x01, 0x9c, 0x93, 0x1a, 0x44, 0x3c, 0xfa, 0xb0, 0x7d,
  3720. 0x2c, 0xd1, 0xe9, 0xdf, 0x45, 0xcc, 0xa5, 0x25, 0x9e, 0x63,
  3721. 0x9a, 0xbc, 0x45, 0x2a, 0xee, 0x66, 0x84, 0xba, 0xe3, 0x4c,
  3722. 0x5c, 0x22, 0x5a, 0xc5, 0xee, 0xa3, 0xf8, 0xb2, 0x4f, 0x0e,
  3723. 0x3d, 0xc3, 0xf0, 0x76, 0x9c, 0x8a, 0xc1, 0xe1, 0x0c, 0x5b,
  3724. 0x02, 0x8b, 0x74, 0xf4, 0x1b, 0x68, 0x70, 0x79, 0xcf, 0x02,
  3725. 0xed, 0x94, 0x33, 0x40, 0x4c, 0x11, 0x20, 0x18, 0x39, 0xd6,
  3726. 0xb5, 0x2d, 0x70, 0x13, 0x11, 0x60, 0xc2, 0x4b, 0x57, 0x51,
  3727. 0x89, 0x60, 0x3c, 0x16, 0xea, 0xf4, 0x52, 0x94 },
  3728. { 0x8e, 0x25, 0x60, 0xb8, 0xaf, 0x11, 0x07, 0x15, 0x4e, 0x5d,
  3729. 0xe4, 0x99, 0x3a, 0x25, 0xce, 0xd6, 0xeb, 0xae, 0xa0, 0x19,
  3730. 0xfa, 0x87, 0x77, 0x2f, 0x89, 0xf3, 0x36, 0x27, 0x3b, 0x3a,
  3731. 0x2c, 0xd7, 0x8c, 0x17, 0xae, 0x85, 0x98, 0x7b, 0x90, 0x7a,
  3732. 0x8c, 0x19, 0xfd, 0x8f, 0x92, 0x2d, 0xbc, 0xe8, 0x67, 0x4e,
  3733. 0xac, 0x95, 0x5a, 0x33, 0x06, 0x5a, 0xeb, 0xbb, 0x1f, 0xaf,
  3734. 0xee, 0xd0, 0xe1, 0x97, 0x7b, 0x32, 0x8e, 0x6f, 0xf2, 0xbc,
  3735. 0x37, 0x92, 0x75, 0x98, 0x84, 0x64, 0xb8, 0x0e, 0x32, 0xae,
  3736. 0xbb, 0x9d, 0x5a, 0x38, 0xf7, 0x4f, 0x8d, 0x3a, 0xe2, 0x80,
  3737. 0x14, 0xc1, 0x07, 0x5e, 0x3c, 0x8e, 0xce, 0xca, 0xf0, 0x84,
  3738. 0x8a, 0x75, 0x3e, 0xf2, 0x33, 0x4c, 0x9d, 0x9e, 0x5a, 0xeb,
  3739. 0xc6, 0x80, 0xf7, 0x5b, 0x4b, 0xf6, 0x3a, 0x3c, 0xab, 0x6a,
  3740. 0x84, 0xf7, 0x1a, 0x6a, 0xe8, 0xf4, 0x43, 0x57 },
  3741. { 0x59, 0x00, 0x5f, 0x22, 0x83, 0x24, 0xf2, 0xe5, 0xfe, 0xf3,
  3742. 0xd9, 0x2b, 0x92, 0xfd, 0x9a, 0x29, 0x88, 0xbe, 0x0c, 0x92,
  3743. 0x8f, 0x92, 0x23, 0x15, 0x23, 0x0c, 0xc7, 0x7c, 0x53, 0x91,
  3744. 0xca, 0x50, 0xb4, 0x1a, 0xb2, 0x65, 0x23, 0x31, 0xd6, 0x11,
  3745. 0x61, 0x27, 0x5a, 0xc2, 0x0a, 0xdf, 0x09, 0xc7, 0x40, 0x40,
  3746. 0x34, 0x5c, 0x8e, 0x0a, 0x28, 0xab, 0x89, 0x29, 0xd4, 0xde,
  3747. 0x97, 0x52, 0x3b, 0x1f, 0x60, 0x78, 0x34, 0x0a, 0x65, 0x10,
  3748. 0x46, 0xd5, 0x27, 0x19, 0xdb, 0x5d, 0xa3, 0x83, 0xbb, 0xa7,
  3749. 0x49, 0xa8, 0x02, 0x00, 0xb1, 0x16, 0x01, 0x18, 0x1e, 0x0b,
  3750. 0x15, 0xcd, 0x3a, 0x94, 0x08, 0xff, 0x22, 0x23, 0x76, 0x32,
  3751. 0x9d, 0xfd, 0x95, 0x0e, 0xb6, 0x38, 0x28, 0x31, 0x9c, 0xdd,
  3752. 0x27, 0xc7, 0x45, 0xa1, 0x07, 0x9f, 0xba, 0xb2, 0xcf, 0x9e,
  3753. 0x56, 0xd3, 0x74, 0x6c, 0x31, 0x41, 0xab, 0xa6 },
  3754. { 0x57, 0xa7, 0x8e, 0x26, 0xd7, 0x83, 0xdf, 0x6e, 0xe4, 0x49,
  3755. 0x59, 0x36, 0xb4, 0x3b, 0xae, 0x8d, 0xe9, 0x79, 0x18, 0x51,
  3756. 0x32, 0x62, 0xa3, 0x38, 0x00, 0x85, 0xac, 0x6e, 0x17, 0x38,
  3757. 0x2d, 0xa1, 0x00, 0x80, 0xfc, 0x0c, 0xf3, 0x9e, 0xad, 0x9c,
  3758. 0x2d, 0xf1, 0x90, 0xac, 0xb0, 0xe0, 0x86, 0x18, 0x97, 0x71,
  3759. 0x43, 0x01, 0x44, 0xa6, 0x63, 0xda, 0x19, 0x17, 0x57, 0x14,
  3760. 0x85, 0x58, 0xca, 0x58, 0xd0, 0xa7, 0x51, 0xf1, 0x48, 0x8c,
  3761. 0x0d, 0xe6, 0x91, 0x3d, 0xd0, 0x1c, 0xb1, 0x8b, 0x72, 0xb2,
  3762. 0x54, 0x89, 0x16, 0xf7, 0x3f, 0xf3, 0x89, 0x7f, 0x2b, 0x70,
  3763. 0x43, 0xb1, 0x50, 0x44, 0x6c, 0xde, 0x8c, 0x97, 0xf9, 0x32,
  3764. 0x3a, 0x86, 0x56, 0xb6, 0x85, 0xa7, 0x5d, 0x92, 0x66, 0xc5,
  3765. 0x97, 0x3f, 0xbe, 0x73, 0xaa, 0xc0, 0xe9, 0x66, 0xfb, 0x79,
  3766. 0x6b, 0xb1, 0x75, 0x0c, 0x3c, 0x4c, 0x1c, 0x74 },
  3767. { 0x1c, 0xa3, 0x70, 0xc5, 0x81, 0xc4, 0x72, 0xe8, 0x32, 0x51,
  3768. 0xe4, 0x12, 0x8f, 0x6a, 0xda, 0x87, 0xb4, 0xc5, 0x33, 0xa7,
  3769. 0xf6, 0xd3, 0x5b, 0x7e, 0x85, 0x24, 0x07, 0xd8, 0x08, 0xd8,
  3770. 0xa0, 0x36, 0x41, 0x91, 0x04, 0x8f, 0xac, 0x0f, 0x46, 0x2d,
  3771. 0x6c, 0xa5, 0xef, 0x6a, 0xc4, 0x54, 0xe2, 0x88, 0xe6, 0xec,
  3772. 0x93, 0x01, 0xe0, 0x84, 0x17, 0xd7, 0x65, 0x8f, 0x58, 0x9b,
  3773. 0x0c, 0x45, 0x44, 0xd0, 0xec, 0xfa, 0x24, 0x45, 0xad, 0x96,
  3774. 0xad, 0xc3, 0xc4, 0x6b, 0x39, 0x18, 0x67, 0xf0, 0x86, 0x43,
  3775. 0xe5, 0xd7, 0xa6, 0x7d, 0xc2, 0x0e, 0xf5, 0x00, 0x9c, 0x8d,
  3776. 0x59, 0xf5, 0x40, 0xdf, 0x57, 0x9d, 0x72, 0xdf, 0x32, 0x32,
  3777. 0x33, 0xb9, 0x3d, 0xeb, 0x8c, 0x54, 0x27, 0x83, 0x18, 0x86,
  3778. 0xcf, 0x3b, 0x2b, 0x49, 0xa9, 0x27, 0x94, 0x10, 0xc3, 0xac,
  3779. 0x16, 0x1b, 0x34, 0x6f, 0x40, 0xdb, 0xdd, 0xd8 },
  3780. { 0x25, 0x84, 0xb3, 0x4c, 0x4c, 0x33, 0xac, 0x79, 0x32, 0xdb,
  3781. 0x52, 0xf4, 0xe6, 0x26, 0x5b, 0xaa, 0x53, 0xd0, 0x44, 0x8a,
  3782. 0x1d, 0xbd, 0x3b, 0x03, 0x83, 0xbf, 0x46, 0x4e, 0x2e, 0xfd,
  3783. 0x90, 0x03, 0x71, 0xa1, 0x17, 0x20, 0x2b, 0x42, 0x50, 0x72,
  3784. 0x6c, 0x31, 0x1c, 0x3d, 0xc0, 0x86, 0x7e, 0x39, 0xca, 0xd4,
  3785. 0x67, 0xb5, 0x08, 0xcd, 0x1c, 0xd2, 0x0d, 0xd2, 0x80, 0x1d,
  3786. 0xf9, 0x9d, 0xae, 0x74, 0x22, 0x4b, 0x28, 0x82, 0xe1, 0x88,
  3787. 0xf1, 0x2d, 0xb5, 0xde, 0xcf, 0xd0, 0x23, 0x90, 0x4c, 0x35,
  3788. 0x0b, 0xf1, 0x61, 0xa1, 0xc7, 0xbd, 0x31, 0xf7, 0x78, 0xde,
  3789. 0x52, 0x3a, 0x9c, 0xda, 0x12, 0x8b, 0xb5, 0xfe, 0x87, 0xf4,
  3790. 0xf5, 0xb0, 0x1f, 0xdb, 0x49, 0x05, 0xaa, 0xbf, 0x41, 0x16,
  3791. 0x32, 0x02, 0x73, 0x12, 0x87, 0x9c, 0xfd, 0x19, 0x98, 0xb3,
  3792. 0x94, 0xbd, 0x51, 0x71, 0xa8, 0x01, 0xb6, 0x8a },
  3793. { 0x7e, 0x81, 0x13, 0x74, 0x3f, 0x9a, 0xb0, 0x85, 0xac, 0xdd,
  3794. 0xb6, 0xff, 0x95, 0x1c, 0xa4, 0x9a, 0xe1, 0xc8, 0x35, 0x45,
  3795. 0x69, 0x80, 0x7b, 0xaa, 0xaf, 0xb6, 0x02, 0x69, 0xff, 0x51,
  3796. 0xa9, 0xff, 0xfe, 0x6a, 0xd2, 0x2e, 0xf2, 0xd5, 0x73, 0x7c,
  3797. 0x6b, 0x3f, 0xaa, 0xbe, 0x18, 0x78, 0x97, 0xe0, 0x59, 0x27,
  3798. 0xdd, 0x51, 0xdc, 0x7c, 0xb4, 0x88, 0x00, 0x26, 0x67, 0x06,
  3799. 0x4d, 0xf6, 0xc7, 0xd0, 0x2e, 0x42, 0xc3, 0xe1, 0x62, 0xee,
  3800. 0x7c, 0xc8, 0x76, 0xdd, 0x30, 0x45, 0xa8, 0xb9, 0xa6, 0x57,
  3801. 0x3f, 0x27, 0x18, 0x54, 0xac, 0x05, 0x45, 0x24, 0x04, 0xc2,
  3802. 0xbb, 0x36, 0xfa, 0x17, 0xd8, 0x0d, 0x45, 0x5d, 0x18, 0x5c,
  3803. 0x48, 0x74, 0x91, 0x3d, 0x42, 0x2e, 0x71, 0xf7, 0xfd, 0x60,
  3804. 0xb5, 0xf8, 0xa5, 0xe7, 0x40, 0xba, 0x45, 0xfb, 0xe5, 0x23,
  3805. 0x3c, 0xb8, 0x63, 0x89, 0x2a, 0xee, 0xc6, 0x88 },
  3806. { 0x43, 0x6b, 0x8c, 0x64, 0xdf, 0x84, 0x85, 0xa6, 0x00, 0x1c,
  3807. 0x79, 0x18, 0xba, 0x56, 0xfa, 0x91, 0x63, 0x76, 0xc1, 0xa2,
  3808. 0x63, 0xdb, 0x2b, 0xfe, 0xfe, 0x0c, 0x9f, 0x81, 0x39, 0x6d,
  3809. 0xa4, 0x22, 0xe4, 0x53, 0x86, 0x67, 0x32, 0xa1, 0xad, 0x94,
  3810. 0x23, 0xe0, 0xb4, 0x6c, 0xae, 0xec, 0x0b, 0xfe, 0x97, 0xd7,
  3811. 0x1e, 0xff, 0x50, 0x04, 0xf2, 0x86, 0xbb, 0x07, 0x6b, 0x98,
  3812. 0xe3, 0x91, 0xc0, 0xcd, 0xda, 0x77, 0x4d, 0xe5, 0xf5, 0xff,
  3813. 0x43, 0xcb, 0x0c, 0x1c, 0x15, 0x5a, 0x23, 0x86, 0xc4, 0x53,
  3814. 0x98, 0x45, 0xcd, 0x06, 0x15, 0xb0, 0xcd, 0x5e, 0x2f, 0xd0,
  3815. 0x9d, 0xb0, 0xe5, 0x89, 0x66, 0x9c, 0xb5, 0x38, 0x12, 0xd3,
  3816. 0x6c, 0x46, 0xd1, 0xd3, 0x3e, 0x02, 0xd0, 0xb8, 0x04, 0x09,
  3817. 0xb4, 0x7d, 0x91, 0x91, 0x8e, 0xa8, 0xce, 0x11, 0x17, 0xe1,
  3818. 0xad, 0x72, 0x2a, 0x8b, 0x83, 0x0a, 0x88, 0xb1 },
  3819. { 0x52, 0x66, 0xca, 0x9e, 0x6d, 0xbe, 0x95, 0xe1, 0x1d, 0xf7,
  3820. 0xaa, 0xe4, 0x07, 0x68, 0xcb, 0x66, 0x6f, 0x7c, 0x90, 0xe1,
  3821. 0x53, 0x7d, 0xa5, 0xff, 0xe5, 0xdc, 0xde, 0x62, 0x17, 0x95,
  3822. 0x44, 0x05, 0x50, 0x60, 0x07, 0x5e, 0x02, 0x43, 0xdc, 0xb6,
  3823. 0xe5, 0x01, 0x85, 0x17, 0xcd, 0x51, 0xe5, 0x3f, 0xe6, 0x14,
  3824. 0x14, 0x8e, 0xd4, 0x73, 0x94, 0xa3, 0x79, 0x90, 0x8b, 0x90,
  3825. 0x8c, 0x92, 0x79, 0x9d, 0xe4, 0xf9, 0xd4, 0x1e, 0x18, 0xd9,
  3826. 0x70, 0x68, 0xdd, 0x7d, 0x68, 0xc9, 0x43, 0xc8, 0xc2, 0x86,
  3827. 0x63, 0x3b, 0x95, 0xde, 0xb2, 0x3b, 0x41, 0xdf, 0x01, 0xa5,
  3828. 0x2e, 0x33, 0x07, 0x1a, 0x34, 0x7a, 0x54, 0x89, 0x16, 0xaf,
  3829. 0xfc, 0x94, 0x51, 0xdc, 0x5a, 0x77, 0x65, 0xd3, 0x0c, 0x18,
  3830. 0xee, 0xbd, 0xdf, 0xa6, 0x1e, 0x94, 0xa0, 0x77, 0xdf, 0x84,
  3831. 0x88, 0x11, 0x7e, 0x9d, 0x8a, 0xb7, 0x64, 0xbc },
  3832. { 0x41, 0xf3, 0x25, 0xb9, 0x9c, 0xd8, 0x4a, 0x2b, 0xc1, 0x7a,
  3833. 0x09, 0x20, 0x1f, 0xc6, 0x70, 0x3a, 0x0f, 0x32, 0xb4, 0x49,
  3834. 0x4f, 0xb4, 0xcb, 0x67, 0xa9, 0x75, 0x04, 0x4e, 0x62, 0x6b,
  3835. 0xea, 0x27, 0x7d, 0xec, 0x36, 0x2b, 0x7b, 0xd3, 0xe2, 0x20,
  3836. 0x89, 0x9a, 0x20, 0xb4, 0x14, 0x6e, 0xf8, 0xff, 0x20, 0x7c,
  3837. 0x13, 0x47, 0x2b, 0x2f, 0x3b, 0xff, 0x6f, 0xb8, 0xcb, 0x1d,
  3838. 0x14, 0x96, 0x0d, 0x7c, 0xf1, 0xe2, 0x98, 0xfd, 0x94, 0x0c,
  3839. 0xe1, 0xe8, 0x8f, 0x34, 0xe1, 0x74, 0x86, 0xc3, 0x1f, 0xf0,
  3840. 0x35, 0x19, 0xc6, 0xe3, 0x19, 0xfd, 0x70, 0xc1, 0x3e, 0x6e,
  3841. 0x69, 0x24, 0x30, 0x25, 0x7c, 0xfc, 0x21, 0x38, 0xa1, 0xe8,
  3842. 0xfd, 0xe5, 0xa4, 0xfd, 0xb3, 0x41, 0x84, 0x40, 0xeb, 0x04,
  3843. 0xf4, 0x9d, 0xf9, 0xe4, 0xaf, 0x5a, 0x7c, 0x38, 0xe5, 0x40,
  3844. 0x84, 0xdd, 0xee, 0x6d, 0x13, 0x86, 0xb3, 0xdb },
  3845. { 0x56, 0xb3, 0x0f, 0xb6, 0xe5, 0x8c, 0xea, 0x9e, 0x7d, 0xb3,
  3846. 0xd3, 0x7b, 0xd9, 0xaa, 0x18, 0xfd, 0x49, 0xef, 0x46, 0x70,
  3847. 0xeb, 0x8c, 0x34, 0x68, 0x00, 0xf2, 0xe3, 0xac, 0x24, 0x2c,
  3848. 0xa8, 0xfd, 0x89, 0x47, 0xba, 0x6d, 0x9b, 0xfd, 0x07, 0xdd,
  3849. 0xc6, 0x47, 0x70, 0x5e, 0xa7, 0x61, 0xba, 0x43, 0x3d, 0xb6,
  3850. 0xd2, 0x8d, 0x23, 0x40, 0x0a, 0xa7, 0x59, 0x23, 0x52, 0x1f,
  3851. 0x1d, 0xac, 0x89, 0x44, 0xdf, 0xe2, 0xdc, 0x47, 0xf1, 0x7b,
  3852. 0x73, 0x41, 0x98, 0x27, 0x6d, 0x96, 0x28, 0x9e, 0x7b, 0xb9,
  3853. 0x2a, 0x57, 0x8c, 0xb5, 0x06, 0x3e, 0x7b, 0x38, 0x59, 0x05,
  3854. 0xe1, 0xd9, 0x4b, 0xed, 0x33, 0x8d, 0x34, 0x06, 0x47, 0x04,
  3855. 0xa6, 0x20, 0x08, 0x3b, 0xa8, 0xef, 0x28, 0x22, 0x4d, 0x86,
  3856. 0x4c, 0xe5, 0xe7, 0x48, 0x49, 0x8e, 0x00, 0x72, 0x8a, 0xfc,
  3857. 0x31, 0x2e, 0xd5, 0x13, 0xce, 0x28, 0x43, 0xa4 },
  3858. { 0x13, 0x53, 0xcc, 0x57, 0x58, 0xbd, 0xd1, 0x46, 0x89, 0x90,
  3859. 0x81, 0xe5, 0xdc, 0xcf, 0x7f, 0x07, 0xe4, 0x72, 0xfb, 0x8b,
  3860. 0x17, 0xc0, 0xd9, 0x69, 0x58, 0xf8, 0x8c, 0x51, 0xc6, 0x52,
  3861. 0x3a, 0x79, 0x3e, 0xdf, 0x81, 0xf5, 0x85, 0xd3, 0xcd, 0x83,
  3862. 0xde, 0xa9, 0xb4, 0xfa, 0xf8, 0x72, 0x04, 0xae, 0x30, 0x92,
  3863. 0x23, 0x77, 0x90, 0xbb, 0x1c, 0xd8, 0xc4, 0xe0, 0xb7, 0xf8,
  3864. 0x94, 0x39, 0x2a, 0x91, 0x78, 0xb6, 0x34, 0xa5, 0xad, 0xe8,
  3865. 0xa8, 0x8d, 0x0b, 0xfa, 0xef, 0xa5, 0x1f, 0x2f, 0xae, 0xcb,
  3866. 0xc3, 0x4e, 0x40, 0x75, 0x65, 0xf8, 0x07, 0xd3, 0x21, 0x23,
  3867. 0x53, 0x3c, 0xb2, 0xe8, 0x1c, 0x3a, 0x3b, 0xed, 0x9a, 0x44,
  3868. 0x92, 0x4b, 0x00, 0x8a, 0x20, 0xd8, 0x87, 0x98, 0x3a, 0xda,
  3869. 0x44, 0x1f, 0x7a, 0xf9, 0x22, 0xdc, 0x87, 0x32, 0xc8, 0x91,
  3870. 0x07, 0xec, 0xdc, 0xaa, 0xcd, 0x80, 0xa4, 0x28 },
  3871. { 0x3e, 0xc2, 0x18, 0x5d, 0xf4, 0x51, 0xdf, 0x58, 0x72, 0x3a,
  3872. 0x83, 0x0e, 0x5a, 0x21, 0xe7, 0x89, 0x8d, 0x1d, 0xf4, 0x3c,
  3873. 0xbb, 0x1c, 0xc1, 0xf1, 0x8f, 0x41, 0x93, 0xa9, 0xa6, 0xb1,
  3874. 0x6e, 0xbd, 0xbc, 0x69, 0xcf, 0xc0, 0x52, 0x87, 0x7a, 0xe5,
  3875. 0x75, 0xf4, 0xe5, 0x70, 0xf8, 0xa3, 0x62, 0x35, 0xa5, 0x58,
  3876. 0xf9, 0x28, 0x15, 0x5c, 0xe6, 0xde, 0x8a, 0x79, 0x7f, 0xc7,
  3877. 0x95, 0x8d, 0xdb, 0xad, 0x49, 0x68, 0x5d, 0x86, 0xcd, 0x39,
  3878. 0xe4, 0x2b, 0x84, 0x16, 0xa7, 0xe0, 0x72, 0xd6, 0x72, 0x97,
  3879. 0xf1, 0x58, 0x3e, 0xd6, 0x27, 0xf8, 0x12, 0x94, 0x2a, 0xb3,
  3880. 0xa1, 0x64, 0x6a, 0x7b, 0x8e, 0x82, 0xd9, 0x35, 0xbf, 0x51,
  3881. 0x20, 0x47, 0x04, 0x0c, 0x8d, 0x94, 0x34, 0xa0, 0xdc, 0xe8,
  3882. 0xb8, 0xe7, 0x59, 0xe8, 0xb5, 0xa2, 0x64, 0x9b, 0x89, 0xc7,
  3883. 0x28, 0xa5, 0x64, 0x97, 0x39, 0xbf, 0x6e, 0x18 },
  3884. { 0x89, 0xb3, 0x56, 0xb6, 0xa2, 0x11, 0xab, 0xe5, 0x30, 0x87,
  3885. 0xdc, 0x5c, 0xe9, 0xd4, 0x47, 0xa3, 0x5f, 0x1d, 0xe8, 0xcc,
  3886. 0x39, 0xbd, 0xd6, 0x66, 0xbc, 0x93, 0xc5, 0xf3, 0x54, 0x97,
  3887. 0xaa, 0x72, 0xb5, 0x27, 0xc5, 0x7b, 0x8b, 0xc9, 0x76, 0x07,
  3888. 0xb4, 0xa6, 0x7a, 0xe7, 0xd3, 0x89, 0x51, 0xe0, 0xb0, 0xd8,
  3889. 0x4b, 0x1f, 0x8d, 0x7d, 0x43, 0x29, 0x8e, 0x40, 0x61, 0x21,
  3890. 0x06, 0xbc, 0x05, 0x50, 0xba, 0x18, 0x8c, 0x56, 0x7b, 0xc2,
  3891. 0x8b, 0x9d, 0x60, 0x24, 0x2a, 0xcb, 0x12, 0xf0, 0xd2, 0xc8,
  3892. 0x69, 0xd4, 0x9c, 0xe1, 0xc7, 0x78, 0x50, 0xbe, 0x35, 0x03,
  3893. 0x14, 0x9f, 0x37, 0xf3, 0x51, 0xf9, 0xb7, 0xdd, 0x2d, 0x25,
  3894. 0x04, 0x7a, 0xe0, 0x9c, 0x92, 0xe0, 0x2d, 0x93, 0xa0, 0x9f,
  3895. 0x80, 0xf6, 0x69, 0x82, 0xc6, 0xcc, 0x6e, 0x51, 0xd4, 0x12,
  3896. 0xb9, 0xd4, 0xc7, 0xd7, 0x1f, 0x0b, 0xc2, 0xd7 },
  3897. { 0x39, 0xc4, 0xf1, 0x0d, 0x57, 0xc5, 0xd1, 0x26, 0x65, 0x6f,
  3898. 0x18, 0xe0, 0x8a, 0x0d, 0x4f, 0x52, 0x7e, 0x12, 0x02, 0xbe,
  3899. 0x87, 0xad, 0xc2, 0xf9, 0x4e, 0xf3, 0xa8, 0x0e, 0xdc, 0x60,
  3900. 0xee, 0xe5, 0x2c, 0xc2, 0x7c, 0xef, 0x00, 0xbf, 0x79, 0x28,
  3901. 0xe1, 0xbb, 0x97, 0x02, 0x55, 0x84, 0xbc, 0x86, 0x9c, 0xf5,
  3902. 0x81, 0x7f, 0x87, 0x64, 0x86, 0x43, 0x01, 0x16, 0x19, 0xc9,
  3903. 0xcb, 0x16, 0x2d, 0xc2, 0xee, 0x62, 0x8e, 0xce, 0xf4, 0x26,
  3904. 0xda, 0xea, 0x63, 0xe1, 0x1d, 0x26, 0x37, 0x43, 0x36, 0x58,
  3905. 0x11, 0xb0, 0x4f, 0x72, 0x0e, 0x41, 0xd9, 0x4e, 0x56, 0x64,
  3906. 0xa2, 0xda, 0x8b, 0x86, 0x57, 0xa3, 0xf5, 0xb5, 0x6b, 0xf7,
  3907. 0xad, 0xac, 0x9e, 0x5c, 0x41, 0x3a, 0xbf, 0xc9, 0x1c, 0x1d,
  3908. 0x4b, 0x72, 0x0f, 0xb8, 0x0b, 0xaa, 0xa8, 0x71, 0xb7, 0xa9,
  3909. 0xed, 0x6d, 0xb0, 0xaf, 0xdf, 0xdc, 0xc8, 0x37 },
  3910. { 0x41, 0x4b, 0x54, 0x2d, 0x49, 0x15, 0x2b, 0x00, 0xcf, 0xf1,
  3911. 0x64, 0x78, 0x90, 0x69, 0xfb, 0xcc, 0x0b, 0x9a, 0x17, 0x07,
  3912. 0xb6, 0xe5, 0x79, 0xcf, 0x44, 0xc6, 0xc9, 0x77, 0x5a, 0xed,
  3913. 0x24, 0xc4, 0xfd, 0xe5, 0xbe, 0x8d, 0x73, 0xf7, 0xe3, 0x39,
  3914. 0x28, 0x17, 0xeb, 0xb3, 0xd4, 0x6f, 0xf5, 0x1b, 0xbe, 0xc7,
  3915. 0x76, 0x7e, 0xc7, 0xd4, 0xc5, 0x56, 0xf2, 0xb6, 0x37, 0x25,
  3916. 0xf1, 0xaa, 0x12, 0x02, 0xa7, 0xbc, 0x17, 0x75, 0x89, 0x4c,
  3917. 0x44, 0x44, 0xc8, 0x41, 0xe9, 0xea, 0x3b, 0xd1, 0x62, 0x83,
  3918. 0x6d, 0x1e, 0x6d, 0x35, 0xa8, 0x1a, 0x0a, 0x78, 0x7d, 0xac,
  3919. 0x80, 0xd0, 0x81, 0x1a, 0xc7, 0x2d, 0x79, 0xb6, 0x8b, 0x67,
  3920. 0x02, 0x06, 0x8d, 0x84, 0xed, 0xc1, 0xcd, 0xad, 0x4b, 0xd4,
  3921. 0xee, 0x54, 0x55, 0x5b, 0x09, 0x18, 0xa5, 0x18, 0xaa, 0x9d,
  3922. 0xb3, 0xa9, 0xb6, 0x8c, 0xe8, 0x8a, 0xec, 0xd3 },
  3923. { 0x52, 0x67, 0x8d, 0x6a, 0xe0, 0x0b, 0x8b, 0x2a, 0x43, 0x97,
  3924. 0x78, 0x74, 0x44, 0x4e, 0x85, 0x15, 0x3c, 0x73, 0x62, 0xfa,
  3925. 0x96, 0x08, 0xf5, 0xbf, 0xf4, 0x8e, 0x62, 0x3e, 0x27, 0x0d,
  3926. 0x17, 0xa6, 0x13, 0x33, 0x8e, 0xf8, 0xed, 0x55, 0x6a, 0x6c,
  3927. 0x74, 0xab, 0x92, 0x48, 0xd1, 0x84, 0x30, 0x07, 0xaf, 0x1f,
  3928. 0x4a, 0x6e, 0x74, 0x0d, 0xb2, 0x9c, 0xb2, 0xe4, 0xd6, 0x6c,
  3929. 0x1b, 0xa2, 0xae, 0xa9, 0x70, 0x8f, 0x9b, 0x32, 0x44, 0xaf,
  3930. 0x08, 0x2e, 0xe1, 0x31, 0xe8, 0x8f, 0x94, 0x50, 0x69, 0x0a,
  3931. 0x9f, 0x9d, 0x35, 0xac, 0x81, 0xc6, 0xe6, 0xd7, 0x3e, 0xf0,
  3932. 0x56, 0x02, 0x90, 0x13, 0xe4, 0xec, 0xc7, 0x88, 0xc6, 0x17,
  3933. 0x05, 0x12, 0x0e, 0x70, 0x42, 0x5f, 0xb5, 0x12, 0xde, 0xbb,
  3934. 0x20, 0xaf, 0x5b, 0x7f, 0x4e, 0x1b, 0x90, 0xe6, 0x71, 0x3a,
  3935. 0x33, 0xc3, 0x1e, 0x58, 0x60, 0x6e, 0x17, 0x3b },
  3936. { 0x70, 0x40, 0xba, 0x5b, 0xc1, 0x0c, 0xee, 0xdd, 0x04, 0x5a,
  3937. 0xc6, 0x14, 0xc8, 0xef, 0xce, 0xa6, 0x23, 0xa5, 0x9c, 0x1d,
  3938. 0xbf, 0x22, 0xf6, 0x82, 0xb8, 0xee, 0x84, 0x2a, 0x5d, 0x99,
  3939. 0x74, 0xc9, 0x4b, 0x58, 0xf9, 0xb2, 0xd3, 0x05, 0x3b, 0x4f,
  3940. 0x3e, 0xcd, 0x40, 0x75, 0x0f, 0x79, 0x48, 0xa9, 0x0e, 0x41,
  3941. 0x19, 0x6e, 0xf6, 0xd2, 0xd7, 0xff, 0xf3, 0x9c, 0x49, 0x0e,
  3942. 0x5a, 0xa5, 0x69, 0x5c, 0xfa, 0xb4, 0x18, 0xd3, 0x2c, 0x1b,
  3943. 0xf9, 0x06, 0x1a, 0x33, 0xe9, 0x4f, 0x3f, 0x7d, 0x9e, 0x09,
  3944. 0x2b, 0xd6, 0x18, 0x04, 0x93, 0x33, 0x44, 0x85, 0x25, 0x8c,
  3945. 0x2c, 0x52, 0xa5, 0x71, 0xf8, 0x9b, 0x85, 0x09, 0xd4, 0x14,
  3946. 0x2d, 0xfd, 0x49, 0x1f, 0x0e, 0x03, 0xf4, 0x96, 0x92, 0x7a,
  3947. 0x5f, 0x81, 0x52, 0xd6, 0x65, 0x3c, 0xa9, 0x2b, 0xc0, 0xab,
  3948. 0x5d, 0xff, 0x1c, 0x59, 0xdf, 0x36, 0xae, 0xb4 },
  3949. { 0x90, 0x43, 0xa6, 0xd6, 0x0b, 0xd1, 0xc9, 0xc1, 0x3d, 0x28,
  3950. 0x1e, 0x1a, 0xfe, 0x87, 0x32, 0x48, 0xff, 0x2d, 0xff, 0x4e,
  3951. 0x70, 0xf4, 0xea, 0xa3, 0xfa, 0xc3, 0xe5, 0x82, 0x43, 0x65,
  3952. 0x78, 0x4a, 0x97, 0xd2, 0xb7, 0x21, 0xb7, 0x74, 0xc3, 0x1e,
  3953. 0xaf, 0x9a, 0x23, 0xe8, 0xe7, 0xe3, 0x86, 0x0e, 0xc1, 0xfe,
  3954. 0x0d, 0x8a, 0xde, 0x1d, 0x33, 0x6f, 0x65, 0x27, 0x34, 0x9f,
  3955. 0xfb, 0x29, 0x4c, 0x4a, 0x2f, 0xd4, 0xf0, 0xc6, 0x5b, 0x25,
  3956. 0xf0, 0x06, 0x34, 0x92, 0x27, 0x6b, 0x86, 0x67, 0x69, 0x6b,
  3957. 0x1e, 0x01, 0xa7, 0x42, 0x28, 0x14, 0xc1, 0x77, 0x88, 0x86,
  3958. 0xd8, 0x76, 0xd2, 0xcd, 0xa9, 0xd2, 0x9d, 0x76, 0x94, 0xf1,
  3959. 0x27, 0x3b, 0x61, 0x73, 0x0a, 0x09, 0x66, 0x50, 0x1a, 0xd9,
  3960. 0x3d, 0x4f, 0x31, 0xa6, 0x35, 0x03, 0x18, 0x43, 0x27, 0xe0,
  3961. 0x2c, 0x36, 0x4f, 0x81, 0x51, 0x5a, 0x1a, 0x96 },
  3962. { 0x26, 0x36, 0x2b, 0x48, 0x3a, 0x12, 0x5f, 0x35, 0xb0, 0x76,
  3963. 0x0a, 0x3c, 0xb7, 0x3e, 0xac, 0x46, 0xe4, 0x5c, 0x75, 0xdf,
  3964. 0xff, 0xaa, 0xd0, 0x78, 0x7b, 0xd2, 0xc1, 0x38, 0x1e, 0x35,
  3965. 0x79, 0xb2, 0x95, 0x77, 0x1f, 0xa2, 0xdb, 0x4e, 0x80, 0x1a,
  3966. 0x79, 0xbc, 0x85, 0xc6, 0x4e, 0x8d, 0xa1, 0x54, 0x2c, 0x8d,
  3967. 0x38, 0x34, 0x40, 0xc9, 0x2a, 0xf9, 0xfb, 0x12, 0xea, 0x4d,
  3968. 0xf5, 0x97, 0xf6, 0x63, 0xc3, 0xc3, 0x46, 0x3a, 0xe4, 0x06,
  3969. 0x98, 0x80, 0x99, 0x6b, 0x08, 0x22, 0xce, 0xdf, 0xcd, 0x94,
  3970. 0x8a, 0xd7, 0xa0, 0x3a, 0x9c, 0xbe, 0x10, 0x6f, 0xb8, 0x01,
  3971. 0xc8, 0x3d, 0x34, 0xa2, 0xea, 0x06, 0x92, 0x87, 0x54, 0xbd,
  3972. 0x61, 0x62, 0x00, 0xf3, 0x2a, 0xc1, 0x60, 0xcc, 0xe0, 0x08,
  3973. 0x88, 0xac, 0x1b, 0x2d, 0xed, 0x5c, 0xab, 0xbc, 0x3b, 0xe3,
  3974. 0x15, 0x11, 0xa0, 0xfe, 0x76, 0x6c, 0x79, 0x37 },
  3975. { 0x2e, 0x95, 0x2b, 0x20, 0x55, 0x5c, 0x93, 0x5e, 0x45, 0x2f,
  3976. 0xe2, 0x31, 0x09, 0xff, 0x59, 0xba, 0x9c, 0x86, 0xe0, 0xb2,
  3977. 0x96, 0xc6, 0xb5, 0xee, 0x92, 0xc2, 0x65, 0x63, 0xc1, 0x43,
  3978. 0x92, 0x73, 0x5a, 0xce, 0x53, 0xd1, 0xbe, 0xe0, 0xf2, 0xe9,
  3979. 0x19, 0x3f, 0x88, 0xc8, 0x05, 0x4d, 0x54, 0x71, 0x7b, 0x60,
  3980. 0xd4, 0x64, 0xa7, 0xbf, 0x21, 0xda, 0x45, 0xe4, 0xf2, 0xa5,
  3981. 0xbe, 0xa9, 0xcd, 0x49, 0x21, 0xfb, 0xd3, 0x10, 0x1e, 0x06,
  3982. 0xd4, 0x85, 0x39, 0x1f, 0x68, 0x8a, 0x44, 0xf9, 0x71, 0x45,
  3983. 0xa5, 0xee, 0xb2, 0xb1, 0x4c, 0x0d, 0xa1, 0xe9, 0xfd, 0x3d,
  3984. 0x20, 0xea, 0xff, 0x55, 0x2b, 0xac, 0xdb, 0x70, 0x90, 0x72,
  3985. 0xcb, 0x86, 0xb3, 0x33, 0x8b, 0x07, 0xbb, 0x86, 0xaf, 0x5e,
  3986. 0x4b, 0x75, 0x2d, 0x0e, 0xe8, 0x77, 0x69, 0xe9, 0xee, 0x71,
  3987. 0x25, 0xc6, 0x8d, 0x28, 0xee, 0xfc, 0x3e, 0x89 },
  3988. { 0x12, 0x36, 0xd0, 0x17, 0x30, 0x37, 0x8e, 0x4b, 0x1c, 0x0a,
  3989. 0x84, 0xc9, 0xeb, 0x53, 0xef, 0x06, 0xa5, 0xc1, 0x48, 0x96,
  3990. 0xdb, 0x2f, 0x02, 0x73, 0x2b, 0xcd, 0x96, 0xb0, 0xb0, 0x93,
  3991. 0x77, 0xe0, 0xff, 0x60, 0x4a, 0x11, 0x17, 0x55, 0x9a, 0x30,
  3992. 0x7c, 0x14, 0xef, 0x33, 0x53, 0xb1, 0xfa, 0x97, 0x7a, 0xaa,
  3993. 0x53, 0xf2, 0xa4, 0x4d, 0x2f, 0xa8, 0x8e, 0xf8, 0x3f, 0xb3,
  3994. 0x9d, 0x6e, 0xbc, 0xb1, 0xa5, 0xc2, 0x6e, 0x3a, 0x7f, 0xbd,
  3995. 0x85, 0x6d, 0x02, 0x51, 0x13, 0xec, 0x6c, 0x12, 0x20, 0x76,
  3996. 0x28, 0x35, 0xb3, 0x86, 0x18, 0x1e, 0x5e, 0x33, 0xbc, 0x70,
  3997. 0x2f, 0x26, 0xa2, 0x63, 0xec, 0xc9, 0x58, 0x0e, 0x2e, 0xc9,
  3998. 0x35, 0x5f, 0xf2, 0xb5, 0x10, 0x3e, 0x45, 0xb6, 0x00, 0x7b,
  3999. 0x1b, 0x86, 0xe6, 0x8a, 0x5d, 0xbe, 0xd4, 0x3d, 0xfc, 0x58,
  4000. 0x2a, 0x84, 0x6b, 0xca, 0xd7, 0x5f, 0x88, 0x6e },
  4001. { 0x02, 0xa4, 0x80, 0x14, 0x62, 0x0c, 0xb5, 0x6e, 0x35, 0x3c,
  4002. 0x2d, 0x85, 0x4b, 0x9e, 0xc7, 0xea, 0xe6, 0x16, 0xf5, 0x55,
  4003. 0x6c, 0x97, 0xf0, 0xe9, 0x19, 0x88, 0x19, 0x41, 0xd1, 0x46,
  4004. 0x58, 0xf3, 0xb3, 0xfc, 0xd3, 0x65, 0x24, 0x38, 0x90, 0x6d,
  4005. 0xbb, 0x0c, 0x5d, 0x66, 0x74, 0xcc, 0x95, 0xcb, 0x7d, 0x2c,
  4006. 0x72, 0x7d, 0xba, 0x75, 0x30, 0xe9, 0x3b, 0xdd, 0xe1, 0xa8,
  4007. 0x70, 0x6e, 0xf8, 0x17, 0x65, 0xba, 0xf5, 0x94, 0x33, 0x0a,
  4008. 0x32, 0x82, 0xf0, 0xec, 0x0b, 0x38, 0x42, 0x31, 0x45, 0x76,
  4009. 0x55, 0x4f, 0xbb, 0x9f, 0xed, 0x01, 0x08, 0x00, 0x86, 0x52,
  4010. 0x46, 0x29, 0x0e, 0x2b, 0xe7, 0xe2, 0x37, 0x12, 0x71, 0x4c,
  4011. 0x93, 0x4b, 0xc2, 0xb0, 0x13, 0x00, 0xdf, 0xa0, 0x61, 0x3b,
  4012. 0xc3, 0x4b, 0x29, 0xae, 0x47, 0x68, 0x64, 0x60, 0x97, 0xae,
  4013. 0xd7, 0x48, 0x1c, 0x8f, 0xc0, 0x84, 0x37, 0x3b },
  4014. { 0x1d, 0x8b, 0xde, 0x6f, 0x8f, 0x21, 0x7f, 0xe0, 0x31, 0x39,
  4015. 0x04, 0x14, 0xb5, 0x5f, 0x75, 0xf3, 0xa4, 0x4e, 0x2c, 0x25,
  4016. 0xc3, 0x55, 0x6d, 0x18, 0xbe, 0x2d, 0xa8, 0x87, 0xa2, 0xe8,
  4017. 0xc3, 0xda, 0x43, 0x04, 0x46, 0x60, 0x91, 0xeb, 0x25, 0x99,
  4018. 0x19, 0x2a, 0x64, 0xb7, 0x36, 0x9f, 0x46, 0xc7, 0x32, 0x39,
  4019. 0x5d, 0xee, 0x1e, 0x01, 0x14, 0xde, 0xee, 0x95, 0x7c, 0x67,
  4020. 0x49, 0xfc, 0xb8, 0x80, 0xde, 0xc0, 0xff, 0xbf, 0x8e, 0xc9,
  4021. 0x55, 0xfd, 0x99, 0xab, 0x26, 0xbd, 0x9f, 0x15, 0x4d, 0x1f,
  4022. 0xf0, 0xa7, 0xb4, 0x27, 0xaa, 0xda, 0xc2, 0x58, 0xf5, 0xd6,
  4023. 0x3b, 0xbb, 0x83, 0x83, 0x50, 0x83, 0xe8, 0x7e, 0x1b, 0x46,
  4024. 0xd8, 0x28, 0x93, 0x7d, 0x71, 0x7c, 0x9c, 0x27, 0x69, 0xd0,
  4025. 0x11, 0xc5, 0x22, 0x9a, 0x1c, 0x54, 0x90, 0x59, 0xba, 0xa6,
  4026. 0x11, 0xd6, 0xd2, 0x3d, 0x50, 0x6c, 0xcd, 0x38 },
  4027. { 0x34, 0x9c, 0x69, 0x43, 0xc6, 0x10, 0x13, 0xc1, 0xf5, 0x65,
  4028. 0xb2, 0x8b, 0xcc, 0x83, 0x20, 0x9e, 0xb3, 0x6e, 0xd3, 0x5c,
  4029. 0xde, 0xb9, 0x3b, 0x87, 0xb9, 0xb0, 0x0a, 0x02, 0x36, 0x0d,
  4030. 0x3a, 0x26, 0xdc, 0x37, 0x5c, 0x84, 0xee, 0x8d, 0x21, 0x39,
  4031. 0xd8, 0x19, 0x6b, 0x5b, 0xb6, 0xfc, 0x65, 0x5a, 0x74, 0xfc,
  4032. 0x2a, 0x6a, 0xbf, 0xb1, 0x76, 0x38, 0x79, 0x93, 0xf5, 0x7a,
  4033. 0xac, 0x94, 0xd4, 0xd1, 0x59, 0x4d, 0x4d, 0x43, 0xf8, 0x8b,
  4034. 0x05, 0xe6, 0x41, 0x4d, 0xec, 0xcb, 0xa6, 0x72, 0xba, 0x38,
  4035. 0xf4, 0x21, 0x38, 0x26, 0x6f, 0x1b, 0xb6, 0x5c, 0x93, 0x97,
  4036. 0xc9, 0x7a, 0xb1, 0x0f, 0xec, 0x10, 0xdb, 0xe0, 0x67, 0x16,
  4037. 0x5a, 0x06, 0x07, 0x76, 0x86, 0x2b, 0xbc, 0xb7, 0xd6, 0xf0,
  4038. 0x58, 0x46, 0x6e, 0x54, 0xf1, 0x9c, 0xb0, 0x6e, 0xcb, 0x9f,
  4039. 0x03, 0xcd, 0x39, 0xf8, 0xa2, 0x02, 0x89, 0x24 },
  4040. { 0x05, 0x65, 0x87, 0xab, 0x89, 0xc2, 0xd8, 0xfa, 0xa3, 0x2f,
  4041. 0x32, 0x7e, 0x87, 0x25, 0x57, 0x69, 0x21, 0x19, 0x52, 0x99,
  4042. 0x08, 0x17, 0xc5, 0xc2, 0x9c, 0xf8, 0x42, 0xd5, 0x27, 0x18,
  4043. 0x2a, 0xc9, 0xd0, 0xd3, 0xa1, 0x77, 0x07, 0x38, 0x96, 0x35,
  4044. 0x96, 0x08, 0x9e, 0x8a, 0x5f, 0x0e, 0x12, 0x9b, 0x3a, 0x7f,
  4045. 0x3e, 0x90, 0xf4, 0xbd, 0x1f, 0x91, 0xc9, 0x91, 0xf1, 0xc7,
  4046. 0xed, 0x0b, 0xd5, 0x0a, 0x24, 0x3a, 0x66, 0x6e, 0x53, 0x37,
  4047. 0xf4, 0x53, 0xc5, 0xa8, 0xe2, 0xec, 0x21, 0x46, 0x7e, 0xbf,
  4048. 0x2d, 0x74, 0x29, 0x38, 0x73, 0x7c, 0x70, 0xf0, 0x40, 0x0b,
  4049. 0xa5, 0x79, 0xba, 0xef, 0x0c, 0x18, 0x74, 0x9f, 0x75, 0x64,
  4050. 0x08, 0x50, 0x99, 0x3e, 0xb6, 0xf4, 0x58, 0xa2, 0x21, 0xc2,
  4051. 0xb7, 0x80, 0xd5, 0xc2, 0xc4, 0x71, 0x47, 0x00, 0x20, 0x7e,
  4052. 0xd1, 0xb3, 0x94, 0x44, 0x4d, 0xe6, 0xc8, 0x8a },
  4053. { 0x1b, 0x87, 0xf2, 0xed, 0xb8, 0x6c, 0xdb, 0xde, 0x81, 0x5f,
  4054. 0x15, 0x65, 0x3f, 0x1d, 0x0f, 0x6c, 0xc4, 0x38, 0x76, 0x4b,
  4055. 0xf6, 0xca, 0xae, 0x00, 0x63, 0xd0, 0xa0, 0xe9, 0x0f, 0xb1,
  4056. 0x54, 0x38, 0x6f, 0x3c, 0x0d, 0x68, 0x88, 0x3e, 0x09, 0x72,
  4057. 0x58, 0xfd, 0x14, 0x37, 0x6f, 0xff, 0x25, 0x4f, 0xc2, 0xca,
  4058. 0xee, 0x3f, 0x31, 0x90, 0xb5, 0x1e, 0xc2, 0xa8, 0x9e, 0x9f,
  4059. 0xc4, 0x05, 0x2e, 0xe1, 0xc4, 0xad, 0x91, 0x8f, 0x7e, 0x87,
  4060. 0x2a, 0xbb, 0x0e, 0x5b, 0x34, 0xd8, 0x9b, 0xd2, 0x70, 0x3e,
  4061. 0x6b, 0xe8, 0x4c, 0x8f, 0x2a, 0xc2, 0xd2, 0xf6, 0x57, 0xc9,
  4062. 0x50, 0x36, 0x36, 0xb3, 0x59, 0x76, 0x89, 0x49, 0x4c, 0x5e,
  4063. 0xb6, 0x1a, 0x8c, 0x13, 0x5f, 0x03, 0x02, 0x1f, 0xa9, 0xab,
  4064. 0x46, 0xb9, 0x5f, 0xaf, 0xf7, 0xcb, 0x98, 0xe5, 0x14, 0x44,
  4065. 0x00, 0x85, 0x62, 0xed, 0x1c, 0xe4, 0x73, 0x3d },
  4066. { 0x8e, 0x02, 0x27, 0xc4, 0x3e, 0x95, 0xbc, 0x23, 0xb2, 0x2b,
  4067. 0x87, 0xb1, 0xc4, 0xa3, 0xe5, 0x9e, 0xbe, 0x3f, 0x3c, 0x77,
  4068. 0x88, 0x84, 0x8a, 0x99, 0x37, 0x4b, 0xf4, 0x16, 0x97, 0x12,
  4069. 0xa0, 0xca, 0xe2, 0x43, 0x0d, 0xe8, 0xed, 0xfc, 0xa0, 0xcc,
  4070. 0x8d, 0xf9, 0xcb, 0x47, 0x7e, 0xb8, 0x05, 0x6d, 0x87, 0xb9,
  4071. 0xb9, 0x4d, 0x39, 0x63, 0x29, 0x90, 0x4d, 0x62, 0x1e, 0x73,
  4072. 0xba, 0x32, 0x23, 0xa3, 0xb0, 0x50, 0x79, 0x1e, 0x7a, 0xa8,
  4073. 0xcc, 0x54, 0xce, 0x3e, 0x84, 0xe0, 0x2d, 0x10, 0x52, 0xc2,
  4074. 0x07, 0x70, 0xf0, 0x7a, 0x95, 0xd6, 0x80, 0x66, 0x0e, 0x3f,
  4075. 0x55, 0x56, 0xc4, 0x70, 0x31, 0xc6, 0x00, 0x54, 0x50, 0xbd,
  4076. 0xc2, 0x98, 0xd1, 0xef, 0xfb, 0xac, 0xff, 0xd9, 0xdd, 0x8f,
  4077. 0x37, 0x79, 0xa3, 0xe4, 0xb5, 0xa7, 0xce, 0x6b, 0xa7, 0x79,
  4078. 0x35, 0x79, 0x2b, 0xbb, 0x2b, 0x0b, 0x15, 0xb1 },
  4079. { 0x14, 0xb1, 0x5a, 0xb5, 0x40, 0x54, 0x5d, 0x6e, 0x84, 0x8e,
  4080. 0xcb, 0x11, 0x4e, 0xa2, 0x06, 0xbc, 0x52, 0x8e, 0x59, 0x93,
  4081. 0x53, 0x94, 0xe9, 0x50, 0x5e, 0x9a, 0x26, 0xd3, 0x38, 0xa0,
  4082. 0x84, 0xdb, 0x3a, 0x3c, 0x16, 0xb3, 0xbd, 0xa9, 0xf3, 0x06,
  4083. 0xb3, 0xae, 0x38, 0x99, 0x4b, 0x7e, 0xf0, 0xe2, 0xc6, 0xf9,
  4084. 0xdd, 0x0d, 0xa6, 0x16, 0x5e, 0x5d, 0x22, 0x8a, 0x46, 0xe4,
  4085. 0x37, 0x8c, 0x26, 0x1d, 0xb9, 0x8e, 0xce, 0x1b, 0x0c, 0x1a,
  4086. 0x8d, 0xeb, 0xd0, 0x0e, 0x60, 0x3a, 0xbb, 0x3f, 0x82, 0x98,
  4087. 0x86, 0xec, 0xa7, 0x14, 0x32, 0x24, 0xb4, 0xf5, 0x1c, 0xc5,
  4088. 0x74, 0xcb, 0x8b, 0xdc, 0xc9, 0x0c, 0xd0, 0x28, 0x33, 0xe0,
  4089. 0x67, 0xcd, 0xca, 0xe3, 0x02, 0x17, 0x3a, 0x1f, 0xda, 0xf1,
  4090. 0xea, 0xd7, 0xdc, 0xcd, 0x5d, 0xf5, 0xff, 0x05, 0x6e, 0xeb,
  4091. 0x00, 0x0e, 0x22, 0xa8, 0x32, 0x10, 0x96, 0x4d },
  4092. { 0x74, 0x2b, 0xbe, 0xd8, 0xc4, 0x38, 0x9e, 0x2e, 0x1e, 0x16,
  4093. 0xac, 0x76, 0x00, 0x9a, 0x55, 0xf5, 0xce, 0x57, 0xe1, 0xca,
  4094. 0x61, 0x2b, 0x57, 0x1f, 0xcb, 0xba, 0x6e, 0x30, 0x47, 0xea,
  4095. 0x72, 0x2f, 0xdf, 0x20, 0xe0, 0xe9, 0x4b, 0x63, 0xd7, 0x01,
  4096. 0xdb, 0xee, 0x97, 0xa8, 0x18, 0xfb, 0xf9, 0xfa, 0xca, 0x88,
  4097. 0x95, 0x3d, 0x60, 0x94, 0x76, 0x3c, 0xcc, 0x89, 0x6a, 0xe7,
  4098. 0x29, 0x2e, 0x9d, 0x87, 0xd6, 0xf1, 0x8d, 0x2f, 0x3f, 0x09,
  4099. 0xb4, 0xee, 0xc0, 0xad, 0x9f, 0xfa, 0xc8, 0x7b, 0x28, 0xe1,
  4100. 0xa4, 0xee, 0x0d, 0xef, 0x0d, 0x5d, 0x4e, 0x05, 0x79, 0xa0,
  4101. 0xd4, 0xe7, 0x45, 0x87, 0x08, 0x0b, 0x5f, 0x23, 0x25, 0xd9,
  4102. 0x81, 0x76, 0xa7, 0xe0, 0x33, 0xf9, 0xb5, 0x69, 0x90, 0x72,
  4103. 0xcb, 0x8e, 0x3d, 0xfe, 0x2b, 0xe1, 0x60, 0xfd, 0x7a, 0xa5,
  4104. 0x0f, 0x6d, 0x86, 0xc9, 0x66, 0x4c, 0x59, 0xa2 },
  4105. { 0x97, 0xbd, 0x5a, 0x14, 0xb5, 0xc9, 0x41, 0x24, 0x15, 0x1e,
  4106. 0x33, 0x08, 0xf7, 0xcd, 0xd6, 0x9b, 0x71, 0x7d, 0x1c, 0xe6,
  4107. 0xe1, 0xec, 0xc1, 0x7c, 0xb3, 0x90, 0x8b, 0xbf, 0xb8, 0x65,
  4108. 0xc7, 0xf9, 0xb6, 0xbc, 0x34, 0xe8, 0x7d, 0x11, 0xe4, 0x15,
  4109. 0xed, 0x8b, 0x3d, 0xfe, 0xeb, 0x8f, 0xe0, 0xc9, 0xe6, 0xc3,
  4110. 0x5b, 0xb3, 0x4b, 0x18, 0x7c, 0x7d, 0x4c, 0x82, 0x60, 0x57,
  4111. 0x46, 0xe2, 0xa2, 0x78, 0xc8, 0xc2, 0xe0, 0x2d, 0x1f, 0x72,
  4112. 0xe0, 0x11, 0x4d, 0x88, 0xd5, 0x40, 0xe3, 0x64, 0xab, 0x94,
  4113. 0x78, 0x9d, 0xba, 0x22, 0xa9, 0xb7, 0xad, 0x78, 0x7d, 0x54,
  4114. 0xc6, 0x4b, 0x54, 0xe6, 0x6a, 0x7d, 0xde, 0x68, 0xa6, 0xe0,
  4115. 0x8c, 0xb5, 0xca, 0xc7, 0x07, 0xf8, 0xfa, 0x1f, 0x24, 0xd8,
  4116. 0xca, 0x1f, 0x4b, 0xbb, 0xfd, 0x5b, 0xc1, 0x64, 0x3a, 0xbf,
  4117. 0x23, 0xea, 0x86, 0xdc, 0xc1, 0xdc, 0x2c, 0x73 },
  4118. { 0x31, 0x7c, 0x6d, 0x31, 0x48, 0xcc, 0x54, 0x69, 0xf8, 0x92,
  4119. 0xc5, 0x8c, 0x86, 0x4f, 0xba, 0x2e, 0x50, 0xf5, 0x3b, 0xe4,
  4120. 0xa6, 0x42, 0x4c, 0x2a, 0x4d, 0x63, 0x36, 0x7a, 0xff, 0xab,
  4121. 0xda, 0x18, 0xf0, 0x53, 0xe8, 0x48, 0x0c, 0xec, 0x8b, 0x9a,
  4122. 0xb0, 0xd9, 0xb9, 0xba, 0x26, 0xf8, 0x30, 0x5f, 0x03, 0x89,
  4123. 0xbb, 0xd8, 0xca, 0x60, 0x13, 0xc3, 0xaf, 0x77, 0xd2, 0xd1,
  4124. 0x0a, 0x8a, 0x0a, 0xf4, 0x52, 0xe8, 0x4c, 0x5f, 0xa2, 0x0c,
  4125. 0x8b, 0x96, 0x9d, 0xf7, 0x6b, 0x9b, 0x58, 0x2d, 0xe7, 0x5f,
  4126. 0xce, 0x84, 0x35, 0xa8, 0x55, 0x0f, 0x29, 0xd8, 0xb4, 0xf1,
  4127. 0x5f, 0x52, 0xc7, 0x2a, 0x45, 0xf4, 0xb8, 0xb4, 0x93, 0x74,
  4128. 0x5a, 0xbb, 0xbf, 0xdd, 0x7e, 0x52, 0xe5, 0x5b, 0xe6, 0x5e,
  4129. 0x91, 0xe5, 0x70, 0x3d, 0x4b, 0x6d, 0xdd, 0x42, 0xc4, 0x0e,
  4130. 0xe0, 0x1c, 0x62, 0xfe, 0x81, 0xe8, 0x28, 0x61 },
  4131. { 0x6a, 0xe5, 0x97, 0x39, 0x9d, 0xa0, 0xb8, 0xfd, 0x45, 0x16,
  4132. 0x51, 0xf0, 0xee, 0x3d, 0x3f, 0x17, 0x9c, 0xc3, 0x48, 0x3c,
  4133. 0x1d, 0x90, 0x63, 0x0b, 0x37, 0x69, 0x79, 0x6a, 0xc2, 0x76,
  4134. 0x3c, 0x30, 0x49, 0x02, 0x22, 0x79, 0x52, 0x5f, 0x86, 0x36,
  4135. 0xf9, 0xd7, 0x06, 0x41, 0xec, 0xcb, 0xc1, 0x1c, 0xfc, 0x1a,
  4136. 0xe3, 0xf5, 0xef, 0xbe, 0x40, 0x08, 0x6d, 0xb9, 0x6d, 0x16,
  4137. 0xdc, 0x3f, 0x49, 0xda, 0xe9, 0xa1, 0xd2, 0x7f, 0x02, 0x2d,
  4138. 0xe1, 0x81, 0x59, 0xaf, 0xce, 0x48, 0x11, 0x0e, 0x0d, 0x6e,
  4139. 0xa0, 0x14, 0x6b, 0x5a, 0x41, 0x25, 0x2a, 0x19, 0x7f, 0xbe,
  4140. 0xf6, 0x8a, 0x71, 0x8e, 0xb2, 0x3d, 0x6b, 0x01, 0x40, 0x2f,
  4141. 0xe0, 0xc1, 0x0e, 0xa0, 0x8d, 0x5d, 0x20, 0x22, 0xff, 0x20,
  4142. 0x40, 0x8f, 0x55, 0x24, 0x0b, 0xc9, 0x31, 0x0f, 0xac, 0xae,
  4143. 0x0c, 0x35, 0x25, 0xb0, 0x2c, 0xb7, 0xd4, 0x2b },
  4144. { 0x66, 0x49, 0x04, 0x8d, 0xbc, 0x63, 0xfe, 0x72, 0xa8, 0x4e,
  4145. 0xe5, 0xf1, 0xe7, 0x44, 0xb8, 0x2b, 0x9e, 0xf9, 0xcf, 0x3e,
  4146. 0xf1, 0x51, 0xa7, 0x26, 0x8a, 0x85, 0x95, 0xb2, 0xfa, 0x2a,
  4147. 0xff, 0xfc, 0x8f, 0xe7, 0x3b, 0xff, 0x97, 0xb6, 0x49, 0x7e,
  4148. 0x28, 0x88, 0x05, 0x34, 0xd3, 0x46, 0xf2, 0x14, 0x1a, 0x89,
  4149. 0xae, 0x22, 0xd6, 0xcf, 0x00, 0x7a, 0xb0, 0xff, 0x72, 0x26,
  4150. 0x2d, 0x97, 0xa7, 0x74, 0xee, 0x26, 0x1f, 0xb1, 0x5a, 0x2a,
  4151. 0xfa, 0x4c, 0xc5, 0x64, 0x86, 0x1f, 0xfd, 0x5f, 0x87, 0xb7,
  4152. 0xcf, 0x2c, 0x5b, 0x59, 0x8e, 0x61, 0xf9, 0x44, 0xc0, 0x6f,
  4153. 0x4a, 0x85, 0x4e, 0x0c, 0x33, 0x89, 0x1d, 0x5f, 0x23, 0x2a,
  4154. 0x5e, 0xfd, 0x55, 0xbe, 0xb6, 0x25, 0x4b, 0xd5, 0x07, 0x94,
  4155. 0x93, 0x6c, 0x20, 0x75, 0x42, 0x29, 0x30, 0xb1, 0x73, 0xd8,
  4156. 0x57, 0xb1, 0x3b, 0xc7, 0xbf, 0xf4, 0xd2, 0xee },
  4157. { 0x4e, 0xb9, 0x3b, 0x5c, 0xf3, 0xfa, 0x49, 0xec, 0x6f, 0x2d,
  4158. 0x7a, 0xda, 0x0f, 0x13, 0x87, 0x3a, 0x3e, 0x0e, 0x98, 0xe2,
  4159. 0xa9, 0x3b, 0x0d, 0xe4, 0x96, 0xf0, 0x52, 0x6d, 0x16, 0xab,
  4160. 0xed, 0xdd, 0x2c, 0x9c, 0x1c, 0xc1, 0x83, 0xf0, 0xf1, 0xc9,
  4161. 0xfa, 0x17, 0x63, 0x77, 0xef, 0x6b, 0x1e, 0x86, 0x48, 0xb7,
  4162. 0x93, 0x56, 0xcf, 0x6c, 0x80, 0xc7, 0x09, 0x13, 0x6a, 0x6e,
  4163. 0x28, 0x30, 0xec, 0xe2, 0x85, 0x06, 0xab, 0x37, 0x9c, 0x58,
  4164. 0x1e, 0x46, 0xdc, 0xcc, 0xbf, 0xb5, 0x7d, 0x65, 0x48, 0x68,
  4165. 0x31, 0x8d, 0xbc, 0x70, 0x34, 0xb0, 0xab, 0x0b, 0x5a, 0x03,
  4166. 0x2f, 0x8a, 0xa2, 0x9b, 0xe3, 0xdb, 0x4a, 0x6d, 0xd2, 0x26,
  4167. 0xbf, 0xfc, 0x14, 0x8e, 0x81, 0x49, 0x3d, 0x9f, 0xfa, 0xb5,
  4168. 0x22, 0x6f, 0xd4, 0x7b, 0x0b, 0xd8, 0x25, 0xaa, 0xda, 0xa0,
  4169. 0x91, 0xb7, 0xbb, 0x78, 0x1e, 0x8b, 0x76, 0x0d },
  4170. { 0x2b, 0x58, 0x2d, 0x93, 0x7c, 0x04, 0x3f, 0x68, 0xcd, 0xf5,
  4171. 0xc9, 0x0b, 0xc7, 0x00, 0x1c, 0xc8, 0x53, 0xe7, 0x81, 0xde,
  4172. 0x86, 0x80, 0x41, 0x72, 0x56, 0x05, 0xe2, 0x23, 0xe9, 0xc6,
  4173. 0xc4, 0xe0, 0xbf, 0x56, 0x54, 0x06, 0xa1, 0x9d, 0x48, 0xb6,
  4174. 0x82, 0xcf, 0xfd, 0xb3, 0xd9, 0x9f, 0x0c, 0x16, 0x18, 0x9a,
  4175. 0x5c, 0xc8, 0xbd, 0x8a, 0x68, 0x78, 0x12, 0xae, 0xef, 0xef,
  4176. 0xef, 0x3d, 0x51, 0x73, 0x93, 0x1c, 0x3f, 0x52, 0x75, 0x87,
  4177. 0x8a, 0x2a, 0xaf, 0xbb, 0xb6, 0x85, 0xfd, 0x33, 0x67, 0x6f,
  4178. 0x82, 0x22, 0x24, 0x19, 0xc1, 0x3c, 0xa2, 0xca, 0xbb, 0x9e,
  4179. 0x88, 0x97, 0x05, 0xba, 0x00, 0x68, 0x1d, 0x84, 0x9a, 0x57,
  4180. 0x55, 0x52, 0x79, 0xb7, 0x1b, 0x00, 0x14, 0xdf, 0x49, 0x1c,
  4181. 0x3f, 0x6f, 0xd1, 0x3d, 0x74, 0xf5, 0xc4, 0x02, 0x3f, 0x51,
  4182. 0xbd, 0x89, 0xf7, 0xe5, 0xe1, 0x1f, 0xae, 0x32 },
  4183. { 0x78, 0x61, 0x51, 0x09, 0x86, 0x2d, 0xb4, 0xc0, 0x4f, 0xa4,
  4184. 0x9c, 0xe3, 0xfa, 0x57, 0x4a, 0xfd, 0xc1, 0xd8, 0xeb, 0x48,
  4185. 0xeb, 0x7c, 0xee, 0x9a, 0x4b, 0xee, 0x10, 0xd7, 0xb3, 0xf2,
  4186. 0xf7, 0xaa, 0xfe, 0x8e, 0x33, 0xcd, 0xe9, 0x3a, 0xcf, 0xcd,
  4187. 0x91, 0x5c, 0x3d, 0x06, 0xf5, 0x08, 0x64, 0xa3, 0x71, 0xcb,
  4188. 0x93, 0x6b, 0x83, 0x1e, 0xdd, 0xfb, 0xa8, 0xe3, 0x92, 0x64,
  4189. 0x9e, 0x34, 0x8c, 0x09, 0xce, 0xed, 0x17, 0x2c, 0x2f, 0x11,
  4190. 0xc4, 0x1c, 0x85, 0xe2, 0x11, 0x03, 0xd9, 0xef, 0xf3, 0x2a,
  4191. 0x78, 0x75, 0x0d, 0xb4, 0xc9, 0x8d, 0xbd, 0xd5, 0xdc, 0xba,
  4192. 0xc9, 0xf3, 0xb5, 0x7f, 0xa2, 0x1c, 0x5d, 0x60, 0x38, 0x26,
  4193. 0x54, 0x77, 0x65, 0x06, 0xc0, 0x97, 0xb3, 0xd2, 0x07, 0xff,
  4194. 0xf6, 0x6f, 0xa7, 0x33, 0x80, 0xf5, 0xe2, 0xb6, 0x9e, 0xca,
  4195. 0xa1, 0x16, 0x5c, 0x82, 0x81, 0xab, 0xc2, 0xae },
  4196. { 0x54, 0x0b, 0x6b, 0xb7, 0x6b, 0xc9, 0xc0, 0x25, 0x9f, 0x9a,
  4197. 0x28, 0xab, 0x84, 0x16, 0x1c, 0x68, 0x6d, 0x51, 0xf9, 0x3c,
  4198. 0x3a, 0xa9, 0x56, 0xf9, 0xb4, 0xd8, 0x0e, 0xc0, 0xc3, 0xaf,
  4199. 0xa2, 0xcf, 0x64, 0x37, 0x36, 0x05, 0x54, 0x28, 0xde, 0xb5,
  4200. 0x0c, 0x8a, 0xdc, 0x05, 0x34, 0x37, 0x4c, 0x20, 0x18, 0xd4,
  4201. 0x04, 0xe4, 0x67, 0xb8, 0xe8, 0x7b, 0x57, 0xb7, 0x8b, 0x93,
  4202. 0x8e, 0xec, 0x6e, 0x1e, 0x9b, 0x0a, 0x43, 0xee, 0x28, 0x4d,
  4203. 0x3c, 0xcf, 0xbb, 0xe4, 0xed, 0x12, 0xf4, 0x27, 0xef, 0x5a,
  4204. 0x7a, 0x14, 0xcf, 0xfe, 0x82, 0xbd, 0x5f, 0xcd, 0x2a, 0x3a,
  4205. 0x43, 0x97, 0xd7, 0xcd, 0xbb, 0x24, 0x37, 0x9a, 0xe0, 0x94,
  4206. 0x51, 0xb4, 0xf1, 0xab, 0xc7, 0x6e, 0xe1, 0xe8, 0xf8, 0xc3,
  4207. 0xa4, 0x54, 0x63, 0x1a, 0xa1, 0x44, 0xfd, 0x0f, 0x0d, 0xa5,
  4208. 0x3f, 0xe3, 0xf4, 0x80, 0x7a, 0xe7, 0x2c, 0x21 },
  4209. { 0x89, 0x7c, 0xab, 0x14, 0x92, 0xe0, 0x38, 0x8c, 0x2c, 0xa2,
  4210. 0x58, 0x67, 0x52, 0xdd, 0x50, 0xf6, 0xe1, 0xc2, 0x87, 0x76,
  4211. 0x5e, 0x20, 0xe8, 0x18, 0x3d, 0xb7, 0xd1, 0xa3, 0x44, 0x61,
  4212. 0xcd, 0x29, 0xe0, 0xb5, 0x05, 0xa1, 0x75, 0x02, 0x05, 0x38,
  4213. 0xf6, 0x9d, 0x98, 0xf0, 0x7c, 0xad, 0xf0, 0xe9, 0xdc, 0xe7,
  4214. 0xda, 0xbe, 0x0c, 0x92, 0x4d, 0x60, 0x2a, 0x97, 0x3d, 0x97,
  4215. 0xaa, 0xbf, 0x65, 0x85, 0x43, 0xaf, 0xbc, 0x78, 0xea, 0x36,
  4216. 0x2f, 0x45, 0x43, 0x6d, 0xb2, 0x93, 0x1d, 0x62, 0x98, 0xeb,
  4217. 0x2e, 0x4a, 0x83, 0x7e, 0xb9, 0xbc, 0x53, 0xde, 0x6a, 0x21,
  4218. 0xe9, 0xad, 0x58, 0x77, 0x57, 0x0f, 0x1f, 0xb0, 0x7a, 0x49,
  4219. 0xac, 0xdc, 0x78, 0x9a, 0xea, 0xfa, 0xe1, 0x45, 0xbb, 0xa8,
  4220. 0xcd, 0x81, 0x4e, 0xf5, 0x66, 0x12, 0xd8, 0x6e, 0x05, 0xd0,
  4221. 0x04, 0xe1, 0x73, 0x4c, 0x32, 0x1d, 0x31, 0x5d },
  4222. { 0x64, 0xb0, 0x07, 0x63, 0x47, 0x6b, 0x0e, 0xc5, 0xdc, 0x62,
  4223. 0xc4, 0xa4, 0xff, 0xf6, 0x73, 0xaa, 0x2f, 0xf4, 0x7d, 0xac,
  4224. 0x30, 0xeb, 0x93, 0xa5, 0x2c, 0x82, 0x2e, 0x67, 0x20, 0xa5,
  4225. 0x18, 0x2d, 0xab, 0x90, 0x6b, 0xa3, 0xbf, 0x6c, 0xd9, 0x49,
  4226. 0x82, 0xf6, 0x29, 0xaa, 0xa6, 0xc2, 0x4f, 0xa6, 0x56, 0x4f,
  4227. 0x2a, 0x4d, 0xcf, 0x0a, 0xc9, 0x3e, 0x44, 0xf8, 0xf7, 0xfb,
  4228. 0x14, 0xfa, 0x88, 0xd2, 0xd8, 0x83, 0x62, 0x8b, 0x6c, 0x91,
  4229. 0x2f, 0xe0, 0x70, 0xd2, 0xed, 0x84, 0x0d, 0x1a, 0x83, 0x1e,
  4230. 0x74, 0x98, 0x4b, 0x11, 0xf3, 0x83, 0x37, 0x1c, 0x44, 0x92,
  4231. 0x81, 0x05, 0xb9, 0x74, 0x11, 0xa0, 0x86, 0xad, 0x0d, 0x3a,
  4232. 0x7a, 0xc8, 0x96, 0x74, 0x06, 0x87, 0xbf, 0x2c, 0x40, 0x58,
  4233. 0x14, 0x15, 0xc1, 0x1d, 0x36, 0x4c, 0xa4, 0x38, 0x20, 0x0a,
  4234. 0x59, 0xed, 0x38, 0x13, 0x0d, 0x8b, 0xab, 0x8a },
  4235. { 0x7d, 0xd2, 0x2e, 0xa6, 0x66, 0x18, 0xed, 0x8c, 0x29, 0x1f,
  4236. 0xb8, 0x2c, 0x09, 0xe5, 0x0e, 0x84, 0x25, 0x55, 0x94, 0x24,
  4237. 0x19, 0xd6, 0x8e, 0x36, 0xe3, 0x92, 0x51, 0x53, 0x57, 0x6c,
  4238. 0xa9, 0x64, 0x0b, 0x52, 0xc3, 0x9f, 0xb0, 0x70, 0xa2, 0x93,
  4239. 0x80, 0x17, 0x8b, 0x12, 0xc2, 0x37, 0x00, 0x2a, 0xfb, 0xc7,
  4240. 0x6f, 0x56, 0xe1, 0x21, 0x7a, 0x95, 0x42, 0xda, 0xf0, 0xbb,
  4241. 0x9e, 0xf5, 0x55, 0x1c, 0x21, 0x7c, 0xab, 0x32, 0xc3, 0x9b,
  4242. 0x5a, 0xcf, 0x3f, 0x8f, 0xc0, 0x9d, 0xdc, 0x08, 0x4e, 0x01,
  4243. 0xd8, 0x78, 0x49, 0x35, 0x01, 0xec, 0x5c, 0xf1, 0xcc, 0xfd,
  4244. 0x3b, 0x33, 0xce, 0x26, 0xca, 0xd0, 0x7c, 0xe7, 0xf4, 0xc4,
  4245. 0x07, 0x38, 0xee, 0xd4, 0xc7, 0xf1, 0x3e, 0x29, 0x6c, 0x25,
  4246. 0x36, 0x93, 0xb1, 0xdb, 0x7f, 0x73, 0xb7, 0xef, 0x99, 0x52,
  4247. 0x1e, 0x3f, 0x53, 0x3e, 0xb3, 0xc9, 0xa4, 0x04 },
  4248. { 0x31, 0x37, 0x7c, 0x66, 0x5f, 0x18, 0xfc, 0xc8, 0x95, 0x59,
  4249. 0xc8, 0x8a, 0xb1, 0x3b, 0x74, 0x89, 0x5c, 0x8f, 0x98, 0xfc,
  4250. 0x51, 0xca, 0xdf, 0x0f, 0x68, 0x5f, 0xf9, 0x4b, 0xbd, 0x3b,
  4251. 0x9d, 0x82, 0x95, 0xf9, 0x49, 0x30, 0xda, 0xc6, 0xf7, 0x90,
  4252. 0x60, 0xaf, 0xd4, 0x47, 0xb6, 0xf6, 0xa9, 0x16, 0x41, 0x64,
  4253. 0x03, 0xc1, 0x14, 0x14, 0xa4, 0x85, 0x67, 0xa9, 0xf6, 0x33,
  4254. 0x20, 0x1a, 0x42, 0x37, 0x6b, 0x0d, 0x3d, 0xdd, 0x83, 0x24,
  4255. 0x7b, 0x72, 0x8c, 0xf4, 0xeb, 0x32, 0x82, 0xe5, 0x74, 0x2b,
  4256. 0x39, 0xa1, 0x48, 0x92, 0x96, 0x95, 0x7f, 0x34, 0x2c, 0x75,
  4257. 0xd4, 0xb9, 0x30, 0x63, 0x57, 0x18, 0x95, 0x6d, 0x7f, 0x26,
  4258. 0xe5, 0x12, 0x77, 0xfc, 0x1e, 0x6e, 0xe5, 0x37, 0x9f, 0x5a,
  4259. 0x84, 0x5a, 0xde, 0x0c, 0xc7, 0x04, 0x55, 0x62, 0xfb, 0x25,
  4260. 0x7f, 0xfe, 0x84, 0x4b, 0x49, 0xcb, 0xb3, 0xbf },
  4261. { 0x3d, 0xac, 0xc5, 0x0c, 0xa1, 0x1e, 0x52, 0x71, 0x3a, 0x5f,
  4262. 0xd6, 0x95, 0x58, 0x7e, 0xda, 0xbd, 0xef, 0x45, 0x42, 0x3c,
  4263. 0x64, 0x8a, 0x01, 0x79, 0xe2, 0x89, 0xd0, 0x24, 0x0c, 0x8f,
  4264. 0x45, 0x24, 0xb3, 0x5a, 0x98, 0x24, 0x00, 0xd5, 0xe4, 0x67,
  4265. 0xd8, 0xf9, 0x93, 0xb6, 0x05, 0x62, 0x4d, 0xd2, 0xfc, 0xf3,
  4266. 0x64, 0xfa, 0xa9, 0x50, 0x70, 0xe0, 0x44, 0x09, 0x76, 0x63,
  4267. 0x03, 0xd3, 0xe6, 0x0a, 0xe5, 0x2e, 0xfb, 0x53, 0x69, 0xe9,
  4268. 0x0a, 0x6f, 0x43, 0x98, 0x80, 0xcf, 0x25, 0x96, 0xda, 0xd2,
  4269. 0x75, 0x2e, 0xd1, 0x59, 0x71, 0xbf, 0xe6, 0x07, 0x9d, 0x95,
  4270. 0xcd, 0x4f, 0xb0, 0x9a, 0x19, 0xb5, 0x0c, 0x2d, 0xd4, 0x8a,
  4271. 0xf7, 0xb4, 0xb3, 0x75, 0x7e, 0x93, 0xe8, 0x5d, 0x75, 0x76,
  4272. 0xcb, 0x63, 0x2d, 0xcc, 0xca, 0x9f, 0x01, 0xcc, 0x36, 0xf8,
  4273. 0x35, 0xc5, 0xde, 0x09, 0x7d, 0xcf, 0xb3, 0x5f },
  4274. { 0x86, 0x69, 0x49, 0xe1, 0x69, 0x47, 0x44, 0xf7, 0x46, 0x9b,
  4275. 0x75, 0x61, 0x23, 0x24, 0x8a, 0x31, 0xbe, 0xd3, 0xf2, 0xc3,
  4276. 0xe0, 0x69, 0xdf, 0x05, 0x5d, 0xd2, 0xdf, 0x7a, 0x60, 0xdf,
  4277. 0x19, 0x4d, 0xcd, 0x1e, 0xfd, 0xb4, 0xf3, 0xe9, 0xdf, 0x64,
  4278. 0x6f, 0xd5, 0x76, 0x87, 0xf9, 0xdd, 0x9f, 0x0a, 0x7a, 0xb2,
  4279. 0x44, 0x04, 0xb1, 0x7b, 0x28, 0x42, 0xe5, 0x1a, 0x0d, 0x53,
  4280. 0x88, 0x07, 0xf3, 0xa0, 0x0a, 0x9b, 0xa3, 0x85, 0xb9, 0xbf,
  4281. 0xd2, 0xfb, 0xf3, 0xfb, 0x62, 0x10, 0xae, 0xc2, 0x3e, 0xaf,
  4282. 0xf7, 0xb7, 0xb9, 0xba, 0xdf, 0x1c, 0xdb, 0x49, 0xf3, 0x5e,
  4283. 0x45, 0x18, 0xaa, 0x28, 0x6f, 0xd0, 0xb6, 0xc6, 0x4d, 0x28,
  4284. 0xd8, 0x48, 0x1e, 0x45, 0x80, 0x7f, 0x5c, 0xe9, 0xbe, 0x78,
  4285. 0x2e, 0x8a, 0xa4, 0x6d, 0xcb, 0xe1, 0x70, 0x53, 0xc5, 0x27,
  4286. 0xcb, 0x3e, 0x4f, 0x94, 0x64, 0x99, 0xae, 0x4c },
  4287. { 0x57, 0x43, 0x52, 0xb8, 0x8b, 0x1f, 0xa5, 0x98, 0xdc, 0x38,
  4288. 0x84, 0xff, 0x5b, 0x08, 0x31, 0x77, 0xc2, 0xd3, 0x83, 0x73,
  4289. 0x94, 0xf7, 0xec, 0x4e, 0x37, 0xa5, 0x05, 0x69, 0xc2, 0x95,
  4290. 0xdc, 0x46, 0xfa, 0x84, 0x4e, 0xb0, 0x7b, 0x96, 0xd4, 0x80,
  4291. 0x0d, 0x2b, 0x84, 0x1b, 0x33, 0x29, 0xdb, 0x82, 0x85, 0x2d,
  4292. 0x44, 0x35, 0x4e, 0x2d, 0x5d, 0xd0, 0xd7, 0x9d, 0xb1, 0xbb,
  4293. 0xd7, 0x4c, 0x70, 0x91, 0x3b, 0x66, 0x4b, 0x1e, 0x7d, 0x08,
  4294. 0x77, 0xb5, 0x50, 0x01, 0x39, 0x4e, 0x99, 0x0c, 0x03, 0xa0,
  4295. 0x38, 0x59, 0x8e, 0xa1, 0x06, 0x6c, 0xb4, 0xd7, 0x93, 0xaf,
  4296. 0x1f, 0xbd, 0xd3, 0xb2, 0x18, 0xab, 0xc9, 0x58, 0x1c, 0x3e,
  4297. 0x84, 0x8e, 0x3d, 0x58, 0x0c, 0x92, 0xe9, 0x21, 0xb2, 0x3c,
  4298. 0xf2, 0x90, 0x2c, 0xd6, 0xf3, 0x33, 0xf5, 0x4a, 0x6f, 0xbf,
  4299. 0x3a, 0x9a, 0x0d, 0xa5, 0x3f, 0x4a, 0xb0, 0x7a },
  4300. { 0x3e, 0x43, 0x1a, 0xf2, 0x06, 0xae, 0x3c, 0x4f, 0x24, 0x18,
  4301. 0xc6, 0x24, 0xd3, 0xb6, 0xa3, 0xa1, 0x38, 0x84, 0xd5, 0xd8,
  4302. 0xf8, 0x53, 0xa9, 0x4e, 0x5f, 0xcb, 0xcc, 0x09, 0x69, 0x96,
  4303. 0x01, 0x1a, 0x44, 0x45, 0x21, 0xa1, 0x09, 0x9f, 0x68, 0x73,
  4304. 0x3f, 0x20, 0x43, 0x40, 0xd2, 0x94, 0x64, 0x93, 0x25, 0x3a,
  4305. 0x3a, 0x69, 0xf0, 0xd6, 0x78, 0x2b, 0xa9, 0x63, 0x35, 0xbc,
  4306. 0x09, 0x1c, 0x19, 0xeb, 0x4e, 0x76, 0x48, 0xc7, 0x61, 0xc2,
  4307. 0x20, 0x1d, 0x99, 0x6c, 0xca, 0xf0, 0xde, 0x20, 0x28, 0xd8,
  4308. 0x2e, 0xc2, 0x7e, 0x49, 0x28, 0x59, 0x85, 0xdf, 0x8a, 0x84,
  4309. 0xec, 0x00, 0xba, 0xa7, 0x01, 0x98, 0xdd, 0x9d, 0xa8, 0x60,
  4310. 0x78, 0x27, 0x0d, 0x56, 0x7c, 0x44, 0xab, 0x59, 0x7b, 0xe6,
  4311. 0x5f, 0xd0, 0x3c, 0x19, 0xfd, 0x26, 0x0b, 0x48, 0x7e, 0xaf,
  4312. 0xed, 0x21, 0x93, 0xf7, 0x0d, 0x5d, 0x7c, 0xe9 },
  4313. { 0x6d, 0xad, 0x3f, 0x15, 0xe2, 0x66, 0x4d, 0x35, 0x1c, 0x3d,
  4314. 0x7d, 0x82, 0xa2, 0x03, 0xce, 0xf1, 0x8a, 0x0f, 0xbb, 0xd1,
  4315. 0x86, 0xbb, 0xfa, 0x41, 0xf2, 0x69, 0x31, 0xba, 0xad, 0x89,
  4316. 0x6c, 0x2a, 0xcd, 0x57, 0x76, 0x66, 0x53, 0xbb, 0xb3, 0x43,
  4317. 0x4f, 0x1c, 0x96, 0x86, 0x11, 0xe9, 0x35, 0xc5, 0x7f, 0xc2,
  4318. 0xa3, 0xed, 0x85, 0x1e, 0xe4, 0x1e, 0xfd, 0x1b, 0xfe, 0x44,
  4319. 0x1a, 0x94, 0x2f, 0x7d, 0x33, 0x6a, 0x4f, 0xda, 0xae, 0xfd,
  4320. 0xb6, 0x46, 0xd0, 0x90, 0xa6, 0xa3, 0xaa, 0x45, 0x6d, 0x6f,
  4321. 0xfe, 0xb2, 0xaf, 0xa6, 0x36, 0xf0, 0xb7, 0x55, 0x43, 0xae,
  4322. 0x07, 0x41, 0xd9, 0x2f, 0x29, 0x00, 0xa8, 0x6d, 0x15, 0x98,
  4323. 0x50, 0x93, 0xa6, 0xd3, 0xbf, 0x3a, 0xf4, 0xd0, 0x54, 0x41,
  4324. 0x07, 0x68, 0x36, 0x50, 0x1a, 0xae, 0xd0, 0xc0, 0x33, 0xc3,
  4325. 0xf9, 0x67, 0xd9, 0x39, 0x83, 0xd3, 0x81, 0xf1 },
  4326. { 0x24, 0x38, 0xe9, 0xd4, 0x5f, 0x51, 0x7a, 0x3f, 0xc8, 0x7a,
  4327. 0x53, 0x90, 0x27, 0xd2, 0xd5, 0x5f, 0xfc, 0x3e, 0xe7, 0xc6,
  4328. 0x0b, 0xff, 0x83, 0x7c, 0x56, 0x59, 0x0b, 0xa4, 0x93, 0x83,
  4329. 0xd2, 0xd3, 0x08, 0xe5, 0x84, 0x48, 0x67, 0x23, 0x75, 0xc5,
  4330. 0x11, 0x09, 0xa6, 0x13, 0xdf, 0x3a, 0x8d, 0xc3, 0x51, 0x7f,
  4331. 0x2f, 0x1d, 0xbe, 0xbd, 0x01, 0x29, 0xb0, 0x69, 0x59, 0x9d,
  4332. 0xf8, 0x95, 0x8c, 0x6f, 0x7a, 0x41, 0x40, 0x21, 0x71, 0x98,
  4333. 0xb2, 0x1b, 0x97, 0x4a, 0x9f, 0x03, 0x8c, 0x0a, 0xcb, 0xa7,
  4334. 0x06, 0x1b, 0xc9, 0x26, 0xc3, 0xd9, 0x6a, 0x19, 0x15, 0x09,
  4335. 0x0f, 0x55, 0xd9, 0x90, 0x3c, 0x43, 0x5e, 0x76, 0x90, 0x4a,
  4336. 0x33, 0xc5, 0x8e, 0xb6, 0x2c, 0xc2, 0x78, 0xc6, 0xf1, 0x33,
  4337. 0x21, 0xd5, 0x62, 0x19, 0xc5, 0xb6, 0xe7, 0xdf, 0xb1, 0x28,
  4338. 0xd1, 0x94, 0x0b, 0x7d, 0x12, 0xec, 0x35, 0xa1 },
  4339. { 0x13, 0xf3, 0x90, 0x11, 0xaf, 0xe3, 0x0e, 0x01, 0x00, 0xa8,
  4340. 0xb7, 0xb2, 0x96, 0x20, 0x0e, 0x67, 0x9d, 0x2a, 0x97, 0xcd,
  4341. 0xff, 0x79, 0x5b, 0xb3, 0xf4, 0xad, 0xa5, 0x11, 0xbd, 0x41,
  4342. 0x6b, 0x67, 0xdd, 0xb4, 0x7c, 0x73, 0x68, 0xf1, 0xf7, 0xf2,
  4343. 0x8b, 0x33, 0xef, 0x46, 0x2a, 0x51, 0x34, 0x90, 0xf1, 0xb4,
  4344. 0x63, 0x3c, 0xd7, 0x70, 0x1f, 0x5b, 0x20, 0x5b, 0x4c, 0x89,
  4345. 0x1b, 0xe2, 0x81, 0xcb, 0x71, 0x50, 0xe0, 0x4b, 0x6b, 0xbc,
  4346. 0x4f, 0xb1, 0xf7, 0x37, 0xc3, 0xc2, 0xf1, 0xda, 0x60, 0x10,
  4347. 0x6f, 0x14, 0x42, 0x9c, 0xd0, 0xb3, 0xe2, 0x31, 0xbd, 0x0d,
  4348. 0xac, 0x54, 0xe6, 0x3f, 0x24, 0x90, 0x61, 0xc6, 0x1d, 0x94,
  4349. 0x12, 0xe5, 0x1e, 0xb5, 0xae, 0xf1, 0xcd, 0xc9, 0x97, 0xb6,
  4350. 0x5d, 0xdf, 0xe5, 0x5f, 0x1a, 0x32, 0xf3, 0xc9, 0xbe, 0xd5,
  4351. 0xc4, 0xa4, 0x53, 0x08, 0x88, 0x15, 0xaf, 0x3c },
  4352. { 0x45, 0x8d, 0x4b, 0x6b, 0x68, 0x07, 0x03, 0xb6, 0x17, 0xa7,
  4353. 0xce, 0x24, 0xcb, 0xda, 0x1b, 0x0b, 0x29, 0x84, 0x66, 0xd4,
  4354. 0x72, 0x2b, 0x7b, 0xc9, 0xbc, 0x07, 0x5b, 0x73, 0xd8, 0xc4,
  4355. 0xba, 0x8b, 0x33, 0xdd, 0x77, 0xa0, 0x1c, 0xf2, 0xb8, 0x66,
  4356. 0x24, 0x97, 0xe0, 0xbf, 0xa4, 0xd8, 0xd0, 0x18, 0xfe, 0x31,
  4357. 0x1a, 0xd0, 0x1b, 0xbd, 0xa0, 0x05, 0xce, 0xea, 0x99, 0xd5,
  4358. 0x56, 0x41, 0x51, 0x10, 0x29, 0x3b, 0xb5, 0xe7, 0x53, 0x5c,
  4359. 0x5d, 0x0b, 0x2a, 0x83, 0x8c, 0xa8, 0x26, 0x3b, 0x60, 0x62,
  4360. 0x3f, 0x90, 0xd7, 0x10, 0x68, 0xc0, 0xe5, 0x84, 0xcb, 0xb8,
  4361. 0x30, 0x24, 0x99, 0x80, 0x45, 0xdf, 0xde, 0x8d, 0x80, 0x45,
  4362. 0x26, 0x8b, 0xca, 0x77, 0xf8, 0x79, 0x30, 0x68, 0x1c, 0x9a,
  4363. 0x51, 0x5a, 0x50, 0x61, 0x10, 0xf3, 0x4a, 0x29, 0xff, 0x46,
  4364. 0x3d, 0xd2, 0x96, 0xef, 0x7b, 0xd0, 0xc8, 0x27 },
  4365. { 0x5f, 0x13, 0xf5, 0xfa, 0xb6, 0xfb, 0xbf, 0x91, 0x62, 0x8e,
  4366. 0x3b, 0x06, 0x56, 0x68, 0xf9, 0x5c, 0x00, 0xae, 0x04, 0x57,
  4367. 0x62, 0x4d, 0xb0, 0x1a, 0x32, 0x59, 0xef, 0x18, 0x2f, 0x72,
  4368. 0x55, 0x6b, 0x68, 0xef, 0x0b, 0x70, 0x8f, 0x27, 0xd4, 0x9f,
  4369. 0x21, 0xae, 0x03, 0x19, 0x97, 0x84, 0x70, 0x64, 0xfe, 0x5b,
  4370. 0x5c, 0xb5, 0x85, 0xc9, 0xeb, 0x8a, 0x3e, 0xfc, 0x2e, 0x9b,
  4371. 0x1b, 0x48, 0x20, 0xc3, 0xea, 0xe9, 0x5e, 0xa5, 0x99, 0x23,
  4372. 0x02, 0x20, 0xe1, 0x0a, 0x14, 0x49, 0xa1, 0xb3, 0x64, 0x10,
  4373. 0x46, 0xb9, 0xb0, 0x00, 0x73, 0x04, 0x02, 0xbd, 0x18, 0x12,
  4374. 0xe8, 0x19, 0x36, 0x94, 0xd0, 0x0d, 0x7a, 0x4a, 0xdc, 0x3c,
  4375. 0x2f, 0x65, 0x49, 0xa8, 0x69, 0x8b, 0x58, 0x58, 0xf9, 0x94,
  4376. 0xf7, 0x00, 0x05, 0xa5, 0x69, 0x6e, 0x4d, 0x32, 0x0a, 0x0d,
  4377. 0x8a, 0x26, 0xa2, 0x0e, 0x4d, 0x54, 0xd8, 0xb2 },
  4378. { 0x21, 0x96, 0x49, 0x5d, 0xa3, 0x7b, 0xa4, 0xa2, 0x11, 0x62,
  4379. 0x5a, 0x44, 0x05, 0xf8, 0x02, 0xf6, 0x35, 0x0d, 0xc5, 0x65,
  4380. 0x6f, 0x5a, 0x17, 0x4d, 0x7c, 0x0a, 0x3c, 0x53, 0x17, 0x71,
  4381. 0x3a, 0x1a, 0x37, 0xc9, 0xe3, 0xa2, 0xe8, 0x03, 0xe6, 0x9c,
  4382. 0x90, 0xac, 0xb2, 0x90, 0x25, 0xce, 0xc9, 0x9c, 0x73, 0x71,
  4383. 0x3e, 0x66, 0x55, 0xbf, 0x1c, 0xa7, 0x0e, 0xed, 0x92, 0xdf,
  4384. 0x6b, 0x9c, 0x48, 0x2d, 0xfd, 0xf0, 0xec, 0xe7, 0xc3, 0x59,
  4385. 0x89, 0xca, 0x1f, 0x0f, 0xdf, 0x17, 0x7d, 0x11, 0x67, 0x4e,
  4386. 0xf7, 0x41, 0xc8, 0xf2, 0x29, 0x0d, 0xf0, 0x5c, 0xc4, 0xd3,
  4387. 0x31, 0x7b, 0x68, 0x21, 0x7f, 0xfd, 0xde, 0xfa, 0x6a, 0xbc,
  4388. 0x9a, 0x66, 0xe3, 0xab, 0xea, 0x66, 0xbf, 0x88, 0xea, 0x8b,
  4389. 0x36, 0x77, 0xae, 0xa1, 0xbd, 0xe9, 0x6f, 0x88, 0x3e, 0xc8,
  4390. 0x7c, 0x6e, 0xd9, 0xae, 0x3a, 0x9b, 0x0d, 0xc6 },
  4391. { 0x93, 0xad, 0x0e, 0xb0, 0x04, 0x47, 0x5f, 0x08, 0x29, 0x71,
  4392. 0xce, 0xa7, 0x3d, 0x56, 0xfa, 0x62, 0x5a, 0xa0, 0xc4, 0x7d,
  4393. 0x6c, 0xe5, 0x48, 0xa0, 0x04, 0xa1, 0x79, 0x40, 0xd2, 0x18,
  4394. 0x97, 0xc1, 0x33, 0xef, 0x7b, 0xc3, 0x42, 0x7f, 0x34, 0x35,
  4395. 0x2c, 0x3c, 0x8c, 0xbd, 0x14, 0x41, 0x54, 0xb0, 0x9f, 0xf1,
  4396. 0x09, 0x52, 0x9a, 0xaa, 0xa4, 0x04, 0xc4, 0x8e, 0xfc, 0x6b,
  4397. 0x95, 0xb1, 0x97, 0xf9, 0xf3, 0x69, 0x31, 0x29, 0x8e, 0x8f,
  4398. 0x7d, 0xb5, 0x97, 0x09, 0xbc, 0x28, 0x51, 0x6e, 0xc8, 0xec,
  4399. 0x84, 0xad, 0xb1, 0xa2, 0xd7, 0x38, 0xf1, 0xff, 0x3c, 0x2b,
  4400. 0x79, 0x86, 0xcb, 0x6e, 0xc2, 0x50, 0xbe, 0xef, 0xce, 0x58,
  4401. 0x0a, 0xe2, 0x2b, 0xc5, 0xc6, 0xa0, 0xce, 0xab, 0xdf, 0xe2,
  4402. 0x66, 0x9e, 0xab, 0x9e, 0x91, 0xd7, 0x65, 0xd1, 0x4c, 0xf4,
  4403. 0x00, 0xcb, 0x2f, 0xd3, 0x13, 0x14, 0x26, 0x80 },
  4404. { 0x73, 0xf8, 0xc3, 0xf0, 0xea, 0x41, 0xc0, 0x34, 0x44, 0x08,
  4405. 0xdd, 0x42, 0x58, 0x44, 0xd1, 0xf9, 0x2b, 0x95, 0x22, 0x09,
  4406. 0x57, 0x6e, 0x58, 0x8d, 0xc5, 0xfc, 0x88, 0xd5, 0x44, 0x17,
  4407. 0xea, 0xde, 0x05, 0x86, 0xf7, 0x2f, 0xbc, 0xcd, 0xe4, 0x51,
  4408. 0xe5, 0x67, 0x4c, 0x4b, 0xf8, 0x23, 0xd7, 0x97, 0xef, 0x8a,
  4409. 0x94, 0x48, 0xc9, 0x01, 0x6c, 0x8c, 0x1d, 0x56, 0x46, 0xb8,
  4410. 0x14, 0x3f, 0xe0, 0x79, 0xc0, 0x4e, 0xd0, 0xb7, 0x26, 0xe6,
  4411. 0x62, 0xf7, 0x25, 0x4c, 0x05, 0xc3, 0xe0, 0x2f, 0xcc, 0xcf,
  4412. 0x18, 0xf6, 0xf0, 0x9c, 0x13, 0x02, 0xe3, 0x23, 0x3c, 0x38,
  4413. 0xd3, 0xfb, 0x68, 0x7a, 0x5b, 0x3d, 0x63, 0xa9, 0xb8, 0xd5,
  4414. 0xd3, 0x39, 0x22, 0xde, 0x62, 0x74, 0xe3, 0x86, 0x3b, 0x6b,
  4415. 0x50, 0xf2, 0x61, 0xe4, 0x77, 0xf7, 0x65, 0x15, 0xe8, 0xdd,
  4416. 0x7a, 0x0b, 0x69, 0x67, 0x98, 0x8a, 0x99, 0x63 },
  4417. { 0x01, 0x08, 0xae, 0x39, 0xad, 0xbe, 0xdd, 0x75, 0xdf, 0xed,
  4418. 0x25, 0xd9, 0x7c, 0xaa, 0x51, 0xb8, 0x7c, 0xf9, 0xd4, 0x07,
  4419. 0x21, 0x34, 0x1a, 0x8a, 0x0f, 0x26, 0x87, 0x45, 0xfc, 0xa3,
  4420. 0x25, 0xe4, 0xa2, 0xe0, 0x58, 0xfc, 0xb1, 0x5a, 0xe2, 0x06,
  4421. 0xa1, 0x4e, 0x05, 0x52, 0x2d, 0x16, 0xe3, 0x61, 0x96, 0x3d,
  4422. 0xee, 0xa6, 0x28, 0xb7, 0x91, 0xcc, 0xef, 0xff, 0x6d, 0xae,
  4423. 0x33, 0x21, 0xed, 0xcd, 0x74, 0x9e, 0x0d, 0x98, 0xea, 0x36,
  4424. 0xa0, 0x15, 0x62, 0x6e, 0xec, 0xf1, 0x29, 0x3a, 0xa8, 0xcf,
  4425. 0xaa, 0x58, 0x44, 0x28, 0x51, 0x9f, 0x7b, 0xf3, 0x78, 0x04,
  4426. 0xc9, 0xad, 0x85, 0x7c, 0xae, 0xa6, 0x1d, 0x39, 0x09, 0x44,
  4427. 0xcb, 0x20, 0x88, 0x8e, 0x0d, 0xb5, 0xbe, 0x17, 0x6e, 0x8f,
  4428. 0x15, 0xa0, 0x3b, 0x14, 0x27, 0xf3, 0x3a, 0xc7, 0x18, 0x36,
  4429. 0x89, 0x53, 0x4f, 0xc8, 0x5d, 0xf7, 0x63, 0xdd },
  4430. { 0x80, 0x7c, 0x06, 0xd8, 0xeb, 0x13, 0xc1, 0xdf, 0x34, 0x8b,
  4431. 0xb4, 0x2f, 0xa0, 0xc4, 0x52, 0x33, 0x88, 0x48, 0x08, 0x9b,
  4432. 0xac, 0x85, 0xa4, 0xe1, 0xdf, 0xfc, 0x46, 0xab, 0xd5, 0x09,
  4433. 0x7e, 0x1f, 0x0c, 0x9a, 0xad, 0x75, 0x44, 0x5d, 0xad, 0x00,
  4434. 0x88, 0x89, 0x1e, 0x36, 0xfb, 0x3a, 0x9b, 0x17, 0xfb, 0xbe,
  4435. 0x4b, 0xe8, 0x1e, 0xe0, 0xa5, 0x99, 0xc3, 0xf6, 0x5b, 0x99,
  4436. 0x46, 0xc5, 0xda, 0xfc, 0xdd, 0xc8, 0x38, 0x03, 0x9d, 0x59,
  4437. 0x51, 0x1a, 0x16, 0xaf, 0x05, 0x99, 0x0c, 0xc6, 0x9c, 0x89,
  4438. 0xfc, 0x8b, 0xef, 0xe7, 0x54, 0xe3, 0x09, 0x0b, 0xde, 0x10,
  4439. 0xb0, 0x73, 0xe9, 0xbb, 0x00, 0x4d, 0x24, 0xdb, 0x7d, 0xae,
  4440. 0x8d, 0x0b, 0x91, 0xc8, 0x77, 0x3a, 0x53, 0xe6, 0xe2, 0x61,
  4441. 0xd8, 0xa6, 0xaa, 0x05, 0xb1, 0x1e, 0xab, 0x0c, 0x73, 0x25,
  4442. 0x54, 0xd1, 0x78, 0xf3, 0xa9, 0xe8, 0x8f, 0x63 },
  4443. { 0x16, 0x42, 0x4c, 0x6c, 0x99, 0x60, 0x7a, 0x61, 0xb2, 0xfd,
  4444. 0xfa, 0x36, 0xb5, 0x53, 0x99, 0xfc, 0x26, 0x92, 0xc6, 0x26,
  4445. 0x17, 0x58, 0x3b, 0x53, 0xaa, 0xc4, 0xff, 0xcf, 0xc3, 0x9b,
  4446. 0x06, 0x34, 0x93, 0xf1, 0x80, 0xf7, 0xfa, 0x2f, 0x35, 0x8b,
  4447. 0x5d, 0xf7, 0x6b, 0x3a, 0xef, 0x0f, 0x27, 0x5a, 0x08, 0xff,
  4448. 0x7d, 0x15, 0x99, 0x82, 0x11, 0xa4, 0x89, 0xb5, 0x68, 0x81,
  4449. 0xf7, 0x21, 0x09, 0xbd, 0xce, 0x15, 0x25, 0xc9, 0xed, 0x39,
  4450. 0x9c, 0x0e, 0x97, 0x4d, 0xb3, 0xde, 0xda, 0x86, 0x1d, 0x3b,
  4451. 0x53, 0xa9, 0xa9, 0x42, 0x99, 0x8c, 0x95, 0xfb, 0xe5, 0x93,
  4452. 0x43, 0xe4, 0x60, 0xad, 0x1a, 0xf2, 0x7b, 0xdb, 0x20, 0x1a,
  4453. 0x8b, 0x70, 0x55, 0x7c, 0x24, 0x48, 0x4c, 0x92, 0xa0, 0x2f,
  4454. 0x8f, 0xdb, 0xba, 0x9d, 0x54, 0x83, 0x8b, 0xb7, 0xb7, 0xaf,
  4455. 0x00, 0xa9, 0x69, 0xec, 0x98, 0xee, 0x0e, 0xf6 },
  4456. { 0x55, 0x44, 0xe6, 0x02, 0xa4, 0xf4, 0x47, 0x8a, 0xdd, 0xda,
  4457. 0xf4, 0xb9, 0xfb, 0x58, 0x31, 0xb1, 0x3d, 0xfe, 0x6b, 0xc1,
  4458. 0x72, 0x53, 0xa5, 0x1b, 0xa3, 0xc9, 0xad, 0xff, 0xac, 0xcc,
  4459. 0xb8, 0x5c, 0x47, 0x4a, 0x3e, 0x14, 0xf0, 0x3d, 0xed, 0x28,
  4460. 0x3d, 0x16, 0xfc, 0x45, 0x45, 0xb0, 0xe9, 0xeb, 0xa9, 0xe6,
  4461. 0x55, 0xe4, 0x2e, 0x7f, 0x34, 0x04, 0x44, 0xff, 0x67, 0xb9,
  4462. 0xed, 0x64, 0xd1, 0x2c, 0xd4, 0x39, 0x61, 0x41, 0x4b, 0x8e,
  4463. 0xfa, 0x0c, 0x88, 0xae, 0x40, 0x98, 0xbc, 0xc7, 0x72, 0x72,
  4464. 0xbc, 0xec, 0xd2, 0x58, 0xca, 0xf2, 0xd1, 0x22, 0x98, 0x38,
  4465. 0x45, 0x50, 0x9b, 0xe9, 0x96, 0x74, 0x30, 0xb7, 0xab, 0x25,
  4466. 0xa9, 0xdf, 0x69, 0x1a, 0x32, 0xc8, 0x2e, 0x99, 0xef, 0xe8,
  4467. 0xb0, 0x89, 0x25, 0x44, 0xc1, 0xc2, 0xfe, 0x3a, 0xf4, 0x18,
  4468. 0x5d, 0xd6, 0x5c, 0x55, 0xdd, 0x27, 0x44, 0xa9 },
  4469. { 0x57, 0x35, 0x99, 0x5c, 0xe2, 0x41, 0xd2, 0x61, 0xdd, 0x7d,
  4470. 0x3e, 0xdd, 0x1e, 0xd6, 0x0f, 0x42, 0xc1, 0xa4, 0xcd, 0xce,
  4471. 0x2d, 0xec, 0x53, 0xcf, 0x80, 0xb7, 0xec, 0xdc, 0x22, 0x99,
  4472. 0x4b, 0x43, 0x72, 0x0b, 0x59, 0xde, 0x19, 0xb1, 0xb5, 0x40,
  4473. 0xd0, 0xf7, 0x0e, 0x6e, 0xb2, 0x79, 0x46, 0x81, 0x76, 0xc8,
  4474. 0x8b, 0xd2, 0x09, 0xd0, 0x9a, 0xf1, 0x83, 0x10, 0x74, 0x46,
  4475. 0xcb, 0x42, 0x03, 0x3c, 0x20, 0x53, 0xc5, 0xe0, 0x1f, 0x6c,
  4476. 0x7d, 0x29, 0x83, 0x49, 0xdd, 0x73, 0xc2, 0x90, 0xd9, 0xd8,
  4477. 0x16, 0x3d, 0x05, 0x00, 0xed, 0x94, 0x58, 0x70, 0x35, 0x2c,
  4478. 0x8c, 0x3f, 0x2d, 0x34, 0x1a, 0xb1, 0xe9, 0xd9, 0xe1, 0xe9,
  4479. 0x08, 0x83, 0x30, 0x8c, 0xae, 0x27, 0x42, 0xdb, 0x7b, 0x42,
  4480. 0xc5, 0xa8, 0x01, 0x22, 0x71, 0x6f, 0x63, 0xbd, 0xc8, 0xef,
  4481. 0x89, 0x7c, 0x53, 0x13, 0xba, 0xa8, 0x0b, 0x4f },
  4482. { 0x88, 0x54, 0x86, 0xdf, 0x3e, 0xc4, 0x5e, 0xf0, 0xe4, 0x68,
  4483. 0xed, 0x5f, 0x04, 0x9a, 0x69, 0x17, 0xbb, 0xd3, 0xb0, 0x81,
  4484. 0x8a, 0x95, 0x40, 0xc2, 0x5c, 0xc2, 0x28, 0x21, 0x76, 0x8a,
  4485. 0xd9, 0x9a, 0xf8, 0x72, 0x9b, 0xc0, 0xea, 0xce, 0x64, 0xc9,
  4486. 0xac, 0x39, 0x04, 0xe4, 0xc9, 0xcf, 0x34, 0x65, 0xdb, 0x9a,
  4487. 0x59, 0x84, 0xbb, 0x1f, 0xf9, 0x4d, 0xd1, 0x43, 0xb2, 0xda,
  4488. 0x4a, 0x4c, 0x5e, 0x89, 0x7b, 0x0c, 0x46, 0xcd, 0x7c, 0x1b,
  4489. 0x7d, 0xfd, 0x1b, 0x71, 0x85, 0xcf, 0x08, 0x86, 0x87, 0x73,
  4490. 0xec, 0x49, 0x74, 0x21, 0x5b, 0x60, 0x0f, 0x33, 0x4e, 0xee,
  4491. 0x44, 0x19, 0x61, 0x18, 0xa1, 0xf5, 0xab, 0xde, 0xb0, 0x33,
  4492. 0xe3, 0x03, 0x1b, 0xec, 0xc0, 0x1e, 0xeb, 0xbd, 0x27, 0x1e,
  4493. 0xc6, 0x12, 0x68, 0x56, 0xc1, 0x64, 0x33, 0xab, 0x33, 0x88,
  4494. 0xdc, 0x4b, 0xa3, 0xfb, 0xa0, 0x23, 0x70, 0x56 },
  4495. { 0x31, 0xce, 0xcf, 0xe8, 0xd4, 0xab, 0x96, 0x2d, 0xc5, 0xdd,
  4496. 0x4d, 0x3e, 0xc9, 0x1f, 0xf9, 0xd7, 0x29, 0x08, 0x32, 0x87,
  4497. 0xaa, 0xa4, 0xce, 0x0c, 0x33, 0xd8, 0x16, 0x97, 0xf1, 0x19,
  4498. 0xd6, 0xe0, 0x4d, 0x0e, 0x8b, 0xcf, 0x99, 0x4f, 0xc5, 0x03,
  4499. 0x1a, 0x0b, 0x96, 0xe4, 0x0f, 0x81, 0xf9, 0x1c, 0x98, 0xb5,
  4500. 0xd0, 0xab, 0x18, 0x5e, 0xae, 0x19, 0x29, 0xe1, 0x1a, 0xa2,
  4501. 0x68, 0x85, 0xe6, 0xb9, 0xbc, 0xb0, 0xe8, 0xa2, 0x71, 0xd3,
  4502. 0x68, 0x10, 0x9e, 0x24, 0x96, 0x0f, 0x1a, 0x1b, 0x73, 0xc6,
  4503. 0x76, 0x07, 0xdd, 0x08, 0x55, 0xef, 0x8d, 0xef, 0xac, 0xa6,
  4504. 0x9a, 0xe8, 0x24, 0x1e, 0xe8, 0xff, 0x20, 0x55, 0xa3, 0x1b,
  4505. 0x19, 0xfe, 0x33, 0x39, 0xcc, 0xb0, 0x07, 0x0b, 0x32, 0x5b,
  4506. 0xe3, 0x24, 0x3d, 0xb2, 0x71, 0x9f, 0x25, 0xa7, 0xb4, 0x51,
  4507. 0x6a, 0x94, 0x2c, 0x93, 0x4b, 0xdf, 0xf4, 0x64 },
  4508. { 0x69, 0x61, 0xb4, 0x6a, 0xda, 0x25, 0x47, 0xb3, 0x5d, 0x8f,
  4509. 0x3c, 0xf0, 0x9a, 0x6a, 0x4e, 0xc3, 0x11, 0xb0, 0x86, 0x3b,
  4510. 0xd6, 0xd6, 0xf1, 0xd2, 0x72, 0xfe, 0xfc, 0x05, 0x75, 0xd9,
  4511. 0xcb, 0x3d, 0x2b, 0x7c, 0x79, 0x45, 0xff, 0x32, 0x52, 0xf8,
  4512. 0x65, 0xff, 0xa5, 0xf6, 0x6c, 0x74, 0x2a, 0xc4, 0x48, 0x0e,
  4513. 0xd4, 0xfb, 0xc5, 0x51, 0x6c, 0xa9, 0xf5, 0x02, 0xf6, 0x6d,
  4514. 0xec, 0xd6, 0xfa, 0x3d, 0x83, 0x9a, 0xa7, 0xbd, 0xc9, 0xd2,
  4515. 0x0f, 0xf1, 0x10, 0x09, 0xc0, 0xd9, 0xb4, 0xfb, 0xb5, 0x9c,
  4516. 0x98, 0x00, 0xa2, 0x3f, 0xae, 0xcd, 0x69, 0x75, 0x96, 0x63,
  4517. 0xe6, 0xad, 0x5b, 0xb5, 0x23, 0xbd, 0x8e, 0x9d, 0xe8, 0x4d,
  4518. 0xa3, 0xd0, 0xfa, 0x90, 0xfe, 0x59, 0x02, 0xd4, 0x92, 0x1c,
  4519. 0x36, 0xa0, 0xe5, 0xdd, 0x32, 0xb3, 0xb1, 0x94, 0x36, 0xdf,
  4520. 0x43, 0x7b, 0xfd, 0x9a, 0xfc, 0x8b, 0x21, 0xe8 },
  4521. { 0x6a, 0x63, 0xa9, 0x0c, 0x53, 0x75, 0x52, 0x12, 0x19, 0x64,
  4522. 0xe2, 0x2f, 0x07, 0x81, 0xaa, 0xd9, 0x89, 0xa9, 0xa3, 0x2e,
  4523. 0xcd, 0x3f, 0x79, 0x4f, 0xdd, 0xae, 0xc4, 0x2b, 0x73, 0xce,
  4524. 0x5b, 0xe9, 0x2e, 0x25, 0x4d, 0x9e, 0x36, 0x05, 0x1f, 0x9f,
  4525. 0x1e, 0xb5, 0x1f, 0x32, 0x54, 0xe8, 0x41, 0x23, 0x69, 0x7e,
  4526. 0x20, 0xa2, 0x97, 0x07, 0xfa, 0x21, 0xda, 0x78, 0x2d, 0x1d,
  4527. 0x93, 0x41, 0x3c, 0xa7, 0xd6, 0x71, 0x20, 0xe6, 0xb6, 0x55,
  4528. 0xaf, 0x5d, 0xf9, 0x78, 0x1e, 0xdd, 0x24, 0x6e, 0x3f, 0xd2,
  4529. 0x4e, 0x4b, 0x88, 0xed, 0xfb, 0x8c, 0xe1, 0x90, 0xa6, 0xe7,
  4530. 0x19, 0xfd, 0x9c, 0x6f, 0x40, 0x0e, 0xa1, 0xf9, 0x1d, 0x44,
  4531. 0x70, 0x9d, 0x54, 0xf0, 0xec, 0xa1, 0x7a, 0x5b, 0xdb, 0x28,
  4532. 0xa0, 0x4c, 0x1e, 0xd5, 0x54, 0x6b, 0x57, 0xaf, 0x14, 0xd9,
  4533. 0xd0, 0x7b, 0x58, 0x7e, 0xcb, 0x35, 0xe2, 0xac },
  4534. { 0x51, 0xed, 0x4a, 0x22, 0xd1, 0x51, 0xd9, 0x0e, 0xff, 0xc8,
  4535. 0x9f, 0xfd, 0x82, 0x55, 0x29, 0x61, 0xa5, 0x47, 0x64, 0x46,
  4536. 0x82, 0x35, 0xcd, 0x0b, 0x8c, 0x27, 0xf8, 0x92, 0x86, 0x17,
  4537. 0xf1, 0x65, 0xc2, 0x0b, 0x93, 0x07, 0x0e, 0x02, 0x1e, 0xd3,
  4538. 0xa5, 0x3a, 0x81, 0xb3, 0x6e, 0xa5, 0x02, 0xea, 0x80, 0x9b,
  4539. 0xf0, 0x74, 0xe8, 0x44, 0xa5, 0x76, 0xab, 0xcc, 0x78, 0x13,
  4540. 0x5c, 0xa4, 0x71, 0xdd, 0xd6, 0xed, 0x58, 0x16, 0x5b, 0xa3,
  4541. 0xf4, 0xa1, 0x65, 0x88, 0x80, 0xc1, 0x5a, 0x4d, 0x3e, 0x7c,
  4542. 0xf8, 0x65, 0x80, 0x21, 0x7b, 0x37, 0x0f, 0x7f, 0x08, 0x6a,
  4543. 0x3c, 0xdf, 0x0c, 0xd6, 0xd2, 0xf6, 0x01, 0x66, 0x77, 0x14,
  4544. 0x3e, 0xb9, 0x4d, 0x4f, 0xe4, 0xa2, 0x96, 0x72, 0x38, 0x8c,
  4545. 0x51, 0x9b, 0x2c, 0x01, 0x66, 0x8a, 0xb7, 0x4f, 0x61, 0x08,
  4546. 0x76, 0x55, 0x4e, 0x00, 0x3d, 0x7a, 0xcb, 0xbb },
  4547. { 0x2d, 0x69, 0x51, 0xbc, 0x2b, 0x8b, 0x5c, 0xe5, 0x41, 0x73,
  4548. 0xd9, 0x4a, 0xe9, 0xf4, 0x92, 0x56, 0xeb, 0x7a, 0xfe, 0x26,
  4549. 0x74, 0xa9, 0x79, 0x3c, 0x0d, 0x5f, 0x6f, 0xb1, 0xd2, 0xd1,
  4550. 0x69, 0xbf, 0x93, 0xdf, 0x3f, 0x2a, 0xe1, 0xef, 0x97, 0x12,
  4551. 0xaf, 0x0a, 0x92, 0x60, 0x6c, 0x29, 0xfe, 0x48, 0x7a, 0x87,
  4552. 0x21, 0x38, 0x23, 0x50, 0x0e, 0xcc, 0x0e, 0x29, 0x71, 0x1f,
  4553. 0x71, 0x06, 0x61, 0x5e, 0x41, 0xc5, 0x3c, 0xf6, 0x28, 0xce,
  4554. 0x68, 0x5f, 0x68, 0xfc, 0x32, 0x0c, 0x5e, 0xd7, 0xc8, 0x97,
  4555. 0xf2, 0xa6, 0x0d, 0x2d, 0x6c, 0xeb, 0x5d, 0x5e, 0xfd, 0x67,
  4556. 0x48, 0x0e, 0xce, 0x64, 0x3b, 0x9b, 0x75, 0xa7, 0xa0, 0x55,
  4557. 0xdb, 0x50, 0xbf, 0x7d, 0x3e, 0xf9, 0xbe, 0x15, 0xb5, 0x72,
  4558. 0x96, 0x5f, 0xea, 0x8d, 0x91, 0xa3, 0xbb, 0x27, 0xca, 0xf2,
  4559. 0x37, 0xd6, 0x96, 0x3a, 0x44, 0x97, 0x01, 0xb4 },
  4560. { 0x65, 0xc4, 0x8e, 0x78, 0xe0, 0x8c, 0xc5, 0xf0, 0xa2, 0x4e,
  4561. 0xba, 0x02, 0x16, 0x5b, 0x3a, 0xee, 0x46, 0x49, 0x04, 0xc1,
  4562. 0xb8, 0x3b, 0x93, 0xf9, 0x75, 0xc4, 0xd0, 0x89, 0xa7, 0xaf,
  4563. 0x22, 0x68, 0x0b, 0xad, 0x73, 0x0c, 0xbc, 0xf9, 0x31, 0xa0,
  4564. 0x32, 0x20, 0x48, 0xb1, 0x44, 0x7b, 0x5e, 0x6d, 0x92, 0x43,
  4565. 0x53, 0xf5, 0x8b, 0x92, 0xa7, 0x42, 0xd4, 0xb6, 0x4d, 0x78,
  4566. 0xe7, 0x0e, 0x16, 0x27, 0x83, 0xd9, 0x5d, 0x9c, 0x2b, 0x87,
  4567. 0x4f, 0x55, 0x82, 0x0a, 0x8f, 0x66, 0x71, 0x1e, 0x71, 0xa0,
  4568. 0xc7, 0x95, 0xcb, 0x7d, 0xc2, 0x74, 0x35, 0x19, 0x6e, 0x7f,
  4569. 0xea, 0x3a, 0x0b, 0x0f, 0x42, 0xf1, 0x29, 0x57, 0x34, 0x15,
  4570. 0xcf, 0xc7, 0x75, 0x18, 0xd4, 0x99, 0x4e, 0x8b, 0x8f, 0x42,
  4571. 0x9e, 0xee, 0x33, 0x3f, 0x24, 0x8f, 0x86, 0xf4, 0xe1, 0x09,
  4572. 0xdd, 0x00, 0x7d, 0x9f, 0x90, 0x4e, 0x22, 0x2e },
  4573. { 0x36, 0xb5, 0xcd, 0x2c, 0x7a, 0x6b, 0x22, 0x6f, 0xf6, 0x3d,
  4574. 0xd9, 0xff, 0xd4, 0x38, 0xba, 0x2d, 0x40, 0x2d, 0x57, 0x85,
  4575. 0xa8, 0xd9, 0xa3, 0xcb, 0xe2, 0x28, 0x0f, 0xa6, 0xef, 0x24,
  4576. 0x54, 0x45, 0xe1, 0x06, 0xf4, 0x89, 0x08, 0xb0, 0x55, 0x3a,
  4577. 0xd8, 0x28, 0x67, 0xed, 0xb2, 0x89, 0x5d, 0x2e, 0xf0, 0x6f,
  4578. 0x0a, 0x46, 0x25, 0xe7, 0xec, 0xe0, 0x38, 0x09, 0xfa, 0x28,
  4579. 0x07, 0xd3, 0xe0, 0x13, 0x76, 0xa3, 0xf2, 0xd1, 0x10, 0xf1,
  4580. 0x8d, 0x12, 0xdb, 0xf6, 0x7f, 0x0b, 0x4d, 0x31, 0x88, 0xc0,
  4581. 0xf5, 0x4d, 0x3e, 0xee, 0x94, 0x73, 0x51, 0x07, 0xfb, 0x1c,
  4582. 0x58, 0x1c, 0x31, 0x20, 0x4c, 0xef, 0x28, 0x4a, 0xdf, 0x8f,
  4583. 0x59, 0xfc, 0xec, 0x77, 0x03, 0x01, 0xcb, 0x14, 0xb2, 0x14,
  4584. 0x3b, 0x06, 0x56, 0x83, 0xd8, 0xcd, 0xfc, 0xea, 0x23, 0xb4,
  4585. 0x1a, 0x1c, 0x73, 0xce, 0xde, 0x22, 0x2c, 0x22 },
  4586. { 0x08, 0xd7, 0xc1, 0x44, 0xdb, 0x39, 0xbf, 0xd8, 0x06, 0x92,
  4587. 0xf4, 0xc5, 0x39, 0xa5, 0x1d, 0xc8, 0xd2, 0x7c, 0xc9, 0x60,
  4588. 0xf7, 0x44, 0x5e, 0x8a, 0x18, 0xf7, 0x3c, 0xaf, 0x52, 0x23,
  4589. 0x89, 0xff, 0x45, 0x59, 0x3d, 0xf1, 0x37, 0x6a, 0x9a, 0xb6,
  4590. 0x14, 0xe1, 0x82, 0xa7, 0x93, 0xcf, 0x99, 0xc4, 0xff, 0x50,
  4591. 0x15, 0x1e, 0xea, 0xa7, 0x4d, 0xf8, 0x8d, 0x0e, 0x85, 0xf9,
  4592. 0x36, 0xa5, 0x1a, 0x37, 0xc6, 0xa2, 0x1d, 0x11, 0x2f, 0x41,
  4593. 0x22, 0x44, 0x74, 0x83, 0x97, 0x79, 0x0c, 0xc2, 0xe8, 0x10,
  4594. 0x74, 0x50, 0x19, 0x83, 0x78, 0x1a, 0x67, 0x8a, 0x0d, 0x47,
  4595. 0x5d, 0x79, 0x8d, 0x93, 0x5a, 0x5e, 0xa1, 0x9e, 0xaf, 0x39,
  4596. 0xc8, 0x5a, 0xf1, 0xa3, 0x90, 0xa3, 0x57, 0xfa, 0x9b, 0x45,
  4597. 0x9c, 0xd8, 0x64, 0xd8, 0x0b, 0x41, 0x45, 0x20, 0xc7, 0x50,
  4598. 0x87, 0xff, 0x4e, 0x20, 0x54, 0x56, 0x79, 0xa7 },
  4599. { 0x5f, 0x2a, 0xa8, 0xee, 0xba, 0xb7, 0x02, 0x02, 0x8e, 0x2c,
  4600. 0x38, 0x79, 0x04, 0x00, 0x4a, 0xd9, 0x1d, 0x30, 0x50, 0xae,
  4601. 0xb5, 0xee, 0x14, 0x7b, 0x4c, 0x38, 0x5e, 0x8b, 0xc7, 0x36,
  4602. 0x7d, 0x1f, 0xb5, 0x90, 0x52, 0x64, 0x0f, 0x9b, 0x2b, 0x49,
  4603. 0xf3, 0xfe, 0x9c, 0x42, 0xbb, 0x0c, 0xd2, 0xbf, 0x01, 0x97,
  4604. 0x24, 0x3e, 0xe3, 0x47, 0x69, 0x4a, 0x3f, 0xe1, 0xe8, 0xb5,
  4605. 0x89, 0x83, 0x08, 0xe3, 0x95, 0xe9, 0x5b, 0xb8, 0xa8, 0xde,
  4606. 0x7a, 0xa4, 0x7c, 0xc6, 0xe8, 0x38, 0x5f, 0xce, 0x17, 0xbd,
  4607. 0xf3, 0xc1, 0xa1, 0x01, 0x61, 0x30, 0xa4, 0xc6, 0x7a, 0x96,
  4608. 0x6d, 0x8b, 0xd1, 0x58, 0x7b, 0x7e, 0x77, 0x31, 0x23, 0x74,
  4609. 0x2a, 0x67, 0x8c, 0xdf, 0xf0, 0xec, 0xcd, 0x74, 0xdb, 0x6b,
  4610. 0xd6, 0x41, 0x87, 0xea, 0x91, 0x92, 0xd4, 0x8c, 0x21, 0x56,
  4611. 0x80, 0x9c, 0x0d, 0x96, 0x3e, 0xcc, 0xa7, 0x73 },
  4612. { 0x62, 0x50, 0x1a, 0x98, 0xb4, 0x6f, 0xf9, 0x49, 0xa3, 0x16,
  4613. 0x49, 0x80, 0x83, 0xc9, 0xf2, 0x24, 0xe8, 0x84, 0xac, 0x76,
  4614. 0x78, 0x4b, 0xe8, 0x2f, 0xd9, 0xff, 0x03, 0x40, 0x02, 0xbc,
  4615. 0xd3, 0xc7, 0xc2, 0x82, 0x78, 0xb4, 0x86, 0x6e, 0x5a, 0xe8,
  4616. 0x59, 0xdc, 0x52, 0xe6, 0x1e, 0xa6, 0xf0, 0x6e, 0xed, 0xcf,
  4617. 0x2d, 0x1a, 0xe2, 0xd9, 0xd3, 0x86, 0x95, 0x9a, 0xfc, 0xba,
  4618. 0x8e, 0x2d, 0x85, 0xd1, 0x2b, 0xab, 0xb2, 0x7e, 0x18, 0xbe,
  4619. 0x05, 0xf6, 0x7d, 0xab, 0xa1, 0x27, 0x05, 0xeb, 0x67, 0xb8,
  4620. 0x26, 0xf6, 0xee, 0x3b, 0x0f, 0xcb, 0x53, 0x4c, 0xef, 0x34,
  4621. 0x9c, 0x61, 0xc6, 0x82, 0xe4, 0xd6, 0x0a, 0x69, 0xe8, 0xd3,
  4622. 0xe6, 0x42, 0xdd, 0x46, 0xa5, 0xaa, 0x68, 0x5e, 0xda, 0x10,
  4623. 0x6e, 0xbf, 0xb7, 0xbf, 0x38, 0x80, 0xd0, 0xa1, 0x9f, 0x66,
  4624. 0xe2, 0x08, 0xd4, 0x64, 0x12, 0x66, 0x52, 0x4b },
  4625. { 0x49, 0x7b, 0x15, 0xfe, 0xfd, 0x3f, 0xc6, 0x65, 0xcc, 0x9c,
  4626. 0x5f, 0x73, 0xa1, 0xf3, 0x53, 0x1a, 0xab, 0xaa, 0x4c, 0x49,
  4627. 0xc0, 0xde, 0xa5, 0x86, 0x78, 0x49, 0x9b, 0x73, 0x91, 0xf9,
  4628. 0xda, 0x5e, 0xd1, 0xac, 0xf7, 0xa0, 0xb5, 0xc4, 0xeb, 0x10,
  4629. 0xfd, 0x74, 0x10, 0x1c, 0x9a, 0x6f, 0xea, 0x8a, 0x51, 0x9d,
  4630. 0x21, 0x33, 0xd5, 0x9b, 0x17, 0x41, 0xbd, 0x9a, 0x8e, 0x31,
  4631. 0x4f, 0x0d, 0x1b, 0x70, 0x52, 0xfb, 0xf5, 0x4d, 0xce, 0xcc,
  4632. 0xfe, 0x77, 0x62, 0x28, 0x06, 0xe0, 0x2e, 0xa8, 0xab, 0xd3,
  4633. 0x81, 0x30, 0xc9, 0xb0, 0xed, 0x55, 0x3e, 0xac, 0xfa, 0x3c,
  4634. 0x91, 0x97, 0x20, 0xaa, 0x45, 0x36, 0xa2, 0x88, 0xda, 0xc8,
  4635. 0x46, 0xe6, 0x4b, 0x19, 0xe8, 0x25, 0x30, 0x02, 0x8c, 0x8d,
  4636. 0x3d, 0x67, 0xca, 0x6a, 0x33, 0xdb, 0xa5, 0xe0, 0xe4, 0xbd,
  4637. 0x56, 0x3f, 0x7d, 0x9a, 0xad, 0x26, 0x40, 0x86 },
  4638. { 0x18, 0xd4, 0x6a, 0x6c, 0x9e, 0x51, 0x4c, 0xb7, 0xb7, 0xae,
  4639. 0x7e, 0x5c, 0x2f, 0xf6, 0x37, 0xe6, 0xc2, 0xee, 0xbd, 0x13,
  4640. 0xed, 0xea, 0x10, 0x71, 0xda, 0xfa, 0x33, 0xfe, 0x06, 0x80,
  4641. 0x12, 0xca, 0x40, 0x5d, 0x3e, 0x84, 0xd6, 0x30, 0x8e, 0xdc,
  4642. 0xdd, 0x8d, 0xff, 0xbf, 0x86, 0xa9, 0xb7, 0xce, 0x2a, 0x80,
  4643. 0xd0, 0xd2, 0x42, 0xc0, 0x07, 0xf4, 0x99, 0xaa, 0x68, 0xac,
  4644. 0xba, 0x3e, 0xbd, 0x91, 0x8f, 0x31, 0xf0, 0x44, 0x3e, 0x21,
  4645. 0x6d, 0xbf, 0x9c, 0xd0, 0x6d, 0x31, 0xca, 0x90, 0xf0, 0x2e,
  4646. 0x81, 0x09, 0xfc, 0x75, 0xa2, 0x9c, 0x53, 0x9f, 0x8c, 0x8c,
  4647. 0xdb, 0xa2, 0x02, 0xa0, 0xf5, 0xb4, 0xc8, 0x65, 0x22, 0xf8,
  4648. 0x4a, 0xc3, 0x7d, 0xa9, 0xdb, 0xb0, 0x3d, 0xd3, 0x9a, 0xb2,
  4649. 0x53, 0x9a, 0xf4, 0x91, 0xa0, 0xfe, 0xc7, 0x19, 0x2a, 0x6f,
  4650. 0x8a, 0x56, 0xcb, 0xaa, 0xf4, 0x55, 0x68, 0xe9 },
  4651. { 0x55, 0x04, 0x46, 0x01, 0xd3, 0xf6, 0x2e, 0x40, 0x69, 0xe6,
  4652. 0xf8, 0xe4, 0x5a, 0x38, 0xfe, 0xf9, 0x10, 0xd5, 0x4f, 0x8a,
  4653. 0x7e, 0x93, 0x05, 0x0d, 0x45, 0xf9, 0x3d, 0x41, 0xa0, 0x6e,
  4654. 0x70, 0x8c, 0x3f, 0x0d, 0xb5, 0xcd, 0x7b, 0xb5, 0xe7, 0x51,
  4655. 0x37, 0x0d, 0xe9, 0xc8, 0xdc, 0xd7, 0x05, 0xad, 0x14, 0x10,
  4656. 0x9d, 0x29, 0x7c, 0x29, 0x54, 0xf3, 0xab, 0x0b, 0x36, 0xf9,
  4657. 0xd8, 0x51, 0x76, 0xac, 0x70, 0xeb, 0x06, 0x03, 0x6d, 0xa7,
  4658. 0xa5, 0x2b, 0x74, 0x07, 0xa7, 0x88, 0xb1, 0x41, 0x71, 0xb9,
  4659. 0x6c, 0xfe, 0x05, 0x71, 0x13, 0xac, 0x73, 0x45, 0x2e, 0x0d,
  4660. 0x83, 0x25, 0xa3, 0x25, 0xfd, 0x40, 0xac, 0x0a, 0xbc, 0xda,
  4661. 0xb4, 0xce, 0xb4, 0xe4, 0xc4, 0xeb, 0x2f, 0x3e, 0x42, 0xae,
  4662. 0x8a, 0xdd, 0x07, 0x45, 0xdd, 0xb2, 0x49, 0x7c, 0xba, 0xf4,
  4663. 0x86, 0x8c, 0xbb, 0x22, 0xa7, 0x8b, 0x78, 0x02 },
  4664. { 0x0d, 0xa3, 0x13, 0xfc, 0xd7, 0xb0, 0xec, 0x4f, 0x56, 0x3a,
  4665. 0x8f, 0xf7, 0xc6, 0xf5, 0xd7, 0xdb, 0xf3, 0x42, 0x52, 0x09,
  4666. 0x3d, 0xd7, 0x9f, 0x93, 0xa1, 0x21, 0x18, 0xac, 0x9a, 0x2b,
  4667. 0xd0, 0x1b, 0x27, 0x07, 0x41, 0x76, 0xf5, 0x32, 0x97, 0x3f,
  4668. 0x47, 0x7c, 0xa3, 0xdb, 0x9f, 0xf1, 0x00, 0xbc, 0xbc, 0xb5,
  4669. 0x31, 0x89, 0x70, 0xc2, 0xae, 0xe3, 0xe2, 0x22, 0x0e, 0x85,
  4670. 0x9a, 0xee, 0xfe, 0x98, 0x33, 0x65, 0xc8, 0xe5, 0x29, 0xad,
  4671. 0x51, 0x66, 0x90, 0x42, 0x59, 0x6b, 0x91, 0x79, 0x2e, 0x6b,
  4672. 0x1c, 0xde, 0x06, 0xe7, 0x40, 0x0d, 0x14, 0x4f, 0x1d, 0x21,
  4673. 0xfb, 0xfa, 0x29, 0x51, 0xfc, 0x83, 0x39, 0x72, 0x1f, 0xfe,
  4674. 0x29, 0xad, 0x5f, 0x82, 0x7c, 0xd8, 0x66, 0x3e, 0x11, 0x23,
  4675. 0x6f, 0xb8, 0x54, 0x20, 0x74, 0xd7, 0x41, 0xd0, 0x00, 0x14,
  4676. 0xd1, 0xc5, 0xc9, 0x10, 0x06, 0xcb, 0x9c, 0xc9 },
  4677. { 0x63, 0x63, 0x0b, 0xe8, 0xdb, 0x41, 0x4a, 0xcc, 0x62, 0x02,
  4678. 0x30, 0xd8, 0x1e, 0x82, 0x29, 0x0e, 0x44, 0x16, 0x74, 0x10,
  4679. 0xa1, 0x16, 0x2d, 0x03, 0x50, 0x94, 0x0c, 0x26, 0x94, 0x1c,
  4680. 0x25, 0x54, 0xad, 0xfa, 0xe4, 0xe1, 0x73, 0x10, 0x83, 0xef,
  4681. 0x6d, 0x7c, 0x2e, 0xa0, 0xf8, 0x70, 0x46, 0x64, 0xe2, 0x95,
  4682. 0x9b, 0xea, 0x09, 0xc2, 0x8f, 0x27, 0x3a, 0xf0, 0xec, 0xbb,
  4683. 0xca, 0x3d, 0xe5, 0x0c, 0x47, 0x3d, 0x50, 0xd6, 0x1f, 0x1b,
  4684. 0x7f, 0x00, 0x4d, 0x29, 0xa6, 0x16, 0xf0, 0x3d, 0x06, 0x60,
  4685. 0xd5, 0x53, 0x1a, 0x0d, 0x04, 0x9a, 0xea, 0xc2, 0x2d, 0x2b,
  4686. 0xf4, 0xff, 0xc9, 0xe2, 0xce, 0x18, 0x0d, 0x3e, 0x9a, 0x74,
  4687. 0x7c, 0xb0, 0x04, 0x2a, 0x48, 0x71, 0x39, 0x94, 0x67, 0xb8,
  4688. 0xa8, 0x23, 0xca, 0x21, 0xd7, 0x0c, 0x00, 0x89, 0x3e, 0x9c,
  4689. 0x37, 0x12, 0x5a, 0x8c, 0x15, 0xaa, 0x25, 0x57 },
  4690. { 0x30, 0x6a, 0x98, 0x71, 0xf1, 0x66, 0x88, 0xed, 0x29, 0x58,
  4691. 0x45, 0xc0, 0x68, 0x54, 0x4e, 0xb0, 0x68, 0x07, 0x4f, 0x37,
  4692. 0xd5, 0xe5, 0xaa, 0x72, 0xeb, 0x0c, 0xd4, 0x78, 0xf8, 0xac,
  4693. 0x8f, 0x89, 0xfc, 0xe5, 0x18, 0x6c, 0xe5, 0x58, 0xf6, 0xbe,
  4694. 0x36, 0x9b, 0x3e, 0x98, 0xbb, 0x44, 0x3c, 0x07, 0x56, 0xae,
  4695. 0xaf, 0xa8, 0x5a, 0x14, 0x36, 0xfa, 0x3d, 0x4f, 0xd9, 0x77,
  4696. 0x26, 0x1d, 0x1b, 0x79, 0xca, 0x3d, 0x70, 0x25, 0x58, 0xe2,
  4697. 0x60, 0x6d, 0x1f, 0x69, 0xb2, 0x0c, 0x13, 0xce, 0xa0, 0x45,
  4698. 0x9d, 0x99, 0x7d, 0x18, 0xb4, 0xb7, 0x0c, 0x4c, 0xbf, 0x3f,
  4699. 0x38, 0xf4, 0x49, 0xb9, 0xdc, 0x38, 0x88, 0x3e, 0x04, 0xd6,
  4700. 0xde, 0x2c, 0x59, 0xad, 0x1b, 0x4d, 0x33, 0xdd, 0x6c, 0x40,
  4701. 0x2d, 0x89, 0x49, 0xe7, 0x58, 0x23, 0xeb, 0x62, 0xf8, 0x79,
  4702. 0xbf, 0x8d, 0x52, 0x22, 0x8a, 0x7d, 0x2e, 0x41 },
  4703. { 0x28, 0x33, 0xac, 0x41, 0xe8, 0x10, 0x3e, 0x37, 0x64, 0x43,
  4704. 0xeb, 0xe0, 0x58, 0xe5, 0x7c, 0xd4, 0x71, 0xab, 0xa7, 0x31,
  4705. 0x93, 0xc9, 0xd5, 0x88, 0x93, 0x06, 0x21, 0x5b, 0x77, 0xf4,
  4706. 0xc0, 0x1c, 0x55, 0x1e, 0x7a, 0x17, 0x6e, 0x72, 0xa1, 0x3d,
  4707. 0xf9, 0xfa, 0x62, 0x8d, 0x1b, 0xea, 0xa5, 0x11, 0xf6, 0xd4,
  4708. 0x18, 0xf8, 0x82, 0x07, 0x5f, 0x91, 0xc0, 0x75, 0xc7, 0x01,
  4709. 0xf5, 0x32, 0x70, 0x1b, 0x28, 0xe6, 0xf6, 0x31, 0x82, 0xa9,
  4710. 0xd2, 0x2b, 0x4a, 0xf2, 0x2b, 0xc0, 0x0a, 0xc9, 0xc2, 0xde,
  4711. 0x60, 0xe5, 0x64, 0xd8, 0xc7, 0xaf, 0xb8, 0x99, 0x35, 0x28,
  4712. 0x32, 0x38, 0x9a, 0x2d, 0x60, 0x23, 0x87, 0xb6, 0xef, 0x20,
  4713. 0xc5, 0xbf, 0xee, 0x67, 0xa9, 0xbe, 0x01, 0x52, 0xc0, 0xdb,
  4714. 0x41, 0x20, 0x1e, 0xdf, 0x27, 0xca, 0x0e, 0x6f, 0x65, 0x8f,
  4715. 0xbc, 0x45, 0x1e, 0x9d, 0x63, 0x4e, 0xc1, 0x36 },
  4716. { 0x12, 0x0c, 0xd4, 0x54, 0xa4, 0x9d, 0x63, 0x03, 0x67, 0x30,
  4717. 0x20, 0xed, 0x0b, 0xcf, 0x35, 0x38, 0xbd, 0x59, 0xc7, 0x57,
  4718. 0xde, 0x5c, 0x01, 0x91, 0x65, 0x5b, 0xa9, 0xe4, 0x08, 0x77,
  4719. 0x87, 0xd9, 0xe1, 0xdc, 0xbc, 0xd6, 0x99, 0x76, 0x32, 0x7e,
  4720. 0xf4, 0x2f, 0xaa, 0x97, 0x20, 0x6b, 0x5f, 0xaa, 0xc0, 0x9c,
  4721. 0x1c, 0x5a, 0x47, 0x22, 0xb4, 0xd7, 0xec, 0xb6, 0x8b, 0xd1,
  4722. 0x04, 0xba, 0xa4, 0x31, 0x1b, 0x87, 0xa5, 0x8e, 0x13, 0x93,
  4723. 0xc6, 0xe6, 0xd5, 0xf3, 0x23, 0xf8, 0x27, 0x32, 0x04, 0x49,
  4724. 0x7d, 0x5a, 0x27, 0x00, 0xdc, 0xfa, 0x19, 0x41, 0xb4, 0x38,
  4725. 0xe4, 0xcf, 0xfd, 0xc6, 0x03, 0x39, 0x35, 0x12, 0xaf, 0xe7,
  4726. 0x9d, 0x34, 0x3d, 0xc2, 0x9d, 0x7c, 0x1f, 0x0b, 0x8c, 0x57,
  4727. 0xa7, 0x28, 0xac, 0x3d, 0x9d, 0xa8, 0x1c, 0x08, 0xdb, 0x24,
  4728. 0x7e, 0x56, 0x4b, 0x86, 0x8d, 0xa5, 0xec, 0x5c },
  4729. { 0x02, 0x1c, 0xfd, 0x16, 0x7f, 0xde, 0xea, 0x3e, 0x8e, 0xf1,
  4730. 0x67, 0x7e, 0x70, 0x19, 0x33, 0x6e, 0xd5, 0x69, 0x84, 0x96,
  4731. 0xeb, 0x40, 0x54, 0xbc, 0x15, 0x1f, 0x69, 0x3a, 0x9b, 0xe0,
  4732. 0x24, 0x30, 0xa6, 0x7a, 0xd9, 0xf6, 0x8f, 0x01, 0x03, 0xcb,
  4733. 0x75, 0x8d, 0xaf, 0x64, 0x5e, 0xb3, 0x3e, 0x34, 0x66, 0xda,
  4734. 0xe2, 0xc2, 0xd4, 0x67, 0xfa, 0x92, 0xde, 0x1f, 0xaa, 0x12,
  4735. 0x0b, 0xc9, 0xae, 0xc1, 0x2e, 0xf0, 0x5b, 0x4b, 0x0e, 0x93,
  4736. 0xdf, 0xf2, 0xbd, 0x16, 0xf5, 0x58, 0x29, 0xdb, 0xdd, 0xcd,
  4737. 0xef, 0x2f, 0xf3, 0x80, 0x21, 0xa4, 0xf0, 0xd3, 0x3d, 0xe4,
  4738. 0x87, 0xf0, 0x47, 0x21, 0xab, 0x5c, 0x64, 0x2e, 0xd3, 0xa6,
  4739. 0x9b, 0x95, 0x77, 0x74, 0x9b, 0x6a, 0x68, 0x41, 0x5a, 0x8d,
  4740. 0x06, 0x65, 0xbc, 0x00, 0x3e, 0xf0, 0x2c, 0xce, 0x58, 0xee,
  4741. 0xeb, 0xfd, 0xb8, 0xf4, 0xca, 0xb0, 0xf9, 0xee },
  4742. { 0x07, 0x26, 0x5b, 0x46, 0xc7, 0x3c, 0xf7, 0x8e, 0x71, 0xed,
  4743. 0xcd, 0x9c, 0xa2, 0x05, 0x95, 0xa3, 0x5d, 0xed, 0xc2, 0x31,
  4744. 0xeb, 0x12, 0x8b, 0xb6, 0x80, 0x7c, 0x22, 0xdf, 0xbf, 0x8e,
  4745. 0xd5, 0x9c, 0xc8, 0x8f, 0xa8, 0x17, 0xfd, 0x0a, 0xe2, 0x8a,
  4746. 0xdc, 0x0c, 0x7e, 0x57, 0x99, 0x74, 0x30, 0x2c, 0xaf, 0x86,
  4747. 0xe3, 0x91, 0xed, 0x2a, 0xb5, 0x1a, 0xb9, 0x7a, 0xd5, 0xf9,
  4748. 0x22, 0x4a, 0x47, 0x0f, 0xfa, 0xeb, 0x52, 0xef, 0x15, 0x60,
  4749. 0x08, 0xb5, 0x52, 0x67, 0x07, 0x3f, 0x66, 0x34, 0x3d, 0x5a,
  4750. 0x0d, 0x8f, 0x71, 0x7e, 0x3d, 0x3b, 0xb1, 0x8b, 0xfd, 0xb1,
  4751. 0x67, 0x76, 0x30, 0x4a, 0xe4, 0xca, 0x1e, 0x5e, 0xc7, 0xb7,
  4752. 0x0f, 0x39, 0x93, 0xc8, 0x55, 0x36, 0x8d, 0x10, 0xf2, 0xcf,
  4753. 0x77, 0x13, 0x70, 0x3b, 0xde, 0x37, 0xd6, 0x4a, 0xd2, 0x54,
  4754. 0x5c, 0x73, 0x71, 0x5f, 0xdf, 0x5c, 0x36, 0xf3 },
  4755. { 0x36, 0xc5, 0x75, 0x4b, 0x31, 0xd1, 0x49, 0x6c, 0x6e, 0x9d,
  4756. 0x66, 0x7d, 0x0c, 0xc2, 0xf4, 0xbd, 0x8f, 0x47, 0x57, 0x5d,
  4757. 0x06, 0x44, 0x08, 0x0e, 0xdd, 0x88, 0xde, 0xee, 0x7a, 0x0a,
  4758. 0xc6, 0xe9, 0x6d, 0xcc, 0xa4, 0x9b, 0x49, 0xc1, 0x2a, 0xa2,
  4759. 0xcd, 0x9c, 0x0c, 0x08, 0xad, 0xaf, 0x79, 0x6f, 0x33, 0x3f,
  4760. 0x27, 0xd0, 0xf8, 0xa4, 0x3a, 0x97, 0x03, 0x89, 0xf3, 0x41,
  4761. 0x3b, 0xd3, 0x43, 0x02, 0xf8, 0xad, 0xf7, 0x2f, 0x06, 0x95,
  4762. 0x7b, 0x1f, 0xea, 0x39, 0x9c, 0xaa, 0x25, 0x57, 0x75, 0x3b,
  4763. 0x55, 0xea, 0x0e, 0x3a, 0x69, 0x73, 0xb9, 0x5a, 0x0e, 0x0e,
  4764. 0x1b, 0x1a, 0x52, 0x3c, 0x42, 0x8d, 0x23, 0x9e, 0xa8, 0xaa,
  4765. 0x7a, 0x94, 0x3f, 0x3b, 0xaf, 0x82, 0x6d, 0xfa, 0x5b, 0x86,
  4766. 0x0f, 0xc4, 0xc5, 0x9a, 0xaf, 0x89, 0xc4, 0x02, 0x77, 0x16,
  4767. 0x73, 0xdd, 0x99, 0xf0, 0xbd, 0x66, 0x23, 0x2f },
  4768. { 0x06, 0xfb, 0xf8, 0x61, 0x19, 0x46, 0x94, 0x4e, 0xfc, 0x8a,
  4769. 0x8a, 0xc9, 0xa2, 0x97, 0x5e, 0xb5, 0xa2, 0xdd, 0xad, 0xe5,
  4770. 0xc1, 0x64, 0xd9, 0x4f, 0x40, 0xc0, 0x15, 0x32, 0xc9, 0x58,
  4771. 0x22, 0xde, 0xc0, 0x78, 0x44, 0x94, 0xc4, 0x8a, 0xf5, 0xae,
  4772. 0x3d, 0x67, 0x42, 0xe9, 0x6b, 0x0b, 0x17, 0x05, 0xa9, 0x4c,
  4773. 0x3a, 0x40, 0x50, 0x51, 0x3d, 0xed, 0x6c, 0x49, 0x07, 0x5b,
  4774. 0x37, 0xef, 0x67, 0x77, 0x1c, 0x09, 0xdf, 0xf3, 0xc4, 0x18,
  4775. 0x00, 0xc5, 0x52, 0x97, 0xda, 0x6b, 0x4b, 0x23, 0xe4, 0xba,
  4776. 0x1c, 0x18, 0xd0, 0xf7, 0xcd, 0x6d, 0xef, 0x49, 0xc9, 0x05,
  4777. 0x46, 0x6a, 0x74, 0x0f, 0x8c, 0x79, 0x63, 0x39, 0x84, 0x4a,
  4778. 0x80, 0x79, 0x97, 0x4e, 0x4b, 0x0e, 0xaf, 0x4e, 0x92, 0x1b,
  4779. 0x80, 0x55, 0xa6, 0x99, 0x11, 0x22, 0x7e, 0x78, 0x9c, 0x4f,
  4780. 0x91, 0x20, 0x04, 0x6e, 0xf3, 0x23, 0xd8, 0x4b },
  4781. { 0x5e, 0x9c, 0xa0, 0xfd, 0x1f, 0x0f, 0xa9, 0xea, 0x5e, 0x64,
  4782. 0x29, 0x53, 0x04, 0xbb, 0x5a, 0xb1, 0x2a, 0x7d, 0x84, 0x11,
  4783. 0xa0, 0x3e, 0x8f, 0x0e, 0xd9, 0xd1, 0x96, 0x53, 0xd9, 0x5e,
  4784. 0xef, 0xa1, 0x83, 0x3d, 0x46, 0xa1, 0x36, 0x19, 0xcf, 0x4d,
  4785. 0x96, 0xd2, 0xe9, 0x57, 0x9d, 0xa0, 0x79, 0x33, 0x7c, 0x88,
  4786. 0xb1, 0x0b, 0x23, 0xd3, 0x43, 0x4e, 0xc9, 0x21, 0xe6, 0x9d,
  4787. 0x95, 0x71, 0xae, 0x28, 0x42, 0x2c, 0x32, 0x6d, 0xf0, 0x66,
  4788. 0x12, 0xa5, 0xe4, 0x0a, 0xbc, 0x9d, 0x5c, 0xbf, 0x6b, 0xf3,
  4789. 0x4c, 0x5f, 0x2a, 0x2a, 0xfb, 0x65, 0xbd, 0x03, 0x98, 0x2b,
  4790. 0x61, 0xf5, 0xb3, 0x0a, 0x1a, 0x23, 0x7b, 0xeb, 0x07, 0x1a,
  4791. 0xe4, 0xd7, 0x41, 0x7c, 0x05, 0xfe, 0xf5, 0x9b, 0x0f, 0xde,
  4792. 0xf8, 0xb9, 0xd8, 0x3b, 0x58, 0xc8, 0x1d, 0x04, 0x0f, 0xeb,
  4793. 0x2d, 0x65, 0x33, 0x8e, 0x3f, 0x45, 0xaa, 0x97 },
  4794. { 0x94, 0x06, 0x22, 0xb3, 0xc6, 0x83, 0x6a, 0xf8, 0x8c, 0xc2,
  4795. 0x04, 0x5b, 0x49, 0x95, 0x5f, 0x34, 0x69, 0xb1, 0xf1, 0xc7,
  4796. 0x36, 0x24, 0x24, 0xa6, 0x75, 0xb3, 0x18, 0xdc, 0x76, 0x93,
  4797. 0x69, 0x14, 0xd3, 0x39, 0x17, 0x17, 0x06, 0x4d, 0xdc, 0x77,
  4798. 0xea, 0xcc, 0x55, 0x13, 0x65, 0x64, 0x78, 0xe3, 0x7b, 0xc9,
  4799. 0x3a, 0x45, 0x03, 0xe3, 0xe0, 0x13, 0x7f, 0x16, 0x5f, 0xd3,
  4800. 0xa8, 0xf9, 0xac, 0x8a, 0x6a, 0xdc, 0x4b, 0x9e, 0x1e, 0x84,
  4801. 0x72, 0x8b, 0x26, 0xe3, 0x6f, 0xbe, 0x61, 0xf6, 0x4b, 0x56,
  4802. 0xfc, 0x79, 0x56, 0x2c, 0xd4, 0x03, 0x4a, 0x9a, 0xc1, 0xfc,
  4803. 0x9c, 0x7b, 0xc7, 0x58, 0xc6, 0xa3, 0xe9, 0x52, 0xdc, 0x2c,
  4804. 0x0d, 0x17, 0x46, 0x7c, 0x65, 0xfb, 0x9e, 0xfc, 0xff, 0xdb,
  4805. 0x0e, 0xb2, 0xe2, 0xda, 0x40, 0xbf, 0xe7, 0x8a, 0x95, 0xa2,
  4806. 0x5b, 0xd5, 0x45, 0x71, 0x19, 0x7c, 0x5d, 0xc4 },
  4807. { 0x80, 0xbb, 0x16, 0x64, 0x78, 0x5b, 0xed, 0xb6, 0xb9, 0xf4,
  4808. 0x98, 0x24, 0xbd, 0xe6, 0xbd, 0x71, 0xe2, 0xb4, 0x9c, 0x8c,
  4809. 0xcf, 0xde, 0x33, 0x68, 0xd8, 0xa9, 0x98, 0xa4, 0xf1, 0x90,
  4810. 0xa2, 0xc8, 0x2e, 0x0f, 0x86, 0x08, 0x3c, 0x23, 0xba, 0x9c,
  4811. 0x1e, 0xf1, 0xea, 0x8a, 0x49, 0x7a, 0x40, 0xda, 0xaf, 0x3f,
  4812. 0x5d, 0xe2, 0xce, 0xd2, 0xbf, 0x77, 0x69, 0xaa, 0x40, 0x75,
  4813. 0xae, 0x9c, 0x44, 0xb2, 0x0f, 0x82, 0xb3, 0xa6, 0xad, 0x98,
  4814. 0x02, 0xb6, 0x47, 0xe9, 0x7d, 0xa8, 0xf0, 0x16, 0x52, 0xa4,
  4815. 0xde, 0x6d, 0x87, 0x54, 0x6f, 0xc8, 0x3b, 0x11, 0x05, 0x41,
  4816. 0xaf, 0x9d, 0x3d, 0x26, 0x22, 0x46, 0xc6, 0x32, 0x1e, 0x0a,
  4817. 0x67, 0x3e, 0x14, 0xa5, 0x8c, 0xf0, 0xc4, 0xd5, 0x5b, 0x97,
  4818. 0xab, 0xd5, 0x3b, 0x29, 0x62, 0x5d, 0xd3, 0xf8, 0xf1, 0x15,
  4819. 0x47, 0x10, 0xcc, 0xb7, 0x0d, 0x99, 0x79, 0x73 },
  4820. { 0x07, 0x7b, 0xa5, 0xea, 0x41, 0x21, 0x23, 0x50, 0xed, 0xfc,
  4821. 0x15, 0x48, 0x63, 0xb8, 0x5a, 0x35, 0x95, 0x10, 0x79, 0x18,
  4822. 0x11, 0x0c, 0x77, 0x9c, 0x96, 0x95, 0x98, 0xdd, 0xcc, 0x58,
  4823. 0x00, 0x0b, 0x64, 0x97, 0x59, 0x63, 0xcb, 0x11, 0x8f, 0xf9,
  4824. 0x79, 0xea, 0x49, 0xc2, 0x54, 0xe2, 0x9c, 0xdc, 0xcd, 0x65,
  4825. 0xd2, 0x37, 0x1f, 0x20, 0xb3, 0x22, 0x7d, 0x5a, 0x6f, 0xf6,
  4826. 0x54, 0xeb, 0x49, 0xff, 0x0b, 0x66, 0xd7, 0x89, 0x76, 0xf8,
  4827. 0x2d, 0xbd, 0xb6, 0xba, 0x85, 0x00, 0x8b, 0xb4, 0xcb, 0x93,
  4828. 0xc3, 0xbf, 0xd6, 0xa8, 0x3e, 0x70, 0x86, 0xfa, 0x2f, 0xb9,
  4829. 0xe0, 0xc3, 0xa2, 0xa7, 0xba, 0x07, 0x9f, 0x15, 0x53, 0xde,
  4830. 0x13, 0x3b, 0x23, 0x38, 0x46, 0x1e, 0x70, 0xcf, 0x87, 0x93,
  4831. 0xb2, 0x73, 0x15, 0x5e, 0xe5, 0x61, 0xac, 0x5e, 0x68, 0x83,
  4832. 0x05, 0xe5, 0x75, 0xfe, 0xfd, 0x14, 0x5c, 0xb5 },
  4833. { 0x6b, 0x20, 0x06, 0xdf, 0x45, 0x91, 0xa2, 0xe2, 0xba, 0xf7,
  4834. 0x58, 0x1d, 0x9b, 0xc7, 0x7d, 0x21, 0x5b, 0x3c, 0x81, 0xb2,
  4835. 0xf4, 0x73, 0x96, 0x53, 0x09, 0x01, 0x26, 0x5c, 0xaf, 0xf0,
  4836. 0x75, 0x86, 0x81, 0x38, 0x99, 0x5a, 0x52, 0x35, 0x0e, 0x80,
  4837. 0xc9, 0x31, 0x79, 0xbd, 0xd3, 0xf5, 0x5c, 0x07, 0xab, 0xe5,
  4838. 0x23, 0x6e, 0x62, 0x99, 0xae, 0x7f, 0x2b, 0xe7, 0x02, 0x0d,
  4839. 0x45, 0xad, 0x59, 0x20, 0x9d, 0x28, 0x6e, 0xa7, 0x2c, 0xda,
  4840. 0xde, 0x77, 0xd5, 0x69, 0xaf, 0x36, 0x9a, 0xbf, 0x49, 0xee,
  4841. 0xd4, 0x6e, 0xc7, 0xe5, 0xf4, 0x64, 0xe8, 0xb3, 0xbb, 0x1d,
  4842. 0x31, 0xd1, 0x0e, 0x80, 0xc7, 0x60, 0x01, 0xdc, 0x1f, 0x98,
  4843. 0x8a, 0x32, 0xf1, 0x0f, 0x19, 0x12, 0xed, 0xc5, 0x80, 0x6d,
  4844. 0x02, 0x72, 0x43, 0x12, 0x14, 0x45, 0x05, 0x02, 0xa0, 0xab,
  4845. 0x0b, 0x3a, 0x38, 0xd3, 0xcd, 0xd8, 0x6f, 0x61 },
  4846. { 0x53, 0x21, 0x7e, 0xa6, 0xbd, 0x26, 0xb5, 0x50, 0x85, 0x5b,
  4847. 0x91, 0x1c, 0x66, 0x86, 0x8a, 0xfc, 0x84, 0x95, 0x40, 0xc0,
  4848. 0x32, 0xc3, 0x8e, 0x83, 0x24, 0xd1, 0x16, 0xe6, 0x38, 0xd6,
  4849. 0xb0, 0xa0, 0x26, 0x2a, 0x6f, 0xb8, 0xc9, 0x17, 0xb1, 0x6c,
  4850. 0xd6, 0xc1, 0x2e, 0x10, 0x62, 0x57, 0x41, 0xa4, 0x5c, 0x8d,
  4851. 0x7a, 0x75, 0x27, 0x55, 0xf8, 0x94, 0xb4, 0x76, 0xf4, 0x1e,
  4852. 0x9d, 0xc1, 0x2c, 0xe9, 0x10, 0xd0, 0xcb, 0x97, 0x6f, 0xa8,
  4853. 0xb7, 0x75, 0x70, 0xa9, 0xf4, 0x0c, 0x15, 0x31, 0xc0, 0x5a,
  4854. 0x54, 0xf1, 0xa7, 0x01, 0x35, 0x7f, 0x67, 0x9e, 0x4f, 0x8a,
  4855. 0x61, 0x84, 0xd2, 0x12, 0x5c, 0xaf, 0x84, 0x72, 0x8f, 0x25,
  4856. 0x53, 0xd5, 0x12, 0x5e, 0xd5, 0x71, 0x8d, 0x33, 0x00, 0x0e,
  4857. 0x7f, 0x99, 0x93, 0x1f, 0x53, 0x6a, 0x96, 0x2b, 0xb4, 0xfd,
  4858. 0xb2, 0xfe, 0x50, 0xa8, 0x96, 0x5b, 0x1b, 0xc1 },
  4859. { 0x03, 0x86, 0x93, 0x1e, 0xd9, 0xad, 0xbe, 0xef, 0x64, 0xbd,
  4860. 0x60, 0x01, 0x61, 0x83, 0x0a, 0xc2, 0xa0, 0x8d, 0x33, 0x79,
  4861. 0xf9, 0x78, 0x1b, 0x12, 0x99, 0x89, 0x3d, 0xd0, 0xf2, 0xbd,
  4862. 0x29, 0x5b, 0xf8, 0xe2, 0xd1, 0x73, 0x60, 0x44, 0xa9, 0xa6,
  4863. 0xa9, 0xe0, 0x8d, 0xcb, 0x4a, 0x6d, 0x65, 0xa1, 0xc8, 0x1e,
  4864. 0x01, 0xc9, 0xe9, 0xa0, 0x6f, 0x07, 0xa7, 0x27, 0xda, 0xcc,
  4865. 0x35, 0xcc, 0x05, 0x2f, 0x0f, 0x93, 0x8d, 0x1e, 0x42, 0xce,
  4866. 0x9e, 0xa8, 0xc4, 0xfa, 0xe9, 0xe8, 0xc3, 0xd4, 0xb1, 0xe1,
  4867. 0xa0, 0x7a, 0x96, 0xb3, 0x41, 0xc8, 0x15, 0xef, 0x6d, 0xc3,
  4868. 0xb8, 0x48, 0x38, 0x1a, 0x4f, 0xf7, 0xab, 0x7d, 0xaa, 0x2d,
  4869. 0xe4, 0xa5, 0x43, 0x44, 0x96, 0x4e, 0xb8, 0x5e, 0xca, 0xcb,
  4870. 0xd2, 0x6e, 0x96, 0x8d, 0xa9, 0xcb, 0xe6, 0x21, 0x14, 0x6c,
  4871. 0xfc, 0x84, 0x04, 0x73, 0x25, 0x9f, 0x52, 0xb4 },
  4872. { 0x2c, 0xaa, 0xf7, 0x49, 0x15, 0x04, 0x1c, 0x20, 0x0e, 0x49,
  4873. 0x67, 0xcd, 0xb4, 0xa8, 0x74, 0x8b, 0xcd, 0x3a, 0x21, 0xd6,
  4874. 0xd5, 0x8c, 0x6d, 0xb8, 0x1b, 0xa0, 0x97, 0xfc, 0xb7, 0x66,
  4875. 0x86, 0x3d, 0x81, 0xce, 0x36, 0xef, 0x8b, 0xbd, 0xcc, 0xb2,
  4876. 0x45, 0x9e, 0x93, 0x67, 0xbf, 0x32, 0x0e, 0x0e, 0x82, 0x59,
  4877. 0x68, 0x87, 0xe5, 0xef, 0x50, 0x2f, 0x67, 0x7e, 0xdc, 0x88,
  4878. 0x29, 0x72, 0x72, 0x1a, 0x75, 0xba, 0xcd, 0x75, 0x0f, 0x9c,
  4879. 0x6c, 0x40, 0x41, 0x86, 0x79, 0xfd, 0x49, 0xff, 0xf5, 0xc4,
  4880. 0x55, 0xcb, 0xe7, 0x09, 0x03, 0x31, 0x6a, 0xd2, 0x35, 0x4f,
  4881. 0xf4, 0x47, 0x11, 0x15, 0x94, 0xcd, 0x61, 0xca, 0x2e, 0x78,
  4882. 0x69, 0x9c, 0xe4, 0xd6, 0x3b, 0xc2, 0x38, 0xcf, 0x53, 0x6e,
  4883. 0xba, 0xed, 0xed, 0x9d, 0x2b, 0x67, 0xe3, 0x55, 0xbb, 0x07,
  4884. 0xd0, 0xd7, 0xab, 0xb3, 0xd0, 0x98, 0x85, 0xa5 },
  4885. { 0x86, 0xd7, 0xf5, 0x32, 0x45, 0xfe, 0x3b, 0xd8, 0x65, 0xa1,
  4886. 0xbb, 0xe2, 0x93, 0x50, 0x36, 0x1e, 0xc7, 0xc7, 0x1f, 0x3d,
  4887. 0x09, 0xd8, 0xff, 0x91, 0x36, 0xe8, 0x86, 0xe2, 0x70, 0xb0,
  4888. 0x55, 0x18, 0xb5, 0x6e, 0x45, 0xf1, 0xad, 0x50, 0xd9, 0xd9,
  4889. 0x6b, 0xb5, 0xd5, 0x11, 0xc1, 0x8a, 0x2b, 0xe7, 0x65, 0x6a,
  4890. 0x47, 0xca, 0x57, 0xd1, 0xa1, 0x70, 0x11, 0x72, 0x5d, 0x69,
  4891. 0xab, 0xac, 0x96, 0xf9, 0x30, 0x2c, 0x8f, 0x78, 0xf5, 0x67,
  4892. 0x23, 0xde, 0xb9, 0x09, 0xd2, 0x32, 0xd9, 0x25, 0xdc, 0xf2,
  4893. 0x9c, 0xe8, 0xe6, 0x81, 0x2d, 0xf3, 0x1f, 0xa4, 0x6c, 0xa8,
  4894. 0xb3, 0x20, 0x35, 0x6d, 0x39, 0x82, 0x48, 0xd0, 0xab, 0x75,
  4895. 0x7a, 0xe5, 0xb7, 0x0b, 0x26, 0x8e, 0xd1, 0xa5, 0x78, 0x1a,
  4896. 0x8c, 0x86, 0xb3, 0xe4, 0xea, 0x23, 0x22, 0x47, 0x15, 0x45,
  4897. 0x44, 0xf9, 0x80, 0x06, 0x6e, 0xd2, 0x04, 0x24 },
  4898. { 0x68, 0x2a, 0x55, 0xe3, 0x86, 0xc0, 0xb4, 0xdd, 0x5a, 0x4c,
  4899. 0x3c, 0x6f, 0xcb, 0xc1, 0xff, 0x85, 0x52, 0xc9, 0x4d, 0x0f,
  4900. 0x7d, 0x83, 0x6c, 0x5a, 0x5f, 0xfe, 0x5f, 0x94, 0x3d, 0xb6,
  4901. 0x08, 0x3c, 0x68, 0xee, 0xea, 0x62, 0xea, 0xe7, 0x5b, 0x16,
  4902. 0x68, 0xa6, 0x76, 0xdb, 0x88, 0x37, 0xd5, 0x1d, 0x00, 0x7f,
  4903. 0x3b, 0xaf, 0x24, 0x19, 0x8f, 0xd2, 0x4f, 0x5b, 0x45, 0x39,
  4904. 0x6e, 0x2b, 0xd8, 0x11, 0x0f, 0xb2, 0x39, 0xa8, 0x57, 0x9b,
  4905. 0xcc, 0x13, 0x36, 0x9f, 0x3b, 0xd9, 0x83, 0x55, 0xb0, 0x58,
  4906. 0x58, 0x30, 0x06, 0x44, 0xfb, 0xea, 0x45, 0xb8, 0x4d, 0xa3,
  4907. 0xb9, 0xdb, 0x88, 0x7e, 0xc6, 0x66, 0xd3, 0xe3, 0xac, 0x54,
  4908. 0x90, 0x89, 0x8d, 0x1c, 0xfa, 0xe5, 0x0e, 0x52, 0x26, 0xcd,
  4909. 0x01, 0xb4, 0xb6, 0x97, 0x50, 0x98, 0x8b, 0xc3, 0xd9, 0x13,
  4910. 0x99, 0xf1, 0x6e, 0xb6, 0xb0, 0xbf, 0x71, 0x9a },
  4911. { 0x02, 0x22, 0x7f, 0xa6, 0xfe, 0xfe, 0x4d, 0xcd, 0x05, 0x4f,
  4912. 0x25, 0x42, 0xe4, 0x0d, 0x39, 0x05, 0xd2, 0xcd, 0xf0, 0x1b,
  4913. 0x76, 0x88, 0xd7, 0x0c, 0xdc, 0xec, 0xc3, 0xab, 0x7b, 0x4c,
  4914. 0x7c, 0x91, 0xad, 0x73, 0x70, 0x52, 0xc6, 0xfd, 0xd7, 0xa6,
  4915. 0x41, 0x5d, 0x46, 0xa0, 0x85, 0x2f, 0x76, 0x11, 0x2c, 0xc3,
  4916. 0x0a, 0x31, 0xff, 0x4b, 0x04, 0x5c, 0x9b, 0xc7, 0xfd, 0x4f,
  4917. 0x14, 0x52, 0xd0, 0xac, 0x6c, 0x44, 0x76, 0x84, 0x49, 0xcd,
  4918. 0xc2, 0x1a, 0x15, 0x43, 0xf2, 0x7e, 0x23, 0x24, 0xa6, 0x8b,
  4919. 0xc8, 0x99, 0x27, 0xe6, 0x8a, 0x87, 0x72, 0x27, 0x1b, 0x13,
  4920. 0x34, 0x2f, 0x14, 0x29, 0x66, 0x29, 0x89, 0x0d, 0x39, 0x65,
  4921. 0xec, 0xc3, 0xe5, 0xe7, 0xd6, 0xae, 0x0c, 0xc5, 0xb7, 0x5a,
  4922. 0x46, 0xe3, 0x22, 0x76, 0x02, 0x6c, 0x34, 0xc7, 0x24, 0x5d,
  4923. 0xc8, 0xf2, 0x35, 0xa4, 0x58, 0x74, 0x95, 0xaa },
  4924. { 0x54, 0x7e, 0x24, 0x9a, 0x29, 0x26, 0x97, 0x78, 0x44, 0x6e,
  4925. 0x6a, 0x62, 0x15, 0xeb, 0xc7, 0xd0, 0x34, 0x27, 0xe5, 0x4d,
  4926. 0x7d, 0xd3, 0x75, 0x78, 0x64, 0xfc, 0x55, 0xfc, 0x28, 0xff,
  4927. 0xba, 0x81, 0x97, 0x1e, 0xb9, 0x15, 0xd5, 0xc4, 0xe8, 0x43,
  4928. 0x5f, 0x37, 0x16, 0xdf, 0xe3, 0x42, 0x0e, 0xea, 0xf5, 0xa5,
  4929. 0xc2, 0x2e, 0xbb, 0xc9, 0xf1, 0xa5, 0x64, 0xd1, 0x6e, 0x9f,
  4930. 0x88, 0x11, 0x67, 0xf4, 0xb0, 0x21, 0xe1, 0x4e, 0x07, 0x10,
  4931. 0xae, 0x9a, 0xbc, 0x1f, 0x27, 0x9d, 0x68, 0xfa, 0x4f, 0xce,
  4932. 0x21, 0xc9, 0x55, 0xf9, 0x8e, 0x08, 0xcb, 0x04, 0x09, 0x59,
  4933. 0xd0, 0x44, 0xb4, 0xcb, 0xec, 0xa0, 0x9d, 0x10, 0x90, 0xbf,
  4934. 0x96, 0xf7, 0xc5, 0xe5, 0xcb, 0x12, 0x8e, 0x09, 0x4f, 0x2c,
  4935. 0x8b, 0x22, 0x8e, 0xfe, 0xed, 0x46, 0xfd, 0xfd, 0x22, 0x5d,
  4936. 0x18, 0x05, 0xef, 0xd9, 0xb7, 0x51, 0x94, 0x8b },
  4937. { 0x45, 0xa4, 0x1c, 0xc0, 0xd2, 0xb0, 0x8e, 0xea, 0xc4, 0x2d,
  4938. 0xc7, 0x45, 0xbf, 0xe6, 0xc1, 0xeb, 0x1c, 0x68, 0x5c, 0xea,
  4939. 0x3c, 0x61, 0x32, 0xe6, 0xfc, 0xeb, 0x5c, 0x90, 0x8b, 0xcb,
  4940. 0x25, 0x05, 0x34, 0x79, 0xbe, 0xa1, 0xc2, 0x20, 0x21, 0x8b,
  4941. 0x74, 0x75, 0xe0, 0xe8, 0x31, 0x91, 0xd4, 0xe3, 0xd2, 0x45,
  4942. 0x65, 0x69, 0x79, 0x32, 0xa1, 0xf0, 0xe5, 0x7e, 0x4d, 0x29,
  4943. 0x61, 0x6f, 0xde, 0xda, 0x7f, 0xfd, 0xdf, 0x84, 0x03, 0xdc,
  4944. 0xf1, 0xce, 0xa0, 0xc5, 0xbb, 0x1d, 0xdd, 0xee, 0xc0, 0x25,
  4945. 0x18, 0xc9, 0x9d, 0x83, 0xaa, 0x2f, 0x7d, 0x51, 0x3d, 0x2c,
  4946. 0x09, 0xba, 0xf9, 0x34, 0x28, 0x23, 0x5b, 0x41, 0x27, 0xea,
  4947. 0x9d, 0xe5, 0xe7, 0x0a, 0xf6, 0x51, 0x51, 0xe1, 0x0a, 0x63,
  4948. 0xf3, 0xd8, 0xb4, 0xe6, 0xcd, 0xcc, 0x79, 0x55, 0xcf, 0x50,
  4949. 0x47, 0x06, 0x86, 0x8a, 0xa1, 0xff, 0xda, 0x27 },
  4950. { 0x12, 0x87, 0x63, 0xc9, 0x42, 0xee, 0x40, 0xc8, 0xba, 0x85,
  4951. 0x0a, 0xc9, 0xd0, 0x87, 0xda, 0x02, 0xa8, 0x4c, 0x06, 0xb6,
  4952. 0xb6, 0xac, 0x2a, 0xf6, 0x36, 0x2d, 0x7a, 0x77, 0xd8, 0x8e,
  4953. 0x69, 0x44, 0x2d, 0x32, 0x59, 0xd4, 0x8a, 0x0f, 0x29, 0x8c,
  4954. 0x0f, 0x0b, 0xd9, 0xbd, 0x28, 0xff, 0xf6, 0xdd, 0x14, 0x56,
  4955. 0x01, 0xed, 0x3d, 0x58, 0x9b, 0xea, 0xc8, 0x7b, 0xe1, 0xe4,
  4956. 0x49, 0xdf, 0x78, 0x1e, 0x96, 0x32, 0x3d, 0x25, 0x24, 0x21,
  4957. 0xe3, 0x75, 0xb2, 0xaf, 0xbd, 0xdc, 0x0d, 0xf3, 0x18, 0x4e,
  4958. 0x93, 0xdf, 0x7d, 0xa4, 0x98, 0x4f, 0xd1, 0x1f, 0x2c, 0x9e,
  4959. 0x4f, 0x52, 0xa2, 0x85, 0x74, 0x1a, 0x4f, 0x54, 0x12, 0xd2,
  4960. 0xa9, 0xbe, 0xb1, 0x7e, 0xdc, 0x1e, 0xa7, 0x58, 0x5e, 0xeb,
  4961. 0x4c, 0x66, 0x41, 0xff, 0x96, 0x2f, 0xa1, 0x7c, 0xf7, 0x0e,
  4962. 0x3e, 0xa9, 0xb2, 0xc7, 0x4d, 0xbb, 0xf0, 0xe1 },
  4963. { 0x75, 0xe9, 0x6b, 0xcc, 0xfc, 0x4f, 0x74, 0xd2, 0x1e, 0x82,
  4964. 0x04, 0xb7, 0x68, 0xbb, 0x63, 0x7f, 0x6a, 0x7e, 0x00, 0x67,
  4965. 0xb4, 0x12, 0x6d, 0x72, 0x5e, 0x8c, 0xa1, 0xf9, 0xb2, 0x0f,
  4966. 0xcd, 0x74, 0x7e, 0x8d, 0xa5, 0x13, 0x99, 0xb3, 0xa0, 0xeb,
  4967. 0x21, 0x60, 0xcb, 0x18, 0xb1, 0x3e, 0xb7, 0x1b, 0x07, 0x36,
  4968. 0x55, 0x61, 0xb1, 0xc9, 0x95, 0xf3, 0xb4, 0x76, 0x56, 0x5e,
  4969. 0x03, 0x21, 0x81, 0x23, 0x3f, 0x1d, 0x8d, 0x88, 0xc1, 0xde,
  4970. 0x7e, 0xbc, 0xfe, 0x9f, 0xda, 0x66, 0x8b, 0x88, 0x17, 0x52,
  4971. 0x5b, 0x29, 0xd2, 0x13, 0x9a, 0x2e, 0x8e, 0x03, 0x7c, 0x75,
  4972. 0xf5, 0xc4, 0xcb, 0x08, 0x85, 0x48, 0xb2, 0x11, 0x5d, 0xa3,
  4973. 0x86, 0x61, 0x57, 0x67, 0xe9, 0x63, 0x1d, 0x14, 0x70, 0xfe,
  4974. 0xde, 0xd2, 0x7c, 0xc2, 0x00, 0x44, 0x34, 0xb0, 0x8f, 0x6e,
  4975. 0x29, 0xa8, 0x0f, 0x07, 0xac, 0xba, 0xc1, 0x78 },
  4976. { 0x30, 0x9a, 0x6e, 0x9a, 0xba, 0x26, 0x89, 0x49, 0xd8, 0x8f,
  4977. 0x56, 0x6b, 0xa1, 0x6e, 0x52, 0x3d, 0x8a, 0x86, 0xf0, 0x9b,
  4978. 0x5d, 0x6b, 0x81, 0x96, 0xae, 0xba, 0x4f, 0xe4, 0x8a, 0xe5,
  4979. 0xb6, 0x87, 0xfe, 0x02, 0xf8, 0x3c, 0xb1, 0x48, 0x76, 0x27,
  4980. 0x9c, 0x57, 0xb0, 0x29, 0xcf, 0x3d, 0xe4, 0x92, 0x98, 0x5e,
  4981. 0xf8, 0xd2, 0x42, 0xd1, 0xd9, 0x92, 0xe8, 0x0b, 0x2e, 0x7a,
  4982. 0xc1, 0x5b, 0x24, 0x89, 0xa7, 0x67, 0x26, 0x83, 0xea, 0x87,
  4983. 0x6f, 0x48, 0x60, 0x08, 0x3b, 0xd8, 0x81, 0x50, 0x91, 0x29,
  4984. 0xa9, 0x78, 0x88, 0x36, 0x4f, 0x53, 0xf5, 0x5f, 0x91, 0xd8,
  4985. 0x5d, 0x46, 0x4d, 0x6f, 0xd5, 0xb7, 0x12, 0xb6, 0xbf, 0x83,
  4986. 0x6c, 0x07, 0x15, 0x0f, 0x64, 0xa8, 0x46, 0xd1, 0xea, 0x98,
  4987. 0x7d, 0x2a, 0xdf, 0x58, 0x50, 0x58, 0x7c, 0x38, 0x45, 0x25,
  4988. 0x18, 0x9d, 0x1f, 0xdc, 0x0d, 0x19, 0x71, 0x6e },
  4989. { 0x04, 0x58, 0x25, 0x8a, 0xd7, 0x59, 0x37, 0x89, 0xee, 0xb3,
  4990. 0x66, 0x53, 0x57, 0x69, 0xb2, 0x02, 0xe3, 0x59, 0x78, 0xfd,
  4991. 0x71, 0x4f, 0xea, 0x55, 0xcf, 0x96, 0x73, 0xc7, 0x75, 0xd6,
  4992. 0x8a, 0xc1, 0xd4, 0x2e, 0x87, 0x7f, 0xdb, 0x2a, 0x35, 0x8a,
  4993. 0x92, 0x4d, 0xbe, 0x7d, 0x53, 0xbe, 0x7e, 0xfd, 0xd3, 0x1c,
  4994. 0xcf, 0xd6, 0x21, 0xc2, 0xb6, 0x3d, 0x26, 0x7f, 0x8d, 0x8f,
  4995. 0x8e, 0x1e, 0xee, 0x88, 0x0f, 0xbb, 0x17, 0x14, 0x1f, 0xa2,
  4996. 0x64, 0xe8, 0xa1, 0x5b, 0x33, 0x62, 0xc4, 0x9d, 0x5c, 0xcb,
  4997. 0xc5, 0x81, 0xef, 0x87, 0xeb, 0x90, 0x86, 0x81, 0xc0, 0xc3,
  4998. 0xac, 0xdb, 0x75, 0x50, 0xed, 0x3a, 0x8f, 0xa1, 0x5a, 0x85,
  4999. 0xbe, 0xd3, 0x6c, 0xc5, 0xcc, 0x7b, 0xeb, 0x01, 0x7f, 0xe0,
  5000. 0x9f, 0x5c, 0x1a, 0x5f, 0xe7, 0x0f, 0xb8, 0xc5, 0x0c, 0x4d,
  5001. 0xef, 0x27, 0xee, 0x50, 0xbd, 0xfb, 0xe9, 0x7a },
  5002. { 0x53, 0xf4, 0xa3, 0xe0, 0x95, 0xb7, 0x73, 0x58, 0xa2, 0xb8,
  5003. 0x80, 0xe5, 0x6f, 0x86, 0xc0, 0x29, 0x00, 0x4b, 0x87, 0x57,
  5004. 0xe4, 0x1f, 0xac, 0xc0, 0xba, 0xaf, 0x66, 0x3c, 0x96, 0xd1,
  5005. 0x09, 0x91, 0x7f, 0x74, 0x91, 0x5b, 0x2e, 0x84, 0xec, 0x34,
  5006. 0xbe, 0xe1, 0x48, 0x43, 0x4f, 0x02, 0x90, 0x4b, 0x83, 0xc8,
  5007. 0xf6, 0xa6, 0xe7, 0xb6, 0xd8, 0x86, 0xc0, 0x89, 0x5b, 0xff,
  5008. 0x39, 0x77, 0x7e, 0x00, 0xb3, 0x5f, 0xce, 0x26, 0xd6, 0xb3,
  5009. 0xc7, 0x42, 0x98, 0xc0, 0x56, 0x58, 0x43, 0x34, 0x6b, 0x9c,
  5010. 0xe0, 0xee, 0x85, 0x1d, 0xa3, 0x07, 0x67, 0xc3, 0xf5, 0x6a,
  5011. 0x8d, 0xef, 0x0f, 0x0e, 0x6b, 0x5f, 0x28, 0x5d, 0x67, 0x45,
  5012. 0xca, 0x2e, 0x89, 0x2e, 0x0e, 0x66, 0xcb, 0xa7, 0x0d, 0x2e,
  5013. 0x66, 0x57, 0x2d, 0x40, 0x58, 0x57, 0x57, 0x79, 0xdf, 0xa2,
  5014. 0x5d, 0xf7, 0x1a, 0x74, 0xa0, 0x42, 0xdb, 0xdf },
  5015. { 0x0a, 0x99, 0xe6, 0x53, 0xd7, 0x23, 0xd2, 0x36, 0xaa, 0xf9,
  5016. 0x8d, 0x74, 0x69, 0x08, 0xd5, 0x63, 0x85, 0x01, 0x56, 0x2e,
  5017. 0x30, 0x5e, 0x99, 0xf0, 0x13, 0xa3, 0xf1, 0x45, 0x51, 0xd9,
  5018. 0x10, 0x73, 0x7c, 0x26, 0x4e, 0x6d, 0x48, 0x3e, 0xd8, 0x9a,
  5019. 0x16, 0xe8, 0xd9, 0x89, 0x24, 0x9e, 0x26, 0xf2, 0xfe, 0xb8,
  5020. 0xcc, 0xa0, 0xc4, 0x58, 0x45, 0xcf, 0x97, 0xc8, 0xdc, 0x0e,
  5021. 0xfc, 0x1c, 0xb5, 0xb5, 0xd3, 0x59, 0x47, 0xf5, 0xf3, 0xa8,
  5022. 0xf7, 0xf0, 0x38, 0xee, 0xc0, 0xcd, 0x28, 0x5d, 0xf2, 0xbf,
  5023. 0x42, 0xaa, 0x1a, 0xb6, 0x2b, 0x77, 0xb7, 0xa9, 0xe2, 0x6d,
  5024. 0x90, 0xb1, 0x76, 0x31, 0x91, 0x60, 0x7d, 0x2e, 0xfa, 0xea,
  5025. 0x79, 0x75, 0x7c, 0xb6, 0xf0, 0x6b, 0xcb, 0xf8, 0xa0, 0xc1,
  5026. 0xcb, 0x5a, 0xba, 0x60, 0xc5, 0x77, 0xaf, 0xab, 0x5a, 0xeb,
  5027. 0x11, 0xbb, 0x08, 0xce, 0x89, 0xfc, 0x48, 0xe7 },
  5028. { 0x3a, 0x95, 0xcb, 0x45, 0x01, 0x0f, 0xcb, 0xc0, 0xb5, 0x95,
  5029. 0xdb, 0xd1, 0x3e, 0xeb, 0xf7, 0xea, 0x96, 0x50, 0xfc, 0x31,
  5030. 0x75, 0x32, 0x55, 0x48, 0x9f, 0x76, 0x87, 0x75, 0x33, 0x26,
  5031. 0x39, 0xe7, 0xd9, 0x73, 0x43, 0xee, 0x83, 0x23, 0xdd, 0xfa,
  5032. 0xfe, 0x20, 0x21, 0xe3, 0x42, 0x48, 0xe3, 0xd8, 0xc1, 0x26,
  5033. 0xa9, 0x3a, 0x0d, 0x0e, 0x30, 0x63, 0xcf, 0x74, 0x72, 0x73,
  5034. 0xf7, 0x84, 0x85, 0x23, 0xc5, 0xcd, 0x9a, 0xbe, 0x29, 0xb7,
  5035. 0x4d, 0x9a, 0x9a, 0xd3, 0x18, 0x93, 0x8c, 0x17, 0x0a, 0x36,
  5036. 0xa6, 0xf2, 0xdf, 0x8b, 0x46, 0x65, 0x52, 0xdb, 0xc6, 0x0f,
  5037. 0xf5, 0x7a, 0xab, 0x79, 0x3a, 0x2d, 0x61, 0x25, 0x4b, 0xe1,
  5038. 0x13, 0x78, 0xe9, 0x07, 0x22, 0x9f, 0xd2, 0x29, 0x0c, 0x16,
  5039. 0x81, 0xb5, 0xc1, 0x63, 0x06, 0x7b, 0x9a, 0xa1, 0xa1, 0x60,
  5040. 0x23, 0x53, 0x6f, 0x46, 0xab, 0xbc, 0x05, 0x59 },
  5041. { 0x36, 0x6d, 0x22, 0x2e, 0x03, 0x0b, 0x72, 0x45, 0x5d, 0x71,
  5042. 0x3c, 0x1d, 0xda, 0xd6, 0x72, 0xc3, 0x93, 0x59, 0x7f, 0x66,
  5043. 0x32, 0x97, 0x84, 0xf1, 0x48, 0x5b, 0xb4, 0x36, 0xcd, 0xba,
  5044. 0x93, 0xda, 0x01, 0x70, 0x2d, 0xc1, 0x47, 0x44, 0xae, 0xe6,
  5045. 0xa5, 0xfb, 0x63, 0x9b, 0x41, 0xcc, 0xab, 0xa3, 0x2a, 0x2f,
  5046. 0xa3, 0xa0, 0x24, 0x53, 0x2a, 0xb3, 0x01, 0x57, 0xca, 0xa4,
  5047. 0x8c, 0xd0, 0x92, 0xda, 0xf0, 0x07, 0x7c, 0xdb, 0xd2, 0x7e,
  5048. 0x64, 0xdb, 0x54, 0x5d, 0x09, 0x25, 0x51, 0x86, 0xd2, 0x18,
  5049. 0x1a, 0x5b, 0xc3, 0xc3, 0xa6, 0x90, 0x2b, 0xda, 0x0c, 0x57,
  5050. 0x98, 0xab, 0x32, 0xcd, 0x08, 0xd2, 0x79, 0x65, 0xc0, 0xb0,
  5051. 0x91, 0xca, 0xd8, 0xce, 0x02, 0xa9, 0x2c, 0x77, 0x71, 0x69,
  5052. 0x43, 0x8a, 0x8d, 0xd1, 0xcb, 0x4b, 0xc1, 0xd5, 0xc4, 0x8f,
  5053. 0x95, 0x4e, 0x68, 0xcb, 0x39, 0xd7, 0xff, 0x2e },
  5054. { 0x90, 0x72, 0xba, 0x99, 0x79, 0xde, 0xfd, 0x25, 0x17, 0x3d,
  5055. 0xcc, 0xd2, 0x06, 0x61, 0xbf, 0xda, 0x44, 0x28, 0x71, 0x53,
  5056. 0xd3, 0x08, 0x93, 0xfd, 0x4b, 0xb7, 0x6e, 0x73, 0xe5, 0x93,
  5057. 0x2b, 0x7e, 0x05, 0x5e, 0xa6, 0xdd, 0xad, 0xf1, 0xb3, 0x68,
  5058. 0x43, 0x40, 0x8d, 0xe1, 0x5f, 0x97, 0x1b, 0x8e, 0x4e, 0x8b,
  5059. 0x31, 0x45, 0xdd, 0x2f, 0x17, 0x59, 0x98, 0xed, 0x14, 0x99,
  5060. 0x2b, 0x8a, 0x78, 0xd8, 0x6d, 0xc5, 0xfe, 0xe7, 0x3f, 0x48,
  5061. 0xca, 0x07, 0x66, 0x92, 0x71, 0x2c, 0x7b, 0x5a, 0xd0, 0x7d,
  5062. 0xae, 0x14, 0x11, 0x47, 0xd3, 0x2a, 0xcd, 0x21, 0x0b, 0x8e,
  5063. 0xbf, 0x05, 0xa5, 0x38, 0xbf, 0x49, 0x72, 0x2a, 0x80, 0xa5,
  5064. 0xcf, 0x11, 0x44, 0x60, 0x7b, 0x53, 0xfa, 0x65, 0x7a, 0x1a,
  5065. 0x03, 0x10, 0x0f, 0xce, 0x40, 0x1b, 0xa9, 0x0d, 0xa4, 0x4d,
  5066. 0xd5, 0x0b, 0x48, 0x75, 0x57, 0x3e, 0xa5, 0xb2 },
  5067. { 0x8d, 0x92, 0xc6, 0xbd, 0x35, 0x54, 0x6c, 0x29, 0x26, 0xac,
  5068. 0x96, 0x52, 0x43, 0x9d, 0x16, 0x54, 0x7e, 0x8f, 0x23, 0xd9,
  5069. 0xb6, 0xa8, 0x8f, 0x46, 0x7e, 0x60, 0x8d, 0x97, 0x7d, 0x6c,
  5070. 0x02, 0xee, 0x4d, 0x81, 0x5a, 0x40, 0x7f, 0x0f, 0x15, 0x3f,
  5071. 0x6b, 0x19, 0xbe, 0xa9, 0x35, 0xe1, 0x1b, 0xda, 0x33, 0xb2,
  5072. 0x88, 0x6d, 0x6b, 0x87, 0x1f, 0x8d, 0x56, 0x17, 0x1e, 0xcf,
  5073. 0xb0, 0xa0, 0xf5, 0x92, 0x6a, 0xe0, 0xe2, 0x2b, 0xfb, 0xdf,
  5074. 0xa5, 0xba, 0xea, 0x3e, 0x8a, 0xc6, 0x8a, 0xd1, 0x22, 0x42,
  5075. 0xa6, 0xe4, 0xc9, 0x87, 0x72, 0x9c, 0x09, 0xe3, 0x4e, 0xd0,
  5076. 0x72, 0xb3, 0x8f, 0x0e, 0xc9, 0xb3, 0x6a, 0x38, 0x28, 0x6f,
  5077. 0x3f, 0x3d, 0xf1, 0xd5, 0x0b, 0x0e, 0x8b, 0xb1, 0xcd, 0x3a,
  5078. 0x9c, 0x43, 0xfb, 0xf1, 0x64, 0x9f, 0xc8, 0x31, 0xce, 0xe8,
  5079. 0x47, 0x4d, 0xe4, 0xdd, 0x96, 0x20, 0xea, 0x39 },
  5080. { 0x4e, 0x4b, 0xec, 0x17, 0x5c, 0x1a, 0xe5, 0xc0, 0x8d, 0x43,
  5081. 0xd8, 0x98, 0x8d, 0xd8, 0x27, 0xea, 0xf8, 0x05, 0x39, 0x6c,
  5082. 0x29, 0x05, 0x3e, 0xf5, 0x30, 0xaa, 0x52, 0xb1, 0xcb, 0xbb,
  5083. 0x54, 0x70, 0xa8, 0x8f, 0xda, 0xbf, 0x78, 0x88, 0x4c, 0x25,
  5084. 0x54, 0xbf, 0x9d, 0xe1, 0x53, 0xbd, 0xe6, 0x3d, 0xbe, 0x6a,
  5085. 0x50, 0x2b, 0x81, 0xf9, 0x0b, 0xdc, 0x97, 0xad, 0xec, 0x2d,
  5086. 0xf0, 0xa6, 0x21, 0xb0, 0xab, 0xcc, 0x81, 0x5a, 0xfa, 0x57,
  5087. 0xae, 0x0a, 0x91, 0x6a, 0x77, 0x9c, 0xbd, 0xa0, 0xb9, 0x47,
  5088. 0x87, 0x4e, 0xe8, 0x40, 0xf9, 0x3f, 0x58, 0x1c, 0x12, 0x45,
  5089. 0xad, 0xbc, 0x43, 0x5c, 0xfe, 0xe1, 0x9e, 0xce, 0x2e, 0x1f,
  5090. 0x1c, 0xd4, 0x4b, 0xc3, 0x57, 0xd1, 0xb2, 0x26, 0xde, 0x80,
  5091. 0x84, 0x99, 0xfb, 0xe3, 0x52, 0x54, 0x3e, 0x0e, 0x42, 0xf8,
  5092. 0xb3, 0xe0, 0xd7, 0xce, 0xab, 0xeb, 0x0f, 0xf7 },
  5093. { 0x7a, 0x4a, 0xa3, 0xf5, 0x6f, 0x9d, 0xed, 0x24, 0x72, 0xe6,
  5094. 0x7d, 0x1a, 0xb4, 0x87, 0x76, 0x77, 0x64, 0x7e, 0x3d, 0x28,
  5095. 0xec, 0x7e, 0x81, 0xa2, 0x02, 0xb9, 0x4c, 0xb3, 0x32, 0x92,
  5096. 0x81, 0x3a, 0x44, 0x9c, 0x20, 0xa5, 0x98, 0xf5, 0x08, 0xa8,
  5097. 0xa9, 0xc8, 0x08, 0x00, 0xec, 0x2c, 0x63, 0xfe, 0x2c, 0x0e,
  5098. 0x8f, 0x30, 0xff, 0x56, 0xa9, 0xa1, 0xa6, 0xdc, 0xe0, 0x67,
  5099. 0xb4, 0xe8, 0x33, 0xa5, 0x0b, 0xd4, 0xbc, 0x6b, 0xd4, 0xfd,
  5100. 0x13, 0x5e, 0x47, 0x70, 0x45, 0x81, 0xb9, 0x0a, 0xf0, 0xb5,
  5101. 0x8d, 0x1b, 0x95, 0xd0, 0x9e, 0xd7, 0x46, 0xf0, 0x64, 0x4b,
  5102. 0xba, 0x98, 0x16, 0xe3, 0x51, 0x58, 0xe7, 0x91, 0x5f, 0xd2,
  5103. 0x84, 0x3f, 0xe7, 0xd8, 0xa6, 0x85, 0x2e, 0xf3, 0xd7, 0x02,
  5104. 0xa5, 0xdd, 0x45, 0x7c, 0x4a, 0x3f, 0x19, 0xea, 0x9a, 0x94,
  5105. 0xbf, 0x84, 0x83, 0xa2, 0xfc, 0xc0, 0x96, 0x76 },
  5106. { 0x60, 0x28, 0x2a, 0x7b, 0xf7, 0xf0, 0xad, 0xe1, 0x0c, 0xbd,
  5107. 0x7d, 0xc8, 0xc0, 0xa2, 0x69, 0xc5, 0xdc, 0x9d, 0xfa, 0x4f,
  5108. 0xb4, 0x1a, 0xb5, 0xdf, 0x48, 0xfc, 0xeb, 0xde, 0x9f, 0xd0,
  5109. 0x9d, 0xf8, 0x15, 0x99, 0x2f, 0xb4, 0x28, 0xd6, 0x9b, 0x12,
  5110. 0x38, 0xe0, 0xbf, 0x42, 0x1a, 0x19, 0x27, 0x4f, 0xc1, 0xee,
  5111. 0xb3, 0xf3, 0xa9, 0xd3, 0xfe, 0x55, 0x67, 0xdc, 0xa1, 0x9d,
  5112. 0xcd, 0xce, 0x38, 0x1e, 0x77, 0x5d, 0xce, 0x9d, 0xb0, 0x51,
  5113. 0x2e, 0xa6, 0x96, 0xcc, 0x64, 0x0f, 0xcd, 0x3f, 0x4b, 0xb7,
  5114. 0x74, 0xf8, 0xfe, 0xe0, 0x34, 0xa2, 0xc8, 0x3b, 0x5a, 0xc6,
  5115. 0x81, 0x32, 0xaf, 0xfa, 0x1f, 0xcf, 0x97, 0x54, 0x4f, 0xc5,
  5116. 0x9b, 0x3f, 0x9c, 0x54, 0x23, 0xa4, 0x78, 0xe4, 0x39, 0xcf,
  5117. 0x8d, 0x24, 0xdc, 0x81, 0x2d, 0x4f, 0xb2, 0x42, 0xcb, 0x50,
  5118. 0x55, 0x9e, 0xf1, 0xba, 0xe2, 0x7a, 0x00, 0x45 },
  5119. { 0x5f, 0x4a, 0xe9, 0xc7, 0x23, 0xc6, 0xb9, 0x42, 0x3f, 0xd2,
  5120. 0x86, 0xd9, 0x4a, 0x5f, 0xbe, 0x70, 0xe4, 0x7a, 0x75, 0x39,
  5121. 0x68, 0xcc, 0x39, 0xed, 0x2d, 0x6a, 0x40, 0x7d, 0xfb, 0xc5,
  5122. 0xc3, 0x72, 0x55, 0x50, 0xf7, 0xac, 0xd8, 0xc7, 0x3a, 0x43,
  5123. 0xe9, 0x01, 0x66, 0xd0, 0x0f, 0xa5, 0x16, 0xae, 0x5f, 0xb7,
  5124. 0x42, 0xf9, 0x19, 0x01, 0x91, 0x38, 0xc3, 0x0b, 0x71, 0x4e,
  5125. 0x16, 0xfe, 0x46, 0x6a, 0xf1, 0xe8, 0x2f, 0xfe, 0x00, 0x86,
  5126. 0x9b, 0xcd, 0x38, 0x69, 0x2c, 0xa8, 0x2c, 0xad, 0x14, 0x40,
  5127. 0x4c, 0x99, 0xf2, 0x58, 0x91, 0xa7, 0xb6, 0x42, 0xc6, 0x3a,
  5128. 0x34, 0x17, 0xb5, 0xe6, 0xb4, 0x05, 0xf2, 0x1b, 0x69, 0xfb,
  5129. 0xc7, 0x77, 0x6a, 0x10, 0x67, 0x68, 0x28, 0xf9, 0x4f, 0x1f,
  5130. 0x65, 0x16, 0x38, 0xa3, 0x22, 0xc8, 0x3c, 0x42, 0x06, 0x1d,
  5131. 0x7c, 0x07, 0xe5, 0x38, 0xdc, 0xee, 0xa2, 0xe7 },
  5132. { 0x92, 0xa0, 0x14, 0x23, 0xdc, 0x46, 0xaf, 0xd2, 0x9c, 0xd3,
  5133. 0xe2, 0x91, 0x40, 0x1a, 0xa5, 0x03, 0x93, 0x9a, 0x7f, 0x26,
  5134. 0xac, 0xa4, 0xaa, 0x80, 0x2f, 0x64, 0xce, 0x73, 0x51, 0x0e,
  5135. 0x4d, 0x9c, 0xa2, 0x35, 0x27, 0x35, 0x2f, 0x27, 0x52, 0xaf,
  5136. 0xf5, 0xb3, 0xb4, 0xc6, 0xc9, 0x01, 0x42, 0x0c, 0x32, 0xee,
  5137. 0x98, 0xd4, 0x15, 0x66, 0x1c, 0x2d, 0x88, 0xb3, 0x46, 0x49,
  5138. 0x6b, 0x73, 0x66, 0xa9, 0xbb, 0xca, 0xdb, 0x87, 0x7a, 0x68,
  5139. 0xfc, 0x0a, 0xa4, 0xbc, 0xa8, 0x6e, 0xa8, 0x65, 0x88, 0x17,
  5140. 0xb9, 0x8c, 0x47, 0x1e, 0xf9, 0xe5, 0xee, 0x02, 0xc4, 0x15,
  5141. 0x1b, 0x0a, 0xa3, 0x76, 0x61, 0xb3, 0x25, 0x48, 0x8a, 0x0d,
  5142. 0x9f, 0x21, 0x95, 0xea, 0x44, 0x9a, 0x01, 0xfb, 0xfd, 0xd4,
  5143. 0xb0, 0x51, 0x28, 0x6d, 0x45, 0xd0, 0x16, 0xda, 0x19, 0x92,
  5144. 0xd9, 0x6a, 0x2d, 0xda, 0x53, 0xf4, 0xd5, 0x61 },
  5145. { 0x0f, 0xc8, 0xfe, 0x1e, 0xaa, 0x88, 0xcb, 0x9b, 0x90, 0x74,
  5146. 0x87, 0x06, 0x16, 0x1c, 0x51, 0x5b, 0x6f, 0x2c, 0x42, 0x8b,
  5147. 0x89, 0x60, 0x95, 0x7e, 0xf9, 0x60, 0xb5, 0xb9, 0x94, 0x06,
  5148. 0xc3, 0xbd, 0x86, 0xdc, 0x2b, 0xa3, 0xe4, 0x88, 0x78, 0x9e,
  5149. 0x9c, 0xa1, 0x9a, 0x43, 0xd9, 0x9b, 0x08, 0x57, 0x2a, 0x22,
  5150. 0x62, 0x63, 0x16, 0xa4, 0xc8, 0x7e, 0x04, 0x57, 0x9f, 0x2c,
  5151. 0xac, 0xb5, 0xe4, 0x6e, 0x9f, 0x62, 0x30, 0xd7, 0x74, 0x24,
  5152. 0x01, 0x95, 0x82, 0x3f, 0xee, 0x7a, 0x82, 0x56, 0x6a, 0xbd,
  5153. 0x27, 0x4d, 0xd8, 0x5e, 0x05, 0x8d, 0x90, 0xbd, 0xe8, 0x7f,
  5154. 0x7d, 0x01, 0x7a, 0x67, 0x56, 0xfb, 0x9a, 0xb7, 0x13, 0xe2,
  5155. 0x48, 0x14, 0x19, 0x41, 0x96, 0x3e, 0x25, 0xbb, 0x86, 0x48,
  5156. 0xf1, 0x28, 0xda, 0x8c, 0x90, 0x0f, 0xb7, 0xd5, 0x27, 0xfa,
  5157. 0xe9, 0xf2, 0x4b, 0xe1, 0x1c, 0x2f, 0x7d, 0xbd },
  5158. { 0x2d, 0x0b, 0xa8, 0x62, 0xdf, 0xd3, 0x78, 0x9f, 0x3c, 0x95,
  5159. 0x4d, 0x86, 0xd9, 0x98, 0x92, 0xdd, 0x39, 0x28, 0x5e, 0x51,
  5160. 0x5d, 0xc6, 0xdc, 0xbe, 0x3a, 0xd2, 0x75, 0x30, 0x5e, 0x88,
  5161. 0x74, 0xc5, 0xc6, 0xcc, 0xf5, 0xce, 0x70, 0x1a, 0xfb, 0xf3,
  5162. 0x2b, 0x3f, 0x1d, 0xab, 0xa2, 0xc4, 0xb1, 0x60, 0x95, 0xe8,
  5163. 0xf4, 0x6e, 0x78, 0xc1, 0x31, 0x8f, 0xe1, 0x50, 0xb6, 0xb4,
  5164. 0x2b, 0xf3, 0x29, 0x41, 0xdf, 0x36, 0x7c, 0x75, 0x1d, 0x89,
  5165. 0x83, 0x7e, 0xb1, 0x39, 0x1e, 0x70, 0xc8, 0x60, 0xf3, 0xff,
  5166. 0xc2, 0x64, 0x86, 0x8e, 0x16, 0x2c, 0xab, 0x31, 0xbd, 0x7e,
  5167. 0xa7, 0x03, 0x5e, 0x6f, 0x75, 0x29, 0x35, 0x4c, 0x24, 0x10,
  5168. 0xf8, 0xbe, 0x75, 0xc2, 0x2b, 0xe6, 0x2f, 0x9c, 0xf6, 0x4e,
  5169. 0x96, 0x35, 0xf3, 0x93, 0xbb, 0x3c, 0xa4, 0x8b, 0x15, 0x59,
  5170. 0x68, 0xae, 0x1b, 0xed, 0xfe, 0xb9, 0x0f, 0x2d },
  5171. { 0x96, 0x3c, 0x87, 0x12, 0x4d, 0x41, 0xdb, 0xfc, 0xcc, 0xf6,
  5172. 0x4c, 0x75, 0x48, 0xa3, 0x76, 0xda, 0x70, 0x53, 0x75, 0xa4,
  5173. 0x09, 0xb6, 0x23, 0x5b, 0x0d, 0x12, 0x9f, 0x4a, 0x89, 0x49,
  5174. 0x76, 0x81, 0x26, 0x4c, 0xf1, 0xf9, 0xe2, 0x3c, 0xfb, 0xb7,
  5175. 0x7b, 0xe7, 0xee, 0xca, 0xa9, 0x33, 0xae, 0x7a, 0x5d, 0x3e,
  5176. 0x36, 0x7f, 0xb7, 0xf7, 0x0d, 0x81, 0xb9, 0x77, 0x17, 0x55,
  5177. 0x92, 0xa5, 0xed, 0x54, 0xc1, 0xd2, 0x8c, 0x9f, 0xd5, 0x35,
  5178. 0x4d, 0x69, 0xee, 0x33, 0x4d, 0xa1, 0xd1, 0x36, 0x67, 0x77,
  5179. 0x5e, 0xb0, 0x92, 0x5e, 0x9a, 0x81, 0xe5, 0x1e, 0xa9, 0x35,
  5180. 0x3d, 0xde, 0xa4, 0xee, 0x2f, 0x39, 0xfc, 0xcd, 0x60, 0xd7,
  5181. 0xfe, 0x6f, 0xc7, 0x06, 0x9b, 0x52, 0x0b, 0xf8, 0xd0, 0xd9,
  5182. 0x3f, 0xbd, 0xeb, 0x35, 0x4e, 0xae, 0xb7, 0x6a, 0xbb, 0xcc,
  5183. 0xea, 0xcd, 0x8e, 0xe8, 0xb4, 0x72, 0xe1, 0xaf },
  5184. { 0x2d, 0x03, 0xeb, 0x3c, 0xff, 0x55, 0xd7, 0xbd, 0x17, 0x51,
  5185. 0xfb, 0xad, 0xa8, 0xce, 0xc7, 0xef, 0xb2, 0x96, 0xbe, 0x59,
  5186. 0x5d, 0x57, 0xbe, 0xac, 0x71, 0xda, 0x4f, 0xfa, 0x4e, 0x00,
  5187. 0xc0, 0xc0, 0x9d, 0x8f, 0xbb, 0x9e, 0x2e, 0xcf, 0x3c, 0x63,
  5188. 0x3e, 0xb6, 0x63, 0x0a, 0xee, 0xee, 0x42, 0x15, 0xfb, 0x9e,
  5189. 0x02, 0x84, 0xe3, 0xe6, 0x96, 0xbb, 0x53, 0xe8, 0xbd, 0xf9,
  5190. 0x43, 0xad, 0x74, 0x9c, 0xff, 0xca, 0x86, 0xaf, 0xf8, 0x48,
  5191. 0xc1, 0x06, 0xd0, 0xa2, 0x5d, 0x9a, 0xd8, 0x0a, 0x7f, 0x60,
  5192. 0x85, 0x6a, 0xff, 0x17, 0xbb, 0x51, 0x91, 0x1e, 0x43, 0x4d,
  5193. 0x76, 0x51, 0x90, 0x29, 0xec, 0x72, 0x0a, 0x7d, 0x19, 0xfd,
  5194. 0x29, 0x72, 0x0c, 0xea, 0x0e, 0xba, 0xd8, 0x67, 0xf7, 0x7f,
  5195. 0xe0, 0xe1, 0x9b, 0xdb, 0x01, 0x95, 0x73, 0x3b, 0x12, 0xb5,
  5196. 0xba, 0xe2, 0x90, 0xcb, 0xde, 0x36, 0xa8, 0x14 },
  5197. { 0x84, 0x2e, 0x40, 0xc1, 0xc5, 0x4b, 0xac, 0xd9, 0xa3, 0xca,
  5198. 0x8d, 0x24, 0xa7, 0xcf, 0x61, 0xb7, 0xc2, 0x4f, 0x8a, 0x79,
  5199. 0x3e, 0xe6, 0xb7, 0xa7, 0xd9, 0x09, 0x32, 0x1b, 0x66, 0x37,
  5200. 0x82, 0x6b, 0xb9, 0x43, 0x85, 0xa2, 0x63, 0xef, 0xcd, 0x37,
  5201. 0x2d, 0x44, 0xc7, 0x37, 0xec, 0x2e, 0xe4, 0x11, 0x62, 0x69,
  5202. 0x84, 0xfe, 0xed, 0x21, 0x9b, 0x6c, 0x88, 0x9e, 0xe7, 0x71,
  5203. 0xf7, 0x55, 0xba, 0x6e, 0x88, 0x9f, 0x9b, 0xd7, 0x6b, 0xd7,
  5204. 0x33, 0x5e, 0xf3, 0xc4, 0x46, 0x0f, 0x13, 0xb0, 0xf3, 0xe3,
  5205. 0x6f, 0x14, 0xef, 0xb5, 0x5e, 0xe8, 0xed, 0x23, 0xc2, 0x82,
  5206. 0x72, 0xb3, 0x8c, 0xb9, 0x5d, 0x5b, 0x89, 0x1d, 0xf4, 0x4b,
  5207. 0x3f, 0x71, 0x03, 0x5b, 0x44, 0x2d, 0xf6, 0x04, 0xaa, 0xd9,
  5208. 0xd9, 0xe0, 0xa8, 0x78, 0xf2, 0x76, 0x0d, 0x14, 0x7e, 0xe2,
  5209. 0xeb, 0x16, 0x92, 0x5f, 0x04, 0xf2, 0xec, 0x1d },
  5210. { 0x0e, 0x63, 0x31, 0x9a, 0xca, 0xc9, 0x13, 0x28, 0xa5, 0x96,
  5211. 0xb7, 0xcb, 0xbc, 0x31, 0xfe, 0x6c, 0x2d, 0x52, 0x66, 0xac,
  5212. 0x51, 0x28, 0xfc, 0x09, 0x77, 0x73, 0xc2, 0xa5, 0x62, 0x23,
  5213. 0xd0, 0x93, 0xcc, 0x6a, 0xe2, 0x97, 0x28, 0x5a, 0x40, 0x9f,
  5214. 0xd5, 0x96, 0x48, 0x14, 0x0d, 0x93, 0x32, 0xd2, 0x8c, 0xaf,
  5215. 0x6d, 0x9a, 0xcc, 0x87, 0x97, 0xcc, 0xb7, 0xf4, 0xcb, 0x08,
  5216. 0xe3, 0x07, 0x75, 0x13, 0xac, 0x52, 0x76, 0xc1, 0xdd, 0xe4,
  5217. 0x55, 0x06, 0xc5, 0x54, 0xec, 0x0a, 0xca, 0x5f, 0xca, 0x2f,
  5218. 0x82, 0x7f, 0x82, 0xca, 0x1e, 0xfe, 0x42, 0xd0, 0xbd, 0xac,
  5219. 0x5b, 0xf6, 0x57, 0xb2, 0xe2, 0x80, 0x69, 0x0d, 0xec, 0xb4,
  5220. 0xc6, 0x69, 0x59, 0x67, 0x16, 0xe6, 0xfe, 0xd1, 0x13, 0x11,
  5221. 0xe1, 0x77, 0x02, 0x32, 0x8c, 0xca, 0x4f, 0x5b, 0x30, 0xcd,
  5222. 0x5a, 0x26, 0x8e, 0xd6, 0xa6, 0x61, 0xd8, 0x43 },
  5223. { 0x88, 0x83, 0x9d, 0xa2, 0x18, 0x72, 0x70, 0x5a, 0x49, 0x39,
  5224. 0xec, 0xef, 0x28, 0xe1, 0xa7, 0xc2, 0x0b, 0x7a, 0x9d, 0x51,
  5225. 0xff, 0xa5, 0xa3, 0x5b, 0x27, 0xa5, 0xa2, 0x22, 0xff, 0x83,
  5226. 0x89, 0xe2, 0xb0, 0x73, 0xbc, 0x04, 0xb3, 0xab, 0xaf, 0x32,
  5227. 0x90, 0xf3, 0x80, 0x18, 0x9b, 0x4c, 0xe3, 0xb6, 0x93, 0x4d,
  5228. 0xef, 0xa4, 0x9c, 0x22, 0xa0, 0x06, 0xb4, 0x15, 0x28, 0xb5,
  5229. 0x9b, 0x7b, 0x42, 0xd5, 0x5b, 0x1a, 0x3d, 0xb5, 0x69, 0xd3,
  5230. 0xe6, 0xa1, 0xe3, 0x65, 0x9c, 0x29, 0x0b, 0xfc, 0xc7, 0xf5,
  5231. 0x03, 0x79, 0xa9, 0x6b, 0x3f, 0xcc, 0xc5, 0x2d, 0x3d, 0xfc,
  5232. 0xf1, 0xb8, 0x52, 0x6c, 0x07, 0x0e, 0x9d, 0x5f, 0xa3, 0x8d,
  5233. 0xaa, 0x9a, 0xc5, 0x54, 0x82, 0xc6, 0xcf, 0x10, 0xe2, 0x5b,
  5234. 0x9b, 0x14, 0x86, 0xb6, 0x60, 0xde, 0x28, 0x5e, 0x60, 0x5a,
  5235. 0xb5, 0xcd, 0x2f, 0xad, 0xf0, 0x36, 0x0a, 0xc2 },
  5236. { 0x64, 0x12, 0x8c, 0xfe, 0xa1, 0xf5, 0x0c, 0x26, 0xfc, 0x59,
  5237. 0xcc, 0xa7, 0x1d, 0x2e, 0x21, 0xc9, 0x39, 0xd0, 0xa5, 0x1d,
  5238. 0x44, 0x15, 0xc3, 0x69, 0xf3, 0x7f, 0xb2, 0xeb, 0xdb, 0x68,
  5239. 0x1b, 0x90, 0x35, 0x79, 0x1b, 0x90, 0xe9, 0xea, 0xef, 0x52,
  5240. 0x8f, 0x88, 0xb1, 0xdb, 0xb0, 0x52, 0x19, 0x0b, 0x1f, 0xaa,
  5241. 0x36, 0xb9, 0x6f, 0xc0, 0x51, 0x80, 0x42, 0x94, 0xf4, 0xf7,
  5242. 0x35, 0x5b, 0x67, 0x76, 0xc9, 0x34, 0xdb, 0x47, 0x0e, 0x72,
  5243. 0x73, 0xef, 0x21, 0x7f, 0x27, 0x57, 0x30, 0x00, 0xe9, 0xac,
  5244. 0xf5, 0xcc, 0xa6, 0x4a, 0xdd, 0x20, 0x38, 0x5a, 0xe7, 0x26,
  5245. 0x9c, 0x86, 0xfa, 0x2e, 0xe3, 0xca, 0xfe, 0xe5, 0x71, 0xe6,
  5246. 0x37, 0x3e, 0x3d, 0x13, 0xd4, 0xda, 0xfc, 0x0c, 0x10, 0x5f,
  5247. 0x9f, 0x21, 0x3a, 0xca, 0xf1, 0x26, 0x58, 0x98, 0x1d, 0x50,
  5248. 0x56, 0xb6, 0x6c, 0x30, 0x70, 0x1c, 0xe2, 0x9a },
  5249. { 0x93, 0x63, 0x4a, 0x09, 0xbd, 0xab, 0xcb, 0xda, 0x01, 0x4f,
  5250. 0x54, 0xda, 0x17, 0x4a, 0x13, 0x2e, 0x32, 0x2c, 0xf0, 0xc2,
  5251. 0x7c, 0xe9, 0x87, 0x1b, 0x45, 0x99, 0xe9, 0x05, 0xe2, 0x53,
  5252. 0xe3, 0x7d, 0xd8, 0x65, 0xd0, 0x59, 0x01, 0x6d, 0xae, 0x01,
  5253. 0x09, 0x10, 0x49, 0xdb, 0x88, 0xb3, 0xa2, 0x06, 0xc6, 0x6b,
  5254. 0xa6, 0x86, 0x8f, 0x12, 0xcf, 0xd3, 0xdd, 0x4e, 0x27, 0x08,
  5255. 0x30, 0xc9, 0x28, 0xd1, 0x84, 0x92, 0x28, 0xc0, 0xd5, 0x1a,
  5256. 0xa4, 0x75, 0x78, 0xdf, 0xf0, 0x0c, 0xd4, 0x48, 0xf3, 0x45,
  5257. 0x3d, 0x18, 0xf0, 0xed, 0xf3, 0x82, 0x30, 0xf7, 0xf3, 0x9f,
  5258. 0x00, 0x33, 0xfa, 0xa8, 0xbb, 0xb0, 0x07, 0x5c, 0xa3, 0x46,
  5259. 0xbc, 0x83, 0xaf, 0x98, 0x41, 0x44, 0x04, 0x41, 0x93, 0xca,
  5260. 0x7c, 0xec, 0x5c, 0x7e, 0x24, 0x9c, 0xd3, 0x40, 0xf0, 0x59,
  5261. 0xf0, 0x36, 0x78, 0xa2, 0xe8, 0xf5, 0xb0, 0xb5 },
  5262. { 0x26, 0x6c, 0xb4, 0x67, 0xbc, 0x06, 0x35, 0x7e, 0x4b, 0x4c,
  5263. 0x5b, 0xf2, 0x26, 0xde, 0xee, 0xe7, 0xc4, 0x08, 0xc3, 0x2d,
  5264. 0x9d, 0xcc, 0x22, 0xb2, 0x36, 0x20, 0x77, 0xa3, 0xb4, 0x04,
  5265. 0x87, 0x63, 0x1e, 0xd6, 0x72, 0xda, 0x4f, 0x87, 0xd7, 0x8e,
  5266. 0x30, 0x2f, 0x90, 0x9c, 0xd1, 0x39, 0xd6, 0x3b, 0x53, 0x72,
  5267. 0x77, 0x7b, 0x37, 0x3e, 0x0c, 0xfb, 0x97, 0xf0, 0x00, 0x9a,
  5268. 0x3f, 0x1c, 0xf6, 0x1e, 0xbb, 0xc1, 0x10, 0x71, 0xb9, 0xde,
  5269. 0xda, 0x81, 0xe4, 0xcb, 0xa6, 0x01, 0x6f, 0xa9, 0x5e, 0xab,
  5270. 0x72, 0x95, 0x57, 0x2b, 0x80, 0x38, 0xe6, 0x6d, 0x29, 0x65,
  5271. 0x5c, 0xf1, 0x2b, 0x5f, 0x46, 0xfd, 0x7e, 0x9b, 0x6b, 0x85,
  5272. 0xa9, 0x84, 0x7c, 0xfe, 0x91, 0x3a, 0xb8, 0x32, 0x22, 0x38,
  5273. 0x17, 0x10, 0xc5, 0x7e, 0x18, 0x66, 0xc1, 0xa4, 0xc1, 0x24,
  5274. 0x62, 0x82, 0x6b, 0x27, 0xa9, 0xa2, 0xe3, 0x04 },
  5275. { 0x4b, 0x1d, 0x5a, 0x1b, 0x52, 0x45, 0x4e, 0xe1, 0xbc, 0xb0,
  5276. 0x29, 0xa8, 0x3c, 0x8f, 0x2a, 0xf3, 0x78, 0x2f, 0xd0, 0xd1,
  5277. 0xf7, 0x47, 0x3a, 0xc1, 0x7e, 0xe7, 0xb5, 0xbc, 0x53, 0x15,
  5278. 0xb8, 0xd7, 0x09, 0x32, 0xbf, 0xcb, 0xa1, 0xb7, 0xd1, 0x20,
  5279. 0x15, 0x48, 0x82, 0x8e, 0xc3, 0x6a, 0xb6, 0x11, 0xc1, 0x54,
  5280. 0xe8, 0x92, 0x63, 0xab, 0x8c, 0x9e, 0x68, 0xb2, 0xf4, 0xeb,
  5281. 0x9d, 0x5c, 0xf3, 0x64, 0xe3, 0xc3, 0x28, 0x7d, 0x09, 0xf3,
  5282. 0x51, 0x1d, 0x60, 0x6e, 0x1e, 0xb9, 0x88, 0x70, 0xdc, 0x95,
  5283. 0x55, 0xca, 0xa8, 0x33, 0xa5, 0x36, 0xbf, 0x78, 0xcf, 0x44,
  5284. 0xb2, 0xec, 0xf1, 0x99, 0x11, 0xa6, 0x5b, 0x34, 0xae, 0x3e,
  5285. 0xfa, 0x00, 0x4b, 0x84, 0x14, 0x35, 0x8d, 0xde, 0x2b, 0x9e,
  5286. 0x65, 0x97, 0x4b, 0x4f, 0xd0, 0x78, 0x3c, 0x1a, 0xa4, 0xdb,
  5287. 0x6f, 0xaa, 0x41, 0x54, 0xb5, 0x63, 0x63, 0xe8 },
  5288. { 0x81, 0x86, 0xb9, 0x3f, 0x50, 0x8e, 0x4b, 0x27, 0xe0, 0x74,
  5289. 0x39, 0xfa, 0xb6, 0x22, 0xd4, 0x2a, 0xc8, 0x31, 0xfd, 0xce,
  5290. 0x12, 0x0b, 0xf6, 0x19, 0x6f, 0xc0, 0x77, 0x62, 0xbe, 0x6a,
  5291. 0xbb, 0xd0, 0xbb, 0xf7, 0xee, 0x13, 0x3e, 0xa5, 0xa2, 0xec,
  5292. 0x0d, 0x4e, 0x56, 0xf1, 0x30, 0xee, 0xa0, 0xe3, 0x10, 0x81,
  5293. 0x0f, 0x3d, 0x52, 0x07, 0xec, 0x91, 0x7c, 0xc8, 0x00, 0xd4,
  5294. 0x65, 0x75, 0x7d, 0x4e, 0x32, 0x87, 0x36, 0x1b, 0x0d, 0xf5,
  5295. 0x11, 0xc8, 0xd7, 0xde, 0x5e, 0x12, 0xfc, 0xa3, 0xda, 0xda,
  5296. 0xba, 0x31, 0xf6, 0xb5, 0xb1, 0x5e, 0x08, 0x0a, 0x90, 0x12,
  5297. 0x3a, 0x0a, 0x79, 0x7e, 0x81, 0x07, 0x88, 0xb3, 0xf1, 0xca,
  5298. 0xac, 0xfa, 0x5a, 0x43, 0x5c, 0x62, 0x15, 0x63, 0x36, 0x0e,
  5299. 0x39, 0x56, 0x37, 0x35, 0x52, 0x5e, 0x18, 0x8c, 0x09, 0x9d,
  5300. 0x12, 0xfe, 0x51, 0x74, 0x63, 0xd5, 0x2c, 0x0c },
  5301. { 0x0b, 0xf9, 0x7e, 0x97, 0xc9, 0xee, 0x2b, 0x2a, 0x47, 0x43,
  5302. 0xde, 0x57, 0xf3, 0x4a, 0x9b, 0xfa, 0x79, 0xcf, 0xc6, 0xd7,
  5303. 0x22, 0xc3, 0xab, 0x57, 0x12, 0xbf, 0xff, 0x1a, 0x27, 0xb5,
  5304. 0x21, 0x4e, 0xb1, 0x39, 0xc0, 0x76, 0x90, 0xbe, 0x35, 0x7e,
  5305. 0x30, 0x08, 0x6c, 0xf4, 0x43, 0x58, 0x0b, 0x7a, 0xab, 0xa6,
  5306. 0x58, 0x91, 0x05, 0xd4, 0x11, 0x0a, 0x4b, 0xb8, 0x63, 0xb9,
  5307. 0xd9, 0x47, 0x7c, 0x91, 0x35, 0x1e, 0x6a, 0x00, 0x9b, 0x7d,
  5308. 0x9b, 0x1c, 0x7b, 0x5d, 0xc4, 0x44, 0x83, 0x1c, 0x04, 0x97,
  5309. 0xec, 0xb0, 0x1c, 0x0b, 0xbe, 0xb4, 0xd6, 0x44, 0xed, 0x30,
  5310. 0xed, 0x65, 0xce, 0x68, 0xb8, 0xfe, 0x50, 0xaa, 0x50, 0x57,
  5311. 0xa4, 0xfc, 0x3d, 0x82, 0xc1, 0xcf, 0x16, 0x68, 0x1f, 0x5f,
  5312. 0x5d, 0xda, 0x7e, 0x04, 0x2c, 0x05, 0xbf, 0xaf, 0x7d, 0xb4,
  5313. 0xc6, 0x19, 0xd1, 0x54, 0x09, 0x31, 0x28, 0x67 },
  5314. { 0x8f, 0xe5, 0x48, 0x2c, 0x3e, 0x40, 0xaa, 0xbb, 0x3b, 0xd9,
  5315. 0x1b, 0xb4, 0xfe, 0xaa, 0xc2, 0x3f, 0x57, 0x6a, 0x87, 0x0d,
  5316. 0x56, 0x76, 0xf1, 0x20, 0xe6, 0xbf, 0xa9, 0xe0, 0x0a, 0x9d,
  5317. 0x0b, 0xc8, 0x6b, 0x7a, 0xc0, 0xab, 0x9e, 0x69, 0xd9, 0x4e,
  5318. 0x3d, 0xe3, 0x7a, 0x9a, 0x9f, 0x5e, 0xf4, 0x39, 0xe2, 0x2c,
  5319. 0x79, 0x76, 0xad, 0x47, 0x35, 0x99, 0xd3, 0xd7, 0x41, 0x6e,
  5320. 0x1d, 0x2d, 0xc7, 0xdf, 0x9e, 0xb8, 0x1a, 0x0f, 0x32, 0xf1,
  5321. 0x28, 0x06, 0x18, 0x96, 0xec, 0xda, 0xb3, 0x93, 0x97, 0x30,
  5322. 0x65, 0xce, 0x25, 0xf1, 0x95, 0xbc, 0x3e, 0x13, 0x98, 0xa6,
  5323. 0x97, 0xa4, 0x62, 0xfd, 0xcc, 0x09, 0x1a, 0xc6, 0xf6, 0x8b,
  5324. 0x0d, 0x9a, 0x0d, 0x99, 0x7e, 0x83, 0x61, 0x2b, 0x65, 0xf6,
  5325. 0x91, 0x8a, 0x54, 0xce, 0x18, 0xea, 0x6c, 0x30, 0x6e, 0x8b,
  5326. 0x96, 0xec, 0x4e, 0xc8, 0xdd, 0xa1, 0x9e, 0x96 },
  5327. { 0x39, 0x28, 0xc6, 0x69, 0xbb, 0xc8, 0xbc, 0x3f, 0x4a, 0xeb,
  5328. 0x62, 0x06, 0xb4, 0x2d, 0x3b, 0xf6, 0x18, 0x9e, 0xd1, 0x8b,
  5329. 0x6b, 0x4b, 0x5c, 0x8d, 0x95, 0xa9, 0x13, 0xb9, 0xca, 0xd2,
  5330. 0xde, 0xd6, 0xa6, 0x7c, 0x11, 0x4c, 0x64, 0x27, 0x5d, 0x2c,
  5331. 0x4c, 0x91, 0x8b, 0xb1, 0x23, 0xda, 0xb5, 0x66, 0xa7, 0xd4,
  5332. 0x84, 0xbe, 0x0f, 0x64, 0x0a, 0x5f, 0xc5, 0xc0, 0x09, 0xa1,
  5333. 0x52, 0x19, 0x9f, 0x43, 0x69, 0x67, 0x9f, 0x1e, 0x50, 0xb4,
  5334. 0xd1, 0x8f, 0xc8, 0x7e, 0xf5, 0x15, 0xb6, 0x4a, 0xe8, 0xb6,
  5335. 0xdc, 0x62, 0x07, 0x8d, 0xf0, 0x2e, 0xb0, 0xda, 0x99, 0x61,
  5336. 0xf5, 0xbc, 0xe7, 0x1c, 0x29, 0x4e, 0x80, 0x3d, 0xe0, 0xad,
  5337. 0x30, 0x8f, 0xb4, 0x1c, 0x5c, 0x6c, 0x8f, 0x3a, 0x25, 0xd0,
  5338. 0x61, 0x92, 0x4c, 0x3e, 0xb8, 0x03, 0x4f, 0x1d, 0x20, 0x38,
  5339. 0x85, 0xae, 0x67, 0xc2, 0xce, 0x9a, 0x4d, 0x1e },
  5340. { 0x6c, 0xcc, 0x88, 0x8f, 0x35, 0x51, 0x34, 0xf6, 0x17, 0x04,
  5341. 0xd2, 0xe1, 0x91, 0x50, 0xd0, 0xd9, 0x81, 0xc3, 0x5b, 0x3e,
  5342. 0xf0, 0x71, 0xcd, 0xe4, 0xf0, 0x1d, 0xff, 0x93, 0x73, 0x89,
  5343. 0x27, 0x54, 0x3b, 0xaa, 0xdc, 0x8b, 0x21, 0xd4, 0x05, 0xd1,
  5344. 0x1b, 0x14, 0xd9, 0xe6, 0xbe, 0xa1, 0xc1, 0xfd, 0xad, 0xee,
  5345. 0xfa, 0x98, 0xc2, 0x59, 0xd0, 0xd4, 0x68, 0x1d, 0xf6, 0xdd,
  5346. 0xa7, 0xc9, 0x30, 0xeb, 0x7f, 0xae, 0x8b, 0xbe, 0x4e, 0x3b,
  5347. 0x2f, 0x0d, 0x31, 0x67, 0x4a, 0x4f, 0x67, 0xce, 0xe9, 0x84,
  5348. 0x5a, 0xd8, 0xa5, 0x96, 0x21, 0x21, 0xb7, 0x7b, 0x42, 0x60,
  5349. 0x42, 0xbc, 0x40, 0x7b, 0x85, 0xc4, 0x90, 0x44, 0x8f, 0xbd,
  5350. 0xd3, 0x6f, 0x33, 0x1e, 0xf3, 0xaa, 0xc9, 0x4e, 0x7a, 0x91,
  5351. 0x12, 0xa4, 0x03, 0xf6, 0x2a, 0x44, 0xf2, 0x61, 0x79, 0xa1,
  5352. 0xde, 0x4b, 0xea, 0x4a, 0xda, 0xcb, 0x4b, 0x64 },
  5353. { 0x2f, 0x15, 0x19, 0x80, 0xb2, 0x6f, 0xae, 0xf9, 0x6a, 0xfa,
  5354. 0x63, 0x57, 0xad, 0x4e, 0xd7, 0xbd, 0x03, 0x5f, 0xf1, 0x10,
  5355. 0xc8, 0xc0, 0xf8, 0x15, 0x8f, 0x79, 0x2b, 0x21, 0x1a, 0xca,
  5356. 0x3c, 0xe9, 0x53, 0xd5, 0xb8, 0x43, 0x74, 0xb9, 0x13, 0x93,
  5357. 0xa1, 0x7e, 0x14, 0x84, 0x25, 0x9d, 0x52, 0x54, 0x17, 0xed,
  5358. 0x0f, 0x5d, 0x39, 0x73, 0xca, 0xcf, 0xa4, 0x84, 0x13, 0x78,
  5359. 0xfa, 0xb1, 0xe8, 0xbe, 0xcb, 0x8f, 0xd9, 0x8b, 0x9c, 0xbd,
  5360. 0x35, 0x1a, 0x31, 0x20, 0x24, 0xa9, 0x09, 0xb8, 0xce, 0x1e,
  5361. 0x0b, 0x8c, 0x1a, 0x82, 0x99, 0xad, 0x8e, 0xb7, 0x68, 0x25,
  5362. 0xa6, 0xe6, 0x01, 0x4e, 0xdc, 0xfc, 0x12, 0x76, 0xf4, 0xce,
  5363. 0xba, 0xeb, 0xf3, 0x2f, 0x0d, 0xcd, 0x1e, 0xde, 0xfe, 0xde,
  5364. 0x67, 0xaa, 0xbc, 0xa3, 0x26, 0x5f, 0xf7, 0x95, 0x9d, 0xdd,
  5365. 0xf8, 0xd3, 0x6f, 0x0e, 0x7a, 0xd7, 0x50, 0x4c },
  5366. { 0x35, 0x4b, 0x05, 0xb7, 0x0a, 0xc5, 0x8d, 0x65, 0x6c, 0x80,
  5367. 0x5c, 0xe8, 0xbe, 0xb5, 0x4a, 0xaa, 0x1c, 0x21, 0x90, 0x85,
  5368. 0xa8, 0xeb, 0x99, 0x20, 0xf7, 0xbe, 0x03, 0x89, 0x20, 0x5c,
  5369. 0x4e, 0x92, 0x3a, 0x20, 0x2c, 0x70, 0xfd, 0x22, 0xdf, 0x11,
  5370. 0xe6, 0x17, 0x32, 0x71, 0xf4, 0xab, 0x67, 0xb3, 0x44, 0xed,
  5371. 0xf3, 0xf9, 0x13, 0xbe, 0xee, 0xf6, 0x63, 0x8f, 0x6b, 0x74,
  5372. 0x94, 0x98, 0xfd, 0x7d, 0xc7, 0x1d, 0xb2, 0x90, 0x15, 0xa3,
  5373. 0x1b, 0xdf, 0x83, 0x81, 0xe3, 0xd8, 0x0a, 0xef, 0x5a, 0x85,
  5374. 0x03, 0x1d, 0xb9, 0xe7, 0xf3, 0x35, 0x5a, 0x17, 0xba, 0xaa,
  5375. 0x17, 0x67, 0x9d, 0x88, 0xc6, 0x58, 0x6d, 0x6c, 0xf4, 0xc0,
  5376. 0xb6, 0xce, 0x47, 0xec, 0x3e, 0x5a, 0x97, 0x92, 0x6c, 0x05,
  5377. 0xb7, 0x5b, 0x12, 0x1f, 0xbb, 0xc2, 0xbc, 0x03, 0x99, 0x55,
  5378. 0x0c, 0x86, 0x31, 0xda, 0x29, 0xd2, 0xd4, 0x39 },
  5379. { 0x48, 0xdc, 0x55, 0xc4, 0xae, 0x35, 0x23, 0xa1, 0xd4, 0x1b,
  5380. 0xe8, 0x93, 0xcf, 0x09, 0xfa, 0xc2, 0x3e, 0x7d, 0xac, 0xb8,
  5381. 0x70, 0xac, 0xc7, 0x05, 0x99, 0x38, 0xf9, 0x32, 0xe5, 0x5e,
  5382. 0xfc, 0xf9, 0x61, 0x96, 0xe2, 0x17, 0xa4, 0x68, 0x1b, 0xe2,
  5383. 0x84, 0x7a, 0xf9, 0xfc, 0x44, 0x82, 0xf1, 0x3b, 0xf3, 0x1d,
  5384. 0x33, 0x32, 0xec, 0xa6, 0x86, 0x30, 0xf3, 0x24, 0x1a, 0xb8,
  5385. 0xa9, 0xf8, 0x1a, 0x18, 0xa3, 0x2f, 0xb5, 0xbc, 0xbb, 0xbc,
  5386. 0xe7, 0x6f, 0x52, 0x59, 0x1a, 0xc3, 0x2f, 0xf0, 0xa7, 0x2b,
  5387. 0x00, 0x05, 0x8e, 0x3f, 0x5c, 0x3d, 0x97, 0x1e, 0xb7, 0x13,
  5388. 0x8a, 0x7f, 0x96, 0x5c, 0x7d, 0x01, 0xa7, 0x3e, 0x8c, 0xe3,
  5389. 0xa6, 0x6c, 0xae, 0x1a, 0xff, 0xbe, 0x82, 0x4f, 0x3c, 0xdd,
  5390. 0xcc, 0xfb, 0x01, 0xee, 0xc4, 0x2d, 0x4c, 0xad, 0x50, 0xcd,
  5391. 0x71, 0x71, 0xe2, 0x36, 0x7a, 0x91, 0x70, 0xe9 },
  5392. { 0x5f, 0x6a, 0x8e, 0xdd, 0x0b, 0x6d, 0xc0, 0x21, 0x40, 0x5c,
  5393. 0xe4, 0xc5, 0x66, 0xe3, 0x8c, 0x68, 0x87, 0x25, 0xe2, 0x4b,
  5394. 0xb9, 0x3b, 0x9c, 0x33, 0xcb, 0x94, 0xcc, 0xff, 0x98, 0x6b,
  5395. 0x8d, 0x62, 0x19, 0xf2, 0x9d, 0x71, 0x8b, 0x8a, 0xf2, 0xcd,
  5396. 0x85, 0x1c, 0x9f, 0x4b, 0x1d, 0x0d, 0x7b, 0x3a, 0x5d, 0x67,
  5397. 0xb9, 0x73, 0xba, 0x15, 0x59, 0x04, 0xcd, 0xeb, 0xa9, 0xf7,
  5398. 0x71, 0x31, 0x3c, 0x58, 0x18, 0x70, 0x70, 0x75, 0x8a, 0x51,
  5399. 0xcf, 0x02, 0x15, 0x4e, 0x10, 0x77, 0x8a, 0xf5, 0x88, 0x69,
  5400. 0x38, 0x2e, 0xb6, 0xe7, 0xa5, 0x12, 0x15, 0x1c, 0x98, 0x2d,
  5401. 0xef, 0x67, 0x97, 0xd0, 0x0e, 0x38, 0x41, 0x78, 0x06, 0x40,
  5402. 0x83, 0xc7, 0xd2, 0x45, 0x2f, 0x13, 0x56, 0xaf, 0x25, 0xc9,
  5403. 0xeb, 0x41, 0xe4, 0x6e, 0xc3, 0x62, 0x68, 0x98, 0x97, 0x0c,
  5404. 0x8e, 0x62, 0x38, 0x26, 0xa5, 0x09, 0x21, 0x93 },
  5405. { 0x1c, 0xa6, 0x50, 0x72, 0xca, 0x7f, 0x87, 0xac, 0x2e, 0x12,
  5406. 0xe0, 0x7a, 0x9e, 0xb8, 0x14, 0xbb, 0x9b, 0x33, 0x48, 0x0d,
  5407. 0x5a, 0x87, 0x97, 0xd3, 0x15, 0x6c, 0xcb, 0x70, 0x8b, 0xfb,
  5408. 0x7c, 0xf0, 0x84, 0x0f, 0x04, 0x21, 0xf2, 0x7d, 0xb4, 0x90,
  5409. 0xcc, 0xe6, 0x56, 0x2b, 0xf4, 0x3c, 0xe0, 0x1e, 0x64, 0x8d,
  5410. 0xa3, 0x42, 0x0e, 0xa2, 0x43, 0xdb, 0xe4, 0x42, 0x8a, 0xcd,
  5411. 0xdf, 0x32, 0x57, 0x97, 0x4c, 0xa2, 0xb9, 0xe4, 0x4f, 0xe1,
  5412. 0xf7, 0x39, 0x53, 0x79, 0x51, 0xb3, 0xb8, 0xa5, 0x97, 0x94,
  5413. 0x00, 0x5c, 0xfb, 0xba, 0x4e, 0xa4, 0x57, 0xa8, 0x78, 0x04,
  5414. 0x66, 0x4a, 0x04, 0xaa, 0xb2, 0x6d, 0x4c, 0xd5, 0x8f, 0x16,
  5415. 0xbc, 0xe3, 0xa4, 0xcf, 0xfb, 0xc1, 0x2d, 0x8c, 0x69, 0x20,
  5416. 0x10, 0x28, 0x3f, 0x36, 0x97, 0x66, 0x2f, 0x76, 0xa4, 0x07,
  5417. 0x83, 0x70, 0x4c, 0xa5, 0x8f, 0x9a, 0x86, 0x90 },
  5418. { 0x46, 0x2c, 0xaf, 0xb6, 0xcb, 0xad, 0x3c, 0xee, 0xac, 0x44,
  5419. 0xfd, 0x91, 0x35, 0xff, 0xff, 0x64, 0xac, 0xa6, 0x63, 0x99,
  5420. 0x1f, 0xb3, 0x07, 0xa1, 0x05, 0x5d, 0xec, 0x1c, 0x14, 0xf9,
  5421. 0xa1, 0x92, 0x9f, 0x7a, 0xff, 0x32, 0x49, 0xfa, 0xca, 0xba,
  5422. 0xd0, 0xd7, 0x10, 0xc0, 0x68, 0x98, 0x09, 0x85, 0x7f, 0xad,
  5423. 0x3b, 0xd1, 0xe6, 0x67, 0x54, 0x3c, 0x4d, 0xd2, 0xdb, 0x49,
  5424. 0x96, 0x46, 0xaa, 0x34, 0xef, 0x8d, 0x44, 0x3e, 0x0d, 0x85,
  5425. 0x8c, 0x5f, 0x39, 0xb7, 0x52, 0x43, 0x8b, 0xbe, 0x33, 0x91,
  5426. 0x1d, 0x96, 0xb5, 0x07, 0x89, 0xb7, 0x8d, 0xa8, 0x9b, 0x74,
  5427. 0xd8, 0xfe, 0x56, 0x47, 0xdd, 0x68, 0x56, 0xed, 0x1e, 0xa4,
  5428. 0x7d, 0x80, 0x06, 0x8f, 0xc1, 0xc1, 0x53, 0x0e, 0x59, 0xe3,
  5429. 0x68, 0xb5, 0x66, 0xaf, 0xfd, 0xca, 0x40, 0xa7, 0x46, 0xdb,
  5430. 0xfb, 0xb3, 0x21, 0xcf, 0x2b, 0x9d, 0x25, 0xa0 },
  5431. { 0x12, 0x93, 0xc9, 0x8c, 0x6c, 0xd9, 0x36, 0x08, 0x2a, 0x29,
  5432. 0x15, 0x03, 0xb5, 0x46, 0xea, 0xfd, 0xd2, 0xfb, 0x77, 0x18,
  5433. 0x3e, 0x8f, 0x9d, 0x13, 0x23, 0x15, 0x5e, 0x22, 0x51, 0x3f,
  5434. 0x83, 0xc0, 0xaa, 0x78, 0x4f, 0xab, 0x65, 0xf4, 0x85, 0x76,
  5435. 0x06, 0xfe, 0xe7, 0xfe, 0xd9, 0xba, 0xa6, 0xd3, 0x0f, 0x75,
  5436. 0xd2, 0x35, 0xa7, 0x32, 0xd1, 0xcc, 0xbc, 0x87, 0x5d, 0x03,
  5437. 0x0a, 0x2e, 0xbe, 0x41, 0xdf, 0xef, 0xc9, 0x7d, 0xa9, 0xc3,
  5438. 0x91, 0x7f, 0x4e, 0x7e, 0x8d, 0xfc, 0x25, 0xa9, 0xa1, 0x2b,
  5439. 0xa1, 0xa2, 0xbe, 0x74, 0x6e, 0xf1, 0x83, 0x31, 0x18, 0x75,
  5440. 0x39, 0x3d, 0x1c, 0x93, 0xe2, 0x98, 0x15, 0xef, 0x04, 0x3e,
  5441. 0x72, 0x6b, 0x91, 0x4a, 0xf7, 0x87, 0x9f, 0x59, 0xdd, 0xfa,
  5442. 0x55, 0xf8, 0x95, 0xf7, 0x35, 0xcc, 0x82, 0xb8, 0x74, 0x04,
  5443. 0x16, 0x60, 0xa6, 0x47, 0xde, 0x32, 0x37, 0xdd },
  5444. { 0x53, 0xb7, 0x9a, 0xa1, 0x68, 0xea, 0x94, 0xba, 0x73, 0xe4,
  5445. 0xb5, 0xf3, 0xe4, 0x6f, 0x8f, 0xb1, 0xed, 0xb2, 0x58, 0x4c,
  5446. 0x39, 0x46, 0x98, 0x8b, 0xc6, 0x92, 0x9c, 0xd4, 0xfd, 0xfd,
  5447. 0x61, 0x4f, 0xa0, 0xa4, 0x7f, 0x05, 0x06, 0x4e, 0x71, 0x42,
  5448. 0x16, 0xe7, 0x9e, 0x41, 0x74, 0xad, 0x91, 0x07, 0xd0, 0x5c,
  5449. 0x23, 0xc5, 0x49, 0x40, 0xc3, 0xe8, 0x58, 0xcf, 0xb2, 0xfb,
  5450. 0x1a, 0xe9, 0xd7, 0xc7, 0xbe, 0x1c, 0x0f, 0xb8, 0xa1, 0xbd,
  5451. 0x18, 0x9e, 0xca, 0x83, 0xcb, 0x86, 0xe7, 0x7b, 0x11, 0x1a,
  5452. 0xb0, 0xb0, 0x28, 0x9c, 0x8c, 0x87, 0x53, 0x0d, 0x49, 0x5f,
  5453. 0x6a, 0xbf, 0x33, 0xb3, 0x75, 0x22, 0x82, 0x38, 0xc7, 0x08,
  5454. 0x87, 0xe7, 0x71, 0xc1, 0xb7, 0xd7, 0xc7, 0xdb, 0x4a, 0x36,
  5455. 0xb7, 0x11, 0xa6, 0xab, 0x40, 0x3d, 0x96, 0xea, 0xfa, 0xc7,
  5456. 0x72, 0x78, 0x12, 0x51, 0x49, 0xd5, 0x3b, 0x77 },
  5457. { 0x82, 0x90, 0xd6, 0xd1, 0x56, 0xc2, 0xe8, 0x33, 0x40, 0xa6,
  5458. 0xf7, 0xd5, 0xf3, 0x87, 0x2c, 0x9d, 0x15, 0x0f, 0xb4, 0xa9,
  5459. 0x58, 0x40, 0x11, 0x04, 0xc8, 0x9d, 0xc0, 0x1b, 0x32, 0x81,
  5460. 0x51, 0xe1, 0xe5, 0xef, 0x49, 0x97, 0xc8, 0x3a, 0xf2, 0xa8,
  5461. 0x04, 0x09, 0x99, 0x03, 0xc9, 0xd5, 0xda, 0x0f, 0xb9, 0x28,
  5462. 0x7f, 0x58, 0x53, 0x46, 0x61, 0x1d, 0x64, 0x00, 0xbc, 0x54,
  5463. 0x23, 0x45, 0x96, 0xc4, 0x0d, 0x53, 0x9d, 0x8d, 0x47, 0x39,
  5464. 0x7c, 0x05, 0x23, 0x11, 0x98, 0x69, 0x29, 0xfe, 0x89, 0xa2,
  5465. 0x64, 0x96, 0x8e, 0xe6, 0x51, 0x2c, 0x67, 0x38, 0xfe, 0xd5,
  5466. 0xab, 0xce, 0x7b, 0x4e, 0xc0, 0x14, 0x02, 0x2e, 0xaf, 0x3d,
  5467. 0xf1, 0x9e, 0xfa, 0xfe, 0xef, 0x1e, 0x4b, 0x30, 0xa9, 0xdd,
  5468. 0x93, 0x9a, 0xd3, 0xa5, 0xbb, 0xa0, 0x67, 0x82, 0x17, 0x28,
  5469. 0x21, 0x6f, 0xaf, 0xce, 0x44, 0xbb, 0xb6, 0xa1 },
  5470. { 0x50, 0x6e, 0xf1, 0xab, 0x30, 0x4f, 0xab, 0xb0, 0x6f, 0xa1,
  5471. 0xd9, 0x69, 0xee, 0x95, 0x2e, 0x14, 0x45, 0x9f, 0x29, 0x7b,
  5472. 0xa0, 0xaa, 0x98, 0x4e, 0x00, 0xf3, 0x32, 0xe1, 0xec, 0x47,
  5473. 0xb3, 0xcf, 0xfd, 0x22, 0x3e, 0x26, 0xf0, 0x6a, 0x2a, 0x08,
  5474. 0x51, 0xcc, 0x6e, 0xf9, 0xb3, 0x3f, 0xa0, 0xe1, 0x1b, 0xea,
  5475. 0xd0, 0x2c, 0xa6, 0x75, 0x23, 0x5a, 0x6e, 0x6b, 0x55, 0xe9,
  5476. 0xdb, 0x32, 0x16, 0x60, 0x23, 0x80, 0xed, 0x5c, 0xed, 0x96,
  5477. 0x78, 0x11, 0xcc, 0x20, 0x8d, 0xe6, 0x33, 0xaa, 0xfc, 0xa5,
  5478. 0xa2, 0x71, 0x4c, 0xa6, 0x0b, 0xca, 0xdb, 0x5f, 0xe6, 0x2a,
  5479. 0xe5, 0x2d, 0x2d, 0x67, 0x84, 0xa9, 0xb4, 0x25, 0x57, 0xfe,
  5480. 0x0d, 0xc7, 0xb8, 0x09, 0xd4, 0x23, 0x59, 0xa4, 0xd7, 0x89,
  5481. 0x00, 0x7e, 0xda, 0x13, 0x4a, 0x39, 0x69, 0xec, 0x57, 0xfa,
  5482. 0xf8, 0x46, 0x37, 0xc6, 0xd8, 0x54, 0x69, 0x46 },
  5483. { 0x41, 0x5b, 0x7d, 0xbf, 0x15, 0x20, 0x03, 0x44, 0xda, 0xaf,
  5484. 0x3f, 0xdb, 0x4d, 0x85, 0xc6, 0x78, 0x6c, 0xcd, 0x2f, 0xbf,
  5485. 0xf7, 0x1a, 0x70, 0x6e, 0x14, 0x04, 0xcc, 0xf8, 0xb9, 0x8f,
  5486. 0xcb, 0xc7, 0xfa, 0xbe, 0x77, 0x43, 0xfa, 0x8f, 0xeb, 0x1f,
  5487. 0xe1, 0x4a, 0x45, 0x6f, 0x8e, 0xed, 0x67, 0x65, 0x6e, 0xec,
  5488. 0x74, 0xd2, 0x37, 0x9d, 0x92, 0xd1, 0xdf, 0xea, 0x34, 0x23,
  5489. 0xd4, 0xdc, 0xbc, 0x3c, 0xdd, 0x35, 0x4c, 0xac, 0xbd, 0xc8,
  5490. 0x9a, 0x16, 0xa2, 0x8d, 0x63, 0x3d, 0xdf, 0x73, 0xad, 0x9c,
  5491. 0x36, 0xa6, 0xaf, 0x39, 0xe3, 0x07, 0x1b, 0x58, 0xf5, 0x09,
  5492. 0x0a, 0x7e, 0xa7, 0x30, 0x75, 0xaa, 0xa2, 0xda, 0xf1, 0xa5,
  5493. 0x9d, 0xd1, 0xc3, 0xd5, 0x66, 0xac, 0xeb, 0x3f, 0x9d, 0xeb,
  5494. 0x27, 0xce, 0x71, 0x30, 0xb9, 0x6f, 0xea, 0x9f, 0xa9, 0x84,
  5495. 0x11, 0xb4, 0xeb, 0x27, 0x35, 0xbf, 0xf1, 0x63 },
  5496. { 0x1e, 0xc3, 0x14, 0xf1, 0xaf, 0x58, 0x87, 0x9d, 0x52, 0x5d,
  5497. 0xc9, 0xbd, 0xec, 0x83, 0x1d, 0x59, 0xfc, 0xe0, 0xfa, 0xfc,
  5498. 0xc1, 0x75, 0xd4, 0x3f, 0x00, 0x69, 0x65, 0xed, 0xb4, 0x12,
  5499. 0x2e, 0x05, 0x35, 0x22, 0xce, 0xf0, 0xa2, 0xb5, 0x51, 0x1c,
  5500. 0x76, 0x9a, 0x2e, 0xf9, 0x85, 0xf0, 0x68, 0xaa, 0x01, 0xdc,
  5501. 0x4c, 0x3f, 0xe6, 0x93, 0x65, 0x08, 0xf9, 0x31, 0x8c, 0x91,
  5502. 0x97, 0xf0, 0x0f, 0x11, 0x45, 0x49, 0x97, 0x51, 0x86, 0x32,
  5503. 0x0a, 0x01, 0x0c, 0xda, 0x36, 0xd9, 0x6e, 0x0e, 0x54, 0xc2,
  5504. 0xfc, 0x6a, 0xc6, 0xc6, 0x0f, 0xeb, 0x9f, 0x3b, 0x71, 0x2f,
  5505. 0xa1, 0x3c, 0xe9, 0xe5, 0xa2, 0xb8, 0x4b, 0xc7, 0x09, 0x5d,
  5506. 0x93, 0xc8, 0xf2, 0x90, 0xfd, 0x67, 0xd2, 0x89, 0xf0, 0x3a,
  5507. 0x4c, 0x32, 0x06, 0x8a, 0x3d, 0x68, 0xcb, 0x80, 0x32, 0x72,
  5508. 0x97, 0x01, 0x05, 0x86, 0x7d, 0x83, 0x77, 0xa7 },
  5509. { 0x17, 0xe9, 0x1d, 0x12, 0x7f, 0xff, 0x57, 0x88, 0xad, 0x5c,
  5510. 0xc0, 0x8f, 0x2d, 0xc1, 0x05, 0xde, 0x71, 0x93, 0x6c, 0xb4,
  5511. 0x52, 0xab, 0xfa, 0x6b, 0x76, 0x51, 0x35, 0xd2, 0x3d, 0xe5,
  5512. 0xa6, 0x64, 0xbb, 0x32, 0xf1, 0x7c, 0x96, 0x93, 0x9c, 0x82,
  5513. 0xe0, 0xc8, 0xb6, 0xf7, 0xf5, 0x87, 0x5a, 0xec, 0xa9, 0x31,
  5514. 0xb9, 0x9d, 0x77, 0x46, 0xe0, 0xc7, 0xd3, 0xbb, 0x0a, 0x97,
  5515. 0x26, 0xec, 0xcf, 0xa0, 0xf0, 0x01, 0xc4, 0x6e, 0xdd, 0x2f,
  5516. 0x9e, 0x6f, 0x01, 0x8b, 0x1c, 0x63, 0xae, 0x4b, 0x9b, 0xc6,
  5517. 0x34, 0x13, 0x02, 0xf9, 0xf7, 0xde, 0x17, 0x11, 0x50, 0x77,
  5518. 0x33, 0x20, 0xb5, 0x42, 0xf8, 0xdf, 0xcd, 0xe4, 0xa3, 0x8f,
  5519. 0x63, 0x7e, 0xc2, 0xc5, 0x39, 0x2b, 0x10, 0xfc, 0xe5, 0x34,
  5520. 0x68, 0x87, 0xaa, 0x7e, 0x14, 0xda, 0x45, 0x7e, 0x3f, 0x74,
  5521. 0x06, 0x63, 0xfe, 0xef, 0x2c, 0x83, 0x10, 0xc2 },
  5522. { 0x11, 0x8f, 0x3b, 0x4b, 0x3d, 0xdd, 0x0c, 0x01, 0xdf, 0x24,
  5523. 0x22, 0x82, 0xaf, 0xc4, 0xa0, 0xd5, 0x16, 0x29, 0xf7, 0xc2,
  5524. 0x63, 0xf7, 0xb9, 0x7e, 0xf3, 0x01, 0xa3, 0x8f, 0xb1, 0x8a,
  5525. 0xe1, 0xf9, 0xca, 0x7c, 0x98, 0xed, 0x57, 0x25, 0x71, 0xdf,
  5526. 0x6e, 0x65, 0x3e, 0xa4, 0x1d, 0xeb, 0x3e, 0x28, 0x99, 0x58,
  5527. 0x4a, 0xeb, 0x91, 0xd4, 0xa3, 0xb6, 0x0d, 0x76, 0x59, 0x57,
  5528. 0xb5, 0x99, 0x73, 0x2d, 0x35, 0x49, 0x97, 0xe4, 0x77, 0x96,
  5529. 0x3e, 0x0e, 0xa7, 0xbd, 0x46, 0x92, 0x8c, 0x36, 0x5a, 0xec,
  5530. 0x54, 0x50, 0x9e, 0x65, 0xd1, 0x2a, 0x19, 0xee, 0x39, 0x52,
  5531. 0x49, 0xa3, 0xd2, 0x89, 0xe9, 0xc7, 0x3e, 0xa6, 0x62, 0x27,
  5532. 0xce, 0x9d, 0x6b, 0x31, 0xc8, 0xab, 0x4b, 0x52, 0x00, 0x86,
  5533. 0x78, 0x4b, 0xc6, 0x44, 0xd4, 0xfd, 0x19, 0xc7, 0x76, 0xd4,
  5534. 0xbe, 0x92, 0xce, 0xd3, 0xb7, 0xe0, 0x51, 0xca },
  5535. { 0x01, 0xd0, 0xa6, 0x7c, 0x8d, 0x03, 0xe7, 0x27, 0x3b, 0x9b,
  5536. 0x53, 0x6a, 0x44, 0xf1, 0x70, 0x24, 0x22, 0xce, 0x8a, 0x79,
  5537. 0x44, 0xf5, 0x93, 0xc2, 0x21, 0xd2, 0xb6, 0x31, 0x21, 0xb6,
  5538. 0x17, 0x10, 0x1d, 0xbd, 0xbd, 0x1a, 0xc2, 0xdd, 0x61, 0x7f,
  5539. 0x87, 0x8e, 0xcc, 0x0d, 0x00, 0x71, 0x5b, 0xa1, 0x15, 0x61,
  5540. 0x8d, 0x0b, 0x1b, 0xdf, 0xe5, 0x2f, 0x5b, 0xc1, 0x8b, 0x4f,
  5541. 0xdf, 0x75, 0x86, 0x95, 0x73, 0x5e, 0xb6, 0x86, 0xe7, 0x7a,
  5542. 0x4c, 0x05, 0xa3, 0xe1, 0x78, 0x34, 0x5b, 0x08, 0x46, 0xe5,
  5543. 0xc2, 0x44, 0xa6, 0x09, 0x5d, 0xd6, 0x14, 0x7a, 0x83, 0x63,
  5544. 0x7f, 0xfb, 0x3e, 0xcc, 0x1d, 0xba, 0xc0, 0xbe, 0x87, 0x86,
  5545. 0x7e, 0x60, 0xd9, 0x8b, 0x16, 0xff, 0x49, 0x60, 0x4c, 0xf7,
  5546. 0x6d, 0x86, 0x1a, 0xef, 0x84, 0xda, 0x8c, 0x58, 0xd1, 0x75,
  5547. 0x74, 0xa0, 0xa0, 0xa8, 0x7a, 0xd4, 0x76, 0x2b },
  5548. { 0x1b, 0x62, 0x5b, 0x06, 0x7d, 0xa6, 0x32, 0x0f, 0xc9, 0xad,
  5549. 0xba, 0x24, 0x99, 0x7c, 0x08, 0xe6, 0xdd, 0x52, 0x7b, 0x43,
  5550. 0xc5, 0x6b, 0xb0, 0x44, 0xca, 0xdd, 0x2d, 0xfa, 0x48, 0x6e,
  5551. 0x2f, 0x84, 0x5a, 0xd8, 0xb5, 0x72, 0xc9, 0x50, 0xd5, 0xd4,
  5552. 0x7f, 0x47, 0xd4, 0x56, 0xb4, 0xed, 0x85, 0x69, 0x52, 0x36,
  5553. 0x4b, 0xa1, 0xfa, 0xbd, 0x59, 0x52, 0xcd, 0x57, 0x2d, 0xfd,
  5554. 0x2a, 0xf0, 0x3b, 0x37, 0x59, 0x6c, 0xce, 0xb5, 0xd2, 0xe8,
  5555. 0x65, 0x0a, 0x03, 0xd5, 0x45, 0x21, 0x11, 0xe6, 0x8d, 0xa6,
  5556. 0x7b, 0x67, 0xec, 0xdb, 0xe7, 0x6c, 0x0d, 0x63, 0x74, 0xa6,
  5557. 0x9b, 0xdd, 0x4c, 0xb6, 0x63, 0xe3, 0x71, 0x35, 0xe8, 0x1d,
  5558. 0xd8, 0x3c, 0x7a, 0x45, 0x01, 0x9b, 0x5d, 0x16, 0xa4, 0x2c,
  5559. 0x4a, 0x18, 0xe9, 0x47, 0x79, 0x90, 0xfb, 0x88, 0xc2, 0xae,
  5560. 0x7b, 0x96, 0x42, 0x36, 0x1e, 0x46, 0x53, 0x3c },
  5561. { 0x33, 0x3e, 0xca, 0x96, 0x19, 0xfc, 0x94, 0x8d, 0xbd, 0xf1,
  5562. 0x43, 0x28, 0x84, 0x00, 0x73, 0x6e, 0x15, 0x39, 0x79, 0x21,
  5563. 0xa7, 0x07, 0x66, 0x39, 0x13, 0xf5, 0xca, 0x6f, 0xbf, 0x06,
  5564. 0x97, 0x68, 0x32, 0x1f, 0xaa, 0xc2, 0x98, 0x26, 0x65, 0x6a,
  5565. 0xc4, 0xca, 0x56, 0x7c, 0x36, 0x0c, 0xb3, 0x65, 0xf6, 0x68,
  5566. 0x20, 0x65, 0x3f, 0x7d, 0xf0, 0xc2, 0x6d, 0x6e, 0x32, 0x58,
  5567. 0x24, 0x33, 0xda, 0x34, 0xdb, 0x1f, 0x80, 0xc6, 0x34, 0xd8,
  5568. 0x52, 0xd7, 0x87, 0xdc, 0xb5, 0x34, 0x2b, 0x41, 0xc5, 0xdd,
  5569. 0x6b, 0x24, 0x5e, 0x5c, 0x1f, 0x49, 0x09, 0x8b, 0x2b, 0x97,
  5570. 0x1c, 0xba, 0x87, 0x15, 0x6b, 0xc9, 0xf3, 0x3c, 0x43, 0x4f,
  5571. 0xbb, 0xa9, 0x75, 0x8b, 0xbf, 0x44, 0x43, 0x88, 0xfe, 0x88,
  5572. 0x38, 0xb5, 0xc0, 0x1b, 0x2f, 0x01, 0xaf, 0x6f, 0xeb, 0xeb,
  5573. 0x44, 0xdf, 0xaa, 0x7b, 0x4f, 0xd8, 0x44, 0x6d },
  5574. { 0x72, 0xfc, 0x21, 0x10, 0x87, 0x28, 0xd1, 0x35, 0xae, 0x9d,
  5575. 0x9c, 0x07, 0x4c, 0xcf, 0x07, 0x46, 0x4d, 0x25, 0xc7, 0x42,
  5576. 0xf2, 0xcd, 0x13, 0x4f, 0x76, 0x50, 0x82, 0xa5, 0x37, 0xe7,
  5577. 0xb1, 0x5d, 0x55, 0x7b, 0x32, 0x2a, 0x65, 0xcd, 0x44, 0x9d,
  5578. 0x98, 0x7d, 0xa7, 0x4a, 0xe5, 0x4b, 0x64, 0xa7, 0xf3, 0x5e,
  5579. 0x8c, 0xf1, 0x33, 0x93, 0x74, 0x3e, 0x90, 0xc1, 0x6e, 0xeb,
  5580. 0xcb, 0x25, 0xb9, 0x99, 0x5a, 0x17, 0xf8, 0xe5, 0x1d, 0x61,
  5581. 0x6e, 0x91, 0xd7, 0x24, 0x08, 0xdc, 0x52, 0x35, 0x96, 0x61,
  5582. 0x5d, 0xb3, 0x56, 0x5a, 0x7f, 0x5c, 0x01, 0xf0, 0x2b, 0x3a,
  5583. 0x13, 0xa4, 0x13, 0xfb, 0x3b, 0x5b, 0xaa, 0xd3, 0x62, 0x36,
  5584. 0x54, 0x70, 0x3f, 0xe7, 0x62, 0x3c, 0x7a, 0x4f, 0xbc, 0xfc,
  5585. 0xe9, 0x48, 0x38, 0xc2, 0x51, 0x8f, 0xd4, 0x1d, 0xbb, 0xca,
  5586. 0x23, 0x33, 0x79, 0x48, 0xac, 0x77, 0x5d, 0x81 },
  5587. { 0x48, 0x09, 0x46, 0xf8, 0xb1, 0x1e, 0xd9, 0x2d, 0x23, 0x8e,
  5588. 0xf1, 0x7c, 0x88, 0x40, 0xa6, 0xc6, 0xe1, 0xa2, 0x73, 0x8e,
  5589. 0xa1, 0x7e, 0x35, 0xa4, 0xe5, 0x73, 0xf6, 0x48, 0x9d, 0xef,
  5590. 0xf9, 0xa0, 0x03, 0x80, 0x3d, 0x84, 0x56, 0x17, 0x70, 0x40,
  5591. 0x1e, 0xe4, 0x8d, 0xe3, 0x2f, 0x7b, 0x16, 0x5b, 0x76, 0x0f,
  5592. 0x8d, 0x28, 0x5c, 0x2f, 0xfc, 0x3c, 0x22, 0x8a, 0x39, 0x1b,
  5593. 0x5d, 0x33, 0x6d, 0x51, 0xfb, 0xbd, 0xcf, 0x0c, 0x7d, 0x3d,
  5594. 0xe6, 0x66, 0xeb, 0x9a, 0xde, 0x06, 0x9a, 0x3d, 0xf8, 0x5e,
  5595. 0x4a, 0x1f, 0xee, 0x78, 0xbc, 0xe8, 0x20, 0x62, 0x91, 0xc8,
  5596. 0xcc, 0xa9, 0x55, 0xa0, 0x60, 0x81, 0x4a, 0x9e, 0xa6, 0xfb,
  5597. 0xe5, 0x50, 0xc8, 0xee, 0xd7, 0x7d, 0x58, 0x67, 0x55, 0xf3,
  5598. 0x59, 0x09, 0xd8, 0x3f, 0x95, 0xcf, 0x45, 0x80, 0x55, 0xff,
  5599. 0xa9, 0x06, 0xb2, 0x03, 0xf9, 0x60, 0x04, 0xc8 },
  5600. { 0x8d, 0xab, 0x61, 0xfd, 0xc7, 0x38, 0x69, 0x02, 0x16, 0xe8,
  5601. 0xe8, 0xae, 0xcf, 0x68, 0xaf, 0xc7, 0xf8, 0x6f, 0x2b, 0xe6,
  5602. 0xc1, 0xf8, 0x53, 0x9f, 0xc0, 0x1c, 0x2e, 0xb2, 0x46, 0x46,
  5603. 0x4d, 0x9e, 0xa1, 0xae, 0x66, 0x6b, 0x4b, 0xa8, 0x46, 0xe4,
  5604. 0xcb, 0x3b, 0x43, 0x61, 0xe4, 0xbb, 0xd0, 0x07, 0x00, 0x89,
  5605. 0xc0, 0x6e, 0x7d, 0x06, 0xe6, 0x84, 0xe2, 0x77, 0x5e, 0xb6,
  5606. 0x09, 0x92, 0xf7, 0xd0, 0x3b, 0x72, 0xb0, 0x4d, 0x6c, 0x2b,
  5607. 0x7d, 0xd4, 0xc8, 0x86, 0x9a, 0xba, 0xe2, 0x0f, 0xd6, 0x24,
  5608. 0x84, 0x97, 0x50, 0x96, 0x2c, 0xaa, 0xf8, 0x92, 0xa1, 0xa9,
  5609. 0x90, 0x24, 0xc6, 0x30, 0xb8, 0xc0, 0x48, 0xa4, 0x88, 0x99,
  5610. 0xab, 0x18, 0xd6, 0xf4, 0x0e, 0x2f, 0x67, 0x86, 0x62, 0x98,
  5611. 0x58, 0x7a, 0x19, 0xe6, 0x5c, 0x5e, 0x53, 0xeb, 0x36, 0x95,
  5612. 0x84, 0xc7, 0x47, 0xa8, 0xfd, 0x71, 0xf1, 0x19 },
  5613. { 0x6f, 0x77, 0xe6, 0x2d, 0xf9, 0x9b, 0x29, 0xe7, 0xe0, 0x3c,
  5614. 0xa8, 0x79, 0x11, 0x8f, 0x69, 0x0c, 0x9d, 0xef, 0x7a, 0xd1,
  5615. 0x67, 0xb9, 0x7e, 0xe1, 0x3e, 0xb2, 0x1b, 0x14, 0xcb, 0xd7,
  5616. 0xce, 0xf1, 0x55, 0xbe, 0x8a, 0x15, 0x2c, 0xaf, 0x08, 0x0e,
  5617. 0x5e, 0xce, 0x77, 0xab, 0xb8, 0x16, 0x9f, 0xed, 0x86, 0x94,
  5618. 0x22, 0x9f, 0x31, 0xdc, 0xc9, 0x57, 0xa1, 0x04, 0x44, 0xeb,
  5619. 0xa5, 0x90, 0x70, 0x0d, 0x80, 0x27, 0x14, 0xc1, 0x9e, 0xc5,
  5620. 0x15, 0x02, 0x87, 0x7f, 0x8b, 0xcf, 0x3f, 0x06, 0xfd, 0xc2,
  5621. 0x1d, 0xe7, 0x6a, 0xed, 0x91, 0x1f, 0x32, 0xe6, 0xd3, 0xd2,
  5622. 0x39, 0xbb, 0x34, 0x86, 0x54, 0x02, 0x35, 0xb2, 0xba, 0x2b,
  5623. 0x08, 0xc4, 0x62, 0x1a, 0x2d, 0x88, 0xb5, 0x20, 0x34, 0xd4,
  5624. 0x78, 0xb4, 0xac, 0xd4, 0x29, 0x7e, 0xff, 0x4f, 0x9b, 0xa2,
  5625. 0x42, 0xa5, 0xc9, 0x03, 0xd5, 0x4d, 0x1d, 0x45 },
  5626. { 0x63, 0x81, 0x9c, 0x91, 0xc3, 0xd2, 0xcf, 0x80, 0x79, 0x9d,
  5627. 0x78, 0x86, 0x81, 0x84, 0xf0, 0xeb, 0x23, 0x44, 0xe0, 0x0f,
  5628. 0x68, 0xbe, 0xd1, 0x02, 0xee, 0x6d, 0x75, 0x78, 0xc1, 0xcf,
  5629. 0x55, 0x80, 0x86, 0x13, 0x60, 0x73, 0x2e, 0x5a, 0x8b, 0xe6,
  5630. 0xae, 0x5e, 0x2e, 0x76, 0xd6, 0x69, 0x84, 0x0a, 0x31, 0x4d,
  5631. 0x5d, 0x57, 0x77, 0x3b, 0x7b, 0x3a, 0x91, 0xe0, 0xa2, 0xef,
  5632. 0x06, 0xc0, 0xcc, 0x42, 0x99, 0xaa, 0xfa, 0xbf, 0xf8, 0x5c,
  5633. 0x3f, 0xbf, 0x11, 0xaa, 0x01, 0x2f, 0xff, 0x3b, 0xf3, 0xb5,
  5634. 0x97, 0x92, 0xa8, 0xfd, 0x6f, 0x38, 0xea, 0xc7, 0x22, 0xeb,
  5635. 0x71, 0x13, 0xa8, 0x13, 0x35, 0x9f, 0x34, 0x65, 0xb4, 0x66,
  5636. 0x4b, 0x71, 0xb0, 0x2f, 0x17, 0x55, 0xe0, 0x35, 0x73, 0x54,
  5637. 0x1c, 0xd1, 0x17, 0x7b, 0xa4, 0x53, 0x64, 0x01, 0xaa, 0xd6,
  5638. 0xa2, 0x71, 0xbd, 0xed, 0xe4, 0x0b, 0xbf, 0x59 },
  5639. { 0x67, 0xd4, 0x8d, 0x12, 0x82, 0x65, 0xd7, 0xee, 0xc8, 0x0a,
  5640. 0xfe, 0xec, 0x55, 0xe4, 0x9b, 0x47, 0xe4, 0x3a, 0x0b, 0xe7,
  5641. 0x0a, 0x2f, 0x8c, 0xab, 0xc0, 0xd0, 0x31, 0x9a, 0x50, 0x4b,
  5642. 0x6b, 0xc1, 0xe0, 0xfc, 0x16, 0xd3, 0x4e, 0xbd, 0x45, 0x3e,
  5643. 0xe1, 0x31, 0xcc, 0x9a, 0xbd, 0xa6, 0x12, 0x5a, 0x10, 0xb2,
  5644. 0xcf, 0xe7, 0x97, 0x6a, 0x84, 0x4b, 0x1f, 0xf6, 0x0c, 0x51,
  5645. 0xa0, 0xd3, 0xd8, 0x1a, 0xc5, 0xb3, 0x37, 0x6f, 0x17, 0x1d,
  5646. 0x12, 0x04, 0x5a, 0xab, 0xf3, 0x91, 0xfa, 0xde, 0x65, 0x00,
  5647. 0xeb, 0xf5, 0x75, 0x89, 0x2a, 0xea, 0x4f, 0xbf, 0xf9, 0x66,
  5648. 0x64, 0xee, 0x1b, 0xf9, 0x6b, 0x91, 0xcb, 0x2a, 0xc0, 0x7c,
  5649. 0xe4, 0xc4, 0x7b, 0x70, 0x3d, 0x07, 0xf5, 0xf0, 0x90, 0x70,
  5650. 0x38, 0xa7, 0x9e, 0xc3, 0xa1, 0xfc, 0xeb, 0x12, 0x67, 0xea,
  5651. 0xca, 0x53, 0x92, 0xe1, 0x78, 0x84, 0xb0, 0x73 },
  5652. { 0x27, 0x95, 0x0e, 0x38, 0xe8, 0x38, 0x4d, 0xc7, 0xa3, 0xd7,
  5653. 0xeb, 0xc3, 0x1f, 0x0e, 0x43, 0xf5, 0x2c, 0xf1, 0x13, 0xa9,
  5654. 0x28, 0xb0, 0x1d, 0xf5, 0xd4, 0x90, 0x0d, 0x0f, 0x10, 0xd1,
  5655. 0xc1, 0x84, 0x3e, 0xfc, 0xaa, 0x50, 0xab, 0xf2, 0x94, 0x01,
  5656. 0xfe, 0x8b, 0xb1, 0x20, 0x5e, 0xe6, 0x05, 0x96, 0xfd, 0xd5,
  5657. 0x6b, 0x1b, 0x4d, 0xc9, 0x27, 0xcd, 0x95, 0xf6, 0x2c, 0x85,
  5658. 0xc5, 0xb6, 0x49, 0xd4, 0x84, 0x22, 0x9d, 0xf4, 0x75, 0x61,
  5659. 0xa0, 0x10, 0x47, 0x2d, 0xdc, 0x3d, 0x64, 0xa2, 0xf9, 0xa8,
  5660. 0xde, 0xe7, 0xca, 0x2b, 0x75, 0xba, 0x8c, 0x3d, 0x89, 0xa2,
  5661. 0x42, 0xe7, 0xf7, 0x7e, 0x62, 0x93, 0xfb, 0xb6, 0x39, 0xca,
  5662. 0x07, 0x20, 0x4e, 0xbc, 0x6b, 0xd1, 0x1d, 0xb0, 0xae, 0x73,
  5663. 0x66, 0xcd, 0xd7, 0x1a, 0xbd, 0x0e, 0x27, 0x48, 0x0a, 0x63,
  5664. 0x06, 0x8d, 0x59, 0xa7, 0xea, 0x2d, 0x56, 0xd6 },
  5665. { 0x54, 0xff, 0x78, 0x84, 0x79, 0xb2, 0x5d, 0x71, 0xa1, 0xc9,
  5666. 0x98, 0x13, 0xff, 0x22, 0x25, 0xab, 0xae, 0x80, 0x45, 0x3f,
  5667. 0xbb, 0x1e, 0x5b, 0xd8, 0xa7, 0xf0, 0x44, 0x0c, 0x9f, 0x68,
  5668. 0x4f, 0x25, 0x33, 0x5c, 0xc4, 0xf8, 0x5d, 0x15, 0xdf, 0xbf,
  5669. 0xff, 0x3a, 0xba, 0x5c, 0x69, 0x62, 0x80, 0x46, 0x55, 0xce,
  5670. 0x84, 0x91, 0x58, 0x80, 0xcd, 0xaf, 0x8e, 0xe0, 0x0e, 0x1a,
  5671. 0x8e, 0xef, 0x6c, 0xc9, 0x4e, 0x01, 0x41, 0xae, 0x85, 0x02,
  5672. 0xaa, 0x89, 0x20, 0x73, 0x95, 0x4c, 0xd2, 0xe9, 0x6d, 0xdf,
  5673. 0x14, 0x42, 0xbf, 0x36, 0x7d, 0xd4, 0xc5, 0x31, 0x46, 0x71,
  5674. 0x6f, 0x79, 0xa9, 0x25, 0xe7, 0xe7, 0xbb, 0x48, 0x27, 0xfa,
  5675. 0x4e, 0xb2, 0x1f, 0x6b, 0x4c, 0x93, 0x46, 0x89, 0x2f, 0xe3,
  5676. 0x74, 0xcb, 0x4b, 0x9f, 0xd0, 0x33, 0x04, 0x8b, 0x5d, 0xe9,
  5677. 0xea, 0xb2, 0x1f, 0xf0, 0xe1, 0xd0, 0xfa, 0x79 },
  5678. { 0x8a, 0xdb, 0xad, 0x85, 0x3f, 0x18, 0x30, 0xfe, 0x4e, 0x4e,
  5679. 0x45, 0x73, 0xee, 0x30, 0xb2, 0x86, 0x8a, 0xcd, 0xa9, 0x65,
  5680. 0x9f, 0xa1, 0x01, 0xe6, 0x17, 0x87, 0x55, 0x00, 0x28, 0xc9,
  5681. 0x30, 0x2c, 0x06, 0x9e, 0x82, 0xdc, 0x36, 0x78, 0xa4, 0x27,
  5682. 0xd6, 0xa2, 0xc0, 0x1d, 0x8b, 0x6a, 0x6c, 0x6b, 0x28, 0x94,
  5683. 0x5e, 0x31, 0xc9, 0x55, 0xae, 0xad, 0x91, 0x53, 0x62, 0xdc,
  5684. 0xb7, 0x86, 0xea, 0x9f, 0x33, 0x9d, 0xf0, 0x81, 0x0c, 0xcd,
  5685. 0x9e, 0xc9, 0xc6, 0x8f, 0x1b, 0x3b, 0x4a, 0x2c, 0x08, 0xe3,
  5686. 0xbb, 0x74, 0xe5, 0x8f, 0xdc, 0xb0, 0xc0, 0x0f, 0xe3, 0x28,
  5687. 0x54, 0x41, 0x8d, 0xf9, 0x0d, 0x2b, 0x50, 0xa5, 0xa5, 0xad,
  5688. 0xc0, 0x41, 0x81, 0x15, 0xe2, 0x4a, 0x46, 0x04, 0xfa, 0x3b,
  5689. 0x21, 0xf6, 0x92, 0x26, 0x46, 0x5b, 0xe6, 0xf3, 0xa5, 0x1e,
  5690. 0x27, 0xc6, 0xee, 0x30, 0xde, 0x40, 0xb0, 0x68 },
  5691. { 0x73, 0x93, 0x00, 0x36, 0xc0, 0x94, 0x5e, 0x5f, 0xf3, 0x42,
  5692. 0xc1, 0xaa, 0x02, 0x7e, 0x71, 0xc1, 0xb7, 0x5c, 0x41, 0xa6,
  5693. 0x66, 0xcb, 0xc9, 0x6c, 0xf5, 0x88, 0xb4, 0xf8, 0x17, 0x17,
  5694. 0xe1, 0xaf, 0x14, 0xeb, 0x86, 0xf3, 0x58, 0x40, 0x7a, 0x1d,
  5695. 0xdb, 0xe3, 0x86, 0xcb, 0x81, 0x6c, 0x07, 0x30, 0x40, 0x3f,
  5696. 0x16, 0x8c, 0x30, 0x26, 0xcd, 0x41, 0x95, 0xb1, 0x6c, 0xcc,
  5697. 0xcd, 0x5e, 0x87, 0xe7, 0x40, 0xd8, 0x6f, 0x30, 0x12, 0x43,
  5698. 0xf3, 0xef, 0x40, 0x90, 0xcf, 0xa6, 0x1b, 0x46, 0x4b, 0x28,
  5699. 0xcd, 0xbc, 0x2a, 0xd2, 0x09, 0x84, 0xfb, 0x0e, 0x6a, 0xa1,
  5700. 0xf5, 0xde, 0x8e, 0x1c, 0x0f, 0x7f, 0x45, 0x6b, 0x9c, 0xf2,
  5701. 0xe2, 0x33, 0x6d, 0x4f, 0x3c, 0xec, 0x67, 0x66, 0x7c, 0xc1,
  5702. 0xfc, 0xc2, 0xf4, 0x2f, 0xda, 0xf7, 0xf3, 0x9b, 0xcc, 0x79,
  5703. 0x06, 0x0a, 0xe1, 0x1f, 0x09, 0x69, 0xd5, 0x24 },
  5704. { 0x8b, 0xc6, 0xec, 0x4a, 0xe4, 0x29, 0x65, 0xe2, 0x5b, 0xd1,
  5705. 0x01, 0x82, 0xaa, 0x7c, 0x99, 0xd3, 0x9c, 0x28, 0xa9, 0x67,
  5706. 0x73, 0xea, 0xf2, 0x23, 0xcf, 0x56, 0x13, 0x48, 0xe0, 0x96,
  5707. 0x1b, 0x31, 0x45, 0xb9, 0xe6, 0x1b, 0x73, 0x1f, 0xc4, 0x47,
  5708. 0x61, 0xa5, 0x14, 0xe1, 0xb5, 0x24, 0x63, 0x2f, 0x43, 0x4a,
  5709. 0xc7, 0xb1, 0x64, 0xac, 0x8f, 0x15, 0x70, 0x5d, 0xdd, 0x5a,
  5710. 0xd9, 0x11, 0x08, 0xcc, 0xda, 0xcd, 0xfd, 0x5d, 0xd2, 0x9c,
  5711. 0x01, 0xaa, 0x4b, 0xd7, 0xd6, 0x9d, 0x61, 0x17, 0x9c, 0xae,
  5712. 0x17, 0x15, 0x90, 0x3e, 0x6a, 0x4f, 0x69, 0x85, 0x92, 0xb3,
  5713. 0x05, 0xd1, 0x02, 0x2c, 0xeb, 0x91, 0x69, 0x64, 0x2e, 0x08,
  5714. 0xf1, 0x8f, 0xd5, 0xbc, 0x8b, 0x98, 0x68, 0x19, 0xf5, 0x51,
  5715. 0x4f, 0x25, 0x78, 0x8b, 0x59, 0x1d, 0xf4, 0x18, 0x1a, 0xab,
  5716. 0x95, 0x4f, 0x75, 0x7d, 0x22, 0xcd, 0xaf, 0x42 },
  5717. { 0x8e, 0x85, 0x43, 0x7d, 0xbe, 0x9c, 0x7e, 0x15, 0x2b, 0x3c,
  5718. 0x8f, 0x71, 0xdc, 0xeb, 0x89, 0x55, 0xab, 0x01, 0x2c, 0x2c,
  5719. 0x58, 0x47, 0xa4, 0xd7, 0x28, 0x44, 0xd9, 0x6a, 0x98, 0x2f,
  5720. 0xc0, 0xd4, 0xd6, 0xa7, 0xdf, 0x0d, 0xaa, 0x60, 0xaa, 0x6a,
  5721. 0xd3, 0x08, 0xfc, 0x21, 0xae, 0x9b, 0x2a, 0xa8, 0xfc, 0x9a,
  5722. 0xc3, 0xb9, 0x48, 0xd6, 0x5c, 0xbb, 0xe5, 0x65, 0x43, 0x1c,
  5723. 0x8b, 0x65, 0xc9, 0xa1, 0xe3, 0x14, 0x71, 0xee, 0x6b, 0xe6,
  5724. 0xc8, 0xca, 0x73, 0x24, 0x83, 0xe3, 0x51, 0xb7, 0xda, 0x61,
  5725. 0xa0, 0xac, 0xfc, 0xa2, 0x2b, 0x29, 0xb2, 0xb7, 0x51, 0x0e,
  5726. 0x18, 0x60, 0x84, 0x57, 0xaa, 0x6e, 0x66, 0x55, 0xfc, 0x9c,
  5727. 0xbb, 0x60, 0x54, 0xa6, 0x06, 0xfe, 0x43, 0x7c, 0x40, 0x1e,
  5728. 0x36, 0x0c, 0xff, 0x54, 0x80, 0x0c, 0x09, 0x38, 0x8a, 0x30,
  5729. 0xd0, 0x96, 0xe5, 0xc0, 0xe7, 0xf2, 0xa3, 0x2b },
  5730. };
  5731. /*
  5732. * Loop for modular exponentiate the value in F_p*.
  5733. *
  5734. * Using 8-bit stripe table.
  5735. *
  5736. * @param [in] key SAKKE key.
  5737. * @param [in] b MP integer that is the base to exponentiate.
  5738. * @param [in] e MP integer that is the exponent.
  5739. * @param [out] c Result of exponentiation.
  5740. * @param [in] mp Multiplier to use when converting from Montgomery form.
  5741. * @return 0 on success.
  5742. * @return MEMORY_E when dynamic memory allocation fails.
  5743. * @return Other -ve value on internal failure.
  5744. */
  5745. static int sakke_modexp_loop(SakkeKey* key, const mp_int* b, mp_int* e,
  5746. mp_proj* c, mp_digit mp)
  5747. {
  5748. int err = 0;
  5749. mp_int* t1 = &key->tmp.m1;
  5750. mp_int* t2 = &key->tmp.m2;
  5751. mp_int* by = key->tmp.p1->z;
  5752. mp_int* prime = &key->params.prime;
  5753. unsigned char eb[128];
  5754. int i;
  5755. int y;
  5756. /* Use table for values of b exponentiated. */
  5757. (void)b;
  5758. (void)mp_to_unsigned_bin_len(e, eb, sizeof(eb));
  5759. /* Set the working value to the base in PF_p[q] */
  5760. err = mp_montgomery_calc_normalization(c->x, prime);
  5761. if (err == 0) {
  5762. y = (eb[112] >> 7) & 1;
  5763. y |= ((eb[ 96] >> 7) & 1) << 1;
  5764. y |= ((eb[ 80] >> 7) & 1) << 2;
  5765. y |= ((eb[ 64] >> 7) & 1) << 3;
  5766. y |= ((eb[ 48] >> 7) & 1) << 4;
  5767. y |= ((eb[ 32] >> 7) & 1) << 5;
  5768. y |= ((eb[ 16] >> 7) & 1) << 6;
  5769. y |= ((eb[ 0] >> 7) & 1) << 7;
  5770. (void)mp_read_unsigned_bin(c->y, sakke_1024_g_table[y], 128);
  5771. }
  5772. for (i = 128 - 2; (err == 0) && (i >= 0); i--) {
  5773. y = (eb[127 - i / 8 ] >> (i & 0x7)) & 1;
  5774. y |= ((eb[127 - (i / 8 + 16)] >> (i & 0x7)) & 1) << 1;
  5775. y |= ((eb[127 - (i / 8 + 32)] >> (i & 0x7)) & 1) << 2;
  5776. y |= ((eb[127 - (i / 8 + 48)] >> (i & 0x7)) & 1) << 3;
  5777. y |= ((eb[127 - (i / 8 + 64)] >> (i & 0x7)) & 1) << 4;
  5778. y |= ((eb[127 - (i / 8 + 80)] >> (i & 0x7)) & 1) << 5;
  5779. y |= ((eb[127 - (i / 8 + 96)] >> (i & 0x7)) & 1) << 6;
  5780. y |= ((eb[127 - (i / 8 + 112)] >> (i & 0x7)) & 1) << 7;
  5781. err = sakke_proj_sqr(c, prime, mp, c, t1, t2);
  5782. if (err == 0) {
  5783. (void)mp_read_unsigned_bin(by, sakke_1024_g_table[y], 128);
  5784. err = sakke_proj_mul_qx1(c, by, prime, mp, c, t1, t2);
  5785. }
  5786. }
  5787. return err;
  5788. }
  5789. #endif /* WOLFSSL_SAKKE_SMALL */
  5790. /*
  5791. * Modular exponentiate the value in F_p*.
  5792. *
  5793. * @param [in] key SAKKE key.
  5794. * @param [in] b MP integer that is the base to exponentiate.
  5795. * @param [in] e MP integer that is the exponent.
  5796. * @param [out] r Result of exponentiation.
  5797. * @return 0 on success.
  5798. * @return MEMORY_E when dynamic memory allocation fails.
  5799. * @return Other -ve value on internal failure.
  5800. */
  5801. static int sakke_modexp(SakkeKey* key, mp_int* b, mp_int* e, mp_int* r)
  5802. {
  5803. int err;
  5804. mp_digit mp;
  5805. mp_int* prime = &key->params.prime;
  5806. mp_proj* c = key->tmp.p1;
  5807. (void)b;
  5808. err = mp_montgomery_setup(prime, &mp);
  5809. if (err == 0) {
  5810. err = sakke_modexp_loop(key, b, e, c, mp);
  5811. }
  5812. if (err == 0) {
  5813. err = mp_montgomery_reduce(c->x, prime, mp);
  5814. }
  5815. if (err == 0) {
  5816. err = mp_montgomery_reduce(c->y, prime, mp);
  5817. }
  5818. /* Convert value back from PF_p[q] to F_p* */
  5819. if (err == 0) {
  5820. err = mp_invmod(c->x, prime, c->x);
  5821. }
  5822. if (err == 0) {
  5823. err = mp_mulmod(c->x, c->y, prime, r);
  5824. }
  5825. return err;
  5826. }
  5827. #endif /* WOLFSSL_HAVE_SP_ECC */
  5828. /*
  5829. * Calculate the hash values h and v.
  5830. *
  5831. * RFC 6508, section 5.1, Steps 4.a and 4.b.
  5832. *
  5833. * @param [in] key SAKKE key.
  5834. * @param [in] hashType Hash algorithm to use.
  5835. * @param [in] hashSz Size of output of hash algorithm in bytes.
  5836. * @param [in] a Hash of data and extra.
  5837. * @param [in] h Rolling hash result.
  5838. * @param [out] v Output bytes of hashing.
  5839. * @return 0 on success.
  5840. * @return BAD_FUNC_ARG when hashType is not supported.
  5841. * @return MEMORY_E when dynamic memory allocation fails.
  5842. * @return Other -ve value on internal failure.
  5843. */
  5844. static int sakke_calc_h_v(SakkeKey* key, enum wc_HashType hashType,
  5845. word32 hashSz, const byte* a, byte* h, byte* v)
  5846. {
  5847. int err;
  5848. /* Step 4.a: h_i = hashfn(h_(i - 1)) */
  5849. err = wc_HashUpdate(&key->hash, hashType, h, hashSz);
  5850. if (err == 0) {
  5851. err = wc_HashFinal(&key->hash, hashType, h);
  5852. }
  5853. /* Step 4.b: v_i = hashfn(h_i | A) */
  5854. if (err == 0) {
  5855. err = wc_HashUpdate(&key->hash, hashType, h, hashSz);
  5856. }
  5857. if (err == 0) {
  5858. err = wc_HashUpdate(&key->hash, hashType, a, hashSz);
  5859. }
  5860. if (err == 0) {
  5861. err = wc_HashFinal(&key->hash, hashType, v);
  5862. }
  5863. return err;
  5864. }
  5865. /*
  5866. * XOR hash output v into output, with length n, starting at index i.
  5867. *
  5868. * @param [in] v Output bytes of hashing.
  5869. * @param [in] hashSz Size of output of hash algorithm in bytes.
  5870. * @param [in,out] out Data to be XORed.
  5871. * @param [in] idx Index to start XORing into.
  5872. * @param [in] n Length of data to XOR (mask) in bytes.
  5873. */
  5874. static void sakke_xor_in_v(const byte* v, word32 hashSz, byte* out, int idx,
  5875. int n)
  5876. {
  5877. int o;
  5878. word32 i;
  5879. if (idx == 0) {
  5880. i = hashSz - (n % hashSz);
  5881. if (i == hashSz) {
  5882. i = 0;
  5883. }
  5884. }
  5885. else {
  5886. i = 0;
  5887. }
  5888. o = i;
  5889. for (; i < hashSz; i++) {
  5890. out[idx + i - o] ^= v[i];
  5891. }
  5892. }
  5893. /*
  5894. * Hash octet strings to an integer range.
  5895. *
  5896. * RFC 6508, section 5.1, Steps 1 to 4.
  5897. *
  5898. * @param [in] key SAKKE key.
  5899. * @param [in] hashType Hash algorithm to use.
  5900. * @param [in] data First block of data.
  5901. * @param [in] sz Size of first block of data in bytes.
  5902. * @param [in] extra Extra block of data.
  5903. * @param [in] extraSz Size of extra block of data in bytes.
  5904. * @param [out] a Output bytes of hashing.
  5905. * @return 0 on success.
  5906. * @return BAD_FUNC_ARG when hashType is not supported.
  5907. * @return MEMORY_E when dynamic memory allocation fails.
  5908. * @return Other -ve value on internal failure.
  5909. */
  5910. static int sakke_calc_a(SakkeKey* key, enum wc_HashType hashType,
  5911. const byte* data, word32 sz, const byte* extra, word32 extraSz, byte* a)
  5912. {
  5913. int err;
  5914. int hash_inited = 0;
  5915. /* Step 1: A = hashfn( s ), where s = data | extra */
  5916. err = wc_HashInit_ex(&key->hash, hashType, key->heap, INVALID_DEVID);
  5917. if (err == 0) {
  5918. hash_inited = 1;
  5919. err = wc_HashUpdate(&key->hash, hashType, data, sz);
  5920. }
  5921. if ((err == 0) && (extra != NULL)) {
  5922. err = wc_HashUpdate(&key->hash, hashType, extra, extraSz);
  5923. }
  5924. if (err == 0) {
  5925. err = wc_HashFinal(&key->hash, hashType, a);
  5926. }
  5927. if (hash_inited) {
  5928. (void)wc_HashFree(&key->hash, hashType);
  5929. }
  5930. return err;
  5931. }
  5932. /*
  5933. * Hash octet strings to an integer range.
  5934. *
  5935. * RFC 6508, section 5.1, Steps 1 to 4.
  5936. *
  5937. * @param [in] key SAKKE key.
  5938. * @param [in] hashType Hash algorithm to use.
  5939. * @param [in] a Hash of original data.
  5940. * @param [out] out Output bytes of hashing.
  5941. * @param [in] n Size of output buffer in bytes.
  5942. * @return 0 on success.
  5943. * @return BAD_FUNC_ARG when hashType is not supported.
  5944. * @return MEMORY_E when dynamic memory allocation fails.
  5945. * @return Other -ve value on internal failure.
  5946. */
  5947. static int sakke_hash_to_range(SakkeKey* key, enum wc_HashType hashType,
  5948. const byte* a, byte* out, word32 n)
  5949. {
  5950. int err = 0;
  5951. byte h[WC_MAX_DIGEST_SIZE];
  5952. byte v[WC_MAX_DIGEST_SIZE];
  5953. word32 hashSz = 1;
  5954. word32 i;
  5955. int hash_inited = 0;
  5956. err = wc_HashInit_ex(&key->hash, hashType, key->heap, INVALID_DEVID);
  5957. if (err == 0)
  5958. hash_inited = 1;
  5959. /* Step 1: A = hashfn( s ), where s = data | extra
  5960. * See sakke_calc_a (need function parameters to be 7 or less)
  5961. */
  5962. /* Step 2: h_0 = 00...00, a string of null bits of length hashlen bits */
  5963. if (err == 0)
  5964. err = wc_HashGetDigestSize(hashType);
  5965. if (err > 0) {
  5966. hashSz = (word32)err;
  5967. XMEMSET(h, 0, hashSz);
  5968. err = 0; /* reset err value after getting digest size */
  5969. }
  5970. else if (err == 0) {
  5971. /* invalid hash digest size */
  5972. err = BAD_FUNC_ARG;
  5973. }
  5974. /* Step 3: l = Ceiling(lg(n)/hashlen) */
  5975. /* Step 4: For each i in 1 to l, do */
  5976. for (i = 0; (err == 0) && (i < n); i += hashSz) {
  5977. /* Steps 4.a and 4.b */
  5978. err = sakke_calc_h_v(key, hashType, hashSz, a, h, v);
  5979. /* XOR in the result into output buffer. */
  5980. if (err == 0) {
  5981. sakke_xor_in_v(v, hashSz, out, i, n);
  5982. }
  5983. }
  5984. if (hash_inited) {
  5985. (void)wc_HashFree(&key->hash, hashType);
  5986. }
  5987. return err;
  5988. }
  5989. /*
  5990. * Hash octet strings to an integer range - RFC 6508 section 5.1.
  5991. * Steps 1 to 6.
  5992. *
  5993. * @param [in] key SAKKE key.
  5994. * @param [in] hashType Hash algorithm to use.
  5995. * @param [in] a Hash of original data.
  5996. * @param [in] q MP integer representing modulus.
  5997. * @param [in] n Size of output in bytes.
  5998. * @param [out] r MP integer representing modulo reduced hashes.
  5999. * @return 0 on success.
  6000. * @return BAD_FUNC_ARG when hashType is not supported.
  6001. * @return MEMORY_E when dynamic memory allocation fails.
  6002. * @return Other -ve value on internal failure.
  6003. */
  6004. static int sakke_hash_to_range_int(SakkeKey* key, enum wc_HashType hashType,
  6005. const byte* a, mp_int* q, word32 n, mp_int* r)
  6006. {
  6007. int err;
  6008. byte* rb = key->data;
  6009. /* Make all zeros so that hash output can be XORed in. */
  6010. XMEMSET(rb, 0, n);
  6011. /* Steps 1-4 */
  6012. err = sakke_hash_to_range(key, hashType, a, rb, n);
  6013. if (err == 0) {
  6014. /* Steps 5 v' = v_1 | ... | v_l */
  6015. err = mp_read_unsigned_bin(r, rb, n);
  6016. }
  6017. if (err == 0) {
  6018. /* Steps 6 v = v' mod n */
  6019. err = mp_mod(r, q, r);
  6020. }
  6021. return err;
  6022. }
  6023. /**
  6024. * Set the identity to perform operations with.
  6025. *
  6026. * @param [in] key SAKKE key.
  6027. * @param [in] id Identity.
  6028. * @param [in] idSz Size of identity in bytes.
  6029. * @return 0 on success.
  6030. * @return BAD_FUNC_ARG when key or id is NULL or idSz > SAKKE_ID_MAX_SIZE.
  6031. */
  6032. int wc_SetSakkeIdentity(SakkeKey* key, const byte* id, word16 idSz)
  6033. {
  6034. int err = 0;
  6035. if ((key == NULL) || (id == NULL) || (idSz > SAKKE_ID_MAX_SIZE)) {
  6036. err = BAD_FUNC_ARG;
  6037. }
  6038. if (err == 0) {
  6039. XMEMCPY(key->id, id, idSz);
  6040. key->idSz = idSz;
  6041. }
  6042. return err;
  6043. }
  6044. /**
  6045. * Compute the elliptic curve point I for identity. Partial for point R.
  6046. *
  6047. * RFC 6508, Section 6.2.1, Step 3.\n
  6048. * RFC 6508, Section 6.2.2, Step 5.\n
  6049. * I = [b]P + Z_S
  6050. *
  6051. * @param [in] key SAKKE key.
  6052. * @param [in] id Identity.
  6053. * @param [in] idSz Size of identity in bytes.
  6054. * @return 0 on success.
  6055. * @return BAD_FUNC_ARG when key or id is NULL or idSz > SAKKE_ID_MAX_SIZE.
  6056. * @return MEMORY_E when dynamic memory allocation fails.
  6057. * @return Other -ve value on internal failure.
  6058. */
  6059. int wc_MakeSakkePointI(SakkeKey* key, const byte* id, word16 idSz)
  6060. {
  6061. int err = 0;
  6062. if ((key == NULL) || (id == NULL) || (idSz > SAKKE_ID_MAX_SIZE)) {
  6063. err = BAD_FUNC_ARG;
  6064. }
  6065. SAVE_VECTOR_REGISTERS(return _svr_ret;);
  6066. if (err == 0) {
  6067. err = sakke_load_params(key);
  6068. }
  6069. if (err == 0) {
  6070. /* I = [b]P + Z_S */
  6071. err = sakke_compute_point_i(key, id, idSz, key->i.i);
  6072. }
  6073. if (err == 0) {
  6074. XMEMCPY(key->i.id, id, idSz);
  6075. key->i.idSz = idSz;
  6076. }
  6077. RESTORE_VECTOR_REGISTERS();
  6078. return err;
  6079. }
  6080. /**
  6081. * Get the elliptic curve point I - a partial calculation for point R.
  6082. *
  6083. * RFC 6508, Section 6.2.1, Step 3.\n
  6084. * RFC 6508, Section 6.2.2, Step 5.\n
  6085. * I = [b]P + Z_S
  6086. *
  6087. * @param [in] key SAKKE key.
  6088. * @param [out] data Encoding of point I.
  6089. * @param [in,out] sz On in, the size of data in bytes.
  6090. * On out, the size of the encoding in bytes.
  6091. * @return 0 on success.
  6092. * @return BAD_FUNC_ARG when key or sz is NULL.
  6093. * @return LENGTH_ONLY_E when data is NULL. Number of bytes required returned
  6094. * in sz.
  6095. * @return BUFFER_E when sz is too small to hold encoding.
  6096. */
  6097. int wc_GetSakkePointI(SakkeKey* key, byte* data, word32* sz)
  6098. {
  6099. int err = 0;
  6100. if ((key == NULL) || (sz == NULL)) {
  6101. err = BAD_FUNC_ARG;
  6102. }
  6103. if ((err == 0) && (data == NULL)) {
  6104. *sz = key->ecc.dp->size * 2;
  6105. err = LENGTH_ONLY_E;
  6106. }
  6107. if ((err == 0) && (*sz < (word32)key->ecc.dp->size * 2)) {
  6108. err = BUFFER_E;
  6109. }
  6110. if (err == 0) {
  6111. /* Write out the x ordinate into key size bytes. */
  6112. err = mp_to_unsigned_bin_len(key->i.i->x, data, key->ecc.dp->size);
  6113. }
  6114. if (err == 0) {
  6115. data += key->ecc.dp->size;
  6116. /* Write data the y ordinate into key size bytes. */
  6117. err = mp_to_unsigned_bin_len(key->i.i->y, data, key->ecc.dp->size);
  6118. }
  6119. if (err == 0) {
  6120. *sz = key->ecc.dp->size * 2;
  6121. }
  6122. return err;
  6123. }
  6124. /**
  6125. * Set the elliptic curve point I - a partial calculation for point R - and the
  6126. * identity that it belongs to.
  6127. *
  6128. * RFC 6508, Section 6.2.1, Step 3.\n
  6129. * RFC 6508, Section 6.2.2, Step 5.\n
  6130. * I = [b]P + Z_S
  6131. *
  6132. * @param [in] key SAKKE key.
  6133. * @param [out] data Encoding of point I.
  6134. * @param [in,out] sz On in, the size of data in bytes.
  6135. * On out, the size of the encoding in bytes.
  6136. * @return 0 on success.
  6137. * @return BAD_FUNC_ARG when key, id or data is NULL.
  6138. * @return BUFFER_E when idSz is too big to store or sz is not the required
  6139. * size.
  6140. */
  6141. int wc_SetSakkePointI(SakkeKey* key, const byte* id, word16 idSz,
  6142. const byte* data, word32 sz)
  6143. {
  6144. int err = 0;
  6145. if ((key == NULL) || (id == NULL) || (data == NULL)) {
  6146. err = BAD_FUNC_ARG;
  6147. }
  6148. if ((err == 0) && ((idSz > SAKKE_ID_MAX_SIZE) ||
  6149. (sz != (word32)key->ecc.dp->size * 2))) {
  6150. err = BUFFER_E;
  6151. }
  6152. if (err == 0) {
  6153. /* Read the x value from key size bytes. */
  6154. err = mp_read_unsigned_bin(key->i.i->x, data, key->ecc.dp->size);
  6155. }
  6156. if (err == 0) {
  6157. data += key->ecc.dp->size;
  6158. /* Read the y value from key size bytes. */
  6159. err = mp_read_unsigned_bin(key->i.i->y, data, key->ecc.dp->size);
  6160. }
  6161. if (err == 0) {
  6162. err = mp_set(key->i.i->z, 1);
  6163. }
  6164. if (err == 0) {
  6165. XMEMCPY(key->i.id, id, idSz);
  6166. key->i.idSz = idSz;
  6167. }
  6168. return err;
  6169. }
  6170. /**
  6171. * Generate the pre-computation table for point I.
  6172. *
  6173. * A reference to the table is stored if successfully generated.
  6174. *
  6175. * @param [in] key SAKKE key.
  6176. * @param [in,out] table Pre-computation table.
  6177. * NULL to indicate that only length required.
  6178. * @param [in,out] len On in, the size of table buffer in bytes.
  6179. * On out, the size of table data in bytes.
  6180. * @return BAD_FUNC_ARG then key or len is NULL.
  6181. * @return LENGTH_ONLY_E when only the length is returned.
  6182. * @return BUFFER_E when len is too small.
  6183. * @return MEMORY_E when dynamic memory allocation fails.
  6184. */
  6185. int wc_GenerateSakkePointITable(SakkeKey* key, byte* table, word32* len)
  6186. {
  6187. int err = 0;
  6188. if ((key == NULL) || (len == NULL)) {
  6189. err = BAD_FUNC_ARG;
  6190. }
  6191. #ifdef WOLFSSL_HAVE_SP_ECC
  6192. if (err == 0) {
  6193. SAVE_VECTOR_REGISTERS(return _svr_ret;);
  6194. err = sp_ecc_gen_table_1024(key->i.i, table, len, key->heap);
  6195. RESTORE_VECTOR_REGISTERS();
  6196. }
  6197. if (err == 0) {
  6198. key->i.table = table;
  6199. key->i.tableLen = *len;
  6200. }
  6201. #else
  6202. if ((err == 0) && (table == NULL)) {
  6203. *len = 0;
  6204. err = LENGTH_ONLY_E;
  6205. }
  6206. if ((err == 0) && (*len != 0)) {
  6207. *len = 0;
  6208. err = BUFFER_E;
  6209. }
  6210. if (err == 0) {
  6211. *len = 0;
  6212. key->i.table = table;
  6213. key->i.tableLen = *len;
  6214. }
  6215. (void)table;
  6216. #endif
  6217. return err;
  6218. }
  6219. /**
  6220. * Sets the pre-computation table for point I.
  6221. * Speeds up making and deriving the encapsulated SSV.
  6222. *
  6223. * @param [in] key SAKKE key.
  6224. * @param [in] table Pre-computation table for Point I.
  6225. * @param [in] len Length of pre-computation table in bytes.
  6226. * @return 0 on success.
  6227. * @return BAD_FUNC_ARG when key or table is NULL.
  6228. */
  6229. int wc_SetSakkePointITable(SakkeKey* key, byte* table, word32 len)
  6230. {
  6231. int err = 0;
  6232. #ifdef WOLFSSL_HAVE_SP_ECC
  6233. word32 sz = 0;
  6234. #endif
  6235. if ((key == NULL) || (table == NULL)) {
  6236. err = BAD_FUNC_ARG;
  6237. }
  6238. #ifdef WOLFSSL_HAVE_SP_ECC
  6239. if (err == 0) {
  6240. err = sp_ecc_gen_table_1024(key->i.i, NULL, &sz, NULL);
  6241. if (err == LENGTH_ONLY_E) {
  6242. err = 0;
  6243. }
  6244. }
  6245. if ((err == 0) && (len != sz)) {
  6246. err = BUFFER_E;
  6247. }
  6248. #else
  6249. if ((err == 0) && (len != 0)) {
  6250. err = BUFFER_E;
  6251. }
  6252. #endif
  6253. if (err == 0) {
  6254. key->i.table = table;
  6255. key->i.tableLen = len;
  6256. }
  6257. return err;
  6258. }
  6259. /**
  6260. * Clears the pre-computation table for point I.
  6261. *
  6262. * Must be called once the table has been disposed of.
  6263. *
  6264. * @param [in] key SAKKE key.
  6265. * @return 0 on success.
  6266. * @return BAD_FUNC_ARG when key is NULL.
  6267. */
  6268. int wc_ClearSakkePointITable(SakkeKey* key)
  6269. {
  6270. int err = 0;
  6271. if (key == NULL) {
  6272. err = BAD_FUNC_ARG;
  6273. }
  6274. if (err == 0) {
  6275. key->i.table = NULL;
  6276. key->i.tableLen = 0;
  6277. }
  6278. return err;
  6279. }
  6280. /*
  6281. * Compute the elliptic curve point R for device B.
  6282. *
  6283. * RFC 6508, Section 6.2.1, Step 3.\n
  6284. * RFC 6508, Section 6.2.2, Step 5.\n
  6285. * R = [r]([b]P + Z_S)
  6286. *
  6287. * @param [in] key SAKKE key.
  6288. * @param [in] id Identifier to of device B.
  6289. * @param [in] idSz Size of identifier in bytes.
  6290. * @param [in] z ECC point - KMS Public Key Z_S.
  6291. * @param [in] n Number of bytes in r.
  6292. * @param [in] out Result R encoded to bytes.
  6293. * @return 0 on success.
  6294. * @return MEMORY_E when dynamic memory allocation fails.
  6295. * @return Other -ve value on internal failure.
  6296. */
  6297. static int sakke_compute_point_r(SakkeKey* key, const byte* id, word16 idSz,
  6298. const mp_int* r, word32 n, byte* out)
  6299. {
  6300. int err = 0;
  6301. ecc_point* i = key->i.i;
  6302. ecc_point* rp = key->tmp.p2;
  6303. word32 sz;
  6304. if ((key->i.idSz == 0) || (key->i.idSz != idSz) ||
  6305. (XMEMCMP(id, key->i.id, idSz) != 0)) {
  6306. /* I = [b]P + Z_S */
  6307. err = sakke_compute_point_i(key, id, idSz, i);
  6308. if ((err == 0) && (idSz <= SAKKE_ID_MAX_SIZE)) {
  6309. XMEMCPY(key->i.id, id, idSz);
  6310. key->i.idSz = idSz;
  6311. }
  6312. key->i.table = NULL;
  6313. key->i.tableLen = 0;
  6314. }
  6315. /* [r]([b]P + Z_S) */
  6316. if (err == 0) {
  6317. err = sakke_mulmod_point(key, r, i, key->i.table, rp, 1);
  6318. }
  6319. /* Export to canonical form */
  6320. if (err == 0) {
  6321. sz = n * 2 + 1;
  6322. err = wc_ecc_export_point_der(wc_ecc_get_curve_idx(key->ecc.dp->id), rp,
  6323. out, &sz);
  6324. }
  6325. return err;
  6326. }
  6327. /**
  6328. * Makes the Shared Secret Value (SSV) encapsulated and returns the
  6329. * authentication data.
  6330. *
  6331. * RFC 6508, Section 6.2.1.
  6332. *
  6333. * SSV is overwritten with encapsulated SSV.
  6334. *
  6335. * Call wc_SetSakkeIdentity() to set the identity to use with operation.
  6336. *
  6337. * @param [in] key SAKKE key.
  6338. * @param [in,out] ssv On in, Shared Secret Value (SSV) data.
  6339. * On out, encrypted Shared Secret Value (SSV) data.
  6340. * @param [in] ssvSz Size of SSV in bytes.
  6341. * @param [in] hashType Hash algorithm to use.
  6342. * @param [out] auth Authentication data.
  6343. * @param [out] authSz Size of authentication data in bytes.
  6344. * @return 0 on success.
  6345. * @return BAD_FUNC_ARG when key, ssv or encSz is NULL, ssvSz is to big or
  6346. * encSz is too small.
  6347. * @return BAD_STATE_E when identity not set.
  6348. * @return LENGTH_ONLY_E when auth is NULL. authSz contains required size of
  6349. * auth in bytes.
  6350. * @return MEMORY_E when dynamic memory allocation fails.
  6351. * @return Other -ve value on internal failure.
  6352. */
  6353. int wc_MakeSakkeEncapsulatedSSV(SakkeKey* key, enum wc_HashType hashType,
  6354. byte* ssv, word16 ssvSz, byte* auth, word16* authSz)
  6355. {
  6356. int err = 0;
  6357. mp_int* r = NULL;
  6358. word16 n = 0;
  6359. word16 outSz = 0;
  6360. byte a[WC_MAX_DIGEST_SIZE];
  6361. if ((key == NULL) || (ssv == NULL) || (authSz == NULL)) {
  6362. err = BAD_FUNC_ARG;
  6363. }
  6364. if ((err == 0) && (key->idSz == 0)) {
  6365. err = BAD_STATE_E;
  6366. }
  6367. SAVE_VECTOR_REGISTERS(return _svr_ret;);
  6368. /* Load parameters */
  6369. if (err == 0) {
  6370. err = sakke_load_params(key);
  6371. }
  6372. if (err == 0) {
  6373. n = (word16)((mp_count_bits(&key->params.prime) + 7) / 8);
  6374. /* Uncompressed point */
  6375. outSz = 1 + 2 * n;
  6376. if ((auth != NULL) && (*authSz < outSz)) {
  6377. err = BAD_FUNC_ARG;
  6378. }
  6379. }
  6380. if (err == 0) {
  6381. *authSz = outSz;
  6382. if (auth == NULL) {
  6383. err = LENGTH_ONLY_E;
  6384. }
  6385. }
  6386. if (err == 0) {
  6387. err = sakke_load_base_point(key);
  6388. }
  6389. if (err == 0) {
  6390. err = sakke_load_pairing_base(key);
  6391. }
  6392. /* Step 1: Generate a random SSV 0..(2^n)-1
  6393. * Already generated - see wc_MakeSakkeEncapsulated()
  6394. */
  6395. /* Step 2: Compute r = HashToIntegerRange( SSV | b, q, Hash ) */
  6396. if (err == 0) {
  6397. err = sakke_calc_a(key, hashType, ssv, ssvSz, key->id, key->idSz, a);
  6398. }
  6399. if (err == 0) {
  6400. r = key->tmp.p3->z;
  6401. err = sakke_hash_to_range_int(key, hashType, a, &key->params.q, n, r);
  6402. }
  6403. /* Step 3: Compute R_(b,S) = [r]([b]P + Z_S) in E(F_p) */
  6404. if (err == 0) {
  6405. err = sakke_compute_point_r(key, key->id, key->idSz, r, n, auth);
  6406. }
  6407. /* Step 4.a: Compute g^r */
  6408. if (err == 0) {
  6409. err = sakke_modexp(key, &key->params.g, r, r);
  6410. }
  6411. /* Step 4.b: Compute H := SSV XOR HashToIntegerRange( g^r, 2^n, Hash ) */
  6412. if (err == 0) {
  6413. err = mp_to_unsigned_bin_len(r, key->data, n);
  6414. }
  6415. /* ssv ^= HashToIntegerRange( g^r, 2^n, Hash ) */
  6416. if (err == 0) {
  6417. err = sakke_calc_a(key, hashType, key->data, n, NULL, 0, a);
  6418. }
  6419. if (err == 0) {
  6420. err = sakke_hash_to_range(key, hashType, a, ssv, ssvSz);
  6421. }
  6422. /* Step 5: Form the Encapsulated Data ( R_(b,S), H )
  6423. * R_(b,S) encoded in sakke_compute_point_r, H is a pointer into enc.
  6424. */
  6425. /* Step 6: Output SSV - already encoded in buffer */
  6426. RESTORE_VECTOR_REGISTERS();
  6427. return err;
  6428. }
  6429. /**
  6430. * Generate a random Shared Secret Value (SSV).
  6431. *
  6432. * RFC 6508, Section 6.2.1, Step 1.
  6433. *
  6434. * @param [in] key SAKKE key.
  6435. * @param [in] rng Random number generator.
  6436. * @param [out] ssv Shared Secret Value (SSV) data.
  6437. * @param [out] ssvSz Size of SSV in bytes.
  6438. * @return 0 on success.
  6439. * @return BAD_FUNC_ARG when key, rng or ssvSz is NULL or ssvSz is to small.
  6440. * @return LENGTH_ONLY_E when ssv is NULL. ssvSz contains the required size of
  6441. * in bytes.
  6442. * @return MEMORY_E when dynamic memory allocation fails.
  6443. * @return Other -ve value on internal failure.
  6444. */
  6445. int wc_GenerateSakkeSSV(SakkeKey* key, WC_RNG* rng, byte* ssv, word16* ssvSz)
  6446. {
  6447. int err = 0;
  6448. word16 n = 0;
  6449. if ((key == NULL) || (rng == NULL) || (ssvSz == NULL)) {
  6450. err = BAD_FUNC_ARG;
  6451. }
  6452. /* Load parameters */
  6453. if (err == 0) {
  6454. err = sakke_load_params(key);
  6455. }
  6456. if (err == 0) {
  6457. n = (word16)((mp_count_bits(&key->params.prime) + 7) / 8);
  6458. if ((ssv != NULL) && (*ssvSz > n)) {
  6459. err = BAD_FUNC_ARG;
  6460. }
  6461. }
  6462. if (err == 0) {
  6463. /* Return length only if an ouput buffer is NULL. */
  6464. if (ssv == NULL) {
  6465. *ssvSz = (word16) (n / 8);
  6466. err = LENGTH_ONLY_E;
  6467. }
  6468. else {
  6469. n = *ssvSz;
  6470. }
  6471. }
  6472. /* Step 1: Select a random ephemeral integer value. Range 0..(2^n - 1) */
  6473. if (err == 0) {
  6474. err = wc_RNG_GenerateBlock(rng, ssv, n);
  6475. }
  6476. return err;
  6477. }
  6478. /**
  6479. * Derive the Shared Secret Value from the encapsulated data using the set
  6480. * RSK
  6481. *
  6482. * RFC 6508, Section 6.2.2.
  6483. *
  6484. * Encapsulated SSV is overwritten with SSV.
  6485. *
  6486. * Call wc_SetSakkeIdentity() to set the identity to use with operation.
  6487. *
  6488. * Call wc_SetSakkeRSK() to set the Receiver Secret Key (RSK) to use with
  6489. * operation.
  6490. *
  6491. * @param [in] key SAKKE key.
  6492. * @param [in] hashType Hash algorithm to use.
  6493. * @param [in,out] ssv On in, encrypted Secret Shared Value (SSV) data.
  6494. * On out, Secret Shared Value (SSV) data.
  6495. * @param [in] ssvSz Size of SSV in bytes.
  6496. * @param [in] auth Authentication data.
  6497. * @param [in] authSz Size of authentication data in bytes.
  6498. * @return 0 on success.
  6499. * @return BAD_FUNC_ARG when key, ssv or auth is NULL.
  6500. * @return BAD_STATE_E when RSK or identity not set.
  6501. * @return SAKKE_VERIFY_FAIL_E when calculated R doesn't match the encapsulated
  6502. * data's R.
  6503. * @return MEMORY_E when dynamic memory allocation fails.
  6504. * @return Other -ve value on internal failure.
  6505. */
  6506. int wc_DeriveSakkeSSV(SakkeKey* key, enum wc_HashType hashType, byte* ssv,
  6507. word16 ssvSz, const byte* auth, word16 authSz)
  6508. {
  6509. int err = 0;
  6510. word16 n = 0;
  6511. ecc_point* r = NULL;
  6512. mp_int* w = NULL;
  6513. mp_int* ri = NULL;
  6514. byte* wb = NULL;
  6515. byte* test = NULL;
  6516. byte a[WC_MAX_DIGEST_SIZE] = {0};
  6517. if ((key == NULL) || (ssv == NULL) || (auth == NULL)) {
  6518. err = BAD_FUNC_ARG;
  6519. }
  6520. if ((err == 0) && (!key->rsk.set || (key->idSz == 0))) {
  6521. err = BAD_STATE_E;
  6522. }
  6523. SAVE_VECTOR_REGISTERS(return _svr_ret;);
  6524. /* Load parameters */
  6525. if (err == 0) {
  6526. err = sakke_load_params(key);
  6527. }
  6528. if (err == 0) {
  6529. n = (word16)((mp_count_bits(&key->params.prime) + 7) / 8);
  6530. if (authSz != 2 * n + 1) {
  6531. err = BAD_FUNC_ARG;
  6532. }
  6533. }
  6534. if (err == 0) {
  6535. err = sakke_load_base_point(key);
  6536. }
  6537. /* Step 1: Parse the Encapsulated Data ( R_(b,S), H )
  6538. * H = auth, so already extracted. */
  6539. if (err == 0) {
  6540. r = key->tmp.p2;
  6541. err = wc_ecc_import_point_der(auth, n * 2 + 1,
  6542. wc_ecc_get_curve_idx(key->ecc.dp->id), r);
  6543. }
  6544. /* Step 2: w = < R_(b,S), K_(b,S) > = < K_(b,S), R_(b,S) > = < rsk , r > */
  6545. if (err == 0) {
  6546. w = &key->tmp.m1;
  6547. err = sakke_pairing(key, key->rsk.rsk, r, w, key->rsk.table,
  6548. key->rsk.tableLen);
  6549. }
  6550. /* Step 3: Compute SSV = H XOR HashToIntegerRange( w, 2^n, Hash ) */
  6551. if (err == 0) {
  6552. wb = key->data;
  6553. err = mp_to_unsigned_bin_len(w, wb, n);
  6554. }
  6555. /* HashToIntegerRange( w, 2^n, Hash ) */
  6556. if (err == 0) {
  6557. err = sakke_calc_a(key, hashType, wb, n, NULL, 0, a);
  6558. }
  6559. if (err == 0) {
  6560. err = sakke_hash_to_range(key, hashType, a, ssv, ssvSz);
  6561. }
  6562. /* Step 4: r = HashToIntegerRange( SSV | b, q, Hash ) */
  6563. if (err == 0) {
  6564. err = sakke_calc_a(key, hashType, ssv, ssvSz, key->id, key->idSz, a);
  6565. }
  6566. if (err == 0) {
  6567. ri = &key->tmp.m1;
  6568. err = sakke_hash_to_range_int(key, hashType, a, &key->params.q, n, ri);
  6569. }
  6570. /* Step 5: Compute TEST = [r]([b]P + Z_S) == R_(b,S) */
  6571. if (err == 0) {
  6572. test = key->data;
  6573. err = sakke_compute_point_r(key, key->id, key->idSz, ri, n, test);
  6574. }
  6575. if ((err == 0) && (XMEMCMP(auth, test, 2 * n + 1) != 0)) {
  6576. err = SAKKE_VERIFY_FAIL_E;
  6577. }
  6578. RESTORE_VECTOR_REGISTERS();
  6579. return err;
  6580. }
  6581. #endif /* WOLFCRYPT_SAKKE_CLIENT */
  6582. #endif /* WOLFCRYPT_HAVE_SAKKE */