ccgo_windows.go 764 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191
  1. // Code generated for windows/amd64 by 'generator --prefix-enumerator=_ --prefix-external=x_ --prefix-field=F --prefix-macro=m_ --prefix-static-internal=_ --prefix-static-none=_ --prefix-tagged-enum=_ --prefix-tagged-struct=T --prefix-tagged-union=T --prefix-typename=T --prefix-undefined=_ -extended-errors --libc modernc.org/libc -D_UCRT -build-lines \/\/go:build windows && (amd64 || arm64)\n --package-name=libz -o libz.a.go libz.a', DO NOT EDIT.
  2. //go:build windows && (amd64 || arm64)
  3. package libz
  4. import (
  5. "reflect"
  6. "unsafe"
  7. "modernc.org/libc"
  8. )
  9. var _ reflect.Type
  10. var _ unsafe.Pointer
  11. const m_BASE = 65521
  12. const m_DEF_MEM_LEVEL = 8
  13. const m_DEF_WBITS = "MAX_WBITS"
  14. const m_DYN_TREES = 2
  15. const m_E2BIG = 7
  16. const m_EACCES = 13
  17. const m_EADDRINUSE = 100
  18. const m_EADDRNOTAVAIL = 101
  19. const m_EAFNOSUPPORT = 102
  20. const m_EAGAIN = 11
  21. const m_EALREADY = 103
  22. const m_EBADF = 9
  23. const m_EBADMSG = 104
  24. const m_EBUSY = 16
  25. const m_ECANCELED = 105
  26. const m_ECHILD = 10
  27. const m_ECONNABORTED = 106
  28. const m_ECONNREFUSED = 107
  29. const m_ECONNRESET = 108
  30. const m_EDEADLK = 36
  31. const m_EDEADLOCK = "EDEADLK"
  32. const m_EDESTADDRREQ = 109
  33. const m_EDOM = 33
  34. const m_EEXIST = 17
  35. const m_EFAULT = 14
  36. const m_EFBIG = 27
  37. const m_EHOSTUNREACH = 110
  38. const m_EIDRM = 111
  39. const m_EILSEQ = 42
  40. const m_EINPROGRESS = 112
  41. const m_EINTR = 4
  42. const m_EINVAL = 22
  43. const m_EIO = 5
  44. const m_EISCONN = 113
  45. const m_EISDIR = 21
  46. const m_ELOOP = 114
  47. const m_EMFILE = 24
  48. const m_EMLINK = 31
  49. const m_EMSGSIZE = 115
  50. const m_ENAMETOOLONG = 38
  51. const m_ENETDOWN = 116
  52. const m_ENETRESET = 117
  53. const m_ENETUNREACH = 118
  54. const m_ENFILE = 23
  55. const m_ENOBUFS = 119
  56. const m_ENODATA = 120
  57. const m_ENODEV = 19
  58. const m_ENOENT = 2
  59. const m_ENOEXEC = 8
  60. const m_ENOFILE = "ENOENT"
  61. const m_ENOLCK = 39
  62. const m_ENOLINK = 121
  63. const m_ENOMEM = 12
  64. const m_ENOMSG = 122
  65. const m_ENOPROTOOPT = 123
  66. const m_ENOSPC = 28
  67. const m_ENOSR = 124
  68. const m_ENOSTR = 125
  69. const m_ENOSYS = 40
  70. const m_ENOTCONN = 126
  71. const m_ENOTDIR = 20
  72. const m_ENOTEMPTY = 41
  73. const m_ENOTRECOVERABLE = 127
  74. const m_ENOTSOCK = 128
  75. const m_ENOTSUP = 129
  76. const m_ENOTTY = 25
  77. const m_ENXIO = 6
  78. const m_EOPNOTSUPP = 130
  79. const m_EOVERFLOW = 132
  80. const m_EOWNERDEAD = 133
  81. const m_EPERM = 1
  82. const m_EPIPE = 32
  83. const m_EPROTO = 134
  84. const m_EPROTONOSUPPORT = 135
  85. const m_EPROTOTYPE = 136
  86. const m_ERANGE = 34
  87. const m_EROFS = 30
  88. const m_ESPIPE = 29
  89. const m_ESRCH = 3
  90. const m_ETIME = 137
  91. const m_ETIMEDOUT = 138
  92. const m_ETXTBSY = 139
  93. const m_EWOULDBLOCK = 140
  94. const m_EXDEV = 18
  95. const m_EXIT_FAILURE = 1
  96. const m_EXIT_SUCCESS = 0
  97. const m_MAX_MATCH = 258
  98. const m_MAX_MEM_LEVEL = 9
  99. const m_MAX_WBITS = 15
  100. const m_MB_LEN_MAX = 5
  101. const m_MINGW_HAS_DDK_H = 1
  102. const m_MINGW_HAS_SECURE_API = 1
  103. const m_MIN_MATCH = 3
  104. const m_NMAX = 5552
  105. const m_OS_CODE = 10
  106. const m_PATH_MAX = 260
  107. const m_PRESET_DICT = 0x20
  108. const m_RAND_MAX = 0x7fff
  109. const m_SEEK_CUR = 1
  110. const m_SEEK_END = 2
  111. const m_SEEK_SET = 0
  112. const m_SIZE_MAX = "_UI64_MAX"
  113. const m_SSIZE_MAX = "_I64_MAX"
  114. const m_STATIC_TREES = 1
  115. const m_STORED_BLOCK = 0
  116. const m_STRUNCATE = 80
  117. const m_UNALIGNED = "__unaligned"
  118. const m_USE___UUIDOF = 0
  119. const m_WIN32 = 1
  120. const m_WIN64 = 1
  121. const m_WINNT = 1
  122. const m_ZEXTERN = "extern"
  123. const m_ZLIB_VERNUM = 0x1310
  124. const m_ZLIB_VERSION = "1.3.1"
  125. const m_ZLIB_VER_MAJOR = 1
  126. const m_ZLIB_VER_MINOR = 3
  127. const m_ZLIB_VER_REVISION = 1
  128. const m_ZLIB_VER_SUBREVISION = 0
  129. const m_Z_ASCII = "Z_TEXT"
  130. const m_Z_BEST_COMPRESSION = 9
  131. const m_Z_BEST_SPEED = 1
  132. const m_Z_BINARY = 0
  133. const m_Z_BLOCK = 5
  134. const m_Z_DEFAULT_STRATEGY = 0
  135. const m_Z_DEFLATED = 8
  136. const m_Z_FILTERED = 1
  137. const m_Z_FINISH = 4
  138. const m_Z_FIXED = 4
  139. const m_Z_FULL_FLUSH = 3
  140. const m_Z_HUFFMAN_ONLY = 2
  141. const m_Z_NEED_DICT = 2
  142. const m_Z_NO_COMPRESSION = 0
  143. const m_Z_NO_FLUSH = 0
  144. const m_Z_NULL = 0
  145. const m_Z_OK = 0
  146. const m_Z_PARTIAL_FLUSH = 1
  147. const m_Z_RLE = 3
  148. const m_Z_STREAM_END = 1
  149. const m_Z_SYNC_FLUSH = 2
  150. const m_Z_TEXT = 1
  151. const m_Z_TREES = 6
  152. const m_Z_U4 = "unsigned"
  153. const m_Z_UNKNOWN = 2
  154. const m__ALLOCA_S_HEAP_MARKER = 56797
  155. const m__ALLOCA_S_MARKER_SIZE = 16
  156. const m__ALLOCA_S_STACK_MARKER = 0xCCCC
  157. const m__ALLOCA_S_THRESHOLD = 1024
  158. const m__ANONYMOUS_STRUCT = "__MINGW_EXTENSION"
  159. const m__ANONYMOUS_UNION = "__MINGW_EXTENSION"
  160. const m__ARGMAX = 100
  161. const m__CALL_REPORTFAULT = 0x2
  162. const m__CRTIMP2 = "_CRTIMP"
  163. const m__CRTIMP_ALTERNATIVE = "_CRTIMP"
  164. const m__CRTIMP_NOIA64 = "_CRTIMP"
  165. const m__CRTIMP_PURE = "_CRTIMP"
  166. const m__FREEENTRY = 0
  167. const m__HEAP_MAXREQ = 0xFFFFFFFFFFFFFFE0
  168. const m__I16_MAX = 32767
  169. const m__I32_MAX = 2147483647
  170. const m__I64_MAX = "9223372036854775807ll"
  171. const m__I8_MAX = 127
  172. const m__INTEGRAL_MAX_BITS = 64
  173. const m__MAX_DIR = 256
  174. const m__MAX_DRIVE = 3
  175. const m__MAX_ENV = 32767
  176. const m__MAX_EXT = 256
  177. const m__MAX_FNAME = 256
  178. const m__MAX_PATH = 260
  179. const m__MAX_WAIT_MALLOC_CRT = 60000
  180. const m__MCRTIMP = "_CRTIMP"
  181. const m__MRTIMP2 = "_CRTIMP"
  182. const m__M_AMD64 = 100
  183. const m__M_X64 = 100
  184. const m__NLSCMPERROR = 2147483647
  185. const m__OUT_TO_DEFAULT = 0
  186. const m__OUT_TO_MSGBOX = 2
  187. const m__OUT_TO_STDERR = 1
  188. const m__REPORT_ERRMODE = 3
  189. const m__SECURECRT_FILL_BUFFER_PATTERN = 0xFD
  190. const m__UCRT = 1
  191. const m__UI16_MAX = "0xffffu"
  192. const m__UI32_MAX = "0xffffffffu"
  193. const m__UI64_MAX = "0xffffffffffffffffull"
  194. const m__UI8_MAX = "0xffu"
  195. const m__USEDENTRY = 1
  196. const m__WConst_return = "_CONST_RETURN"
  197. const m__WIN32 = 1
  198. const m__WIN32_WINNT = 0xa00
  199. const m__WIN64 = 1
  200. const m__WRITE_ABORT_MSG = 0x1
  201. const m___ATOMIC_ACQUIRE = 2
  202. const m___ATOMIC_ACQ_REL = 4
  203. const m___ATOMIC_CONSUME = 1
  204. const m___ATOMIC_HLE_ACQUIRE = 65536
  205. const m___ATOMIC_HLE_RELEASE = 131072
  206. const m___ATOMIC_RELAXED = 0
  207. const m___ATOMIC_RELEASE = 3
  208. const m___ATOMIC_SEQ_CST = 5
  209. const m___BIGGEST_ALIGNMENT__ = 16
  210. const m___BYTE_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  211. const m___C89_NAMELESS = "__MINGW_EXTENSION"
  212. const m___CCGO__ = 1
  213. const m___CHAR_BIT__ = 8
  214. const m___CRTDECL = "__cdecl"
  215. const m___DBL_DECIMAL_DIG__ = 17
  216. const m___DBL_DIG__ = 15
  217. const m___DBL_HAS_DENORM__ = 1
  218. const m___DBL_HAS_INFINITY__ = 1
  219. const m___DBL_HAS_QUIET_NAN__ = 1
  220. const m___DBL_IS_IEC_60559__ = 2
  221. const m___DBL_MANT_DIG__ = 53
  222. const m___DBL_MAX_10_EXP__ = 308
  223. const m___DBL_MAX_EXP__ = 1024
  224. const m___DEC128_EPSILON__ = 1e-33
  225. const m___DEC128_MANT_DIG__ = 34
  226. const m___DEC128_MAX_EXP__ = 6145
  227. const m___DEC128_MAX__ = "9.999999999999999999999999999999999E6144"
  228. const m___DEC128_MIN__ = 1e-6143
  229. const m___DEC128_SUBNORMAL_MIN__ = 0.000000000000000000000000000000001e-6143
  230. const m___DEC32_EPSILON__ = 1e-6
  231. const m___DEC32_MANT_DIG__ = 7
  232. const m___DEC32_MAX_EXP__ = 97
  233. const m___DEC32_MAX__ = 9.999999e96
  234. const m___DEC32_MIN__ = 1e-95
  235. const m___DEC32_SUBNORMAL_MIN__ = 0.000001e-95
  236. const m___DEC64_EPSILON__ = 1e-15
  237. const m___DEC64_MANT_DIG__ = 16
  238. const m___DEC64_MAX_EXP__ = 385
  239. const m___DEC64_MAX__ = "9.999999999999999E384"
  240. const m___DEC64_MIN__ = 1e-383
  241. const m___DEC64_SUBNORMAL_MIN__ = 0.000000000000001e-383
  242. const m___DECIMAL_BID_FORMAT__ = 1
  243. const m___DECIMAL_DIG__ = 17
  244. const m___DEC_EVAL_METHOD__ = 2
  245. const m___FINITE_MATH_ONLY__ = 0
  246. const m___FLOAT_WORD_ORDER__ = "__ORDER_LITTLE_ENDIAN__"
  247. const m___FLT128_DECIMAL_DIG__ = 36
  248. const m___FLT128_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  249. const m___FLT128_DIG__ = 33
  250. const m___FLT128_EPSILON__ = 1.92592994438723585305597794258492732e-34
  251. const m___FLT128_HAS_DENORM__ = 1
  252. const m___FLT128_HAS_INFINITY__ = 1
  253. const m___FLT128_HAS_QUIET_NAN__ = 1
  254. const m___FLT128_IS_IEC_60559__ = 2
  255. const m___FLT128_MANT_DIG__ = 113
  256. const m___FLT128_MAX_10_EXP__ = 4932
  257. const m___FLT128_MAX_EXP__ = 16384
  258. const m___FLT128_MAX__ = "1.18973149535723176508575932662800702e+4932"
  259. const m___FLT128_MIN__ = 3.36210314311209350626267781732175260e-4932
  260. const m___FLT128_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  261. const m___FLT32X_DECIMAL_DIG__ = 17
  262. const m___FLT32X_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  263. const m___FLT32X_DIG__ = 15
  264. const m___FLT32X_EPSILON__ = 2.22044604925031308084726333618164062e-16
  265. const m___FLT32X_HAS_DENORM__ = 1
  266. const m___FLT32X_HAS_INFINITY__ = 1
  267. const m___FLT32X_HAS_QUIET_NAN__ = 1
  268. const m___FLT32X_IS_IEC_60559__ = 2
  269. const m___FLT32X_MANT_DIG__ = 53
  270. const m___FLT32X_MAX_10_EXP__ = 308
  271. const m___FLT32X_MAX_EXP__ = 1024
  272. const m___FLT32X_MAX__ = 1.79769313486231570814527423731704357e+308
  273. const m___FLT32X_MIN__ = 2.22507385850720138309023271733240406e-308
  274. const m___FLT32X_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  275. const m___FLT32_DECIMAL_DIG__ = 9
  276. const m___FLT32_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  277. const m___FLT32_DIG__ = 6
  278. const m___FLT32_EPSILON__ = 1.19209289550781250000000000000000000e-7
  279. const m___FLT32_HAS_DENORM__ = 1
  280. const m___FLT32_HAS_INFINITY__ = 1
  281. const m___FLT32_HAS_QUIET_NAN__ = 1
  282. const m___FLT32_IS_IEC_60559__ = 2
  283. const m___FLT32_MANT_DIG__ = 24
  284. const m___FLT32_MAX_10_EXP__ = 38
  285. const m___FLT32_MAX_EXP__ = 128
  286. const m___FLT32_MAX__ = 3.40282346638528859811704183484516925e+38
  287. const m___FLT32_MIN__ = 1.17549435082228750796873653722224568e-38
  288. const m___FLT32_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  289. const m___FLT64X_DECIMAL_DIG__ = 36
  290. const m___FLT64X_DENORM_MIN__ = 6.47517511943802511092443895822764655e-4966
  291. const m___FLT64X_DIG__ = 33
  292. const m___FLT64X_EPSILON__ = 1.92592994438723585305597794258492732e-34
  293. const m___FLT64X_HAS_DENORM__ = 1
  294. const m___FLT64X_HAS_INFINITY__ = 1
  295. const m___FLT64X_HAS_QUIET_NAN__ = 1
  296. const m___FLT64X_IS_IEC_60559__ = 2
  297. const m___FLT64X_MANT_DIG__ = 113
  298. const m___FLT64X_MAX_10_EXP__ = 4932
  299. const m___FLT64X_MAX_EXP__ = 16384
  300. const m___FLT64X_MAX__ = "1.18973149535723176508575932662800702e+4932"
  301. const m___FLT64X_MIN__ = 3.36210314311209350626267781732175260e-4932
  302. const m___FLT64X_NORM_MAX__ = "1.18973149535723176508575932662800702e+4932"
  303. const m___FLT64_DECIMAL_DIG__ = 17
  304. const m___FLT64_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  305. const m___FLT64_DIG__ = 15
  306. const m___FLT64_EPSILON__ = 2.22044604925031308084726333618164062e-16
  307. const m___FLT64_HAS_DENORM__ = 1
  308. const m___FLT64_HAS_INFINITY__ = 1
  309. const m___FLT64_HAS_QUIET_NAN__ = 1
  310. const m___FLT64_IS_IEC_60559__ = 2
  311. const m___FLT64_MANT_DIG__ = 53
  312. const m___FLT64_MAX_10_EXP__ = 308
  313. const m___FLT64_MAX_EXP__ = 1024
  314. const m___FLT64_MAX__ = 1.79769313486231570814527423731704357e+308
  315. const m___FLT64_MIN__ = 2.22507385850720138309023271733240406e-308
  316. const m___FLT64_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  317. const m___FLT_DECIMAL_DIG__ = 9
  318. const m___FLT_DENORM_MIN__ = 1.40129846432481707092372958328991613e-45
  319. const m___FLT_DIG__ = 6
  320. const m___FLT_EPSILON__ = 1.19209289550781250000000000000000000e-7
  321. const m___FLT_EVAL_METHOD_TS_18661_3__ = 2
  322. const m___FLT_EVAL_METHOD__ = 2
  323. const m___FLT_HAS_DENORM__ = 1
  324. const m___FLT_HAS_INFINITY__ = 1
  325. const m___FLT_HAS_QUIET_NAN__ = 1
  326. const m___FLT_IS_IEC_60559__ = 2
  327. const m___FLT_MANT_DIG__ = 24
  328. const m___FLT_MAX_10_EXP__ = 38
  329. const m___FLT_MAX_EXP__ = 128
  330. const m___FLT_MAX__ = 3.40282346638528859811704183484516925e+38
  331. const m___FLT_MIN__ = 1.17549435082228750796873653722224568e-38
  332. const m___FLT_NORM_MAX__ = 3.40282346638528859811704183484516925e+38
  333. const m___FLT_RADIX__ = 2
  334. const m___FUNCTION__ = "__func__"
  335. const m___FXSR__ = 1
  336. const m___GCC_ASM_FLAG_OUTPUTS__ = 1
  337. const m___GCC_ATOMIC_BOOL_LOCK_FREE = 2
  338. const m___GCC_ATOMIC_CHAR16_T_LOCK_FREE = 2
  339. const m___GCC_ATOMIC_CHAR32_T_LOCK_FREE = 2
  340. const m___GCC_ATOMIC_CHAR_LOCK_FREE = 2
  341. const m___GCC_ATOMIC_INT_LOCK_FREE = 2
  342. const m___GCC_ATOMIC_LLONG_LOCK_FREE = 2
  343. const m___GCC_ATOMIC_LONG_LOCK_FREE = 2
  344. const m___GCC_ATOMIC_POINTER_LOCK_FREE = 2
  345. const m___GCC_ATOMIC_SHORT_LOCK_FREE = 2
  346. const m___GCC_ATOMIC_TEST_AND_SET_TRUEVAL = 1
  347. const m___GCC_ATOMIC_WCHAR_T_LOCK_FREE = 2
  348. const m___GCC_CONSTRUCTIVE_SIZE = 64
  349. const m___GCC_DESTRUCTIVE_SIZE = 64
  350. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = 1
  351. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = 1
  352. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = 1
  353. const m___GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = 1
  354. const m___GCC_IEC_559 = 2
  355. const m___GCC_IEC_559_COMPLEX = 2
  356. const m___GNUC_EXECUTION_CHARSET_NAME = "UTF-8"
  357. const m___GNUC_MINOR__ = 0
  358. const m___GNUC_PATCHLEVEL__ = 0
  359. const m___GNUC_STDC_INLINE__ = 1
  360. const m___GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-16LE"
  361. const m___GNUC__ = 12
  362. const m___GNU_EXTENSION = "__MINGW_EXTENSION"
  363. const m___GOT_SECURE_LIB__ = "__STDC_SECURE_LIB__"
  364. const m___GXX_ABI_VERSION = 1017
  365. const m___GXX_MERGED_TYPEINFO_NAMES = 0
  366. const m___GXX_TYPEINFO_EQUALITY_INLINE = 0
  367. const m___HAVE_SPECULATION_SAFE_VALUE = 1
  368. const m___INT16_MAX__ = 0x7fff
  369. const m___INT32_MAX__ = 0x7fffffff
  370. const m___INT32_TYPE__ = "int"
  371. const m___INT64_MAX__ = 0x7fffffffffffffff
  372. const m___INT8_MAX__ = 0x7f
  373. const m___INTMAX_MAX__ = 0x7fffffffffffffff
  374. const m___INTMAX_WIDTH__ = 64
  375. const m___INTPTR_MAX__ = 0x7fffffffffffffff
  376. const m___INTPTR_WIDTH__ = 64
  377. const m___INT_FAST16_MAX__ = 0x7fff
  378. const m___INT_FAST16_WIDTH__ = 16
  379. const m___INT_FAST32_MAX__ = 0x7fffffff
  380. const m___INT_FAST32_TYPE__ = "int"
  381. const m___INT_FAST32_WIDTH__ = 32
  382. const m___INT_FAST64_MAX__ = 0x7fffffffffffffff
  383. const m___INT_FAST64_WIDTH__ = 64
  384. const m___INT_FAST8_MAX__ = 0x7f
  385. const m___INT_FAST8_WIDTH__ = 8
  386. const m___INT_LEAST16_MAX__ = 0x7fff
  387. const m___INT_LEAST16_WIDTH__ = 16
  388. const m___INT_LEAST32_MAX__ = 0x7fffffff
  389. const m___INT_LEAST32_TYPE__ = "int"
  390. const m___INT_LEAST32_WIDTH__ = 32
  391. const m___INT_LEAST64_MAX__ = 0x7fffffffffffffff
  392. const m___INT_LEAST64_WIDTH__ = 64
  393. const m___INT_LEAST8_MAX__ = 0x7f
  394. const m___INT_LEAST8_WIDTH__ = 8
  395. const m___INT_MAX__ = 0x7fffffff
  396. const m___INT_WIDTH__ = 32
  397. const m___LDBL_DECIMAL_DIG__ = 17
  398. const m___LDBL_DENORM_MIN__ = 4.94065645841246544176568792868221372e-324
  399. const m___LDBL_DIG__ = 15
  400. const m___LDBL_EPSILON__ = 2.22044604925031308084726333618164062e-16
  401. const m___LDBL_HAS_DENORM__ = 1
  402. const m___LDBL_HAS_INFINITY__ = 1
  403. const m___LDBL_HAS_QUIET_NAN__ = 1
  404. const m___LDBL_IS_IEC_60559__ = 2
  405. const m___LDBL_MANT_DIG__ = 53
  406. const m___LDBL_MAX_10_EXP__ = 308
  407. const m___LDBL_MAX_EXP__ = 1024
  408. const m___LDBL_MAX__ = 1.79769313486231570814527423731704357e+308
  409. const m___LDBL_MIN__ = 2.22507385850720138309023271733240406e-308
  410. const m___LDBL_NORM_MAX__ = 1.79769313486231570814527423731704357e+308
  411. const m___LONG32 = "long"
  412. const m___LONG_DOUBLE_64__ = 1
  413. const m___LONG_LONG_MAX__ = 0x7fffffffffffffff
  414. const m___LONG_LONG_WIDTH__ = 64
  415. const m___LONG_MAX__ = 0x7fffffff
  416. const m___LONG_WIDTH__ = 32
  417. const m___MINGW32_MAJOR_VERSION = 3
  418. const m___MINGW32_MINOR_VERSION = 11
  419. const m___MINGW32__ = 1
  420. const m___MINGW64_VERSION_BUGFIX = 0
  421. const m___MINGW64_VERSION_MAJOR = 10
  422. const m___MINGW64_VERSION_MINOR = 0
  423. const m___MINGW64_VERSION_RC = 0
  424. const m___MINGW64_VERSION_STATE = "alpha"
  425. const m___MINGW64__ = 1
  426. const m___MINGW_DEBUGBREAK_IMPL = 1
  427. const m___MINGW_FORTIFY_LEVEL = 0
  428. const m___MINGW_FORTIFY_VA_ARG = 0
  429. const m___MINGW_HAVE_ANSI_C99_PRINTF = 1
  430. const m___MINGW_HAVE_ANSI_C99_SCANF = 1
  431. const m___MINGW_HAVE_WIDE_C99_PRINTF = 1
  432. const m___MINGW_HAVE_WIDE_C99_SCANF = 1
  433. const m___MINGW_MSVC2005_DEPREC_STR = "This POSIX function is deprecated beginning in Visual C++ 2005, use _CRT_NONSTDC_NO_DEPRECATE to disable deprecation"
  434. const m___MINGW_SEC_WARN_STR = "This function or variable may be unsafe, use _CRT_SECURE_NO_WARNINGS to disable deprecation"
  435. const m___MINGW_USE_UNDERSCORE_PREFIX = 0
  436. const m___MSVCRT_VERSION__ = 0xE00
  437. const m___MSVCRT__ = 1
  438. const m___OPTIMIZE__ = 1
  439. const m___ORDER_BIG_ENDIAN__ = 4321
  440. const m___ORDER_LITTLE_ENDIAN__ = 1234
  441. const m___ORDER_PDP_ENDIAN__ = 3412
  442. const m___PIC__ = 1
  443. const m___PRAGMA_REDEFINE_EXTNAME = 1
  444. const m___PRETTY_FUNCTION__ = "__func__"
  445. const m___PTRDIFF_MAX__ = 0x7fffffffffffffff
  446. const m___PTRDIFF_WIDTH__ = 64
  447. const m___SCHAR_MAX__ = 0x7f
  448. const m___SCHAR_WIDTH__ = 8
  449. const m___SEG_FS = 1
  450. const m___SEG_GS = 1
  451. const m___SEH__ = 1
  452. const m___SHRT_MAX__ = 0x7fff
  453. const m___SHRT_WIDTH__ = 16
  454. const m___SIG_ATOMIC_MAX__ = 0x7fffffff
  455. const m___SIG_ATOMIC_TYPE__ = "int"
  456. const m___SIG_ATOMIC_WIDTH__ = 32
  457. const m___SIZEOF_DOUBLE__ = 8
  458. const m___SIZEOF_FLOAT128__ = 16
  459. const m___SIZEOF_FLOAT80__ = 16
  460. const m___SIZEOF_FLOAT__ = 4
  461. const m___SIZEOF_INT128__ = 16
  462. const m___SIZEOF_INT__ = 4
  463. const m___SIZEOF_LONG_DOUBLE__ = 8
  464. const m___SIZEOF_LONG_LONG__ = 8
  465. const m___SIZEOF_LONG__ = 4
  466. const m___SIZEOF_POINTER__ = 8
  467. const m___SIZEOF_PTRDIFF_T__ = 8
  468. const m___SIZEOF_SHORT__ = 2
  469. const m___SIZEOF_SIZE_T__ = 8
  470. const m___SIZEOF_WCHAR_T__ = 2
  471. const m___SIZEOF_WINT_T__ = 2
  472. const m___SIZE_MAX__ = "0xffffffffffffffffU"
  473. const m___SIZE_WIDTH__ = 64
  474. const m___STDC_HOSTED__ = 1
  475. const m___STDC_SECURE_LIB__ = 200411
  476. const m___STDC_UTF_16__ = 1
  477. const m___STDC_UTF_32__ = 1
  478. const m___STDC_VERSION__ = 201710
  479. const m___STDC__ = 1
  480. const m___UINT16_MAX__ = 0xffff
  481. const m___UINT32_MAX__ = 0xffffffff
  482. const m___UINT64_MAX__ = "0xffffffffffffffffU"
  483. const m___UINT8_MAX__ = 0xff
  484. const m___UINTMAX_MAX__ = "0xffffffffffffffffU"
  485. const m___UINTPTR_MAX__ = "0xffffffffffffffffU"
  486. const m___UINT_FAST16_MAX__ = 0xffff
  487. const m___UINT_FAST32_MAX__ = 0xffffffff
  488. const m___UINT_FAST64_MAX__ = "0xffffffffffffffffU"
  489. const m___UINT_FAST8_MAX__ = 0xff
  490. const m___UINT_LEAST16_MAX__ = 0xffff
  491. const m___UINT_LEAST32_MAX__ = 0xffffffff
  492. const m___UINT_LEAST64_MAX__ = "0xffffffffffffffffU"
  493. const m___UINT_LEAST8_MAX__ = 0xff
  494. const m___USE_MINGW_ANSI_STDIO = 0
  495. const m___VERSION__ = "12-win32"
  496. const m___WCHAR_MAX__ = 0xffff
  497. const m___WCHAR_MIN__ = 0
  498. const m___WCHAR_WIDTH__ = 16
  499. const m___WIN32 = 1
  500. const m___WIN32__ = 1
  501. const m___WIN64 = 1
  502. const m___WIN64__ = 1
  503. const m___WINNT = 1
  504. const m___WINNT__ = 1
  505. const m___WINT_MAX__ = 0xffff
  506. const m___WINT_MIN__ = 0
  507. const m___WINT_WIDTH__ = 16
  508. const m___amd64 = 1
  509. const m___amd64__ = 1
  510. const m___code_model_medium__ = 1
  511. const m___int16 = "short"
  512. const m___int32 = "int"
  513. const m___int8 = "char"
  514. const m___k8 = 1
  515. const m___k8__ = 1
  516. const m___mingw_bos_ovr = "__mingw_ovr"
  517. const m___pic__ = 1
  518. const m___x86_64 = 1
  519. const m___x86_64__ = 1
  520. const m__inline = "__inline"
  521. const m_environ = "_environ"
  522. const m_local = "static"
  523. const m_onexit_t = "_onexit_t"
  524. const m_sys_errlist = "_sys_errlist"
  525. const m_sys_nerr = "_sys_nerr"
  526. const m_wcswcs = "wcsstr"
  527. const m_z_off64_t = "z_off_t"
  528. const m_z_off_t = "long"
  529. const m_zmemcmp = "memcmp"
  530. const m_zmemcpy = "memcpy"
  531. type t__builtin_va_list = uintptr
  532. type t__predefined_size_t = uint64
  533. type t__predefined_wchar_t = uint16
  534. type t__predefined_ptrdiff_t = int64
  535. type t__gnuc_va_list = uintptr
  536. type Tva_list = uintptr
  537. type Tsize_t = uint64
  538. type Tssize_t = int64
  539. type Trsize_t = uint64
  540. type Tintptr_t = int64
  541. type Tuintptr_t = uint64
  542. type Tptrdiff_t = int64
  543. type Twchar_t = uint16
  544. type Twint_t = uint16
  545. type Twctype_t = uint16
  546. type Terrno_t = int32
  547. type t__time32_t = int32
  548. type t__time64_t = int64
  549. type Ttime_t = int64
  550. type Tthreadlocaleinfostruct = struct {
  551. F_locale_pctype uintptr
  552. F_locale_mb_cur_max int32
  553. F_locale_lc_codepage uint32
  554. }
  555. type Tpthreadlocinfo = uintptr
  556. type Tpthreadmbcinfo = uintptr
  557. type T_locale_tstruct = struct {
  558. Flocinfo Tpthreadlocinfo
  559. Fmbcinfo Tpthreadmbcinfo
  560. }
  561. type Tlocaleinfo_struct = T_locale_tstruct
  562. type T_locale_t = uintptr
  563. type TLC_ID = struct {
  564. FwLanguage uint16
  565. FwCountry uint16
  566. FwCodePage uint16
  567. }
  568. type TtagLC_ID = TLC_ID
  569. type TLPLC_ID = uintptr
  570. type Tthreadlocinfo = struct {
  571. F_locale_pctype uintptr
  572. F_locale_mb_cur_max int32
  573. F_locale_lc_codepage uint32
  574. }
  575. type Tmax_align_t = struct {
  576. F__max_align_ll int64
  577. F__max_align_ld float64
  578. }
  579. type Tz_size_t = uint64
  580. type TByte = uint8
  581. type TuInt = uint32
  582. type TuLong = uint32
  583. type TBytef = uint8
  584. type Tcharf = int8
  585. type Tintf = int32
  586. type TuIntf = uint32
  587. type TuLongf = uint32
  588. type Tvoidpc = uintptr
  589. type Tvoidpf = uintptr
  590. type Tvoidp = uintptr
  591. type Tz_crc_t = uint32
  592. type T_ino_t = uint16
  593. type Tino_t = uint16
  594. type T_dev_t = uint32
  595. type Tdev_t = uint32
  596. type T_pid_t = int64
  597. type Tpid_t = int64
  598. type T_mode_t = uint16
  599. type Tmode_t = uint16
  600. type T_off_t = int32
  601. type Toff32_t = int32
  602. type T_off64_t = int64
  603. type Toff64_t = int64
  604. type Toff_t = int32
  605. type Tuseconds_t = uint32
  606. type Ttimespec = struct {
  607. Ftv_sec Ttime_t
  608. Ftv_nsec int32
  609. }
  610. type Titimerspec = struct {
  611. Fit_interval Ttimespec
  612. Fit_value Ttimespec
  613. }
  614. type T_sigset_t = uint64
  615. type Talloc_func = uintptr
  616. type Tfree_func = uintptr
  617. type Tz_stream = struct {
  618. Fnext_in uintptr
  619. Favail_in TuInt
  620. Ftotal_in TuLong
  621. Fnext_out uintptr
  622. Favail_out TuInt
  623. Ftotal_out TuLong
  624. Fmsg uintptr
  625. Fstate uintptr
  626. Fzalloc Talloc_func
  627. Fzfree Tfree_func
  628. Fopaque Tvoidpf
  629. Fdata_type int32
  630. Fadler TuLong
  631. Freserved TuLong
  632. }
  633. type Tz_stream_s = Tz_stream
  634. type Tz_streamp = uintptr
  635. type Tgz_header = struct {
  636. Ftext int32
  637. Ftime TuLong
  638. Fxflags int32
  639. Fos int32
  640. Fextra uintptr
  641. Fextra_len TuInt
  642. Fextra_max TuInt
  643. Fname uintptr
  644. Fname_max TuInt
  645. Fcomment uintptr
  646. Fcomm_max TuInt
  647. Fhcrc int32
  648. Fdone int32
  649. }
  650. type Tgz_header_s = Tgz_header
  651. type Tgz_headerp = uintptr
  652. type Tin_func = uintptr
  653. type Tout_func = uintptr
  654. type TgzFile = uintptr
  655. type TgzFile_s = struct {
  656. Fhave uint32
  657. Fnext uintptr
  658. Fpos int32
  659. }
  660. type T_onexit_t = uintptr
  661. type Tdiv_t = struct {
  662. Fquot int32
  663. Frem int32
  664. }
  665. type T_div_t = Tdiv_t
  666. type Tldiv_t = struct {
  667. Fquot int32
  668. Frem int32
  669. }
  670. type T_ldiv_t = Tldiv_t
  671. type T_LDOUBLE = struct {
  672. Fld [10]uint8
  673. }
  674. type T_CRT_DOUBLE = struct {
  675. Fx float64
  676. }
  677. type T_CRT_FLOAT = struct {
  678. Ff float32
  679. }
  680. type T_LONGDOUBLE = struct {
  681. Fx float64
  682. }
  683. type T_LDBL12 = struct {
  684. Fld12 [12]uint8
  685. }
  686. type T_purecall_handler = uintptr
  687. type T_invalid_parameter_handler = uintptr
  688. type Tlldiv_t = struct {
  689. Fquot int64
  690. Frem int64
  691. }
  692. type T_HEAPINFO = struct {
  693. F_pentry uintptr
  694. F_size Tsize_t
  695. F_useflag int32
  696. }
  697. type T_heapinfo = T_HEAPINFO
  698. type Tuch = uint8
  699. type Tuchf = uint8
  700. type Tush = uint16
  701. type Tushf = uint16
  702. type Tulg = uint32
  703. /* Reverse the bytes in a 32-bit value */
  704. /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
  705. /* use NO_DIVIDE if your processor does not do division in hardware --
  706. try it both ways to see which is faster */
  707. // C documentation
  708. //
  709. // /* ========================================================================= */
  710. func Xadler32_z(tls *libc.TLS, adler TuLong, buf uintptr, len1 Tz_size_t) (r TuLong) {
  711. var n, sum2, v3 uint32
  712. var v1, v5 Tz_size_t
  713. var v2, v6 uintptr
  714. _, _, _, _, _, _, _ = n, sum2, v1, v2, v3, v5, v6
  715. /* split Adler-32 into component sums */
  716. sum2 = adler >> libc.Int32FromInt32(16) & uint32(0xffff)
  717. adler &= uint32(0xffff)
  718. /* in case user likes doing a byte at a time, keep it fast */
  719. if len1 == uint64(1) {
  720. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  721. if adler >= uint32(65521) {
  722. adler -= uint32(65521)
  723. }
  724. sum2 += adler
  725. if sum2 >= uint32(65521) {
  726. sum2 -= uint32(65521)
  727. }
  728. return adler | sum2<<int32(16)
  729. }
  730. /* initial Adler-32 value (deferred check for len == 1 speed) */
  731. if buf == uintptr(m_Z_NULL) {
  732. return uint32(1)
  733. }
  734. /* in case short lengths are provided, keep it somewhat fast */
  735. if len1 < uint64(16) {
  736. for {
  737. v1 = len1
  738. len1--
  739. if !(v1 != 0) {
  740. break
  741. }
  742. v2 = buf
  743. buf++
  744. adler += uint32(*(*TBytef)(unsafe.Pointer(v2)))
  745. sum2 += adler
  746. }
  747. if adler >= uint32(65521) {
  748. adler -= uint32(65521)
  749. }
  750. sum2 %= uint32(65521) /* only added so many BASE's */
  751. return adler | sum2<<int32(16)
  752. }
  753. /* do length NMAX blocks -- requires just one modulo operation */
  754. for len1 >= uint64(m_NMAX) {
  755. len1 -= uint64(m_NMAX)
  756. n = uint32(libc.Int32FromInt32(m_NMAX) / libc.Int32FromInt32(16)) /* NMAX is divisible by 16 */
  757. for {
  758. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  759. sum2 += adler
  760. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  761. sum2 += adler
  762. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  763. sum2 += adler
  764. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  765. sum2 += adler
  766. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  767. sum2 += adler
  768. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  769. sum2 += adler
  770. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  771. sum2 += adler
  772. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  773. sum2 += adler
  774. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + 8)))
  775. sum2 += adler
  776. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  777. sum2 += adler
  778. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  779. sum2 += adler
  780. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  781. sum2 += adler
  782. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  783. sum2 += adler
  784. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  785. sum2 += adler
  786. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  787. sum2 += adler
  788. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  789. sum2 += adler /* 16 sums unrolled */
  790. buf += uintptr(16)
  791. goto _4
  792. _4:
  793. ;
  794. n--
  795. v3 = n
  796. if !(v3 != 0) {
  797. break
  798. }
  799. }
  800. adler %= uint32(65521)
  801. sum2 %= uint32(65521)
  802. }
  803. /* do remaining bytes (less than NMAX, still just one modulo) */
  804. if len1 != 0 { /* avoid modulos if none remaining */
  805. for len1 >= uint64(16) {
  806. len1 -= uint64(16)
  807. adler += uint32(*(*TBytef)(unsafe.Pointer(buf)))
  808. sum2 += adler
  809. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(1)))))
  810. sum2 += adler
  811. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)))))
  812. sum2 += adler
  813. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  814. sum2 += adler
  815. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)))))
  816. sum2 += adler
  817. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  818. sum2 += adler
  819. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  820. sum2 += adler
  821. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(0)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  822. sum2 += adler
  823. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + 8)))
  824. sum2 += adler
  825. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(1)))))
  826. sum2 += adler
  827. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)))))
  828. sum2 += adler
  829. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  830. sum2 += adler
  831. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)))))
  832. sum2 += adler
  833. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(1)))))
  834. sum2 += adler
  835. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)))))
  836. sum2 += adler
  837. adler += uint32(*(*TBytef)(unsafe.Pointer(buf + uintptr(libc.Int32FromInt32(8)+libc.Int32FromInt32(4)+libc.Int32FromInt32(2)+libc.Int32FromInt32(1)))))
  838. sum2 += adler
  839. buf += uintptr(16)
  840. }
  841. for {
  842. v5 = len1
  843. len1--
  844. if !(v5 != 0) {
  845. break
  846. }
  847. v6 = buf
  848. buf++
  849. adler += uint32(*(*TBytef)(unsafe.Pointer(v6)))
  850. sum2 += adler
  851. }
  852. adler %= uint32(65521)
  853. sum2 %= uint32(65521)
  854. }
  855. /* return recombined sums */
  856. return adler | sum2<<int32(16)
  857. }
  858. // C documentation
  859. //
  860. // /* ========================================================================= */
  861. func Xadler32(tls *libc.TLS, adler TuLong, buf uintptr, len1 TuInt) (r TuLong) {
  862. return Xadler32_z(tls, adler, buf, uint64(len1))
  863. }
  864. // C documentation
  865. //
  866. // /* ========================================================================= */
  867. func _adler32_combine_(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 int32) (r TuLong) {
  868. var rem, sum1, sum2 uint32
  869. _, _, _ = rem, sum1, sum2
  870. /* for negative len, return invalid adler32 as a clue for debugging */
  871. if len2 < 0 {
  872. return uint32(0xffffffff)
  873. }
  874. /* the derivation of this formula is left as an exercise for the reader */
  875. len2 = int32(uint32(len2) % libc.Uint32FromUint32(65521)) /* assumes len2 >= 0 */
  876. rem = uint32(len2)
  877. sum1 = adler1 & uint32(0xffff)
  878. sum2 = rem * sum1
  879. sum2 %= uint32(65521)
  880. sum1 += adler2&uint32(0xffff) + uint32(65521) - uint32(1)
  881. sum2 += adler1>>libc.Int32FromInt32(16)&uint32(0xffff) + adler2>>libc.Int32FromInt32(16)&uint32(0xffff) + uint32(65521) - rem
  882. if sum1 >= uint32(65521) {
  883. sum1 -= uint32(65521)
  884. }
  885. if sum1 >= uint32(65521) {
  886. sum1 -= uint32(65521)
  887. }
  888. if sum2 >= libc.Uint32FromUint32(65521)<<libc.Int32FromInt32(1) {
  889. sum2 -= libc.Uint32FromUint32(65521) << libc.Int32FromInt32(1)
  890. }
  891. if sum2 >= uint32(65521) {
  892. sum2 -= uint32(65521)
  893. }
  894. return sum1 | sum2<<int32(16)
  895. }
  896. // C documentation
  897. //
  898. // /* ========================================================================= */
  899. func Xadler32_combine(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 int32) (r TuLong) {
  900. return _adler32_combine_(tls, adler1, adler2, len2)
  901. }
  902. func Xadler32_combine64(tls *libc.TLS, adler1 TuLong, adler2 TuLong, len2 int32) (r TuLong) {
  903. return _adler32_combine_(tls, adler1, adler2, len2)
  904. }
  905. // C documentation
  906. //
  907. // /* ===========================================================================
  908. // Compresses the source buffer into the destination buffer. The level
  909. // parameter has the same meaning as in deflateInit. sourceLen is the byte
  910. // length of the source buffer. Upon entry, destLen is the total size of the
  911. // destination buffer, which must be at least 0.1% larger than sourceLen plus
  912. // 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
  913. //
  914. // compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
  915. // memory, Z_BUF_ERROR if there was not enough room in the output buffer,
  916. // Z_STREAM_ERROR if the level parameter is invalid.
  917. // */
  918. func Xcompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong, level int32) (r int32) {
  919. bp := tls.Alloc(96)
  920. defer tls.Free(96)
  921. var err, v3, v4 int32
  922. var left TuLong
  923. var max TuInt
  924. var v1, v2 uint32
  925. var _ /* stream at bp+0 */ Tz_stream
  926. _, _, _, _, _, _, _ = err, left, max, v1, v2, v3, v4
  927. max = uint32(-libc.Int32FromInt32(1))
  928. left = *(*TuLongf)(unsafe.Pointer(destLen))
  929. *(*TuLongf)(unsafe.Pointer(destLen)) = uint32(0)
  930. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  931. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  932. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  933. err = XdeflateInit_(tls, bp, level, __ccgo_ts, libc.Int32FromInt64(88))
  934. if err != m_Z_OK {
  935. return err
  936. }
  937. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  938. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  939. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  940. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  941. for cond := true; cond; cond = err == m_Z_OK {
  942. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  943. if left > max {
  944. v1 = max
  945. } else {
  946. v1 = left
  947. }
  948. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  949. left -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out
  950. }
  951. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  952. if sourceLen > max {
  953. v2 = max
  954. } else {
  955. v2 = sourceLen
  956. }
  957. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  958. sourceLen -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  959. }
  960. if sourceLen != 0 {
  961. v3 = m_Z_NO_FLUSH
  962. } else {
  963. v3 = int32(m_Z_FINISH)
  964. }
  965. err = Xdeflate(tls, bp, v3)
  966. }
  967. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  968. XdeflateEnd(tls, bp)
  969. if err == int32(m_Z_STREAM_END) {
  970. v4 = m_Z_OK
  971. } else {
  972. v4 = err
  973. }
  974. return v4
  975. }
  976. // C documentation
  977. //
  978. // /* ===========================================================================
  979. // */
  980. func Xcompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen TuLong) (r int32) {
  981. return Xcompress2(tls, dest, destLen, source, sourceLen, -int32(1))
  982. }
  983. // C documentation
  984. //
  985. // /* ===========================================================================
  986. // If the default memLevel or windowBits for deflateInit() is changed, then
  987. // this function needs to be updated.
  988. // */
  989. func XcompressBound(tls *libc.TLS, sourceLen TuLong) (r TuLong) {
  990. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint32(13)
  991. }
  992. const m_N = 5
  993. const m_POLY = 3988292384
  994. const m_W = 8
  995. /* Reverse the bytes in a 32-bit value */
  996. /*
  997. A CRC of a message is computed on N braids of words in the message, where
  998. each word consists of W bytes (4 or 8). If N is 3, for example, then three
  999. running sparse CRCs are calculated respectively on each braid, at these
  1000. indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ...
  1001. This is done starting at a word boundary, and continues until as many blocks
  1002. of N * W bytes as are available have been processed. The results are combined
  1003. into a single CRC at the end. For this code, N must be in the range 1..6 and
  1004. W must be 4 or 8. The upper limit on N can be increased if desired by adding
  1005. more #if blocks, extending the patterns apparent in the code. In addition,
  1006. crc32.h would need to be regenerated, if the maximum N value is increased.
  1007. N and W are chosen empirically by benchmarking the execution time on a given
  1008. processor. The choices for N and W below were based on testing on Intel Kaby
  1009. Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64
  1010. Octeon II processors. The Intel, AMD, and ARM processors were all fastest
  1011. with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4.
  1012. They were all tested with either gcc or clang, all using the -O3 optimization
  1013. level. Your mileage may vary.
  1014. */
  1015. /* Define N */
  1016. /*
  1017. z_crc_t must be at least 32 bits. z_word_t must be at least as long as
  1018. z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and
  1019. that bytes are eight bits.
  1020. */
  1021. // C documentation
  1022. //
  1023. // /*
  1024. // Define W and the associated z_word_t type. If W is not defined, then a
  1025. // braided calculation is not used, and the associated tables and code are not
  1026. // compiled.
  1027. // */
  1028. type Tz_word_t = uint64
  1029. /* If available, use the ARM processor CRC32 instruction. */
  1030. // C documentation
  1031. //
  1032. // /*
  1033. // Swap the bytes in a z_word_t to convert between little and big endian. Any
  1034. // self-respecting compiler will optimize this to a single machine byte-swap
  1035. // instruction, if one is available. This assumes that word_t is either 32 bits
  1036. // or 64 bits.
  1037. // */
  1038. func _byte_swap(tls *libc.TLS, word Tz_word_t) (r Tz_word_t) {
  1039. return word&uint64(0xff00000000000000)>>int32(56) | word&uint64(0xff000000000000)>>int32(40) | word&uint64(0xff0000000000)>>int32(24) | word&uint64(0xff00000000)>>int32(8) | word&uint64(0xff000000)<<int32(8) | word&uint64(0xff0000)<<int32(24) | word&uint64(0xff00)<<int32(40) | word&uint64(0xff)<<int32(56)
  1040. }
  1041. var _crc_table = [256]Tz_crc_t{
  1042. 1: uint32(0x77073096),
  1043. 2: uint32(0xee0e612c),
  1044. 3: uint32(0x990951ba),
  1045. 4: uint32(0x076dc419),
  1046. 5: uint32(0x706af48f),
  1047. 6: uint32(0xe963a535),
  1048. 7: uint32(0x9e6495a3),
  1049. 8: uint32(0x0edb8832),
  1050. 9: uint32(0x79dcb8a4),
  1051. 10: uint32(0xe0d5e91e),
  1052. 11: uint32(0x97d2d988),
  1053. 12: uint32(0x09b64c2b),
  1054. 13: uint32(0x7eb17cbd),
  1055. 14: uint32(0xe7b82d07),
  1056. 15: uint32(0x90bf1d91),
  1057. 16: uint32(0x1db71064),
  1058. 17: uint32(0x6ab020f2),
  1059. 18: uint32(0xf3b97148),
  1060. 19: uint32(0x84be41de),
  1061. 20: uint32(0x1adad47d),
  1062. 21: uint32(0x6ddde4eb),
  1063. 22: uint32(0xf4d4b551),
  1064. 23: uint32(0x83d385c7),
  1065. 24: uint32(0x136c9856),
  1066. 25: uint32(0x646ba8c0),
  1067. 26: uint32(0xfd62f97a),
  1068. 27: uint32(0x8a65c9ec),
  1069. 28: uint32(0x14015c4f),
  1070. 29: uint32(0x63066cd9),
  1071. 30: uint32(0xfa0f3d63),
  1072. 31: uint32(0x8d080df5),
  1073. 32: uint32(0x3b6e20c8),
  1074. 33: uint32(0x4c69105e),
  1075. 34: uint32(0xd56041e4),
  1076. 35: uint32(0xa2677172),
  1077. 36: uint32(0x3c03e4d1),
  1078. 37: uint32(0x4b04d447),
  1079. 38: uint32(0xd20d85fd),
  1080. 39: uint32(0xa50ab56b),
  1081. 40: uint32(0x35b5a8fa),
  1082. 41: uint32(0x42b2986c),
  1083. 42: uint32(0xdbbbc9d6),
  1084. 43: uint32(0xacbcf940),
  1085. 44: uint32(0x32d86ce3),
  1086. 45: uint32(0x45df5c75),
  1087. 46: uint32(0xdcd60dcf),
  1088. 47: uint32(0xabd13d59),
  1089. 48: uint32(0x26d930ac),
  1090. 49: uint32(0x51de003a),
  1091. 50: uint32(0xc8d75180),
  1092. 51: uint32(0xbfd06116),
  1093. 52: uint32(0x21b4f4b5),
  1094. 53: uint32(0x56b3c423),
  1095. 54: uint32(0xcfba9599),
  1096. 55: uint32(0xb8bda50f),
  1097. 56: uint32(0x2802b89e),
  1098. 57: uint32(0x5f058808),
  1099. 58: uint32(0xc60cd9b2),
  1100. 59: uint32(0xb10be924),
  1101. 60: uint32(0x2f6f7c87),
  1102. 61: uint32(0x58684c11),
  1103. 62: uint32(0xc1611dab),
  1104. 63: uint32(0xb6662d3d),
  1105. 64: uint32(0x76dc4190),
  1106. 65: uint32(0x01db7106),
  1107. 66: uint32(0x98d220bc),
  1108. 67: uint32(0xefd5102a),
  1109. 68: uint32(0x71b18589),
  1110. 69: uint32(0x06b6b51f),
  1111. 70: uint32(0x9fbfe4a5),
  1112. 71: uint32(0xe8b8d433),
  1113. 72: uint32(0x7807c9a2),
  1114. 73: uint32(0x0f00f934),
  1115. 74: uint32(0x9609a88e),
  1116. 75: uint32(0xe10e9818),
  1117. 76: uint32(0x7f6a0dbb),
  1118. 77: uint32(0x086d3d2d),
  1119. 78: uint32(0x91646c97),
  1120. 79: uint32(0xe6635c01),
  1121. 80: uint32(0x6b6b51f4),
  1122. 81: uint32(0x1c6c6162),
  1123. 82: uint32(0x856530d8),
  1124. 83: uint32(0xf262004e),
  1125. 84: uint32(0x6c0695ed),
  1126. 85: uint32(0x1b01a57b),
  1127. 86: uint32(0x8208f4c1),
  1128. 87: uint32(0xf50fc457),
  1129. 88: uint32(0x65b0d9c6),
  1130. 89: uint32(0x12b7e950),
  1131. 90: uint32(0x8bbeb8ea),
  1132. 91: uint32(0xfcb9887c),
  1133. 92: uint32(0x62dd1ddf),
  1134. 93: uint32(0x15da2d49),
  1135. 94: uint32(0x8cd37cf3),
  1136. 95: uint32(0xfbd44c65),
  1137. 96: uint32(0x4db26158),
  1138. 97: uint32(0x3ab551ce),
  1139. 98: uint32(0xa3bc0074),
  1140. 99: uint32(0xd4bb30e2),
  1141. 100: uint32(0x4adfa541),
  1142. 101: uint32(0x3dd895d7),
  1143. 102: uint32(0xa4d1c46d),
  1144. 103: uint32(0xd3d6f4fb),
  1145. 104: uint32(0x4369e96a),
  1146. 105: uint32(0x346ed9fc),
  1147. 106: uint32(0xad678846),
  1148. 107: uint32(0xda60b8d0),
  1149. 108: uint32(0x44042d73),
  1150. 109: uint32(0x33031de5),
  1151. 110: uint32(0xaa0a4c5f),
  1152. 111: uint32(0xdd0d7cc9),
  1153. 112: uint32(0x5005713c),
  1154. 113: uint32(0x270241aa),
  1155. 114: uint32(0xbe0b1010),
  1156. 115: uint32(0xc90c2086),
  1157. 116: uint32(0x5768b525),
  1158. 117: uint32(0x206f85b3),
  1159. 118: uint32(0xb966d409),
  1160. 119: uint32(0xce61e49f),
  1161. 120: uint32(0x5edef90e),
  1162. 121: uint32(0x29d9c998),
  1163. 122: uint32(0xb0d09822),
  1164. 123: uint32(0xc7d7a8b4),
  1165. 124: uint32(0x59b33d17),
  1166. 125: uint32(0x2eb40d81),
  1167. 126: uint32(0xb7bd5c3b),
  1168. 127: uint32(0xc0ba6cad),
  1169. 128: uint32(0xedb88320),
  1170. 129: uint32(0x9abfb3b6),
  1171. 130: uint32(0x03b6e20c),
  1172. 131: uint32(0x74b1d29a),
  1173. 132: uint32(0xead54739),
  1174. 133: uint32(0x9dd277af),
  1175. 134: uint32(0x04db2615),
  1176. 135: uint32(0x73dc1683),
  1177. 136: uint32(0xe3630b12),
  1178. 137: uint32(0x94643b84),
  1179. 138: uint32(0x0d6d6a3e),
  1180. 139: uint32(0x7a6a5aa8),
  1181. 140: uint32(0xe40ecf0b),
  1182. 141: uint32(0x9309ff9d),
  1183. 142: uint32(0x0a00ae27),
  1184. 143: uint32(0x7d079eb1),
  1185. 144: uint32(0xf00f9344),
  1186. 145: uint32(0x8708a3d2),
  1187. 146: uint32(0x1e01f268),
  1188. 147: uint32(0x6906c2fe),
  1189. 148: uint32(0xf762575d),
  1190. 149: uint32(0x806567cb),
  1191. 150: uint32(0x196c3671),
  1192. 151: uint32(0x6e6b06e7),
  1193. 152: uint32(0xfed41b76),
  1194. 153: uint32(0x89d32be0),
  1195. 154: uint32(0x10da7a5a),
  1196. 155: uint32(0x67dd4acc),
  1197. 156: uint32(0xf9b9df6f),
  1198. 157: uint32(0x8ebeeff9),
  1199. 158: uint32(0x17b7be43),
  1200. 159: uint32(0x60b08ed5),
  1201. 160: uint32(0xd6d6a3e8),
  1202. 161: uint32(0xa1d1937e),
  1203. 162: uint32(0x38d8c2c4),
  1204. 163: uint32(0x4fdff252),
  1205. 164: uint32(0xd1bb67f1),
  1206. 165: uint32(0xa6bc5767),
  1207. 166: uint32(0x3fb506dd),
  1208. 167: uint32(0x48b2364b),
  1209. 168: uint32(0xd80d2bda),
  1210. 169: uint32(0xaf0a1b4c),
  1211. 170: uint32(0x36034af6),
  1212. 171: uint32(0x41047a60),
  1213. 172: uint32(0xdf60efc3),
  1214. 173: uint32(0xa867df55),
  1215. 174: uint32(0x316e8eef),
  1216. 175: uint32(0x4669be79),
  1217. 176: uint32(0xcb61b38c),
  1218. 177: uint32(0xbc66831a),
  1219. 178: uint32(0x256fd2a0),
  1220. 179: uint32(0x5268e236),
  1221. 180: uint32(0xcc0c7795),
  1222. 181: uint32(0xbb0b4703),
  1223. 182: uint32(0x220216b9),
  1224. 183: uint32(0x5505262f),
  1225. 184: uint32(0xc5ba3bbe),
  1226. 185: uint32(0xb2bd0b28),
  1227. 186: uint32(0x2bb45a92),
  1228. 187: uint32(0x5cb36a04),
  1229. 188: uint32(0xc2d7ffa7),
  1230. 189: uint32(0xb5d0cf31),
  1231. 190: uint32(0x2cd99e8b),
  1232. 191: uint32(0x5bdeae1d),
  1233. 192: uint32(0x9b64c2b0),
  1234. 193: uint32(0xec63f226),
  1235. 194: uint32(0x756aa39c),
  1236. 195: uint32(0x026d930a),
  1237. 196: uint32(0x9c0906a9),
  1238. 197: uint32(0xeb0e363f),
  1239. 198: uint32(0x72076785),
  1240. 199: uint32(0x05005713),
  1241. 200: uint32(0x95bf4a82),
  1242. 201: uint32(0xe2b87a14),
  1243. 202: uint32(0x7bb12bae),
  1244. 203: uint32(0x0cb61b38),
  1245. 204: uint32(0x92d28e9b),
  1246. 205: uint32(0xe5d5be0d),
  1247. 206: uint32(0x7cdcefb7),
  1248. 207: uint32(0x0bdbdf21),
  1249. 208: uint32(0x86d3d2d4),
  1250. 209: uint32(0xf1d4e242),
  1251. 210: uint32(0x68ddb3f8),
  1252. 211: uint32(0x1fda836e),
  1253. 212: uint32(0x81be16cd),
  1254. 213: uint32(0xf6b9265b),
  1255. 214: uint32(0x6fb077e1),
  1256. 215: uint32(0x18b74777),
  1257. 216: uint32(0x88085ae6),
  1258. 217: uint32(0xff0f6a70),
  1259. 218: uint32(0x66063bca),
  1260. 219: uint32(0x11010b5c),
  1261. 220: uint32(0x8f659eff),
  1262. 221: uint32(0xf862ae69),
  1263. 222: uint32(0x616bffd3),
  1264. 223: uint32(0x166ccf45),
  1265. 224: uint32(0xa00ae278),
  1266. 225: uint32(0xd70dd2ee),
  1267. 226: uint32(0x4e048354),
  1268. 227: uint32(0x3903b3c2),
  1269. 228: uint32(0xa7672661),
  1270. 229: uint32(0xd06016f7),
  1271. 230: uint32(0x4969474d),
  1272. 231: uint32(0x3e6e77db),
  1273. 232: uint32(0xaed16a4a),
  1274. 233: uint32(0xd9d65adc),
  1275. 234: uint32(0x40df0b66),
  1276. 235: uint32(0x37d83bf0),
  1277. 236: uint32(0xa9bcae53),
  1278. 237: uint32(0xdebb9ec5),
  1279. 238: uint32(0x47b2cf7f),
  1280. 239: uint32(0x30b5ffe9),
  1281. 240: uint32(0xbdbdf21c),
  1282. 241: uint32(0xcabac28a),
  1283. 242: uint32(0x53b39330),
  1284. 243: uint32(0x24b4a3a6),
  1285. 244: uint32(0xbad03605),
  1286. 245: uint32(0xcdd70693),
  1287. 246: uint32(0x54de5729),
  1288. 247: uint32(0x23d967bf),
  1289. 248: uint32(0xb3667a2e),
  1290. 249: uint32(0xc4614ab8),
  1291. 250: uint32(0x5d681b02),
  1292. 251: uint32(0x2a6f2b94),
  1293. 252: uint32(0xb40bbe37),
  1294. 253: uint32(0xc30c8ea1),
  1295. 254: uint32(0x5a05df1b),
  1296. 255: uint32(0x2d02ef8d),
  1297. }
  1298. var _crc_big_table = [256]Tz_word_t{
  1299. 1: uint64(0x9630077700000000),
  1300. 2: uint64(0x2c610eee00000000),
  1301. 3: uint64(0xba51099900000000),
  1302. 4: uint64(0x19c46d0700000000),
  1303. 5: uint64(0x8ff46a7000000000),
  1304. 6: uint64(0x35a563e900000000),
  1305. 7: uint64(0xa395649e00000000),
  1306. 8: uint64(0x3288db0e00000000),
  1307. 9: uint64(0xa4b8dc7900000000),
  1308. 10: uint64(0x1ee9d5e000000000),
  1309. 11: uint64(0x88d9d29700000000),
  1310. 12: uint64(0x2b4cb60900000000),
  1311. 13: uint64(0xbd7cb17e00000000),
  1312. 14: uint64(0x072db8e700000000),
  1313. 15: uint64(0x911dbf9000000000),
  1314. 16: uint64(0x6410b71d00000000),
  1315. 17: uint64(0xf220b06a00000000),
  1316. 18: uint64(0x4871b9f300000000),
  1317. 19: uint64(0xde41be8400000000),
  1318. 20: uint64(0x7dd4da1a00000000),
  1319. 21: uint64(0xebe4dd6d00000000),
  1320. 22: uint64(0x51b5d4f400000000),
  1321. 23: uint64(0xc785d38300000000),
  1322. 24: uint64(0x56986c1300000000),
  1323. 25: uint64(0xc0a86b6400000000),
  1324. 26: uint64(0x7af962fd00000000),
  1325. 27: uint64(0xecc9658a00000000),
  1326. 28: uint64(0x4f5c011400000000),
  1327. 29: uint64(0xd96c066300000000),
  1328. 30: uint64(0x633d0ffa00000000),
  1329. 31: uint64(0xf50d088d00000000),
  1330. 32: uint64(0xc8206e3b00000000),
  1331. 33: uint64(0x5e10694c00000000),
  1332. 34: uint64(0xe44160d500000000),
  1333. 35: uint64(0x727167a200000000),
  1334. 36: uint64(0xd1e4033c00000000),
  1335. 37: uint64(0x47d4044b00000000),
  1336. 38: uint64(0xfd850dd200000000),
  1337. 39: uint64(0x6bb50aa500000000),
  1338. 40: uint64(0xfaa8b53500000000),
  1339. 41: uint64(0x6c98b24200000000),
  1340. 42: uint64(0xd6c9bbdb00000000),
  1341. 43: uint64(0x40f9bcac00000000),
  1342. 44: uint64(0xe36cd83200000000),
  1343. 45: uint64(0x755cdf4500000000),
  1344. 46: uint64(0xcf0dd6dc00000000),
  1345. 47: uint64(0x593dd1ab00000000),
  1346. 48: uint64(0xac30d92600000000),
  1347. 49: uint64(0x3a00de5100000000),
  1348. 50: uint64(0x8051d7c800000000),
  1349. 51: uint64(0x1661d0bf00000000),
  1350. 52: uint64(0xb5f4b42100000000),
  1351. 53: uint64(0x23c4b35600000000),
  1352. 54: uint64(0x9995bacf00000000),
  1353. 55: uint64(0x0fa5bdb800000000),
  1354. 56: uint64(0x9eb8022800000000),
  1355. 57: uint64(0x0888055f00000000),
  1356. 58: uint64(0xb2d90cc600000000),
  1357. 59: uint64(0x24e90bb100000000),
  1358. 60: uint64(0x877c6f2f00000000),
  1359. 61: uint64(0x114c685800000000),
  1360. 62: uint64(0xab1d61c100000000),
  1361. 63: uint64(0x3d2d66b600000000),
  1362. 64: uint64(0x9041dc7600000000),
  1363. 65: uint64(0x0671db0100000000),
  1364. 66: uint64(0xbc20d29800000000),
  1365. 67: uint64(0x2a10d5ef00000000),
  1366. 68: uint64(0x8985b17100000000),
  1367. 69: uint64(0x1fb5b60600000000),
  1368. 70: uint64(0xa5e4bf9f00000000),
  1369. 71: uint64(0x33d4b8e800000000),
  1370. 72: uint64(0xa2c9077800000000),
  1371. 73: uint64(0x34f9000f00000000),
  1372. 74: uint64(0x8ea8099600000000),
  1373. 75: uint64(0x18980ee100000000),
  1374. 76: uint64(0xbb0d6a7f00000000),
  1375. 77: uint64(0x2d3d6d0800000000),
  1376. 78: uint64(0x976c649100000000),
  1377. 79: uint64(0x015c63e600000000),
  1378. 80: uint64(0xf4516b6b00000000),
  1379. 81: uint64(0x62616c1c00000000),
  1380. 82: uint64(0xd830658500000000),
  1381. 83: uint64(0x4e0062f200000000),
  1382. 84: uint64(0xed95066c00000000),
  1383. 85: uint64(0x7ba5011b00000000),
  1384. 86: uint64(0xc1f4088200000000),
  1385. 87: uint64(0x57c40ff500000000),
  1386. 88: uint64(0xc6d9b06500000000),
  1387. 89: uint64(0x50e9b71200000000),
  1388. 90: uint64(0xeab8be8b00000000),
  1389. 91: uint64(0x7c88b9fc00000000),
  1390. 92: uint64(0xdf1ddd6200000000),
  1391. 93: uint64(0x492dda1500000000),
  1392. 94: uint64(0xf37cd38c00000000),
  1393. 95: uint64(0x654cd4fb00000000),
  1394. 96: uint64(0x5861b24d00000000),
  1395. 97: uint64(0xce51b53a00000000),
  1396. 98: uint64(0x7400bca300000000),
  1397. 99: uint64(0xe230bbd400000000),
  1398. 100: uint64(0x41a5df4a00000000),
  1399. 101: uint64(0xd795d83d00000000),
  1400. 102: uint64(0x6dc4d1a400000000),
  1401. 103: uint64(0xfbf4d6d300000000),
  1402. 104: uint64(0x6ae9694300000000),
  1403. 105: uint64(0xfcd96e3400000000),
  1404. 106: uint64(0x468867ad00000000),
  1405. 107: uint64(0xd0b860da00000000),
  1406. 108: uint64(0x732d044400000000),
  1407. 109: uint64(0xe51d033300000000),
  1408. 110: uint64(0x5f4c0aaa00000000),
  1409. 111: uint64(0xc97c0ddd00000000),
  1410. 112: uint64(0x3c71055000000000),
  1411. 113: uint64(0xaa41022700000000),
  1412. 114: uint64(0x10100bbe00000000),
  1413. 115: uint64(0x86200cc900000000),
  1414. 116: uint64(0x25b5685700000000),
  1415. 117: uint64(0xb3856f2000000000),
  1416. 118: uint64(0x09d466b900000000),
  1417. 119: uint64(0x9fe461ce00000000),
  1418. 120: uint64(0x0ef9de5e00000000),
  1419. 121: uint64(0x98c9d92900000000),
  1420. 122: uint64(0x2298d0b000000000),
  1421. 123: uint64(0xb4a8d7c700000000),
  1422. 124: uint64(0x173db35900000000),
  1423. 125: uint64(0x810db42e00000000),
  1424. 126: uint64(0x3b5cbdb700000000),
  1425. 127: uint64(0xad6cbac000000000),
  1426. 128: uint64(0x2083b8ed00000000),
  1427. 129: uint64(0xb6b3bf9a00000000),
  1428. 130: uint64(0x0ce2b60300000000),
  1429. 131: uint64(0x9ad2b17400000000),
  1430. 132: uint64(0x3947d5ea00000000),
  1431. 133: uint64(0xaf77d29d00000000),
  1432. 134: uint64(0x1526db0400000000),
  1433. 135: uint64(0x8316dc7300000000),
  1434. 136: uint64(0x120b63e300000000),
  1435. 137: uint64(0x843b649400000000),
  1436. 138: uint64(0x3e6a6d0d00000000),
  1437. 139: uint64(0xa85a6a7a00000000),
  1438. 140: uint64(0x0bcf0ee400000000),
  1439. 141: uint64(0x9dff099300000000),
  1440. 142: uint64(0x27ae000a00000000),
  1441. 143: uint64(0xb19e077d00000000),
  1442. 144: uint64(0x44930ff000000000),
  1443. 145: uint64(0xd2a3088700000000),
  1444. 146: uint64(0x68f2011e00000000),
  1445. 147: uint64(0xfec2066900000000),
  1446. 148: uint64(0x5d5762f700000000),
  1447. 149: uint64(0xcb67658000000000),
  1448. 150: uint64(0x71366c1900000000),
  1449. 151: uint64(0xe7066b6e00000000),
  1450. 152: uint64(0x761bd4fe00000000),
  1451. 153: uint64(0xe02bd38900000000),
  1452. 154: uint64(0x5a7ada1000000000),
  1453. 155: uint64(0xcc4add6700000000),
  1454. 156: uint64(0x6fdfb9f900000000),
  1455. 157: uint64(0xf9efbe8e00000000),
  1456. 158: uint64(0x43beb71700000000),
  1457. 159: uint64(0xd58eb06000000000),
  1458. 160: uint64(0xe8a3d6d600000000),
  1459. 161: uint64(0x7e93d1a100000000),
  1460. 162: uint64(0xc4c2d83800000000),
  1461. 163: uint64(0x52f2df4f00000000),
  1462. 164: uint64(0xf167bbd100000000),
  1463. 165: uint64(0x6757bca600000000),
  1464. 166: uint64(0xdd06b53f00000000),
  1465. 167: uint64(0x4b36b24800000000),
  1466. 168: uint64(0xda2b0dd800000000),
  1467. 169: uint64(0x4c1b0aaf00000000),
  1468. 170: uint64(0xf64a033600000000),
  1469. 171: uint64(0x607a044100000000),
  1470. 172: uint64(0xc3ef60df00000000),
  1471. 173: uint64(0x55df67a800000000),
  1472. 174: uint64(0xef8e6e3100000000),
  1473. 175: uint64(0x79be694600000000),
  1474. 176: uint64(0x8cb361cb00000000),
  1475. 177: uint64(0x1a8366bc00000000),
  1476. 178: uint64(0xa0d26f2500000000),
  1477. 179: uint64(0x36e2685200000000),
  1478. 180: uint64(0x95770ccc00000000),
  1479. 181: uint64(0x03470bbb00000000),
  1480. 182: uint64(0xb916022200000000),
  1481. 183: uint64(0x2f26055500000000),
  1482. 184: uint64(0xbe3bbac500000000),
  1483. 185: uint64(0x280bbdb200000000),
  1484. 186: uint64(0x925ab42b00000000),
  1485. 187: uint64(0x046ab35c00000000),
  1486. 188: uint64(0xa7ffd7c200000000),
  1487. 189: uint64(0x31cfd0b500000000),
  1488. 190: uint64(0x8b9ed92c00000000),
  1489. 191: uint64(0x1daede5b00000000),
  1490. 192: uint64(0xb0c2649b00000000),
  1491. 193: uint64(0x26f263ec00000000),
  1492. 194: uint64(0x9ca36a7500000000),
  1493. 195: uint64(0x0a936d0200000000),
  1494. 196: uint64(0xa906099c00000000),
  1495. 197: uint64(0x3f360eeb00000000),
  1496. 198: uint64(0x8567077200000000),
  1497. 199: uint64(0x1357000500000000),
  1498. 200: uint64(0x824abf9500000000),
  1499. 201: uint64(0x147ab8e200000000),
  1500. 202: uint64(0xae2bb17b00000000),
  1501. 203: uint64(0x381bb60c00000000),
  1502. 204: uint64(0x9b8ed29200000000),
  1503. 205: uint64(0x0dbed5e500000000),
  1504. 206: uint64(0xb7efdc7c00000000),
  1505. 207: uint64(0x21dfdb0b00000000),
  1506. 208: uint64(0xd4d2d38600000000),
  1507. 209: uint64(0x42e2d4f100000000),
  1508. 210: uint64(0xf8b3dd6800000000),
  1509. 211: uint64(0x6e83da1f00000000),
  1510. 212: uint64(0xcd16be8100000000),
  1511. 213: uint64(0x5b26b9f600000000),
  1512. 214: uint64(0xe177b06f00000000),
  1513. 215: uint64(0x7747b71800000000),
  1514. 216: uint64(0xe65a088800000000),
  1515. 217: uint64(0x706a0fff00000000),
  1516. 218: uint64(0xca3b066600000000),
  1517. 219: uint64(0x5c0b011100000000),
  1518. 220: uint64(0xff9e658f00000000),
  1519. 221: uint64(0x69ae62f800000000),
  1520. 222: uint64(0xd3ff6b6100000000),
  1521. 223: uint64(0x45cf6c1600000000),
  1522. 224: uint64(0x78e20aa000000000),
  1523. 225: uint64(0xeed20dd700000000),
  1524. 226: uint64(0x5483044e00000000),
  1525. 227: uint64(0xc2b3033900000000),
  1526. 228: uint64(0x612667a700000000),
  1527. 229: uint64(0xf71660d000000000),
  1528. 230: uint64(0x4d47694900000000),
  1529. 231: uint64(0xdb776e3e00000000),
  1530. 232: uint64(0x4a6ad1ae00000000),
  1531. 233: uint64(0xdc5ad6d900000000),
  1532. 234: uint64(0x660bdf4000000000),
  1533. 235: uint64(0xf03bd83700000000),
  1534. 236: uint64(0x53aebca900000000),
  1535. 237: uint64(0xc59ebbde00000000),
  1536. 238: uint64(0x7fcfb24700000000),
  1537. 239: uint64(0xe9ffb53000000000),
  1538. 240: uint64(0x1cf2bdbd00000000),
  1539. 241: uint64(0x8ac2baca00000000),
  1540. 242: uint64(0x3093b35300000000),
  1541. 243: uint64(0xa6a3b42400000000),
  1542. 244: uint64(0x0536d0ba00000000),
  1543. 245: uint64(0x9306d7cd00000000),
  1544. 246: uint64(0x2957de5400000000),
  1545. 247: uint64(0xbf67d92300000000),
  1546. 248: uint64(0x2e7a66b300000000),
  1547. 249: uint64(0xb84a61c400000000),
  1548. 250: uint64(0x021b685d00000000),
  1549. 251: uint64(0x942b6f2a00000000),
  1550. 252: uint64(0x37be0bb400000000),
  1551. 253: uint64(0xa18e0cc300000000),
  1552. 254: uint64(0x1bdf055a00000000),
  1553. 255: uint64(0x8def022d00000000),
  1554. }
  1555. var _crc_braid_table = [8][256]Tz_crc_t{
  1556. 0: {
  1557. 1: uint32(0xaf449247),
  1558. 2: uint32(0x85f822cf),
  1559. 3: uint32(0x2abcb088),
  1560. 4: uint32(0xd08143df),
  1561. 5: uint32(0x7fc5d198),
  1562. 6: uint32(0x55796110),
  1563. 7: uint32(0xfa3df357),
  1564. 8: uint32(0x7a7381ff),
  1565. 9: uint32(0xd53713b8),
  1566. 10: uint32(0xff8ba330),
  1567. 11: uint32(0x50cf3177),
  1568. 12: uint32(0xaaf2c220),
  1569. 13: uint32(0x05b65067),
  1570. 14: uint32(0x2f0ae0ef),
  1571. 15: uint32(0x804e72a8),
  1572. 16: uint32(0xf4e703fe),
  1573. 17: uint32(0x5ba391b9),
  1574. 18: uint32(0x711f2131),
  1575. 19: uint32(0xde5bb376),
  1576. 20: uint32(0x24664021),
  1577. 21: uint32(0x8b22d266),
  1578. 22: uint32(0xa19e62ee),
  1579. 23: uint32(0x0edaf0a9),
  1580. 24: uint32(0x8e948201),
  1581. 25: uint32(0x21d01046),
  1582. 26: uint32(0x0b6ca0ce),
  1583. 27: uint32(0xa4283289),
  1584. 28: uint32(0x5e15c1de),
  1585. 29: uint32(0xf1515399),
  1586. 30: uint32(0xdbede311),
  1587. 31: uint32(0x74a97156),
  1588. 32: uint32(0x32bf01bd),
  1589. 33: uint32(0x9dfb93fa),
  1590. 34: uint32(0xb7472372),
  1591. 35: uint32(0x1803b135),
  1592. 36: uint32(0xe23e4262),
  1593. 37: uint32(0x4d7ad025),
  1594. 38: uint32(0x67c660ad),
  1595. 39: uint32(0xc882f2ea),
  1596. 40: uint32(0x48cc8042),
  1597. 41: uint32(0xe7881205),
  1598. 42: uint32(0xcd34a28d),
  1599. 43: uint32(0x627030ca),
  1600. 44: uint32(0x984dc39d),
  1601. 45: uint32(0x370951da),
  1602. 46: uint32(0x1db5e152),
  1603. 47: uint32(0xb2f17315),
  1604. 48: uint32(0xc6580243),
  1605. 49: uint32(0x691c9004),
  1606. 50: uint32(0x43a0208c),
  1607. 51: uint32(0xece4b2cb),
  1608. 52: uint32(0x16d9419c),
  1609. 53: uint32(0xb99dd3db),
  1610. 54: uint32(0x93216353),
  1611. 55: uint32(0x3c65f114),
  1612. 56: uint32(0xbc2b83bc),
  1613. 57: uint32(0x136f11fb),
  1614. 58: uint32(0x39d3a173),
  1615. 59: uint32(0x96973334),
  1616. 60: uint32(0x6caac063),
  1617. 61: uint32(0xc3ee5224),
  1618. 62: uint32(0xe952e2ac),
  1619. 63: uint32(0x461670eb),
  1620. 64: uint32(0x657e037a),
  1621. 65: uint32(0xca3a913d),
  1622. 66: uint32(0xe08621b5),
  1623. 67: uint32(0x4fc2b3f2),
  1624. 68: uint32(0xb5ff40a5),
  1625. 69: uint32(0x1abbd2e2),
  1626. 70: uint32(0x3007626a),
  1627. 71: uint32(0x9f43f02d),
  1628. 72: uint32(0x1f0d8285),
  1629. 73: uint32(0xb04910c2),
  1630. 74: uint32(0x9af5a04a),
  1631. 75: uint32(0x35b1320d),
  1632. 76: uint32(0xcf8cc15a),
  1633. 77: uint32(0x60c8531d),
  1634. 78: uint32(0x4a74e395),
  1635. 79: uint32(0xe53071d2),
  1636. 80: uint32(0x91990084),
  1637. 81: uint32(0x3edd92c3),
  1638. 82: uint32(0x1461224b),
  1639. 83: uint32(0xbb25b00c),
  1640. 84: uint32(0x4118435b),
  1641. 85: uint32(0xee5cd11c),
  1642. 86: uint32(0xc4e06194),
  1643. 87: uint32(0x6ba4f3d3),
  1644. 88: uint32(0xebea817b),
  1645. 89: uint32(0x44ae133c),
  1646. 90: uint32(0x6e12a3b4),
  1647. 91: uint32(0xc15631f3),
  1648. 92: uint32(0x3b6bc2a4),
  1649. 93: uint32(0x942f50e3),
  1650. 94: uint32(0xbe93e06b),
  1651. 95: uint32(0x11d7722c),
  1652. 96: uint32(0x57c102c7),
  1653. 97: uint32(0xf8859080),
  1654. 98: uint32(0xd2392008),
  1655. 99: uint32(0x7d7db24f),
  1656. 100: uint32(0x87404118),
  1657. 101: uint32(0x2804d35f),
  1658. 102: uint32(0x02b863d7),
  1659. 103: uint32(0xadfcf190),
  1660. 104: uint32(0x2db28338),
  1661. 105: uint32(0x82f6117f),
  1662. 106: uint32(0xa84aa1f7),
  1663. 107: uint32(0x070e33b0),
  1664. 108: uint32(0xfd33c0e7),
  1665. 109: uint32(0x527752a0),
  1666. 110: uint32(0x78cbe228),
  1667. 111: uint32(0xd78f706f),
  1668. 112: uint32(0xa3260139),
  1669. 113: uint32(0x0c62937e),
  1670. 114: uint32(0x26de23f6),
  1671. 115: uint32(0x899ab1b1),
  1672. 116: uint32(0x73a742e6),
  1673. 117: uint32(0xdce3d0a1),
  1674. 118: uint32(0xf65f6029),
  1675. 119: uint32(0x591bf26e),
  1676. 120: uint32(0xd95580c6),
  1677. 121: uint32(0x76111281),
  1678. 122: uint32(0x5cada209),
  1679. 123: uint32(0xf3e9304e),
  1680. 124: uint32(0x09d4c319),
  1681. 125: uint32(0xa690515e),
  1682. 126: uint32(0x8c2ce1d6),
  1683. 127: uint32(0x23687391),
  1684. 128: uint32(0xcafc06f4),
  1685. 129: uint32(0x65b894b3),
  1686. 130: uint32(0x4f04243b),
  1687. 131: uint32(0xe040b67c),
  1688. 132: uint32(0x1a7d452b),
  1689. 133: uint32(0xb539d76c),
  1690. 134: uint32(0x9f8567e4),
  1691. 135: uint32(0x30c1f5a3),
  1692. 136: uint32(0xb08f870b),
  1693. 137: uint32(0x1fcb154c),
  1694. 138: uint32(0x3577a5c4),
  1695. 139: uint32(0x9a333783),
  1696. 140: uint32(0x600ec4d4),
  1697. 141: uint32(0xcf4a5693),
  1698. 142: uint32(0xe5f6e61b),
  1699. 143: uint32(0x4ab2745c),
  1700. 144: uint32(0x3e1b050a),
  1701. 145: uint32(0x915f974d),
  1702. 146: uint32(0xbbe327c5),
  1703. 147: uint32(0x14a7b582),
  1704. 148: uint32(0xee9a46d5),
  1705. 149: uint32(0x41ded492),
  1706. 150: uint32(0x6b62641a),
  1707. 151: uint32(0xc426f65d),
  1708. 152: uint32(0x446884f5),
  1709. 153: uint32(0xeb2c16b2),
  1710. 154: uint32(0xc190a63a),
  1711. 155: uint32(0x6ed4347d),
  1712. 156: uint32(0x94e9c72a),
  1713. 157: uint32(0x3bad556d),
  1714. 158: uint32(0x1111e5e5),
  1715. 159: uint32(0xbe5577a2),
  1716. 160: uint32(0xf8430749),
  1717. 161: uint32(0x5707950e),
  1718. 162: uint32(0x7dbb2586),
  1719. 163: uint32(0xd2ffb7c1),
  1720. 164: uint32(0x28c24496),
  1721. 165: uint32(0x8786d6d1),
  1722. 166: uint32(0xad3a6659),
  1723. 167: uint32(0x027ef41e),
  1724. 168: uint32(0x823086b6),
  1725. 169: uint32(0x2d7414f1),
  1726. 170: uint32(0x07c8a479),
  1727. 171: uint32(0xa88c363e),
  1728. 172: uint32(0x52b1c569),
  1729. 173: uint32(0xfdf5572e),
  1730. 174: uint32(0xd749e7a6),
  1731. 175: uint32(0x780d75e1),
  1732. 176: uint32(0x0ca404b7),
  1733. 177: uint32(0xa3e096f0),
  1734. 178: uint32(0x895c2678),
  1735. 179: uint32(0x2618b43f),
  1736. 180: uint32(0xdc254768),
  1737. 181: uint32(0x7361d52f),
  1738. 182: uint32(0x59dd65a7),
  1739. 183: uint32(0xf699f7e0),
  1740. 184: uint32(0x76d78548),
  1741. 185: uint32(0xd993170f),
  1742. 186: uint32(0xf32fa787),
  1743. 187: uint32(0x5c6b35c0),
  1744. 188: uint32(0xa656c697),
  1745. 189: uint32(0x091254d0),
  1746. 190: uint32(0x23aee458),
  1747. 191: uint32(0x8cea761f),
  1748. 192: uint32(0xaf82058e),
  1749. 193: uint32(0x00c697c9),
  1750. 194: uint32(0x2a7a2741),
  1751. 195: uint32(0x853eb506),
  1752. 196: uint32(0x7f034651),
  1753. 197: uint32(0xd047d416),
  1754. 198: uint32(0xfafb649e),
  1755. 199: uint32(0x55bff6d9),
  1756. 200: uint32(0xd5f18471),
  1757. 201: uint32(0x7ab51636),
  1758. 202: uint32(0x5009a6be),
  1759. 203: uint32(0xff4d34f9),
  1760. 204: uint32(0x0570c7ae),
  1761. 205: uint32(0xaa3455e9),
  1762. 206: uint32(0x8088e561),
  1763. 207: uint32(0x2fcc7726),
  1764. 208: uint32(0x5b650670),
  1765. 209: uint32(0xf4219437),
  1766. 210: uint32(0xde9d24bf),
  1767. 211: uint32(0x71d9b6f8),
  1768. 212: uint32(0x8be445af),
  1769. 213: uint32(0x24a0d7e8),
  1770. 214: uint32(0x0e1c6760),
  1771. 215: uint32(0xa158f527),
  1772. 216: uint32(0x2116878f),
  1773. 217: uint32(0x8e5215c8),
  1774. 218: uint32(0xa4eea540),
  1775. 219: uint32(0x0baa3707),
  1776. 220: uint32(0xf197c450),
  1777. 221: uint32(0x5ed35617),
  1778. 222: uint32(0x746fe69f),
  1779. 223: uint32(0xdb2b74d8),
  1780. 224: uint32(0x9d3d0433),
  1781. 225: uint32(0x32799674),
  1782. 226: uint32(0x18c526fc),
  1783. 227: uint32(0xb781b4bb),
  1784. 228: uint32(0x4dbc47ec),
  1785. 229: uint32(0xe2f8d5ab),
  1786. 230: uint32(0xc8446523),
  1787. 231: uint32(0x6700f764),
  1788. 232: uint32(0xe74e85cc),
  1789. 233: uint32(0x480a178b),
  1790. 234: uint32(0x62b6a703),
  1791. 235: uint32(0xcdf23544),
  1792. 236: uint32(0x37cfc613),
  1793. 237: uint32(0x988b5454),
  1794. 238: uint32(0xb237e4dc),
  1795. 239: uint32(0x1d73769b),
  1796. 240: uint32(0x69da07cd),
  1797. 241: uint32(0xc69e958a),
  1798. 242: uint32(0xec222502),
  1799. 243: uint32(0x4366b745),
  1800. 244: uint32(0xb95b4412),
  1801. 245: uint32(0x161fd655),
  1802. 246: uint32(0x3ca366dd),
  1803. 247: uint32(0x93e7f49a),
  1804. 248: uint32(0x13a98632),
  1805. 249: uint32(0xbced1475),
  1806. 250: uint32(0x9651a4fd),
  1807. 251: uint32(0x391536ba),
  1808. 252: uint32(0xc328c5ed),
  1809. 253: uint32(0x6c6c57aa),
  1810. 254: uint32(0x46d0e722),
  1811. 255: uint32(0xe9947565),
  1812. },
  1813. 1: {
  1814. 1: uint32(0x4e890ba9),
  1815. 2: uint32(0x9d121752),
  1816. 3: uint32(0xd39b1cfb),
  1817. 4: uint32(0xe15528e5),
  1818. 5: uint32(0xafdc234c),
  1819. 6: uint32(0x7c473fb7),
  1820. 7: uint32(0x32ce341e),
  1821. 8: uint32(0x19db578b),
  1822. 9: uint32(0x57525c22),
  1823. 10: uint32(0x84c940d9),
  1824. 11: uint32(0xca404b70),
  1825. 12: uint32(0xf88e7f6e),
  1826. 13: uint32(0xb60774c7),
  1827. 14: uint32(0x659c683c),
  1828. 15: uint32(0x2b156395),
  1829. 16: uint32(0x33b6af16),
  1830. 17: uint32(0x7d3fa4bf),
  1831. 18: uint32(0xaea4b844),
  1832. 19: uint32(0xe02db3ed),
  1833. 20: uint32(0xd2e387f3),
  1834. 21: uint32(0x9c6a8c5a),
  1835. 22: uint32(0x4ff190a1),
  1836. 23: uint32(0x01789b08),
  1837. 24: uint32(0x2a6df89d),
  1838. 25: uint32(0x64e4f334),
  1839. 26: uint32(0xb77fefcf),
  1840. 27: uint32(0xf9f6e466),
  1841. 28: uint32(0xcb38d078),
  1842. 29: uint32(0x85b1dbd1),
  1843. 30: uint32(0x562ac72a),
  1844. 31: uint32(0x18a3cc83),
  1845. 32: uint32(0x676d5e2c),
  1846. 33: uint32(0x29e45585),
  1847. 34: uint32(0xfa7f497e),
  1848. 35: uint32(0xb4f642d7),
  1849. 36: uint32(0x863876c9),
  1850. 37: uint32(0xc8b17d60),
  1851. 38: uint32(0x1b2a619b),
  1852. 39: uint32(0x55a36a32),
  1853. 40: uint32(0x7eb609a7),
  1854. 41: uint32(0x303f020e),
  1855. 42: uint32(0xe3a41ef5),
  1856. 43: uint32(0xad2d155c),
  1857. 44: uint32(0x9fe32142),
  1858. 45: uint32(0xd16a2aeb),
  1859. 46: uint32(0x02f13610),
  1860. 47: uint32(0x4c783db9),
  1861. 48: uint32(0x54dbf13a),
  1862. 49: uint32(0x1a52fa93),
  1863. 50: uint32(0xc9c9e668),
  1864. 51: uint32(0x8740edc1),
  1865. 52: uint32(0xb58ed9df),
  1866. 53: uint32(0xfb07d276),
  1867. 54: uint32(0x289cce8d),
  1868. 55: uint32(0x6615c524),
  1869. 56: uint32(0x4d00a6b1),
  1870. 57: uint32(0x0389ad18),
  1871. 58: uint32(0xd012b1e3),
  1872. 59: uint32(0x9e9bba4a),
  1873. 60: uint32(0xac558e54),
  1874. 61: uint32(0xe2dc85fd),
  1875. 62: uint32(0x31479906),
  1876. 63: uint32(0x7fce92af),
  1877. 64: uint32(0xcedabc58),
  1878. 65: uint32(0x8053b7f1),
  1879. 66: uint32(0x53c8ab0a),
  1880. 67: uint32(0x1d41a0a3),
  1881. 68: uint32(0x2f8f94bd),
  1882. 69: uint32(0x61069f14),
  1883. 70: uint32(0xb29d83ef),
  1884. 71: uint32(0xfc148846),
  1885. 72: uint32(0xd701ebd3),
  1886. 73: uint32(0x9988e07a),
  1887. 74: uint32(0x4a13fc81),
  1888. 75: uint32(0x049af728),
  1889. 76: uint32(0x3654c336),
  1890. 77: uint32(0x78ddc89f),
  1891. 78: uint32(0xab46d464),
  1892. 79: uint32(0xe5cfdfcd),
  1893. 80: uint32(0xfd6c134e),
  1894. 81: uint32(0xb3e518e7),
  1895. 82: uint32(0x607e041c),
  1896. 83: uint32(0x2ef70fb5),
  1897. 84: uint32(0x1c393bab),
  1898. 85: uint32(0x52b03002),
  1899. 86: uint32(0x812b2cf9),
  1900. 87: uint32(0xcfa22750),
  1901. 88: uint32(0xe4b744c5),
  1902. 89: uint32(0xaa3e4f6c),
  1903. 90: uint32(0x79a55397),
  1904. 91: uint32(0x372c583e),
  1905. 92: uint32(0x05e26c20),
  1906. 93: uint32(0x4b6b6789),
  1907. 94: uint32(0x98f07b72),
  1908. 95: uint32(0xd67970db),
  1909. 96: uint32(0xa9b7e274),
  1910. 97: uint32(0xe73ee9dd),
  1911. 98: uint32(0x34a5f526),
  1912. 99: uint32(0x7a2cfe8f),
  1913. 100: uint32(0x48e2ca91),
  1914. 101: uint32(0x066bc138),
  1915. 102: uint32(0xd5f0ddc3),
  1916. 103: uint32(0x9b79d66a),
  1917. 104: uint32(0xb06cb5ff),
  1918. 105: uint32(0xfee5be56),
  1919. 106: uint32(0x2d7ea2ad),
  1920. 107: uint32(0x63f7a904),
  1921. 108: uint32(0x51399d1a),
  1922. 109: uint32(0x1fb096b3),
  1923. 110: uint32(0xcc2b8a48),
  1924. 111: uint32(0x82a281e1),
  1925. 112: uint32(0x9a014d62),
  1926. 113: uint32(0xd48846cb),
  1927. 114: uint32(0x07135a30),
  1928. 115: uint32(0x499a5199),
  1929. 116: uint32(0x7b546587),
  1930. 117: uint32(0x35dd6e2e),
  1931. 118: uint32(0xe64672d5),
  1932. 119: uint32(0xa8cf797c),
  1933. 120: uint32(0x83da1ae9),
  1934. 121: uint32(0xcd531140),
  1935. 122: uint32(0x1ec80dbb),
  1936. 123: uint32(0x50410612),
  1937. 124: uint32(0x628f320c),
  1938. 125: uint32(0x2c0639a5),
  1939. 126: uint32(0xff9d255e),
  1940. 127: uint32(0xb1142ef7),
  1941. 128: uint32(0x46c47ef1),
  1942. 129: uint32(0x084d7558),
  1943. 130: uint32(0xdbd669a3),
  1944. 131: uint32(0x955f620a),
  1945. 132: uint32(0xa7915614),
  1946. 133: uint32(0xe9185dbd),
  1947. 134: uint32(0x3a834146),
  1948. 135: uint32(0x740a4aef),
  1949. 136: uint32(0x5f1f297a),
  1950. 137: uint32(0x119622d3),
  1951. 138: uint32(0xc20d3e28),
  1952. 139: uint32(0x8c843581),
  1953. 140: uint32(0xbe4a019f),
  1954. 141: uint32(0xf0c30a36),
  1955. 142: uint32(0x235816cd),
  1956. 143: uint32(0x6dd11d64),
  1957. 144: uint32(0x7572d1e7),
  1958. 145: uint32(0x3bfbda4e),
  1959. 146: uint32(0xe860c6b5),
  1960. 147: uint32(0xa6e9cd1c),
  1961. 148: uint32(0x9427f902),
  1962. 149: uint32(0xdaaef2ab),
  1963. 150: uint32(0x0935ee50),
  1964. 151: uint32(0x47bce5f9),
  1965. 152: uint32(0x6ca9866c),
  1966. 153: uint32(0x22208dc5),
  1967. 154: uint32(0xf1bb913e),
  1968. 155: uint32(0xbf329a97),
  1969. 156: uint32(0x8dfcae89),
  1970. 157: uint32(0xc375a520),
  1971. 158: uint32(0x10eeb9db),
  1972. 159: uint32(0x5e67b272),
  1973. 160: uint32(0x21a920dd),
  1974. 161: uint32(0x6f202b74),
  1975. 162: uint32(0xbcbb378f),
  1976. 163: uint32(0xf2323c26),
  1977. 164: uint32(0xc0fc0838),
  1978. 165: uint32(0x8e750391),
  1979. 166: uint32(0x5dee1f6a),
  1980. 167: uint32(0x136714c3),
  1981. 168: uint32(0x38727756),
  1982. 169: uint32(0x76fb7cff),
  1983. 170: uint32(0xa5606004),
  1984. 171: uint32(0xebe96bad),
  1985. 172: uint32(0xd9275fb3),
  1986. 173: uint32(0x97ae541a),
  1987. 174: uint32(0x443548e1),
  1988. 175: uint32(0x0abc4348),
  1989. 176: uint32(0x121f8fcb),
  1990. 177: uint32(0x5c968462),
  1991. 178: uint32(0x8f0d9899),
  1992. 179: uint32(0xc1849330),
  1993. 180: uint32(0xf34aa72e),
  1994. 181: uint32(0xbdc3ac87),
  1995. 182: uint32(0x6e58b07c),
  1996. 183: uint32(0x20d1bbd5),
  1997. 184: uint32(0x0bc4d840),
  1998. 185: uint32(0x454dd3e9),
  1999. 186: uint32(0x96d6cf12),
  2000. 187: uint32(0xd85fc4bb),
  2001. 188: uint32(0xea91f0a5),
  2002. 189: uint32(0xa418fb0c),
  2003. 190: uint32(0x7783e7f7),
  2004. 191: uint32(0x390aec5e),
  2005. 192: uint32(0x881ec2a9),
  2006. 193: uint32(0xc697c900),
  2007. 194: uint32(0x150cd5fb),
  2008. 195: uint32(0x5b85de52),
  2009. 196: uint32(0x694bea4c),
  2010. 197: uint32(0x27c2e1e5),
  2011. 198: uint32(0xf459fd1e),
  2012. 199: uint32(0xbad0f6b7),
  2013. 200: uint32(0x91c59522),
  2014. 201: uint32(0xdf4c9e8b),
  2015. 202: uint32(0x0cd78270),
  2016. 203: uint32(0x425e89d9),
  2017. 204: uint32(0x7090bdc7),
  2018. 205: uint32(0x3e19b66e),
  2019. 206: uint32(0xed82aa95),
  2020. 207: uint32(0xa30ba13c),
  2021. 208: uint32(0xbba86dbf),
  2022. 209: uint32(0xf5216616),
  2023. 210: uint32(0x26ba7aed),
  2024. 211: uint32(0x68337144),
  2025. 212: uint32(0x5afd455a),
  2026. 213: uint32(0x14744ef3),
  2027. 214: uint32(0xc7ef5208),
  2028. 215: uint32(0x896659a1),
  2029. 216: uint32(0xa2733a34),
  2030. 217: uint32(0xecfa319d),
  2031. 218: uint32(0x3f612d66),
  2032. 219: uint32(0x71e826cf),
  2033. 220: uint32(0x432612d1),
  2034. 221: uint32(0x0daf1978),
  2035. 222: uint32(0xde340583),
  2036. 223: uint32(0x90bd0e2a),
  2037. 224: uint32(0xef739c85),
  2038. 225: uint32(0xa1fa972c),
  2039. 226: uint32(0x72618bd7),
  2040. 227: uint32(0x3ce8807e),
  2041. 228: uint32(0x0e26b460),
  2042. 229: uint32(0x40afbfc9),
  2043. 230: uint32(0x9334a332),
  2044. 231: uint32(0xddbda89b),
  2045. 232: uint32(0xf6a8cb0e),
  2046. 233: uint32(0xb821c0a7),
  2047. 234: uint32(0x6bbadc5c),
  2048. 235: uint32(0x2533d7f5),
  2049. 236: uint32(0x17fde3eb),
  2050. 237: uint32(0x5974e842),
  2051. 238: uint32(0x8aeff4b9),
  2052. 239: uint32(0xc466ff10),
  2053. 240: uint32(0xdcc53393),
  2054. 241: uint32(0x924c383a),
  2055. 242: uint32(0x41d724c1),
  2056. 243: uint32(0x0f5e2f68),
  2057. 244: uint32(0x3d901b76),
  2058. 245: uint32(0x731910df),
  2059. 246: uint32(0xa0820c24),
  2060. 247: uint32(0xee0b078d),
  2061. 248: uint32(0xc51e6418),
  2062. 249: uint32(0x8b976fb1),
  2063. 250: uint32(0x580c734a),
  2064. 251: uint32(0x168578e3),
  2065. 252: uint32(0x244b4cfd),
  2066. 253: uint32(0x6ac24754),
  2067. 254: uint32(0xb9595baf),
  2068. 255: uint32(0xf7d05006),
  2069. },
  2070. 2: {
  2071. 1: uint32(0x8d88fde2),
  2072. 2: uint32(0xc060fd85),
  2073. 3: uint32(0x4de80067),
  2074. 4: uint32(0x5bb0fd4b),
  2075. 5: uint32(0xd63800a9),
  2076. 6: uint32(0x9bd000ce),
  2077. 7: uint32(0x1658fd2c),
  2078. 8: uint32(0xb761fa96),
  2079. 9: uint32(0x3ae90774),
  2080. 10: uint32(0x77010713),
  2081. 11: uint32(0xfa89faf1),
  2082. 12: uint32(0xecd107dd),
  2083. 13: uint32(0x6159fa3f),
  2084. 14: uint32(0x2cb1fa58),
  2085. 15: uint32(0xa13907ba),
  2086. 16: uint32(0xb5b2f36d),
  2087. 17: uint32(0x383a0e8f),
  2088. 18: uint32(0x75d20ee8),
  2089. 19: uint32(0xf85af30a),
  2090. 20: uint32(0xee020e26),
  2091. 21: uint32(0x638af3c4),
  2092. 22: uint32(0x2e62f3a3),
  2093. 23: uint32(0xa3ea0e41),
  2094. 24: uint32(0x02d309fb),
  2095. 25: uint32(0x8f5bf419),
  2096. 26: uint32(0xc2b3f47e),
  2097. 27: uint32(0x4f3b099c),
  2098. 28: uint32(0x5963f4b0),
  2099. 29: uint32(0xd4eb0952),
  2100. 30: uint32(0x99030935),
  2101. 31: uint32(0x148bf4d7),
  2102. 32: uint32(0xb014e09b),
  2103. 33: uint32(0x3d9c1d79),
  2104. 34: uint32(0x70741d1e),
  2105. 35: uint32(0xfdfce0fc),
  2106. 36: uint32(0xeba41dd0),
  2107. 37: uint32(0x662ce032),
  2108. 38: uint32(0x2bc4e055),
  2109. 39: uint32(0xa64c1db7),
  2110. 40: uint32(0x07751a0d),
  2111. 41: uint32(0x8afde7ef),
  2112. 42: uint32(0xc715e788),
  2113. 43: uint32(0x4a9d1a6a),
  2114. 44: uint32(0x5cc5e746),
  2115. 45: uint32(0xd14d1aa4),
  2116. 46: uint32(0x9ca51ac3),
  2117. 47: uint32(0x112de721),
  2118. 48: uint32(0x05a613f6),
  2119. 49: uint32(0x882eee14),
  2120. 50: uint32(0xc5c6ee73),
  2121. 51: uint32(0x484e1391),
  2122. 52: uint32(0x5e16eebd),
  2123. 53: uint32(0xd39e135f),
  2124. 54: uint32(0x9e761338),
  2125. 55: uint32(0x13feeeda),
  2126. 56: uint32(0xb2c7e960),
  2127. 57: uint32(0x3f4f1482),
  2128. 58: uint32(0x72a714e5),
  2129. 59: uint32(0xff2fe907),
  2130. 60: uint32(0xe977142b),
  2131. 61: uint32(0x64ffe9c9),
  2132. 62: uint32(0x2917e9ae),
  2133. 63: uint32(0xa49f144c),
  2134. 64: uint32(0xbb58c777),
  2135. 65: uint32(0x36d03a95),
  2136. 66: uint32(0x7b383af2),
  2137. 67: uint32(0xf6b0c710),
  2138. 68: uint32(0xe0e83a3c),
  2139. 69: uint32(0x6d60c7de),
  2140. 70: uint32(0x2088c7b9),
  2141. 71: uint32(0xad003a5b),
  2142. 72: uint32(0x0c393de1),
  2143. 73: uint32(0x81b1c003),
  2144. 74: uint32(0xcc59c064),
  2145. 75: uint32(0x41d13d86),
  2146. 76: uint32(0x5789c0aa),
  2147. 77: uint32(0xda013d48),
  2148. 78: uint32(0x97e93d2f),
  2149. 79: uint32(0x1a61c0cd),
  2150. 80: uint32(0x0eea341a),
  2151. 81: uint32(0x8362c9f8),
  2152. 82: uint32(0xce8ac99f),
  2153. 83: uint32(0x4302347d),
  2154. 84: uint32(0x555ac951),
  2155. 85: uint32(0xd8d234b3),
  2156. 86: uint32(0x953a34d4),
  2157. 87: uint32(0x18b2c936),
  2158. 88: uint32(0xb98bce8c),
  2159. 89: uint32(0x3403336e),
  2160. 90: uint32(0x79eb3309),
  2161. 91: uint32(0xf463ceeb),
  2162. 92: uint32(0xe23b33c7),
  2163. 93: uint32(0x6fb3ce25),
  2164. 94: uint32(0x225bce42),
  2165. 95: uint32(0xafd333a0),
  2166. 96: uint32(0x0b4c27ec),
  2167. 97: uint32(0x86c4da0e),
  2168. 98: uint32(0xcb2cda69),
  2169. 99: uint32(0x46a4278b),
  2170. 100: uint32(0x50fcdaa7),
  2171. 101: uint32(0xdd742745),
  2172. 102: uint32(0x909c2722),
  2173. 103: uint32(0x1d14dac0),
  2174. 104: uint32(0xbc2ddd7a),
  2175. 105: uint32(0x31a52098),
  2176. 106: uint32(0x7c4d20ff),
  2177. 107: uint32(0xf1c5dd1d),
  2178. 108: uint32(0xe79d2031),
  2179. 109: uint32(0x6a15ddd3),
  2180. 110: uint32(0x27fdddb4),
  2181. 111: uint32(0xaa752056),
  2182. 112: uint32(0xbefed481),
  2183. 113: uint32(0x33762963),
  2184. 114: uint32(0x7e9e2904),
  2185. 115: uint32(0xf316d4e6),
  2186. 116: uint32(0xe54e29ca),
  2187. 117: uint32(0x68c6d428),
  2188. 118: uint32(0x252ed44f),
  2189. 119: uint32(0xa8a629ad),
  2190. 120: uint32(0x099f2e17),
  2191. 121: uint32(0x8417d3f5),
  2192. 122: uint32(0xc9ffd392),
  2193. 123: uint32(0x44772e70),
  2194. 124: uint32(0x522fd35c),
  2195. 125: uint32(0xdfa72ebe),
  2196. 126: uint32(0x924f2ed9),
  2197. 127: uint32(0x1fc7d33b),
  2198. 128: uint32(0xadc088af),
  2199. 129: uint32(0x2048754d),
  2200. 130: uint32(0x6da0752a),
  2201. 131: uint32(0xe02888c8),
  2202. 132: uint32(0xf67075e4),
  2203. 133: uint32(0x7bf88806),
  2204. 134: uint32(0x36108861),
  2205. 135: uint32(0xbb987583),
  2206. 136: uint32(0x1aa17239),
  2207. 137: uint32(0x97298fdb),
  2208. 138: uint32(0xdac18fbc),
  2209. 139: uint32(0x5749725e),
  2210. 140: uint32(0x41118f72),
  2211. 141: uint32(0xcc997290),
  2212. 142: uint32(0x817172f7),
  2213. 143: uint32(0x0cf98f15),
  2214. 144: uint32(0x18727bc2),
  2215. 145: uint32(0x95fa8620),
  2216. 146: uint32(0xd8128647),
  2217. 147: uint32(0x559a7ba5),
  2218. 148: uint32(0x43c28689),
  2219. 149: uint32(0xce4a7b6b),
  2220. 150: uint32(0x83a27b0c),
  2221. 151: uint32(0x0e2a86ee),
  2222. 152: uint32(0xaf138154),
  2223. 153: uint32(0x229b7cb6),
  2224. 154: uint32(0x6f737cd1),
  2225. 155: uint32(0xe2fb8133),
  2226. 156: uint32(0xf4a37c1f),
  2227. 157: uint32(0x792b81fd),
  2228. 158: uint32(0x34c3819a),
  2229. 159: uint32(0xb94b7c78),
  2230. 160: uint32(0x1dd46834),
  2231. 161: uint32(0x905c95d6),
  2232. 162: uint32(0xddb495b1),
  2233. 163: uint32(0x503c6853),
  2234. 164: uint32(0x4664957f),
  2235. 165: uint32(0xcbec689d),
  2236. 166: uint32(0x860468fa),
  2237. 167: uint32(0x0b8c9518),
  2238. 168: uint32(0xaab592a2),
  2239. 169: uint32(0x273d6f40),
  2240. 170: uint32(0x6ad56f27),
  2241. 171: uint32(0xe75d92c5),
  2242. 172: uint32(0xf1056fe9),
  2243. 173: uint32(0x7c8d920b),
  2244. 174: uint32(0x3165926c),
  2245. 175: uint32(0xbced6f8e),
  2246. 176: uint32(0xa8669b59),
  2247. 177: uint32(0x25ee66bb),
  2248. 178: uint32(0x680666dc),
  2249. 179: uint32(0xe58e9b3e),
  2250. 180: uint32(0xf3d66612),
  2251. 181: uint32(0x7e5e9bf0),
  2252. 182: uint32(0x33b69b97),
  2253. 183: uint32(0xbe3e6675),
  2254. 184: uint32(0x1f0761cf),
  2255. 185: uint32(0x928f9c2d),
  2256. 186: uint32(0xdf679c4a),
  2257. 187: uint32(0x52ef61a8),
  2258. 188: uint32(0x44b79c84),
  2259. 189: uint32(0xc93f6166),
  2260. 190: uint32(0x84d76101),
  2261. 191: uint32(0x095f9ce3),
  2262. 192: uint32(0x16984fd8),
  2263. 193: uint32(0x9b10b23a),
  2264. 194: uint32(0xd6f8b25d),
  2265. 195: uint32(0x5b704fbf),
  2266. 196: uint32(0x4d28b293),
  2267. 197: uint32(0xc0a04f71),
  2268. 198: uint32(0x8d484f16),
  2269. 199: uint32(0x00c0b2f4),
  2270. 200: uint32(0xa1f9b54e),
  2271. 201: uint32(0x2c7148ac),
  2272. 202: uint32(0x619948cb),
  2273. 203: uint32(0xec11b529),
  2274. 204: uint32(0xfa494805),
  2275. 205: uint32(0x77c1b5e7),
  2276. 206: uint32(0x3a29b580),
  2277. 207: uint32(0xb7a14862),
  2278. 208: uint32(0xa32abcb5),
  2279. 209: uint32(0x2ea24157),
  2280. 210: uint32(0x634a4130),
  2281. 211: uint32(0xeec2bcd2),
  2282. 212: uint32(0xf89a41fe),
  2283. 213: uint32(0x7512bc1c),
  2284. 214: uint32(0x38fabc7b),
  2285. 215: uint32(0xb5724199),
  2286. 216: uint32(0x144b4623),
  2287. 217: uint32(0x99c3bbc1),
  2288. 218: uint32(0xd42bbba6),
  2289. 219: uint32(0x59a34644),
  2290. 220: uint32(0x4ffbbb68),
  2291. 221: uint32(0xc273468a),
  2292. 222: uint32(0x8f9b46ed),
  2293. 223: uint32(0x0213bb0f),
  2294. 224: uint32(0xa68caf43),
  2295. 225: uint32(0x2b0452a1),
  2296. 226: uint32(0x66ec52c6),
  2297. 227: uint32(0xeb64af24),
  2298. 228: uint32(0xfd3c5208),
  2299. 229: uint32(0x70b4afea),
  2300. 230: uint32(0x3d5caf8d),
  2301. 231: uint32(0xb0d4526f),
  2302. 232: uint32(0x11ed55d5),
  2303. 233: uint32(0x9c65a837),
  2304. 234: uint32(0xd18da850),
  2305. 235: uint32(0x5c0555b2),
  2306. 236: uint32(0x4a5da89e),
  2307. 237: uint32(0xc7d5557c),
  2308. 238: uint32(0x8a3d551b),
  2309. 239: uint32(0x07b5a8f9),
  2310. 240: uint32(0x133e5c2e),
  2311. 241: uint32(0x9eb6a1cc),
  2312. 242: uint32(0xd35ea1ab),
  2313. 243: uint32(0x5ed65c49),
  2314. 244: uint32(0x488ea165),
  2315. 245: uint32(0xc5065c87),
  2316. 246: uint32(0x88ee5ce0),
  2317. 247: uint32(0x0566a102),
  2318. 248: uint32(0xa45fa6b8),
  2319. 249: uint32(0x29d75b5a),
  2320. 250: uint32(0x643f5b3d),
  2321. 251: uint32(0xe9b7a6df),
  2322. 252: uint32(0xffef5bf3),
  2323. 253: uint32(0x7267a611),
  2324. 254: uint32(0x3f8fa676),
  2325. 255: uint32(0xb2075b94),
  2326. },
  2327. 3: {
  2328. 1: uint32(0x80f0171f),
  2329. 2: uint32(0xda91287f),
  2330. 3: uint32(0x5a613f60),
  2331. 4: uint32(0x6e5356bf),
  2332. 5: uint32(0xeea341a0),
  2333. 6: uint32(0xb4c27ec0),
  2334. 7: uint32(0x343269df),
  2335. 8: uint32(0xdca6ad7e),
  2336. 9: uint32(0x5c56ba61),
  2337. 10: uint32(0x06378501),
  2338. 11: uint32(0x86c7921e),
  2339. 12: uint32(0xb2f5fbc1),
  2340. 13: uint32(0x3205ecde),
  2341. 14: uint32(0x6864d3be),
  2342. 15: uint32(0xe894c4a1),
  2343. 16: uint32(0x623c5cbd),
  2344. 17: uint32(0xe2cc4ba2),
  2345. 18: uint32(0xb8ad74c2),
  2346. 19: uint32(0x385d63dd),
  2347. 20: uint32(0x0c6f0a02),
  2348. 21: uint32(0x8c9f1d1d),
  2349. 22: uint32(0xd6fe227d),
  2350. 23: uint32(0x560e3562),
  2351. 24: uint32(0xbe9af1c3),
  2352. 25: uint32(0x3e6ae6dc),
  2353. 26: uint32(0x640bd9bc),
  2354. 27: uint32(0xe4fbcea3),
  2355. 28: uint32(0xd0c9a77c),
  2356. 29: uint32(0x5039b063),
  2357. 30: uint32(0x0a588f03),
  2358. 31: uint32(0x8aa8981c),
  2359. 32: uint32(0xc478b97a),
  2360. 33: uint32(0x4488ae65),
  2361. 34: uint32(0x1ee99105),
  2362. 35: uint32(0x9e19861a),
  2363. 36: uint32(0xaa2befc5),
  2364. 37: uint32(0x2adbf8da),
  2365. 38: uint32(0x70bac7ba),
  2366. 39: uint32(0xf04ad0a5),
  2367. 40: uint32(0x18de1404),
  2368. 41: uint32(0x982e031b),
  2369. 42: uint32(0xc24f3c7b),
  2370. 43: uint32(0x42bf2b64),
  2371. 44: uint32(0x768d42bb),
  2372. 45: uint32(0xf67d55a4),
  2373. 46: uint32(0xac1c6ac4),
  2374. 47: uint32(0x2cec7ddb),
  2375. 48: uint32(0xa644e5c7),
  2376. 49: uint32(0x26b4f2d8),
  2377. 50: uint32(0x7cd5cdb8),
  2378. 51: uint32(0xfc25daa7),
  2379. 52: uint32(0xc817b378),
  2380. 53: uint32(0x48e7a467),
  2381. 54: uint32(0x12869b07),
  2382. 55: uint32(0x92768c18),
  2383. 56: uint32(0x7ae248b9),
  2384. 57: uint32(0xfa125fa6),
  2385. 58: uint32(0xa07360c6),
  2386. 59: uint32(0x208377d9),
  2387. 60: uint32(0x14b11e06),
  2388. 61: uint32(0x94410919),
  2389. 62: uint32(0xce203679),
  2390. 63: uint32(0x4ed02166),
  2391. 64: uint32(0x538074b5),
  2392. 65: uint32(0xd37063aa),
  2393. 66: uint32(0x89115cca),
  2394. 67: uint32(0x09e14bd5),
  2395. 68: uint32(0x3dd3220a),
  2396. 69: uint32(0xbd233515),
  2397. 70: uint32(0xe7420a75),
  2398. 71: uint32(0x67b21d6a),
  2399. 72: uint32(0x8f26d9cb),
  2400. 73: uint32(0x0fd6ced4),
  2401. 74: uint32(0x55b7f1b4),
  2402. 75: uint32(0xd547e6ab),
  2403. 76: uint32(0xe1758f74),
  2404. 77: uint32(0x6185986b),
  2405. 78: uint32(0x3be4a70b),
  2406. 79: uint32(0xbb14b014),
  2407. 80: uint32(0x31bc2808),
  2408. 81: uint32(0xb14c3f17),
  2409. 82: uint32(0xeb2d0077),
  2410. 83: uint32(0x6bdd1768),
  2411. 84: uint32(0x5fef7eb7),
  2412. 85: uint32(0xdf1f69a8),
  2413. 86: uint32(0x857e56c8),
  2414. 87: uint32(0x058e41d7),
  2415. 88: uint32(0xed1a8576),
  2416. 89: uint32(0x6dea9269),
  2417. 90: uint32(0x378bad09),
  2418. 91: uint32(0xb77bba16),
  2419. 92: uint32(0x8349d3c9),
  2420. 93: uint32(0x03b9c4d6),
  2421. 94: uint32(0x59d8fbb6),
  2422. 95: uint32(0xd928eca9),
  2423. 96: uint32(0x97f8cdcf),
  2424. 97: uint32(0x1708dad0),
  2425. 98: uint32(0x4d69e5b0),
  2426. 99: uint32(0xcd99f2af),
  2427. 100: uint32(0xf9ab9b70),
  2428. 101: uint32(0x795b8c6f),
  2429. 102: uint32(0x233ab30f),
  2430. 103: uint32(0xa3caa410),
  2431. 104: uint32(0x4b5e60b1),
  2432. 105: uint32(0xcbae77ae),
  2433. 106: uint32(0x91cf48ce),
  2434. 107: uint32(0x113f5fd1),
  2435. 108: uint32(0x250d360e),
  2436. 109: uint32(0xa5fd2111),
  2437. 110: uint32(0xff9c1e71),
  2438. 111: uint32(0x7f6c096e),
  2439. 112: uint32(0xf5c49172),
  2440. 113: uint32(0x7534866d),
  2441. 114: uint32(0x2f55b90d),
  2442. 115: uint32(0xafa5ae12),
  2443. 116: uint32(0x9b97c7cd),
  2444. 117: uint32(0x1b67d0d2),
  2445. 118: uint32(0x4106efb2),
  2446. 119: uint32(0xc1f6f8ad),
  2447. 120: uint32(0x29623c0c),
  2448. 121: uint32(0xa9922b13),
  2449. 122: uint32(0xf3f31473),
  2450. 123: uint32(0x7303036c),
  2451. 124: uint32(0x47316ab3),
  2452. 125: uint32(0xc7c17dac),
  2453. 126: uint32(0x9da042cc),
  2454. 127: uint32(0x1d5055d3),
  2455. 128: uint32(0xa700e96a),
  2456. 129: uint32(0x27f0fe75),
  2457. 130: uint32(0x7d91c115),
  2458. 131: uint32(0xfd61d60a),
  2459. 132: uint32(0xc953bfd5),
  2460. 133: uint32(0x49a3a8ca),
  2461. 134: uint32(0x13c297aa),
  2462. 135: uint32(0x933280b5),
  2463. 136: uint32(0x7ba64414),
  2464. 137: uint32(0xfb56530b),
  2465. 138: uint32(0xa1376c6b),
  2466. 139: uint32(0x21c77b74),
  2467. 140: uint32(0x15f512ab),
  2468. 141: uint32(0x950505b4),
  2469. 142: uint32(0xcf643ad4),
  2470. 143: uint32(0x4f942dcb),
  2471. 144: uint32(0xc53cb5d7),
  2472. 145: uint32(0x45cca2c8),
  2473. 146: uint32(0x1fad9da8),
  2474. 147: uint32(0x9f5d8ab7),
  2475. 148: uint32(0xab6fe368),
  2476. 149: uint32(0x2b9ff477),
  2477. 150: uint32(0x71fecb17),
  2478. 151: uint32(0xf10edc08),
  2479. 152: uint32(0x199a18a9),
  2480. 153: uint32(0x996a0fb6),
  2481. 154: uint32(0xc30b30d6),
  2482. 155: uint32(0x43fb27c9),
  2483. 156: uint32(0x77c94e16),
  2484. 157: uint32(0xf7395909),
  2485. 158: uint32(0xad586669),
  2486. 159: uint32(0x2da87176),
  2487. 160: uint32(0x63785010),
  2488. 161: uint32(0xe388470f),
  2489. 162: uint32(0xb9e9786f),
  2490. 163: uint32(0x39196f70),
  2491. 164: uint32(0x0d2b06af),
  2492. 165: uint32(0x8ddb11b0),
  2493. 166: uint32(0xd7ba2ed0),
  2494. 167: uint32(0x574a39cf),
  2495. 168: uint32(0xbfdefd6e),
  2496. 169: uint32(0x3f2eea71),
  2497. 170: uint32(0x654fd511),
  2498. 171: uint32(0xe5bfc20e),
  2499. 172: uint32(0xd18dabd1),
  2500. 173: uint32(0x517dbcce),
  2501. 174: uint32(0x0b1c83ae),
  2502. 175: uint32(0x8bec94b1),
  2503. 176: uint32(0x01440cad),
  2504. 177: uint32(0x81b41bb2),
  2505. 178: uint32(0xdbd524d2),
  2506. 179: uint32(0x5b2533cd),
  2507. 180: uint32(0x6f175a12),
  2508. 181: uint32(0xefe74d0d),
  2509. 182: uint32(0xb586726d),
  2510. 183: uint32(0x35766572),
  2511. 184: uint32(0xdde2a1d3),
  2512. 185: uint32(0x5d12b6cc),
  2513. 186: uint32(0x077389ac),
  2514. 187: uint32(0x87839eb3),
  2515. 188: uint32(0xb3b1f76c),
  2516. 189: uint32(0x3341e073),
  2517. 190: uint32(0x6920df13),
  2518. 191: uint32(0xe9d0c80c),
  2519. 192: uint32(0xf4809ddf),
  2520. 193: uint32(0x74708ac0),
  2521. 194: uint32(0x2e11b5a0),
  2522. 195: uint32(0xaee1a2bf),
  2523. 196: uint32(0x9ad3cb60),
  2524. 197: uint32(0x1a23dc7f),
  2525. 198: uint32(0x4042e31f),
  2526. 199: uint32(0xc0b2f400),
  2527. 200: uint32(0x282630a1),
  2528. 201: uint32(0xa8d627be),
  2529. 202: uint32(0xf2b718de),
  2530. 203: uint32(0x72470fc1),
  2531. 204: uint32(0x4675661e),
  2532. 205: uint32(0xc6857101),
  2533. 206: uint32(0x9ce44e61),
  2534. 207: uint32(0x1c14597e),
  2535. 208: uint32(0x96bcc162),
  2536. 209: uint32(0x164cd67d),
  2537. 210: uint32(0x4c2de91d),
  2538. 211: uint32(0xccddfe02),
  2539. 212: uint32(0xf8ef97dd),
  2540. 213: uint32(0x781f80c2),
  2541. 214: uint32(0x227ebfa2),
  2542. 215: uint32(0xa28ea8bd),
  2543. 216: uint32(0x4a1a6c1c),
  2544. 217: uint32(0xcaea7b03),
  2545. 218: uint32(0x908b4463),
  2546. 219: uint32(0x107b537c),
  2547. 220: uint32(0x24493aa3),
  2548. 221: uint32(0xa4b92dbc),
  2549. 222: uint32(0xfed812dc),
  2550. 223: uint32(0x7e2805c3),
  2551. 224: uint32(0x30f824a5),
  2552. 225: uint32(0xb00833ba),
  2553. 226: uint32(0xea690cda),
  2554. 227: uint32(0x6a991bc5),
  2555. 228: uint32(0x5eab721a),
  2556. 229: uint32(0xde5b6505),
  2557. 230: uint32(0x843a5a65),
  2558. 231: uint32(0x04ca4d7a),
  2559. 232: uint32(0xec5e89db),
  2560. 233: uint32(0x6cae9ec4),
  2561. 234: uint32(0x36cfa1a4),
  2562. 235: uint32(0xb63fb6bb),
  2563. 236: uint32(0x820ddf64),
  2564. 237: uint32(0x02fdc87b),
  2565. 238: uint32(0x589cf71b),
  2566. 239: uint32(0xd86ce004),
  2567. 240: uint32(0x52c47818),
  2568. 241: uint32(0xd2346f07),
  2569. 242: uint32(0x88555067),
  2570. 243: uint32(0x08a54778),
  2571. 244: uint32(0x3c972ea7),
  2572. 245: uint32(0xbc6739b8),
  2573. 246: uint32(0xe60606d8),
  2574. 247: uint32(0x66f611c7),
  2575. 248: uint32(0x8e62d566),
  2576. 249: uint32(0x0e92c279),
  2577. 250: uint32(0x54f3fd19),
  2578. 251: uint32(0xd403ea06),
  2579. 252: uint32(0xe03183d9),
  2580. 253: uint32(0x60c194c6),
  2581. 254: uint32(0x3aa0aba6),
  2582. 255: uint32(0xba50bcb9),
  2583. },
  2584. 4: {
  2585. 1: uint32(0x9570d495),
  2586. 2: uint32(0xf190af6b),
  2587. 3: uint32(0x64e07bfe),
  2588. 4: uint32(0x38505897),
  2589. 5: uint32(0xad208c02),
  2590. 6: uint32(0xc9c0f7fc),
  2591. 7: uint32(0x5cb02369),
  2592. 8: uint32(0x70a0b12e),
  2593. 9: uint32(0xe5d065bb),
  2594. 10: uint32(0x81301e45),
  2595. 11: uint32(0x1440cad0),
  2596. 12: uint32(0x48f0e9b9),
  2597. 13: uint32(0xdd803d2c),
  2598. 14: uint32(0xb96046d2),
  2599. 15: uint32(0x2c109247),
  2600. 16: uint32(0xe141625c),
  2601. 17: uint32(0x7431b6c9),
  2602. 18: uint32(0x10d1cd37),
  2603. 19: uint32(0x85a119a2),
  2604. 20: uint32(0xd9113acb),
  2605. 21: uint32(0x4c61ee5e),
  2606. 22: uint32(0x288195a0),
  2607. 23: uint32(0xbdf14135),
  2608. 24: uint32(0x91e1d372),
  2609. 25: uint32(0x049107e7),
  2610. 26: uint32(0x60717c19),
  2611. 27: uint32(0xf501a88c),
  2612. 28: uint32(0xa9b18be5),
  2613. 29: uint32(0x3cc15f70),
  2614. 30: uint32(0x5821248e),
  2615. 31: uint32(0xcd51f01b),
  2616. 32: uint32(0x19f3c2f9),
  2617. 33: uint32(0x8c83166c),
  2618. 34: uint32(0xe8636d92),
  2619. 35: uint32(0x7d13b907),
  2620. 36: uint32(0x21a39a6e),
  2621. 37: uint32(0xb4d34efb),
  2622. 38: uint32(0xd0333505),
  2623. 39: uint32(0x4543e190),
  2624. 40: uint32(0x695373d7),
  2625. 41: uint32(0xfc23a742),
  2626. 42: uint32(0x98c3dcbc),
  2627. 43: uint32(0x0db30829),
  2628. 44: uint32(0x51032b40),
  2629. 45: uint32(0xc473ffd5),
  2630. 46: uint32(0xa093842b),
  2631. 47: uint32(0x35e350be),
  2632. 48: uint32(0xf8b2a0a5),
  2633. 49: uint32(0x6dc27430),
  2634. 50: uint32(0x09220fce),
  2635. 51: uint32(0x9c52db5b),
  2636. 52: uint32(0xc0e2f832),
  2637. 53: uint32(0x55922ca7),
  2638. 54: uint32(0x31725759),
  2639. 55: uint32(0xa40283cc),
  2640. 56: uint32(0x8812118b),
  2641. 57: uint32(0x1d62c51e),
  2642. 58: uint32(0x7982bee0),
  2643. 59: uint32(0xecf26a75),
  2644. 60: uint32(0xb042491c),
  2645. 61: uint32(0x25329d89),
  2646. 62: uint32(0x41d2e677),
  2647. 63: uint32(0xd4a232e2),
  2648. 64: uint32(0x33e785f2),
  2649. 65: uint32(0xa6975167),
  2650. 66: uint32(0xc2772a99),
  2651. 67: uint32(0x5707fe0c),
  2652. 68: uint32(0x0bb7dd65),
  2653. 69: uint32(0x9ec709f0),
  2654. 70: uint32(0xfa27720e),
  2655. 71: uint32(0x6f57a69b),
  2656. 72: uint32(0x434734dc),
  2657. 73: uint32(0xd637e049),
  2658. 74: uint32(0xb2d79bb7),
  2659. 75: uint32(0x27a74f22),
  2660. 76: uint32(0x7b176c4b),
  2661. 77: uint32(0xee67b8de),
  2662. 78: uint32(0x8a87c320),
  2663. 79: uint32(0x1ff717b5),
  2664. 80: uint32(0xd2a6e7ae),
  2665. 81: uint32(0x47d6333b),
  2666. 82: uint32(0x233648c5),
  2667. 83: uint32(0xb6469c50),
  2668. 84: uint32(0xeaf6bf39),
  2669. 85: uint32(0x7f866bac),
  2670. 86: uint32(0x1b661052),
  2671. 87: uint32(0x8e16c4c7),
  2672. 88: uint32(0xa2065680),
  2673. 89: uint32(0x37768215),
  2674. 90: uint32(0x5396f9eb),
  2675. 91: uint32(0xc6e62d7e),
  2676. 92: uint32(0x9a560e17),
  2677. 93: uint32(0x0f26da82),
  2678. 94: uint32(0x6bc6a17c),
  2679. 95: uint32(0xfeb675e9),
  2680. 96: uint32(0x2a14470b),
  2681. 97: uint32(0xbf64939e),
  2682. 98: uint32(0xdb84e860),
  2683. 99: uint32(0x4ef43cf5),
  2684. 100: uint32(0x12441f9c),
  2685. 101: uint32(0x8734cb09),
  2686. 102: uint32(0xe3d4b0f7),
  2687. 103: uint32(0x76a46462),
  2688. 104: uint32(0x5ab4f625),
  2689. 105: uint32(0xcfc422b0),
  2690. 106: uint32(0xab24594e),
  2691. 107: uint32(0x3e548ddb),
  2692. 108: uint32(0x62e4aeb2),
  2693. 109: uint32(0xf7947a27),
  2694. 110: uint32(0x937401d9),
  2695. 111: uint32(0x0604d54c),
  2696. 112: uint32(0xcb552557),
  2697. 113: uint32(0x5e25f1c2),
  2698. 114: uint32(0x3ac58a3c),
  2699. 115: uint32(0xafb55ea9),
  2700. 116: uint32(0xf3057dc0),
  2701. 117: uint32(0x6675a955),
  2702. 118: uint32(0x0295d2ab),
  2703. 119: uint32(0x97e5063e),
  2704. 120: uint32(0xbbf59479),
  2705. 121: uint32(0x2e8540ec),
  2706. 122: uint32(0x4a653b12),
  2707. 123: uint32(0xdf15ef87),
  2708. 124: uint32(0x83a5ccee),
  2709. 125: uint32(0x16d5187b),
  2710. 126: uint32(0x72356385),
  2711. 127: uint32(0xe745b710),
  2712. 128: uint32(0x67cf0be4),
  2713. 129: uint32(0xf2bfdf71),
  2714. 130: uint32(0x965fa48f),
  2715. 131: uint32(0x032f701a),
  2716. 132: uint32(0x5f9f5373),
  2717. 133: uint32(0xcaef87e6),
  2718. 134: uint32(0xae0ffc18),
  2719. 135: uint32(0x3b7f288d),
  2720. 136: uint32(0x176fbaca),
  2721. 137: uint32(0x821f6e5f),
  2722. 138: uint32(0xe6ff15a1),
  2723. 139: uint32(0x738fc134),
  2724. 140: uint32(0x2f3fe25d),
  2725. 141: uint32(0xba4f36c8),
  2726. 142: uint32(0xdeaf4d36),
  2727. 143: uint32(0x4bdf99a3),
  2728. 144: uint32(0x868e69b8),
  2729. 145: uint32(0x13febd2d),
  2730. 146: uint32(0x771ec6d3),
  2731. 147: uint32(0xe26e1246),
  2732. 148: uint32(0xbede312f),
  2733. 149: uint32(0x2baee5ba),
  2734. 150: uint32(0x4f4e9e44),
  2735. 151: uint32(0xda3e4ad1),
  2736. 152: uint32(0xf62ed896),
  2737. 153: uint32(0x635e0c03),
  2738. 154: uint32(0x07be77fd),
  2739. 155: uint32(0x92cea368),
  2740. 156: uint32(0xce7e8001),
  2741. 157: uint32(0x5b0e5494),
  2742. 158: uint32(0x3fee2f6a),
  2743. 159: uint32(0xaa9efbff),
  2744. 160: uint32(0x7e3cc91d),
  2745. 161: uint32(0xeb4c1d88),
  2746. 162: uint32(0x8fac6676),
  2747. 163: uint32(0x1adcb2e3),
  2748. 164: uint32(0x466c918a),
  2749. 165: uint32(0xd31c451f),
  2750. 166: uint32(0xb7fc3ee1),
  2751. 167: uint32(0x228cea74),
  2752. 168: uint32(0x0e9c7833),
  2753. 169: uint32(0x9becaca6),
  2754. 170: uint32(0xff0cd758),
  2755. 171: uint32(0x6a7c03cd),
  2756. 172: uint32(0x36cc20a4),
  2757. 173: uint32(0xa3bcf431),
  2758. 174: uint32(0xc75c8fcf),
  2759. 175: uint32(0x522c5b5a),
  2760. 176: uint32(0x9f7dab41),
  2761. 177: uint32(0x0a0d7fd4),
  2762. 178: uint32(0x6eed042a),
  2763. 179: uint32(0xfb9dd0bf),
  2764. 180: uint32(0xa72df3d6),
  2765. 181: uint32(0x325d2743),
  2766. 182: uint32(0x56bd5cbd),
  2767. 183: uint32(0xc3cd8828),
  2768. 184: uint32(0xefdd1a6f),
  2769. 185: uint32(0x7aadcefa),
  2770. 186: uint32(0x1e4db504),
  2771. 187: uint32(0x8b3d6191),
  2772. 188: uint32(0xd78d42f8),
  2773. 189: uint32(0x42fd966d),
  2774. 190: uint32(0x261ded93),
  2775. 191: uint32(0xb36d3906),
  2776. 192: uint32(0x54288e16),
  2777. 193: uint32(0xc1585a83),
  2778. 194: uint32(0xa5b8217d),
  2779. 195: uint32(0x30c8f5e8),
  2780. 196: uint32(0x6c78d681),
  2781. 197: uint32(0xf9080214),
  2782. 198: uint32(0x9de879ea),
  2783. 199: uint32(0x0898ad7f),
  2784. 200: uint32(0x24883f38),
  2785. 201: uint32(0xb1f8ebad),
  2786. 202: uint32(0xd5189053),
  2787. 203: uint32(0x406844c6),
  2788. 204: uint32(0x1cd867af),
  2789. 205: uint32(0x89a8b33a),
  2790. 206: uint32(0xed48c8c4),
  2791. 207: uint32(0x78381c51),
  2792. 208: uint32(0xb569ec4a),
  2793. 209: uint32(0x201938df),
  2794. 210: uint32(0x44f94321),
  2795. 211: uint32(0xd18997b4),
  2796. 212: uint32(0x8d39b4dd),
  2797. 213: uint32(0x18496048),
  2798. 214: uint32(0x7ca91bb6),
  2799. 215: uint32(0xe9d9cf23),
  2800. 216: uint32(0xc5c95d64),
  2801. 217: uint32(0x50b989f1),
  2802. 218: uint32(0x3459f20f),
  2803. 219: uint32(0xa129269a),
  2804. 220: uint32(0xfd9905f3),
  2805. 221: uint32(0x68e9d166),
  2806. 222: uint32(0x0c09aa98),
  2807. 223: uint32(0x99797e0d),
  2808. 224: uint32(0x4ddb4cef),
  2809. 225: uint32(0xd8ab987a),
  2810. 226: uint32(0xbc4be384),
  2811. 227: uint32(0x293b3711),
  2812. 228: uint32(0x758b1478),
  2813. 229: uint32(0xe0fbc0ed),
  2814. 230: uint32(0x841bbb13),
  2815. 231: uint32(0x116b6f86),
  2816. 232: uint32(0x3d7bfdc1),
  2817. 233: uint32(0xa80b2954),
  2818. 234: uint32(0xcceb52aa),
  2819. 235: uint32(0x599b863f),
  2820. 236: uint32(0x052ba556),
  2821. 237: uint32(0x905b71c3),
  2822. 238: uint32(0xf4bb0a3d),
  2823. 239: uint32(0x61cbdea8),
  2824. 240: uint32(0xac9a2eb3),
  2825. 241: uint32(0x39eafa26),
  2826. 242: uint32(0x5d0a81d8),
  2827. 243: uint32(0xc87a554d),
  2828. 244: uint32(0x94ca7624),
  2829. 245: uint32(0x01baa2b1),
  2830. 246: uint32(0x655ad94f),
  2831. 247: uint32(0xf02a0dda),
  2832. 248: uint32(0xdc3a9f9d),
  2833. 249: uint32(0x494a4b08),
  2834. 250: uint32(0x2daa30f6),
  2835. 251: uint32(0xb8dae463),
  2836. 252: uint32(0xe46ac70a),
  2837. 253: uint32(0x711a139f),
  2838. 254: uint32(0x15fa6861),
  2839. 255: uint32(0x808abcf4),
  2840. },
  2841. 5: {
  2842. 1: uint32(0xcf9e17c8),
  2843. 2: uint32(0x444d29d1),
  2844. 3: uint32(0x8bd33e19),
  2845. 4: uint32(0x889a53a2),
  2846. 5: uint32(0x4704446a),
  2847. 6: uint32(0xccd77a73),
  2848. 7: uint32(0x03496dbb),
  2849. 8: uint32(0xca45a105),
  2850. 9: uint32(0x05dbb6cd),
  2851. 10: uint32(0x8e0888d4),
  2852. 11: uint32(0x41969f1c),
  2853. 12: uint32(0x42dff2a7),
  2854. 13: uint32(0x8d41e56f),
  2855. 14: uint32(0x0692db76),
  2856. 15: uint32(0xc90cccbe),
  2857. 16: uint32(0x4ffa444b),
  2858. 17: uint32(0x80645383),
  2859. 18: uint32(0x0bb76d9a),
  2860. 19: uint32(0xc4297a52),
  2861. 20: uint32(0xc76017e9),
  2862. 21: uint32(0x08fe0021),
  2863. 22: uint32(0x832d3e38),
  2864. 23: uint32(0x4cb329f0),
  2865. 24: uint32(0x85bfe54e),
  2866. 25: uint32(0x4a21f286),
  2867. 26: uint32(0xc1f2cc9f),
  2868. 27: uint32(0x0e6cdb57),
  2869. 28: uint32(0x0d25b6ec),
  2870. 29: uint32(0xc2bba124),
  2871. 30: uint32(0x49689f3d),
  2872. 31: uint32(0x86f688f5),
  2873. 32: uint32(0x9ff48896),
  2874. 33: uint32(0x506a9f5e),
  2875. 34: uint32(0xdbb9a147),
  2876. 35: uint32(0x1427b68f),
  2877. 36: uint32(0x176edb34),
  2878. 37: uint32(0xd8f0ccfc),
  2879. 38: uint32(0x5323f2e5),
  2880. 39: uint32(0x9cbde52d),
  2881. 40: uint32(0x55b12993),
  2882. 41: uint32(0x9a2f3e5b),
  2883. 42: uint32(0x11fc0042),
  2884. 43: uint32(0xde62178a),
  2885. 44: uint32(0xdd2b7a31),
  2886. 45: uint32(0x12b56df9),
  2887. 46: uint32(0x996653e0),
  2888. 47: uint32(0x56f84428),
  2889. 48: uint32(0xd00eccdd),
  2890. 49: uint32(0x1f90db15),
  2891. 50: uint32(0x9443e50c),
  2892. 51: uint32(0x5bddf2c4),
  2893. 52: uint32(0x58949f7f),
  2894. 53: uint32(0x970a88b7),
  2895. 54: uint32(0x1cd9b6ae),
  2896. 55: uint32(0xd347a166),
  2897. 56: uint32(0x1a4b6dd8),
  2898. 57: uint32(0xd5d57a10),
  2899. 58: uint32(0x5e064409),
  2900. 59: uint32(0x919853c1),
  2901. 60: uint32(0x92d13e7a),
  2902. 61: uint32(0x5d4f29b2),
  2903. 62: uint32(0xd69c17ab),
  2904. 63: uint32(0x19020063),
  2905. 64: uint32(0xe498176d),
  2906. 65: uint32(0x2b0600a5),
  2907. 66: uint32(0xa0d53ebc),
  2908. 67: uint32(0x6f4b2974),
  2909. 68: uint32(0x6c0244cf),
  2910. 69: uint32(0xa39c5307),
  2911. 70: uint32(0x284f6d1e),
  2912. 71: uint32(0xe7d17ad6),
  2913. 72: uint32(0x2eddb668),
  2914. 73: uint32(0xe143a1a0),
  2915. 74: uint32(0x6a909fb9),
  2916. 75: uint32(0xa50e8871),
  2917. 76: uint32(0xa647e5ca),
  2918. 77: uint32(0x69d9f202),
  2919. 78: uint32(0xe20acc1b),
  2920. 79: uint32(0x2d94dbd3),
  2921. 80: uint32(0xab625326),
  2922. 81: uint32(0x64fc44ee),
  2923. 82: uint32(0xef2f7af7),
  2924. 83: uint32(0x20b16d3f),
  2925. 84: uint32(0x23f80084),
  2926. 85: uint32(0xec66174c),
  2927. 86: uint32(0x67b52955),
  2928. 87: uint32(0xa82b3e9d),
  2929. 88: uint32(0x6127f223),
  2930. 89: uint32(0xaeb9e5eb),
  2931. 90: uint32(0x256adbf2),
  2932. 91: uint32(0xeaf4cc3a),
  2933. 92: uint32(0xe9bda181),
  2934. 93: uint32(0x2623b649),
  2935. 94: uint32(0xadf08850),
  2936. 95: uint32(0x626e9f98),
  2937. 96: uint32(0x7b6c9ffb),
  2938. 97: uint32(0xb4f28833),
  2939. 98: uint32(0x3f21b62a),
  2940. 99: uint32(0xf0bfa1e2),
  2941. 100: uint32(0xf3f6cc59),
  2942. 101: uint32(0x3c68db91),
  2943. 102: uint32(0xb7bbe588),
  2944. 103: uint32(0x7825f240),
  2945. 104: uint32(0xb1293efe),
  2946. 105: uint32(0x7eb72936),
  2947. 106: uint32(0xf564172f),
  2948. 107: uint32(0x3afa00e7),
  2949. 108: uint32(0x39b36d5c),
  2950. 109: uint32(0xf62d7a94),
  2951. 110: uint32(0x7dfe448d),
  2952. 111: uint32(0xb2605345),
  2953. 112: uint32(0x3496dbb0),
  2954. 113: uint32(0xfb08cc78),
  2955. 114: uint32(0x70dbf261),
  2956. 115: uint32(0xbf45e5a9),
  2957. 116: uint32(0xbc0c8812),
  2958. 117: uint32(0x73929fda),
  2959. 118: uint32(0xf841a1c3),
  2960. 119: uint32(0x37dfb60b),
  2961. 120: uint32(0xfed37ab5),
  2962. 121: uint32(0x314d6d7d),
  2963. 122: uint32(0xba9e5364),
  2964. 123: uint32(0x750044ac),
  2965. 124: uint32(0x76492917),
  2966. 125: uint32(0xb9d73edf),
  2967. 126: uint32(0x320400c6),
  2968. 127: uint32(0xfd9a170e),
  2969. 128: uint32(0x1241289b),
  2970. 129: uint32(0xdddf3f53),
  2971. 130: uint32(0x560c014a),
  2972. 131: uint32(0x99921682),
  2973. 132: uint32(0x9adb7b39),
  2974. 133: uint32(0x55456cf1),
  2975. 134: uint32(0xde9652e8),
  2976. 135: uint32(0x11084520),
  2977. 136: uint32(0xd804899e),
  2978. 137: uint32(0x179a9e56),
  2979. 138: uint32(0x9c49a04f),
  2980. 139: uint32(0x53d7b787),
  2981. 140: uint32(0x509eda3c),
  2982. 141: uint32(0x9f00cdf4),
  2983. 142: uint32(0x14d3f3ed),
  2984. 143: uint32(0xdb4de425),
  2985. 144: uint32(0x5dbb6cd0),
  2986. 145: uint32(0x92257b18),
  2987. 146: uint32(0x19f64501),
  2988. 147: uint32(0xd66852c9),
  2989. 148: uint32(0xd5213f72),
  2990. 149: uint32(0x1abf28ba),
  2991. 150: uint32(0x916c16a3),
  2992. 151: uint32(0x5ef2016b),
  2993. 152: uint32(0x97fecdd5),
  2994. 153: uint32(0x5860da1d),
  2995. 154: uint32(0xd3b3e404),
  2996. 155: uint32(0x1c2df3cc),
  2997. 156: uint32(0x1f649e77),
  2998. 157: uint32(0xd0fa89bf),
  2999. 158: uint32(0x5b29b7a6),
  3000. 159: uint32(0x94b7a06e),
  3001. 160: uint32(0x8db5a00d),
  3002. 161: uint32(0x422bb7c5),
  3003. 162: uint32(0xc9f889dc),
  3004. 163: uint32(0x06669e14),
  3005. 164: uint32(0x052ff3af),
  3006. 165: uint32(0xcab1e467),
  3007. 166: uint32(0x4162da7e),
  3008. 167: uint32(0x8efccdb6),
  3009. 168: uint32(0x47f00108),
  3010. 169: uint32(0x886e16c0),
  3011. 170: uint32(0x03bd28d9),
  3012. 171: uint32(0xcc233f11),
  3013. 172: uint32(0xcf6a52aa),
  3014. 173: uint32(0x00f44562),
  3015. 174: uint32(0x8b277b7b),
  3016. 175: uint32(0x44b96cb3),
  3017. 176: uint32(0xc24fe446),
  3018. 177: uint32(0x0dd1f38e),
  3019. 178: uint32(0x8602cd97),
  3020. 179: uint32(0x499cda5f),
  3021. 180: uint32(0x4ad5b7e4),
  3022. 181: uint32(0x854ba02c),
  3023. 182: uint32(0x0e989e35),
  3024. 183: uint32(0xc10689fd),
  3025. 184: uint32(0x080a4543),
  3026. 185: uint32(0xc794528b),
  3027. 186: uint32(0x4c476c92),
  3028. 187: uint32(0x83d97b5a),
  3029. 188: uint32(0x809016e1),
  3030. 189: uint32(0x4f0e0129),
  3031. 190: uint32(0xc4dd3f30),
  3032. 191: uint32(0x0b4328f8),
  3033. 192: uint32(0xf6d93ff6),
  3034. 193: uint32(0x3947283e),
  3035. 194: uint32(0xb2941627),
  3036. 195: uint32(0x7d0a01ef),
  3037. 196: uint32(0x7e436c54),
  3038. 197: uint32(0xb1dd7b9c),
  3039. 198: uint32(0x3a0e4585),
  3040. 199: uint32(0xf590524d),
  3041. 200: uint32(0x3c9c9ef3),
  3042. 201: uint32(0xf302893b),
  3043. 202: uint32(0x78d1b722),
  3044. 203: uint32(0xb74fa0ea),
  3045. 204: uint32(0xb406cd51),
  3046. 205: uint32(0x7b98da99),
  3047. 206: uint32(0xf04be480),
  3048. 207: uint32(0x3fd5f348),
  3049. 208: uint32(0xb9237bbd),
  3050. 209: uint32(0x76bd6c75),
  3051. 210: uint32(0xfd6e526c),
  3052. 211: uint32(0x32f045a4),
  3053. 212: uint32(0x31b9281f),
  3054. 213: uint32(0xfe273fd7),
  3055. 214: uint32(0x75f401ce),
  3056. 215: uint32(0xba6a1606),
  3057. 216: uint32(0x7366dab8),
  3058. 217: uint32(0xbcf8cd70),
  3059. 218: uint32(0x372bf369),
  3060. 219: uint32(0xf8b5e4a1),
  3061. 220: uint32(0xfbfc891a),
  3062. 221: uint32(0x34629ed2),
  3063. 222: uint32(0xbfb1a0cb),
  3064. 223: uint32(0x702fb703),
  3065. 224: uint32(0x692db760),
  3066. 225: uint32(0xa6b3a0a8),
  3067. 226: uint32(0x2d609eb1),
  3068. 227: uint32(0xe2fe8979),
  3069. 228: uint32(0xe1b7e4c2),
  3070. 229: uint32(0x2e29f30a),
  3071. 230: uint32(0xa5facd13),
  3072. 231: uint32(0x6a64dadb),
  3073. 232: uint32(0xa3681665),
  3074. 233: uint32(0x6cf601ad),
  3075. 234: uint32(0xe7253fb4),
  3076. 235: uint32(0x28bb287c),
  3077. 236: uint32(0x2bf245c7),
  3078. 237: uint32(0xe46c520f),
  3079. 238: uint32(0x6fbf6c16),
  3080. 239: uint32(0xa0217bde),
  3081. 240: uint32(0x26d7f32b),
  3082. 241: uint32(0xe949e4e3),
  3083. 242: uint32(0x629adafa),
  3084. 243: uint32(0xad04cd32),
  3085. 244: uint32(0xae4da089),
  3086. 245: uint32(0x61d3b741),
  3087. 246: uint32(0xea008958),
  3088. 247: uint32(0x259e9e90),
  3089. 248: uint32(0xec92522e),
  3090. 249: uint32(0x230c45e6),
  3091. 250: uint32(0xa8df7bff),
  3092. 251: uint32(0x67416c37),
  3093. 252: uint32(0x6408018c),
  3094. 253: uint32(0xab961644),
  3095. 254: uint32(0x2045285d),
  3096. 255: uint32(0xefdb3f95),
  3097. },
  3098. 6: {
  3099. 1: uint32(0x24825136),
  3100. 2: uint32(0x4904a26c),
  3101. 3: uint32(0x6d86f35a),
  3102. 4: uint32(0x920944d8),
  3103. 5: uint32(0xb68b15ee),
  3104. 6: uint32(0xdb0de6b4),
  3105. 7: uint32(0xff8fb782),
  3106. 8: uint32(0xff638ff1),
  3107. 9: uint32(0xdbe1dec7),
  3108. 10: uint32(0xb6672d9d),
  3109. 11: uint32(0x92e57cab),
  3110. 12: uint32(0x6d6acb29),
  3111. 13: uint32(0x49e89a1f),
  3112. 14: uint32(0x246e6945),
  3113. 15: uint32(0x00ec3873),
  3114. 16: uint32(0x25b619a3),
  3115. 17: uint32(0x01344895),
  3116. 18: uint32(0x6cb2bbcf),
  3117. 19: uint32(0x4830eaf9),
  3118. 20: uint32(0xb7bf5d7b),
  3119. 21: uint32(0x933d0c4d),
  3120. 22: uint32(0xfebbff17),
  3121. 23: uint32(0xda39ae21),
  3122. 24: uint32(0xdad59652),
  3123. 25: uint32(0xfe57c764),
  3124. 26: uint32(0x93d1343e),
  3125. 27: uint32(0xb7536508),
  3126. 28: uint32(0x48dcd28a),
  3127. 29: uint32(0x6c5e83bc),
  3128. 30: uint32(0x01d870e6),
  3129. 31: uint32(0x255a21d0),
  3130. 32: uint32(0x4b6c3346),
  3131. 33: uint32(0x6fee6270),
  3132. 34: uint32(0x0268912a),
  3133. 35: uint32(0x26eac01c),
  3134. 36: uint32(0xd965779e),
  3135. 37: uint32(0xfde726a8),
  3136. 38: uint32(0x9061d5f2),
  3137. 39: uint32(0xb4e384c4),
  3138. 40: uint32(0xb40fbcb7),
  3139. 41: uint32(0x908ded81),
  3140. 42: uint32(0xfd0b1edb),
  3141. 43: uint32(0xd9894fed),
  3142. 44: uint32(0x2606f86f),
  3143. 45: uint32(0x0284a959),
  3144. 46: uint32(0x6f025a03),
  3145. 47: uint32(0x4b800b35),
  3146. 48: uint32(0x6eda2ae5),
  3147. 49: uint32(0x4a587bd3),
  3148. 50: uint32(0x27de8889),
  3149. 51: uint32(0x035cd9bf),
  3150. 52: uint32(0xfcd36e3d),
  3151. 53: uint32(0xd8513f0b),
  3152. 54: uint32(0xb5d7cc51),
  3153. 55: uint32(0x91559d67),
  3154. 56: uint32(0x91b9a514),
  3155. 57: uint32(0xb53bf422),
  3156. 58: uint32(0xd8bd0778),
  3157. 59: uint32(0xfc3f564e),
  3158. 60: uint32(0x03b0e1cc),
  3159. 61: uint32(0x2732b0fa),
  3160. 62: uint32(0x4ab443a0),
  3161. 63: uint32(0x6e361296),
  3162. 64: uint32(0x96d8668c),
  3163. 65: uint32(0xb25a37ba),
  3164. 66: uint32(0xdfdcc4e0),
  3165. 67: uint32(0xfb5e95d6),
  3166. 68: uint32(0x04d12254),
  3167. 69: uint32(0x20537362),
  3168. 70: uint32(0x4dd58038),
  3169. 71: uint32(0x6957d10e),
  3170. 72: uint32(0x69bbe97d),
  3171. 73: uint32(0x4d39b84b),
  3172. 74: uint32(0x20bf4b11),
  3173. 75: uint32(0x043d1a27),
  3174. 76: uint32(0xfbb2ada5),
  3175. 77: uint32(0xdf30fc93),
  3176. 78: uint32(0xb2b60fc9),
  3177. 79: uint32(0x96345eff),
  3178. 80: uint32(0xb36e7f2f),
  3179. 81: uint32(0x97ec2e19),
  3180. 82: uint32(0xfa6add43),
  3181. 83: uint32(0xdee88c75),
  3182. 84: uint32(0x21673bf7),
  3183. 85: uint32(0x05e56ac1),
  3184. 86: uint32(0x6863999b),
  3185. 87: uint32(0x4ce1c8ad),
  3186. 88: uint32(0x4c0df0de),
  3187. 89: uint32(0x688fa1e8),
  3188. 90: uint32(0x050952b2),
  3189. 91: uint32(0x218b0384),
  3190. 92: uint32(0xde04b406),
  3191. 93: uint32(0xfa86e530),
  3192. 94: uint32(0x9700166a),
  3193. 95: uint32(0xb382475c),
  3194. 96: uint32(0xddb455ca),
  3195. 97: uint32(0xf93604fc),
  3196. 98: uint32(0x94b0f7a6),
  3197. 99: uint32(0xb032a690),
  3198. 100: uint32(0x4fbd1112),
  3199. 101: uint32(0x6b3f4024),
  3200. 102: uint32(0x06b9b37e),
  3201. 103: uint32(0x223be248),
  3202. 104: uint32(0x22d7da3b),
  3203. 105: uint32(0x06558b0d),
  3204. 106: uint32(0x6bd37857),
  3205. 107: uint32(0x4f512961),
  3206. 108: uint32(0xb0de9ee3),
  3207. 109: uint32(0x945ccfd5),
  3208. 110: uint32(0xf9da3c8f),
  3209. 111: uint32(0xdd586db9),
  3210. 112: uint32(0xf8024c69),
  3211. 113: uint32(0xdc801d5f),
  3212. 114: uint32(0xb106ee05),
  3213. 115: uint32(0x9584bf33),
  3214. 116: uint32(0x6a0b08b1),
  3215. 117: uint32(0x4e895987),
  3216. 118: uint32(0x230faadd),
  3217. 119: uint32(0x078dfbeb),
  3218. 120: uint32(0x0761c398),
  3219. 121: uint32(0x23e392ae),
  3220. 122: uint32(0x4e6561f4),
  3221. 123: uint32(0x6ae730c2),
  3222. 124: uint32(0x95688740),
  3223. 125: uint32(0xb1ead676),
  3224. 126: uint32(0xdc6c252c),
  3225. 127: uint32(0xf8ee741a),
  3226. 128: uint32(0xf6c1cb59),
  3227. 129: uint32(0xd2439a6f),
  3228. 130: uint32(0xbfc56935),
  3229. 131: uint32(0x9b473803),
  3230. 132: uint32(0x64c88f81),
  3231. 133: uint32(0x404adeb7),
  3232. 134: uint32(0x2dcc2ded),
  3233. 135: uint32(0x094e7cdb),
  3234. 136: uint32(0x09a244a8),
  3235. 137: uint32(0x2d20159e),
  3236. 138: uint32(0x40a6e6c4),
  3237. 139: uint32(0x6424b7f2),
  3238. 140: uint32(0x9bab0070),
  3239. 141: uint32(0xbf295146),
  3240. 142: uint32(0xd2afa21c),
  3241. 143: uint32(0xf62df32a),
  3242. 144: uint32(0xd377d2fa),
  3243. 145: uint32(0xf7f583cc),
  3244. 146: uint32(0x9a737096),
  3245. 147: uint32(0xbef121a0),
  3246. 148: uint32(0x417e9622),
  3247. 149: uint32(0x65fcc714),
  3248. 150: uint32(0x087a344e),
  3249. 151: uint32(0x2cf86578),
  3250. 152: uint32(0x2c145d0b),
  3251. 153: uint32(0x08960c3d),
  3252. 154: uint32(0x6510ff67),
  3253. 155: uint32(0x4192ae51),
  3254. 156: uint32(0xbe1d19d3),
  3255. 157: uint32(0x9a9f48e5),
  3256. 158: uint32(0xf719bbbf),
  3257. 159: uint32(0xd39bea89),
  3258. 160: uint32(0xbdadf81f),
  3259. 161: uint32(0x992fa929),
  3260. 162: uint32(0xf4a95a73),
  3261. 163: uint32(0xd02b0b45),
  3262. 164: uint32(0x2fa4bcc7),
  3263. 165: uint32(0x0b26edf1),
  3264. 166: uint32(0x66a01eab),
  3265. 167: uint32(0x42224f9d),
  3266. 168: uint32(0x42ce77ee),
  3267. 169: uint32(0x664c26d8),
  3268. 170: uint32(0x0bcad582),
  3269. 171: uint32(0x2f4884b4),
  3270. 172: uint32(0xd0c73336),
  3271. 173: uint32(0xf4456200),
  3272. 174: uint32(0x99c3915a),
  3273. 175: uint32(0xbd41c06c),
  3274. 176: uint32(0x981be1bc),
  3275. 177: uint32(0xbc99b08a),
  3276. 178: uint32(0xd11f43d0),
  3277. 179: uint32(0xf59d12e6),
  3278. 180: uint32(0x0a12a564),
  3279. 181: uint32(0x2e90f452),
  3280. 182: uint32(0x43160708),
  3281. 183: uint32(0x6794563e),
  3282. 184: uint32(0x67786e4d),
  3283. 185: uint32(0x43fa3f7b),
  3284. 186: uint32(0x2e7ccc21),
  3285. 187: uint32(0x0afe9d17),
  3286. 188: uint32(0xf5712a95),
  3287. 189: uint32(0xd1f37ba3),
  3288. 190: uint32(0xbc7588f9),
  3289. 191: uint32(0x98f7d9cf),
  3290. 192: uint32(0x6019add5),
  3291. 193: uint32(0x449bfce3),
  3292. 194: uint32(0x291d0fb9),
  3293. 195: uint32(0x0d9f5e8f),
  3294. 196: uint32(0xf210e90d),
  3295. 197: uint32(0xd692b83b),
  3296. 198: uint32(0xbb144b61),
  3297. 199: uint32(0x9f961a57),
  3298. 200: uint32(0x9f7a2224),
  3299. 201: uint32(0xbbf87312),
  3300. 202: uint32(0xd67e8048),
  3301. 203: uint32(0xf2fcd17e),
  3302. 204: uint32(0x0d7366fc),
  3303. 205: uint32(0x29f137ca),
  3304. 206: uint32(0x4477c490),
  3305. 207: uint32(0x60f595a6),
  3306. 208: uint32(0x45afb476),
  3307. 209: uint32(0x612de540),
  3308. 210: uint32(0x0cab161a),
  3309. 211: uint32(0x2829472c),
  3310. 212: uint32(0xd7a6f0ae),
  3311. 213: uint32(0xf324a198),
  3312. 214: uint32(0x9ea252c2),
  3313. 215: uint32(0xba2003f4),
  3314. 216: uint32(0xbacc3b87),
  3315. 217: uint32(0x9e4e6ab1),
  3316. 218: uint32(0xf3c899eb),
  3317. 219: uint32(0xd74ac8dd),
  3318. 220: uint32(0x28c57f5f),
  3319. 221: uint32(0x0c472e69),
  3320. 222: uint32(0x61c1dd33),
  3321. 223: uint32(0x45438c05),
  3322. 224: uint32(0x2b759e93),
  3323. 225: uint32(0x0ff7cfa5),
  3324. 226: uint32(0x62713cff),
  3325. 227: uint32(0x46f36dc9),
  3326. 228: uint32(0xb97cda4b),
  3327. 229: uint32(0x9dfe8b7d),
  3328. 230: uint32(0xf0787827),
  3329. 231: uint32(0xd4fa2911),
  3330. 232: uint32(0xd4161162),
  3331. 233: uint32(0xf0944054),
  3332. 234: uint32(0x9d12b30e),
  3333. 235: uint32(0xb990e238),
  3334. 236: uint32(0x461f55ba),
  3335. 237: uint32(0x629d048c),
  3336. 238: uint32(0x0f1bf7d6),
  3337. 239: uint32(0x2b99a6e0),
  3338. 240: uint32(0x0ec38730),
  3339. 241: uint32(0x2a41d606),
  3340. 242: uint32(0x47c7255c),
  3341. 243: uint32(0x6345746a),
  3342. 244: uint32(0x9ccac3e8),
  3343. 245: uint32(0xb84892de),
  3344. 246: uint32(0xd5ce6184),
  3345. 247: uint32(0xf14c30b2),
  3346. 248: uint32(0xf1a008c1),
  3347. 249: uint32(0xd52259f7),
  3348. 250: uint32(0xb8a4aaad),
  3349. 251: uint32(0x9c26fb9b),
  3350. 252: uint32(0x63a94c19),
  3351. 253: uint32(0x472b1d2f),
  3352. 254: uint32(0x2aadee75),
  3353. 255: uint32(0x0e2fbf43),
  3354. },
  3355. 7: {
  3356. 1: uint32(0x36f290f3),
  3357. 2: uint32(0x6de521e6),
  3358. 3: uint32(0x5b17b115),
  3359. 4: uint32(0xdbca43cc),
  3360. 5: uint32(0xed38d33f),
  3361. 6: uint32(0xb62f622a),
  3362. 7: uint32(0x80ddf2d9),
  3363. 8: uint32(0x6ce581d9),
  3364. 9: uint32(0x5a17112a),
  3365. 10: uint32(0x0100a03f),
  3366. 11: uint32(0x37f230cc),
  3367. 12: uint32(0xb72fc215),
  3368. 13: uint32(0x81dd52e6),
  3369. 14: uint32(0xdacae3f3),
  3370. 15: uint32(0xec387300),
  3371. 16: uint32(0xd9cb03b2),
  3372. 17: uint32(0xef399341),
  3373. 18: uint32(0xb42e2254),
  3374. 19: uint32(0x82dcb2a7),
  3375. 20: uint32(0x0201407e),
  3376. 21: uint32(0x34f3d08d),
  3377. 22: uint32(0x6fe46198),
  3378. 23: uint32(0x5916f16b),
  3379. 24: uint32(0xb52e826b),
  3380. 25: uint32(0x83dc1298),
  3381. 26: uint32(0xd8cba38d),
  3382. 27: uint32(0xee39337e),
  3383. 28: uint32(0x6ee4c1a7),
  3384. 29: uint32(0x58165154),
  3385. 30: uint32(0x0301e041),
  3386. 31: uint32(0x35f370b2),
  3387. 32: uint32(0x68e70125),
  3388. 33: uint32(0x5e1591d6),
  3389. 34: uint32(0x050220c3),
  3390. 35: uint32(0x33f0b030),
  3391. 36: uint32(0xb32d42e9),
  3392. 37: uint32(0x85dfd21a),
  3393. 38: uint32(0xdec8630f),
  3394. 39: uint32(0xe83af3fc),
  3395. 40: uint32(0x040280fc),
  3396. 41: uint32(0x32f0100f),
  3397. 42: uint32(0x69e7a11a),
  3398. 43: uint32(0x5f1531e9),
  3399. 44: uint32(0xdfc8c330),
  3400. 45: uint32(0xe93a53c3),
  3401. 46: uint32(0xb22de2d6),
  3402. 47: uint32(0x84df7225),
  3403. 48: uint32(0xb12c0297),
  3404. 49: uint32(0x87de9264),
  3405. 50: uint32(0xdcc92371),
  3406. 51: uint32(0xea3bb382),
  3407. 52: uint32(0x6ae6415b),
  3408. 53: uint32(0x5c14d1a8),
  3409. 54: uint32(0x070360bd),
  3410. 55: uint32(0x31f1f04e),
  3411. 56: uint32(0xddc9834e),
  3412. 57: uint32(0xeb3b13bd),
  3413. 58: uint32(0xb02ca2a8),
  3414. 59: uint32(0x86de325b),
  3415. 60: uint32(0x0603c082),
  3416. 61: uint32(0x30f15071),
  3417. 62: uint32(0x6be6e164),
  3418. 63: uint32(0x5d147197),
  3419. 64: uint32(0xd1ce024a),
  3420. 65: uint32(0xe73c92b9),
  3421. 66: uint32(0xbc2b23ac),
  3422. 67: uint32(0x8ad9b35f),
  3423. 68: uint32(0x0a044186),
  3424. 69: uint32(0x3cf6d175),
  3425. 70: uint32(0x67e16060),
  3426. 71: uint32(0x5113f093),
  3427. 72: uint32(0xbd2b8393),
  3428. 73: uint32(0x8bd91360),
  3429. 74: uint32(0xd0cea275),
  3430. 75: uint32(0xe63c3286),
  3431. 76: uint32(0x66e1c05f),
  3432. 77: uint32(0x501350ac),
  3433. 78: uint32(0x0b04e1b9),
  3434. 79: uint32(0x3df6714a),
  3435. 80: uint32(0x080501f8),
  3436. 81: uint32(0x3ef7910b),
  3437. 82: uint32(0x65e0201e),
  3438. 83: uint32(0x5312b0ed),
  3439. 84: uint32(0xd3cf4234),
  3440. 85: uint32(0xe53dd2c7),
  3441. 86: uint32(0xbe2a63d2),
  3442. 87: uint32(0x88d8f321),
  3443. 88: uint32(0x64e08021),
  3444. 89: uint32(0x521210d2),
  3445. 90: uint32(0x0905a1c7),
  3446. 91: uint32(0x3ff73134),
  3447. 92: uint32(0xbf2ac3ed),
  3448. 93: uint32(0x89d8531e),
  3449. 94: uint32(0xd2cfe20b),
  3450. 95: uint32(0xe43d72f8),
  3451. 96: uint32(0xb929036f),
  3452. 97: uint32(0x8fdb939c),
  3453. 98: uint32(0xd4cc2289),
  3454. 99: uint32(0xe23eb27a),
  3455. 100: uint32(0x62e340a3),
  3456. 101: uint32(0x5411d050),
  3457. 102: uint32(0x0f066145),
  3458. 103: uint32(0x39f4f1b6),
  3459. 104: uint32(0xd5cc82b6),
  3460. 105: uint32(0xe33e1245),
  3461. 106: uint32(0xb829a350),
  3462. 107: uint32(0x8edb33a3),
  3463. 108: uint32(0x0e06c17a),
  3464. 109: uint32(0x38f45189),
  3465. 110: uint32(0x63e3e09c),
  3466. 111: uint32(0x5511706f),
  3467. 112: uint32(0x60e200dd),
  3468. 113: uint32(0x5610902e),
  3469. 114: uint32(0x0d07213b),
  3470. 115: uint32(0x3bf5b1c8),
  3471. 116: uint32(0xbb284311),
  3472. 117: uint32(0x8ddad3e2),
  3473. 118: uint32(0xd6cd62f7),
  3474. 119: uint32(0xe03ff204),
  3475. 120: uint32(0x0c078104),
  3476. 121: uint32(0x3af511f7),
  3477. 122: uint32(0x61e2a0e2),
  3478. 123: uint32(0x57103011),
  3479. 124: uint32(0xd7cdc2c8),
  3480. 125: uint32(0xe13f523b),
  3481. 126: uint32(0xba28e32e),
  3482. 127: uint32(0x8cda73dd),
  3483. 128: uint32(0x78ed02d5),
  3484. 129: uint32(0x4e1f9226),
  3485. 130: uint32(0x15082333),
  3486. 131: uint32(0x23fab3c0),
  3487. 132: uint32(0xa3274119),
  3488. 133: uint32(0x95d5d1ea),
  3489. 134: uint32(0xcec260ff),
  3490. 135: uint32(0xf830f00c),
  3491. 136: uint32(0x1408830c),
  3492. 137: uint32(0x22fa13ff),
  3493. 138: uint32(0x79eda2ea),
  3494. 139: uint32(0x4f1f3219),
  3495. 140: uint32(0xcfc2c0c0),
  3496. 141: uint32(0xf9305033),
  3497. 142: uint32(0xa227e126),
  3498. 143: uint32(0x94d571d5),
  3499. 144: uint32(0xa1260167),
  3500. 145: uint32(0x97d49194),
  3501. 146: uint32(0xccc32081),
  3502. 147: uint32(0xfa31b072),
  3503. 148: uint32(0x7aec42ab),
  3504. 149: uint32(0x4c1ed258),
  3505. 150: uint32(0x1709634d),
  3506. 151: uint32(0x21fbf3be),
  3507. 152: uint32(0xcdc380be),
  3508. 153: uint32(0xfb31104d),
  3509. 154: uint32(0xa026a158),
  3510. 155: uint32(0x96d431ab),
  3511. 156: uint32(0x1609c372),
  3512. 157: uint32(0x20fb5381),
  3513. 158: uint32(0x7bece294),
  3514. 159: uint32(0x4d1e7267),
  3515. 160: uint32(0x100a03f0),
  3516. 161: uint32(0x26f89303),
  3517. 162: uint32(0x7def2216),
  3518. 163: uint32(0x4b1db2e5),
  3519. 164: uint32(0xcbc0403c),
  3520. 165: uint32(0xfd32d0cf),
  3521. 166: uint32(0xa62561da),
  3522. 167: uint32(0x90d7f129),
  3523. 168: uint32(0x7cef8229),
  3524. 169: uint32(0x4a1d12da),
  3525. 170: uint32(0x110aa3cf),
  3526. 171: uint32(0x27f8333c),
  3527. 172: uint32(0xa725c1e5),
  3528. 173: uint32(0x91d75116),
  3529. 174: uint32(0xcac0e003),
  3530. 175: uint32(0xfc3270f0),
  3531. 176: uint32(0xc9c10042),
  3532. 177: uint32(0xff3390b1),
  3533. 178: uint32(0xa42421a4),
  3534. 179: uint32(0x92d6b157),
  3535. 180: uint32(0x120b438e),
  3536. 181: uint32(0x24f9d37d),
  3537. 182: uint32(0x7fee6268),
  3538. 183: uint32(0x491cf29b),
  3539. 184: uint32(0xa524819b),
  3540. 185: uint32(0x93d61168),
  3541. 186: uint32(0xc8c1a07d),
  3542. 187: uint32(0xfe33308e),
  3543. 188: uint32(0x7eeec257),
  3544. 189: uint32(0x481c52a4),
  3545. 190: uint32(0x130be3b1),
  3546. 191: uint32(0x25f97342),
  3547. 192: uint32(0xa923009f),
  3548. 193: uint32(0x9fd1906c),
  3549. 194: uint32(0xc4c62179),
  3550. 195: uint32(0xf234b18a),
  3551. 196: uint32(0x72e94353),
  3552. 197: uint32(0x441bd3a0),
  3553. 198: uint32(0x1f0c62b5),
  3554. 199: uint32(0x29fef246),
  3555. 200: uint32(0xc5c68146),
  3556. 201: uint32(0xf33411b5),
  3557. 202: uint32(0xa823a0a0),
  3558. 203: uint32(0x9ed13053),
  3559. 204: uint32(0x1e0cc28a),
  3560. 205: uint32(0x28fe5279),
  3561. 206: uint32(0x73e9e36c),
  3562. 207: uint32(0x451b739f),
  3563. 208: uint32(0x70e8032d),
  3564. 209: uint32(0x461a93de),
  3565. 210: uint32(0x1d0d22cb),
  3566. 211: uint32(0x2bffb238),
  3567. 212: uint32(0xab2240e1),
  3568. 213: uint32(0x9dd0d012),
  3569. 214: uint32(0xc6c76107),
  3570. 215: uint32(0xf035f1f4),
  3571. 216: uint32(0x1c0d82f4),
  3572. 217: uint32(0x2aff1207),
  3573. 218: uint32(0x71e8a312),
  3574. 219: uint32(0x471a33e1),
  3575. 220: uint32(0xc7c7c138),
  3576. 221: uint32(0xf13551cb),
  3577. 222: uint32(0xaa22e0de),
  3578. 223: uint32(0x9cd0702d),
  3579. 224: uint32(0xc1c401ba),
  3580. 225: uint32(0xf7369149),
  3581. 226: uint32(0xac21205c),
  3582. 227: uint32(0x9ad3b0af),
  3583. 228: uint32(0x1a0e4276),
  3584. 229: uint32(0x2cfcd285),
  3585. 230: uint32(0x77eb6390),
  3586. 231: uint32(0x4119f363),
  3587. 232: uint32(0xad218063),
  3588. 233: uint32(0x9bd31090),
  3589. 234: uint32(0xc0c4a185),
  3590. 235: uint32(0xf6363176),
  3591. 236: uint32(0x76ebc3af),
  3592. 237: uint32(0x4019535c),
  3593. 238: uint32(0x1b0ee249),
  3594. 239: uint32(0x2dfc72ba),
  3595. 240: uint32(0x180f0208),
  3596. 241: uint32(0x2efd92fb),
  3597. 242: uint32(0x75ea23ee),
  3598. 243: uint32(0x4318b31d),
  3599. 244: uint32(0xc3c541c4),
  3600. 245: uint32(0xf537d137),
  3601. 246: uint32(0xae206022),
  3602. 247: uint32(0x98d2f0d1),
  3603. 248: uint32(0x74ea83d1),
  3604. 249: uint32(0x42181322),
  3605. 250: uint32(0x190fa237),
  3606. 251: uint32(0x2ffd32c4),
  3607. 252: uint32(0xaf20c01d),
  3608. 253: uint32(0x99d250ee),
  3609. 254: uint32(0xc2c5e1fb),
  3610. 255: uint32(0xf4377108),
  3611. },
  3612. }
  3613. var _crc_braid_big_table = [8][256]Tz_word_t{
  3614. 0: {
  3615. 1: uint64(0xf390f23600000000),
  3616. 2: uint64(0xe621e56d00000000),
  3617. 3: uint64(0x15b1175b00000000),
  3618. 4: uint64(0xcc43cadb00000000),
  3619. 5: uint64(0x3fd338ed00000000),
  3620. 6: uint64(0x2a622fb600000000),
  3621. 7: uint64(0xd9f2dd8000000000),
  3622. 8: uint64(0xd981e56c00000000),
  3623. 9: uint64(0x2a11175a00000000),
  3624. 10: uint64(0x3fa0000100000000),
  3625. 11: uint64(0xcc30f23700000000),
  3626. 12: uint64(0x15c22fb700000000),
  3627. 13: uint64(0xe652dd8100000000),
  3628. 14: uint64(0xf3e3cada00000000),
  3629. 15: uint64(0x007338ec00000000),
  3630. 16: uint64(0xb203cbd900000000),
  3631. 17: uint64(0x419339ef00000000),
  3632. 18: uint64(0x54222eb400000000),
  3633. 19: uint64(0xa7b2dc8200000000),
  3634. 20: uint64(0x7e40010200000000),
  3635. 21: uint64(0x8dd0f33400000000),
  3636. 22: uint64(0x9861e46f00000000),
  3637. 23: uint64(0x6bf1165900000000),
  3638. 24: uint64(0x6b822eb500000000),
  3639. 25: uint64(0x9812dc8300000000),
  3640. 26: uint64(0x8da3cbd800000000),
  3641. 27: uint64(0x7e3339ee00000000),
  3642. 28: uint64(0xa7c1e46e00000000),
  3643. 29: uint64(0x5451165800000000),
  3644. 30: uint64(0x41e0010300000000),
  3645. 31: uint64(0xb270f33500000000),
  3646. 32: uint64(0x2501e76800000000),
  3647. 33: uint64(0xd691155e00000000),
  3648. 34: uint64(0xc320020500000000),
  3649. 35: uint64(0x30b0f03300000000),
  3650. 36: uint64(0xe9422db300000000),
  3651. 37: uint64(0x1ad2df8500000000),
  3652. 38: uint64(0x0f63c8de00000000),
  3653. 39: uint64(0xfcf33ae800000000),
  3654. 40: uint64(0xfc80020400000000),
  3655. 41: uint64(0x0f10f03200000000),
  3656. 42: uint64(0x1aa1e76900000000),
  3657. 43: uint64(0xe931155f00000000),
  3658. 44: uint64(0x30c3c8df00000000),
  3659. 45: uint64(0xc3533ae900000000),
  3660. 46: uint64(0xd6e22db200000000),
  3661. 47: uint64(0x2572df8400000000),
  3662. 48: uint64(0x97022cb100000000),
  3663. 49: uint64(0x6492de8700000000),
  3664. 50: uint64(0x7123c9dc00000000),
  3665. 51: uint64(0x82b33bea00000000),
  3666. 52: uint64(0x5b41e66a00000000),
  3667. 53: uint64(0xa8d1145c00000000),
  3668. 54: uint64(0xbd60030700000000),
  3669. 55: uint64(0x4ef0f13100000000),
  3670. 56: uint64(0x4e83c9dd00000000),
  3671. 57: uint64(0xbd133beb00000000),
  3672. 58: uint64(0xa8a22cb000000000),
  3673. 59: uint64(0x5b32de8600000000),
  3674. 60: uint64(0x82c0030600000000),
  3675. 61: uint64(0x7150f13000000000),
  3676. 62: uint64(0x64e1e66b00000000),
  3677. 63: uint64(0x9771145d00000000),
  3678. 64: uint64(0x4a02ced100000000),
  3679. 65: uint64(0xb9923ce700000000),
  3680. 66: uint64(0xac232bbc00000000),
  3681. 67: uint64(0x5fb3d98a00000000),
  3682. 68: uint64(0x8641040a00000000),
  3683. 69: uint64(0x75d1f63c00000000),
  3684. 70: uint64(0x6060e16700000000),
  3685. 71: uint64(0x93f0135100000000),
  3686. 72: uint64(0x93832bbd00000000),
  3687. 73: uint64(0x6013d98b00000000),
  3688. 74: uint64(0x75a2ced000000000),
  3689. 75: uint64(0x86323ce600000000),
  3690. 76: uint64(0x5fc0e16600000000),
  3691. 77: uint64(0xac50135000000000),
  3692. 78: uint64(0xb9e1040b00000000),
  3693. 79: uint64(0x4a71f63d00000000),
  3694. 80: uint64(0xf801050800000000),
  3695. 81: uint64(0x0b91f73e00000000),
  3696. 82: uint64(0x1e20e06500000000),
  3697. 83: uint64(0xedb0125300000000),
  3698. 84: uint64(0x3442cfd300000000),
  3699. 85: uint64(0xc7d23de500000000),
  3700. 86: uint64(0xd2632abe00000000),
  3701. 87: uint64(0x21f3d88800000000),
  3702. 88: uint64(0x2180e06400000000),
  3703. 89: uint64(0xd210125200000000),
  3704. 90: uint64(0xc7a1050900000000),
  3705. 91: uint64(0x3431f73f00000000),
  3706. 92: uint64(0xedc32abf00000000),
  3707. 93: uint64(0x1e53d88900000000),
  3708. 94: uint64(0x0be2cfd200000000),
  3709. 95: uint64(0xf8723de400000000),
  3710. 96: uint64(0x6f0329b900000000),
  3711. 97: uint64(0x9c93db8f00000000),
  3712. 98: uint64(0x8922ccd400000000),
  3713. 99: uint64(0x7ab23ee200000000),
  3714. 100: uint64(0xa340e36200000000),
  3715. 101: uint64(0x50d0115400000000),
  3716. 102: uint64(0x4561060f00000000),
  3717. 103: uint64(0xb6f1f43900000000),
  3718. 104: uint64(0xb682ccd500000000),
  3719. 105: uint64(0x45123ee300000000),
  3720. 106: uint64(0x50a329b800000000),
  3721. 107: uint64(0xa333db8e00000000),
  3722. 108: uint64(0x7ac1060e00000000),
  3723. 109: uint64(0x8951f43800000000),
  3724. 110: uint64(0x9ce0e36300000000),
  3725. 111: uint64(0x6f70115500000000),
  3726. 112: uint64(0xdd00e26000000000),
  3727. 113: uint64(0x2e90105600000000),
  3728. 114: uint64(0x3b21070d00000000),
  3729. 115: uint64(0xc8b1f53b00000000),
  3730. 116: uint64(0x114328bb00000000),
  3731. 117: uint64(0xe2d3da8d00000000),
  3732. 118: uint64(0xf762cdd600000000),
  3733. 119: uint64(0x04f23fe000000000),
  3734. 120: uint64(0x0481070c00000000),
  3735. 121: uint64(0xf711f53a00000000),
  3736. 122: uint64(0xe2a0e26100000000),
  3737. 123: uint64(0x1130105700000000),
  3738. 124: uint64(0xc8c2cdd700000000),
  3739. 125: uint64(0x3b523fe100000000),
  3740. 126: uint64(0x2ee328ba00000000),
  3741. 127: uint64(0xdd73da8c00000000),
  3742. 128: uint64(0xd502ed7800000000),
  3743. 129: uint64(0x26921f4e00000000),
  3744. 130: uint64(0x3323081500000000),
  3745. 131: uint64(0xc0b3fa2300000000),
  3746. 132: uint64(0x194127a300000000),
  3747. 133: uint64(0xead1d59500000000),
  3748. 134: uint64(0xff60c2ce00000000),
  3749. 135: uint64(0x0cf030f800000000),
  3750. 136: uint64(0x0c83081400000000),
  3751. 137: uint64(0xff13fa2200000000),
  3752. 138: uint64(0xeaa2ed7900000000),
  3753. 139: uint64(0x19321f4f00000000),
  3754. 140: uint64(0xc0c0c2cf00000000),
  3755. 141: uint64(0x335030f900000000),
  3756. 142: uint64(0x26e127a200000000),
  3757. 143: uint64(0xd571d59400000000),
  3758. 144: uint64(0x670126a100000000),
  3759. 145: uint64(0x9491d49700000000),
  3760. 146: uint64(0x8120c3cc00000000),
  3761. 147: uint64(0x72b031fa00000000),
  3762. 148: uint64(0xab42ec7a00000000),
  3763. 149: uint64(0x58d21e4c00000000),
  3764. 150: uint64(0x4d63091700000000),
  3765. 151: uint64(0xbef3fb2100000000),
  3766. 152: uint64(0xbe80c3cd00000000),
  3767. 153: uint64(0x4d1031fb00000000),
  3768. 154: uint64(0x58a126a000000000),
  3769. 155: uint64(0xab31d49600000000),
  3770. 156: uint64(0x72c3091600000000),
  3771. 157: uint64(0x8153fb2000000000),
  3772. 158: uint64(0x94e2ec7b00000000),
  3773. 159: uint64(0x67721e4d00000000),
  3774. 160: uint64(0xf0030a1000000000),
  3775. 161: uint64(0x0393f82600000000),
  3776. 162: uint64(0x1622ef7d00000000),
  3777. 163: uint64(0xe5b21d4b00000000),
  3778. 164: uint64(0x3c40c0cb00000000),
  3779. 165: uint64(0xcfd032fd00000000),
  3780. 166: uint64(0xda6125a600000000),
  3781. 167: uint64(0x29f1d79000000000),
  3782. 168: uint64(0x2982ef7c00000000),
  3783. 169: uint64(0xda121d4a00000000),
  3784. 170: uint64(0xcfa30a1100000000),
  3785. 171: uint64(0x3c33f82700000000),
  3786. 172: uint64(0xe5c125a700000000),
  3787. 173: uint64(0x1651d79100000000),
  3788. 174: uint64(0x03e0c0ca00000000),
  3789. 175: uint64(0xf07032fc00000000),
  3790. 176: uint64(0x4200c1c900000000),
  3791. 177: uint64(0xb19033ff00000000),
  3792. 178: uint64(0xa42124a400000000),
  3793. 179: uint64(0x57b1d69200000000),
  3794. 180: uint64(0x8e430b1200000000),
  3795. 181: uint64(0x7dd3f92400000000),
  3796. 182: uint64(0x6862ee7f00000000),
  3797. 183: uint64(0x9bf21c4900000000),
  3798. 184: uint64(0x9b8124a500000000),
  3799. 185: uint64(0x6811d69300000000),
  3800. 186: uint64(0x7da0c1c800000000),
  3801. 187: uint64(0x8e3033fe00000000),
  3802. 188: uint64(0x57c2ee7e00000000),
  3803. 189: uint64(0xa4521c4800000000),
  3804. 190: uint64(0xb1e30b1300000000),
  3805. 191: uint64(0x4273f92500000000),
  3806. 192: uint64(0x9f0023a900000000),
  3807. 193: uint64(0x6c90d19f00000000),
  3808. 194: uint64(0x7921c6c400000000),
  3809. 195: uint64(0x8ab134f200000000),
  3810. 196: uint64(0x5343e97200000000),
  3811. 197: uint64(0xa0d31b4400000000),
  3812. 198: uint64(0xb5620c1f00000000),
  3813. 199: uint64(0x46f2fe2900000000),
  3814. 200: uint64(0x4681c6c500000000),
  3815. 201: uint64(0xb51134f300000000),
  3816. 202: uint64(0xa0a023a800000000),
  3817. 203: uint64(0x5330d19e00000000),
  3818. 204: uint64(0x8ac20c1e00000000),
  3819. 205: uint64(0x7952fe2800000000),
  3820. 206: uint64(0x6ce3e97300000000),
  3821. 207: uint64(0x9f731b4500000000),
  3822. 208: uint64(0x2d03e87000000000),
  3823. 209: uint64(0xde931a4600000000),
  3824. 210: uint64(0xcb220d1d00000000),
  3825. 211: uint64(0x38b2ff2b00000000),
  3826. 212: uint64(0xe14022ab00000000),
  3827. 213: uint64(0x12d0d09d00000000),
  3828. 214: uint64(0x0761c7c600000000),
  3829. 215: uint64(0xf4f135f000000000),
  3830. 216: uint64(0xf4820d1c00000000),
  3831. 217: uint64(0x0712ff2a00000000),
  3832. 218: uint64(0x12a3e87100000000),
  3833. 219: uint64(0xe1331a4700000000),
  3834. 220: uint64(0x38c1c7c700000000),
  3835. 221: uint64(0xcb5135f100000000),
  3836. 222: uint64(0xdee022aa00000000),
  3837. 223: uint64(0x2d70d09c00000000),
  3838. 224: uint64(0xba01c4c100000000),
  3839. 225: uint64(0x499136f700000000),
  3840. 226: uint64(0x5c2021ac00000000),
  3841. 227: uint64(0xafb0d39a00000000),
  3842. 228: uint64(0x76420e1a00000000),
  3843. 229: uint64(0x85d2fc2c00000000),
  3844. 230: uint64(0x9063eb7700000000),
  3845. 231: uint64(0x63f3194100000000),
  3846. 232: uint64(0x638021ad00000000),
  3847. 233: uint64(0x9010d39b00000000),
  3848. 234: uint64(0x85a1c4c000000000),
  3849. 235: uint64(0x763136f600000000),
  3850. 236: uint64(0xafc3eb7600000000),
  3851. 237: uint64(0x5c53194000000000),
  3852. 238: uint64(0x49e20e1b00000000),
  3853. 239: uint64(0xba72fc2d00000000),
  3854. 240: uint64(0x08020f1800000000),
  3855. 241: uint64(0xfb92fd2e00000000),
  3856. 242: uint64(0xee23ea7500000000),
  3857. 243: uint64(0x1db3184300000000),
  3858. 244: uint64(0xc441c5c300000000),
  3859. 245: uint64(0x37d137f500000000),
  3860. 246: uint64(0x226020ae00000000),
  3861. 247: uint64(0xd1f0d29800000000),
  3862. 248: uint64(0xd183ea7400000000),
  3863. 249: uint64(0x2213184200000000),
  3864. 250: uint64(0x37a20f1900000000),
  3865. 251: uint64(0xc432fd2f00000000),
  3866. 252: uint64(0x1dc020af00000000),
  3867. 253: uint64(0xee50d29900000000),
  3868. 254: uint64(0xfbe1c5c200000000),
  3869. 255: uint64(0x087137f400000000),
  3870. },
  3871. 1: {
  3872. 1: uint64(0x3651822400000000),
  3873. 2: uint64(0x6ca2044900000000),
  3874. 3: uint64(0x5af3866d00000000),
  3875. 4: uint64(0xd844099200000000),
  3876. 5: uint64(0xee158bb600000000),
  3877. 6: uint64(0xb4e60ddb00000000),
  3878. 7: uint64(0x82b78fff00000000),
  3879. 8: uint64(0xf18f63ff00000000),
  3880. 9: uint64(0xc7dee1db00000000),
  3881. 10: uint64(0x9d2d67b600000000),
  3882. 11: uint64(0xab7ce59200000000),
  3883. 12: uint64(0x29cb6a6d00000000),
  3884. 13: uint64(0x1f9ae84900000000),
  3885. 14: uint64(0x45696e2400000000),
  3886. 15: uint64(0x7338ec0000000000),
  3887. 16: uint64(0xa319b62500000000),
  3888. 17: uint64(0x9548340100000000),
  3889. 18: uint64(0xcfbbb26c00000000),
  3890. 19: uint64(0xf9ea304800000000),
  3891. 20: uint64(0x7b5dbfb700000000),
  3892. 21: uint64(0x4d0c3d9300000000),
  3893. 22: uint64(0x17ffbbfe00000000),
  3894. 23: uint64(0x21ae39da00000000),
  3895. 24: uint64(0x5296d5da00000000),
  3896. 25: uint64(0x64c757fe00000000),
  3897. 26: uint64(0x3e34d19300000000),
  3898. 27: uint64(0x086553b700000000),
  3899. 28: uint64(0x8ad2dc4800000000),
  3900. 29: uint64(0xbc835e6c00000000),
  3901. 30: uint64(0xe670d80100000000),
  3902. 31: uint64(0xd0215a2500000000),
  3903. 32: uint64(0x46336c4b00000000),
  3904. 33: uint64(0x7062ee6f00000000),
  3905. 34: uint64(0x2a91680200000000),
  3906. 35: uint64(0x1cc0ea2600000000),
  3907. 36: uint64(0x9e7765d900000000),
  3908. 37: uint64(0xa826e7fd00000000),
  3909. 38: uint64(0xf2d5619000000000),
  3910. 39: uint64(0xc484e3b400000000),
  3911. 40: uint64(0xb7bc0fb400000000),
  3912. 41: uint64(0x81ed8d9000000000),
  3913. 42: uint64(0xdb1e0bfd00000000),
  3914. 43: uint64(0xed4f89d900000000),
  3915. 44: uint64(0x6ff8062600000000),
  3916. 45: uint64(0x59a9840200000000),
  3917. 46: uint64(0x035a026f00000000),
  3918. 47: uint64(0x350b804b00000000),
  3919. 48: uint64(0xe52ada6e00000000),
  3920. 49: uint64(0xd37b584a00000000),
  3921. 50: uint64(0x8988de2700000000),
  3922. 51: uint64(0xbfd95c0300000000),
  3923. 52: uint64(0x3d6ed3fc00000000),
  3924. 53: uint64(0x0b3f51d800000000),
  3925. 54: uint64(0x51ccd7b500000000),
  3926. 55: uint64(0x679d559100000000),
  3927. 56: uint64(0x14a5b99100000000),
  3928. 57: uint64(0x22f43bb500000000),
  3929. 58: uint64(0x7807bdd800000000),
  3930. 59: uint64(0x4e563ffc00000000),
  3931. 60: uint64(0xcce1b00300000000),
  3932. 61: uint64(0xfab0322700000000),
  3933. 62: uint64(0xa043b44a00000000),
  3934. 63: uint64(0x9612366e00000000),
  3935. 64: uint64(0x8c66d89600000000),
  3936. 65: uint64(0xba375ab200000000),
  3937. 66: uint64(0xe0c4dcdf00000000),
  3938. 67: uint64(0xd6955efb00000000),
  3939. 68: uint64(0x5422d10400000000),
  3940. 69: uint64(0x6273532000000000),
  3941. 70: uint64(0x3880d54d00000000),
  3942. 71: uint64(0x0ed1576900000000),
  3943. 72: uint64(0x7de9bb6900000000),
  3944. 73: uint64(0x4bb8394d00000000),
  3945. 74: uint64(0x114bbf2000000000),
  3946. 75: uint64(0x271a3d0400000000),
  3947. 76: uint64(0xa5adb2fb00000000),
  3948. 77: uint64(0x93fc30df00000000),
  3949. 78: uint64(0xc90fb6b200000000),
  3950. 79: uint64(0xff5e349600000000),
  3951. 80: uint64(0x2f7f6eb300000000),
  3952. 81: uint64(0x192eec9700000000),
  3953. 82: uint64(0x43dd6afa00000000),
  3954. 83: uint64(0x758ce8de00000000),
  3955. 84: uint64(0xf73b672100000000),
  3956. 85: uint64(0xc16ae50500000000),
  3957. 86: uint64(0x9b99636800000000),
  3958. 87: uint64(0xadc8e14c00000000),
  3959. 88: uint64(0xdef00d4c00000000),
  3960. 89: uint64(0xe8a18f6800000000),
  3961. 90: uint64(0xb252090500000000),
  3962. 91: uint64(0x84038b2100000000),
  3963. 92: uint64(0x06b404de00000000),
  3964. 93: uint64(0x30e586fa00000000),
  3965. 94: uint64(0x6a16009700000000),
  3966. 95: uint64(0x5c4782b300000000),
  3967. 96: uint64(0xca55b4dd00000000),
  3968. 97: uint64(0xfc0436f900000000),
  3969. 98: uint64(0xa6f7b09400000000),
  3970. 99: uint64(0x90a632b000000000),
  3971. 100: uint64(0x1211bd4f00000000),
  3972. 101: uint64(0x24403f6b00000000),
  3973. 102: uint64(0x7eb3b90600000000),
  3974. 103: uint64(0x48e23b2200000000),
  3975. 104: uint64(0x3bdad72200000000),
  3976. 105: uint64(0x0d8b550600000000),
  3977. 106: uint64(0x5778d36b00000000),
  3978. 107: uint64(0x6129514f00000000),
  3979. 108: uint64(0xe39edeb000000000),
  3980. 109: uint64(0xd5cf5c9400000000),
  3981. 110: uint64(0x8f3cdaf900000000),
  3982. 111: uint64(0xb96d58dd00000000),
  3983. 112: uint64(0x694c02f800000000),
  3984. 113: uint64(0x5f1d80dc00000000),
  3985. 114: uint64(0x05ee06b100000000),
  3986. 115: uint64(0x33bf849500000000),
  3987. 116: uint64(0xb1080b6a00000000),
  3988. 117: uint64(0x8759894e00000000),
  3989. 118: uint64(0xddaa0f2300000000),
  3990. 119: uint64(0xebfb8d0700000000),
  3991. 120: uint64(0x98c3610700000000),
  3992. 121: uint64(0xae92e32300000000),
  3993. 122: uint64(0xf461654e00000000),
  3994. 123: uint64(0xc230e76a00000000),
  3995. 124: uint64(0x4087689500000000),
  3996. 125: uint64(0x76d6eab100000000),
  3997. 126: uint64(0x2c256cdc00000000),
  3998. 127: uint64(0x1a74eef800000000),
  3999. 128: uint64(0x59cbc1f600000000),
  4000. 129: uint64(0x6f9a43d200000000),
  4001. 130: uint64(0x3569c5bf00000000),
  4002. 131: uint64(0x0338479b00000000),
  4003. 132: uint64(0x818fc86400000000),
  4004. 133: uint64(0xb7de4a4000000000),
  4005. 134: uint64(0xed2dcc2d00000000),
  4006. 135: uint64(0xdb7c4e0900000000),
  4007. 136: uint64(0xa844a20900000000),
  4008. 137: uint64(0x9e15202d00000000),
  4009. 138: uint64(0xc4e6a64000000000),
  4010. 139: uint64(0xf2b7246400000000),
  4011. 140: uint64(0x7000ab9b00000000),
  4012. 141: uint64(0x465129bf00000000),
  4013. 142: uint64(0x1ca2afd200000000),
  4014. 143: uint64(0x2af32df600000000),
  4015. 144: uint64(0xfad277d300000000),
  4016. 145: uint64(0xcc83f5f700000000),
  4017. 146: uint64(0x9670739a00000000),
  4018. 147: uint64(0xa021f1be00000000),
  4019. 148: uint64(0x22967e4100000000),
  4020. 149: uint64(0x14c7fc6500000000),
  4021. 150: uint64(0x4e347a0800000000),
  4022. 151: uint64(0x7865f82c00000000),
  4023. 152: uint64(0x0b5d142c00000000),
  4024. 153: uint64(0x3d0c960800000000),
  4025. 154: uint64(0x67ff106500000000),
  4026. 155: uint64(0x51ae924100000000),
  4027. 156: uint64(0xd3191dbe00000000),
  4028. 157: uint64(0xe5489f9a00000000),
  4029. 158: uint64(0xbfbb19f700000000),
  4030. 159: uint64(0x89ea9bd300000000),
  4031. 160: uint64(0x1ff8adbd00000000),
  4032. 161: uint64(0x29a92f9900000000),
  4033. 162: uint64(0x735aa9f400000000),
  4034. 163: uint64(0x450b2bd000000000),
  4035. 164: uint64(0xc7bca42f00000000),
  4036. 165: uint64(0xf1ed260b00000000),
  4037. 166: uint64(0xab1ea06600000000),
  4038. 167: uint64(0x9d4f224200000000),
  4039. 168: uint64(0xee77ce4200000000),
  4040. 169: uint64(0xd8264c6600000000),
  4041. 170: uint64(0x82d5ca0b00000000),
  4042. 171: uint64(0xb484482f00000000),
  4043. 172: uint64(0x3633c7d000000000),
  4044. 173: uint64(0x006245f400000000),
  4045. 174: uint64(0x5a91c39900000000),
  4046. 175: uint64(0x6cc041bd00000000),
  4047. 176: uint64(0xbce11b9800000000),
  4048. 177: uint64(0x8ab099bc00000000),
  4049. 178: uint64(0xd0431fd100000000),
  4050. 179: uint64(0xe6129df500000000),
  4051. 180: uint64(0x64a5120a00000000),
  4052. 181: uint64(0x52f4902e00000000),
  4053. 182: uint64(0x0807164300000000),
  4054. 183: uint64(0x3e56946700000000),
  4055. 184: uint64(0x4d6e786700000000),
  4056. 185: uint64(0x7b3ffa4300000000),
  4057. 186: uint64(0x21cc7c2e00000000),
  4058. 187: uint64(0x179dfe0a00000000),
  4059. 188: uint64(0x952a71f500000000),
  4060. 189: uint64(0xa37bf3d100000000),
  4061. 190: uint64(0xf98875bc00000000),
  4062. 191: uint64(0xcfd9f79800000000),
  4063. 192: uint64(0xd5ad196000000000),
  4064. 193: uint64(0xe3fc9b4400000000),
  4065. 194: uint64(0xb90f1d2900000000),
  4066. 195: uint64(0x8f5e9f0d00000000),
  4067. 196: uint64(0x0de910f200000000),
  4068. 197: uint64(0x3bb892d600000000),
  4069. 198: uint64(0x614b14bb00000000),
  4070. 199: uint64(0x571a969f00000000),
  4071. 200: uint64(0x24227a9f00000000),
  4072. 201: uint64(0x1273f8bb00000000),
  4073. 202: uint64(0x48807ed600000000),
  4074. 203: uint64(0x7ed1fcf200000000),
  4075. 204: uint64(0xfc66730d00000000),
  4076. 205: uint64(0xca37f12900000000),
  4077. 206: uint64(0x90c4774400000000),
  4078. 207: uint64(0xa695f56000000000),
  4079. 208: uint64(0x76b4af4500000000),
  4080. 209: uint64(0x40e52d6100000000),
  4081. 210: uint64(0x1a16ab0c00000000),
  4082. 211: uint64(0x2c47292800000000),
  4083. 212: uint64(0xaef0a6d700000000),
  4084. 213: uint64(0x98a124f300000000),
  4085. 214: uint64(0xc252a29e00000000),
  4086. 215: uint64(0xf40320ba00000000),
  4087. 216: uint64(0x873bccba00000000),
  4088. 217: uint64(0xb16a4e9e00000000),
  4089. 218: uint64(0xeb99c8f300000000),
  4090. 219: uint64(0xddc84ad700000000),
  4091. 220: uint64(0x5f7fc52800000000),
  4092. 221: uint64(0x692e470c00000000),
  4093. 222: uint64(0x33ddc16100000000),
  4094. 223: uint64(0x058c434500000000),
  4095. 224: uint64(0x939e752b00000000),
  4096. 225: uint64(0xa5cff70f00000000),
  4097. 226: uint64(0xff3c716200000000),
  4098. 227: uint64(0xc96df34600000000),
  4099. 228: uint64(0x4bda7cb900000000),
  4100. 229: uint64(0x7d8bfe9d00000000),
  4101. 230: uint64(0x277878f000000000),
  4102. 231: uint64(0x1129fad400000000),
  4103. 232: uint64(0x621116d400000000),
  4104. 233: uint64(0x544094f000000000),
  4105. 234: uint64(0x0eb3129d00000000),
  4106. 235: uint64(0x38e290b900000000),
  4107. 236: uint64(0xba551f4600000000),
  4108. 237: uint64(0x8c049d6200000000),
  4109. 238: uint64(0xd6f71b0f00000000),
  4110. 239: uint64(0xe0a6992b00000000),
  4111. 240: uint64(0x3087c30e00000000),
  4112. 241: uint64(0x06d6412a00000000),
  4113. 242: uint64(0x5c25c74700000000),
  4114. 243: uint64(0x6a74456300000000),
  4115. 244: uint64(0xe8c3ca9c00000000),
  4116. 245: uint64(0xde9248b800000000),
  4117. 246: uint64(0x8461ced500000000),
  4118. 247: uint64(0xb2304cf100000000),
  4119. 248: uint64(0xc108a0f100000000),
  4120. 249: uint64(0xf75922d500000000),
  4121. 250: uint64(0xadaaa4b800000000),
  4122. 251: uint64(0x9bfb269c00000000),
  4123. 252: uint64(0x194ca96300000000),
  4124. 253: uint64(0x2f1d2b4700000000),
  4125. 254: uint64(0x75eead2a00000000),
  4126. 255: uint64(0x43bf2f0e00000000),
  4127. },
  4128. 2: {
  4129. 1: uint64(0xc8179ecf00000000),
  4130. 2: uint64(0xd1294d4400000000),
  4131. 3: uint64(0x193ed38b00000000),
  4132. 4: uint64(0xa2539a8800000000),
  4133. 5: uint64(0x6a44044700000000),
  4134. 6: uint64(0x737ad7cc00000000),
  4135. 7: uint64(0xbb6d490300000000),
  4136. 8: uint64(0x05a145ca00000000),
  4137. 9: uint64(0xcdb6db0500000000),
  4138. 10: uint64(0xd488088e00000000),
  4139. 11: uint64(0x1c9f964100000000),
  4140. 12: uint64(0xa7f2df4200000000),
  4141. 13: uint64(0x6fe5418d00000000),
  4142. 14: uint64(0x76db920600000000),
  4143. 15: uint64(0xbecc0cc900000000),
  4144. 16: uint64(0x4b44fa4f00000000),
  4145. 17: uint64(0x8353648000000000),
  4146. 18: uint64(0x9a6db70b00000000),
  4147. 19: uint64(0x527a29c400000000),
  4148. 20: uint64(0xe91760c700000000),
  4149. 21: uint64(0x2100fe0800000000),
  4150. 22: uint64(0x383e2d8300000000),
  4151. 23: uint64(0xf029b34c00000000),
  4152. 24: uint64(0x4ee5bf8500000000),
  4153. 25: uint64(0x86f2214a00000000),
  4154. 26: uint64(0x9fccf2c100000000),
  4155. 27: uint64(0x57db6c0e00000000),
  4156. 28: uint64(0xecb6250d00000000),
  4157. 29: uint64(0x24a1bbc200000000),
  4158. 30: uint64(0x3d9f684900000000),
  4159. 31: uint64(0xf588f68600000000),
  4160. 32: uint64(0x9688f49f00000000),
  4161. 33: uint64(0x5e9f6a5000000000),
  4162. 34: uint64(0x47a1b9db00000000),
  4163. 35: uint64(0x8fb6271400000000),
  4164. 36: uint64(0x34db6e1700000000),
  4165. 37: uint64(0xfcccf0d800000000),
  4166. 38: uint64(0xe5f2235300000000),
  4167. 39: uint64(0x2de5bd9c00000000),
  4168. 40: uint64(0x9329b15500000000),
  4169. 41: uint64(0x5b3e2f9a00000000),
  4170. 42: uint64(0x4200fc1100000000),
  4171. 43: uint64(0x8a1762de00000000),
  4172. 44: uint64(0x317a2bdd00000000),
  4173. 45: uint64(0xf96db51200000000),
  4174. 46: uint64(0xe053669900000000),
  4175. 47: uint64(0x2844f85600000000),
  4176. 48: uint64(0xddcc0ed000000000),
  4177. 49: uint64(0x15db901f00000000),
  4178. 50: uint64(0x0ce5439400000000),
  4179. 51: uint64(0xc4f2dd5b00000000),
  4180. 52: uint64(0x7f9f945800000000),
  4181. 53: uint64(0xb7880a9700000000),
  4182. 54: uint64(0xaeb6d91c00000000),
  4183. 55: uint64(0x66a147d300000000),
  4184. 56: uint64(0xd86d4b1a00000000),
  4185. 57: uint64(0x107ad5d500000000),
  4186. 58: uint64(0x0944065e00000000),
  4187. 59: uint64(0xc153989100000000),
  4188. 60: uint64(0x7a3ed19200000000),
  4189. 61: uint64(0xb2294f5d00000000),
  4190. 62: uint64(0xab179cd600000000),
  4191. 63: uint64(0x6300021900000000),
  4192. 64: uint64(0x6d1798e400000000),
  4193. 65: uint64(0xa500062b00000000),
  4194. 66: uint64(0xbc3ed5a000000000),
  4195. 67: uint64(0x74294b6f00000000),
  4196. 68: uint64(0xcf44026c00000000),
  4197. 69: uint64(0x07539ca300000000),
  4198. 70: uint64(0x1e6d4f2800000000),
  4199. 71: uint64(0xd67ad1e700000000),
  4200. 72: uint64(0x68b6dd2e00000000),
  4201. 73: uint64(0xa0a143e100000000),
  4202. 74: uint64(0xb99f906a00000000),
  4203. 75: uint64(0x71880ea500000000),
  4204. 76: uint64(0xcae547a600000000),
  4205. 77: uint64(0x02f2d96900000000),
  4206. 78: uint64(0x1bcc0ae200000000),
  4207. 79: uint64(0xd3db942d00000000),
  4208. 80: uint64(0x265362ab00000000),
  4209. 81: uint64(0xee44fc6400000000),
  4210. 82: uint64(0xf77a2fef00000000),
  4211. 83: uint64(0x3f6db12000000000),
  4212. 84: uint64(0x8400f82300000000),
  4213. 85: uint64(0x4c1766ec00000000),
  4214. 86: uint64(0x5529b56700000000),
  4215. 87: uint64(0x9d3e2ba800000000),
  4216. 88: uint64(0x23f2276100000000),
  4217. 89: uint64(0xebe5b9ae00000000),
  4218. 90: uint64(0xf2db6a2500000000),
  4219. 91: uint64(0x3accf4ea00000000),
  4220. 92: uint64(0x81a1bde900000000),
  4221. 93: uint64(0x49b6232600000000),
  4222. 94: uint64(0x5088f0ad00000000),
  4223. 95: uint64(0x989f6e6200000000),
  4224. 96: uint64(0xfb9f6c7b00000000),
  4225. 97: uint64(0x3388f2b400000000),
  4226. 98: uint64(0x2ab6213f00000000),
  4227. 99: uint64(0xe2a1bff000000000),
  4228. 100: uint64(0x59ccf6f300000000),
  4229. 101: uint64(0x91db683c00000000),
  4230. 102: uint64(0x88e5bbb700000000),
  4231. 103: uint64(0x40f2257800000000),
  4232. 104: uint64(0xfe3e29b100000000),
  4233. 105: uint64(0x3629b77e00000000),
  4234. 106: uint64(0x2f1764f500000000),
  4235. 107: uint64(0xe700fa3a00000000),
  4236. 108: uint64(0x5c6db33900000000),
  4237. 109: uint64(0x947a2df600000000),
  4238. 110: uint64(0x8d44fe7d00000000),
  4239. 111: uint64(0x455360b200000000),
  4240. 112: uint64(0xb0db963400000000),
  4241. 113: uint64(0x78cc08fb00000000),
  4242. 114: uint64(0x61f2db7000000000),
  4243. 115: uint64(0xa9e545bf00000000),
  4244. 116: uint64(0x12880cbc00000000),
  4245. 117: uint64(0xda9f927300000000),
  4246. 118: uint64(0xc3a141f800000000),
  4247. 119: uint64(0x0bb6df3700000000),
  4248. 120: uint64(0xb57ad3fe00000000),
  4249. 121: uint64(0x7d6d4d3100000000),
  4250. 122: uint64(0x64539eba00000000),
  4251. 123: uint64(0xac44007500000000),
  4252. 124: uint64(0x1729497600000000),
  4253. 125: uint64(0xdf3ed7b900000000),
  4254. 126: uint64(0xc600043200000000),
  4255. 127: uint64(0x0e179afd00000000),
  4256. 128: uint64(0x9b28411200000000),
  4257. 129: uint64(0x533fdfdd00000000),
  4258. 130: uint64(0x4a010c5600000000),
  4259. 131: uint64(0x8216929900000000),
  4260. 132: uint64(0x397bdb9a00000000),
  4261. 133: uint64(0xf16c455500000000),
  4262. 134: uint64(0xe85296de00000000),
  4263. 135: uint64(0x2045081100000000),
  4264. 136: uint64(0x9e8904d800000000),
  4265. 137: uint64(0x569e9a1700000000),
  4266. 138: uint64(0x4fa0499c00000000),
  4267. 139: uint64(0x87b7d75300000000),
  4268. 140: uint64(0x3cda9e5000000000),
  4269. 141: uint64(0xf4cd009f00000000),
  4270. 142: uint64(0xedf3d31400000000),
  4271. 143: uint64(0x25e44ddb00000000),
  4272. 144: uint64(0xd06cbb5d00000000),
  4273. 145: uint64(0x187b259200000000),
  4274. 146: uint64(0x0145f61900000000),
  4275. 147: uint64(0xc95268d600000000),
  4276. 148: uint64(0x723f21d500000000),
  4277. 149: uint64(0xba28bf1a00000000),
  4278. 150: uint64(0xa3166c9100000000),
  4279. 151: uint64(0x6b01f25e00000000),
  4280. 152: uint64(0xd5cdfe9700000000),
  4281. 153: uint64(0x1dda605800000000),
  4282. 154: uint64(0x04e4b3d300000000),
  4283. 155: uint64(0xccf32d1c00000000),
  4284. 156: uint64(0x779e641f00000000),
  4285. 157: uint64(0xbf89fad000000000),
  4286. 158: uint64(0xa6b7295b00000000),
  4287. 159: uint64(0x6ea0b79400000000),
  4288. 160: uint64(0x0da0b58d00000000),
  4289. 161: uint64(0xc5b72b4200000000),
  4290. 162: uint64(0xdc89f8c900000000),
  4291. 163: uint64(0x149e660600000000),
  4292. 164: uint64(0xaff32f0500000000),
  4293. 165: uint64(0x67e4b1ca00000000),
  4294. 166: uint64(0x7eda624100000000),
  4295. 167: uint64(0xb6cdfc8e00000000),
  4296. 168: uint64(0x0801f04700000000),
  4297. 169: uint64(0xc0166e8800000000),
  4298. 170: uint64(0xd928bd0300000000),
  4299. 171: uint64(0x113f23cc00000000),
  4300. 172: uint64(0xaa526acf00000000),
  4301. 173: uint64(0x6245f40000000000),
  4302. 174: uint64(0x7b7b278b00000000),
  4303. 175: uint64(0xb36cb94400000000),
  4304. 176: uint64(0x46e44fc200000000),
  4305. 177: uint64(0x8ef3d10d00000000),
  4306. 178: uint64(0x97cd028600000000),
  4307. 179: uint64(0x5fda9c4900000000),
  4308. 180: uint64(0xe4b7d54a00000000),
  4309. 181: uint64(0x2ca04b8500000000),
  4310. 182: uint64(0x359e980e00000000),
  4311. 183: uint64(0xfd8906c100000000),
  4312. 184: uint64(0x43450a0800000000),
  4313. 185: uint64(0x8b5294c700000000),
  4314. 186: uint64(0x926c474c00000000),
  4315. 187: uint64(0x5a7bd98300000000),
  4316. 188: uint64(0xe116908000000000),
  4317. 189: uint64(0x29010e4f00000000),
  4318. 190: uint64(0x303fddc400000000),
  4319. 191: uint64(0xf828430b00000000),
  4320. 192: uint64(0xf63fd9f600000000),
  4321. 193: uint64(0x3e28473900000000),
  4322. 194: uint64(0x271694b200000000),
  4323. 195: uint64(0xef010a7d00000000),
  4324. 196: uint64(0x546c437e00000000),
  4325. 197: uint64(0x9c7bddb100000000),
  4326. 198: uint64(0x85450e3a00000000),
  4327. 199: uint64(0x4d5290f500000000),
  4328. 200: uint64(0xf39e9c3c00000000),
  4329. 201: uint64(0x3b8902f300000000),
  4330. 202: uint64(0x22b7d17800000000),
  4331. 203: uint64(0xeaa04fb700000000),
  4332. 204: uint64(0x51cd06b400000000),
  4333. 205: uint64(0x99da987b00000000),
  4334. 206: uint64(0x80e44bf000000000),
  4335. 207: uint64(0x48f3d53f00000000),
  4336. 208: uint64(0xbd7b23b900000000),
  4337. 209: uint64(0x756cbd7600000000),
  4338. 210: uint64(0x6c526efd00000000),
  4339. 211: uint64(0xa445f03200000000),
  4340. 212: uint64(0x1f28b93100000000),
  4341. 213: uint64(0xd73f27fe00000000),
  4342. 214: uint64(0xce01f47500000000),
  4343. 215: uint64(0x06166aba00000000),
  4344. 216: uint64(0xb8da667300000000),
  4345. 217: uint64(0x70cdf8bc00000000),
  4346. 218: uint64(0x69f32b3700000000),
  4347. 219: uint64(0xa1e4b5f800000000),
  4348. 220: uint64(0x1a89fcfb00000000),
  4349. 221: uint64(0xd29e623400000000),
  4350. 222: uint64(0xcba0b1bf00000000),
  4351. 223: uint64(0x03b72f7000000000),
  4352. 224: uint64(0x60b72d6900000000),
  4353. 225: uint64(0xa8a0b3a600000000),
  4354. 226: uint64(0xb19e602d00000000),
  4355. 227: uint64(0x7989fee200000000),
  4356. 228: uint64(0xc2e4b7e100000000),
  4357. 229: uint64(0x0af3292e00000000),
  4358. 230: uint64(0x13cdfaa500000000),
  4359. 231: uint64(0xdbda646a00000000),
  4360. 232: uint64(0x651668a300000000),
  4361. 233: uint64(0xad01f66c00000000),
  4362. 234: uint64(0xb43f25e700000000),
  4363. 235: uint64(0x7c28bb2800000000),
  4364. 236: uint64(0xc745f22b00000000),
  4365. 237: uint64(0x0f526ce400000000),
  4366. 238: uint64(0x166cbf6f00000000),
  4367. 239: uint64(0xde7b21a000000000),
  4368. 240: uint64(0x2bf3d72600000000),
  4369. 241: uint64(0xe3e449e900000000),
  4370. 242: uint64(0xfada9a6200000000),
  4371. 243: uint64(0x32cd04ad00000000),
  4372. 244: uint64(0x89a04dae00000000),
  4373. 245: uint64(0x41b7d36100000000),
  4374. 246: uint64(0x588900ea00000000),
  4375. 247: uint64(0x909e9e2500000000),
  4376. 248: uint64(0x2e5292ec00000000),
  4377. 249: uint64(0xe6450c2300000000),
  4378. 250: uint64(0xff7bdfa800000000),
  4379. 251: uint64(0x376c416700000000),
  4380. 252: uint64(0x8c01086400000000),
  4381. 253: uint64(0x441696ab00000000),
  4382. 254: uint64(0x5d28452000000000),
  4383. 255: uint64(0x953fdbef00000000),
  4384. },
  4385. 3: {
  4386. 1: uint64(0x95d4709500000000),
  4387. 2: uint64(0x6baf90f100000000),
  4388. 3: uint64(0xfe7be06400000000),
  4389. 4: uint64(0x9758503800000000),
  4390. 5: uint64(0x028c20ad00000000),
  4391. 6: uint64(0xfcf7c0c900000000),
  4392. 7: uint64(0x6923b05c00000000),
  4393. 8: uint64(0x2eb1a07000000000),
  4394. 9: uint64(0xbb65d0e500000000),
  4395. 10: uint64(0x451e308100000000),
  4396. 11: uint64(0xd0ca401400000000),
  4397. 12: uint64(0xb9e9f04800000000),
  4398. 13: uint64(0x2c3d80dd00000000),
  4399. 14: uint64(0xd24660b900000000),
  4400. 15: uint64(0x4792102c00000000),
  4401. 16: uint64(0x5c6241e100000000),
  4402. 17: uint64(0xc9b6317400000000),
  4403. 18: uint64(0x37cdd11000000000),
  4404. 19: uint64(0xa219a18500000000),
  4405. 20: uint64(0xcb3a11d900000000),
  4406. 21: uint64(0x5eee614c00000000),
  4407. 22: uint64(0xa095812800000000),
  4408. 23: uint64(0x3541f1bd00000000),
  4409. 24: uint64(0x72d3e19100000000),
  4410. 25: uint64(0xe707910400000000),
  4411. 26: uint64(0x197c716000000000),
  4412. 27: uint64(0x8ca801f500000000),
  4413. 28: uint64(0xe58bb1a900000000),
  4414. 29: uint64(0x705fc13c00000000),
  4415. 30: uint64(0x8e24215800000000),
  4416. 31: uint64(0x1bf051cd00000000),
  4417. 32: uint64(0xf9c2f31900000000),
  4418. 33: uint64(0x6c16838c00000000),
  4419. 34: uint64(0x926d63e800000000),
  4420. 35: uint64(0x07b9137d00000000),
  4421. 36: uint64(0x6e9aa32100000000),
  4422. 37: uint64(0xfb4ed3b400000000),
  4423. 38: uint64(0x053533d000000000),
  4424. 39: uint64(0x90e1434500000000),
  4425. 40: uint64(0xd773536900000000),
  4426. 41: uint64(0x42a723fc00000000),
  4427. 42: uint64(0xbcdcc39800000000),
  4428. 43: uint64(0x2908b30d00000000),
  4429. 44: uint64(0x402b035100000000),
  4430. 45: uint64(0xd5ff73c400000000),
  4431. 46: uint64(0x2b8493a000000000),
  4432. 47: uint64(0xbe50e33500000000),
  4433. 48: uint64(0xa5a0b2f800000000),
  4434. 49: uint64(0x3074c26d00000000),
  4435. 50: uint64(0xce0f220900000000),
  4436. 51: uint64(0x5bdb529c00000000),
  4437. 52: uint64(0x32f8e2c000000000),
  4438. 53: uint64(0xa72c925500000000),
  4439. 54: uint64(0x5957723100000000),
  4440. 55: uint64(0xcc8302a400000000),
  4441. 56: uint64(0x8b11128800000000),
  4442. 57: uint64(0x1ec5621d00000000),
  4443. 58: uint64(0xe0be827900000000),
  4444. 59: uint64(0x756af2ec00000000),
  4445. 60: uint64(0x1c4942b000000000),
  4446. 61: uint64(0x899d322500000000),
  4447. 62: uint64(0x77e6d24100000000),
  4448. 63: uint64(0xe232a2d400000000),
  4449. 64: uint64(0xf285e73300000000),
  4450. 65: uint64(0x675197a600000000),
  4451. 66: uint64(0x992a77c200000000),
  4452. 67: uint64(0x0cfe075700000000),
  4453. 68: uint64(0x65ddb70b00000000),
  4454. 69: uint64(0xf009c79e00000000),
  4455. 70: uint64(0x0e7227fa00000000),
  4456. 71: uint64(0x9ba6576f00000000),
  4457. 72: uint64(0xdc34474300000000),
  4458. 73: uint64(0x49e037d600000000),
  4459. 74: uint64(0xb79bd7b200000000),
  4460. 75: uint64(0x224fa72700000000),
  4461. 76: uint64(0x4b6c177b00000000),
  4462. 77: uint64(0xdeb867ee00000000),
  4463. 78: uint64(0x20c3878a00000000),
  4464. 79: uint64(0xb517f71f00000000),
  4465. 80: uint64(0xaee7a6d200000000),
  4466. 81: uint64(0x3b33d64700000000),
  4467. 82: uint64(0xc548362300000000),
  4468. 83: uint64(0x509c46b600000000),
  4469. 84: uint64(0x39bff6ea00000000),
  4470. 85: uint64(0xac6b867f00000000),
  4471. 86: uint64(0x5210661b00000000),
  4472. 87: uint64(0xc7c4168e00000000),
  4473. 88: uint64(0x805606a200000000),
  4474. 89: uint64(0x1582763700000000),
  4475. 90: uint64(0xebf9965300000000),
  4476. 91: uint64(0x7e2de6c600000000),
  4477. 92: uint64(0x170e569a00000000),
  4478. 93: uint64(0x82da260f00000000),
  4479. 94: uint64(0x7ca1c66b00000000),
  4480. 95: uint64(0xe975b6fe00000000),
  4481. 96: uint64(0x0b47142a00000000),
  4482. 97: uint64(0x9e9364bf00000000),
  4483. 98: uint64(0x60e884db00000000),
  4484. 99: uint64(0xf53cf44e00000000),
  4485. 100: uint64(0x9c1f441200000000),
  4486. 101: uint64(0x09cb348700000000),
  4487. 102: uint64(0xf7b0d4e300000000),
  4488. 103: uint64(0x6264a47600000000),
  4489. 104: uint64(0x25f6b45a00000000),
  4490. 105: uint64(0xb022c4cf00000000),
  4491. 106: uint64(0x4e5924ab00000000),
  4492. 107: uint64(0xdb8d543e00000000),
  4493. 108: uint64(0xb2aee46200000000),
  4494. 109: uint64(0x277a94f700000000),
  4495. 110: uint64(0xd901749300000000),
  4496. 111: uint64(0x4cd5040600000000),
  4497. 112: uint64(0x572555cb00000000),
  4498. 113: uint64(0xc2f1255e00000000),
  4499. 114: uint64(0x3c8ac53a00000000),
  4500. 115: uint64(0xa95eb5af00000000),
  4501. 116: uint64(0xc07d05f300000000),
  4502. 117: uint64(0x55a9756600000000),
  4503. 118: uint64(0xabd2950200000000),
  4504. 119: uint64(0x3e06e59700000000),
  4505. 120: uint64(0x7994f5bb00000000),
  4506. 121: uint64(0xec40852e00000000),
  4507. 122: uint64(0x123b654a00000000),
  4508. 123: uint64(0x87ef15df00000000),
  4509. 124: uint64(0xeecca58300000000),
  4510. 125: uint64(0x7b18d51600000000),
  4511. 126: uint64(0x8563357200000000),
  4512. 127: uint64(0x10b745e700000000),
  4513. 128: uint64(0xe40bcf6700000000),
  4514. 129: uint64(0x71dfbff200000000),
  4515. 130: uint64(0x8fa45f9600000000),
  4516. 131: uint64(0x1a702f0300000000),
  4517. 132: uint64(0x73539f5f00000000),
  4518. 133: uint64(0xe687efca00000000),
  4519. 134: uint64(0x18fc0fae00000000),
  4520. 135: uint64(0x8d287f3b00000000),
  4521. 136: uint64(0xcaba6f1700000000),
  4522. 137: uint64(0x5f6e1f8200000000),
  4523. 138: uint64(0xa115ffe600000000),
  4524. 139: uint64(0x34c18f7300000000),
  4525. 140: uint64(0x5de23f2f00000000),
  4526. 141: uint64(0xc8364fba00000000),
  4527. 142: uint64(0x364dafde00000000),
  4528. 143: uint64(0xa399df4b00000000),
  4529. 144: uint64(0xb8698e8600000000),
  4530. 145: uint64(0x2dbdfe1300000000),
  4531. 146: uint64(0xd3c61e7700000000),
  4532. 147: uint64(0x46126ee200000000),
  4533. 148: uint64(0x2f31debe00000000),
  4534. 149: uint64(0xbae5ae2b00000000),
  4535. 150: uint64(0x449e4e4f00000000),
  4536. 151: uint64(0xd14a3eda00000000),
  4537. 152: uint64(0x96d82ef600000000),
  4538. 153: uint64(0x030c5e6300000000),
  4539. 154: uint64(0xfd77be0700000000),
  4540. 155: uint64(0x68a3ce9200000000),
  4541. 156: uint64(0x01807ece00000000),
  4542. 157: uint64(0x94540e5b00000000),
  4543. 158: uint64(0x6a2fee3f00000000),
  4544. 159: uint64(0xfffb9eaa00000000),
  4545. 160: uint64(0x1dc93c7e00000000),
  4546. 161: uint64(0x881d4ceb00000000),
  4547. 162: uint64(0x7666ac8f00000000),
  4548. 163: uint64(0xe3b2dc1a00000000),
  4549. 164: uint64(0x8a916c4600000000),
  4550. 165: uint64(0x1f451cd300000000),
  4551. 166: uint64(0xe13efcb700000000),
  4552. 167: uint64(0x74ea8c2200000000),
  4553. 168: uint64(0x33789c0e00000000),
  4554. 169: uint64(0xa6acec9b00000000),
  4555. 170: uint64(0x58d70cff00000000),
  4556. 171: uint64(0xcd037c6a00000000),
  4557. 172: uint64(0xa420cc3600000000),
  4558. 173: uint64(0x31f4bca300000000),
  4559. 174: uint64(0xcf8f5cc700000000),
  4560. 175: uint64(0x5a5b2c5200000000),
  4561. 176: uint64(0x41ab7d9f00000000),
  4562. 177: uint64(0xd47f0d0a00000000),
  4563. 178: uint64(0x2a04ed6e00000000),
  4564. 179: uint64(0xbfd09dfb00000000),
  4565. 180: uint64(0xd6f32da700000000),
  4566. 181: uint64(0x43275d3200000000),
  4567. 182: uint64(0xbd5cbd5600000000),
  4568. 183: uint64(0x2888cdc300000000),
  4569. 184: uint64(0x6f1addef00000000),
  4570. 185: uint64(0xfacead7a00000000),
  4571. 186: uint64(0x04b54d1e00000000),
  4572. 187: uint64(0x91613d8b00000000),
  4573. 188: uint64(0xf8428dd700000000),
  4574. 189: uint64(0x6d96fd4200000000),
  4575. 190: uint64(0x93ed1d2600000000),
  4576. 191: uint64(0x06396db300000000),
  4577. 192: uint64(0x168e285400000000),
  4578. 193: uint64(0x835a58c100000000),
  4579. 194: uint64(0x7d21b8a500000000),
  4580. 195: uint64(0xe8f5c83000000000),
  4581. 196: uint64(0x81d6786c00000000),
  4582. 197: uint64(0x140208f900000000),
  4583. 198: uint64(0xea79e89d00000000),
  4584. 199: uint64(0x7fad980800000000),
  4585. 200: uint64(0x383f882400000000),
  4586. 201: uint64(0xadebf8b100000000),
  4587. 202: uint64(0x539018d500000000),
  4588. 203: uint64(0xc644684000000000),
  4589. 204: uint64(0xaf67d81c00000000),
  4590. 205: uint64(0x3ab3a88900000000),
  4591. 206: uint64(0xc4c848ed00000000),
  4592. 207: uint64(0x511c387800000000),
  4593. 208: uint64(0x4aec69b500000000),
  4594. 209: uint64(0xdf38192000000000),
  4595. 210: uint64(0x2143f94400000000),
  4596. 211: uint64(0xb49789d100000000),
  4597. 212: uint64(0xddb4398d00000000),
  4598. 213: uint64(0x4860491800000000),
  4599. 214: uint64(0xb61ba97c00000000),
  4600. 215: uint64(0x23cfd9e900000000),
  4601. 216: uint64(0x645dc9c500000000),
  4602. 217: uint64(0xf189b95000000000),
  4603. 218: uint64(0x0ff2593400000000),
  4604. 219: uint64(0x9a2629a100000000),
  4605. 220: uint64(0xf30599fd00000000),
  4606. 221: uint64(0x66d1e96800000000),
  4607. 222: uint64(0x98aa090c00000000),
  4608. 223: uint64(0x0d7e799900000000),
  4609. 224: uint64(0xef4cdb4d00000000),
  4610. 225: uint64(0x7a98abd800000000),
  4611. 226: uint64(0x84e34bbc00000000),
  4612. 227: uint64(0x11373b2900000000),
  4613. 228: uint64(0x78148b7500000000),
  4614. 229: uint64(0xedc0fbe000000000),
  4615. 230: uint64(0x13bb1b8400000000),
  4616. 231: uint64(0x866f6b1100000000),
  4617. 232: uint64(0xc1fd7b3d00000000),
  4618. 233: uint64(0x54290ba800000000),
  4619. 234: uint64(0xaa52ebcc00000000),
  4620. 235: uint64(0x3f869b5900000000),
  4621. 236: uint64(0x56a52b0500000000),
  4622. 237: uint64(0xc3715b9000000000),
  4623. 238: uint64(0x3d0abbf400000000),
  4624. 239: uint64(0xa8decb6100000000),
  4625. 240: uint64(0xb32e9aac00000000),
  4626. 241: uint64(0x26faea3900000000),
  4627. 242: uint64(0xd8810a5d00000000),
  4628. 243: uint64(0x4d557ac800000000),
  4629. 244: uint64(0x2476ca9400000000),
  4630. 245: uint64(0xb1a2ba0100000000),
  4631. 246: uint64(0x4fd95a6500000000),
  4632. 247: uint64(0xda0d2af000000000),
  4633. 248: uint64(0x9d9f3adc00000000),
  4634. 249: uint64(0x084b4a4900000000),
  4635. 250: uint64(0xf630aa2d00000000),
  4636. 251: uint64(0x63e4dab800000000),
  4637. 252: uint64(0x0ac76ae400000000),
  4638. 253: uint64(0x9f131a7100000000),
  4639. 254: uint64(0x6168fa1500000000),
  4640. 255: uint64(0xf4bc8a8000000000),
  4641. },
  4642. 4: {
  4643. 1: uint64(0x1f17f08000000000),
  4644. 2: uint64(0x7f2891da00000000),
  4645. 3: uint64(0x603f615a00000000),
  4646. 4: uint64(0xbf56536e00000000),
  4647. 5: uint64(0xa041a3ee00000000),
  4648. 6: uint64(0xc07ec2b400000000),
  4649. 7: uint64(0xdf69323400000000),
  4650. 8: uint64(0x7eada6dc00000000),
  4651. 9: uint64(0x61ba565c00000000),
  4652. 10: uint64(0x0185370600000000),
  4653. 11: uint64(0x1e92c78600000000),
  4654. 12: uint64(0xc1fbf5b200000000),
  4655. 13: uint64(0xdeec053200000000),
  4656. 14: uint64(0xbed3646800000000),
  4657. 15: uint64(0xa1c494e800000000),
  4658. 16: uint64(0xbd5c3c6200000000),
  4659. 17: uint64(0xa24bcce200000000),
  4660. 18: uint64(0xc274adb800000000),
  4661. 19: uint64(0xdd635d3800000000),
  4662. 20: uint64(0x020a6f0c00000000),
  4663. 21: uint64(0x1d1d9f8c00000000),
  4664. 22: uint64(0x7d22fed600000000),
  4665. 23: uint64(0x62350e5600000000),
  4666. 24: uint64(0xc3f19abe00000000),
  4667. 25: uint64(0xdce66a3e00000000),
  4668. 26: uint64(0xbcd90b6400000000),
  4669. 27: uint64(0xa3cefbe400000000),
  4670. 28: uint64(0x7ca7c9d000000000),
  4671. 29: uint64(0x63b0395000000000),
  4672. 30: uint64(0x038f580a00000000),
  4673. 31: uint64(0x1c98a88a00000000),
  4674. 32: uint64(0x7ab978c400000000),
  4675. 33: uint64(0x65ae884400000000),
  4676. 34: uint64(0x0591e91e00000000),
  4677. 35: uint64(0x1a86199e00000000),
  4678. 36: uint64(0xc5ef2baa00000000),
  4679. 37: uint64(0xdaf8db2a00000000),
  4680. 38: uint64(0xbac7ba7000000000),
  4681. 39: uint64(0xa5d04af000000000),
  4682. 40: uint64(0x0414de1800000000),
  4683. 41: uint64(0x1b032e9800000000),
  4684. 42: uint64(0x7b3c4fc200000000),
  4685. 43: uint64(0x642bbf4200000000),
  4686. 44: uint64(0xbb428d7600000000),
  4687. 45: uint64(0xa4557df600000000),
  4688. 46: uint64(0xc46a1cac00000000),
  4689. 47: uint64(0xdb7dec2c00000000),
  4690. 48: uint64(0xc7e544a600000000),
  4691. 49: uint64(0xd8f2b42600000000),
  4692. 50: uint64(0xb8cdd57c00000000),
  4693. 51: uint64(0xa7da25fc00000000),
  4694. 52: uint64(0x78b317c800000000),
  4695. 53: uint64(0x67a4e74800000000),
  4696. 54: uint64(0x079b861200000000),
  4697. 55: uint64(0x188c769200000000),
  4698. 56: uint64(0xb948e27a00000000),
  4699. 57: uint64(0xa65f12fa00000000),
  4700. 58: uint64(0xc66073a000000000),
  4701. 59: uint64(0xd977832000000000),
  4702. 60: uint64(0x061eb11400000000),
  4703. 61: uint64(0x1909419400000000),
  4704. 62: uint64(0x793620ce00000000),
  4705. 63: uint64(0x6621d04e00000000),
  4706. 64: uint64(0xb574805300000000),
  4707. 65: uint64(0xaa6370d300000000),
  4708. 66: uint64(0xca5c118900000000),
  4709. 67: uint64(0xd54be10900000000),
  4710. 68: uint64(0x0a22d33d00000000),
  4711. 69: uint64(0x153523bd00000000),
  4712. 70: uint64(0x750a42e700000000),
  4713. 71: uint64(0x6a1db26700000000),
  4714. 72: uint64(0xcbd9268f00000000),
  4715. 73: uint64(0xd4ced60f00000000),
  4716. 74: uint64(0xb4f1b75500000000),
  4717. 75: uint64(0xabe647d500000000),
  4718. 76: uint64(0x748f75e100000000),
  4719. 77: uint64(0x6b98856100000000),
  4720. 78: uint64(0x0ba7e43b00000000),
  4721. 79: uint64(0x14b014bb00000000),
  4722. 80: uint64(0x0828bc3100000000),
  4723. 81: uint64(0x173f4cb100000000),
  4724. 82: uint64(0x77002deb00000000),
  4725. 83: uint64(0x6817dd6b00000000),
  4726. 84: uint64(0xb77eef5f00000000),
  4727. 85: uint64(0xa8691fdf00000000),
  4728. 86: uint64(0xc8567e8500000000),
  4729. 87: uint64(0xd7418e0500000000),
  4730. 88: uint64(0x76851aed00000000),
  4731. 89: uint64(0x6992ea6d00000000),
  4732. 90: uint64(0x09ad8b3700000000),
  4733. 91: uint64(0x16ba7bb700000000),
  4734. 92: uint64(0xc9d3498300000000),
  4735. 93: uint64(0xd6c4b90300000000),
  4736. 94: uint64(0xb6fbd85900000000),
  4737. 95: uint64(0xa9ec28d900000000),
  4738. 96: uint64(0xcfcdf89700000000),
  4739. 97: uint64(0xd0da081700000000),
  4740. 98: uint64(0xb0e5694d00000000),
  4741. 99: uint64(0xaff299cd00000000),
  4742. 100: uint64(0x709babf900000000),
  4743. 101: uint64(0x6f8c5b7900000000),
  4744. 102: uint64(0x0fb33a2300000000),
  4745. 103: uint64(0x10a4caa300000000),
  4746. 104: uint64(0xb1605e4b00000000),
  4747. 105: uint64(0xae77aecb00000000),
  4748. 106: uint64(0xce48cf9100000000),
  4749. 107: uint64(0xd15f3f1100000000),
  4750. 108: uint64(0x0e360d2500000000),
  4751. 109: uint64(0x1121fda500000000),
  4752. 110: uint64(0x711e9cff00000000),
  4753. 111: uint64(0x6e096c7f00000000),
  4754. 112: uint64(0x7291c4f500000000),
  4755. 113: uint64(0x6d86347500000000),
  4756. 114: uint64(0x0db9552f00000000),
  4757. 115: uint64(0x12aea5af00000000),
  4758. 116: uint64(0xcdc7979b00000000),
  4759. 117: uint64(0xd2d0671b00000000),
  4760. 118: uint64(0xb2ef064100000000),
  4761. 119: uint64(0xadf8f6c100000000),
  4762. 120: uint64(0x0c3c622900000000),
  4763. 121: uint64(0x132b92a900000000),
  4764. 122: uint64(0x7314f3f300000000),
  4765. 123: uint64(0x6c03037300000000),
  4766. 124: uint64(0xb36a314700000000),
  4767. 125: uint64(0xac7dc1c700000000),
  4768. 126: uint64(0xcc42a09d00000000),
  4769. 127: uint64(0xd355501d00000000),
  4770. 128: uint64(0x6ae900a700000000),
  4771. 129: uint64(0x75fef02700000000),
  4772. 130: uint64(0x15c1917d00000000),
  4773. 131: uint64(0x0ad661fd00000000),
  4774. 132: uint64(0xd5bf53c900000000),
  4775. 133: uint64(0xcaa8a34900000000),
  4776. 134: uint64(0xaa97c21300000000),
  4777. 135: uint64(0xb580329300000000),
  4778. 136: uint64(0x1444a67b00000000),
  4779. 137: uint64(0x0b5356fb00000000),
  4780. 138: uint64(0x6b6c37a100000000),
  4781. 139: uint64(0x747bc72100000000),
  4782. 140: uint64(0xab12f51500000000),
  4783. 141: uint64(0xb405059500000000),
  4784. 142: uint64(0xd43a64cf00000000),
  4785. 143: uint64(0xcb2d944f00000000),
  4786. 144: uint64(0xd7b53cc500000000),
  4787. 145: uint64(0xc8a2cc4500000000),
  4788. 146: uint64(0xa89dad1f00000000),
  4789. 147: uint64(0xb78a5d9f00000000),
  4790. 148: uint64(0x68e36fab00000000),
  4791. 149: uint64(0x77f49f2b00000000),
  4792. 150: uint64(0x17cbfe7100000000),
  4793. 151: uint64(0x08dc0ef100000000),
  4794. 152: uint64(0xa9189a1900000000),
  4795. 153: uint64(0xb60f6a9900000000),
  4796. 154: uint64(0xd6300bc300000000),
  4797. 155: uint64(0xc927fb4300000000),
  4798. 156: uint64(0x164ec97700000000),
  4799. 157: uint64(0x095939f700000000),
  4800. 158: uint64(0x696658ad00000000),
  4801. 159: uint64(0x7671a82d00000000),
  4802. 160: uint64(0x1050786300000000),
  4803. 161: uint64(0x0f4788e300000000),
  4804. 162: uint64(0x6f78e9b900000000),
  4805. 163: uint64(0x706f193900000000),
  4806. 164: uint64(0xaf062b0d00000000),
  4807. 165: uint64(0xb011db8d00000000),
  4808. 166: uint64(0xd02ebad700000000),
  4809. 167: uint64(0xcf394a5700000000),
  4810. 168: uint64(0x6efddebf00000000),
  4811. 169: uint64(0x71ea2e3f00000000),
  4812. 170: uint64(0x11d54f6500000000),
  4813. 171: uint64(0x0ec2bfe500000000),
  4814. 172: uint64(0xd1ab8dd100000000),
  4815. 173: uint64(0xcebc7d5100000000),
  4816. 174: uint64(0xae831c0b00000000),
  4817. 175: uint64(0xb194ec8b00000000),
  4818. 176: uint64(0xad0c440100000000),
  4819. 177: uint64(0xb21bb48100000000),
  4820. 178: uint64(0xd224d5db00000000),
  4821. 179: uint64(0xcd33255b00000000),
  4822. 180: uint64(0x125a176f00000000),
  4823. 181: uint64(0x0d4de7ef00000000),
  4824. 182: uint64(0x6d7286b500000000),
  4825. 183: uint64(0x7265763500000000),
  4826. 184: uint64(0xd3a1e2dd00000000),
  4827. 185: uint64(0xccb6125d00000000),
  4828. 186: uint64(0xac89730700000000),
  4829. 187: uint64(0xb39e838700000000),
  4830. 188: uint64(0x6cf7b1b300000000),
  4831. 189: uint64(0x73e0413300000000),
  4832. 190: uint64(0x13df206900000000),
  4833. 191: uint64(0x0cc8d0e900000000),
  4834. 192: uint64(0xdf9d80f400000000),
  4835. 193: uint64(0xc08a707400000000),
  4836. 194: uint64(0xa0b5112e00000000),
  4837. 195: uint64(0xbfa2e1ae00000000),
  4838. 196: uint64(0x60cbd39a00000000),
  4839. 197: uint64(0x7fdc231a00000000),
  4840. 198: uint64(0x1fe3424000000000),
  4841. 199: uint64(0x00f4b2c000000000),
  4842. 200: uint64(0xa130262800000000),
  4843. 201: uint64(0xbe27d6a800000000),
  4844. 202: uint64(0xde18b7f200000000),
  4845. 203: uint64(0xc10f477200000000),
  4846. 204: uint64(0x1e66754600000000),
  4847. 205: uint64(0x017185c600000000),
  4848. 206: uint64(0x614ee49c00000000),
  4849. 207: uint64(0x7e59141c00000000),
  4850. 208: uint64(0x62c1bc9600000000),
  4851. 209: uint64(0x7dd64c1600000000),
  4852. 210: uint64(0x1de92d4c00000000),
  4853. 211: uint64(0x02feddcc00000000),
  4854. 212: uint64(0xdd97eff800000000),
  4855. 213: uint64(0xc2801f7800000000),
  4856. 214: uint64(0xa2bf7e2200000000),
  4857. 215: uint64(0xbda88ea200000000),
  4858. 216: uint64(0x1c6c1a4a00000000),
  4859. 217: uint64(0x037beaca00000000),
  4860. 218: uint64(0x63448b9000000000),
  4861. 219: uint64(0x7c537b1000000000),
  4862. 220: uint64(0xa33a492400000000),
  4863. 221: uint64(0xbc2db9a400000000),
  4864. 222: uint64(0xdc12d8fe00000000),
  4865. 223: uint64(0xc305287e00000000),
  4866. 224: uint64(0xa524f83000000000),
  4867. 225: uint64(0xba3308b000000000),
  4868. 226: uint64(0xda0c69ea00000000),
  4869. 227: uint64(0xc51b996a00000000),
  4870. 228: uint64(0x1a72ab5e00000000),
  4871. 229: uint64(0x05655bde00000000),
  4872. 230: uint64(0x655a3a8400000000),
  4873. 231: uint64(0x7a4dca0400000000),
  4874. 232: uint64(0xdb895eec00000000),
  4875. 233: uint64(0xc49eae6c00000000),
  4876. 234: uint64(0xa4a1cf3600000000),
  4877. 235: uint64(0xbbb63fb600000000),
  4878. 236: uint64(0x64df0d8200000000),
  4879. 237: uint64(0x7bc8fd0200000000),
  4880. 238: uint64(0x1bf79c5800000000),
  4881. 239: uint64(0x04e06cd800000000),
  4882. 240: uint64(0x1878c45200000000),
  4883. 241: uint64(0x076f34d200000000),
  4884. 242: uint64(0x6750558800000000),
  4885. 243: uint64(0x7847a50800000000),
  4886. 244: uint64(0xa72e973c00000000),
  4887. 245: uint64(0xb83967bc00000000),
  4888. 246: uint64(0xd80606e600000000),
  4889. 247: uint64(0xc711f66600000000),
  4890. 248: uint64(0x66d5628e00000000),
  4891. 249: uint64(0x79c2920e00000000),
  4892. 250: uint64(0x19fdf35400000000),
  4893. 251: uint64(0x06ea03d400000000),
  4894. 252: uint64(0xd98331e000000000),
  4895. 253: uint64(0xc694c16000000000),
  4896. 254: uint64(0xa6aba03a00000000),
  4897. 255: uint64(0xb9bc50ba00000000),
  4898. },
  4899. 5: {
  4900. 1: uint64(0xe2fd888d00000000),
  4901. 2: uint64(0x85fd60c000000000),
  4902. 3: uint64(0x6700e84d00000000),
  4903. 4: uint64(0x4bfdb05b00000000),
  4904. 5: uint64(0xa90038d600000000),
  4905. 6: uint64(0xce00d09b00000000),
  4906. 7: uint64(0x2cfd581600000000),
  4907. 8: uint64(0x96fa61b700000000),
  4908. 9: uint64(0x7407e93a00000000),
  4909. 10: uint64(0x1307017700000000),
  4910. 11: uint64(0xf1fa89fa00000000),
  4911. 12: uint64(0xdd07d1ec00000000),
  4912. 13: uint64(0x3ffa596100000000),
  4913. 14: uint64(0x58fab12c00000000),
  4914. 15: uint64(0xba0739a100000000),
  4915. 16: uint64(0x6df3b2b500000000),
  4916. 17: uint64(0x8f0e3a3800000000),
  4917. 18: uint64(0xe80ed27500000000),
  4918. 19: uint64(0x0af35af800000000),
  4919. 20: uint64(0x260e02ee00000000),
  4920. 21: uint64(0xc4f38a6300000000),
  4921. 22: uint64(0xa3f3622e00000000),
  4922. 23: uint64(0x410eeaa300000000),
  4923. 24: uint64(0xfb09d30200000000),
  4924. 25: uint64(0x19f45b8f00000000),
  4925. 26: uint64(0x7ef4b3c200000000),
  4926. 27: uint64(0x9c093b4f00000000),
  4927. 28: uint64(0xb0f4635900000000),
  4928. 29: uint64(0x5209ebd400000000),
  4929. 30: uint64(0x3509039900000000),
  4930. 31: uint64(0xd7f48b1400000000),
  4931. 32: uint64(0x9be014b000000000),
  4932. 33: uint64(0x791d9c3d00000000),
  4933. 34: uint64(0x1e1d747000000000),
  4934. 35: uint64(0xfce0fcfd00000000),
  4935. 36: uint64(0xd01da4eb00000000),
  4936. 37: uint64(0x32e02c6600000000),
  4937. 38: uint64(0x55e0c42b00000000),
  4938. 39: uint64(0xb71d4ca600000000),
  4939. 40: uint64(0x0d1a750700000000),
  4940. 41: uint64(0xefe7fd8a00000000),
  4941. 42: uint64(0x88e715c700000000),
  4942. 43: uint64(0x6a1a9d4a00000000),
  4943. 44: uint64(0x46e7c55c00000000),
  4944. 45: uint64(0xa41a4dd100000000),
  4945. 46: uint64(0xc31aa59c00000000),
  4946. 47: uint64(0x21e72d1100000000),
  4947. 48: uint64(0xf613a60500000000),
  4948. 49: uint64(0x14ee2e8800000000),
  4949. 50: uint64(0x73eec6c500000000),
  4950. 51: uint64(0x91134e4800000000),
  4951. 52: uint64(0xbdee165e00000000),
  4952. 53: uint64(0x5f139ed300000000),
  4953. 54: uint64(0x3813769e00000000),
  4954. 55: uint64(0xdaeefe1300000000),
  4955. 56: uint64(0x60e9c7b200000000),
  4956. 57: uint64(0x82144f3f00000000),
  4957. 58: uint64(0xe514a77200000000),
  4958. 59: uint64(0x07e92fff00000000),
  4959. 60: uint64(0x2b1477e900000000),
  4960. 61: uint64(0xc9e9ff6400000000),
  4961. 62: uint64(0xaee9172900000000),
  4962. 63: uint64(0x4c149fa400000000),
  4963. 64: uint64(0x77c758bb00000000),
  4964. 65: uint64(0x953ad03600000000),
  4965. 66: uint64(0xf23a387b00000000),
  4966. 67: uint64(0x10c7b0f600000000),
  4967. 68: uint64(0x3c3ae8e000000000),
  4968. 69: uint64(0xdec7606d00000000),
  4969. 70: uint64(0xb9c7882000000000),
  4970. 71: uint64(0x5b3a00ad00000000),
  4971. 72: uint64(0xe13d390c00000000),
  4972. 73: uint64(0x03c0b18100000000),
  4973. 74: uint64(0x64c059cc00000000),
  4974. 75: uint64(0x863dd14100000000),
  4975. 76: uint64(0xaac0895700000000),
  4976. 77: uint64(0x483d01da00000000),
  4977. 78: uint64(0x2f3de99700000000),
  4978. 79: uint64(0xcdc0611a00000000),
  4979. 80: uint64(0x1a34ea0e00000000),
  4980. 81: uint64(0xf8c9628300000000),
  4981. 82: uint64(0x9fc98ace00000000),
  4982. 83: uint64(0x7d34024300000000),
  4983. 84: uint64(0x51c95a5500000000),
  4984. 85: uint64(0xb334d2d800000000),
  4985. 86: uint64(0xd4343a9500000000),
  4986. 87: uint64(0x36c9b21800000000),
  4987. 88: uint64(0x8cce8bb900000000),
  4988. 89: uint64(0x6e33033400000000),
  4989. 90: uint64(0x0933eb7900000000),
  4990. 91: uint64(0xebce63f400000000),
  4991. 92: uint64(0xc7333be200000000),
  4992. 93: uint64(0x25ceb36f00000000),
  4993. 94: uint64(0x42ce5b2200000000),
  4994. 95: uint64(0xa033d3af00000000),
  4995. 96: uint64(0xec274c0b00000000),
  4996. 97: uint64(0x0edac48600000000),
  4997. 98: uint64(0x69da2ccb00000000),
  4998. 99: uint64(0x8b27a44600000000),
  4999. 100: uint64(0xa7dafc5000000000),
  5000. 101: uint64(0x452774dd00000000),
  5001. 102: uint64(0x22279c9000000000),
  5002. 103: uint64(0xc0da141d00000000),
  5003. 104: uint64(0x7add2dbc00000000),
  5004. 105: uint64(0x9820a53100000000),
  5005. 106: uint64(0xff204d7c00000000),
  5006. 107: uint64(0x1dddc5f100000000),
  5007. 108: uint64(0x31209de700000000),
  5008. 109: uint64(0xd3dd156a00000000),
  5009. 110: uint64(0xb4ddfd2700000000),
  5010. 111: uint64(0x562075aa00000000),
  5011. 112: uint64(0x81d4febe00000000),
  5012. 113: uint64(0x6329763300000000),
  5013. 114: uint64(0x04299e7e00000000),
  5014. 115: uint64(0xe6d416f300000000),
  5015. 116: uint64(0xca294ee500000000),
  5016. 117: uint64(0x28d4c66800000000),
  5017. 118: uint64(0x4fd42e2500000000),
  5018. 119: uint64(0xad29a6a800000000),
  5019. 120: uint64(0x172e9f0900000000),
  5020. 121: uint64(0xf5d3178400000000),
  5021. 122: uint64(0x92d3ffc900000000),
  5022. 123: uint64(0x702e774400000000),
  5023. 124: uint64(0x5cd32f5200000000),
  5024. 125: uint64(0xbe2ea7df00000000),
  5025. 126: uint64(0xd92e4f9200000000),
  5026. 127: uint64(0x3bd3c71f00000000),
  5027. 128: uint64(0xaf88c0ad00000000),
  5028. 129: uint64(0x4d75482000000000),
  5029. 130: uint64(0x2a75a06d00000000),
  5030. 131: uint64(0xc88828e000000000),
  5031. 132: uint64(0xe47570f600000000),
  5032. 133: uint64(0x0688f87b00000000),
  5033. 134: uint64(0x6188103600000000),
  5034. 135: uint64(0x837598bb00000000),
  5035. 136: uint64(0x3972a11a00000000),
  5036. 137: uint64(0xdb8f299700000000),
  5037. 138: uint64(0xbc8fc1da00000000),
  5038. 139: uint64(0x5e72495700000000),
  5039. 140: uint64(0x728f114100000000),
  5040. 141: uint64(0x907299cc00000000),
  5041. 142: uint64(0xf772718100000000),
  5042. 143: uint64(0x158ff90c00000000),
  5043. 144: uint64(0xc27b721800000000),
  5044. 145: uint64(0x2086fa9500000000),
  5045. 146: uint64(0x478612d800000000),
  5046. 147: uint64(0xa57b9a5500000000),
  5047. 148: uint64(0x8986c24300000000),
  5048. 149: uint64(0x6b7b4ace00000000),
  5049. 150: uint64(0x0c7ba28300000000),
  5050. 151: uint64(0xee862a0e00000000),
  5051. 152: uint64(0x548113af00000000),
  5052. 153: uint64(0xb67c9b2200000000),
  5053. 154: uint64(0xd17c736f00000000),
  5054. 155: uint64(0x3381fbe200000000),
  5055. 156: uint64(0x1f7ca3f400000000),
  5056. 157: uint64(0xfd812b7900000000),
  5057. 158: uint64(0x9a81c33400000000),
  5058. 159: uint64(0x787c4bb900000000),
  5059. 160: uint64(0x3468d41d00000000),
  5060. 161: uint64(0xd6955c9000000000),
  5061. 162: uint64(0xb195b4dd00000000),
  5062. 163: uint64(0x53683c5000000000),
  5063. 164: uint64(0x7f95644600000000),
  5064. 165: uint64(0x9d68eccb00000000),
  5065. 166: uint64(0xfa68048600000000),
  5066. 167: uint64(0x18958c0b00000000),
  5067. 168: uint64(0xa292b5aa00000000),
  5068. 169: uint64(0x406f3d2700000000),
  5069. 170: uint64(0x276fd56a00000000),
  5070. 171: uint64(0xc5925de700000000),
  5071. 172: uint64(0xe96f05f100000000),
  5072. 173: uint64(0x0b928d7c00000000),
  5073. 174: uint64(0x6c92653100000000),
  5074. 175: uint64(0x8e6fedbc00000000),
  5075. 176: uint64(0x599b66a800000000),
  5076. 177: uint64(0xbb66ee2500000000),
  5077. 178: uint64(0xdc66066800000000),
  5078. 179: uint64(0x3e9b8ee500000000),
  5079. 180: uint64(0x1266d6f300000000),
  5080. 181: uint64(0xf09b5e7e00000000),
  5081. 182: uint64(0x979bb63300000000),
  5082. 183: uint64(0x75663ebe00000000),
  5083. 184: uint64(0xcf61071f00000000),
  5084. 185: uint64(0x2d9c8f9200000000),
  5085. 186: uint64(0x4a9c67df00000000),
  5086. 187: uint64(0xa861ef5200000000),
  5087. 188: uint64(0x849cb74400000000),
  5088. 189: uint64(0x66613fc900000000),
  5089. 190: uint64(0x0161d78400000000),
  5090. 191: uint64(0xe39c5f0900000000),
  5091. 192: uint64(0xd84f981600000000),
  5092. 193: uint64(0x3ab2109b00000000),
  5093. 194: uint64(0x5db2f8d600000000),
  5094. 195: uint64(0xbf4f705b00000000),
  5095. 196: uint64(0x93b2284d00000000),
  5096. 197: uint64(0x714fa0c000000000),
  5097. 198: uint64(0x164f488d00000000),
  5098. 199: uint64(0xf4b2c00000000000),
  5099. 200: uint64(0x4eb5f9a100000000),
  5100. 201: uint64(0xac48712c00000000),
  5101. 202: uint64(0xcb48996100000000),
  5102. 203: uint64(0x29b511ec00000000),
  5103. 204: uint64(0x054849fa00000000),
  5104. 205: uint64(0xe7b5c17700000000),
  5105. 206: uint64(0x80b5293a00000000),
  5106. 207: uint64(0x6248a1b700000000),
  5107. 208: uint64(0xb5bc2aa300000000),
  5108. 209: uint64(0x5741a22e00000000),
  5109. 210: uint64(0x30414a6300000000),
  5110. 211: uint64(0xd2bcc2ee00000000),
  5111. 212: uint64(0xfe419af800000000),
  5112. 213: uint64(0x1cbc127500000000),
  5113. 214: uint64(0x7bbcfa3800000000),
  5114. 215: uint64(0x994172b500000000),
  5115. 216: uint64(0x23464b1400000000),
  5116. 217: uint64(0xc1bbc39900000000),
  5117. 218: uint64(0xa6bb2bd400000000),
  5118. 219: uint64(0x4446a35900000000),
  5119. 220: uint64(0x68bbfb4f00000000),
  5120. 221: uint64(0x8a4673c200000000),
  5121. 222: uint64(0xed469b8f00000000),
  5122. 223: uint64(0x0fbb130200000000),
  5123. 224: uint64(0x43af8ca600000000),
  5124. 225: uint64(0xa152042b00000000),
  5125. 226: uint64(0xc652ec6600000000),
  5126. 227: uint64(0x24af64eb00000000),
  5127. 228: uint64(0x08523cfd00000000),
  5128. 229: uint64(0xeaafb47000000000),
  5129. 230: uint64(0x8daf5c3d00000000),
  5130. 231: uint64(0x6f52d4b000000000),
  5131. 232: uint64(0xd555ed1100000000),
  5132. 233: uint64(0x37a8659c00000000),
  5133. 234: uint64(0x50a88dd100000000),
  5134. 235: uint64(0xb255055c00000000),
  5135. 236: uint64(0x9ea85d4a00000000),
  5136. 237: uint64(0x7c55d5c700000000),
  5137. 238: uint64(0x1b553d8a00000000),
  5138. 239: uint64(0xf9a8b50700000000),
  5139. 240: uint64(0x2e5c3e1300000000),
  5140. 241: uint64(0xcca1b69e00000000),
  5141. 242: uint64(0xaba15ed300000000),
  5142. 243: uint64(0x495cd65e00000000),
  5143. 244: uint64(0x65a18e4800000000),
  5144. 245: uint64(0x875c06c500000000),
  5145. 246: uint64(0xe05cee8800000000),
  5146. 247: uint64(0x02a1660500000000),
  5147. 248: uint64(0xb8a65fa400000000),
  5148. 249: uint64(0x5a5bd72900000000),
  5149. 250: uint64(0x3d5b3f6400000000),
  5150. 251: uint64(0xdfa6b7e900000000),
  5151. 252: uint64(0xf35befff00000000),
  5152. 253: uint64(0x11a6677200000000),
  5153. 254: uint64(0x76a68f3f00000000),
  5154. 255: uint64(0x945b07b200000000),
  5155. },
  5156. 6: {
  5157. 1: uint64(0xa90b894e00000000),
  5158. 2: uint64(0x5217129d00000000),
  5159. 3: uint64(0xfb1c9bd300000000),
  5160. 4: uint64(0xe52855e100000000),
  5161. 5: uint64(0x4c23dcaf00000000),
  5162. 6: uint64(0xb73f477c00000000),
  5163. 7: uint64(0x1e34ce3200000000),
  5164. 8: uint64(0x8b57db1900000000),
  5165. 9: uint64(0x225c525700000000),
  5166. 10: uint64(0xd940c98400000000),
  5167. 11: uint64(0x704b40ca00000000),
  5168. 12: uint64(0x6e7f8ef800000000),
  5169. 13: uint64(0xc77407b600000000),
  5170. 14: uint64(0x3c689c6500000000),
  5171. 15: uint64(0x9563152b00000000),
  5172. 16: uint64(0x16afb63300000000),
  5173. 17: uint64(0xbfa43f7d00000000),
  5174. 18: uint64(0x44b8a4ae00000000),
  5175. 19: uint64(0xedb32de000000000),
  5176. 20: uint64(0xf387e3d200000000),
  5177. 21: uint64(0x5a8c6a9c00000000),
  5178. 22: uint64(0xa190f14f00000000),
  5179. 23: uint64(0x089b780100000000),
  5180. 24: uint64(0x9df86d2a00000000),
  5181. 25: uint64(0x34f3e46400000000),
  5182. 26: uint64(0xcfef7fb700000000),
  5183. 27: uint64(0x66e4f6f900000000),
  5184. 28: uint64(0x78d038cb00000000),
  5185. 29: uint64(0xd1dbb18500000000),
  5186. 30: uint64(0x2ac72a5600000000),
  5187. 31: uint64(0x83cca31800000000),
  5188. 32: uint64(0x2c5e6d6700000000),
  5189. 33: uint64(0x8555e42900000000),
  5190. 34: uint64(0x7e497ffa00000000),
  5191. 35: uint64(0xd742f6b400000000),
  5192. 36: uint64(0xc976388600000000),
  5193. 37: uint64(0x607db1c800000000),
  5194. 38: uint64(0x9b612a1b00000000),
  5195. 39: uint64(0x326aa35500000000),
  5196. 40: uint64(0xa709b67e00000000),
  5197. 41: uint64(0x0e023f3000000000),
  5198. 42: uint64(0xf51ea4e300000000),
  5199. 43: uint64(0x5c152dad00000000),
  5200. 44: uint64(0x4221e39f00000000),
  5201. 45: uint64(0xeb2a6ad100000000),
  5202. 46: uint64(0x1036f10200000000),
  5203. 47: uint64(0xb93d784c00000000),
  5204. 48: uint64(0x3af1db5400000000),
  5205. 49: uint64(0x93fa521a00000000),
  5206. 50: uint64(0x68e6c9c900000000),
  5207. 51: uint64(0xc1ed408700000000),
  5208. 52: uint64(0xdfd98eb500000000),
  5209. 53: uint64(0x76d207fb00000000),
  5210. 54: uint64(0x8dce9c2800000000),
  5211. 55: uint64(0x24c5156600000000),
  5212. 56: uint64(0xb1a6004d00000000),
  5213. 57: uint64(0x18ad890300000000),
  5214. 58: uint64(0xe3b112d000000000),
  5215. 59: uint64(0x4aba9b9e00000000),
  5216. 60: uint64(0x548e55ac00000000),
  5217. 61: uint64(0xfd85dce200000000),
  5218. 62: uint64(0x0699473100000000),
  5219. 63: uint64(0xaf92ce7f00000000),
  5220. 64: uint64(0x58bcdace00000000),
  5221. 65: uint64(0xf1b7538000000000),
  5222. 66: uint64(0x0aabc85300000000),
  5223. 67: uint64(0xa3a0411d00000000),
  5224. 68: uint64(0xbd948f2f00000000),
  5225. 69: uint64(0x149f066100000000),
  5226. 70: uint64(0xef839db200000000),
  5227. 71: uint64(0x468814fc00000000),
  5228. 72: uint64(0xd3eb01d700000000),
  5229. 73: uint64(0x7ae0889900000000),
  5230. 74: uint64(0x81fc134a00000000),
  5231. 75: uint64(0x28f79a0400000000),
  5232. 76: uint64(0x36c3543600000000),
  5233. 77: uint64(0x9fc8dd7800000000),
  5234. 78: uint64(0x64d446ab00000000),
  5235. 79: uint64(0xcddfcfe500000000),
  5236. 80: uint64(0x4e136cfd00000000),
  5237. 81: uint64(0xe718e5b300000000),
  5238. 82: uint64(0x1c047e6000000000),
  5239. 83: uint64(0xb50ff72e00000000),
  5240. 84: uint64(0xab3b391c00000000),
  5241. 85: uint64(0x0230b05200000000),
  5242. 86: uint64(0xf92c2b8100000000),
  5243. 87: uint64(0x5027a2cf00000000),
  5244. 88: uint64(0xc544b7e400000000),
  5245. 89: uint64(0x6c4f3eaa00000000),
  5246. 90: uint64(0x9753a57900000000),
  5247. 91: uint64(0x3e582c3700000000),
  5248. 92: uint64(0x206ce20500000000),
  5249. 93: uint64(0x89676b4b00000000),
  5250. 94: uint64(0x727bf09800000000),
  5251. 95: uint64(0xdb7079d600000000),
  5252. 96: uint64(0x74e2b7a900000000),
  5253. 97: uint64(0xdde93ee700000000),
  5254. 98: uint64(0x26f5a53400000000),
  5255. 99: uint64(0x8ffe2c7a00000000),
  5256. 100: uint64(0x91cae24800000000),
  5257. 101: uint64(0x38c16b0600000000),
  5258. 102: uint64(0xc3ddf0d500000000),
  5259. 103: uint64(0x6ad6799b00000000),
  5260. 104: uint64(0xffb56cb000000000),
  5261. 105: uint64(0x56bee5fe00000000),
  5262. 106: uint64(0xada27e2d00000000),
  5263. 107: uint64(0x04a9f76300000000),
  5264. 108: uint64(0x1a9d395100000000),
  5265. 109: uint64(0xb396b01f00000000),
  5266. 110: uint64(0x488a2bcc00000000),
  5267. 111: uint64(0xe181a28200000000),
  5268. 112: uint64(0x624d019a00000000),
  5269. 113: uint64(0xcb4688d400000000),
  5270. 114: uint64(0x305a130700000000),
  5271. 115: uint64(0x99519a4900000000),
  5272. 116: uint64(0x8765547b00000000),
  5273. 117: uint64(0x2e6edd3500000000),
  5274. 118: uint64(0xd57246e600000000),
  5275. 119: uint64(0x7c79cfa800000000),
  5276. 120: uint64(0xe91ada8300000000),
  5277. 121: uint64(0x401153cd00000000),
  5278. 122: uint64(0xbb0dc81e00000000),
  5279. 123: uint64(0x1206415000000000),
  5280. 124: uint64(0x0c328f6200000000),
  5281. 125: uint64(0xa539062c00000000),
  5282. 126: uint64(0x5e259dff00000000),
  5283. 127: uint64(0xf72e14b100000000),
  5284. 128: uint64(0xf17ec44600000000),
  5285. 129: uint64(0x58754d0800000000),
  5286. 130: uint64(0xa369d6db00000000),
  5287. 131: uint64(0x0a625f9500000000),
  5288. 132: uint64(0x145691a700000000),
  5289. 133: uint64(0xbd5d18e900000000),
  5290. 134: uint64(0x4641833a00000000),
  5291. 135: uint64(0xef4a0a7400000000),
  5292. 136: uint64(0x7a291f5f00000000),
  5293. 137: uint64(0xd322961100000000),
  5294. 138: uint64(0x283e0dc200000000),
  5295. 139: uint64(0x8135848c00000000),
  5296. 140: uint64(0x9f014abe00000000),
  5297. 141: uint64(0x360ac3f000000000),
  5298. 142: uint64(0xcd16582300000000),
  5299. 143: uint64(0x641dd16d00000000),
  5300. 144: uint64(0xe7d1727500000000),
  5301. 145: uint64(0x4edafb3b00000000),
  5302. 146: uint64(0xb5c660e800000000),
  5303. 147: uint64(0x1ccde9a600000000),
  5304. 148: uint64(0x02f9279400000000),
  5305. 149: uint64(0xabf2aeda00000000),
  5306. 150: uint64(0x50ee350900000000),
  5307. 151: uint64(0xf9e5bc4700000000),
  5308. 152: uint64(0x6c86a96c00000000),
  5309. 153: uint64(0xc58d202200000000),
  5310. 154: uint64(0x3e91bbf100000000),
  5311. 155: uint64(0x979a32bf00000000),
  5312. 156: uint64(0x89aefc8d00000000),
  5313. 157: uint64(0x20a575c300000000),
  5314. 158: uint64(0xdbb9ee1000000000),
  5315. 159: uint64(0x72b2675e00000000),
  5316. 160: uint64(0xdd20a92100000000),
  5317. 161: uint64(0x742b206f00000000),
  5318. 162: uint64(0x8f37bbbc00000000),
  5319. 163: uint64(0x263c32f200000000),
  5320. 164: uint64(0x3808fcc000000000),
  5321. 165: uint64(0x9103758e00000000),
  5322. 166: uint64(0x6a1fee5d00000000),
  5323. 167: uint64(0xc314671300000000),
  5324. 168: uint64(0x5677723800000000),
  5325. 169: uint64(0xff7cfb7600000000),
  5326. 170: uint64(0x046060a500000000),
  5327. 171: uint64(0xad6be9eb00000000),
  5328. 172: uint64(0xb35f27d900000000),
  5329. 173: uint64(0x1a54ae9700000000),
  5330. 174: uint64(0xe148354400000000),
  5331. 175: uint64(0x4843bc0a00000000),
  5332. 176: uint64(0xcb8f1f1200000000),
  5333. 177: uint64(0x6284965c00000000),
  5334. 178: uint64(0x99980d8f00000000),
  5335. 179: uint64(0x309384c100000000),
  5336. 180: uint64(0x2ea74af300000000),
  5337. 181: uint64(0x87acc3bd00000000),
  5338. 182: uint64(0x7cb0586e00000000),
  5339. 183: uint64(0xd5bbd12000000000),
  5340. 184: uint64(0x40d8c40b00000000),
  5341. 185: uint64(0xe9d34d4500000000),
  5342. 186: uint64(0x12cfd69600000000),
  5343. 187: uint64(0xbbc45fd800000000),
  5344. 188: uint64(0xa5f091ea00000000),
  5345. 189: uint64(0x0cfb18a400000000),
  5346. 190: uint64(0xf7e7837700000000),
  5347. 191: uint64(0x5eec0a3900000000),
  5348. 192: uint64(0xa9c21e8800000000),
  5349. 193: uint64(0x00c997c600000000),
  5350. 194: uint64(0xfbd50c1500000000),
  5351. 195: uint64(0x52de855b00000000),
  5352. 196: uint64(0x4cea4b6900000000),
  5353. 197: uint64(0xe5e1c22700000000),
  5354. 198: uint64(0x1efd59f400000000),
  5355. 199: uint64(0xb7f6d0ba00000000),
  5356. 200: uint64(0x2295c59100000000),
  5357. 201: uint64(0x8b9e4cdf00000000),
  5358. 202: uint64(0x7082d70c00000000),
  5359. 203: uint64(0xd9895e4200000000),
  5360. 204: uint64(0xc7bd907000000000),
  5361. 205: uint64(0x6eb6193e00000000),
  5362. 206: uint64(0x95aa82ed00000000),
  5363. 207: uint64(0x3ca10ba300000000),
  5364. 208: uint64(0xbf6da8bb00000000),
  5365. 209: uint64(0x166621f500000000),
  5366. 210: uint64(0xed7aba2600000000),
  5367. 211: uint64(0x4471336800000000),
  5368. 212: uint64(0x5a45fd5a00000000),
  5369. 213: uint64(0xf34e741400000000),
  5370. 214: uint64(0x0852efc700000000),
  5371. 215: uint64(0xa159668900000000),
  5372. 216: uint64(0x343a73a200000000),
  5373. 217: uint64(0x9d31faec00000000),
  5374. 218: uint64(0x662d613f00000000),
  5375. 219: uint64(0xcf26e87100000000),
  5376. 220: uint64(0xd112264300000000),
  5377. 221: uint64(0x7819af0d00000000),
  5378. 222: uint64(0x830534de00000000),
  5379. 223: uint64(0x2a0ebd9000000000),
  5380. 224: uint64(0x859c73ef00000000),
  5381. 225: uint64(0x2c97faa100000000),
  5382. 226: uint64(0xd78b617200000000),
  5383. 227: uint64(0x7e80e83c00000000),
  5384. 228: uint64(0x60b4260e00000000),
  5385. 229: uint64(0xc9bfaf4000000000),
  5386. 230: uint64(0x32a3349300000000),
  5387. 231: uint64(0x9ba8bddd00000000),
  5388. 232: uint64(0x0ecba8f600000000),
  5389. 233: uint64(0xa7c021b800000000),
  5390. 234: uint64(0x5cdcba6b00000000),
  5391. 235: uint64(0xf5d7332500000000),
  5392. 236: uint64(0xebe3fd1700000000),
  5393. 237: uint64(0x42e8745900000000),
  5394. 238: uint64(0xb9f4ef8a00000000),
  5395. 239: uint64(0x10ff66c400000000),
  5396. 240: uint64(0x9333c5dc00000000),
  5397. 241: uint64(0x3a384c9200000000),
  5398. 242: uint64(0xc124d74100000000),
  5399. 243: uint64(0x682f5e0f00000000),
  5400. 244: uint64(0x761b903d00000000),
  5401. 245: uint64(0xdf10197300000000),
  5402. 246: uint64(0x240c82a000000000),
  5403. 247: uint64(0x8d070bee00000000),
  5404. 248: uint64(0x18641ec500000000),
  5405. 249: uint64(0xb16f978b00000000),
  5406. 250: uint64(0x4a730c5800000000),
  5407. 251: uint64(0xe378851600000000),
  5408. 252: uint64(0xfd4c4b2400000000),
  5409. 253: uint64(0x5447c26a00000000),
  5410. 254: uint64(0xaf5b59b900000000),
  5411. 255: uint64(0x0650d0f700000000),
  5412. },
  5413. 7: {
  5414. 1: uint64(0x479244af00000000),
  5415. 2: uint64(0xcf22f88500000000),
  5416. 3: uint64(0x88b0bc2a00000000),
  5417. 4: uint64(0xdf4381d000000000),
  5418. 5: uint64(0x98d1c57f00000000),
  5419. 6: uint64(0x1061795500000000),
  5420. 7: uint64(0x57f33dfa00000000),
  5421. 8: uint64(0xff81737a00000000),
  5422. 9: uint64(0xb81337d500000000),
  5423. 10: uint64(0x30a38bff00000000),
  5424. 11: uint64(0x7731cf5000000000),
  5425. 12: uint64(0x20c2f2aa00000000),
  5426. 13: uint64(0x6750b60500000000),
  5427. 14: uint64(0xefe00a2f00000000),
  5428. 15: uint64(0xa8724e8000000000),
  5429. 16: uint64(0xfe03e7f400000000),
  5430. 17: uint64(0xb991a35b00000000),
  5431. 18: uint64(0x31211f7100000000),
  5432. 19: uint64(0x76b35bde00000000),
  5433. 20: uint64(0x2140662400000000),
  5434. 21: uint64(0x66d2228b00000000),
  5435. 22: uint64(0xee629ea100000000),
  5436. 23: uint64(0xa9f0da0e00000000),
  5437. 24: uint64(0x0182948e00000000),
  5438. 25: uint64(0x4610d02100000000),
  5439. 26: uint64(0xcea06c0b00000000),
  5440. 27: uint64(0x893228a400000000),
  5441. 28: uint64(0xdec1155e00000000),
  5442. 29: uint64(0x995351f100000000),
  5443. 30: uint64(0x11e3eddb00000000),
  5444. 31: uint64(0x5671a97400000000),
  5445. 32: uint64(0xbd01bf3200000000),
  5446. 33: uint64(0xfa93fb9d00000000),
  5447. 34: uint64(0x722347b700000000),
  5448. 35: uint64(0x35b1031800000000),
  5449. 36: uint64(0x62423ee200000000),
  5450. 37: uint64(0x25d07a4d00000000),
  5451. 38: uint64(0xad60c66700000000),
  5452. 39: uint64(0xeaf282c800000000),
  5453. 40: uint64(0x4280cc4800000000),
  5454. 41: uint64(0x051288e700000000),
  5455. 42: uint64(0x8da234cd00000000),
  5456. 43: uint64(0xca30706200000000),
  5457. 44: uint64(0x9dc34d9800000000),
  5458. 45: uint64(0xda51093700000000),
  5459. 46: uint64(0x52e1b51d00000000),
  5460. 47: uint64(0x1573f1b200000000),
  5461. 48: uint64(0x430258c600000000),
  5462. 49: uint64(0x04901c6900000000),
  5463. 50: uint64(0x8c20a04300000000),
  5464. 51: uint64(0xcbb2e4ec00000000),
  5465. 52: uint64(0x9c41d91600000000),
  5466. 53: uint64(0xdbd39db900000000),
  5467. 54: uint64(0x5363219300000000),
  5468. 55: uint64(0x14f1653c00000000),
  5469. 56: uint64(0xbc832bbc00000000),
  5470. 57: uint64(0xfb116f1300000000),
  5471. 58: uint64(0x73a1d33900000000),
  5472. 59: uint64(0x3433979600000000),
  5473. 60: uint64(0x63c0aa6c00000000),
  5474. 61: uint64(0x2452eec300000000),
  5475. 62: uint64(0xace252e900000000),
  5476. 63: uint64(0xeb70164600000000),
  5477. 64: uint64(0x7a037e6500000000),
  5478. 65: uint64(0x3d913aca00000000),
  5479. 66: uint64(0xb52186e000000000),
  5480. 67: uint64(0xf2b3c24f00000000),
  5481. 68: uint64(0xa540ffb500000000),
  5482. 69: uint64(0xe2d2bb1a00000000),
  5483. 70: uint64(0x6a62073000000000),
  5484. 71: uint64(0x2df0439f00000000),
  5485. 72: uint64(0x85820d1f00000000),
  5486. 73: uint64(0xc21049b000000000),
  5487. 74: uint64(0x4aa0f59a00000000),
  5488. 75: uint64(0x0d32b13500000000),
  5489. 76: uint64(0x5ac18ccf00000000),
  5490. 77: uint64(0x1d53c86000000000),
  5491. 78: uint64(0x95e3744a00000000),
  5492. 79: uint64(0xd27130e500000000),
  5493. 80: uint64(0x8400999100000000),
  5494. 81: uint64(0xc392dd3e00000000),
  5495. 82: uint64(0x4b22611400000000),
  5496. 83: uint64(0x0cb025bb00000000),
  5497. 84: uint64(0x5b43184100000000),
  5498. 85: uint64(0x1cd15cee00000000),
  5499. 86: uint64(0x9461e0c400000000),
  5500. 87: uint64(0xd3f3a46b00000000),
  5501. 88: uint64(0x7b81eaeb00000000),
  5502. 89: uint64(0x3c13ae4400000000),
  5503. 90: uint64(0xb4a3126e00000000),
  5504. 91: uint64(0xf33156c100000000),
  5505. 92: uint64(0xa4c26b3b00000000),
  5506. 93: uint64(0xe3502f9400000000),
  5507. 94: uint64(0x6be093be00000000),
  5508. 95: uint64(0x2c72d71100000000),
  5509. 96: uint64(0xc702c15700000000),
  5510. 97: uint64(0x809085f800000000),
  5511. 98: uint64(0x082039d200000000),
  5512. 99: uint64(0x4fb27d7d00000000),
  5513. 100: uint64(0x1841408700000000),
  5514. 101: uint64(0x5fd3042800000000),
  5515. 102: uint64(0xd763b80200000000),
  5516. 103: uint64(0x90f1fcad00000000),
  5517. 104: uint64(0x3883b22d00000000),
  5518. 105: uint64(0x7f11f68200000000),
  5519. 106: uint64(0xf7a14aa800000000),
  5520. 107: uint64(0xb0330e0700000000),
  5521. 108: uint64(0xe7c033fd00000000),
  5522. 109: uint64(0xa052775200000000),
  5523. 110: uint64(0x28e2cb7800000000),
  5524. 111: uint64(0x6f708fd700000000),
  5525. 112: uint64(0x390126a300000000),
  5526. 113: uint64(0x7e93620c00000000),
  5527. 114: uint64(0xf623de2600000000),
  5528. 115: uint64(0xb1b19a8900000000),
  5529. 116: uint64(0xe642a77300000000),
  5530. 117: uint64(0xa1d0e3dc00000000),
  5531. 118: uint64(0x29605ff600000000),
  5532. 119: uint64(0x6ef21b5900000000),
  5533. 120: uint64(0xc68055d900000000),
  5534. 121: uint64(0x8112117600000000),
  5535. 122: uint64(0x09a2ad5c00000000),
  5536. 123: uint64(0x4e30e9f300000000),
  5537. 124: uint64(0x19c3d40900000000),
  5538. 125: uint64(0x5e5190a600000000),
  5539. 126: uint64(0xd6e12c8c00000000),
  5540. 127: uint64(0x9173682300000000),
  5541. 128: uint64(0xf406fcca00000000),
  5542. 129: uint64(0xb394b86500000000),
  5543. 130: uint64(0x3b24044f00000000),
  5544. 131: uint64(0x7cb640e000000000),
  5545. 132: uint64(0x2b457d1a00000000),
  5546. 133: uint64(0x6cd739b500000000),
  5547. 134: uint64(0xe467859f00000000),
  5548. 135: uint64(0xa3f5c13000000000),
  5549. 136: uint64(0x0b878fb000000000),
  5550. 137: uint64(0x4c15cb1f00000000),
  5551. 138: uint64(0xc4a5773500000000),
  5552. 139: uint64(0x8337339a00000000),
  5553. 140: uint64(0xd4c40e6000000000),
  5554. 141: uint64(0x93564acf00000000),
  5555. 142: uint64(0x1be6f6e500000000),
  5556. 143: uint64(0x5c74b24a00000000),
  5557. 144: uint64(0x0a051b3e00000000),
  5558. 145: uint64(0x4d975f9100000000),
  5559. 146: uint64(0xc527e3bb00000000),
  5560. 147: uint64(0x82b5a71400000000),
  5561. 148: uint64(0xd5469aee00000000),
  5562. 149: uint64(0x92d4de4100000000),
  5563. 150: uint64(0x1a64626b00000000),
  5564. 151: uint64(0x5df626c400000000),
  5565. 152: uint64(0xf584684400000000),
  5566. 153: uint64(0xb2162ceb00000000),
  5567. 154: uint64(0x3aa690c100000000),
  5568. 155: uint64(0x7d34d46e00000000),
  5569. 156: uint64(0x2ac7e99400000000),
  5570. 157: uint64(0x6d55ad3b00000000),
  5571. 158: uint64(0xe5e5111100000000),
  5572. 159: uint64(0xa27755be00000000),
  5573. 160: uint64(0x490743f800000000),
  5574. 161: uint64(0x0e95075700000000),
  5575. 162: uint64(0x8625bb7d00000000),
  5576. 163: uint64(0xc1b7ffd200000000),
  5577. 164: uint64(0x9644c22800000000),
  5578. 165: uint64(0xd1d6868700000000),
  5579. 166: uint64(0x59663aad00000000),
  5580. 167: uint64(0x1ef47e0200000000),
  5581. 168: uint64(0xb686308200000000),
  5582. 169: uint64(0xf114742d00000000),
  5583. 170: uint64(0x79a4c80700000000),
  5584. 171: uint64(0x3e368ca800000000),
  5585. 172: uint64(0x69c5b15200000000),
  5586. 173: uint64(0x2e57f5fd00000000),
  5587. 174: uint64(0xa6e749d700000000),
  5588. 175: uint64(0xe1750d7800000000),
  5589. 176: uint64(0xb704a40c00000000),
  5590. 177: uint64(0xf096e0a300000000),
  5591. 178: uint64(0x78265c8900000000),
  5592. 179: uint64(0x3fb4182600000000),
  5593. 180: uint64(0x684725dc00000000),
  5594. 181: uint64(0x2fd5617300000000),
  5595. 182: uint64(0xa765dd5900000000),
  5596. 183: uint64(0xe0f799f600000000),
  5597. 184: uint64(0x4885d77600000000),
  5598. 185: uint64(0x0f1793d900000000),
  5599. 186: uint64(0x87a72ff300000000),
  5600. 187: uint64(0xc0356b5c00000000),
  5601. 188: uint64(0x97c656a600000000),
  5602. 189: uint64(0xd054120900000000),
  5603. 190: uint64(0x58e4ae2300000000),
  5604. 191: uint64(0x1f76ea8c00000000),
  5605. 192: uint64(0x8e0582af00000000),
  5606. 193: uint64(0xc997c60000000000),
  5607. 194: uint64(0x41277a2a00000000),
  5608. 195: uint64(0x06b53e8500000000),
  5609. 196: uint64(0x5146037f00000000),
  5610. 197: uint64(0x16d447d000000000),
  5611. 198: uint64(0x9e64fbfa00000000),
  5612. 199: uint64(0xd9f6bf5500000000),
  5613. 200: uint64(0x7184f1d500000000),
  5614. 201: uint64(0x3616b57a00000000),
  5615. 202: uint64(0xbea6095000000000),
  5616. 203: uint64(0xf9344dff00000000),
  5617. 204: uint64(0xaec7700500000000),
  5618. 205: uint64(0xe95534aa00000000),
  5619. 206: uint64(0x61e5888000000000),
  5620. 207: uint64(0x2677cc2f00000000),
  5621. 208: uint64(0x7006655b00000000),
  5622. 209: uint64(0x379421f400000000),
  5623. 210: uint64(0xbf249dde00000000),
  5624. 211: uint64(0xf8b6d97100000000),
  5625. 212: uint64(0xaf45e48b00000000),
  5626. 213: uint64(0xe8d7a02400000000),
  5627. 214: uint64(0x60671c0e00000000),
  5628. 215: uint64(0x27f558a100000000),
  5629. 216: uint64(0x8f87162100000000),
  5630. 217: uint64(0xc815528e00000000),
  5631. 218: uint64(0x40a5eea400000000),
  5632. 219: uint64(0x0737aa0b00000000),
  5633. 220: uint64(0x50c497f100000000),
  5634. 221: uint64(0x1756d35e00000000),
  5635. 222: uint64(0x9fe66f7400000000),
  5636. 223: uint64(0xd8742bdb00000000),
  5637. 224: uint64(0x33043d9d00000000),
  5638. 225: uint64(0x7496793200000000),
  5639. 226: uint64(0xfc26c51800000000),
  5640. 227: uint64(0xbbb481b700000000),
  5641. 228: uint64(0xec47bc4d00000000),
  5642. 229: uint64(0xabd5f8e200000000),
  5643. 230: uint64(0x236544c800000000),
  5644. 231: uint64(0x64f7006700000000),
  5645. 232: uint64(0xcc854ee700000000),
  5646. 233: uint64(0x8b170a4800000000),
  5647. 234: uint64(0x03a7b66200000000),
  5648. 235: uint64(0x4435f2cd00000000),
  5649. 236: uint64(0x13c6cf3700000000),
  5650. 237: uint64(0x54548b9800000000),
  5651. 238: uint64(0xdce437b200000000),
  5652. 239: uint64(0x9b76731d00000000),
  5653. 240: uint64(0xcd07da6900000000),
  5654. 241: uint64(0x8a959ec600000000),
  5655. 242: uint64(0x022522ec00000000),
  5656. 243: uint64(0x45b7664300000000),
  5657. 244: uint64(0x12445bb900000000),
  5658. 245: uint64(0x55d61f1600000000),
  5659. 246: uint64(0xdd66a33c00000000),
  5660. 247: uint64(0x9af4e79300000000),
  5661. 248: uint64(0x3286a91300000000),
  5662. 249: uint64(0x7514edbc00000000),
  5663. 250: uint64(0xfda4519600000000),
  5664. 251: uint64(0xba36153900000000),
  5665. 252: uint64(0xedc528c300000000),
  5666. 253: uint64(0xaa576c6c00000000),
  5667. 254: uint64(0x22e7d04600000000),
  5668. 255: uint64(0x657594e900000000),
  5669. },
  5670. }
  5671. var _x2n_table = [32]Tz_crc_t{
  5672. 0: uint32(0x40000000),
  5673. 1: uint32(0x20000000),
  5674. 2: uint32(0x08000000),
  5675. 3: uint32(0x00800000),
  5676. 4: uint32(0x00008000),
  5677. 5: uint32(0xedb88320),
  5678. 6: uint32(0xb1e6b092),
  5679. 7: uint32(0xa06a2517),
  5680. 8: uint32(0xed627dae),
  5681. 9: uint32(0x88d14467),
  5682. 10: uint32(0xd7bbfe6a),
  5683. 11: uint32(0xec447f11),
  5684. 12: uint32(0x8e7ea170),
  5685. 13: uint32(0x6427800e),
  5686. 14: uint32(0x4d47bae0),
  5687. 15: uint32(0x09fe548f),
  5688. 16: uint32(0x83852d0f),
  5689. 17: uint32(0x30362f1a),
  5690. 18: uint32(0x7b5a9cc3),
  5691. 19: uint32(0x31fec169),
  5692. 20: uint32(0x9fec022a),
  5693. 21: uint32(0x6c8dedc4),
  5694. 22: uint32(0x15d6874d),
  5695. 23: uint32(0x5fde7a4e),
  5696. 24: uint32(0xbad90e37),
  5697. 25: uint32(0x2e4e5eef),
  5698. 26: uint32(0x4eaba214),
  5699. 27: uint32(0xa8a472c0),
  5700. 28: uint32(0x429a969e),
  5701. 29: uint32(0x148d302a),
  5702. 30: uint32(0xc40ba6d0),
  5703. 31: uint32(0xc4e22c3c),
  5704. }
  5705. /* CRC polynomial. */
  5706. // C documentation
  5707. //
  5708. // /*
  5709. // Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial,
  5710. // reflected. For speed, this requires that a not be zero.
  5711. // */
  5712. func _multmodp(tls *libc.TLS, a Tz_crc_t, b Tz_crc_t) (r Tz_crc_t) {
  5713. var m, p Tz_crc_t
  5714. var v2 uint32
  5715. _, _, _ = m, p, v2
  5716. m = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31)
  5717. p = uint32(0)
  5718. for {
  5719. if a&m != 0 {
  5720. p ^= b
  5721. if a&(m-uint32(1)) == uint32(0) {
  5722. break
  5723. }
  5724. }
  5725. m >>= uint32(1)
  5726. if b&uint32(1) != 0 {
  5727. v2 = b>>libc.Int32FromInt32(1) ^ uint32(m_POLY)
  5728. } else {
  5729. v2 = b >> int32(1)
  5730. }
  5731. b = v2
  5732. goto _1
  5733. _1:
  5734. }
  5735. return p
  5736. }
  5737. // C documentation
  5738. //
  5739. // /*
  5740. // Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been
  5741. // initialized.
  5742. // */
  5743. func _x2nmodp(tls *libc.TLS, n int32, k uint32) (r Tz_crc_t) {
  5744. var p Tz_crc_t
  5745. _ = p
  5746. p = libc.Uint32FromInt32(1) << libc.Int32FromInt32(31) /* x^0 == 1 */
  5747. for n != 0 {
  5748. if n&int32(1) != 0 {
  5749. p = _multmodp(tls, _x2n_table[k&uint32(31)], p)
  5750. }
  5751. n >>= int32(1)
  5752. k++
  5753. }
  5754. return p
  5755. }
  5756. // C documentation
  5757. //
  5758. // /* =========================================================================
  5759. // * This function can be used by asm versions of crc32(), and to force the
  5760. // * generation of the CRC tables in a threaded application.
  5761. // */
  5762. func Xget_crc_table(tls *libc.TLS) (r uintptr) {
  5763. return uintptr(unsafe.Pointer(&_crc_table))
  5764. }
  5765. /* =========================================================================
  5766. * Use ARM machine instructions if available. This will compute the CRC about
  5767. * ten times faster than the braided calculation. This code does not check for
  5768. * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will
  5769. * only be defined if the compilation specifies an ARM processor architecture
  5770. * that has the instructions. For example, compiling with -march=armv8.1-a or
  5771. * -march=armv8-a+crc, or -march=native if the compile machine has the crc32
  5772. * instructions.
  5773. */
  5774. // C documentation
  5775. //
  5776. // /*
  5777. // Return the CRC of the W bytes in the word_t data, taking the
  5778. // least-significant byte of the word as the first byte of data, without any pre
  5779. // or post conditioning. This is used to combine the CRCs of each braid.
  5780. // */
  5781. func _crc_word(tls *libc.TLS, data Tz_word_t) (r Tz_crc_t) {
  5782. var k int32
  5783. _ = k
  5784. k = 0
  5785. for {
  5786. if !(k < int32(m_W)) {
  5787. break
  5788. }
  5789. data = data>>libc.Int32FromInt32(8) ^ uint64(_crc_table[data&uint64(0xff)])
  5790. goto _1
  5791. _1:
  5792. ;
  5793. k++
  5794. }
  5795. return uint32(data)
  5796. }
  5797. func _crc_word_big(tls *libc.TLS, data Tz_word_t) (r Tz_word_t) {
  5798. var k int32
  5799. _ = k
  5800. k = 0
  5801. for {
  5802. if !(k < int32(m_W)) {
  5803. break
  5804. }
  5805. data = data<<libc.Int32FromInt32(8) ^ _crc_big_table[data>>((libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1))<<libc.Int32FromInt32(3))&uint64(0xff)]
  5806. goto _1
  5807. _1:
  5808. ;
  5809. k++
  5810. }
  5811. return data
  5812. }
  5813. // C documentation
  5814. //
  5815. // /* ========================================================================= */
  5816. func Xcrc32_z(tls *libc.TLS, crc uint32, buf uintptr, len1 Tz_size_t) (r uint32) {
  5817. bp := tls.Alloc(16)
  5818. defer tls.Free(16)
  5819. var blks, v2, v4 Tz_size_t
  5820. var comb, crc01, crc11, crc21, crc31, crc41, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41 Tz_word_t
  5821. var crc0, crc1, crc2, crc3, crc4 Tz_crc_t
  5822. var k int32
  5823. var words, v1, v10, v11, v12, v13, v14, v6, v7, v8, v9 uintptr
  5824. var _ /* endian at bp+0 */ uint32
  5825. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = blks, comb, crc0, crc01, crc1, crc11, crc2, crc21, crc3, crc31, crc4, crc41, k, word0, word01, word1, word11, word2, word21, word3, word31, word4, word41, words, v1, v10, v11, v12, v13, v14, v2, v4, v6, v7, v8, v9
  5826. /* Return initial CRC, if requested. */
  5827. if buf == uintptr(m_Z_NULL) {
  5828. return uint32(0)
  5829. }
  5830. /* Pre-condition the CRC */
  5831. crc = ^crc & uint32(0xffffffff)
  5832. /* If provided enough bytes, do a braided CRC calculation. */
  5833. if len1 >= uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W)+libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) {
  5834. /* Compute the CRC up to a z_word_t boundary. */
  5835. for len1 != 0 && uint64(buf)&uint64(libc.Int32FromInt32(m_W)-libc.Int32FromInt32(1)) != uint64(0) {
  5836. len1--
  5837. v1 = buf
  5838. buf++
  5839. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v1))))&uint32(0xff)]
  5840. }
  5841. /* Compute the CRC on as many N z_word_t blocks as are available. */
  5842. blks = len1 / uint64(libc.Int32FromInt32(m_N)*libc.Int32FromInt32(m_W))
  5843. len1 -= blks * uint64(m_N) * uint64(m_W)
  5844. words = buf
  5845. /* Do endian check at execution time instead of compile time, since ARM
  5846. processors can change the endianness at execution time. If the
  5847. compiler knows what the endianness will be, it can optimize out the
  5848. check and the unused branch. */
  5849. *(*uint32)(unsafe.Pointer(bp)) = uint32(1)
  5850. if *(*uint8)(unsafe.Pointer(bp)) != 0 {
  5851. /* Initialize the CRC for each braid. */
  5852. crc0 = crc
  5853. crc1 = uint32(0)
  5854. crc2 = uint32(0)
  5855. crc3 = uint32(0)
  5856. crc4 = uint32(0)
  5857. /*
  5858. Process the first blks-1 blocks, computing the CRCs on each braid
  5859. independently.
  5860. */
  5861. for {
  5862. blks--
  5863. v2 = blks
  5864. if !(v2 != 0) {
  5865. break
  5866. }
  5867. /* Load the word for each braid into registers. */
  5868. word0 = uint64(crc0) ^ *(*Tz_word_t)(unsafe.Pointer(words))
  5869. word1 = uint64(crc1) ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*8))
  5870. word2 = uint64(crc2) ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*8))
  5871. word3 = uint64(crc3) ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*8))
  5872. word4 = uint64(crc4) ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*8))
  5873. words += uintptr(m_N) * 8
  5874. /* Compute and update the CRC for each word. The loop should
  5875. get unrolled. */
  5876. crc0 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word0&uint64(0xff))*4))
  5877. crc1 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word1&uint64(0xff))*4))
  5878. crc2 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word2&uint64(0xff))*4))
  5879. crc3 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word3&uint64(0xff))*4))
  5880. crc4 = *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(word4&uint64(0xff))*4))
  5881. k = int32(1)
  5882. for {
  5883. if !(k < int32(m_W)) {
  5884. break
  5885. }
  5886. crc0 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word0>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5887. crc1 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word1>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5888. crc2 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word2>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5889. crc3 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word3>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5890. crc4 ^= *(*Tz_crc_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_table)) + uintptr(k)*1024 + uintptr(word4>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*4))
  5891. goto _3
  5892. _3:
  5893. ;
  5894. k++
  5895. }
  5896. }
  5897. /*
  5898. Process the last block, combining the CRCs of the N braids at the
  5899. same time.
  5900. */
  5901. crc = _crc_word(tls, uint64(crc0)^*(*Tz_word_t)(unsafe.Pointer(words)))
  5902. crc = _crc_word(tls, uint64(crc1)^*(*Tz_word_t)(unsafe.Pointer(words + 1*8))^uint64(crc))
  5903. crc = _crc_word(tls, uint64(crc2)^*(*Tz_word_t)(unsafe.Pointer(words + 2*8))^uint64(crc))
  5904. crc = _crc_word(tls, uint64(crc3)^*(*Tz_word_t)(unsafe.Pointer(words + 3*8))^uint64(crc))
  5905. crc = _crc_word(tls, uint64(crc4)^*(*Tz_word_t)(unsafe.Pointer(words + 4*8))^uint64(crc))
  5906. words += uintptr(m_N) * 8
  5907. } else {
  5908. /* Initialize the CRC for each braid. */
  5909. crc01 = _byte_swap(tls, uint64(crc))
  5910. crc11 = uint64(0)
  5911. crc21 = uint64(0)
  5912. crc31 = uint64(0)
  5913. crc41 = uint64(0)
  5914. /*
  5915. Process the first blks-1 blocks, computing the CRCs on each braid
  5916. independently.
  5917. */
  5918. for {
  5919. blks--
  5920. v4 = blks
  5921. if !(v4 != 0) {
  5922. break
  5923. }
  5924. /* Load the word for each braid into registers. */
  5925. word01 = crc01 ^ *(*Tz_word_t)(unsafe.Pointer(words))
  5926. word11 = crc11 ^ *(*Tz_word_t)(unsafe.Pointer(words + 1*8))
  5927. word21 = crc21 ^ *(*Tz_word_t)(unsafe.Pointer(words + 2*8))
  5928. word31 = crc31 ^ *(*Tz_word_t)(unsafe.Pointer(words + 3*8))
  5929. word41 = crc41 ^ *(*Tz_word_t)(unsafe.Pointer(words + 4*8))
  5930. words += uintptr(m_N) * 8
  5931. /* Compute and update the CRC for each word. The loop should
  5932. get unrolled. */
  5933. crc01 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word01&uint64(0xff))*8))
  5934. crc11 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word11&uint64(0xff))*8))
  5935. crc21 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word21&uint64(0xff))*8))
  5936. crc31 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word31&uint64(0xff))*8))
  5937. crc41 = *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(word41&uint64(0xff))*8))
  5938. k = int32(1)
  5939. for {
  5940. if !(k < int32(m_W)) {
  5941. break
  5942. }
  5943. crc01 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word01>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5944. crc11 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word11>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5945. crc21 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word21>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5946. crc31 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word31>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5947. crc41 ^= *(*Tz_word_t)(unsafe.Pointer(uintptr(unsafe.Pointer(&_crc_braid_big_table)) + uintptr(k)*2048 + uintptr(word41>>(k<<libc.Int32FromInt32(3))&uint64(0xff))*8))
  5948. goto _5
  5949. _5:
  5950. ;
  5951. k++
  5952. }
  5953. }
  5954. /*
  5955. Process the last block, combining the CRCs of the N braids at the
  5956. same time.
  5957. */
  5958. comb = _crc_word_big(tls, crc01^*(*Tz_word_t)(unsafe.Pointer(words)))
  5959. comb = _crc_word_big(tls, crc11^*(*Tz_word_t)(unsafe.Pointer(words + 1*8))^comb)
  5960. comb = _crc_word_big(tls, crc21^*(*Tz_word_t)(unsafe.Pointer(words + 2*8))^comb)
  5961. comb = _crc_word_big(tls, crc31^*(*Tz_word_t)(unsafe.Pointer(words + 3*8))^comb)
  5962. comb = _crc_word_big(tls, crc41^*(*Tz_word_t)(unsafe.Pointer(words + 4*8))^comb)
  5963. words += uintptr(m_N) * 8
  5964. crc = uint32(_byte_swap(tls, comb))
  5965. }
  5966. /*
  5967. Update the pointer to the remaining bytes to process.
  5968. */
  5969. buf = words
  5970. }
  5971. /* Complete the computation of the CRC on any remaining bytes. */
  5972. for len1 >= uint64(8) {
  5973. len1 -= uint64(8)
  5974. v6 = buf
  5975. buf++
  5976. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v6))))&uint32(0xff)]
  5977. v7 = buf
  5978. buf++
  5979. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v7))))&uint32(0xff)]
  5980. v8 = buf
  5981. buf++
  5982. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v8))))&uint32(0xff)]
  5983. v9 = buf
  5984. buf++
  5985. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v9))))&uint32(0xff)]
  5986. v10 = buf
  5987. buf++
  5988. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v10))))&uint32(0xff)]
  5989. v11 = buf
  5990. buf++
  5991. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v11))))&uint32(0xff)]
  5992. v12 = buf
  5993. buf++
  5994. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v12))))&uint32(0xff)]
  5995. v13 = buf
  5996. buf++
  5997. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v13))))&uint32(0xff)]
  5998. }
  5999. for len1 != 0 {
  6000. len1--
  6001. v14 = buf
  6002. buf++
  6003. crc = crc>>int32(8) ^ _crc_table[(crc^uint32(*(*uint8)(unsafe.Pointer(v14))))&uint32(0xff)]
  6004. }
  6005. /* Return the CRC, post-conditioned. */
  6006. return crc ^ uint32(0xffffffff)
  6007. }
  6008. // C documentation
  6009. //
  6010. // /* ========================================================================= */
  6011. func Xcrc32(tls *libc.TLS, crc uint32, buf uintptr, len1 TuInt) (r uint32) {
  6012. return Xcrc32_z(tls, crc, buf, uint64(len1))
  6013. }
  6014. // C documentation
  6015. //
  6016. // /* ========================================================================= */
  6017. func Xcrc32_combine64(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 int32) (r TuLong) {
  6018. return _multmodp(tls, _x2nmodp(tls, len2, uint32(3)), crc1) ^ crc2&uint32(0xffffffff)
  6019. }
  6020. // C documentation
  6021. //
  6022. // /* ========================================================================= */
  6023. func Xcrc32_combine(tls *libc.TLS, crc1 TuLong, crc2 TuLong, len2 int32) (r TuLong) {
  6024. return Xcrc32_combine64(tls, crc1, crc2, len2)
  6025. }
  6026. // C documentation
  6027. //
  6028. // /* ========================================================================= */
  6029. func Xcrc32_combine_gen64(tls *libc.TLS, len2 int32) (r TuLong) {
  6030. return _x2nmodp(tls, len2, uint32(3))
  6031. }
  6032. // C documentation
  6033. //
  6034. // /* ========================================================================= */
  6035. func Xcrc32_combine_gen(tls *libc.TLS, len2 int32) (r TuLong) {
  6036. return Xcrc32_combine_gen64(tls, len2)
  6037. }
  6038. // C documentation
  6039. //
  6040. // /* ========================================================================= */
  6041. func Xcrc32_combine_op(tls *libc.TLS, crc1 TuLong, crc2 TuLong, op TuLong) (r TuLong) {
  6042. return _multmodp(tls, op, crc1) ^ crc2&uint32(0xffffffff)
  6043. }
  6044. const m_BL_CODES = 19
  6045. const m_BUSY_STATE = 113
  6046. const m_Buf_size = 16
  6047. const m_COMMENT_STATE = 91
  6048. const m_D_CODES = 30
  6049. const m_EXTRA_STATE = 69
  6050. const m_FINISH_STATE = 666
  6051. const m_GZIP_STATE = 57
  6052. const m_HCRC_STATE = 103
  6053. const m_INIT_STATE = 42
  6054. const m_LENGTH_CODES = 29
  6055. const m_LITERALS = 256
  6056. const m_LIT_BUFS = 4
  6057. const m_MAX_BITS = 15
  6058. const m_MAX_STORED = 65535
  6059. const m_NAME_STATE = 73
  6060. const m_NIL = 0
  6061. const m_PRESET_DICT1 = 32
  6062. const m_TOO_FAR = 4096
  6063. const m_WIN_INIT = "MAX_MATCH"
  6064. const m_max_insert_length = "max_lazy_match"
  6065. type Tinternal_state = struct {
  6066. Fstrm Tz_streamp
  6067. Fstatus int32
  6068. Fpending_buf uintptr
  6069. Fpending_buf_size Tulg
  6070. Fpending_out uintptr
  6071. Fpending Tulg
  6072. Fwrap int32
  6073. Fgzhead Tgz_headerp
  6074. Fgzindex Tulg
  6075. Fmethod TByte
  6076. Flast_flush int32
  6077. Fw_size TuInt
  6078. Fw_bits TuInt
  6079. Fw_mask TuInt
  6080. Fwindow uintptr
  6081. Fwindow_size Tulg
  6082. Fprev uintptr
  6083. Fhead uintptr
  6084. Fins_h TuInt
  6085. Fhash_size TuInt
  6086. Fhash_bits TuInt
  6087. Fhash_mask TuInt
  6088. Fhash_shift TuInt
  6089. Fblock_start int32
  6090. Fmatch_length TuInt
  6091. Fprev_match TIPos
  6092. Fmatch_available int32
  6093. Fstrstart TuInt
  6094. Fmatch_start TuInt
  6095. Flookahead TuInt
  6096. Fprev_length TuInt
  6097. Fmax_chain_length TuInt
  6098. Fmax_lazy_match TuInt
  6099. Flevel int32
  6100. Fstrategy int32
  6101. Fgood_match TuInt
  6102. Fnice_match int32
  6103. Fdyn_ltree [573]Tct_data_s
  6104. Fdyn_dtree [61]Tct_data_s
  6105. Fbl_tree [39]Tct_data_s
  6106. Fl_desc Ttree_desc_s
  6107. Fd_desc Ttree_desc_s
  6108. Fbl_desc Ttree_desc_s
  6109. Fbl_count [16]Tush
  6110. Fheap [573]int32
  6111. Fheap_len int32
  6112. Fheap_max int32
  6113. Fdepth [573]Tuch
  6114. Fsym_buf uintptr
  6115. Flit_bufsize TuInt
  6116. Fsym_next TuInt
  6117. Fsym_end TuInt
  6118. Fopt_len Tulg
  6119. Fstatic_len Tulg
  6120. Fmatches TuInt
  6121. Finsert TuInt
  6122. Fbi_buf Tush
  6123. Fbi_valid int32
  6124. Fhigh_water Tulg
  6125. }
  6126. type Tct_data = struct {
  6127. Ffc struct {
  6128. Fcode [0]Tush
  6129. Ffreq Tush
  6130. }
  6131. Fdl struct {
  6132. Flen1 [0]Tush
  6133. Fdad Tush
  6134. }
  6135. }
  6136. type Tct_data_s = Tct_data
  6137. type Ttree_desc = struct {
  6138. Fdyn_tree uintptr
  6139. Fmax_code int32
  6140. Fstat_desc uintptr
  6141. }
  6142. type Ttree_desc_s = Ttree_desc
  6143. type TPos = uint16
  6144. type TPosf = uint16
  6145. type TIPos = uint32
  6146. type Tdeflate_state = struct {
  6147. Fstrm Tz_streamp
  6148. Fstatus int32
  6149. Fpending_buf uintptr
  6150. Fpending_buf_size Tulg
  6151. Fpending_out uintptr
  6152. Fpending Tulg
  6153. Fwrap int32
  6154. Fgzhead Tgz_headerp
  6155. Fgzindex Tulg
  6156. Fmethod TByte
  6157. Flast_flush int32
  6158. Fw_size TuInt
  6159. Fw_bits TuInt
  6160. Fw_mask TuInt
  6161. Fwindow uintptr
  6162. Fwindow_size Tulg
  6163. Fprev uintptr
  6164. Fhead uintptr
  6165. Fins_h TuInt
  6166. Fhash_size TuInt
  6167. Fhash_bits TuInt
  6168. Fhash_mask TuInt
  6169. Fhash_shift TuInt
  6170. Fblock_start int32
  6171. Fmatch_length TuInt
  6172. Fprev_match TIPos
  6173. Fmatch_available int32
  6174. Fstrstart TuInt
  6175. Fmatch_start TuInt
  6176. Flookahead TuInt
  6177. Fprev_length TuInt
  6178. Fmax_chain_length TuInt
  6179. Fmax_lazy_match TuInt
  6180. Flevel int32
  6181. Fstrategy int32
  6182. Fgood_match TuInt
  6183. Fnice_match int32
  6184. Fdyn_ltree [573]Tct_data_s
  6185. Fdyn_dtree [61]Tct_data_s
  6186. Fbl_tree [39]Tct_data_s
  6187. Fl_desc Ttree_desc_s
  6188. Fd_desc Ttree_desc_s
  6189. Fbl_desc Ttree_desc_s
  6190. Fbl_count [16]Tush
  6191. Fheap [573]int32
  6192. Fheap_len int32
  6193. Fheap_max int32
  6194. Fdepth [573]Tuch
  6195. Fsym_buf uintptr
  6196. Flit_bufsize TuInt
  6197. Fsym_next TuInt
  6198. Fsym_end TuInt
  6199. Fopt_len Tulg
  6200. Fstatic_len Tulg
  6201. Fmatches TuInt
  6202. Finsert TuInt
  6203. Fbi_buf Tush
  6204. Fbi_valid int32
  6205. Fhigh_water Tulg
  6206. }
  6207. /*
  6208. If you use the zlib library in a product, an acknowledgment is welcome
  6209. in the documentation of your product. If for some reason you cannot
  6210. include such an acknowledgment, I would appreciate that you keep this
  6211. copyright string in the executable of your product.
  6212. */
  6213. type Tblock_state = int32
  6214. const _need_more = 0
  6215. const /* block not completed, need more input or more output */
  6216. _block_done = 1
  6217. const /* block flush performed */
  6218. _finish_started = 2
  6219. const /* finish started, need only more output at next deflate */
  6220. _finish_done = 3
  6221. type Tcompress_func = uintptr
  6222. /* ===========================================================================
  6223. * Local data
  6224. */
  6225. /* Tail of hash chains */
  6226. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  6227. // C documentation
  6228. //
  6229. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  6230. // * the desired pack level (0..9). The values given below have been tuned to
  6231. // * exclude worst case performance for pathological files. Better values may be
  6232. // * found for specific files.
  6233. // */
  6234. type Tconfig = struct {
  6235. Fgood_length Tush
  6236. Fmax_lazy Tush
  6237. Fnice_length Tush
  6238. Fmax_chain Tush
  6239. Ffunc1 Tcompress_func
  6240. }
  6241. /* ===========================================================================
  6242. * Local data
  6243. */
  6244. /* Tail of hash chains */
  6245. /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
  6246. // C documentation
  6247. //
  6248. // /* Values for max_lazy_match, good_match and max_chain_length, depending on
  6249. // * the desired pack level (0..9). The values given below have been tuned to
  6250. // * exclude worst case performance for pathological files. Better values may be
  6251. // * found for specific files.
  6252. // */
  6253. type Tconfig_s = Tconfig
  6254. var _configuration_table = [10]Tconfig{
  6255. 0: {},
  6256. 1: {
  6257. Fgood_length: uint16(4),
  6258. Fmax_lazy: uint16(4),
  6259. Fnice_length: uint16(8),
  6260. Fmax_chain: uint16(4),
  6261. },
  6262. 2: {
  6263. Fgood_length: uint16(4),
  6264. Fmax_lazy: uint16(5),
  6265. Fnice_length: uint16(16),
  6266. Fmax_chain: uint16(8),
  6267. },
  6268. 3: {
  6269. Fgood_length: uint16(4),
  6270. Fmax_lazy: uint16(6),
  6271. Fnice_length: uint16(32),
  6272. Fmax_chain: uint16(32),
  6273. },
  6274. 4: {
  6275. Fgood_length: uint16(4),
  6276. Fmax_lazy: uint16(4),
  6277. Fnice_length: uint16(16),
  6278. Fmax_chain: uint16(16),
  6279. },
  6280. 5: {
  6281. Fgood_length: uint16(8),
  6282. Fmax_lazy: uint16(16),
  6283. Fnice_length: uint16(32),
  6284. Fmax_chain: uint16(32),
  6285. },
  6286. 6: {
  6287. Fgood_length: uint16(8),
  6288. Fmax_lazy: uint16(16),
  6289. Fnice_length: uint16(128),
  6290. Fmax_chain: uint16(128),
  6291. },
  6292. 7: {
  6293. Fgood_length: uint16(8),
  6294. Fmax_lazy: uint16(32),
  6295. Fnice_length: uint16(128),
  6296. Fmax_chain: uint16(256),
  6297. },
  6298. 8: {
  6299. Fgood_length: uint16(32),
  6300. Fmax_lazy: uint16(128),
  6301. Fnice_length: uint16(258),
  6302. Fmax_chain: uint16(1024),
  6303. },
  6304. 9: {
  6305. Fgood_length: uint16(32),
  6306. Fmax_lazy: uint16(258),
  6307. Fnice_length: uint16(258),
  6308. Fmax_chain: uint16(4096),
  6309. },
  6310. }
  6311. func init() {
  6312. p := unsafe.Pointer(&_configuration_table)
  6313. *(*uintptr)(unsafe.Add(p, 8)) = __ccgo_fp(_deflate_stored)
  6314. *(*uintptr)(unsafe.Add(p, 24)) = __ccgo_fp(_deflate_fast)
  6315. *(*uintptr)(unsafe.Add(p, 40)) = __ccgo_fp(_deflate_fast)
  6316. *(*uintptr)(unsafe.Add(p, 56)) = __ccgo_fp(_deflate_fast)
  6317. *(*uintptr)(unsafe.Add(p, 72)) = __ccgo_fp(_deflate_slow)
  6318. *(*uintptr)(unsafe.Add(p, 88)) = __ccgo_fp(_deflate_slow)
  6319. *(*uintptr)(unsafe.Add(p, 104)) = __ccgo_fp(_deflate_slow)
  6320. *(*uintptr)(unsafe.Add(p, 120)) = __ccgo_fp(_deflate_slow)
  6321. *(*uintptr)(unsafe.Add(p, 136)) = __ccgo_fp(_deflate_slow)
  6322. *(*uintptr)(unsafe.Add(p, 152)) = __ccgo_fp(_deflate_slow)
  6323. }
  6324. /* max compression */
  6325. /* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
  6326. * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
  6327. * meaning.
  6328. */
  6329. /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */
  6330. /* ===========================================================================
  6331. * Update a hash value with the given input byte
  6332. * IN assertion: all calls to UPDATE_HASH are made with consecutive input
  6333. * characters, so that a running hash key can be computed from the previous
  6334. * key instead of complete recalculation each time.
  6335. */
  6336. /* ===========================================================================
  6337. * Insert string str in the dictionary and set match_head to the previous head
  6338. * of the hash chain (the most recent string with same hash key). Return
  6339. * the previous length of the hash chain.
  6340. * If this file is compiled with -DFASTEST, the compression level is forced
  6341. * to 1, and no hash chains are maintained.
  6342. * IN assertion: all calls to INSERT_STRING are made with consecutive input
  6343. * characters and the first MIN_MATCH bytes of str are valid (except for
  6344. * the last MIN_MATCH-1 bytes of the input file).
  6345. */
  6346. /* ===========================================================================
  6347. * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
  6348. * prev[] will be initialized on the fly.
  6349. */
  6350. // C documentation
  6351. //
  6352. // /* ===========================================================================
  6353. // * Slide the hash table when sliding the window down (could be avoided with 32
  6354. // * bit values at the expense of memory usage). We slide even when level == 0 to
  6355. // * keep the hash table consistent if we switch back to level > 0 later.
  6356. // */
  6357. func _slide_hash(tls *libc.TLS, s uintptr) {
  6358. var m, n, v1, v4, v5, v8 uint32
  6359. var p, v3, v7 uintptr
  6360. var wsize TuInt
  6361. _, _, _, _, _, _, _, _, _, _ = m, n, p, wsize, v1, v3, v4, v5, v7, v8
  6362. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6363. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size
  6364. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr(n)*2
  6365. for {
  6366. p -= 2
  6367. v3 = p
  6368. m = uint32(*(*TPosf)(unsafe.Pointer(v3)))
  6369. if m >= wsize {
  6370. v4 = m - wsize
  6371. } else {
  6372. v4 = uint32(m_NIL)
  6373. }
  6374. *(*TPosf)(unsafe.Pointer(p)) = uint16(v4)
  6375. goto _2
  6376. _2:
  6377. ;
  6378. n--
  6379. v1 = n
  6380. if !(v1 != 0) {
  6381. break
  6382. }
  6383. }
  6384. n = wsize
  6385. p = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(n)*2
  6386. for {
  6387. p -= 2
  6388. v7 = p
  6389. m = uint32(*(*TPosf)(unsafe.Pointer(v7)))
  6390. if m >= wsize {
  6391. v8 = m - wsize
  6392. } else {
  6393. v8 = uint32(m_NIL)
  6394. }
  6395. *(*TPosf)(unsafe.Pointer(p)) = uint16(v8)
  6396. /* If n is not on any hash chain, prev[n] is garbage but
  6397. * its value will never be used.
  6398. */
  6399. goto _6
  6400. _6:
  6401. ;
  6402. n--
  6403. v5 = n
  6404. if !(v5 != 0) {
  6405. break
  6406. }
  6407. }
  6408. }
  6409. // C documentation
  6410. //
  6411. // /* ===========================================================================
  6412. // * Read a new buffer from the current input stream, update the adler32
  6413. // * and total number of bytes read. All deflate() input goes through
  6414. // * this function so some applications may wish to modify it to avoid
  6415. // * allocating a large strm->next_in buffer and copying from it.
  6416. // * (See also flush_pending()).
  6417. // */
  6418. func _read_buf(tls *libc.TLS, strm Tz_streamp, buf uintptr, size uint32) (r uint32) {
  6419. var len1 uint32
  6420. _ = len1
  6421. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  6422. if len1 > size {
  6423. len1 = size
  6424. }
  6425. if len1 == uint32(0) {
  6426. return uint32(0)
  6427. }
  6428. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  6429. libc.Xmemcpy(tls, buf, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64(len1))
  6430. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(1) {
  6431. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  6432. } else {
  6433. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap == int32(2) {
  6434. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, buf, len1)
  6435. }
  6436. }
  6437. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  6438. *(*TuLong)(unsafe.Pointer(strm + 12)) += len1
  6439. return len1
  6440. }
  6441. // C documentation
  6442. //
  6443. // /* ===========================================================================
  6444. // * Fill the window when the lookahead becomes insufficient.
  6445. // * Updates strstart and lookahead.
  6446. // *
  6447. // * IN assertion: lookahead < MIN_LOOKAHEAD
  6448. // * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
  6449. // * At least one byte has been read, or avail_in == 0; reads are
  6450. // * performed for at least two bytes (required for the zip translate_eol
  6451. // * option -- not supported here).
  6452. // */
  6453. func _fill_window(tls *libc.TLS, s uintptr) {
  6454. var curr, init1 Tulg
  6455. var more, n uint32
  6456. var str, wsize TuInt
  6457. _, _, _, _, _, _ = curr, init1, more, n, str, wsize /* Amount of free space at the end of the window. */
  6458. wsize = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6459. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in != uint32(0) {
  6460. more = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6461. /* Deal with !@#$% 64K limit: */
  6462. if uint64(4) <= uint64(2) {
  6463. if more == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart == uint32(0) && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  6464. more = wsize
  6465. } else {
  6466. if more == uint32(-libc.Int32FromInt32(1)) {
  6467. /* Very unlikely, but possible on 16 bit machine if
  6468. * strstart == 0 && lookahead == 1 (input done a byte at time)
  6469. */
  6470. more--
  6471. }
  6472. }
  6473. }
  6474. /* If the window is almost full and there is insufficient lookahead,
  6475. * move the upper half to the lower one to make room in the upper half.
  6476. */
  6477. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart >= wsize+((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1))) {
  6478. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(wsize), uint64(wsize-more))
  6479. *(*TuInt)(unsafe.Pointer(s + 152)) -= wsize
  6480. *(*TuInt)(unsafe.Pointer(s + 148)) -= wsize /* we now have strstart >= MAX_DIST */
  6481. *(*int32)(unsafe.Pointer(s + 132)) -= int32(wsize)
  6482. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  6483. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6484. }
  6485. _slide_hash(tls, s)
  6486. more += wsize
  6487. }
  6488. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) {
  6489. break
  6490. }
  6491. /* If there was no sliding:
  6492. * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
  6493. * more == window_size - lookahead - strstart
  6494. * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
  6495. * => more >= window_size - 2*WSIZE + 2
  6496. * In the BIG_MEM or MMAP case (not yet supported),
  6497. * window_size == input_size + MIN_LOOKAHEAD &&
  6498. * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
  6499. * Otherwise, window_size == 2*WSIZE so more >= 2.
  6500. * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
  6501. */
  6502. n = _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead), more)
  6503. *(*TuInt)(unsafe.Pointer(s + 156)) += n
  6504. /* Initialize the hash value now that we have some input: */
  6505. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert >= uint32(m_MIN_MATCH) {
  6506. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  6507. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str))))
  6508. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6509. for (*Tdeflate_state)(unsafe.Pointer(s)).Finsert != 0 {
  6510. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(m_MIN_MATCH)-uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6511. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(str&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6512. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  6513. str++
  6514. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert--
  6515. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead+(*Tdeflate_state)(unsafe.Pointer(s)).Finsert < uint32(m_MIN_MATCH) {
  6516. break
  6517. }
  6518. }
  6519. }
  6520. /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
  6521. * but this is not important since only literal bytes will be emitted.
  6522. */
  6523. }
  6524. /* If the WIN_INIT bytes after the end of the current data have never been
  6525. * written, then zero those bytes in order to avoid memory check reports of
  6526. * the use of uninitialized (or uninitialised as Julian writes) bytes by
  6527. * the longest match routines. Update the high water mark for the next
  6528. * time through here. WIN_INIT is set to MAX_MATCH since the longest match
  6529. * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
  6530. */
  6531. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size {
  6532. curr = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6533. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr {
  6534. /* Previous high water mark below current data -- zero WIN_INIT
  6535. * bytes or up to end of window, whichever is less.
  6536. */
  6537. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - curr
  6538. if init1 > uint32(m_MAX_MATCH) {
  6539. init1 = uint32(m_MAX_MATCH)
  6540. }
  6541. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr(curr), 0, uint64(init1))
  6542. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = curr + init1
  6543. } else {
  6544. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < curr+uint32(m_MAX_MATCH) {
  6545. /* High water mark at or above current data, but below current data
  6546. * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
  6547. * to end of window, whichever is less.
  6548. */
  6549. init1 = curr + uint32(m_MAX_MATCH) - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  6550. if init1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water {
  6551. init1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water
  6552. }
  6553. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water), 0, uint64(init1))
  6554. *(*Tulg)(unsafe.Pointer(s + 5908)) += init1
  6555. }
  6556. }
  6557. }
  6558. }
  6559. // C documentation
  6560. //
  6561. // /* ========================================================================= */
  6562. func XdeflateInit_(tls *libc.TLS, strm Tz_streamp, level int32, version uintptr, stream_size int32) (r int32) {
  6563. return XdeflateInit2_(tls, strm, level, int32(m_Z_DEFLATED), int32(m_MAX_WBITS), int32(m_DEF_MEM_LEVEL), m_Z_DEFAULT_STRATEGY, version, stream_size)
  6564. /* To do: ignore strm->next_in if we use it as window */
  6565. }
  6566. // C documentation
  6567. //
  6568. // /* ========================================================================= */
  6569. func XdeflateInit2_(tls *libc.TLS, strm Tz_streamp, level int32, method int32, windowBits int32, memLevel int32, strategy int32, version uintptr, stream_size int32) (r int32) {
  6570. var s uintptr
  6571. var wrap int32
  6572. _, _ = s, wrap
  6573. wrap = int32(1)
  6574. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(_my_version[0]) || uint64(stream_size) != uint64(88) {
  6575. return -int32(6)
  6576. }
  6577. if strm == uintptr(m_Z_NULL) {
  6578. return -int32(2)
  6579. }
  6580. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  6581. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  6582. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  6583. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  6584. }
  6585. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  6586. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  6587. }
  6588. if level == -int32(1) {
  6589. level = int32(6)
  6590. }
  6591. if windowBits < 0 { /* suppress zlib wrapper */
  6592. wrap = 0
  6593. if windowBits < -int32(15) {
  6594. return -int32(2)
  6595. }
  6596. windowBits = -windowBits
  6597. } else {
  6598. if windowBits > int32(15) {
  6599. wrap = int32(2) /* write gzip wrapper instead */
  6600. windowBits -= int32(16)
  6601. }
  6602. }
  6603. if memLevel < int32(1) || memLevel > int32(m_MAX_MEM_LEVEL) || method != int32(m_Z_DEFLATED) || windowBits < int32(8) || windowBits > int32(15) || level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) || windowBits == int32(8) && wrap != int32(1) {
  6604. return -int32(2)
  6605. }
  6606. if windowBits == int32(8) {
  6607. windowBits = int32(9)
  6608. } /* until 256-byte window bug fixed */
  6609. s = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5912)))
  6610. if s == uintptr(m_Z_NULL) {
  6611. return -int32(4)
  6612. }
  6613. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = s
  6614. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm = strm
  6615. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_INIT_STATE) /* to pass state test in deflateReset() */
  6616. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  6617. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead = uintptr(m_Z_NULL)
  6618. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits = uint32(windowBits)
  6619. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits)
  6620. (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(1)
  6621. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits = uint32(memLevel) + uint32(7)
  6622. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size = uint32(int32(1) << (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits)
  6623. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask = (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size - uint32(1)
  6624. (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift = ((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits + libc.Uint32FromInt32(m_MIN_MATCH) - libc.Uint32FromInt32(1)) / libc.Uint32FromInt32(m_MIN_MATCH)
  6625. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  6626. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  6627. (*Tdeflate_state)(unsafe.Pointer(s)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  6628. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = uint32(0) /* nothing written to s->window yet */
  6629. (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize = uint32(int32(1) << (memLevel + int32(6))) /* 16K elements by default */
  6630. /* We overlay pending_buf and sym_buf. This works since the average size
  6631. * for length/distance pairs over any compressed block is assured to be 31
  6632. * bits or less.
  6633. *
  6634. * Analysis: The longest fixed codes are a length code of 8 bits plus 5
  6635. * extra bits, for lengths 131 to 257. The longest fixed distance codes are
  6636. * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
  6637. * possible fixed-codes length/distance pair is then 31 bits total.
  6638. *
  6639. * sym_buf starts one-fourth of the way into pending_buf. So there are
  6640. * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
  6641. * in sym_buf is three bytes -- two for the distance and one for the
  6642. * literal/length. As each symbol is consumed, the pointer to the next
  6643. * sym_buf value to read moves forward three bytes. From that symbol, up to
  6644. * 31 bits are written to pending_buf. The closest the written pending_buf
  6645. * bits gets to the next sym_buf symbol to read is just before the last
  6646. * code is written. At that time, 31*(n - 2) bits have been written, just
  6647. * after 24*(n - 2) bits have been consumed from sym_buf. sym_buf starts at
  6648. * 8*n bits into pending_buf. (Note that the symbol buffer fills when n - 1
  6649. * symbols are written.) The closest the writing gets to what is unread is
  6650. * then n + 14 bits. Here n is lit_bufsize, which is 16384 by default, and
  6651. * can range from 128 to 32768.
  6652. *
  6653. * Therefore, at a minimum, there are 142 bits of space between what is
  6654. * written and what is read in the overlain buffers, so the symbols cannot
  6655. * be overwritten by the compressed data. That space is actually 139 bits,
  6656. * due to the three-bit fixed-code block header.
  6657. *
  6658. * That covers the case where either Z_FIXED is specified, forcing fixed
  6659. * codes, or when the use of fixed codes is chosen, because that choice
  6660. * results in a smaller compressed block than dynamic codes. That latter
  6661. * condition then assures that the above analysis also covers all dynamic
  6662. * blocks. A dynamic-code block will only be chosen to be emitted if it has
  6663. * fewer bits than a fixed-code block would for the same set of symbols.
  6664. * Therefore its average symbol length is assured to be less than 31. So
  6665. * the compressed data for a dynamic block also cannot overwrite the
  6666. * symbols from which it is being constructed.
  6667. */
  6668. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize, uint32(libc.Int32FromInt32(m_LIT_BUFS)))
  6669. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size = (*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize * uint32(4)
  6670. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fprev == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhead == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf == uintptr(m_Z_NULL) {
  6671. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  6672. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(4)]
  6673. XdeflateEnd(tls, strm)
  6674. return -int32(4)
  6675. }
  6676. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize)
  6677. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end = ((*Tdeflate_state)(unsafe.Pointer(s)).Flit_bufsize - uint32(1)) * uint32(3)
  6678. /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
  6679. * on 16 bit machines and because stored blocks are restricted to
  6680. * 64K-1 bytes.
  6681. */
  6682. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  6683. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  6684. (*Tdeflate_state)(unsafe.Pointer(s)).Fmethod = uint8(method)
  6685. return XdeflateReset(tls, strm)
  6686. }
  6687. var _my_version = [6]int8{'1', '.', '3', '.', '1'}
  6688. // C documentation
  6689. //
  6690. // /* =========================================================================
  6691. // * Check for a valid deflate stream state. Return 0 if ok, 1 if not.
  6692. // */
  6693. func _deflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  6694. var s uintptr
  6695. _ = s
  6696. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  6697. return int32(1)
  6698. }
  6699. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6700. if s == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm != strm || (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_GZIP_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_EXTRA_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_NAME_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_COMMENT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_HCRC_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_BUSY_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_FINISH_STATE) {
  6701. return int32(1)
  6702. }
  6703. return 0
  6704. }
  6705. // C documentation
  6706. //
  6707. // /* ========================================================================= */
  6708. func XdeflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  6709. var avail uint32
  6710. var n, str, v1, v3 TuInt
  6711. var next, s uintptr
  6712. var wrap int32
  6713. _, _, _, _, _, _, _, _ = avail, n, next, s, str, wrap, v1, v3
  6714. if _deflateStateCheck(tls, strm) != 0 || dictionary == uintptr(m_Z_NULL) {
  6715. return -int32(2)
  6716. }
  6717. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6718. wrap = (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  6719. if wrap == int32(2) || wrap == int32(1) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_INIT_STATE) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  6720. return -int32(2)
  6721. }
  6722. /* when using zlib wrappers, compute Adler-32 for provided dictionary */
  6723. if wrap == int32(1) {
  6724. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, dictionary, dictLength)
  6725. }
  6726. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = 0 /* avoid computing Adler-32 in read_buf */
  6727. /* if dictionary would fill window, just replace the history */
  6728. if dictLength >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6729. if wrap == 0 { /* already empty otherwise */
  6730. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  6731. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  6732. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  6733. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  6734. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6735. }
  6736. dictionary += uintptr(dictLength - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) /* use the tail */
  6737. dictLength = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6738. }
  6739. /* insert dictionary into window and hash */
  6740. avail = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  6741. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  6742. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = dictLength
  6743. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = dictionary
  6744. _fill_window(tls, s)
  6745. for (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  6746. str = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  6747. n = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))
  6748. for {
  6749. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(str+uint32(m_MIN_MATCH)-uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  6750. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr(str&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  6751. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16(str)
  6752. str++
  6753. goto _2
  6754. _2:
  6755. ;
  6756. n--
  6757. v1 = n
  6758. if !(v1 != 0) {
  6759. break
  6760. }
  6761. }
  6762. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = str
  6763. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6764. _fill_window(tls, s)
  6765. }
  6766. *(*TuInt)(unsafe.Pointer(s + 148)) += (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6767. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  6768. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6769. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  6770. v3 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6771. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v3
  6772. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v3
  6773. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6774. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  6775. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = avail
  6776. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = wrap
  6777. return m_Z_OK
  6778. }
  6779. // C documentation
  6780. //
  6781. // /* ========================================================================= */
  6782. func XdeflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  6783. var len1 TuInt
  6784. var s uintptr
  6785. _, _ = len1, s
  6786. if _deflateStateCheck(tls, strm) != 0 {
  6787. return -int32(2)
  6788. }
  6789. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6790. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  6791. if len1 > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  6792. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6793. }
  6794. if dictionary != uintptr(m_Z_NULL) && len1 != 0 {
  6795. libc.Xmemcpy(tls, dictionary, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)-uintptr(len1), uint64(len1))
  6796. }
  6797. if dictLength != uintptr(m_Z_NULL) {
  6798. *(*TuInt)(unsafe.Pointer(dictLength)) = len1
  6799. }
  6800. return m_Z_OK
  6801. }
  6802. // C documentation
  6803. //
  6804. // /* ========================================================================= */
  6805. func XdeflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  6806. var s uintptr
  6807. var v1 TuLong
  6808. var v2 int32
  6809. var v3 uint32
  6810. _, _, _, _ = s, v1, v2, v3
  6811. if _deflateStateCheck(tls, strm) != 0 {
  6812. return -int32(2)
  6813. }
  6814. v1 = libc.Uint32FromInt32(0)
  6815. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  6816. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  6817. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* use zfree if we ever allocate msg dynamically */
  6818. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32(m_Z_UNKNOWN)
  6819. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6820. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = uint32(0)
  6821. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  6822. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap < 0 {
  6823. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap /* was made negative by deflate(..., Z_FINISH); */
  6824. }
  6825. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  6826. v2 = int32(m_GZIP_STATE)
  6827. } else {
  6828. v2 = int32(m_INIT_STATE)
  6829. }
  6830. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = v2
  6831. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  6832. v3 = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  6833. } else {
  6834. v3 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  6835. }
  6836. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v3
  6837. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(2)
  6838. x__tr_init(tls, s)
  6839. return m_Z_OK
  6840. }
  6841. // C documentation
  6842. //
  6843. // /* ===========================================================================
  6844. // * Initialize the "longest match" routines for a new zlib stream
  6845. // */
  6846. func _lm_init(tls *libc.TLS, s uintptr) {
  6847. var v1 TuInt
  6848. _ = v1
  6849. (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size = libc.Uint32FromInt32(2) * (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  6850. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  6851. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  6852. /* Set the default configuration parameters:
  6853. */
  6854. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_lazy)
  6855. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fgood_length)
  6856. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fnice_length)
  6857. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Fmax_chain)
  6858. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  6859. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  6860. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead = uint32(0)
  6861. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  6862. v1 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  6863. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = v1
  6864. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = v1
  6865. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  6866. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(0)
  6867. }
  6868. // C documentation
  6869. //
  6870. // /* ========================================================================= */
  6871. func XdeflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  6872. var ret int32
  6873. _ = ret
  6874. ret = XdeflateResetKeep(tls, strm)
  6875. if ret == m_Z_OK {
  6876. _lm_init(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  6877. }
  6878. return ret
  6879. }
  6880. // C documentation
  6881. //
  6882. // /* ========================================================================= */
  6883. func XdeflateSetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  6884. if _deflateStateCheck(tls, strm) != 0 || (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwrap != int32(2) {
  6885. return -int32(2)
  6886. }
  6887. (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fgzhead = head
  6888. return m_Z_OK
  6889. }
  6890. // C documentation
  6891. //
  6892. // /* ========================================================================= */
  6893. func XdeflatePending(tls *libc.TLS, strm Tz_streamp, pending uintptr, bits uintptr) (r int32) {
  6894. if _deflateStateCheck(tls, strm) != 0 {
  6895. return -int32(2)
  6896. }
  6897. if pending != uintptr(m_Z_NULL) {
  6898. *(*uint32)(unsafe.Pointer(pending)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending
  6899. }
  6900. if bits != uintptr(m_Z_NULL) {
  6901. *(*int32)(unsafe.Pointer(bits)) = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fbi_valid
  6902. }
  6903. return m_Z_OK
  6904. }
  6905. // C documentation
  6906. //
  6907. // /* ========================================================================= */
  6908. func XdeflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  6909. var put int32
  6910. var s, p1 uintptr
  6911. _, _, _ = put, s, p1
  6912. if _deflateStateCheck(tls, strm) != 0 {
  6913. return -int32(2)
  6914. }
  6915. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6916. if bits < 0 || bits > int32(16) || (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf < (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out+uintptr((libc.Int32FromInt32(m_Buf_size)+libc.Int32FromInt32(7))>>libc.Int32FromInt32(3)) {
  6917. return -int32(5)
  6918. }
  6919. for cond := true; cond; cond = bits != 0 {
  6920. put = int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid
  6921. if put > bits {
  6922. put = bits
  6923. }
  6924. p1 = s + 5900
  6925. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(value&(libc.Int32FromInt32(1)<<put-libc.Int32FromInt32(1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)))
  6926. *(*int32)(unsafe.Pointer(s + 5904)) += put
  6927. x__tr_flush_bits(tls, s)
  6928. value >>= put
  6929. bits -= put
  6930. }
  6931. return m_Z_OK
  6932. }
  6933. // C documentation
  6934. //
  6935. // /* ========================================================================= */
  6936. func XdeflateParams(tls *libc.TLS, strm Tz_streamp, level int32, strategy int32) (r int32) {
  6937. var err int32
  6938. var func1 Tcompress_func
  6939. var s uintptr
  6940. _, _, _ = err, func1, s
  6941. if _deflateStateCheck(tls, strm) != 0 {
  6942. return -int32(2)
  6943. }
  6944. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6945. if level == -int32(1) {
  6946. level = int32(6)
  6947. }
  6948. if level < 0 || level > int32(9) || strategy < 0 || strategy > int32(m_Z_FIXED) {
  6949. return -int32(2)
  6950. }
  6951. func1 = _configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1
  6952. if (strategy != (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy || func1 != _configuration_table[level].Ffunc1) && (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush != -int32(2) {
  6953. /* Flush the last buffer: */
  6954. err = Xdeflate(tls, strm, int32(m_Z_BLOCK))
  6955. if err == -int32(2) {
  6956. return err
  6957. }
  6958. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)+(*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != 0 {
  6959. return -int32(5)
  6960. }
  6961. }
  6962. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != level {
  6963. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches != uint32(0) {
  6964. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches == uint32(1) {
  6965. _slide_hash(tls, s)
  6966. } else {
  6967. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  6968. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2))
  6969. }
  6970. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(0)
  6971. }
  6972. (*Tdeflate_state)(unsafe.Pointer(s)).Flevel = level
  6973. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(_configuration_table[level].Fmax_lazy)
  6974. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(_configuration_table[level].Fgood_length)
  6975. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = int32(_configuration_table[level].Fnice_length)
  6976. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(_configuration_table[level].Fmax_chain)
  6977. }
  6978. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy = strategy
  6979. return m_Z_OK
  6980. }
  6981. // C documentation
  6982. //
  6983. // /* ========================================================================= */
  6984. func XdeflateTune(tls *libc.TLS, strm Tz_streamp, good_length int32, max_lazy int32, nice_length int32, max_chain int32) (r int32) {
  6985. var s uintptr
  6986. _ = s
  6987. if _deflateStateCheck(tls, strm) != 0 {
  6988. return -int32(2)
  6989. }
  6990. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  6991. (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match = uint32(good_length)
  6992. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match = uint32(max_lazy)
  6993. (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match = nice_length
  6994. (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length = uint32(max_chain)
  6995. return m_Z_OK
  6996. }
  6997. // C documentation
  6998. //
  6999. // /* =========================================================================
  7000. // * For the default windowBits of 15 and memLevel of 8, this function returns a
  7001. // * close to exact, as well as small, upper bound on the compressed size. This
  7002. // * is an expansion of ~0.03%, plus a small constant.
  7003. // *
  7004. // * For any setting other than those defaults for windowBits and memLevel, one
  7005. // * of two worst case bounds is returned. This is at most an expansion of ~4% or
  7006. // * ~13%, plus a small constant.
  7007. // *
  7008. // * Both the 0.03% and 4% derive from the overhead of stored blocks. The first
  7009. // * one is for stored blocks of 16383 bytes (memLevel == 8), whereas the second
  7010. // * is for stored blocks of 127 bytes (the worst case memLevel == 1). The
  7011. // * expansion results from five bytes of header for each stored block.
  7012. // *
  7013. // * The larger expansion of 13% results from a window size less than or equal to
  7014. // * the symbols buffer size (windowBits <= memLevel + 7). In that case some of
  7015. // * the data being compressed may have slid out of the sliding window, impeding
  7016. // * a stored block from being emitted. Then the only choice is a fixed or
  7017. // * dynamic block, where a fixed block limits the maximum expansion to 9 bits
  7018. // * per 8-bit byte, plus 10 bits for every block. The smallest block size for
  7019. // * which this can occur is 255 (memLevel == 2).
  7020. // *
  7021. // * Shifts are used to approximate divisions, for speed.
  7022. // */
  7023. func XdeflateBound(tls *libc.TLS, strm Tz_streamp, sourceLen TuLong) (r TuLong) {
  7024. var fixedlen, storelen, wraplen TuLong
  7025. var s, str, v3, v5 uintptr
  7026. var v1, v7 uint32
  7027. var v2 int32
  7028. _, _, _, _, _, _, _, _, _, _ = fixedlen, s, storelen, str, wraplen, v1, v2, v3, v5, v7
  7029. /* upper bound for fixed blocks with 9-bit literals and length 255
  7030. (memLevel == 2, which is the lowest that may not use stored blocks) --
  7031. ~13% overhead plus a small constant */
  7032. fixedlen = sourceLen + sourceLen>>libc.Int32FromInt32(3) + sourceLen>>libc.Int32FromInt32(8) + sourceLen>>libc.Int32FromInt32(9) + uint32(4)
  7033. /* upper bound for stored blocks with length 127 (memLevel == 1) --
  7034. ~4% overhead plus a small constant */
  7035. storelen = sourceLen + sourceLen>>libc.Int32FromInt32(5) + sourceLen>>libc.Int32FromInt32(7) + sourceLen>>libc.Int32FromInt32(11) + uint32(7)
  7036. /* if can't get parameters, return larger bound plus a zlib wrapper */
  7037. if _deflateStateCheck(tls, strm) != 0 {
  7038. if fixedlen > storelen {
  7039. v1 = fixedlen
  7040. } else {
  7041. v1 = storelen
  7042. }
  7043. return v1 + uint32(6)
  7044. }
  7045. /* compute wrapper length */
  7046. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7047. switch (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap {
  7048. case 0: /* raw deflate */
  7049. wraplen = uint32(0)
  7050. case int32(1): /* zlib wrapper */
  7051. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != 0 {
  7052. v2 = int32(4)
  7053. } else {
  7054. v2 = 0
  7055. }
  7056. wraplen = uint32(int32(6) + v2)
  7057. case int32(2): /* gzip wrapper */
  7058. wraplen = uint32(18)
  7059. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead != uintptr(m_Z_NULL) {
  7060. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  7061. wraplen += uint32(2) + (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len
  7062. }
  7063. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname
  7064. if str != uintptr(m_Z_NULL) {
  7065. for {
  7066. wraplen++
  7067. goto _4
  7068. _4:
  7069. ;
  7070. v3 = str
  7071. str++
  7072. if !(*(*TBytef)(unsafe.Pointer(v3)) != 0) {
  7073. break
  7074. }
  7075. }
  7076. }
  7077. str = (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment
  7078. if str != uintptr(m_Z_NULL) {
  7079. for {
  7080. wraplen++
  7081. goto _6
  7082. _6:
  7083. ;
  7084. v5 = str
  7085. str++
  7086. if !(*(*TBytef)(unsafe.Pointer(v5)) != 0) {
  7087. break
  7088. }
  7089. }
  7090. }
  7091. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7092. wraplen += uint32(2)
  7093. }
  7094. }
  7095. default: /* for compiler happiness */
  7096. wraplen = uint32(6)
  7097. }
  7098. /* if not default parameters, return one of the conservative bounds */
  7099. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits != uint32(15) || (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits != uint32(libc.Int32FromInt32(8)+libc.Int32FromInt32(7)) {
  7100. if (*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits <= (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_bits && (*Tdeflate_state)(unsafe.Pointer(s)).Flevel != 0 {
  7101. v7 = fixedlen
  7102. } else {
  7103. v7 = storelen
  7104. }
  7105. return v7 + wraplen
  7106. }
  7107. /* default settings: return tight bound for that case -- ~0.03% overhead
  7108. plus a small constant */
  7109. return sourceLen + sourceLen>>libc.Int32FromInt32(12) + sourceLen>>libc.Int32FromInt32(14) + sourceLen>>libc.Int32FromInt32(25) + uint32(13) - uint32(6) + wraplen
  7110. }
  7111. // C documentation
  7112. //
  7113. // /* =========================================================================
  7114. // * Put a short in the pending buffer. The 16-bit value is put in MSB order.
  7115. // * IN assertion: the stream state is correct and there is enough room in
  7116. // * pending_buf.
  7117. // */
  7118. func _putShortMSB(tls *libc.TLS, s uintptr, b TuInt) {
  7119. var v1, v3 Tulg
  7120. var v2, v4 uintptr
  7121. _, _, _, _ = v1, v2, v3, v4
  7122. v2 = s + 40
  7123. v1 = *(*Tulg)(unsafe.Pointer(v2))
  7124. *(*Tulg)(unsafe.Pointer(v2))++
  7125. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(b >> libc.Int32FromInt32(8))
  7126. v4 = s + 40
  7127. v3 = *(*Tulg)(unsafe.Pointer(v4))
  7128. *(*Tulg)(unsafe.Pointer(v4))++
  7129. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(b & libc.Uint32FromInt32(0xff))
  7130. }
  7131. // C documentation
  7132. //
  7133. // /* =========================================================================
  7134. // * Flush as much pending output as possible. All deflate() output, except for
  7135. // * some deflate_stored() output, goes through this function so some
  7136. // * applications may wish to modify it to avoid allocating a large
  7137. // * strm->next_out buffer and copying into it. (See also read_buf()).
  7138. // */
  7139. func _flush_pending(tls *libc.TLS, strm Tz_streamp) {
  7140. var len1 uint32
  7141. var s uintptr
  7142. _, _ = len1, s
  7143. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7144. x__tr_flush_bits(tls, s)
  7145. len1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  7146. if len1 > (*Tz_stream)(unsafe.Pointer(strm)).Favail_out {
  7147. len1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  7148. }
  7149. if len1 == uint32(0) {
  7150. return
  7151. }
  7152. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out, uint64(len1))
  7153. *(*uintptr)(unsafe.Pointer(strm + 16)) += uintptr(len1)
  7154. *(*uintptr)(unsafe.Pointer(s + 32)) += uintptr(len1)
  7155. *(*TuLong)(unsafe.Pointer(strm + 28)) += len1
  7156. *(*TuInt)(unsafe.Pointer(strm + 24)) -= len1
  7157. *(*Tulg)(unsafe.Pointer(s + 40)) -= len1
  7158. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == uint32(0) {
  7159. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf
  7160. }
  7161. }
  7162. /* ===========================================================================
  7163. * Update the header CRC with the bytes s->pending_buf[beg..s->pending - 1].
  7164. */
  7165. // C documentation
  7166. //
  7167. // /* ========================================================================= */
  7168. func Xdeflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  7169. var beg, beg1, beg2, v10, v12, v14, v16, v18, v20, v24, v26, v33, v35, v37, v39, v4, v41, v45, v47, v49, v51, v53, v55, v57, v59, v6, v61, v66, v68, v70, v72, v74, v76, v78, v8, v80 Tulg
  7170. var bstate Tblock_state
  7171. var copy1, header, left, level_flags TuInt
  7172. var old_flush, val, val1, v1, v2, v22, v23, v28, v29, v30, v31, v32, v43, v44, v63, v64, v65, v82 int32
  7173. var s, v11, v13, v15, v17, v19, v21, v25, v27, v34, v36, v38, v40, v42, v46, v48, v5, v50, v52, v54, v56, v58, v60, v62, v67, v69, v7, v71, v73, v75, v77, v79, v81, v9 uintptr
  7174. var v3 bool
  7175. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = beg, beg1, beg2, bstate, copy1, header, left, level_flags, old_flush, s, val, val1, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v5, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v6, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v7, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v8, v80, v81, v82, v9
  7176. if _deflateStateCheck(tls, strm) != 0 || flush > int32(m_Z_BLOCK) || flush < 0 {
  7177. return -int32(2)
  7178. }
  7179. s = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  7180. if (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) && (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && flush != int32(m_Z_FINISH) {
  7181. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(2)]
  7182. return -libc.Int32FromInt32(2)
  7183. }
  7184. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7185. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  7186. return -libc.Int32FromInt32(5)
  7187. }
  7188. old_flush = (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush
  7189. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = flush
  7190. /* Flush as much pending output as possible */
  7191. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7192. _flush_pending(tls, strm)
  7193. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7194. /* Since avail_out is 0, deflate will be called again with
  7195. * more output space, but possibly with both pending and
  7196. * avail_in equal to zero. There won't be anything to do,
  7197. * but this is not an error situation so make sure we
  7198. * return OK instead of BUF_ERROR at next call of deflate:
  7199. */
  7200. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7201. return m_Z_OK
  7202. }
  7203. /* Make sure there is something to do and avoid duplicate consecutive
  7204. * flushes. For repeated and useless calls with Z_FINISH, we keep
  7205. * returning Z_STREAM_END instead of Z_BUF_ERROR.
  7206. */
  7207. } else {
  7208. if v3 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0); v3 {
  7209. if flush > int32(4) {
  7210. v1 = int32(9)
  7211. } else {
  7212. v1 = 0
  7213. }
  7214. if old_flush > int32(4) {
  7215. v2 = int32(9)
  7216. } else {
  7217. v2 = 0
  7218. }
  7219. }
  7220. if v3 && flush*int32(2)-v1 <= old_flush*int32(2)-v2 && flush != int32(m_Z_FINISH) {
  7221. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  7222. return -libc.Int32FromInt32(5)
  7223. }
  7224. }
  7225. /* User must not provide more input after the first FINISH: */
  7226. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_FINISH_STATE) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  7227. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = Xz_errmsg[libc.Int32FromInt32(2) - -libc.Int32FromInt32(5)]
  7228. return -libc.Int32FromInt32(5)
  7229. }
  7230. /* Write the header */
  7231. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) && (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == 0 {
  7232. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7233. }
  7234. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_INIT_STATE) {
  7235. /* zlib header */
  7236. header = (uint32(m_Z_DEFLATED) + ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_bits-uint32(8))<<int32(4)) << int32(8)
  7237. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  7238. level_flags = uint32(0)
  7239. } else {
  7240. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(6) {
  7241. level_flags = uint32(1)
  7242. } else {
  7243. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(6) {
  7244. level_flags = uint32(2)
  7245. } else {
  7246. level_flags = uint32(3)
  7247. }
  7248. }
  7249. }
  7250. header |= level_flags << libc.Int32FromInt32(6)
  7251. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  7252. header |= uint32(m_PRESET_DICT1)
  7253. }
  7254. header += uint32(31) - header%uint32(31)
  7255. _putShortMSB(tls, s, header)
  7256. /* Save the adler32 of the preset dictionary: */
  7257. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart != uint32(0) {
  7258. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  7259. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint32FromInt32(0xffff)))
  7260. }
  7261. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  7262. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7263. /* Compression must start with an empty pending buffer */
  7264. _flush_pending(tls, strm)
  7265. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7266. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7267. return m_Z_OK
  7268. }
  7269. }
  7270. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_GZIP_STATE) {
  7271. /* gzip header */
  7272. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  7273. v5 = s + 40
  7274. v4 = *(*Tulg)(unsafe.Pointer(v5))
  7275. *(*Tulg)(unsafe.Pointer(v5))++
  7276. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(libc.Int32FromInt32(31))
  7277. v7 = s + 40
  7278. v6 = *(*Tulg)(unsafe.Pointer(v7))
  7279. *(*Tulg)(unsafe.Pointer(v7))++
  7280. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(libc.Int32FromInt32(139))
  7281. v9 = s + 40
  7282. v8 = *(*Tulg)(unsafe.Pointer(v9))
  7283. *(*Tulg)(unsafe.Pointer(v9))++
  7284. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(libc.Int32FromInt32(8))
  7285. if (*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead == uintptr(m_Z_NULL) {
  7286. v11 = s + 40
  7287. v10 = *(*Tulg)(unsafe.Pointer(v11))
  7288. *(*Tulg)(unsafe.Pointer(v11))++
  7289. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(libc.Int32FromInt32(0))
  7290. v13 = s + 40
  7291. v12 = *(*Tulg)(unsafe.Pointer(v13))
  7292. *(*Tulg)(unsafe.Pointer(v13))++
  7293. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(libc.Int32FromInt32(0))
  7294. v15 = s + 40
  7295. v14 = *(*Tulg)(unsafe.Pointer(v15))
  7296. *(*Tulg)(unsafe.Pointer(v15))++
  7297. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(libc.Int32FromInt32(0))
  7298. v17 = s + 40
  7299. v16 = *(*Tulg)(unsafe.Pointer(v17))
  7300. *(*Tulg)(unsafe.Pointer(v17))++
  7301. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(libc.Int32FromInt32(0))
  7302. v19 = s + 40
  7303. v18 = *(*Tulg)(unsafe.Pointer(v19))
  7304. *(*Tulg)(unsafe.Pointer(v19))++
  7305. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(libc.Int32FromInt32(0))
  7306. v21 = s + 40
  7307. v20 = *(*Tulg)(unsafe.Pointer(v21))
  7308. *(*Tulg)(unsafe.Pointer(v21))++
  7309. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  7310. v22 = int32(2)
  7311. } else {
  7312. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  7313. v23 = int32(4)
  7314. } else {
  7315. v23 = 0
  7316. }
  7317. v22 = v23
  7318. }
  7319. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(v22)
  7320. v25 = s + 40
  7321. v24 = *(*Tulg)(unsafe.Pointer(v25))
  7322. *(*Tulg)(unsafe.Pointer(v25))++
  7323. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(libc.Int32FromInt32(m_OS_CODE))
  7324. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7325. /* Compression must start with an empty pending buffer */
  7326. _flush_pending(tls, strm)
  7327. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7328. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7329. return m_Z_OK
  7330. }
  7331. } else {
  7332. v27 = s + 40
  7333. v26 = *(*Tulg)(unsafe.Pointer(v27))
  7334. *(*Tulg)(unsafe.Pointer(v27))++
  7335. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftext != 0 {
  7336. v28 = int32(1)
  7337. } else {
  7338. v28 = 0
  7339. }
  7340. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7341. v29 = int32(2)
  7342. } else {
  7343. v29 = 0
  7344. }
  7345. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra == uintptr(m_Z_NULL) {
  7346. v30 = 0
  7347. } else {
  7348. v30 = int32(4)
  7349. }
  7350. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname == uintptr(m_Z_NULL) {
  7351. v31 = 0
  7352. } else {
  7353. v31 = int32(8)
  7354. }
  7355. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment == uintptr(m_Z_NULL) {
  7356. v32 = 0
  7357. } else {
  7358. v32 = int32(16)
  7359. }
  7360. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(v28 + v29 + v30 + v31 + v32)
  7361. v34 = s + 40
  7362. v33 = *(*Tulg)(unsafe.Pointer(v34))
  7363. *(*Tulg)(unsafe.Pointer(v34))++
  7364. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v33))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime & libc.Uint32FromInt32(0xff))
  7365. v36 = s + 40
  7366. v35 = *(*Tulg)(unsafe.Pointer(v36))
  7367. *(*Tulg)(unsafe.Pointer(v36))++
  7368. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v35))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  7369. v38 = s + 40
  7370. v37 = *(*Tulg)(unsafe.Pointer(v38))
  7371. *(*Tulg)(unsafe.Pointer(v38))++
  7372. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v37))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(16) & libc.Uint32FromInt32(0xff))
  7373. v40 = s + 40
  7374. v39 = *(*Tulg)(unsafe.Pointer(v40))
  7375. *(*Tulg)(unsafe.Pointer(v40))++
  7376. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v39))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Ftime >> libc.Int32FromInt32(24) & libc.Uint32FromInt32(0xff))
  7377. v42 = s + 40
  7378. v41 = *(*Tulg)(unsafe.Pointer(v42))
  7379. *(*Tulg)(unsafe.Pointer(v42))++
  7380. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == int32(9) {
  7381. v43 = int32(2)
  7382. } else {
  7383. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy >= int32(m_Z_HUFFMAN_ONLY) || (*Tdeflate_state)(unsafe.Pointer(s)).Flevel < int32(2) {
  7384. v44 = int32(4)
  7385. } else {
  7386. v44 = 0
  7387. }
  7388. v43 = v44
  7389. }
  7390. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v41))) = uint8(v43)
  7391. v46 = s + 40
  7392. v45 = *(*Tulg)(unsafe.Pointer(v46))
  7393. *(*Tulg)(unsafe.Pointer(v46))++
  7394. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v45))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fos & libc.Int32FromInt32(0xff))
  7395. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  7396. v48 = s + 40
  7397. v47 = *(*Tulg)(unsafe.Pointer(v48))
  7398. *(*Tulg)(unsafe.Pointer(v48))++
  7399. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v47))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len & libc.Uint32FromInt32(0xff))
  7400. v50 = s + 40
  7401. v49 = *(*Tulg)(unsafe.Pointer(v50))
  7402. *(*Tulg)(unsafe.Pointer(v50))++
  7403. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v49))) = uint8((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  7404. }
  7405. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7406. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending)
  7407. }
  7408. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  7409. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_EXTRA_STATE)
  7410. }
  7411. }
  7412. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_EXTRA_STATE) {
  7413. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra != uintptr(m_Z_NULL) {
  7414. beg = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending /* start of bytes to update crc */
  7415. left = uint32((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra_len&libc.Uint32FromInt32(0xffff)) - (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex
  7416. for (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+left > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7417. copy1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  7418. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(copy1))
  7419. (*Tdeflate_state)(unsafe.Pointer(s)).Fpending = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size
  7420. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  7421. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg)
  7422. }
  7423. *(*Tulg)(unsafe.Pointer(s + 56)) += copy1
  7424. _flush_pending(tls, strm)
  7425. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7426. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7427. return m_Z_OK
  7428. }
  7429. beg = uint32(0)
  7430. left -= copy1
  7431. }
  7432. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fextra+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex), uint64(left))
  7433. *(*Tulg)(unsafe.Pointer(s + 40)) += left
  7434. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg {
  7435. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg)
  7436. }
  7437. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  7438. }
  7439. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_NAME_STATE)
  7440. }
  7441. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_NAME_STATE) {
  7442. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname != uintptr(m_Z_NULL) {
  7443. beg1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  7444. for cond := true; cond; cond = val != 0 {
  7445. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7446. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  7447. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1)
  7448. }
  7449. _flush_pending(tls, strm)
  7450. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7451. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7452. return m_Z_OK
  7453. }
  7454. beg1 = uint32(0)
  7455. }
  7456. v52 = s + 56
  7457. v51 = *(*Tulg)(unsafe.Pointer(v52))
  7458. *(*Tulg)(unsafe.Pointer(v52))++
  7459. val = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fname + uintptr(v51))))
  7460. v54 = s + 40
  7461. v53 = *(*Tulg)(unsafe.Pointer(v54))
  7462. *(*Tulg)(unsafe.Pointer(v54))++
  7463. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v53))) = uint8(val)
  7464. }
  7465. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg1 {
  7466. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg1), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg1)
  7467. }
  7468. (*Tdeflate_state)(unsafe.Pointer(s)).Fgzindex = uint32(0)
  7469. }
  7470. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_COMMENT_STATE)
  7471. }
  7472. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_COMMENT_STATE) {
  7473. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment != uintptr(m_Z_NULL) {
  7474. beg2 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending
  7475. for cond := true; cond; cond = val1 != 0 {
  7476. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending == (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7477. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  7478. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2)
  7479. }
  7480. _flush_pending(tls, strm)
  7481. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7482. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7483. return m_Z_OK
  7484. }
  7485. beg2 = uint32(0)
  7486. }
  7487. v56 = s + 56
  7488. v55 = *(*Tulg)(unsafe.Pointer(v56))
  7489. *(*Tulg)(unsafe.Pointer(v56))++
  7490. val1 = int32(*(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fcomment + uintptr(v55))))
  7491. v58 = s + 40
  7492. v57 = *(*Tulg)(unsafe.Pointer(v58))
  7493. *(*Tulg)(unsafe.Pointer(v58))++
  7494. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v57))) = uint8(val1)
  7495. }
  7496. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 && (*Tdeflate_state)(unsafe.Pointer(s)).Fpending > beg2 {
  7497. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fadler, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr(beg2), (*Tdeflate_state)(unsafe.Pointer(s)).Fpending-beg2)
  7498. }
  7499. }
  7500. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_HCRC_STATE)
  7501. }
  7502. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus == int32(m_HCRC_STATE) {
  7503. if (*Tgz_header)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fgzhead)).Fhcrc != 0 {
  7504. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending+uint32(2) > (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size {
  7505. _flush_pending(tls, strm)
  7506. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7507. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7508. return m_Z_OK
  7509. }
  7510. }
  7511. v60 = s + 40
  7512. v59 = *(*Tulg)(unsafe.Pointer(v60))
  7513. *(*Tulg)(unsafe.Pointer(v60))++
  7514. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v59))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint32FromInt32(0xff))
  7515. v62 = s + 40
  7516. v61 = *(*Tulg)(unsafe.Pointer(v62))
  7517. *(*Tulg)(unsafe.Pointer(v62))++
  7518. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v61))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  7519. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  7520. }
  7521. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_BUSY_STATE)
  7522. /* Compression must start with an empty pending buffer */
  7523. _flush_pending(tls, strm)
  7524. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7525. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1)
  7526. return m_Z_OK
  7527. }
  7528. }
  7529. /* Start a new block or continue the current one.
  7530. */
  7531. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) || (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead != uint32(0) || flush != m_Z_NO_FLUSH && (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus != int32(m_FINISH_STATE) {
  7532. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel == 0 {
  7533. v63 = _deflate_stored(tls, s, flush)
  7534. } else {
  7535. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_HUFFMAN_ONLY) {
  7536. v64 = _deflate_huff(tls, s, flush)
  7537. } else {
  7538. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_RLE) {
  7539. v65 = _deflate_rle(tls, s, flush)
  7540. } else {
  7541. v65 = (*(*func(*libc.TLS, uintptr, int32) Tblock_state)(unsafe.Pointer(&struct{ uintptr }{_configuration_table[(*Tdeflate_state)(unsafe.Pointer(s)).Flevel].Ffunc1})))(tls, s, flush)
  7542. }
  7543. v64 = v65
  7544. }
  7545. v63 = v64
  7546. }
  7547. bstate = v63
  7548. if bstate == int32(_finish_started) || bstate == int32(_finish_done) {
  7549. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatus = int32(m_FINISH_STATE)
  7550. }
  7551. if bstate == int32(_need_more) || bstate == int32(_finish_started) {
  7552. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7553. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR next call, see above */
  7554. }
  7555. return m_Z_OK
  7556. /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
  7557. * of deflate should use the same flush parameter to make sure
  7558. * that the flush is complete. So we don't have to output an
  7559. * empty block here, this will be done at next call. This also
  7560. * ensures that for a very small output buffer, we emit at most
  7561. * one empty block.
  7562. */
  7563. }
  7564. if bstate == int32(_block_done) {
  7565. if flush == int32(m_Z_PARTIAL_FLUSH) {
  7566. x__tr_align(tls, s)
  7567. } else {
  7568. if flush != int32(m_Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
  7569. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint32(0), 0)
  7570. /* For a full flush, this empty block will be recognized
  7571. * as a special marker by inflate_sync().
  7572. */
  7573. if flush == int32(m_Z_FULL_FLUSH) {
  7574. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-uint32(1))*2)) = uint16(m_NIL)
  7575. libc.Xmemset(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fhead, 0, uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fhash_size-libc.Uint32FromInt32(1))*uint64(2)) /* forget history */
  7576. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  7577. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = uint32(0)
  7578. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = 0
  7579. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  7580. }
  7581. }
  7582. }
  7583. }
  7584. _flush_pending(tls, strm)
  7585. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  7586. (*Tdeflate_state)(unsafe.Pointer(s)).Flast_flush = -int32(1) /* avoid BUF_ERROR at next call, see above */
  7587. return m_Z_OK
  7588. }
  7589. }
  7590. }
  7591. if flush != int32(m_Z_FINISH) {
  7592. return m_Z_OK
  7593. }
  7594. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap <= 0 {
  7595. return int32(m_Z_STREAM_END)
  7596. }
  7597. /* Write the trailer */
  7598. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap == int32(2) {
  7599. v67 = s + 40
  7600. v66 = *(*Tulg)(unsafe.Pointer(v67))
  7601. *(*Tulg)(unsafe.Pointer(v67))++
  7602. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v66))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler & libc.Uint32FromInt32(0xff))
  7603. v69 = s + 40
  7604. v68 = *(*Tulg)(unsafe.Pointer(v69))
  7605. *(*Tulg)(unsafe.Pointer(v69))++
  7606. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v68))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  7607. v71 = s + 40
  7608. v70 = *(*Tulg)(unsafe.Pointer(v71))
  7609. *(*Tulg)(unsafe.Pointer(v71))++
  7610. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v70))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(16) & libc.Uint32FromInt32(0xff))
  7611. v73 = s + 40
  7612. v72 = *(*Tulg)(unsafe.Pointer(v73))
  7613. *(*Tulg)(unsafe.Pointer(v73))++
  7614. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v72))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Fadler >> libc.Int32FromInt32(24) & libc.Uint32FromInt32(0xff))
  7615. v75 = s + 40
  7616. v74 = *(*Tulg)(unsafe.Pointer(v75))
  7617. *(*Tulg)(unsafe.Pointer(v75))++
  7618. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v74))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in & libc.Uint32FromInt32(0xff))
  7619. v77 = s + 40
  7620. v76 = *(*Tulg)(unsafe.Pointer(v77))
  7621. *(*Tulg)(unsafe.Pointer(v77))++
  7622. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v76))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(0xff))
  7623. v79 = s + 40
  7624. v78 = *(*Tulg)(unsafe.Pointer(v79))
  7625. *(*Tulg)(unsafe.Pointer(v79))++
  7626. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v78))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(16) & libc.Uint32FromInt32(0xff))
  7627. v81 = s + 40
  7628. v80 = *(*Tulg)(unsafe.Pointer(v81))
  7629. *(*Tulg)(unsafe.Pointer(v81))++
  7630. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v80))) = uint8((*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in >> libc.Int32FromInt32(24) & libc.Uint32FromInt32(0xff))
  7631. } else {
  7632. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler>>libc.Int32FromInt32(16)))
  7633. _putShortMSB(tls, s, uint32((*Tz_stream)(unsafe.Pointer(strm)).Fadler&libc.Uint32FromInt32(0xffff)))
  7634. }
  7635. _flush_pending(tls, strm)
  7636. /* If avail_out is zero, the application will call deflate again
  7637. * to flush the rest.
  7638. */
  7639. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap > 0 {
  7640. (*Tdeflate_state)(unsafe.Pointer(s)).Fwrap = -(*Tdeflate_state)(unsafe.Pointer(s)).Fwrap
  7641. } /* write the trailer only once! */
  7642. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending != uint32(0) {
  7643. v82 = m_Z_OK
  7644. } else {
  7645. v82 = int32(m_Z_STREAM_END)
  7646. }
  7647. return v82
  7648. }
  7649. // C documentation
  7650. //
  7651. // /* ========================================================================= */
  7652. func XdeflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  7653. var status, v1 int32
  7654. _, _ = status, v1
  7655. if _deflateStateCheck(tls, strm) != 0 {
  7656. return -int32(2)
  7657. }
  7658. status = (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fstatus
  7659. /* Deallocate in reverse order of allocations: */
  7660. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf != 0 {
  7661. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fpending_buf)
  7662. }
  7663. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead != 0 {
  7664. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fhead)
  7665. }
  7666. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev != 0 {
  7667. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fprev)
  7668. }
  7669. if (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow != 0 {
  7670. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinternal_state)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fstate)).Fwindow)
  7671. }
  7672. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  7673. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  7674. if status == int32(m_BUSY_STATE) {
  7675. v1 = -int32(3)
  7676. } else {
  7677. v1 = m_Z_OK
  7678. }
  7679. return v1
  7680. }
  7681. // C documentation
  7682. //
  7683. // /* =========================================================================
  7684. // * Copy the source state to the destination state.
  7685. // * To simplify the source, this is not supported for 16-bit MSDOS (which
  7686. // * doesn't have enough memory anyway to duplicate compression states).
  7687. // */
  7688. func XdeflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  7689. var ds, ss uintptr
  7690. _, _ = ds, ss
  7691. if _deflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  7692. return -int32(2)
  7693. }
  7694. ss = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  7695. libc.Xmemcpy(tls, dest, source, uint64(88))
  7696. ds = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(5912)))
  7697. if ds == uintptr(m_Z_NULL) {
  7698. return -int32(4)
  7699. }
  7700. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = ds
  7701. libc.Xmemcpy(tls, ds, ss, uint64(5912))
  7702. (*Tdeflate_state)(unsafe.Pointer(ds)).Fstrm = dest
  7703. (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt32(2)*libc.Uint64FromInt64(1)))
  7704. (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size, uint32(libc.Uint64FromInt64(2)))
  7705. (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size, uint32(libc.Uint64FromInt64(2)))
  7706. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(dest)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(dest)).Fopaque, (*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize, uint32(libc.Int32FromInt32(m_LIT_BUFS)))
  7707. if (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead == uintptr(m_Z_NULL) || (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf == uintptr(m_Z_NULL) {
  7708. XdeflateEnd(tls, dest)
  7709. return -int32(4)
  7710. }
  7711. /* following zmemcpy do not work for 16-bit MSDOS */
  7712. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(ss)).Fwindow, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size*uint32(2))*uint64(1))
  7713. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fprev, (*Tdeflate_state)(unsafe.Pointer(ss)).Fprev, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fw_size)*uint64(2))
  7714. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fhead, (*Tdeflate_state)(unsafe.Pointer(ss)).Fhead, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Fhash_size)*uint64(2))
  7715. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf, (*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf, uint64((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize*uint32(m_LIT_BUFS)))
  7716. (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_out = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr(int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_out)-int64((*Tdeflate_state)(unsafe.Pointer(ss)).Fpending_buf))
  7717. (*Tdeflate_state)(unsafe.Pointer(ds)).Fsym_buf = (*Tdeflate_state)(unsafe.Pointer(ds)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(ds)).Flit_bufsize)
  7718. (*Tdeflate_state)(unsafe.Pointer(ds)).Fl_desc.Fdyn_tree = ds + 188
  7719. (*Tdeflate_state)(unsafe.Pointer(ds)).Fd_desc.Fdyn_tree = ds + 2480
  7720. (*Tdeflate_state)(unsafe.Pointer(ds)).Fbl_desc.Fdyn_tree = ds + 2724
  7721. return m_Z_OK
  7722. }
  7723. // C documentation
  7724. //
  7725. // /* ===========================================================================
  7726. // * Set match_start to the longest match starting at the given string and
  7727. // * return its length. Matches shorter or equal to prev_length are discarded,
  7728. // * in which case the result is equal to prev_length and match_start is
  7729. // * garbage.
  7730. // * IN assertions: cur_match is the head of the hash chain for the current
  7731. // * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
  7732. // * OUT assertion: the match length is not greater than s->lookahead.
  7733. // */
  7734. func _longest_match(tls *libc.TLS, s uintptr, cur_match TIPos) (r TuInt) {
  7735. var best_len, len1, nice_match int32
  7736. var chain_length, v1, v3 uint32
  7737. var limit, v2 TIPos
  7738. var match, prev, scan, strend, v10, v11, v13, v14, v16, v17, v19, v20, v22, v23, v25, v26, v28, v29, v6, v8, v9 uintptr
  7739. var scan_end, scan_end1 TByte
  7740. var wmask TuInt
  7741. var v12, v15, v18, v21, v24, v27, v30, v4, v7 bool
  7742. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = best_len, chain_length, len1, limit, match, nice_match, prev, scan, scan_end, scan_end1, strend, wmask, v1, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v4, v6, v7, v8, v9
  7743. chain_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_chain_length /* max hash chain length */
  7744. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) /* length of current match */
  7745. best_len = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length) /* best match length so far */
  7746. nice_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fnice_match
  7747. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  7748. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - ((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)))
  7749. } else {
  7750. v1 = uint32(m_NIL)
  7751. } /* stop if match long enough */
  7752. limit = v1
  7753. /* Stop when cur_match becomes <= limit. To simplify the code,
  7754. * we prevent matches with the string of window index 0.
  7755. */
  7756. prev = (*Tdeflate_state)(unsafe.Pointer(s)).Fprev
  7757. wmask = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask
  7758. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  7759. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  7760. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  7761. /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
  7762. * It is easy to get rid of this optimization if necessary.
  7763. */
  7764. /* Do not waste too much time if we already have a good match: */
  7765. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= (*Tdeflate_state)(unsafe.Pointer(s)).Fgood_match {
  7766. chain_length >>= uint32(2)
  7767. }
  7768. /* Do not look for matches beyond the end of the input. This is necessary
  7769. * to make deflate deterministic.
  7770. */
  7771. if uint32(nice_match) > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  7772. nice_match = int32((*Tdeflate_state)(unsafe.Pointer(s)).Flookahead)
  7773. }
  7774. for {
  7775. match = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(cur_match)
  7776. /* Skip to next match if the match length cannot increase
  7777. * or if the match length is less than 2. Note that the checks below
  7778. * for insufficient lookahead only occur occasionally for performance
  7779. * reasons. Therefore uninitialized memory will be accessed, and
  7780. * conditional jumps will be made that depend on those values.
  7781. * However the length of the match is limited to the lookahead, so
  7782. * the output of deflate is not affected by the uninitialized values.
  7783. */
  7784. if v7 = int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len)))) != int32(scan_end) || int32(*(*TBytef)(unsafe.Pointer(match + uintptr(best_len-int32(1))))) != int32(scan_end1) || int32(*(*TBytef)(unsafe.Pointer(match))) != int32(*(*TBytef)(unsafe.Pointer(scan))); !v7 {
  7785. match++
  7786. v6 = match
  7787. }
  7788. if v7 || int32(*(*TBytef)(unsafe.Pointer(v6))) != int32(*(*TBytef)(unsafe.Pointer(scan + 1))) {
  7789. goto _5
  7790. }
  7791. /* The check at best_len - 1 can be removed because it will be made
  7792. * again later. (This heuristic is not always a win.)
  7793. * It is not necessary to compare scan[2] and match[2] since they
  7794. * are always equal when the other bytes match, given that
  7795. * the hash keys are equal and that HASH_BITS >= 8.
  7796. */
  7797. scan += uintptr(2)
  7798. /* The check at best_len - 1 can be removed because it will be made
  7799. * again later. (This heuristic is not always a win.)
  7800. * It is not necessary to compare scan[2] and match[2] since they
  7801. * are always equal when the other bytes match, given that
  7802. * the hash keys are equal and that HASH_BITS >= 8.
  7803. */
  7804. match++
  7805. /* We check for insufficient lookahead only every 8th comparison;
  7806. * the 256th check will be made at strstart + 258.
  7807. */
  7808. for {
  7809. goto _31
  7810. _31:
  7811. ;
  7812. scan++
  7813. v8 = scan
  7814. match++
  7815. v9 = match
  7816. if v12 = int32(*(*TBytef)(unsafe.Pointer(v8))) == int32(*(*TBytef)(unsafe.Pointer(v9))); v12 {
  7817. scan++
  7818. v10 = scan
  7819. match++
  7820. v11 = match
  7821. }
  7822. if v15 = v12 && int32(*(*TBytef)(unsafe.Pointer(v10))) == int32(*(*TBytef)(unsafe.Pointer(v11))); v15 {
  7823. scan++
  7824. v13 = scan
  7825. match++
  7826. v14 = match
  7827. }
  7828. if v18 = v15 && int32(*(*TBytef)(unsafe.Pointer(v13))) == int32(*(*TBytef)(unsafe.Pointer(v14))); v18 {
  7829. scan++
  7830. v16 = scan
  7831. match++
  7832. v17 = match
  7833. }
  7834. if v21 = v18 && int32(*(*TBytef)(unsafe.Pointer(v16))) == int32(*(*TBytef)(unsafe.Pointer(v17))); v21 {
  7835. scan++
  7836. v19 = scan
  7837. match++
  7838. v20 = match
  7839. }
  7840. if v24 = v21 && int32(*(*TBytef)(unsafe.Pointer(v19))) == int32(*(*TBytef)(unsafe.Pointer(v20))); v24 {
  7841. scan++
  7842. v22 = scan
  7843. match++
  7844. v23 = match
  7845. }
  7846. if v27 = v24 && int32(*(*TBytef)(unsafe.Pointer(v22))) == int32(*(*TBytef)(unsafe.Pointer(v23))); v27 {
  7847. scan++
  7848. v25 = scan
  7849. match++
  7850. v26 = match
  7851. }
  7852. if v30 = v27 && int32(*(*TBytef)(unsafe.Pointer(v25))) == int32(*(*TBytef)(unsafe.Pointer(v26))); v30 {
  7853. scan++
  7854. v28 = scan
  7855. match++
  7856. v29 = match
  7857. }
  7858. if !(v30 && int32(*(*TBytef)(unsafe.Pointer(v28))) == int32(*(*TBytef)(unsafe.Pointer(v29))) && scan < strend) {
  7859. break
  7860. }
  7861. }
  7862. len1 = int32(m_MAX_MATCH) - int32(int64(strend)-int64(scan))
  7863. scan = strend - uintptr(m_MAX_MATCH)
  7864. if len1 > best_len {
  7865. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start = cur_match
  7866. best_len = len1
  7867. if len1 >= nice_match {
  7868. break
  7869. }
  7870. scan_end1 = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len-int32(1))))
  7871. scan_end = *(*TBytef)(unsafe.Pointer(scan + uintptr(best_len)))
  7872. }
  7873. goto _5
  7874. _5:
  7875. ;
  7876. v2 = uint32(*(*TPosf)(unsafe.Pointer(prev + uintptr(cur_match&wmask)*2)))
  7877. cur_match = v2
  7878. if v4 = v2 > limit; v4 {
  7879. chain_length--
  7880. v3 = chain_length
  7881. }
  7882. if !(v4 && v3 != uint32(0)) {
  7883. break
  7884. }
  7885. }
  7886. if uint32(best_len) <= (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  7887. return uint32(best_len)
  7888. }
  7889. return (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  7890. }
  7891. /* ===========================================================================
  7892. * Flush the current block, with given end-of-file flag.
  7893. * IN assertion: strstart is set to the end of the current match.
  7894. */
  7895. /* Same but force premature exit if necessary. */
  7896. /* Maximum stored block length in deflate format (not including header). */
  7897. /* Minimum of a and b. */
  7898. // C documentation
  7899. //
  7900. // /* ===========================================================================
  7901. // * Copy without compression as much as possible from the input stream, return
  7902. // * the current block state.
  7903. // *
  7904. // * In case deflateParams() is used to later switch to a non-zero compression
  7905. // * level, s->matches (otherwise unused when storing) keeps track of the number
  7906. // * of hash table slides to perform. If s->matches is 1, then one hash table
  7907. // * slide will be done when switching. If s->matches is 2, the maximum value
  7908. // * allowed here, then the hash table will be cleared, since two or more slides
  7909. // * is the same as a clear.
  7910. // *
  7911. // * deflate_stored() is written to minimize the number of times an input byte is
  7912. // * copied. It is most efficient with large input and output buffers, which
  7913. // * maximizes the opportunities to have a single copy from next_in to next_out.
  7914. // */
  7915. func _deflate_stored(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  7916. var have, last, left, len1, min_block, used, v1, v4, v6, v7, v8, v9 uint32
  7917. var v10, v12, v2 int32
  7918. var p11, p3, p5 uintptr
  7919. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = have, last, left, len1, min_block, used, v1, v10, v12, v2, v4, v6, v7, v8, v9, p11, p3, p5
  7920. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-uint32(5) > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  7921. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  7922. } else {
  7923. v1 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - uint32(5)
  7924. }
  7925. /* Smallest worthy block size when not flushing or finishing. By default
  7926. * this is 32K. This can be as small as 507 bytes for memLevel == 1. For
  7927. * large input and output buffers, the stored block size will be larger.
  7928. */
  7929. min_block = v1
  7930. last = uint32(0)
  7931. used = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  7932. for cond := true; cond; cond = last == uint32(0) {
  7933. /* Set len to the maximum size block that we can copy directly with the
  7934. * available input data and output space. Set left to how much of that
  7935. * would be copied from what's left in the window.
  7936. */
  7937. len1 = uint32(m_MAX_STORED) /* maximum deflate stored block length */
  7938. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  7939. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out < have { /* need room for header */
  7940. break
  7941. }
  7942. /* maximum stored block length that will fit in avail_out: */
  7943. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out - have
  7944. left = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start) /* bytes left in window */
  7945. if len1 > left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  7946. len1 = left + (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  7947. } /* limit len to the input */
  7948. if len1 > have {
  7949. len1 = have
  7950. } /* limit len to the output */
  7951. /* If the stored block would be less than min_block in length, or if
  7952. * unable to copy all of the available input when flushing, then try
  7953. * copying to the window and the pending buffer instead. Also don't
  7954. * write an empty block when flushing -- deflate() does that.
  7955. */
  7956. if len1 < min_block && (len1 == uint32(0) && flush != int32(m_Z_FINISH) || flush == m_Z_NO_FLUSH || len1 != left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in) {
  7957. break
  7958. }
  7959. /* Make a dummy stored block in pending to get the header bytes,
  7960. * including any pending bits. This also updates the debugging counts.
  7961. */
  7962. if flush == int32(m_Z_FINISH) && len1 == left+(*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  7963. v2 = int32(1)
  7964. } else {
  7965. v2 = 0
  7966. }
  7967. last = uint32(v2)
  7968. x__tr_stored_block(tls, s, libc.UintptrFromInt32(0), uint32(0), int32(last))
  7969. /* Replace the lengths in the dummy stored block with len. */
  7970. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(4)))) = uint8(len1)
  7971. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(3)))) = uint8(len1 >> int32(8))
  7972. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(2)))) = uint8(^len1)
  7973. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending-uint32(1)))) = uint8(^len1 >> int32(8))
  7974. /* Write the stored block header bytes. */
  7975. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  7976. /* Copy uncompressed bytes from the window to next_out. */
  7977. if left != 0 {
  7978. if left > len1 {
  7979. left = len1
  7980. }
  7981. libc.Xmemcpy(tls, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), uint64(left))
  7982. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 16)) += uintptr(left)
  7983. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) -= left
  7984. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 28)) += left
  7985. p3 = s + 132
  7986. *(*int32)(unsafe.Pointer(p3)) = int32(uint32(*(*int32)(unsafe.Pointer(p3))) + left)
  7987. len1 -= left
  7988. }
  7989. /* Copy uncompressed bytes directly from next_in to next_out, updating
  7990. * the check value.
  7991. */
  7992. if len1 != 0 {
  7993. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_out, len1)
  7994. *(*uintptr)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 16)) += uintptr(len1)
  7995. *(*TuInt)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 24)) -= len1
  7996. *(*TuLong)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm + 28)) += len1
  7997. }
  7998. }
  7999. /* Update the sliding window with the last s->w_size bytes of the copied
  8000. * data, or append all of the copied data to the existing window if less
  8001. * than s->w_size bytes were copied. Also update the number of bytes to
  8002. * insert in the hash tables, in the event that deflateParams() switches to
  8003. * a non-zero compression level.
  8004. */
  8005. used -= (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in /* number of input bytes directly copied */
  8006. if used != 0 {
  8007. /* If any input was used, then no unused input remains in the window,
  8008. * therefore s->block_start == s->strstart.
  8009. */
  8010. if used >= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size { /* supplant the previous history */
  8011. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = uint32(2) /* clear hash */
  8012. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size))
  8013. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8014. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8015. } else {
  8016. if (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size-(*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart <= used {
  8017. /* Slide the window down. */
  8018. *(*TuInt)(unsafe.Pointer(s + 148)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8019. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  8020. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  8021. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  8022. } /* add a pending slide_hash() */
  8023. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  8024. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8025. }
  8026. }
  8027. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fnext_in-uintptr(used), uint64(used))
  8028. *(*TuInt)(unsafe.Pointer(s + 148)) += used
  8029. if used > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  8030. v4 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  8031. } else {
  8032. v4 = used
  8033. }
  8034. *(*TuInt)(unsafe.Pointer(s + 5896)) += v4
  8035. }
  8036. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8037. }
  8038. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  8039. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8040. }
  8041. /* If the last block was written to next_out, then done. */
  8042. if last != 0 {
  8043. return int32(_finish_done)
  8044. }
  8045. /* If flushing and all input has been consumed, then done. */
  8046. if flush != m_Z_NO_FLUSH && flush != int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) == (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start {
  8047. return int32(_block_done)
  8048. }
  8049. /* Fill the window with any remaining input. */
  8050. have = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow_size - (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8051. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in > have && (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= int32((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size) {
  8052. /* Slide the window down. */
  8053. p5 = s + 132
  8054. *(*int32)(unsafe.Pointer(p5)) = int32(uint32(*(*int32)(unsafe.Pointer(p5))) - (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size)
  8055. *(*TuInt)(unsafe.Pointer(s + 148)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8056. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fw_size), uint64((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))
  8057. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches < uint32(2) {
  8058. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  8059. } /* add a pending slide_hash() */
  8060. have += (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size /* more space now */
  8061. if (*Tdeflate_state)(unsafe.Pointer(s)).Finsert > (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  8062. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8063. }
  8064. }
  8065. if have > (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in {
  8066. have = (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in
  8067. }
  8068. if have != 0 {
  8069. _read_buf(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart), have)
  8070. *(*TuInt)(unsafe.Pointer(s + 148)) += have
  8071. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-(*Tdeflate_state)(unsafe.Pointer(s)).Finsert {
  8072. v6 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size - (*Tdeflate_state)(unsafe.Pointer(s)).Finsert
  8073. } else {
  8074. v6 = have
  8075. }
  8076. *(*TuInt)(unsafe.Pointer(s + 5896)) += v6
  8077. }
  8078. if (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water < (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart {
  8079. (*Tdeflate_state)(unsafe.Pointer(s)).Fhigh_water = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8080. }
  8081. /* There was not enough avail_out to write a complete worthy or flushed
  8082. * stored block to next_out. Write a stored block to pending instead, if we
  8083. * have enough input for a worthy block, or if flushing and there is enough
  8084. * room for the remaining input as a stored block in the pending buffer.
  8085. */
  8086. have = uint32(((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid + int32(42)) >> int32(3)) /* number of header bytes */
  8087. /* maximum stored block length that will fit in pending: */
  8088. if (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size-have > uint32(libc.Int32FromInt32(m_MAX_STORED)) {
  8089. v7 = uint32(libc.Int32FromInt32(m_MAX_STORED))
  8090. } else {
  8091. v7 = (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf_size - have
  8092. }
  8093. have = v7
  8094. if have > (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size {
  8095. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size
  8096. } else {
  8097. v8 = have
  8098. }
  8099. min_block = v8
  8100. left = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start)
  8101. if left >= min_block || (left != 0 || flush == int32(m_Z_FINISH)) && flush != m_Z_NO_FLUSH && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && left <= have {
  8102. if left > have {
  8103. v9 = have
  8104. } else {
  8105. v9 = left
  8106. }
  8107. len1 = v9
  8108. if flush == int32(m_Z_FINISH) && (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_in == uint32(0) && len1 == left {
  8109. v10 = int32(1)
  8110. } else {
  8111. v10 = 0
  8112. }
  8113. last = uint32(v10)
  8114. x__tr_stored_block(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), len1, int32(last))
  8115. p11 = s + 132
  8116. *(*int32)(unsafe.Pointer(p11)) = int32(uint32(*(*int32)(unsafe.Pointer(p11))) + len1)
  8117. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8118. }
  8119. /* We've done all we can with the available input and output. */
  8120. if last != 0 {
  8121. v12 = int32(_finish_started)
  8122. } else {
  8123. v12 = int32(_need_more)
  8124. }
  8125. return v12
  8126. }
  8127. // C documentation
  8128. //
  8129. // /* ===========================================================================
  8130. // * Compress as much as possible from the input stream, return the current
  8131. // * block state.
  8132. // * This function does not perform lazy evaluation of matches and inserts
  8133. // * new strings in the dictionary only for unmatched strings or for short
  8134. // * matches. It is used only for the fast compression options.
  8135. // */
  8136. func _deflate_fast(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8137. var bflush, v9 int32
  8138. var cc, len1 Tuch
  8139. var dist Tush
  8140. var hash_head TIPos
  8141. var v10, v14, v16, v18, v3, v5, v7 TuInt
  8142. var v11, v15, v17, v19, v20, v22, v23, v4, v6, v8 uintptr
  8143. var v13, v2 TPosf
  8144. var v21 uint32
  8145. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, dist, hash_head, len1, v10, v11, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  8146. for {
  8147. /* Make sure that we always have enough lookahead, except
  8148. * at the end of the input file. We need MAX_MATCH bytes
  8149. * for the next match, plus MIN_MATCH bytes to insert the
  8150. * string following the next match.
  8151. */
  8152. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8153. _fill_window(tls, s)
  8154. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  8155. return int32(_need_more)
  8156. }
  8157. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8158. break
  8159. } /* flush the current block */
  8160. }
  8161. /* Insert the string window[strstart .. strstart + 2] in the
  8162. * dictionary, and set hash_head to the head of the hash chain:
  8163. */
  8164. hash_head = uint32(m_NIL)
  8165. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  8166. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8167. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8168. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v2
  8169. hash_head = uint32(v2)
  8170. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8171. }
  8172. /* Find the longest match, discarding those <= prev_length.
  8173. * At this point we have always match_length < MIN_MATCH
  8174. */
  8175. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8176. /* To simplify the code, we prevent matches with the string
  8177. * of window index 0 (in particular we have to avoid a match
  8178. * of the string with itself at the start of the input file).
  8179. */
  8180. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  8181. /* longest_match() sets match_start */
  8182. }
  8183. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  8184. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  8185. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start)
  8186. v4 = s + 5876
  8187. v3 = *(*TuInt)(unsafe.Pointer(v4))
  8188. *(*TuInt)(unsafe.Pointer(v4))++
  8189. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  8190. v6 = s + 5876
  8191. v5 = *(*TuInt)(unsafe.Pointer(v6))
  8192. *(*TuInt)(unsafe.Pointer(v6))++
  8193. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  8194. v8 = s + 5876
  8195. v7 = *(*TuInt)(unsafe.Pointer(v8))
  8196. *(*TuInt)(unsafe.Pointer(v8))++
  8197. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  8198. dist--
  8199. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  8200. if int32(dist) < int32(256) {
  8201. v9 = int32(x__dist_code[dist])
  8202. } else {
  8203. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  8204. }
  8205. *(*Tush)(unsafe.Pointer(s + 2480 + uintptr(v9)*4))++
  8206. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8207. *(*TuInt)(unsafe.Pointer(s + 156)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8208. /* Insert new strings in the hash table only if the match length
  8209. * is not too large. This saves time but degrades compression.
  8210. */
  8211. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  8212. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length-- /* string at strstart already in table */
  8213. for {
  8214. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8215. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8216. v13 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8217. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v13
  8218. hash_head = uint32(v13)
  8219. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8220. /* strstart never exceeds WSIZE-MAX_MATCH, so there are
  8221. * always MIN_MATCH bytes ahead.
  8222. */
  8223. goto _12
  8224. _12:
  8225. ;
  8226. v11 = s + 136
  8227. *(*TuInt)(unsafe.Pointer(v11))--
  8228. v10 = *(*TuInt)(unsafe.Pointer(v11))
  8229. if !(v10 != uint32(0)) {
  8230. break
  8231. }
  8232. }
  8233. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8234. } else {
  8235. *(*TuInt)(unsafe.Pointer(s + 148)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8236. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8237. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart))))
  8238. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(1)))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8239. /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
  8240. * matter since it will be recomputed at next deflate call.
  8241. */
  8242. }
  8243. } else {
  8244. /* No match, output a literal byte */
  8245. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8246. v15 = s + 5876
  8247. v14 = *(*TuInt)(unsafe.Pointer(v15))
  8248. *(*TuInt)(unsafe.Pointer(v15))++
  8249. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v14))) = uint8(0)
  8250. v17 = s + 5876
  8251. v16 = *(*TuInt)(unsafe.Pointer(v17))
  8252. *(*TuInt)(unsafe.Pointer(v17))++
  8253. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v16))) = uint8(0)
  8254. v19 = s + 5876
  8255. v18 = *(*TuInt)(unsafe.Pointer(v19))
  8256. *(*TuInt)(unsafe.Pointer(v19))++
  8257. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v18))) = cc
  8258. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(cc)*4))++
  8259. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8260. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8261. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8262. }
  8263. if bflush != 0 {
  8264. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8265. v20 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8266. } else {
  8267. v20 = libc.UintptrFromInt32(m_Z_NULL)
  8268. }
  8269. x__tr_flush_block(tls, s, v20, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8270. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8271. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8272. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8273. return int32(_need_more)
  8274. }
  8275. }
  8276. goto _1
  8277. _1:
  8278. }
  8279. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  8280. v21 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8281. } else {
  8282. v21 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8283. }
  8284. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v21
  8285. if flush == int32(m_Z_FINISH) {
  8286. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8287. v22 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8288. } else {
  8289. v22 = libc.UintptrFromInt32(m_Z_NULL)
  8290. }
  8291. x__tr_flush_block(tls, s, v22, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8292. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8293. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8294. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8295. return int32(_finish_started)
  8296. }
  8297. return int32(_finish_done)
  8298. }
  8299. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8300. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8301. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8302. } else {
  8303. v23 = libc.UintptrFromInt32(m_Z_NULL)
  8304. }
  8305. x__tr_flush_block(tls, s, v23, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8306. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8307. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8308. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8309. return int32(_need_more)
  8310. }
  8311. }
  8312. return int32(_block_done)
  8313. }
  8314. // C documentation
  8315. //
  8316. // /* ===========================================================================
  8317. // * Same as above, but achieves better compression. We use a lazy
  8318. // * evaluation for matches: a match is finally adopted only if there is
  8319. // * no better match at the next window position.
  8320. // */
  8321. func _deflate_slow(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8322. var bflush, v9 int32
  8323. var cc, cc1, len1 Tuch
  8324. var dist Tush
  8325. var hash_head TIPos
  8326. var max_insert, v10, v13, v17, v19, v21, v24, v26, v28, v3, v5, v7 TuInt
  8327. var v11, v14, v16, v18, v20, v22, v23, v25, v27, v29, v31, v32, v4, v6, v8 uintptr
  8328. var v15, v2 TPosf
  8329. var v30 uint32
  8330. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, cc1, dist, hash_head, len1, max_insert, v10, v11, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  8331. /* Process the input block. */
  8332. for {
  8333. /* Make sure that we always have enough lookahead, except
  8334. * at the end of the input file. We need MAX_MATCH bytes
  8335. * for the next match, plus MIN_MATCH bytes to insert the
  8336. * string following the next match.
  8337. */
  8338. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8339. _fill_window(tls, s)
  8340. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead < uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) && flush == m_Z_NO_FLUSH {
  8341. return int32(_need_more)
  8342. }
  8343. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8344. break
  8345. } /* flush the current block */
  8346. }
  8347. /* Insert the string window[strstart .. strstart + 2] in the
  8348. * dictionary, and set hash_head to the head of the hash chain:
  8349. */
  8350. hash_head = uint32(m_NIL)
  8351. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) {
  8352. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8353. v2 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8354. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v2
  8355. hash_head = uint32(v2)
  8356. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8357. }
  8358. /* Find the longest match, discarding those <= prev_length.
  8359. */
  8360. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8361. /* Find the longest match, discarding those <= prev_length.
  8362. */
  8363. (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match = (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start
  8364. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8365. if hash_head != uint32(m_NIL) && (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length < (*Tdeflate_state)(unsafe.Pointer(s)).Fmax_lazy_match && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-hash_head <= (*Tdeflate_state)(unsafe.Pointer(s)).Fw_size-uint32(libc.Int32FromInt32(m_MAX_MATCH)+libc.Int32FromInt32(m_MIN_MATCH)+libc.Int32FromInt32(1)) {
  8366. /* To simplify the code, we prevent matches with the string
  8367. * of window index 0 (in particular we have to avoid a match
  8368. * of the string with itself at the start of the input file).
  8369. */
  8370. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = _longest_match(tls, s, hash_head)
  8371. /* longest_match() sets match_start */
  8372. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= uint32(5) && ((*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FILTERED) || (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length == uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-(*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_start > uint32(m_TOO_FAR)) {
  8373. /* If prev_match is also MIN_MATCH, match_start is garbage
  8374. * but we will ignore the current match anyway.
  8375. */
  8376. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8377. }
  8378. }
  8379. /* If there was a match at the previous step and the current
  8380. * match is not better, output the previous match:
  8381. */
  8382. if (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length <= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length {
  8383. max_insert = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart + (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead - uint32(m_MIN_MATCH)
  8384. /* Do not insert strings in hash table beyond this. */
  8385. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - libc.Uint32FromInt32(m_MIN_MATCH))
  8386. dist = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart - libc.Uint32FromInt32(1) - (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_match)
  8387. v4 = s + 5876
  8388. v3 = *(*TuInt)(unsafe.Pointer(v4))
  8389. *(*TuInt)(unsafe.Pointer(v4))++
  8390. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist)
  8391. v6 = s + 5876
  8392. v5 = *(*TuInt)(unsafe.Pointer(v6))
  8393. *(*TuInt)(unsafe.Pointer(v6))++
  8394. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  8395. v8 = s + 5876
  8396. v7 = *(*TuInt)(unsafe.Pointer(v8))
  8397. *(*TuInt)(unsafe.Pointer(v8))++
  8398. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v7))) = len1
  8399. dist--
  8400. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  8401. if int32(dist) < int32(256) {
  8402. v9 = int32(x__dist_code[dist])
  8403. } else {
  8404. v9 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  8405. }
  8406. *(*Tush)(unsafe.Pointer(s + 2480 + uintptr(v9)*4))++
  8407. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8408. /* Insert in hash table all strings up to the end of the match.
  8409. * strstart - 1 and strstart are already inserted. If there is not
  8410. * enough lookahead, the last two strings are not inserted in
  8411. * the hash table.
  8412. */
  8413. *(*TuInt)(unsafe.Pointer(s + 156)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fprev_length - uint32(1)
  8414. *(*TuInt)(unsafe.Pointer(s + 160)) -= uint32(2)
  8415. for {
  8416. v14 = s + 148
  8417. *(*TuInt)(unsafe.Pointer(v14))++
  8418. v13 = *(*TuInt)(unsafe.Pointer(v14))
  8419. if v13 <= max_insert {
  8420. (*Tdeflate_state)(unsafe.Pointer(s)).Fins_h = ((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h<<(*Tdeflate_state)(unsafe.Pointer(s)).Fhash_shift ^ uint32(*(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart+uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1))))))) & (*Tdeflate_state)(unsafe.Pointer(s)).Fhash_mask
  8421. v15 = *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2))
  8422. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fprev + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart&(*Tdeflate_state)(unsafe.Pointer(s)).Fw_mask)*2)) = v15
  8423. hash_head = uint32(v15)
  8424. *(*TPosf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fhead + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fins_h)*2)) = uint16((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8425. }
  8426. goto _12
  8427. _12:
  8428. ;
  8429. v11 = s + 160
  8430. *(*TuInt)(unsafe.Pointer(v11))--
  8431. v10 = *(*TuInt)(unsafe.Pointer(v11))
  8432. if !(v10 != uint32(0)) {
  8433. break
  8434. }
  8435. }
  8436. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  8437. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8438. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8439. if bflush != 0 {
  8440. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8441. v16 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8442. } else {
  8443. v16 = libc.UintptrFromInt32(m_Z_NULL)
  8444. }
  8445. x__tr_flush_block(tls, s, v16, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8446. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8447. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8448. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8449. return int32(_need_more)
  8450. }
  8451. }
  8452. } else {
  8453. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  8454. /* If there was no match at the previous position, output a
  8455. * single literal. If there was a match but the current match
  8456. * is longer, truncate the previous match to a single literal.
  8457. */
  8458. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  8459. v18 = s + 5876
  8460. v17 = *(*TuInt)(unsafe.Pointer(v18))
  8461. *(*TuInt)(unsafe.Pointer(v18))++
  8462. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v17))) = uint8(0)
  8463. v20 = s + 5876
  8464. v19 = *(*TuInt)(unsafe.Pointer(v20))
  8465. *(*TuInt)(unsafe.Pointer(v20))++
  8466. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v19))) = uint8(0)
  8467. v22 = s + 5876
  8468. v21 = *(*TuInt)(unsafe.Pointer(v22))
  8469. *(*TuInt)(unsafe.Pointer(v22))++
  8470. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v21))) = cc
  8471. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(cc)*4))++
  8472. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8473. if bflush != 0 {
  8474. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8475. v23 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8476. } else {
  8477. v23 = libc.UintptrFromInt32(m_Z_NULL)
  8478. }
  8479. x__tr_flush_block(tls, s, v23, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8480. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8481. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8482. }
  8483. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8484. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8485. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8486. return int32(_need_more)
  8487. }
  8488. } else {
  8489. /* There is no previous match to compare with, wait for
  8490. * the next step to decide.
  8491. */
  8492. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = int32(1)
  8493. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8494. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8495. }
  8496. }
  8497. goto _1
  8498. _1:
  8499. }
  8500. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available != 0 {
  8501. cc1 = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart-uint32(1))))
  8502. v25 = s + 5876
  8503. v24 = *(*TuInt)(unsafe.Pointer(v25))
  8504. *(*TuInt)(unsafe.Pointer(v25))++
  8505. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v24))) = uint8(0)
  8506. v27 = s + 5876
  8507. v26 = *(*TuInt)(unsafe.Pointer(v27))
  8508. *(*TuInt)(unsafe.Pointer(v27))++
  8509. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v26))) = uint8(0)
  8510. v29 = s + 5876
  8511. v28 = *(*TuInt)(unsafe.Pointer(v29))
  8512. *(*TuInt)(unsafe.Pointer(v29))++
  8513. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v28))) = cc1
  8514. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(cc1)*4))++
  8515. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8516. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_available = 0
  8517. }
  8518. if (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart < uint32(libc.Int32FromInt32(m_MIN_MATCH)-libc.Int32FromInt32(1)) {
  8519. v30 = (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart
  8520. } else {
  8521. v30 = uint32(libc.Int32FromInt32(m_MIN_MATCH) - libc.Int32FromInt32(1))
  8522. }
  8523. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = v30
  8524. if flush == int32(m_Z_FINISH) {
  8525. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8526. v31 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8527. } else {
  8528. v31 = libc.UintptrFromInt32(m_Z_NULL)
  8529. }
  8530. x__tr_flush_block(tls, s, v31, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8531. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8532. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8533. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8534. return int32(_finish_started)
  8535. }
  8536. return int32(_finish_done)
  8537. }
  8538. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8539. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8540. v32 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8541. } else {
  8542. v32 = libc.UintptrFromInt32(m_Z_NULL)
  8543. }
  8544. x__tr_flush_block(tls, s, v32, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8545. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8546. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8547. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8548. return int32(_need_more)
  8549. }
  8550. }
  8551. return int32(_block_done)
  8552. }
  8553. // C documentation
  8554. //
  8555. // /* ===========================================================================
  8556. // * For Z_RLE, simply look for runs of bytes, generate matches only of distance
  8557. // * one. Do not maintain a hash table. (It will be regenerated if this run of
  8558. // * deflate switches away from Z_RLE.)
  8559. // */
  8560. func _deflate_rle(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8561. var bflush, v29 int32
  8562. var cc, len1 Tuch
  8563. var dist Tush
  8564. var prev, v23, v25, v27, v30, v32, v34 TuInt
  8565. var scan, strend, v10, v12, v14, v16, v18, v2, v20, v24, v26, v28, v3, v31, v33, v35, v36, v37, v38, v5, v7, v8 uintptr
  8566. var v11, v13, v15, v17, v19, v21, v4, v6, v9 bool
  8567. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, dist, len1, prev, scan, strend, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v4, v5, v6, v7, v8, v9 /* scan goes up to strend for length of run */
  8568. for {
  8569. /* Make sure that we always have enough lookahead, except
  8570. * at the end of the input file. We need MAX_MATCH bytes
  8571. * for the longest run, plus one for the unrolled loop.
  8572. */
  8573. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) {
  8574. _fill_window(tls, s)
  8575. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead <= uint32(m_MAX_MATCH) && flush == m_Z_NO_FLUSH {
  8576. return int32(_need_more)
  8577. }
  8578. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8579. break
  8580. } /* flush the current block */
  8581. }
  8582. /* See how many times the previous byte repeats */
  8583. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8584. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead >= uint32(m_MIN_MATCH) && (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart > uint32(0) {
  8585. scan = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) - uintptr(1)
  8586. prev = uint32(*(*TBytef)(unsafe.Pointer(scan)))
  8587. scan++
  8588. v2 = scan
  8589. if v4 = prev == uint32(*(*TBytef)(unsafe.Pointer(v2))); v4 {
  8590. scan++
  8591. v3 = scan
  8592. }
  8593. if v6 = v4 && prev == uint32(*(*TBytef)(unsafe.Pointer(v3))); v6 {
  8594. scan++
  8595. v5 = scan
  8596. }
  8597. if v6 && prev == uint32(*(*TBytef)(unsafe.Pointer(v5))) {
  8598. strend = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart) + uintptr(m_MAX_MATCH)
  8599. for {
  8600. goto _22
  8601. _22:
  8602. ;
  8603. scan++
  8604. v7 = scan
  8605. if v9 = prev == uint32(*(*TBytef)(unsafe.Pointer(v7))); v9 {
  8606. scan++
  8607. v8 = scan
  8608. }
  8609. if v11 = v9 && prev == uint32(*(*TBytef)(unsafe.Pointer(v8))); v11 {
  8610. scan++
  8611. v10 = scan
  8612. }
  8613. if v13 = v11 && prev == uint32(*(*TBytef)(unsafe.Pointer(v10))); v13 {
  8614. scan++
  8615. v12 = scan
  8616. }
  8617. if v15 = v13 && prev == uint32(*(*TBytef)(unsafe.Pointer(v12))); v15 {
  8618. scan++
  8619. v14 = scan
  8620. }
  8621. if v17 = v15 && prev == uint32(*(*TBytef)(unsafe.Pointer(v14))); v17 {
  8622. scan++
  8623. v16 = scan
  8624. }
  8625. if v19 = v17 && prev == uint32(*(*TBytef)(unsafe.Pointer(v16))); v19 {
  8626. scan++
  8627. v18 = scan
  8628. }
  8629. if v21 = v19 && prev == uint32(*(*TBytef)(unsafe.Pointer(v18))); v21 {
  8630. scan++
  8631. v20 = scan
  8632. }
  8633. if !(v21 && prev == uint32(*(*TBytef)(unsafe.Pointer(v20))) && scan < strend) {
  8634. break
  8635. }
  8636. }
  8637. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(m_MAX_MATCH) - uint32(int64(strend)-int64(scan))
  8638. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length > (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead {
  8639. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead
  8640. }
  8641. }
  8642. }
  8643. /* Emit match if have run of MIN_MATCH or longer, else emit literal */
  8644. if (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length >= uint32(m_MIN_MATCH) {
  8645. len1 = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length - libc.Uint32FromInt32(m_MIN_MATCH))
  8646. dist = uint16(libc.Int32FromInt32(1))
  8647. v24 = s + 5876
  8648. v23 = *(*TuInt)(unsafe.Pointer(v24))
  8649. *(*TuInt)(unsafe.Pointer(v24))++
  8650. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v23))) = uint8(dist)
  8651. v26 = s + 5876
  8652. v25 = *(*TuInt)(unsafe.Pointer(v26))
  8653. *(*TuInt)(unsafe.Pointer(v26))++
  8654. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v25))) = uint8(int32(dist) >> libc.Int32FromInt32(8))
  8655. v28 = s + 5876
  8656. v27 = *(*TuInt)(unsafe.Pointer(v28))
  8657. *(*TuInt)(unsafe.Pointer(v28))++
  8658. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v27))) = len1
  8659. dist--
  8660. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(int32(x__length_code[len1])+int32(m_LITERALS)+int32(1))*4))++
  8661. if int32(dist) < int32(256) {
  8662. v29 = int32(x__dist_code[dist])
  8663. } else {
  8664. v29 = int32(x__dist_code[int32(256)+int32(dist)>>int32(7)])
  8665. }
  8666. *(*Tush)(unsafe.Pointer(s + 2480 + uintptr(v29)*4))++
  8667. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8668. *(*TuInt)(unsafe.Pointer(s + 156)) -= (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8669. *(*TuInt)(unsafe.Pointer(s + 148)) += (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length
  8670. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8671. } else {
  8672. /* No match, output a literal byte */
  8673. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8674. v31 = s + 5876
  8675. v30 = *(*TuInt)(unsafe.Pointer(v31))
  8676. *(*TuInt)(unsafe.Pointer(v31))++
  8677. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v30))) = uint8(0)
  8678. v33 = s + 5876
  8679. v32 = *(*TuInt)(unsafe.Pointer(v33))
  8680. *(*TuInt)(unsafe.Pointer(v33))++
  8681. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v32))) = uint8(0)
  8682. v35 = s + 5876
  8683. v34 = *(*TuInt)(unsafe.Pointer(v35))
  8684. *(*TuInt)(unsafe.Pointer(v35))++
  8685. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v34))) = cc
  8686. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(cc)*4))++
  8687. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8688. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8689. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8690. }
  8691. if bflush != 0 {
  8692. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8693. v36 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8694. } else {
  8695. v36 = libc.UintptrFromInt32(m_Z_NULL)
  8696. }
  8697. x__tr_flush_block(tls, s, v36, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8698. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8699. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8700. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8701. return int32(_need_more)
  8702. }
  8703. }
  8704. goto _1
  8705. _1:
  8706. }
  8707. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  8708. if flush == int32(m_Z_FINISH) {
  8709. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8710. v37 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8711. } else {
  8712. v37 = libc.UintptrFromInt32(m_Z_NULL)
  8713. }
  8714. x__tr_flush_block(tls, s, v37, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8715. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8716. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8717. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8718. return int32(_finish_started)
  8719. }
  8720. return int32(_finish_done)
  8721. }
  8722. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8723. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8724. v38 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8725. } else {
  8726. v38 = libc.UintptrFromInt32(m_Z_NULL)
  8727. }
  8728. x__tr_flush_block(tls, s, v38, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8729. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8730. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8731. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8732. return int32(_need_more)
  8733. }
  8734. }
  8735. return int32(_block_done)
  8736. }
  8737. // C documentation
  8738. //
  8739. // /* ===========================================================================
  8740. // * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.
  8741. // * (It will be regenerated if this run of deflate switches away from Huffman.)
  8742. // */
  8743. func _deflate_huff(tls *libc.TLS, s uintptr, flush int32) (r Tblock_state) {
  8744. var bflush int32
  8745. var cc Tuch
  8746. var v10, v3, v5, v7, v8, v9 uintptr
  8747. var v2, v4, v6 TuInt
  8748. _, _, _, _, _, _, _, _, _, _, _ = bflush, cc, v10, v2, v3, v4, v5, v6, v7, v8, v9 /* set if current block must be flushed */
  8749. for {
  8750. /* Make sure that we have a literal to write. */
  8751. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8752. _fill_window(tls, s)
  8753. if (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead == uint32(0) {
  8754. if flush == m_Z_NO_FLUSH {
  8755. return int32(_need_more)
  8756. }
  8757. break /* flush the current block */
  8758. }
  8759. }
  8760. /* Output a literal byte */
  8761. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatch_length = uint32(0)
  8762. cc = *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)))
  8763. v3 = s + 5876
  8764. v2 = *(*TuInt)(unsafe.Pointer(v3))
  8765. *(*TuInt)(unsafe.Pointer(v3))++
  8766. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))) = uint8(0)
  8767. v5 = s + 5876
  8768. v4 = *(*TuInt)(unsafe.Pointer(v5))
  8769. *(*TuInt)(unsafe.Pointer(v5))++
  8770. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v4))) = uint8(0)
  8771. v7 = s + 5876
  8772. v6 = *(*TuInt)(unsafe.Pointer(v7))
  8773. *(*TuInt)(unsafe.Pointer(v7))++
  8774. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v6))) = cc
  8775. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(cc)*4))++
  8776. bflush = libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  8777. (*Tdeflate_state)(unsafe.Pointer(s)).Flookahead--
  8778. (*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart++
  8779. if bflush != 0 {
  8780. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8781. v8 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8782. } else {
  8783. v8 = libc.UintptrFromInt32(m_Z_NULL)
  8784. }
  8785. x__tr_flush_block(tls, s, v8, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8786. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8787. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8788. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8789. return int32(_need_more)
  8790. }
  8791. }
  8792. goto _1
  8793. _1:
  8794. }
  8795. (*Tdeflate_state)(unsafe.Pointer(s)).Finsert = uint32(0)
  8796. if flush == int32(m_Z_FINISH) {
  8797. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8798. v9 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8799. } else {
  8800. v9 = libc.UintptrFromInt32(m_Z_NULL)
  8801. }
  8802. x__tr_flush_block(tls, s, v9, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), int32(1))
  8803. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8804. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8805. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8806. return int32(_finish_started)
  8807. }
  8808. return int32(_finish_done)
  8809. }
  8810. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != 0 {
  8811. if (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start >= 0 {
  8812. v10 = (*Tdeflate_state)(unsafe.Pointer(s)).Fwindow + uintptr(uint32((*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start))
  8813. } else {
  8814. v10 = libc.UintptrFromInt32(m_Z_NULL)
  8815. }
  8816. x__tr_flush_block(tls, s, v10, uint32(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)-(*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start), 0)
  8817. (*Tdeflate_state)(unsafe.Pointer(s)).Fblock_start = int32((*Tdeflate_state)(unsafe.Pointer(s)).Fstrstart)
  8818. _flush_pending(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)
  8819. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Favail_out == uint32(0) {
  8820. return int32(_need_more)
  8821. }
  8822. }
  8823. return int32(_block_done)
  8824. }
  8825. const m_BUFSIZ = 512
  8826. const m_COPY = 1
  8827. const m_FILENAME_MAX = 260
  8828. const m_FOPEN_MAX = 20
  8829. const m_F_OK = 0
  8830. const m_GZBUFSIZE = 8192
  8831. const m_GZIP = 2
  8832. const m_GZ_APPEND = 1
  8833. const m_GZ_NONE = 0
  8834. const m_GZ_READ = 7247
  8835. const m_GZ_WRITE = 31153
  8836. const m_LOOK = 0
  8837. const m_L_tmpnam_s = "L_tmpnam"
  8838. const m_O_ACCMODE = "_O_ACCMODE"
  8839. const m_O_APPEND = "_O_APPEND"
  8840. const m_O_BINARY = "_O_BINARY"
  8841. const m_O_CREAT = "_O_CREAT"
  8842. const m_O_EXCL = "_O_EXCL"
  8843. const m_O_NOINHERIT = "_O_NOINHERIT"
  8844. const m_O_RANDOM = "_O_RANDOM"
  8845. const m_O_RAW = "_O_BINARY"
  8846. const m_O_RDONLY = "_O_RDONLY"
  8847. const m_O_RDWR = "_O_RDWR"
  8848. const m_O_SEQUENTIAL = "_O_SEQUENTIAL"
  8849. const m_O_TEMPORARY = "_O_TEMPORARY"
  8850. const m_O_TEXT = "_O_TEXT"
  8851. const m_O_TRUNC = "_O_TRUNC"
  8852. const m_O_WRONLY = "_O_WRONLY"
  8853. const m_P_tmpdir = "_P_tmpdir"
  8854. const m_R_OK = 4
  8855. const m_STDERR_FILENO = 2
  8856. const m_STDIN_FILENO = 0
  8857. const m_STDOUT_FILENO = 1
  8858. const m_SYS_OPEN = "_SYS_OPEN"
  8859. const m_TMP_MAX = 32767
  8860. const m_TMP_MAX_S = "TMP_MAX"
  8861. const m_W_OK = 2
  8862. const m_X_OK = 1
  8863. const m__A_ARCH = 0x20
  8864. const m__A_HIDDEN = 0x02
  8865. const m__A_NORMAL = 0x00
  8866. const m__A_RDONLY = 0x01
  8867. const m__A_SUBDIR = 0x10
  8868. const m__A_SYSTEM = 0x04
  8869. const m__CRT_INTERNAL_LOCAL_PRINTF_OPTIONS = "_CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS"
  8870. const m__CRT_INTERNAL_LOCAL_SCANF_OPTIONS = "_CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS"
  8871. const m__CRT_INTERNAL_PRINTF_LEGACY_MSVCRT_COMPATIBILITY = "0x0008U"
  8872. const m__CRT_INTERNAL_PRINTF_LEGACY_THREE_DIGIT_EXPONENTS = "0x0010U"
  8873. const m__CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION = 1
  8874. const m__CRT_INTERNAL_PRINTF_LEGACY_WIDE_SPECIFIERS = 4
  8875. const m__CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR = 2
  8876. const m__CRT_INTERNAL_SCANF_LEGACY_MSVCRT_COMPATIBILITY = "0x0004U"
  8877. const m__CRT_INTERNAL_SCANF_LEGACY_WIDE_SPECIFIERS = 2
  8878. const m__CRT_INTERNAL_SCANF_SECURECRT = 1
  8879. const m__IOB_ENTRIES = 20
  8880. const m__IOFBF = 0x0000
  8881. const m__IOLBF = 0x0040
  8882. const m__IONBF = 0x0004
  8883. const m__NFILE = "_NSTREAM_"
  8884. const m__NSTREAM_ = 512
  8885. const m__OLD_P_OVERLAY = 2
  8886. const m__O_APPEND = 0x0008
  8887. const m__O_BINARY = 0x8000
  8888. const m__O_CREAT = 0x0100
  8889. const m__O_EXCL = 0x0400
  8890. const m__O_NOINHERIT = 0x0080
  8891. const m__O_RANDOM = 0x0010
  8892. const m__O_RAW = "_O_BINARY"
  8893. const m__O_RDONLY = 0x0000
  8894. const m__O_RDWR = 0x0002
  8895. const m__O_SEQUENTIAL = 0x0020
  8896. const m__O_SHORT_LIVED = 0x1000
  8897. const m__O_TEMPORARY = 0x0040
  8898. const m__O_TEXT = 0x4000
  8899. const m__O_TRUNC = 0x0200
  8900. const m__O_U16TEXT = 0x20000
  8901. const m__O_U8TEXT = 0x40000
  8902. const m__O_WRONLY = 0x0001
  8903. const m__O_WTEXT = 0x10000
  8904. const m__P_DETACH = 4
  8905. const m__P_NOWAIT = 1
  8906. const m__P_NOWAITO = 3
  8907. const m__P_OVERLAY = 2
  8908. const m__P_WAIT = 0
  8909. const m__P_tmpdir = "\\\\"
  8910. const m__SYS_OPEN = 20
  8911. const m__TWO_DIGIT_EXPONENT = 0x1
  8912. const m__WAIT_CHILD = 0
  8913. const m__WAIT_GRANDCHILD = 1
  8914. const m__finddata_t = "_finddata64i32_t"
  8915. const m__finddatai64_t = "__finddata64_t"
  8916. const m__findfirst = "_findfirst64i32"
  8917. const m__findfirsti64 = "_findfirst64"
  8918. const m__findnext = "_findnext64i32"
  8919. const m__findnexti64 = "_findnext64"
  8920. const m__wP_tmpdir = "\\\\"
  8921. const m__wfinddata_t = "_wfinddata64i32_t"
  8922. const m__wfinddatai64_t = "_wfinddata64_t"
  8923. const m__wfindfirst = "_wfindfirst64i32"
  8924. const m__wfindfirsti64 = "_wfindfirst64"
  8925. const m__wfindnext = "_wfindnext64i32"
  8926. const m__wfindnexti64 = "_wfindnext64"
  8927. const m_pclose = "_pclose"
  8928. const m_popen = "_popen"
  8929. const m_wpopen = "_wpopen"
  8930. type T_iobuf = struct {
  8931. F_Placeholder uintptr
  8932. }
  8933. type TFILE = struct {
  8934. F_Placeholder uintptr
  8935. }
  8936. type Tfpos_t = int64
  8937. type T_fsize_t = uint32
  8938. type T_finddata32_t = struct {
  8939. Fattrib uint32
  8940. Ftime_create t__time32_t
  8941. Ftime_access t__time32_t
  8942. Ftime_write t__time32_t
  8943. Fsize T_fsize_t
  8944. Fname [260]int8
  8945. }
  8946. type T_finddata32i64_t = struct {
  8947. Fattrib uint32
  8948. Ftime_create t__time32_t
  8949. Ftime_access t__time32_t
  8950. Ftime_write t__time32_t
  8951. Fsize int64
  8952. Fname [260]int8
  8953. }
  8954. type T_finddata64i32_t = struct {
  8955. Fattrib uint32
  8956. Ftime_create t__time64_t
  8957. Ftime_access t__time64_t
  8958. Ftime_write t__time64_t
  8959. Fsize T_fsize_t
  8960. Fname [260]int8
  8961. }
  8962. type t__finddata64_t = struct {
  8963. Fattrib uint32
  8964. Ftime_create t__time64_t
  8965. Ftime_access t__time64_t
  8966. Ftime_write t__time64_t
  8967. Fsize int64
  8968. Fname [260]int8
  8969. }
  8970. type T_wfinddata32_t = struct {
  8971. Fattrib uint32
  8972. Ftime_create t__time32_t
  8973. Ftime_access t__time32_t
  8974. Ftime_write t__time32_t
  8975. Fsize T_fsize_t
  8976. Fname [260]Twchar_t
  8977. }
  8978. type T_wfinddata32i64_t = struct {
  8979. Fattrib uint32
  8980. Ftime_create t__time32_t
  8981. Ftime_access t__time32_t
  8982. Ftime_write t__time32_t
  8983. Fsize int64
  8984. Fname [260]Twchar_t
  8985. }
  8986. type T_wfinddata64i32_t = struct {
  8987. Fattrib uint32
  8988. Ftime_create t__time64_t
  8989. Ftime_access t__time64_t
  8990. Ftime_write t__time64_t
  8991. Fsize T_fsize_t
  8992. Fname [260]Twchar_t
  8993. }
  8994. type T_wfinddata64_t = struct {
  8995. Fattrib uint32
  8996. Ftime_create t__time64_t
  8997. Ftime_access t__time64_t
  8998. Ftime_write t__time64_t
  8999. Fsize int64
  9000. Fname [260]Twchar_t
  9001. }
  9002. type Tgz_state = struct {
  9003. Fx TgzFile_s
  9004. Fmode int32
  9005. Ffd int32
  9006. Fpath uintptr
  9007. Fsize uint32
  9008. Fwant uint32
  9009. Fin uintptr
  9010. Fout uintptr
  9011. Fdirect int32
  9012. Fhow int32
  9013. Fstart int32
  9014. Feof int32
  9015. Fpast int32
  9016. Flevel int32
  9017. Fstrategy int32
  9018. Freset int32
  9019. Fskip int32
  9020. Fseek int32
  9021. Ferr int32
  9022. Fmsg uintptr
  9023. Fstrm Tz_stream
  9024. }
  9025. type Tgz_statep = uintptr
  9026. // C documentation
  9027. //
  9028. // /* gzclose() is in a separate file so that it is linked in only if it is used.
  9029. // That way the other gzclose functions can be used instead to avoid linking in
  9030. // unneeded compression or decompression routines. */
  9031. func Xgzclose(tls *libc.TLS, file TgzFile) (r int32) {
  9032. var state Tgz_statep
  9033. var v1 int32
  9034. _, _ = state, v1
  9035. if file == libc.UintptrFromInt32(0) {
  9036. return -int32(2)
  9037. }
  9038. state = file
  9039. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  9040. v1 = Xgzclose_r(tls, file)
  9041. } else {
  9042. v1 = Xgzclose_w(tls, file)
  9043. }
  9044. return v1
  9045. }
  9046. const m_LSEEK = "_lseeki64"
  9047. const m__O_APPEND1 = 8
  9048. const m__O_BINARY1 = 32768
  9049. const m__O_CREAT1 = 256
  9050. const m__O_EXCL1 = 1024
  9051. const m__O_RDONLY1 = 0
  9052. const m__O_TRUNC1 = 512
  9053. const m__O_WRONLY1 = 1
  9054. const m___INT_MAX__1 = 2147483647
  9055. // C documentation
  9056. //
  9057. // /* Reset gzip file state */
  9058. func _gz_reset(tls *libc.TLS, state Tgz_statep) {
  9059. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0) /* no output data available */
  9060. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* for reading ... */
  9061. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0 /* not at end of file */
  9062. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0 /* have not read past end yet */
  9063. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK /* look for gzip header */
  9064. } else { /* for writing ... */
  9065. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  9066. } /* no deflateReset pending */
  9067. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0 /* no seek request pending */
  9068. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0)) /* clear error */
  9069. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos = 0 /* no uncompressed data yet */
  9070. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0) /* no input data yet */
  9071. }
  9072. // C documentation
  9073. //
  9074. // /* Open a gzip file either by name or file descriptor. */
  9075. func _gz_open(tls *libc.TLS, path uintptr, fd int32, mode uintptr) (r TgzFile) {
  9076. bp := tls.Alloc(16)
  9077. defer tls.Free(16)
  9078. var exclusive, oflag, v1, v2, v3, v4, v5 int32
  9079. var len1 Tz_size_t
  9080. var state Tgz_statep
  9081. _, _, _, _, _, _, _, _, _ = exclusive, len1, oflag, state, v1, v2, v3, v4, v5
  9082. exclusive = 0
  9083. /* check input */
  9084. if path == libc.UintptrFromInt32(0) {
  9085. return libc.UintptrFromInt32(0)
  9086. }
  9087. /* allocate gzFile structure to return */
  9088. state = libc.Xmalloc(tls, uint64(208))
  9089. if state == libc.UintptrFromInt32(0) {
  9090. return libc.UintptrFromInt32(0)
  9091. }
  9092. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0) /* no buffers allocated yet */
  9093. (*Tgz_state)(unsafe.Pointer(state)).Fwant = uint32(m_GZBUFSIZE) /* requested buffer size */
  9094. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0) /* no error message yet */
  9095. /* interpret mode */
  9096. (*Tgz_state)(unsafe.Pointer(state)).Fmode = m_GZ_NONE
  9097. (*Tgz_state)(unsafe.Pointer(state)).Flevel = -int32(1)
  9098. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = m_Z_DEFAULT_STRATEGY
  9099. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  9100. for *(*int8)(unsafe.Pointer(mode)) != 0 {
  9101. if int32(*(*int8)(unsafe.Pointer(mode))) >= int32('0') && int32(*(*int8)(unsafe.Pointer(mode))) <= int32('9') {
  9102. (*Tgz_state)(unsafe.Pointer(state)).Flevel = int32(*(*int8)(unsafe.Pointer(mode))) - int32('0')
  9103. } else {
  9104. switch int32(*(*int8)(unsafe.Pointer(mode))) {
  9105. case int32('r'):
  9106. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_READ)
  9107. case int32('w'):
  9108. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE)
  9109. case int32('a'):
  9110. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_APPEND)
  9111. case int32('+'): /* can't read and write at the same time */
  9112. libc.Xfree(tls, state)
  9113. return libc.UintptrFromInt32(0)
  9114. case int32('b'): /* ignore -- will request binary anyway */
  9115. case int32('x'):
  9116. exclusive = int32(1)
  9117. case int32('f'):
  9118. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FILTERED)
  9119. case int32('h'):
  9120. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_HUFFMAN_ONLY)
  9121. case int32('R'):
  9122. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_RLE)
  9123. case int32('F'):
  9124. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = int32(m_Z_FIXED)
  9125. case int32('T'):
  9126. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  9127. default: /* could consider as an error, but just ignore */
  9128. }
  9129. }
  9130. mode++
  9131. }
  9132. /* must provide an "r", "w", or "a" */
  9133. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == m_GZ_NONE {
  9134. libc.Xfree(tls, state)
  9135. return libc.UintptrFromInt32(0)
  9136. }
  9137. /* can't force transparent read */
  9138. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  9139. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  9140. libc.Xfree(tls, state)
  9141. return libc.UintptrFromInt32(0)
  9142. }
  9143. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1) /* for empty file */
  9144. }
  9145. /* save the path name for error messages */
  9146. if fd == -int32(2) {
  9147. len1 = libc.Xwcstombs(tls, libc.UintptrFromInt32(0), path, uint64(0))
  9148. if len1 == uint64(-libc.Int32FromInt32(1)) {
  9149. len1 = uint64(0)
  9150. }
  9151. } else {
  9152. len1 = libc.Xstrlen(tls, path)
  9153. }
  9154. (*Tgz_state)(unsafe.Pointer(state)).Fpath = libc.Xmalloc(tls, len1+uint64(1))
  9155. if (*Tgz_state)(unsafe.Pointer(state)).Fpath == libc.UintptrFromInt32(0) {
  9156. libc.Xfree(tls, state)
  9157. return libc.UintptrFromInt32(0)
  9158. }
  9159. if fd == -int32(2) {
  9160. if len1 != 0 {
  9161. libc.Xwcstombs(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, path, len1+uint64(1))
  9162. } else {
  9163. *(*int8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fpath)) = 0
  9164. }
  9165. } else {
  9166. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath, len1+uint64(1), __ccgo_ts+6, libc.VaList(bp+8, path))
  9167. }
  9168. /* compute the flags for open() */
  9169. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  9170. v1 = m__O_RDONLY1
  9171. } else {
  9172. if exclusive != 0 {
  9173. v2 = int32(m__O_EXCL1)
  9174. } else {
  9175. v2 = 0
  9176. }
  9177. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_WRITE) {
  9178. v3 = int32(m__O_TRUNC1)
  9179. } else {
  9180. v3 = int32(m__O_APPEND1)
  9181. }
  9182. v1 = libc.Int32FromInt32(m__O_WRONLY1) | libc.Int32FromInt32(m__O_CREAT1) | v2 | v3
  9183. }
  9184. oflag = int32(m__O_BINARY1) | v1
  9185. /* open the file with the appropriate flags (or just use fd) */
  9186. if fd > -int32(1) {
  9187. v4 = fd
  9188. } else {
  9189. if fd == -int32(2) {
  9190. v5 = libc.X_wopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  9191. } else {
  9192. v5 = libc.Xopen(tls, path, oflag, libc.VaList(bp+8, int32(0666)))
  9193. }
  9194. v4 = v5
  9195. }
  9196. (*Tgz_state)(unsafe.Pointer(state)).Ffd = v4
  9197. if (*Tgz_state)(unsafe.Pointer(state)).Ffd == -int32(1) {
  9198. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  9199. libc.Xfree(tls, state)
  9200. return libc.UintptrFromInt32(0)
  9201. }
  9202. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_APPEND) {
  9203. libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_END)) /* so gzoffset() is correct */
  9204. (*Tgz_state)(unsafe.Pointer(state)).Fmode = int32(m_GZ_WRITE) /* simplify later checks */
  9205. }
  9206. /* save the current position for rewinding (only if reading) */
  9207. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  9208. (*Tgz_state)(unsafe.Pointer(state)).Fstart = int32(libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR)))
  9209. if (*Tgz_state)(unsafe.Pointer(state)).Fstart == -int32(1) {
  9210. (*Tgz_state)(unsafe.Pointer(state)).Fstart = 0
  9211. }
  9212. }
  9213. /* initialize stream */
  9214. _gz_reset(tls, state)
  9215. /* return stream */
  9216. return state
  9217. }
  9218. // C documentation
  9219. //
  9220. // /* -- see zlib.h -- */
  9221. func Xgzopen(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  9222. return _gz_open(tls, path, -int32(1), mode)
  9223. }
  9224. // C documentation
  9225. //
  9226. // /* -- see zlib.h -- */
  9227. func Xgzopen64(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  9228. return _gz_open(tls, path, -int32(1), mode)
  9229. }
  9230. // C documentation
  9231. //
  9232. // /* -- see zlib.h -- */
  9233. func Xgzdopen(tls *libc.TLS, fd int32, mode uintptr) (r TgzFile) {
  9234. bp := tls.Alloc(16)
  9235. defer tls.Free(16)
  9236. var gz TgzFile
  9237. var path, v1 uintptr
  9238. var v2 bool
  9239. _, _, _, _ = gz, path, v1, v2
  9240. if v2 = fd == -int32(1); !v2 {
  9241. v1 = libc.Xmalloc(tls, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4))
  9242. path = v1
  9243. }
  9244. if v2 || v1 == libc.UintptrFromInt32(0) {
  9245. return libc.UintptrFromInt32(0)
  9246. }
  9247. libc.X__builtin_snprintf(tls, path, libc.Uint64FromInt32(7)+libc.Uint64FromInt32(3)*libc.Uint64FromInt64(4), __ccgo_ts+9, libc.VaList(bp+8, fd))
  9248. gz = _gz_open(tls, path, fd, mode)
  9249. libc.Xfree(tls, path)
  9250. return gz
  9251. }
  9252. // C documentation
  9253. //
  9254. // /* -- see zlib.h -- */
  9255. func Xgzopen_w(tls *libc.TLS, path uintptr, mode uintptr) (r TgzFile) {
  9256. return _gz_open(tls, path, -int32(2), mode)
  9257. }
  9258. // C documentation
  9259. //
  9260. // /* -- see zlib.h -- */
  9261. func Xgzbuffer(tls *libc.TLS, file TgzFile, size uint32) (r int32) {
  9262. var state Tgz_statep
  9263. _ = state
  9264. /* get internal structure and check integrity */
  9265. if file == libc.UintptrFromInt32(0) {
  9266. return -int32(1)
  9267. }
  9268. state = file
  9269. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  9270. return -int32(1)
  9271. }
  9272. /* make sure we haven't already allocated memory */
  9273. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != uint32(0) {
  9274. return -int32(1)
  9275. }
  9276. /* check and set requested size */
  9277. if size<<int32(1) < size {
  9278. return -int32(1)
  9279. } /* need to be able to double it */
  9280. if size < uint32(8) {
  9281. size = uint32(8)
  9282. } /* needed to behave well with flushing */
  9283. (*Tgz_state)(unsafe.Pointer(state)).Fwant = size
  9284. return 0
  9285. }
  9286. // C documentation
  9287. //
  9288. // /* -- see zlib.h -- */
  9289. func Xgzrewind(tls *libc.TLS, file TgzFile) (r int32) {
  9290. var state Tgz_statep
  9291. _ = state
  9292. /* get internal structure */
  9293. if file == libc.UintptrFromInt32(0) {
  9294. return -int32(1)
  9295. }
  9296. state = file
  9297. /* check that we're reading and that there's no error */
  9298. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  9299. return -int32(1)
  9300. }
  9301. /* back up and start over */
  9302. if libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, int64((*Tgz_state)(unsafe.Pointer(state)).Fstart), m_SEEK_SET) == int64(-int32(1)) {
  9303. return -int32(1)
  9304. }
  9305. _gz_reset(tls, state)
  9306. return 0
  9307. }
  9308. // C documentation
  9309. //
  9310. // /* -- see zlib.h -- */
  9311. func Xgzseek64(tls *libc.TLS, file TgzFile, offset int32, whence int32) (r int32) {
  9312. var n, v1 uint32
  9313. var ret int32
  9314. var state Tgz_statep
  9315. var p2 uintptr
  9316. _, _, _, _, _ = n, ret, state, v1, p2
  9317. /* get internal structure and check integrity */
  9318. if file == libc.UintptrFromInt32(0) {
  9319. return -int32(1)
  9320. }
  9321. state = file
  9322. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  9323. return -int32(1)
  9324. }
  9325. /* check that there's no error */
  9326. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  9327. return -int32(1)
  9328. }
  9329. /* can only seek from start or relative to current position */
  9330. if whence != m_SEEK_SET && whence != int32(m_SEEK_CUR) {
  9331. return -int32(1)
  9332. }
  9333. /* normalize offset to a SEEK_CUR specification */
  9334. if whence == m_SEEK_SET {
  9335. offset -= (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  9336. } else {
  9337. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  9338. offset += (*Tgz_state)(unsafe.Pointer(state)).Fskip
  9339. }
  9340. }
  9341. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  9342. /* if within raw area while reading, just go there */
  9343. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos+offset >= 0 {
  9344. ret = int32(libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, int64(offset-int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)), int32(m_SEEK_CUR)))
  9345. if ret == -int32(1) {
  9346. return -int32(1)
  9347. }
  9348. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  9349. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  9350. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  9351. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  9352. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  9353. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  9354. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += offset
  9355. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  9356. }
  9357. /* calculate skip amount, rewinding if needed for back seek when reading */
  9358. if offset < 0 {
  9359. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) { /* writing -- can't go backwards */
  9360. return -int32(1)
  9361. }
  9362. offset += (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos
  9363. if offset < 0 { /* before start of file! */
  9364. return -int32(1)
  9365. }
  9366. if Xgzrewind(tls, file) == -int32(1) { /* rewind, then skip to offset */
  9367. return -int32(1)
  9368. }
  9369. }
  9370. /* if reading, skip what's in output buffer (one less gzgetc() check) */
  9371. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  9372. if libc.Bool(uint64(4) == uint64(4)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls) || int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > offset {
  9373. v1 = uint32(offset)
  9374. } else {
  9375. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  9376. }
  9377. n = v1
  9378. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  9379. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  9380. p2 = state + 16
  9381. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  9382. offset = int32(uint32(offset) - n)
  9383. }
  9384. /* request skip (if not zero) */
  9385. if offset != 0 {
  9386. (*Tgz_state)(unsafe.Pointer(state)).Fseek = int32(1)
  9387. (*Tgz_state)(unsafe.Pointer(state)).Fskip = offset
  9388. }
  9389. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + offset
  9390. }
  9391. // C documentation
  9392. //
  9393. // /* -- see zlib.h -- */
  9394. func Xgzseek(tls *libc.TLS, file TgzFile, offset int32, whence int32) (r int32) {
  9395. var ret, v1 int32
  9396. _, _ = ret, v1
  9397. ret = Xgzseek64(tls, file, offset, whence)
  9398. if ret == ret {
  9399. v1 = ret
  9400. } else {
  9401. v1 = -int32(1)
  9402. }
  9403. return v1
  9404. }
  9405. // C documentation
  9406. //
  9407. // /* -- see zlib.h -- */
  9408. func Xgztell64(tls *libc.TLS, file TgzFile) (r int32) {
  9409. var state Tgz_statep
  9410. var v1 int32
  9411. _, _ = state, v1
  9412. /* get internal structure and check integrity */
  9413. if file == libc.UintptrFromInt32(0) {
  9414. return -int32(1)
  9415. }
  9416. state = file
  9417. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  9418. return -int32(1)
  9419. }
  9420. /* return position */
  9421. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  9422. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fskip
  9423. } else {
  9424. v1 = 0
  9425. }
  9426. return (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos + v1
  9427. }
  9428. // C documentation
  9429. //
  9430. // /* -- see zlib.h -- */
  9431. func Xgztell(tls *libc.TLS, file TgzFile) (r int32) {
  9432. var ret, v1 int32
  9433. _, _ = ret, v1
  9434. ret = Xgztell64(tls, file)
  9435. if ret == ret {
  9436. v1 = ret
  9437. } else {
  9438. v1 = -int32(1)
  9439. }
  9440. return v1
  9441. }
  9442. // C documentation
  9443. //
  9444. // /* -- see zlib.h -- */
  9445. func Xgzoffset64(tls *libc.TLS, file TgzFile) (r int32) {
  9446. var offset int32
  9447. var state Tgz_statep
  9448. _, _ = offset, state
  9449. /* get internal structure and check integrity */
  9450. if file == libc.UintptrFromInt32(0) {
  9451. return -int32(1)
  9452. }
  9453. state = file
  9454. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  9455. return -int32(1)
  9456. }
  9457. /* compute and return effective offset in file */
  9458. offset = int32(libc.X_lseeki64(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, 0, int32(m_SEEK_CUR)))
  9459. if offset == -int32(1) {
  9460. return -int32(1)
  9461. }
  9462. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) { /* reading */
  9463. offset = int32(uint32(offset) - (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)
  9464. } /* don't count buffered input */
  9465. return offset
  9466. }
  9467. // C documentation
  9468. //
  9469. // /* -- see zlib.h -- */
  9470. func Xgzoffset(tls *libc.TLS, file TgzFile) (r int32) {
  9471. var ret, v1 int32
  9472. _, _ = ret, v1
  9473. ret = Xgzoffset64(tls, file)
  9474. if ret == ret {
  9475. v1 = ret
  9476. } else {
  9477. v1 = -int32(1)
  9478. }
  9479. return v1
  9480. }
  9481. // C documentation
  9482. //
  9483. // /* -- see zlib.h -- */
  9484. func Xgzeof(tls *libc.TLS, file TgzFile) (r int32) {
  9485. var state Tgz_statep
  9486. var v1 int32
  9487. _, _ = state, v1
  9488. /* get internal structure and check integrity */
  9489. if file == libc.UintptrFromInt32(0) {
  9490. return 0
  9491. }
  9492. state = file
  9493. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  9494. return 0
  9495. }
  9496. /* return end-of-file state */
  9497. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  9498. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fpast
  9499. } else {
  9500. v1 = 0
  9501. }
  9502. return v1
  9503. }
  9504. // C documentation
  9505. //
  9506. // /* -- see zlib.h -- */
  9507. func Xgzerror(tls *libc.TLS, file TgzFile, errnum uintptr) (r uintptr) {
  9508. var state Tgz_statep
  9509. var v1, v2 uintptr
  9510. _, _, _ = state, v1, v2
  9511. /* get internal structure and check integrity */
  9512. if file == libc.UintptrFromInt32(0) {
  9513. return libc.UintptrFromInt32(0)
  9514. }
  9515. state = file
  9516. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  9517. return libc.UintptrFromInt32(0)
  9518. }
  9519. /* return error information */
  9520. if errnum != libc.UintptrFromInt32(0) {
  9521. *(*int32)(unsafe.Pointer(errnum)) = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  9522. }
  9523. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(4) {
  9524. v1 = __ccgo_ts + 17
  9525. } else {
  9526. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg == libc.UintptrFromInt32(0) {
  9527. v2 = __ccgo_ts + 31
  9528. } else {
  9529. v2 = (*Tgz_state)(unsafe.Pointer(state)).Fmsg
  9530. }
  9531. v1 = v2
  9532. }
  9533. return v1
  9534. }
  9535. // C documentation
  9536. //
  9537. // /* -- see zlib.h -- */
  9538. func Xgzclearerr(tls *libc.TLS, file TgzFile) {
  9539. var state Tgz_statep
  9540. _ = state
  9541. /* get internal structure and check integrity */
  9542. if file == libc.UintptrFromInt32(0) {
  9543. return
  9544. }
  9545. state = file
  9546. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  9547. return
  9548. }
  9549. /* clear error and end-of-file */
  9550. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) {
  9551. (*Tgz_state)(unsafe.Pointer(state)).Feof = 0
  9552. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  9553. }
  9554. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  9555. }
  9556. // C documentation
  9557. //
  9558. // /* Create an error message in allocated memory and set state->err and
  9559. // state->msg accordingly. Free any previous error message already there. Do
  9560. // not try to free or allocate space if the error is Z_MEM_ERROR (out of
  9561. // memory). Simply save the error message as a static string. If there is an
  9562. // allocation failure constructing the error message, then convert the error to
  9563. // out of memory. */
  9564. func Xgz_error(tls *libc.TLS, state Tgz_statep, err int32, msg uintptr) {
  9565. bp := tls.Alloc(32)
  9566. defer tls.Free(32)
  9567. var v1 uintptr
  9568. _ = v1
  9569. /* free previously allocated message and clear */
  9570. if (*Tgz_state)(unsafe.Pointer(state)).Fmsg != libc.UintptrFromInt32(0) {
  9571. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(4) {
  9572. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg)
  9573. }
  9574. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = libc.UintptrFromInt32(0)
  9575. }
  9576. /* if fatal, set state->x.have to 0 so that the gzgetc() macro fails */
  9577. if err != m_Z_OK && err != -int32(5) {
  9578. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  9579. }
  9580. /* set error code, and if no message, then done */
  9581. (*Tgz_state)(unsafe.Pointer(state)).Ferr = err
  9582. if msg == libc.UintptrFromInt32(0) {
  9583. return
  9584. }
  9585. /* for an out of memory error, return literal string when requested */
  9586. if err == -int32(4) {
  9587. return
  9588. }
  9589. /* construct error message with path */
  9590. v1 = libc.Xmalloc(tls, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3))
  9591. (*Tgz_state)(unsafe.Pointer(state)).Fmsg = v1
  9592. if v1 == libc.UintptrFromInt32(0) {
  9593. (*Tgz_state)(unsafe.Pointer(state)).Ferr = -int32(4)
  9594. return
  9595. }
  9596. libc.X__builtin_snprintf(tls, (*Tgz_state)(unsafe.Pointer(state)).Fmsg, libc.Xstrlen(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)+libc.Xstrlen(tls, msg)+uint64(3), __ccgo_ts+32, libc.VaList(bp+8, (*Tgz_state)(unsafe.Pointer(state)).Fpath, __ccgo_ts+39, msg))
  9597. }
  9598. // C documentation
  9599. //
  9600. // /* portably return maximum value for an int (when limits.h presumed not
  9601. // available) -- we need to do this to cover cases where 2's complement not
  9602. // used, since C standard permits 1's complement and sign-bit representations,
  9603. // otherwise we could just use ((unsigned)-1) >> 1 */
  9604. func Xgz_intmax(tls *libc.TLS) (r uint32) {
  9605. return uint32(m___INT_MAX__1)
  9606. }
  9607. const m__O_APPEND2 = 0x0008
  9608. const m__O_BINARY2 = 0x8000
  9609. const m__O_CREAT2 = 0x0100
  9610. const m__O_EXCL2 = 0x0400
  9611. const m__O_RDONLY2 = 0x0000
  9612. const m__O_TRUNC2 = 0x0200
  9613. const m__O_WRONLY2 = 0x0001
  9614. const m___INT_MAX__2 = 0x7fffffff
  9615. // C documentation
  9616. //
  9617. // /* Use read() to load a buffer -- return -1 on error, otherwise 0. Read from
  9618. // state->fd, and update state->eof, state->err, and state->msg as appropriate.
  9619. // This function needs to loop on read(), since read() is not guaranteed to
  9620. // read the number of bytes requested, depending on the type of descriptor. */
  9621. func _gz_load(tls *libc.TLS, state Tgz_statep, buf uintptr, len1 uint32, have uintptr) (r int32) {
  9622. var get, max uint32
  9623. var ret int32
  9624. _, _, _ = get, max, ret
  9625. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  9626. *(*uint32)(unsafe.Pointer(have)) = uint32(0)
  9627. for cond := true; cond; cond = *(*uint32)(unsafe.Pointer(have)) < len1 {
  9628. get = len1 - *(*uint32)(unsafe.Pointer(have))
  9629. if get > max {
  9630. get = max
  9631. }
  9632. ret = libc.Xread(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, buf+uintptr(*(*uint32)(unsafe.Pointer(have))), get)
  9633. if ret <= 0 {
  9634. break
  9635. }
  9636. *(*uint32)(unsafe.Pointer(have)) += uint32(ret)
  9637. }
  9638. if ret < 0 {
  9639. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X_errno(tls)))))
  9640. return -int32(1)
  9641. }
  9642. if ret == 0 {
  9643. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  9644. }
  9645. return 0
  9646. }
  9647. // C documentation
  9648. //
  9649. // /* Load up input buffer and set eof flag if last data loaded -- return -1 on
  9650. // error, 0 otherwise. Note that the eof flag is set when the end of the input
  9651. // file is reached, even though there may be unused data in the buffer. Once
  9652. // that data has been used, no more attempts will be made to read the file.
  9653. // If strm->avail_in != 0, then the current data is moved to the beginning of
  9654. // the input buffer, and then the remainder of the buffer is loaded with the
  9655. // available data from the input file. */
  9656. func _gz_avail(tls *libc.TLS, state Tgz_statep) (r int32) {
  9657. bp := tls.Alloc(16)
  9658. defer tls.Free(16)
  9659. var n, v1 uint32
  9660. var p, q, v3, v4 uintptr
  9661. var strm Tz_streamp
  9662. var _ /* got at bp+0 */ uint32
  9663. _, _, _, _, _, _, _ = n, p, q, strm, v1, v3, v4
  9664. strm = state + 120
  9665. if (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  9666. return -int32(1)
  9667. }
  9668. if (*Tgz_state)(unsafe.Pointer(state)).Feof == 0 {
  9669. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 { /* copy what's there to the start */
  9670. p = (*Tgz_state)(unsafe.Pointer(state)).Fin
  9671. q = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  9672. n = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9673. for {
  9674. v3 = p
  9675. p++
  9676. v4 = q
  9677. q++
  9678. *(*uint8)(unsafe.Pointer(v3)) = *(*uint8)(unsafe.Pointer(v4))
  9679. goto _2
  9680. _2:
  9681. ;
  9682. n--
  9683. v1 = n
  9684. if !(v1 != 0) {
  9685. break
  9686. }
  9687. }
  9688. }
  9689. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in), (*Tgz_state)(unsafe.Pointer(state)).Fsize-(*Tz_stream)(unsafe.Pointer(strm)).Favail_in, bp) == -int32(1) {
  9690. return -int32(1)
  9691. }
  9692. *(*TuInt)(unsafe.Pointer(strm + 8)) += *(*uint32)(unsafe.Pointer(bp))
  9693. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  9694. }
  9695. return 0
  9696. }
  9697. // C documentation
  9698. //
  9699. // /* Look for gzip header, set up for inflate or copy. state->x.have must be 0.
  9700. // If this is the first time in, allocate required memory. state->how will be
  9701. // left unchanged if there is no more input data available, will be set to COPY
  9702. // if there is no gzip header and direct copying will be performed, or it will
  9703. // be set to GZIP for decompression. If direct copying, then leftover input
  9704. // data from the input buffer will be copied to the output buffer. In that
  9705. // case, all further file reads will be directly to either the output buffer or
  9706. // a user buffer. If decompressing, the inflate state will be initialized.
  9707. // gz_look() will return 0 on success or -1 on failure. */
  9708. func _gz_look(tls *libc.TLS, state Tgz_statep) (r int32) {
  9709. var strm Tz_streamp
  9710. _ = strm
  9711. strm = state + 120
  9712. /* allocate read buffers and inflate memory */
  9713. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) {
  9714. /* allocate buffers */
  9715. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  9716. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  9717. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) || (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  9718. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  9719. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  9720. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  9721. return -int32(1)
  9722. }
  9723. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  9724. /* allocate inflate memory */
  9725. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzalloc = uintptr(m_Z_NULL)
  9726. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fzfree = uintptr(m_Z_NULL)
  9727. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fopaque = uintptr(m_Z_NULL)
  9728. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = uint32(0)
  9729. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = uintptr(m_Z_NULL)
  9730. if XinflateInit2_(tls, state+120, libc.Int32FromInt32(15)+libc.Int32FromInt32(16), __ccgo_ts, libc.Int32FromInt64(88)) != m_Z_OK { /* gunzip */
  9731. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  9732. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  9733. (*Tgz_state)(unsafe.Pointer(state)).Fsize = uint32(0)
  9734. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  9735. return -int32(1)
  9736. }
  9737. }
  9738. /* get at least the magic bytes in the input buffer */
  9739. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in < uint32(2) {
  9740. if _gz_avail(tls, state) == -int32(1) {
  9741. return -int32(1)
  9742. }
  9743. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  9744. return 0
  9745. }
  9746. }
  9747. /* look for gzip magic bytes -- if there, do gzip decoding (note: there is
  9748. a logical dilemma here when considering the case of a partially written
  9749. gzip file, to wit, if a single 31 byte is written, then we cannot tell
  9750. whether this is a single-byte file, or just a partially written gzip
  9751. file -- for here we assume that if a gzip file is being written, then
  9752. the header will be written in a single operation, so that reading a
  9753. single byte is sufficient indication that it is not a gzip file) */
  9754. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > uint32(1) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in))) == int32(31) && int32(*(*TBytef)(unsafe.Pointer((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in + 1))) == int32(139) {
  9755. XinflateReset(tls, strm)
  9756. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_GZIP)
  9757. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = 0
  9758. return 0
  9759. }
  9760. /* no gzip header -- if we were decoding gzip before, then this is trailing
  9761. garbage. Ignore the trailing garbage and finish. */
  9762. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect == 0 {
  9763. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  9764. (*Tgz_state)(unsafe.Pointer(state)).Feof = int32(1)
  9765. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  9766. return 0
  9767. }
  9768. /* doing raw i/o, copy any leftover input to output -- this assumes that
  9769. the output buffer is larger than the input buffer, which also assures
  9770. space for gzungetc() */
  9771. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  9772. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, uint64((*Tz_stream)(unsafe.Pointer(strm)).Favail_in))
  9773. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  9774. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(0)
  9775. (*Tgz_state)(unsafe.Pointer(state)).Fhow = int32(m_COPY)
  9776. (*Tgz_state)(unsafe.Pointer(state)).Fdirect = int32(1)
  9777. return 0
  9778. }
  9779. // C documentation
  9780. //
  9781. // /* Decompress from input to the provided next_out and avail_out in the state.
  9782. // On return, state->x.have and state->x.next point to the just decompressed
  9783. // data. If the gzip stream completes, state->how is reset to LOOK to look for
  9784. // the next gzip stream or raw data, once state->x.have is depleted. Returns 0
  9785. // on success, -1 on failure. */
  9786. func _gz_decomp(tls *libc.TLS, state Tgz_statep) (r int32) {
  9787. var had uint32
  9788. var ret int32
  9789. var strm Tz_streamp
  9790. var v1 uintptr
  9791. _, _, _, _ = had, ret, strm, v1
  9792. ret = m_Z_OK
  9793. strm = state + 120
  9794. /* fill output buffer up to end of deflate stream */
  9795. had = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  9796. for cond := true; cond; cond = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out != 0 && ret != int32(m_Z_STREAM_END) {
  9797. /* get more input for inflate() */
  9798. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && _gz_avail(tls, state) == -int32(1) {
  9799. return -int32(1)
  9800. }
  9801. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  9802. Xgz_error(tls, state, -int32(5), __ccgo_ts+42)
  9803. break
  9804. }
  9805. /* decompress and handle errors */
  9806. ret = Xinflate(tls, strm, m_Z_NO_FLUSH)
  9807. if ret == -int32(2) || ret == int32(m_Z_NEED_DICT) {
  9808. Xgz_error(tls, state, -int32(2), __ccgo_ts+65)
  9809. return -int32(1)
  9810. }
  9811. if ret == -int32(4) {
  9812. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  9813. return -int32(1)
  9814. }
  9815. if ret == -int32(3) { /* deflate stream invalid */
  9816. if (*Tz_stream)(unsafe.Pointer(strm)).Fmsg == libc.UintptrFromInt32(0) {
  9817. v1 = __ccgo_ts + 104
  9818. } else {
  9819. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Fmsg
  9820. }
  9821. Xgz_error(tls, state, -int32(3), v1)
  9822. return -int32(1)
  9823. }
  9824. }
  9825. /* update available output */
  9826. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = had - (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  9827. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out - uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  9828. /* if the gzip stream completed successfully, look for another */
  9829. if ret == int32(m_Z_STREAM_END) {
  9830. (*Tgz_state)(unsafe.Pointer(state)).Fhow = m_LOOK
  9831. }
  9832. /* good decompression */
  9833. return 0
  9834. }
  9835. // C documentation
  9836. //
  9837. // /* Fetch data and put it in the output buffer. Assumes state->x.have is 0.
  9838. // Data is either copied from the input file or decompressed from the input
  9839. // file depending on state->how. If state->how is LOOK, then a gzip header is
  9840. // looked for to determine whether to copy or decompress. Returns -1 on error,
  9841. // otherwise 0. gz_fetch() will leave state->how as COPY or GZIP unless the
  9842. // end of the input file has been reached and all data has been processed. */
  9843. func _gz_fetch(tls *libc.TLS, state Tgz_statep) (r int32) {
  9844. var strm Tz_streamp
  9845. _ = strm
  9846. strm = state + 120
  9847. for cond := true; cond; cond = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && (!((*Tgz_state)(unsafe.Pointer(state)).Feof != 0) || (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0) {
  9848. switch (*Tgz_state)(unsafe.Pointer(state)).Fhow {
  9849. case m_LOOK: /* -> LOOK, COPY (only if never GZIP), or GZIP */
  9850. if _gz_look(tls, state) == -int32(1) {
  9851. return -int32(1)
  9852. }
  9853. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK {
  9854. return 0
  9855. }
  9856. case int32(m_COPY): /* -> COPY */
  9857. if _gz_load(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fout, (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1), state) == -int32(1) {
  9858. return -int32(1)
  9859. }
  9860. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  9861. return 0
  9862. case int32(m_GZIP): /* -> GZIP or LOOK (if end of gzip stream) */
  9863. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize << int32(1)
  9864. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  9865. if _gz_decomp(tls, state) == -int32(1) {
  9866. return -int32(1)
  9867. }
  9868. }
  9869. }
  9870. return 0
  9871. }
  9872. // C documentation
  9873. //
  9874. // /* Skip len uncompressed bytes of output. Return -1 on error, 0 on success. */
  9875. func _gz_skip(tls *libc.TLS, state Tgz_statep, len1 int32) (r int32) {
  9876. var n, v1 uint32
  9877. var p2 uintptr
  9878. _, _, _ = n, v1, p2
  9879. /* skip over len bytes or reach end-of-file, whichever comes first */
  9880. for len1 != 0 {
  9881. /* skip over whatever is in output buffer */
  9882. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  9883. if libc.Bool(uint64(4) == uint64(4)) && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > Xgz_intmax(tls) || int32((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave) > len1 {
  9884. v1 = uint32(len1)
  9885. } else {
  9886. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  9887. }
  9888. n = v1
  9889. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  9890. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  9891. p2 = state + 16
  9892. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  9893. len1 = int32(uint32(len1) - n)
  9894. } else {
  9895. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  9896. break
  9897. } else {
  9898. /* get more output, looking for header if required */
  9899. if _gz_fetch(tls, state) == -int32(1) {
  9900. return -int32(1)
  9901. }
  9902. }
  9903. }
  9904. }
  9905. return 0
  9906. }
  9907. // C documentation
  9908. //
  9909. // /* Read len bytes into buf from file, or less than len up to the end of the
  9910. // input. Return the number of bytes read. If zero is returned, either the
  9911. // end of file was reached, or there was an error. state->err must be
  9912. // consulted in that case to determine which. */
  9913. func _gz_read(tls *libc.TLS, state Tgz_statep, buf Tvoidp, len1 Tz_size_t) (r Tz_size_t) {
  9914. bp := tls.Alloc(16)
  9915. defer tls.Free(16)
  9916. var got Tz_size_t
  9917. var p1 uintptr
  9918. var _ /* n at bp+0 */ uint32
  9919. _, _ = got, p1
  9920. /* if len is zero, avoid unnecessary operations */
  9921. if len1 == uint64(0) {
  9922. return uint64(0)
  9923. }
  9924. /* process a skip request */
  9925. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  9926. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  9927. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  9928. return uint64(0)
  9929. }
  9930. }
  9931. /* get len bytes to buf, or less than len if at the end */
  9932. got = uint64(0)
  9933. for cond := true; cond; cond = len1 != 0 {
  9934. /* set n to the maximum amount of len that fits in an unsigned int */
  9935. *(*uint32)(unsafe.Pointer(bp)) = uint32(-libc.Int32FromInt32(1))
  9936. if uint64(*(*uint32)(unsafe.Pointer(bp))) > len1 {
  9937. *(*uint32)(unsafe.Pointer(bp)) = uint32(len1)
  9938. }
  9939. /* first just try copying data from the output buffer */
  9940. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  9941. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave < *(*uint32)(unsafe.Pointer(bp)) {
  9942. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  9943. }
  9944. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(*(*uint32)(unsafe.Pointer(bp))))
  9945. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(*(*uint32)(unsafe.Pointer(bp)))
  9946. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= *(*uint32)(unsafe.Pointer(bp))
  9947. } else {
  9948. if (*Tgz_state)(unsafe.Pointer(state)).Feof != 0 && (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  9949. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* tried to read past end */
  9950. break
  9951. } else {
  9952. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK || *(*uint32)(unsafe.Pointer(bp)) < (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  9953. /* get more output, looking for header if required */
  9954. if _gz_fetch(tls, state) == -int32(1) {
  9955. return uint64(0)
  9956. }
  9957. continue /* no progress yet -- go back to copy above */
  9958. /* the copy above assures that we will leave with space in the
  9959. output buffer, allowing at least one gzungetc() to succeed */
  9960. } else {
  9961. if (*Tgz_state)(unsafe.Pointer(state)).Fhow == int32(m_COPY) { /* read directly */
  9962. if _gz_load(tls, state, buf, *(*uint32)(unsafe.Pointer(bp)), bp) == -int32(1) {
  9963. return uint64(0)
  9964. }
  9965. } else { /* state->how == GZIP */
  9966. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_out = *(*uint32)(unsafe.Pointer(bp))
  9967. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_out = buf
  9968. if _gz_decomp(tls, state) == -int32(1) {
  9969. return uint64(0)
  9970. }
  9971. *(*uint32)(unsafe.Pointer(bp)) = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  9972. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(0)
  9973. }
  9974. }
  9975. }
  9976. }
  9977. /* update progress */
  9978. len1 -= uint64(*(*uint32)(unsafe.Pointer(bp)))
  9979. buf = buf + uintptr(*(*uint32)(unsafe.Pointer(bp)))
  9980. got += uint64(*(*uint32)(unsafe.Pointer(bp)))
  9981. p1 = state + 16
  9982. *(*int32)(unsafe.Pointer(p1)) = int32(uint32(*(*int32)(unsafe.Pointer(p1))) + *(*uint32)(unsafe.Pointer(bp)))
  9983. }
  9984. /* return number of bytes read into user buffer */
  9985. return got
  9986. }
  9987. // C documentation
  9988. //
  9989. // /* -- see zlib.h -- */
  9990. func Xgzread(tls *libc.TLS, file TgzFile, buf Tvoidp, len1 uint32) (r int32) {
  9991. var state Tgz_statep
  9992. _ = state
  9993. /* get internal structure */
  9994. if file == libc.UintptrFromInt32(0) {
  9995. return -int32(1)
  9996. }
  9997. state = file
  9998. /* check that we're reading and that there's no (serious) error */
  9999. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  10000. return -int32(1)
  10001. }
  10002. /* since an int is returned, make sure len fits in one, otherwise return
  10003. with an error (this avoids a flaw in the interface) */
  10004. if int32(len1) < 0 {
  10005. Xgz_error(tls, state, -int32(2), __ccgo_ts+126)
  10006. return -int32(1)
  10007. }
  10008. /* read len or fewer bytes to buf */
  10009. len1 = uint32(_gz_read(tls, state, buf, uint64(len1)))
  10010. /* check for an error */
  10011. if len1 == uint32(0) && (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  10012. return -int32(1)
  10013. }
  10014. /* return the number of bytes read (this is assured to fit in an int) */
  10015. return int32(len1)
  10016. }
  10017. // C documentation
  10018. //
  10019. // /* -- see zlib.h -- */
  10020. func Xgzfread(tls *libc.TLS, buf Tvoidp, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  10021. var len1 Tz_size_t
  10022. var state Tgz_statep
  10023. var v1 uint64
  10024. _, _, _ = len1, state, v1
  10025. /* get internal structure */
  10026. if file == libc.UintptrFromInt32(0) {
  10027. return uint64(0)
  10028. }
  10029. state = file
  10030. /* check that we're reading and that there's no (serious) error */
  10031. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  10032. return uint64(0)
  10033. }
  10034. /* compute bytes to read -- error on overflow */
  10035. len1 = nitems * size
  10036. if size != 0 && len1/size != nitems {
  10037. Xgz_error(tls, state, -int32(2), __ccgo_ts+157)
  10038. return uint64(0)
  10039. }
  10040. /* read len or fewer bytes to buf, return the number of full items read */
  10041. if len1 != 0 {
  10042. v1 = _gz_read(tls, state, buf, len1) / size
  10043. } else {
  10044. v1 = uint64(0)
  10045. }
  10046. return v1
  10047. }
  10048. // C documentation
  10049. //
  10050. // /* -- see zlib.h -- */
  10051. func Xgzgetc(tls *libc.TLS, file TgzFile) (r int32) {
  10052. bp := tls.Alloc(16)
  10053. defer tls.Free(16)
  10054. var state Tgz_statep
  10055. var v1, v2 uintptr
  10056. var v3 int32
  10057. var _ /* buf at bp+0 */ [1]uint8
  10058. _, _, _, _ = state, v1, v2, v3
  10059. /* get internal structure */
  10060. if file == libc.UintptrFromInt32(0) {
  10061. return -int32(1)
  10062. }
  10063. state = file
  10064. /* check that we're reading and that there's no (serious) error */
  10065. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  10066. return -int32(1)
  10067. }
  10068. /* try output buffer (no need to check for skip request) */
  10069. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave != 0 {
  10070. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave--
  10071. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  10072. v2 = state + 8
  10073. v1 = *(*uintptr)(unsafe.Pointer(v2))
  10074. *(*uintptr)(unsafe.Pointer(v2))++
  10075. return int32(*(*uint8)(unsafe.Pointer(v1)))
  10076. }
  10077. /* nothing there -- try gz_read() */
  10078. if _gz_read(tls, state, bp, uint64(1)) < uint64(1) {
  10079. v3 = -int32(1)
  10080. } else {
  10081. v3 = int32((*(*[1]uint8)(unsafe.Pointer(bp)))[0])
  10082. }
  10083. return v3
  10084. }
  10085. func Xgzgetc_(tls *libc.TLS, file TgzFile) (r int32) {
  10086. return Xgzgetc(tls, file)
  10087. }
  10088. // C documentation
  10089. //
  10090. // /* -- see zlib.h -- */
  10091. func Xgzungetc(tls *libc.TLS, c int32, file TgzFile) (r int32) {
  10092. var dest, src, v1, v2 uintptr
  10093. var state Tgz_statep
  10094. _, _, _, _, _ = dest, src, state, v1, v2
  10095. /* get internal structure */
  10096. if file == libc.UintptrFromInt32(0) {
  10097. return -int32(1)
  10098. }
  10099. state = file
  10100. /* in case this was just opened, set up the input buffer */
  10101. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  10102. _gz_look(tls, state)
  10103. }
  10104. /* check that we're reading and that there's no (serious) error */
  10105. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  10106. return -int32(1)
  10107. }
  10108. /* process a skip request */
  10109. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10110. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10111. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10112. return -int32(1)
  10113. }
  10114. }
  10115. /* can't push EOF */
  10116. if c < 0 {
  10117. return -int32(1)
  10118. }
  10119. /* if output buffer empty, put byte at end (allows more pushing) */
  10120. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  10121. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave = uint32(1)
  10122. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1)) - uintptr(1)
  10123. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  10124. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  10125. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  10126. return c
  10127. }
  10128. /* if no room, give up (must have already done a gzungetc()) */
  10129. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == (*Tgz_state)(unsafe.Pointer(state)).Fsize<<int32(1) {
  10130. Xgz_error(tls, state, -int32(3), __ccgo_ts+190)
  10131. return -int32(1)
  10132. }
  10133. /* slide output data if needed and insert byte before existing data */
  10134. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext == (*Tgz_state)(unsafe.Pointer(state)).Fout {
  10135. src = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave)
  10136. dest = (*Tgz_state)(unsafe.Pointer(state)).Fout + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize<<libc.Int32FromInt32(1))
  10137. for src > (*Tgz_state)(unsafe.Pointer(state)).Fout {
  10138. dest--
  10139. v1 = dest
  10140. src--
  10141. v2 = src
  10142. *(*uint8)(unsafe.Pointer(v1)) = *(*uint8)(unsafe.Pointer(v2))
  10143. }
  10144. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = dest
  10145. }
  10146. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave++
  10147. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext--
  10148. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) = uint8(c)
  10149. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos--
  10150. (*Tgz_state)(unsafe.Pointer(state)).Fpast = 0
  10151. return c
  10152. }
  10153. // C documentation
  10154. //
  10155. // /* -- see zlib.h -- */
  10156. func Xgzgets(tls *libc.TLS, file TgzFile, buf uintptr, len1 int32) (r uintptr) {
  10157. var eol, str, p2 uintptr
  10158. var left, n, v1 uint32
  10159. var state Tgz_statep
  10160. _, _, _, _, _, _, _ = eol, left, n, state, str, v1, p2
  10161. /* check parameters and get internal structure */
  10162. if file == libc.UintptrFromInt32(0) || buf == libc.UintptrFromInt32(0) || len1 < int32(1) {
  10163. return libc.UintptrFromInt32(0)
  10164. }
  10165. state = file
  10166. /* check that we're reading and that there's no (serious) error */
  10167. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK && (*Tgz_state)(unsafe.Pointer(state)).Ferr != -int32(5) {
  10168. return libc.UintptrFromInt32(0)
  10169. }
  10170. /* process a skip request */
  10171. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10172. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10173. if _gz_skip(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10174. return libc.UintptrFromInt32(0)
  10175. }
  10176. }
  10177. /* copy output bytes up to new line or len - 1, whichever comes first --
  10178. append a terminating zero to the string (we don't check for a zero in
  10179. the contents, let the user worry about that) */
  10180. str = buf
  10181. left = uint32(len1) - uint32(1)
  10182. if left != 0 {
  10183. for cond := true; cond; cond = left != 0 && eol == libc.UintptrFromInt32(0) {
  10184. /* assure that something is in the output buffer */
  10185. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) && _gz_fetch(tls, state) == -int32(1) {
  10186. return libc.UintptrFromInt32(0)
  10187. } /* error */
  10188. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) { /* end of file */
  10189. (*Tgz_state)(unsafe.Pointer(state)).Fpast = int32(1) /* read past end */
  10190. break /* return what we have */
  10191. }
  10192. /* look for end-of-line in current output buffer */
  10193. if (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave > left {
  10194. v1 = left
  10195. } else {
  10196. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave
  10197. }
  10198. n = v1
  10199. eol = libc.Xmemchr(tls, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, int32('\n'), uint64(n))
  10200. if eol != libc.UintptrFromInt32(0) {
  10201. n = uint32(int64(eol)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext)) + uint32(1)
  10202. }
  10203. /* copy through end-of-line, or remainder if not found */
  10204. libc.Xmemcpy(tls, buf, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, uint64(n))
  10205. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave -= n
  10206. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(n)
  10207. p2 = state + 16
  10208. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  10209. left -= n
  10210. buf += uintptr(n)
  10211. }
  10212. }
  10213. /* return terminated string, or if nothing, end of file */
  10214. if buf == str {
  10215. return libc.UintptrFromInt32(0)
  10216. }
  10217. *(*int8)(unsafe.Pointer(buf)) = 0
  10218. return str
  10219. }
  10220. // C documentation
  10221. //
  10222. // /* -- see zlib.h -- */
  10223. func Xgzdirect(tls *libc.TLS, file TgzFile) (r int32) {
  10224. var state Tgz_statep
  10225. _ = state
  10226. /* get internal structure */
  10227. if file == libc.UintptrFromInt32(0) {
  10228. return 0
  10229. }
  10230. state = file
  10231. /* if the state is not known, but we can find out, then do so (this is
  10232. mainly for right after a gzopen() or gzdopen()) */
  10233. if (*Tgz_state)(unsafe.Pointer(state)).Fmode == int32(m_GZ_READ) && (*Tgz_state)(unsafe.Pointer(state)).Fhow == m_LOOK && (*Tgz_state)(unsafe.Pointer(state)).Fx.Fhave == uint32(0) {
  10234. _gz_look(tls, state)
  10235. }
  10236. /* return 1 if transparent, 0 if processing a gzip stream */
  10237. return (*Tgz_state)(unsafe.Pointer(state)).Fdirect
  10238. }
  10239. // C documentation
  10240. //
  10241. // /* -- see zlib.h -- */
  10242. func Xgzclose_r(tls *libc.TLS, file TgzFile) (r int32) {
  10243. var err, ret, v1, v2 int32
  10244. var state Tgz_statep
  10245. _, _, _, _, _ = err, ret, state, v1, v2
  10246. /* get internal structure */
  10247. if file == libc.UintptrFromInt32(0) {
  10248. return -int32(2)
  10249. }
  10250. state = file
  10251. /* check that we're reading */
  10252. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_READ) {
  10253. return -int32(2)
  10254. }
  10255. /* free memory and close file */
  10256. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  10257. XinflateEnd(tls, state+120)
  10258. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  10259. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  10260. }
  10261. if (*Tgz_state)(unsafe.Pointer(state)).Ferr == -int32(5) {
  10262. v1 = -int32(5)
  10263. } else {
  10264. v1 = m_Z_OK
  10265. }
  10266. err = v1
  10267. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  10268. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  10269. ret = libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd)
  10270. libc.Xfree(tls, state)
  10271. if ret != 0 {
  10272. v2 = -int32(1)
  10273. } else {
  10274. v2 = err
  10275. }
  10276. return v2
  10277. }
  10278. // C documentation
  10279. //
  10280. // /* Initialize state for writing a gzip file. Mark initialization by setting
  10281. // state->size to non-zero. Return -1 on a memory allocation failure, or 0 on
  10282. // success. */
  10283. func _gz_init(tls *libc.TLS, state Tgz_statep) (r int32) {
  10284. var ret int32
  10285. var strm Tz_streamp
  10286. _, _ = ret, strm
  10287. strm = state + 120
  10288. /* allocate input buffer (double size for gzprintf) */
  10289. (*Tgz_state)(unsafe.Pointer(state)).Fin = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant<<int32(1)))
  10290. if (*Tgz_state)(unsafe.Pointer(state)).Fin == libc.UintptrFromInt32(0) {
  10291. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  10292. return -int32(1)
  10293. }
  10294. /* only need output buffer and deflate state if compressing */
  10295. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  10296. /* allocate output buffer */
  10297. (*Tgz_state)(unsafe.Pointer(state)).Fout = libc.Xmalloc(tls, uint64((*Tgz_state)(unsafe.Pointer(state)).Fwant))
  10298. if (*Tgz_state)(unsafe.Pointer(state)).Fout == libc.UintptrFromInt32(0) {
  10299. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  10300. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  10301. return -int32(1)
  10302. }
  10303. /* allocate deflate memory, set up for gzip compression */
  10304. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = uintptr(m_Z_NULL)
  10305. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = uintptr(m_Z_NULL)
  10306. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = uintptr(m_Z_NULL)
  10307. ret = XdeflateInit2_(tls, strm, (*Tgz_state)(unsafe.Pointer(state)).Flevel, int32(m_Z_DEFLATED), libc.Int32FromInt32(m_MAX_WBITS)+libc.Int32FromInt32(16), int32(m_DEF_MEM_LEVEL), (*Tgz_state)(unsafe.Pointer(state)).Fstrategy, __ccgo_ts, libc.Int32FromInt64(88))
  10308. if ret != m_Z_OK {
  10309. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  10310. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  10311. Xgz_error(tls, state, -int32(4), __ccgo_ts+17)
  10312. return -int32(1)
  10313. }
  10314. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = libc.UintptrFromInt32(0)
  10315. }
  10316. /* mark state as initialized */
  10317. (*Tgz_state)(unsafe.Pointer(state)).Fsize = (*Tgz_state)(unsafe.Pointer(state)).Fwant
  10318. /* initialize write buffer if compressing */
  10319. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  10320. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  10321. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  10322. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  10323. }
  10324. return 0
  10325. }
  10326. // C documentation
  10327. //
  10328. // /* Compress whatever is at avail_in and next_in and write to the output file.
  10329. // Return -1 if there is an error writing to the output file or if gz_init()
  10330. // fails to allocate memory, otherwise 0. flush is assumed to be a valid
  10331. // deflate() flush value. If flush is Z_FINISH, then the deflate() state is
  10332. // reset to start a new gzip stream. If gz->direct is true, then simply write
  10333. // to the output file without compressing, and ignore flush. */
  10334. func _gz_comp(tls *libc.TLS, state Tgz_statep, flush int32) (r int32) {
  10335. var have, max, put, v1, v2 uint32
  10336. var ret, writ int32
  10337. var strm Tz_streamp
  10338. _, _, _, _, _, _, _, _ = have, max, put, ret, strm, writ, v1, v2
  10339. max = uint32(-libc.Int32FromInt32(1))>>libc.Int32FromInt32(2) + libc.Uint32FromInt32(1)
  10340. strm = state + 120
  10341. /* allocate memory if this is the first time through */
  10342. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  10343. return -int32(1)
  10344. }
  10345. /* write directly if requested */
  10346. if (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  10347. for (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 {
  10348. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in > max {
  10349. v1 = max
  10350. } else {
  10351. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  10352. }
  10353. put = v1
  10354. writ = libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, put)
  10355. if writ < 0 {
  10356. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X_errno(tls)))))
  10357. return -int32(1)
  10358. }
  10359. *(*TuInt)(unsafe.Pointer(strm + 8)) -= uint32(writ)
  10360. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(writ)
  10361. }
  10362. return 0
  10363. }
  10364. /* check for a pending reset */
  10365. if (*Tgz_state)(unsafe.Pointer(state)).Freset != 0 {
  10366. /* don't start a new gzip member unless there is data to write */
  10367. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  10368. return 0
  10369. }
  10370. XdeflateReset(tls, strm)
  10371. (*Tgz_state)(unsafe.Pointer(state)).Freset = 0
  10372. }
  10373. /* run deflate() on provided input until it produces no more output */
  10374. ret = m_Z_OK
  10375. for cond := true; cond; cond = have != 0 {
  10376. /* write out current buffer contents if full, or if flushing, but if
  10377. doing Z_FINISH then don't write until we get to Z_STREAM_END */
  10378. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) || flush != m_Z_NO_FLUSH && (flush != int32(m_Z_FINISH) || ret == int32(m_Z_STREAM_END)) {
  10379. for (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out > (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext {
  10380. if int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out)-int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext) > int64(int32(max)) {
  10381. v2 = max
  10382. } else {
  10383. v2 = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_out) - int64((*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext))
  10384. }
  10385. put = v2
  10386. writ = libc.Xwrite(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd, (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext, put)
  10387. if writ < 0 {
  10388. Xgz_error(tls, state, -int32(1), libc.Xstrerror(tls, *(*int32)(unsafe.Pointer(libc.X_errno(tls)))))
  10389. return -int32(1)
  10390. }
  10391. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext += uintptr(writ)
  10392. }
  10393. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_out == uint32(0) {
  10394. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  10395. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = (*Tgz_state)(unsafe.Pointer(state)).Fout
  10396. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fnext = (*Tgz_state)(unsafe.Pointer(state)).Fout
  10397. }
  10398. }
  10399. /* compress */
  10400. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  10401. ret = Xdeflate(tls, strm, flush)
  10402. if ret == -int32(2) {
  10403. Xgz_error(tls, state, -int32(2), __ccgo_ts+221)
  10404. return -int32(1)
  10405. }
  10406. have -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  10407. }
  10408. /* if that completed a deflate stream, allow another to start */
  10409. if flush == int32(m_Z_FINISH) {
  10410. (*Tgz_state)(unsafe.Pointer(state)).Freset = int32(1)
  10411. }
  10412. /* all done, no errors */
  10413. return 0
  10414. }
  10415. // C documentation
  10416. //
  10417. // /* Compress len zeros to output. Return -1 on a write error or memory
  10418. // allocation failure by gz_comp(), or 0 on success. */
  10419. func _gz_zero(tls *libc.TLS, state Tgz_statep, len1 int32) (r int32) {
  10420. var first int32
  10421. var n, v1 uint32
  10422. var strm Tz_streamp
  10423. var p2 uintptr
  10424. _, _, _, _, _ = first, n, strm, v1, p2
  10425. strm = state + 120
  10426. /* consume whatever's left in the input buffer */
  10427. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  10428. return -int32(1)
  10429. }
  10430. /* compress len zeros (len guaranteed > 0) */
  10431. first = int32(1)
  10432. for len1 != 0 {
  10433. if libc.Bool(uint64(4) == uint64(4)) && (*Tgz_state)(unsafe.Pointer(state)).Fsize > Xgz_intmax(tls) || int32((*Tgz_state)(unsafe.Pointer(state)).Fsize) > len1 {
  10434. v1 = uint32(len1)
  10435. } else {
  10436. v1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  10437. }
  10438. n = v1
  10439. if first != 0 {
  10440. libc.Xmemset(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, 0, uint64(n))
  10441. first = 0
  10442. }
  10443. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = n
  10444. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  10445. p2 = state + 16
  10446. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  10447. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  10448. return -int32(1)
  10449. }
  10450. len1 = int32(uint32(len1) - n)
  10451. }
  10452. return 0
  10453. }
  10454. // C documentation
  10455. //
  10456. // /* Write len bytes from buf to file. Return the number of bytes written. If
  10457. // the returned value is less than len, then there was an error. */
  10458. func _gz_write(tls *libc.TLS, state Tgz_statep, buf Tvoidpc, len1 Tz_size_t) (r Tz_size_t) {
  10459. var copy1, have, n uint32
  10460. var put Tz_size_t
  10461. var p1, p2 uintptr
  10462. _, _, _, _, _, _ = copy1, have, n, put, p1, p2
  10463. put = len1
  10464. /* if len is zero, avoid unnecessary operations */
  10465. if len1 == uint64(0) {
  10466. return uint64(0)
  10467. }
  10468. /* allocate memory if this is the first time through */
  10469. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  10470. return uint64(0)
  10471. }
  10472. /* check for seek request */
  10473. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10474. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10475. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10476. return uint64(0)
  10477. }
  10478. }
  10479. /* for small len, copy to input buffer, otherwise compress directly */
  10480. if len1 < uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize) {
  10481. /* copy to input buffer, compress when full */
  10482. for cond := true; cond; cond = len1 != 0 {
  10483. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in == uint32(0) {
  10484. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  10485. }
  10486. have = uint32(int64((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  10487. copy1 = (*Tgz_state)(unsafe.Pointer(state)).Fsize - have
  10488. if uint64(copy1) > len1 {
  10489. copy1 = uint32(len1)
  10490. }
  10491. libc.Xmemcpy(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr(have), buf, uint64(copy1))
  10492. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in += copy1
  10493. p1 = state + 16
  10494. *(*int32)(unsafe.Pointer(p1)) = int32(uint32(*(*int32)(unsafe.Pointer(p1))) + copy1)
  10495. buf = buf + uintptr(copy1)
  10496. len1 -= uint64(copy1)
  10497. if len1 != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  10498. return uint64(0)
  10499. }
  10500. }
  10501. } else {
  10502. /* consume whatever's left in the input buffer */
  10503. if (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in != 0 && _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  10504. return uint64(0)
  10505. }
  10506. /* directly compress user buffer to file */
  10507. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Fnext_in = buf
  10508. for cond := true; cond; cond = len1 != 0 {
  10509. n = uint32(-libc.Int32FromInt32(1))
  10510. if uint64(n) > len1 {
  10511. n = uint32(len1)
  10512. }
  10513. (*Tgz_state)(unsafe.Pointer(state)).Fstrm.Favail_in = n
  10514. p2 = state + 16
  10515. *(*int32)(unsafe.Pointer(p2)) = int32(uint32(*(*int32)(unsafe.Pointer(p2))) + n)
  10516. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  10517. return uint64(0)
  10518. }
  10519. len1 -= uint64(n)
  10520. }
  10521. }
  10522. /* input was all buffered or compressed */
  10523. return put
  10524. }
  10525. // C documentation
  10526. //
  10527. // /* -- see zlib.h -- */
  10528. func Xgzwrite(tls *libc.TLS, file TgzFile, buf Tvoidpc, len1 uint32) (r int32) {
  10529. var state Tgz_statep
  10530. _ = state
  10531. /* get internal structure */
  10532. if file == libc.UintptrFromInt32(0) {
  10533. return 0
  10534. }
  10535. state = file
  10536. /* check that we're writing and that there's no error */
  10537. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  10538. return 0
  10539. }
  10540. /* since an int is returned, make sure len fits in one, otherwise return
  10541. with an error (this avoids a flaw in the interface) */
  10542. if int32(len1) < 0 {
  10543. Xgz_error(tls, state, -int32(3), __ccgo_ts+260)
  10544. return 0
  10545. }
  10546. /* write len bytes from buf (the return value will fit in an int) */
  10547. return int32(_gz_write(tls, state, buf, uint64(len1)))
  10548. }
  10549. // C documentation
  10550. //
  10551. // /* -- see zlib.h -- */
  10552. func Xgzfwrite(tls *libc.TLS, buf Tvoidpc, size Tz_size_t, nitems Tz_size_t, file TgzFile) (r Tz_size_t) {
  10553. var len1 Tz_size_t
  10554. var state Tgz_statep
  10555. var v1 uint64
  10556. _, _, _ = len1, state, v1
  10557. /* get internal structure */
  10558. if file == libc.UintptrFromInt32(0) {
  10559. return uint64(0)
  10560. }
  10561. state = file
  10562. /* check that we're writing and that there's no error */
  10563. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  10564. return uint64(0)
  10565. }
  10566. /* compute bytes to read -- error on overflow */
  10567. len1 = nitems * size
  10568. if size != 0 && len1/size != nitems {
  10569. Xgz_error(tls, state, -int32(2), __ccgo_ts+157)
  10570. return uint64(0)
  10571. }
  10572. /* write len bytes to buf, return the number of full items written */
  10573. if len1 != 0 {
  10574. v1 = _gz_write(tls, state, buf, len1) / size
  10575. } else {
  10576. v1 = uint64(0)
  10577. }
  10578. return v1
  10579. }
  10580. // C documentation
  10581. //
  10582. // /* -- see zlib.h -- */
  10583. func Xgzputc(tls *libc.TLS, file TgzFile, c int32) (r int32) {
  10584. bp := tls.Alloc(16)
  10585. defer tls.Free(16)
  10586. var have uint32
  10587. var state Tgz_statep
  10588. var strm Tz_streamp
  10589. var _ /* buf at bp+0 */ [1]uint8
  10590. _, _, _ = have, state, strm
  10591. /* get internal structure */
  10592. if file == libc.UintptrFromInt32(0) {
  10593. return -int32(1)
  10594. }
  10595. state = file
  10596. strm = state + 120
  10597. /* check that we're writing and that there's no error */
  10598. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  10599. return -int32(1)
  10600. }
  10601. /* check for seek request */
  10602. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10603. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10604. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10605. return -int32(1)
  10606. }
  10607. }
  10608. /* try writing to input buffer for speed (state->size == 0 if buffer not
  10609. initialized) */
  10610. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  10611. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  10612. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  10613. }
  10614. have = uint32(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in+uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)) - int64((*Tgz_state)(unsafe.Pointer(state)).Fin))
  10615. if have < (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  10616. *(*uint8)(unsafe.Pointer((*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(have))) = uint8(c)
  10617. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in++
  10618. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos++
  10619. return c & int32(0xff)
  10620. }
  10621. }
  10622. /* no room in buffer or not initialized, use gz_write() */
  10623. (*(*[1]uint8)(unsafe.Pointer(bp)))[0] = uint8(c)
  10624. if _gz_write(tls, state, bp, uint64(1)) != uint64(1) {
  10625. return -int32(1)
  10626. }
  10627. return c & int32(0xff)
  10628. }
  10629. // C documentation
  10630. //
  10631. // /* -- see zlib.h -- */
  10632. func Xgzputs(tls *libc.TLS, file TgzFile, s uintptr) (r int32) {
  10633. var len1, put Tz_size_t
  10634. var state Tgz_statep
  10635. var v1 int32
  10636. _, _, _, _ = len1, put, state, v1
  10637. /* get internal structure */
  10638. if file == libc.UintptrFromInt32(0) {
  10639. return -int32(1)
  10640. }
  10641. state = file
  10642. /* check that we're writing and that there's no error */
  10643. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  10644. return -int32(1)
  10645. }
  10646. /* write string */
  10647. len1 = libc.Xstrlen(tls, s)
  10648. if int32(len1) < 0 || uint64(uint32(len1)) != len1 {
  10649. Xgz_error(tls, state, -int32(2), __ccgo_ts+297)
  10650. return -int32(1)
  10651. }
  10652. put = _gz_write(tls, state, s, len1)
  10653. if put < len1 {
  10654. v1 = -int32(1)
  10655. } else {
  10656. v1 = int32(len1)
  10657. }
  10658. return v1
  10659. }
  10660. /* Copyright (C) 1989, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  10661. This file is part of GCC.
  10662. GCC is free software; you can redistribute it and/or modify
  10663. it under the terms of the GNU General Public License as published by
  10664. the Free Software Foundation; either version 2, or (at your option)
  10665. any later version.
  10666. GCC is distributed in the hope that it will be useful,
  10667. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10668. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10669. GNU General Public License for more details.
  10670. You should have received a copy of the GNU General Public License
  10671. along with GCC; see the file COPYING. If not, write to
  10672. the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  10673. Boston, MA 02110-1301, USA. */
  10674. /* As a special exception, if you include this header file into source
  10675. files compiled by GCC, this header file does not by itself cause
  10676. the resulting executable to be covered by the GNU General Public
  10677. License. This exception does not however invalidate any other
  10678. reasons why the executable file might be covered by the GNU General
  10679. Public License. */
  10680. /*
  10681. * ISO C Standard: 7.15 Variable arguments <stdarg.h>
  10682. */
  10683. /* include mingw stuff */
  10684. /**
  10685. * This file has no copyright assigned and is placed in the Public Domain.
  10686. * This file is part of the mingw-w64 runtime package.
  10687. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  10688. */
  10689. /* Copyright (C) 1989-2022 Free Software Foundation, Inc.
  10690. This file is part of GCC.
  10691. GCC is free software; you can redistribute it and/or modify
  10692. it under the terms of the GNU General Public License as published by
  10693. the Free Software Foundation; either version 3, or (at your option)
  10694. any later version.
  10695. GCC is distributed in the hope that it will be useful,
  10696. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10697. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10698. GNU General Public License for more details.
  10699. Under Section 7 of GPL version 3, you are granted additional
  10700. permissions described in the GCC Runtime Library Exception, version
  10701. 3.1, as published by the Free Software Foundation.
  10702. You should have received a copy of the GNU General Public License and
  10703. a copy of the GCC Runtime Library Exception along with this program;
  10704. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  10705. <http://www.gnu.org/licenses/>. */
  10706. /*
  10707. * ISO C Standard: 7.15 Variable arguments <stdarg.h>
  10708. */
  10709. // C documentation
  10710. //
  10711. // /* -- see zlib.h -- */
  10712. func Xgzvprintf(tls *libc.TLS, file TgzFile, format uintptr, va Tva_list) (r int32) {
  10713. var left uint32
  10714. var len1 int32
  10715. var next uintptr
  10716. var state Tgz_statep
  10717. var strm Tz_streamp
  10718. _, _, _, _, _ = left, len1, next, state, strm
  10719. /* get internal structure */
  10720. if file == libc.UintptrFromInt32(0) {
  10721. return -int32(2)
  10722. }
  10723. state = file
  10724. strm = state + 120
  10725. /* check that we're writing and that there's no error */
  10726. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  10727. return -int32(2)
  10728. }
  10729. /* make sure we have some buffer space */
  10730. if (*Tgz_state)(unsafe.Pointer(state)).Fsize == uint32(0) && _gz_init(tls, state) == -int32(1) {
  10731. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10732. }
  10733. /* check for seek request */
  10734. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10735. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10736. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10737. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10738. }
  10739. }
  10740. /* do the printf() into the input buffer, put length in len -- the input
  10741. buffer is double-sized just for this function, so there is guaranteed to
  10742. be state->size bytes available after the current contents */
  10743. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) {
  10744. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  10745. }
  10746. next = (*Tgz_state)(unsafe.Pointer(state)).Fin + uintptr(int64((*Tz_stream)(unsafe.Pointer(strm)).Fnext_in)-int64((*Tgz_state)(unsafe.Pointer(state)).Fin)) + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  10747. *(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1)))) = 0
  10748. len1 = libc.X__builtin_vsnprintf(tls, next, uint64((*Tgz_state)(unsafe.Pointer(state)).Fsize), format, va)
  10749. /* check that printf() results fit in buffer */
  10750. if len1 == 0 || uint32(len1) >= (*Tgz_state)(unsafe.Pointer(state)).Fsize || int32(*(*int8)(unsafe.Pointer(next + uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize-uint32(1))))) != 0 {
  10751. return 0
  10752. }
  10753. /* update buffer and position, compress first half if past that */
  10754. *(*TuInt)(unsafe.Pointer(strm + 8)) += uint32(len1)
  10755. (*Tgz_state)(unsafe.Pointer(state)).Fx.Fpos += len1
  10756. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in >= (*Tgz_state)(unsafe.Pointer(state)).Fsize {
  10757. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in - (*Tgz_state)(unsafe.Pointer(state)).Fsize
  10758. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = (*Tgz_state)(unsafe.Pointer(state)).Fsize
  10759. if _gz_comp(tls, state, m_Z_NO_FLUSH) == -int32(1) {
  10760. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10761. }
  10762. libc.Xmemmove(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin, (*Tgz_state)(unsafe.Pointer(state)).Fin+uintptr((*Tgz_state)(unsafe.Pointer(state)).Fsize), uint64(left))
  10763. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = (*Tgz_state)(unsafe.Pointer(state)).Fin
  10764. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = left
  10765. }
  10766. return len1
  10767. }
  10768. func Xgzprintf(tls *libc.TLS, file TgzFile, format uintptr, va1 uintptr) (r int32) {
  10769. var ret int32
  10770. var va Tva_list
  10771. _, _ = ret, va
  10772. va = va1
  10773. ret = Xgzvprintf(tls, file, format, va)
  10774. _ = va
  10775. return ret
  10776. }
  10777. // C documentation
  10778. //
  10779. // /* -- see zlib.h -- */
  10780. func Xgzflush(tls *libc.TLS, file TgzFile, flush int32) (r int32) {
  10781. var state Tgz_statep
  10782. _ = state
  10783. /* get internal structure */
  10784. if file == libc.UintptrFromInt32(0) {
  10785. return -int32(2)
  10786. }
  10787. state = file
  10788. /* check that we're writing and that there's no error */
  10789. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK {
  10790. return -int32(2)
  10791. }
  10792. /* check flush parameter */
  10793. if flush < 0 || flush > int32(m_Z_FINISH) {
  10794. return -int32(2)
  10795. }
  10796. /* check for seek request */
  10797. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10798. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10799. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10800. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10801. }
  10802. }
  10803. /* compress remaining data with requested flush */
  10804. _gz_comp(tls, state, flush)
  10805. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10806. }
  10807. // C documentation
  10808. //
  10809. // /* -- see zlib.h -- */
  10810. func Xgzsetparams(tls *libc.TLS, file TgzFile, level int32, strategy int32) (r int32) {
  10811. var state Tgz_statep
  10812. var strm Tz_streamp
  10813. _, _ = state, strm
  10814. /* get internal structure */
  10815. if file == libc.UintptrFromInt32(0) {
  10816. return -int32(2)
  10817. }
  10818. state = file
  10819. strm = state + 120
  10820. /* check that we're writing and that there's no error */
  10821. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) || (*Tgz_state)(unsafe.Pointer(state)).Ferr != m_Z_OK || (*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0 {
  10822. return -int32(2)
  10823. }
  10824. /* if no change is requested, then do nothing */
  10825. if level == (*Tgz_state)(unsafe.Pointer(state)).Flevel && strategy == (*Tgz_state)(unsafe.Pointer(state)).Fstrategy {
  10826. return m_Z_OK
  10827. }
  10828. /* check for seek request */
  10829. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10830. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10831. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10832. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10833. }
  10834. }
  10835. /* change compression parameters for subsequent input */
  10836. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  10837. /* flush previous input with previous parameters before changing */
  10838. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != 0 && _gz_comp(tls, state, int32(m_Z_BLOCK)) == -int32(1) {
  10839. return (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10840. }
  10841. XdeflateParams(tls, strm, level, strategy)
  10842. }
  10843. (*Tgz_state)(unsafe.Pointer(state)).Flevel = level
  10844. (*Tgz_state)(unsafe.Pointer(state)).Fstrategy = strategy
  10845. return m_Z_OK
  10846. }
  10847. // C documentation
  10848. //
  10849. // /* -- see zlib.h -- */
  10850. func Xgzclose_w(tls *libc.TLS, file TgzFile) (r int32) {
  10851. var ret int32
  10852. var state Tgz_statep
  10853. _, _ = ret, state
  10854. ret = m_Z_OK
  10855. /* get internal structure */
  10856. if file == libc.UintptrFromInt32(0) {
  10857. return -int32(2)
  10858. }
  10859. state = file
  10860. /* check that we're writing */
  10861. if (*Tgz_state)(unsafe.Pointer(state)).Fmode != int32(m_GZ_WRITE) {
  10862. return -int32(2)
  10863. }
  10864. /* check for seek request */
  10865. if (*Tgz_state)(unsafe.Pointer(state)).Fseek != 0 {
  10866. (*Tgz_state)(unsafe.Pointer(state)).Fseek = 0
  10867. if _gz_zero(tls, state, (*Tgz_state)(unsafe.Pointer(state)).Fskip) == -int32(1) {
  10868. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10869. }
  10870. }
  10871. /* flush, free memory, and close file */
  10872. if _gz_comp(tls, state, int32(m_Z_FINISH)) == -int32(1) {
  10873. ret = (*Tgz_state)(unsafe.Pointer(state)).Ferr
  10874. }
  10875. if (*Tgz_state)(unsafe.Pointer(state)).Fsize != 0 {
  10876. if !((*Tgz_state)(unsafe.Pointer(state)).Fdirect != 0) {
  10877. XdeflateEnd(tls, state+120)
  10878. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fout)
  10879. }
  10880. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fin)
  10881. }
  10882. Xgz_error(tls, state, m_Z_OK, libc.UintptrFromInt32(0))
  10883. libc.Xfree(tls, (*Tgz_state)(unsafe.Pointer(state)).Fpath)
  10884. if libc.Xclose(tls, (*Tgz_state)(unsafe.Pointer(state)).Ffd) == -int32(1) {
  10885. ret = -int32(1)
  10886. }
  10887. libc.Xfree(tls, state)
  10888. return ret
  10889. }
  10890. const m_ENOUGH_DISTS = 592
  10891. const m_ENOUGH_LENS = 852
  10892. const m_PRESET_DICT2 = 0x20
  10893. type Tcode = struct {
  10894. Fop uint8
  10895. Fbits uint8
  10896. Fval uint16
  10897. }
  10898. type Tcodetype = int32
  10899. const _CODES = 0
  10900. const _LENS = 1
  10901. const _DISTS = 2
  10902. type Tinflate_mode = int32
  10903. const _HEAD = 16180
  10904. const _FLAGS = 16181
  10905. const _TIME = 16182
  10906. const _OS = 16183
  10907. const _EXLEN = 16184
  10908. const _EXTRA = 16185
  10909. const _NAME = 16186
  10910. const _COMMENT = 16187
  10911. const _HCRC = 16188
  10912. const _DICTID = 16189
  10913. const _DICT = 16190
  10914. const _TYPE = 16191
  10915. const _TYPEDO = 16192
  10916. const _STORED = 16193
  10917. const _COPY_ = 16194
  10918. const _COPY = 16195
  10919. const _TABLE = 16196
  10920. const _LENLENS = 16197
  10921. const _CODELENS = 16198
  10922. const _LEN_ = 16199
  10923. const _LEN = 16200
  10924. const _LENEXT = 16201
  10925. const _DIST = 16202
  10926. const _DISTEXT = 16203
  10927. const _MATCH = 16204
  10928. const _LIT = 16205
  10929. const _CHECK = 16206
  10930. const _LENGTH = 16207
  10931. const _DONE = 16208
  10932. const _BAD = 16209
  10933. const _MEM = 16210
  10934. const _SYNC = 16211
  10935. type Tinflate_state = struct {
  10936. Fstrm Tz_streamp
  10937. Fmode Tinflate_mode
  10938. Flast int32
  10939. Fwrap int32
  10940. Fhavedict int32
  10941. Fflags int32
  10942. Fdmax uint32
  10943. Fcheck uint32
  10944. Ftotal uint32
  10945. Fhead Tgz_headerp
  10946. Fwbits uint32
  10947. Fwsize uint32
  10948. Fwhave uint32
  10949. Fwnext uint32
  10950. Fwindow uintptr
  10951. Fhold uint32
  10952. Fbits uint32
  10953. Flength uint32
  10954. Foffset uint32
  10955. Fextra uint32
  10956. Flencode uintptr
  10957. Fdistcode uintptr
  10958. Flenbits uint32
  10959. Fdistbits uint32
  10960. Fncode uint32
  10961. Fnlen uint32
  10962. Fndist uint32
  10963. Fhave uint32
  10964. Fnext uintptr
  10965. Flens [320]uint16
  10966. Fwork [288]uint16
  10967. Fcodes [1444]Tcode
  10968. Fsane int32
  10969. Fback int32
  10970. Fwas uint32
  10971. }
  10972. // C documentation
  10973. //
  10974. // /*
  10975. // strm provides memory allocation functions in zalloc and zfree, or
  10976. // Z_NULL to use the library memory allocation functions.
  10977. //
  10978. // windowBits is in the range 8..15, and window is a user-supplied
  10979. // window and output buffer that is 2**windowBits bytes.
  10980. // */
  10981. func XinflateBackInit_(tls *libc.TLS, strm Tz_streamp, windowBits int32, window uintptr, version uintptr, stream_size int32) (r int32) {
  10982. var state uintptr
  10983. _ = state
  10984. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(88)) {
  10985. return -int32(6)
  10986. }
  10987. if strm == uintptr(m_Z_NULL) || window == uintptr(m_Z_NULL) || windowBits < int32(8) || windowBits > int32(15) {
  10988. return -int32(2)
  10989. }
  10990. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  10991. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  10992. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  10993. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  10994. }
  10995. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  10996. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  10997. }
  10998. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7152)))
  10999. if state == uintptr(m_Z_NULL) {
  11000. return -int32(4)
  11001. }
  11002. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  11003. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  11004. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  11005. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << windowBits
  11006. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = window
  11007. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  11008. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  11009. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  11010. return m_Z_OK
  11011. }
  11012. // C documentation
  11013. //
  11014. // /*
  11015. // Return state with length and distance decoding tables and index sizes set to
  11016. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  11017. // If BUILDFIXED is defined, then instead this routine builds the tables the
  11018. // first time it's called, and returns those tables the first time and
  11019. // thereafter. This reduces the size of the code by about 2K bytes, in
  11020. // exchange for a little execution time. However, BUILDFIXED should not be
  11021. // used for threaded applications, since the rewriting of the tables and virgin
  11022. // may not be thread-safe.
  11023. // */
  11024. func _fixedtables(tls *libc.TLS, state uintptr) {
  11025. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix))
  11026. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  11027. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix))
  11028. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  11029. }
  11030. var _lenfix = [512]Tcode{
  11031. 0: {
  11032. Fop: uint8(96),
  11033. Fbits: uint8(7),
  11034. },
  11035. 1: {
  11036. Fbits: uint8(8),
  11037. Fval: uint16(80),
  11038. },
  11039. 2: {
  11040. Fbits: uint8(8),
  11041. Fval: uint16(16),
  11042. },
  11043. 3: {
  11044. Fop: uint8(20),
  11045. Fbits: uint8(8),
  11046. Fval: uint16(115),
  11047. },
  11048. 4: {
  11049. Fop: uint8(18),
  11050. Fbits: uint8(7),
  11051. Fval: uint16(31),
  11052. },
  11053. 5: {
  11054. Fbits: uint8(8),
  11055. Fval: uint16(112),
  11056. },
  11057. 6: {
  11058. Fbits: uint8(8),
  11059. Fval: uint16(48),
  11060. },
  11061. 7: {
  11062. Fbits: uint8(9),
  11063. Fval: uint16(192),
  11064. },
  11065. 8: {
  11066. Fop: uint8(16),
  11067. Fbits: uint8(7),
  11068. Fval: uint16(10),
  11069. },
  11070. 9: {
  11071. Fbits: uint8(8),
  11072. Fval: uint16(96),
  11073. },
  11074. 10: {
  11075. Fbits: uint8(8),
  11076. Fval: uint16(32),
  11077. },
  11078. 11: {
  11079. Fbits: uint8(9),
  11080. Fval: uint16(160),
  11081. },
  11082. 12: {
  11083. Fbits: uint8(8),
  11084. },
  11085. 13: {
  11086. Fbits: uint8(8),
  11087. Fval: uint16(128),
  11088. },
  11089. 14: {
  11090. Fbits: uint8(8),
  11091. Fval: uint16(64),
  11092. },
  11093. 15: {
  11094. Fbits: uint8(9),
  11095. Fval: uint16(224),
  11096. },
  11097. 16: {
  11098. Fop: uint8(16),
  11099. Fbits: uint8(7),
  11100. Fval: uint16(6),
  11101. },
  11102. 17: {
  11103. Fbits: uint8(8),
  11104. Fval: uint16(88),
  11105. },
  11106. 18: {
  11107. Fbits: uint8(8),
  11108. Fval: uint16(24),
  11109. },
  11110. 19: {
  11111. Fbits: uint8(9),
  11112. Fval: uint16(144),
  11113. },
  11114. 20: {
  11115. Fop: uint8(19),
  11116. Fbits: uint8(7),
  11117. Fval: uint16(59),
  11118. },
  11119. 21: {
  11120. Fbits: uint8(8),
  11121. Fval: uint16(120),
  11122. },
  11123. 22: {
  11124. Fbits: uint8(8),
  11125. Fval: uint16(56),
  11126. },
  11127. 23: {
  11128. Fbits: uint8(9),
  11129. Fval: uint16(208),
  11130. },
  11131. 24: {
  11132. Fop: uint8(17),
  11133. Fbits: uint8(7),
  11134. Fval: uint16(17),
  11135. },
  11136. 25: {
  11137. Fbits: uint8(8),
  11138. Fval: uint16(104),
  11139. },
  11140. 26: {
  11141. Fbits: uint8(8),
  11142. Fval: uint16(40),
  11143. },
  11144. 27: {
  11145. Fbits: uint8(9),
  11146. Fval: uint16(176),
  11147. },
  11148. 28: {
  11149. Fbits: uint8(8),
  11150. Fval: uint16(8),
  11151. },
  11152. 29: {
  11153. Fbits: uint8(8),
  11154. Fval: uint16(136),
  11155. },
  11156. 30: {
  11157. Fbits: uint8(8),
  11158. Fval: uint16(72),
  11159. },
  11160. 31: {
  11161. Fbits: uint8(9),
  11162. Fval: uint16(240),
  11163. },
  11164. 32: {
  11165. Fop: uint8(16),
  11166. Fbits: uint8(7),
  11167. Fval: uint16(4),
  11168. },
  11169. 33: {
  11170. Fbits: uint8(8),
  11171. Fval: uint16(84),
  11172. },
  11173. 34: {
  11174. Fbits: uint8(8),
  11175. Fval: uint16(20),
  11176. },
  11177. 35: {
  11178. Fop: uint8(21),
  11179. Fbits: uint8(8),
  11180. Fval: uint16(227),
  11181. },
  11182. 36: {
  11183. Fop: uint8(19),
  11184. Fbits: uint8(7),
  11185. Fval: uint16(43),
  11186. },
  11187. 37: {
  11188. Fbits: uint8(8),
  11189. Fval: uint16(116),
  11190. },
  11191. 38: {
  11192. Fbits: uint8(8),
  11193. Fval: uint16(52),
  11194. },
  11195. 39: {
  11196. Fbits: uint8(9),
  11197. Fval: uint16(200),
  11198. },
  11199. 40: {
  11200. Fop: uint8(17),
  11201. Fbits: uint8(7),
  11202. Fval: uint16(13),
  11203. },
  11204. 41: {
  11205. Fbits: uint8(8),
  11206. Fval: uint16(100),
  11207. },
  11208. 42: {
  11209. Fbits: uint8(8),
  11210. Fval: uint16(36),
  11211. },
  11212. 43: {
  11213. Fbits: uint8(9),
  11214. Fval: uint16(168),
  11215. },
  11216. 44: {
  11217. Fbits: uint8(8),
  11218. Fval: uint16(4),
  11219. },
  11220. 45: {
  11221. Fbits: uint8(8),
  11222. Fval: uint16(132),
  11223. },
  11224. 46: {
  11225. Fbits: uint8(8),
  11226. Fval: uint16(68),
  11227. },
  11228. 47: {
  11229. Fbits: uint8(9),
  11230. Fval: uint16(232),
  11231. },
  11232. 48: {
  11233. Fop: uint8(16),
  11234. Fbits: uint8(7),
  11235. Fval: uint16(8),
  11236. },
  11237. 49: {
  11238. Fbits: uint8(8),
  11239. Fval: uint16(92),
  11240. },
  11241. 50: {
  11242. Fbits: uint8(8),
  11243. Fval: uint16(28),
  11244. },
  11245. 51: {
  11246. Fbits: uint8(9),
  11247. Fval: uint16(152),
  11248. },
  11249. 52: {
  11250. Fop: uint8(20),
  11251. Fbits: uint8(7),
  11252. Fval: uint16(83),
  11253. },
  11254. 53: {
  11255. Fbits: uint8(8),
  11256. Fval: uint16(124),
  11257. },
  11258. 54: {
  11259. Fbits: uint8(8),
  11260. Fval: uint16(60),
  11261. },
  11262. 55: {
  11263. Fbits: uint8(9),
  11264. Fval: uint16(216),
  11265. },
  11266. 56: {
  11267. Fop: uint8(18),
  11268. Fbits: uint8(7),
  11269. Fval: uint16(23),
  11270. },
  11271. 57: {
  11272. Fbits: uint8(8),
  11273. Fval: uint16(108),
  11274. },
  11275. 58: {
  11276. Fbits: uint8(8),
  11277. Fval: uint16(44),
  11278. },
  11279. 59: {
  11280. Fbits: uint8(9),
  11281. Fval: uint16(184),
  11282. },
  11283. 60: {
  11284. Fbits: uint8(8),
  11285. Fval: uint16(12),
  11286. },
  11287. 61: {
  11288. Fbits: uint8(8),
  11289. Fval: uint16(140),
  11290. },
  11291. 62: {
  11292. Fbits: uint8(8),
  11293. Fval: uint16(76),
  11294. },
  11295. 63: {
  11296. Fbits: uint8(9),
  11297. Fval: uint16(248),
  11298. },
  11299. 64: {
  11300. Fop: uint8(16),
  11301. Fbits: uint8(7),
  11302. Fval: uint16(3),
  11303. },
  11304. 65: {
  11305. Fbits: uint8(8),
  11306. Fval: uint16(82),
  11307. },
  11308. 66: {
  11309. Fbits: uint8(8),
  11310. Fval: uint16(18),
  11311. },
  11312. 67: {
  11313. Fop: uint8(21),
  11314. Fbits: uint8(8),
  11315. Fval: uint16(163),
  11316. },
  11317. 68: {
  11318. Fop: uint8(19),
  11319. Fbits: uint8(7),
  11320. Fval: uint16(35),
  11321. },
  11322. 69: {
  11323. Fbits: uint8(8),
  11324. Fval: uint16(114),
  11325. },
  11326. 70: {
  11327. Fbits: uint8(8),
  11328. Fval: uint16(50),
  11329. },
  11330. 71: {
  11331. Fbits: uint8(9),
  11332. Fval: uint16(196),
  11333. },
  11334. 72: {
  11335. Fop: uint8(17),
  11336. Fbits: uint8(7),
  11337. Fval: uint16(11),
  11338. },
  11339. 73: {
  11340. Fbits: uint8(8),
  11341. Fval: uint16(98),
  11342. },
  11343. 74: {
  11344. Fbits: uint8(8),
  11345. Fval: uint16(34),
  11346. },
  11347. 75: {
  11348. Fbits: uint8(9),
  11349. Fval: uint16(164),
  11350. },
  11351. 76: {
  11352. Fbits: uint8(8),
  11353. Fval: uint16(2),
  11354. },
  11355. 77: {
  11356. Fbits: uint8(8),
  11357. Fval: uint16(130),
  11358. },
  11359. 78: {
  11360. Fbits: uint8(8),
  11361. Fval: uint16(66),
  11362. },
  11363. 79: {
  11364. Fbits: uint8(9),
  11365. Fval: uint16(228),
  11366. },
  11367. 80: {
  11368. Fop: uint8(16),
  11369. Fbits: uint8(7),
  11370. Fval: uint16(7),
  11371. },
  11372. 81: {
  11373. Fbits: uint8(8),
  11374. Fval: uint16(90),
  11375. },
  11376. 82: {
  11377. Fbits: uint8(8),
  11378. Fval: uint16(26),
  11379. },
  11380. 83: {
  11381. Fbits: uint8(9),
  11382. Fval: uint16(148),
  11383. },
  11384. 84: {
  11385. Fop: uint8(20),
  11386. Fbits: uint8(7),
  11387. Fval: uint16(67),
  11388. },
  11389. 85: {
  11390. Fbits: uint8(8),
  11391. Fval: uint16(122),
  11392. },
  11393. 86: {
  11394. Fbits: uint8(8),
  11395. Fval: uint16(58),
  11396. },
  11397. 87: {
  11398. Fbits: uint8(9),
  11399. Fval: uint16(212),
  11400. },
  11401. 88: {
  11402. Fop: uint8(18),
  11403. Fbits: uint8(7),
  11404. Fval: uint16(19),
  11405. },
  11406. 89: {
  11407. Fbits: uint8(8),
  11408. Fval: uint16(106),
  11409. },
  11410. 90: {
  11411. Fbits: uint8(8),
  11412. Fval: uint16(42),
  11413. },
  11414. 91: {
  11415. Fbits: uint8(9),
  11416. Fval: uint16(180),
  11417. },
  11418. 92: {
  11419. Fbits: uint8(8),
  11420. Fval: uint16(10),
  11421. },
  11422. 93: {
  11423. Fbits: uint8(8),
  11424. Fval: uint16(138),
  11425. },
  11426. 94: {
  11427. Fbits: uint8(8),
  11428. Fval: uint16(74),
  11429. },
  11430. 95: {
  11431. Fbits: uint8(9),
  11432. Fval: uint16(244),
  11433. },
  11434. 96: {
  11435. Fop: uint8(16),
  11436. Fbits: uint8(7),
  11437. Fval: uint16(5),
  11438. },
  11439. 97: {
  11440. Fbits: uint8(8),
  11441. Fval: uint16(86),
  11442. },
  11443. 98: {
  11444. Fbits: uint8(8),
  11445. Fval: uint16(22),
  11446. },
  11447. 99: {
  11448. Fop: uint8(64),
  11449. Fbits: uint8(8),
  11450. },
  11451. 100: {
  11452. Fop: uint8(19),
  11453. Fbits: uint8(7),
  11454. Fval: uint16(51),
  11455. },
  11456. 101: {
  11457. Fbits: uint8(8),
  11458. Fval: uint16(118),
  11459. },
  11460. 102: {
  11461. Fbits: uint8(8),
  11462. Fval: uint16(54),
  11463. },
  11464. 103: {
  11465. Fbits: uint8(9),
  11466. Fval: uint16(204),
  11467. },
  11468. 104: {
  11469. Fop: uint8(17),
  11470. Fbits: uint8(7),
  11471. Fval: uint16(15),
  11472. },
  11473. 105: {
  11474. Fbits: uint8(8),
  11475. Fval: uint16(102),
  11476. },
  11477. 106: {
  11478. Fbits: uint8(8),
  11479. Fval: uint16(38),
  11480. },
  11481. 107: {
  11482. Fbits: uint8(9),
  11483. Fval: uint16(172),
  11484. },
  11485. 108: {
  11486. Fbits: uint8(8),
  11487. Fval: uint16(6),
  11488. },
  11489. 109: {
  11490. Fbits: uint8(8),
  11491. Fval: uint16(134),
  11492. },
  11493. 110: {
  11494. Fbits: uint8(8),
  11495. Fval: uint16(70),
  11496. },
  11497. 111: {
  11498. Fbits: uint8(9),
  11499. Fval: uint16(236),
  11500. },
  11501. 112: {
  11502. Fop: uint8(16),
  11503. Fbits: uint8(7),
  11504. Fval: uint16(9),
  11505. },
  11506. 113: {
  11507. Fbits: uint8(8),
  11508. Fval: uint16(94),
  11509. },
  11510. 114: {
  11511. Fbits: uint8(8),
  11512. Fval: uint16(30),
  11513. },
  11514. 115: {
  11515. Fbits: uint8(9),
  11516. Fval: uint16(156),
  11517. },
  11518. 116: {
  11519. Fop: uint8(20),
  11520. Fbits: uint8(7),
  11521. Fval: uint16(99),
  11522. },
  11523. 117: {
  11524. Fbits: uint8(8),
  11525. Fval: uint16(126),
  11526. },
  11527. 118: {
  11528. Fbits: uint8(8),
  11529. Fval: uint16(62),
  11530. },
  11531. 119: {
  11532. Fbits: uint8(9),
  11533. Fval: uint16(220),
  11534. },
  11535. 120: {
  11536. Fop: uint8(18),
  11537. Fbits: uint8(7),
  11538. Fval: uint16(27),
  11539. },
  11540. 121: {
  11541. Fbits: uint8(8),
  11542. Fval: uint16(110),
  11543. },
  11544. 122: {
  11545. Fbits: uint8(8),
  11546. Fval: uint16(46),
  11547. },
  11548. 123: {
  11549. Fbits: uint8(9),
  11550. Fval: uint16(188),
  11551. },
  11552. 124: {
  11553. Fbits: uint8(8),
  11554. Fval: uint16(14),
  11555. },
  11556. 125: {
  11557. Fbits: uint8(8),
  11558. Fval: uint16(142),
  11559. },
  11560. 126: {
  11561. Fbits: uint8(8),
  11562. Fval: uint16(78),
  11563. },
  11564. 127: {
  11565. Fbits: uint8(9),
  11566. Fval: uint16(252),
  11567. },
  11568. 128: {
  11569. Fop: uint8(96),
  11570. Fbits: uint8(7),
  11571. },
  11572. 129: {
  11573. Fbits: uint8(8),
  11574. Fval: uint16(81),
  11575. },
  11576. 130: {
  11577. Fbits: uint8(8),
  11578. Fval: uint16(17),
  11579. },
  11580. 131: {
  11581. Fop: uint8(21),
  11582. Fbits: uint8(8),
  11583. Fval: uint16(131),
  11584. },
  11585. 132: {
  11586. Fop: uint8(18),
  11587. Fbits: uint8(7),
  11588. Fval: uint16(31),
  11589. },
  11590. 133: {
  11591. Fbits: uint8(8),
  11592. Fval: uint16(113),
  11593. },
  11594. 134: {
  11595. Fbits: uint8(8),
  11596. Fval: uint16(49),
  11597. },
  11598. 135: {
  11599. Fbits: uint8(9),
  11600. Fval: uint16(194),
  11601. },
  11602. 136: {
  11603. Fop: uint8(16),
  11604. Fbits: uint8(7),
  11605. Fval: uint16(10),
  11606. },
  11607. 137: {
  11608. Fbits: uint8(8),
  11609. Fval: uint16(97),
  11610. },
  11611. 138: {
  11612. Fbits: uint8(8),
  11613. Fval: uint16(33),
  11614. },
  11615. 139: {
  11616. Fbits: uint8(9),
  11617. Fval: uint16(162),
  11618. },
  11619. 140: {
  11620. Fbits: uint8(8),
  11621. Fval: uint16(1),
  11622. },
  11623. 141: {
  11624. Fbits: uint8(8),
  11625. Fval: uint16(129),
  11626. },
  11627. 142: {
  11628. Fbits: uint8(8),
  11629. Fval: uint16(65),
  11630. },
  11631. 143: {
  11632. Fbits: uint8(9),
  11633. Fval: uint16(226),
  11634. },
  11635. 144: {
  11636. Fop: uint8(16),
  11637. Fbits: uint8(7),
  11638. Fval: uint16(6),
  11639. },
  11640. 145: {
  11641. Fbits: uint8(8),
  11642. Fval: uint16(89),
  11643. },
  11644. 146: {
  11645. Fbits: uint8(8),
  11646. Fval: uint16(25),
  11647. },
  11648. 147: {
  11649. Fbits: uint8(9),
  11650. Fval: uint16(146),
  11651. },
  11652. 148: {
  11653. Fop: uint8(19),
  11654. Fbits: uint8(7),
  11655. Fval: uint16(59),
  11656. },
  11657. 149: {
  11658. Fbits: uint8(8),
  11659. Fval: uint16(121),
  11660. },
  11661. 150: {
  11662. Fbits: uint8(8),
  11663. Fval: uint16(57),
  11664. },
  11665. 151: {
  11666. Fbits: uint8(9),
  11667. Fval: uint16(210),
  11668. },
  11669. 152: {
  11670. Fop: uint8(17),
  11671. Fbits: uint8(7),
  11672. Fval: uint16(17),
  11673. },
  11674. 153: {
  11675. Fbits: uint8(8),
  11676. Fval: uint16(105),
  11677. },
  11678. 154: {
  11679. Fbits: uint8(8),
  11680. Fval: uint16(41),
  11681. },
  11682. 155: {
  11683. Fbits: uint8(9),
  11684. Fval: uint16(178),
  11685. },
  11686. 156: {
  11687. Fbits: uint8(8),
  11688. Fval: uint16(9),
  11689. },
  11690. 157: {
  11691. Fbits: uint8(8),
  11692. Fval: uint16(137),
  11693. },
  11694. 158: {
  11695. Fbits: uint8(8),
  11696. Fval: uint16(73),
  11697. },
  11698. 159: {
  11699. Fbits: uint8(9),
  11700. Fval: uint16(242),
  11701. },
  11702. 160: {
  11703. Fop: uint8(16),
  11704. Fbits: uint8(7),
  11705. Fval: uint16(4),
  11706. },
  11707. 161: {
  11708. Fbits: uint8(8),
  11709. Fval: uint16(85),
  11710. },
  11711. 162: {
  11712. Fbits: uint8(8),
  11713. Fval: uint16(21),
  11714. },
  11715. 163: {
  11716. Fop: uint8(16),
  11717. Fbits: uint8(8),
  11718. Fval: uint16(258),
  11719. },
  11720. 164: {
  11721. Fop: uint8(19),
  11722. Fbits: uint8(7),
  11723. Fval: uint16(43),
  11724. },
  11725. 165: {
  11726. Fbits: uint8(8),
  11727. Fval: uint16(117),
  11728. },
  11729. 166: {
  11730. Fbits: uint8(8),
  11731. Fval: uint16(53),
  11732. },
  11733. 167: {
  11734. Fbits: uint8(9),
  11735. Fval: uint16(202),
  11736. },
  11737. 168: {
  11738. Fop: uint8(17),
  11739. Fbits: uint8(7),
  11740. Fval: uint16(13),
  11741. },
  11742. 169: {
  11743. Fbits: uint8(8),
  11744. Fval: uint16(101),
  11745. },
  11746. 170: {
  11747. Fbits: uint8(8),
  11748. Fval: uint16(37),
  11749. },
  11750. 171: {
  11751. Fbits: uint8(9),
  11752. Fval: uint16(170),
  11753. },
  11754. 172: {
  11755. Fbits: uint8(8),
  11756. Fval: uint16(5),
  11757. },
  11758. 173: {
  11759. Fbits: uint8(8),
  11760. Fval: uint16(133),
  11761. },
  11762. 174: {
  11763. Fbits: uint8(8),
  11764. Fval: uint16(69),
  11765. },
  11766. 175: {
  11767. Fbits: uint8(9),
  11768. Fval: uint16(234),
  11769. },
  11770. 176: {
  11771. Fop: uint8(16),
  11772. Fbits: uint8(7),
  11773. Fval: uint16(8),
  11774. },
  11775. 177: {
  11776. Fbits: uint8(8),
  11777. Fval: uint16(93),
  11778. },
  11779. 178: {
  11780. Fbits: uint8(8),
  11781. Fval: uint16(29),
  11782. },
  11783. 179: {
  11784. Fbits: uint8(9),
  11785. Fval: uint16(154),
  11786. },
  11787. 180: {
  11788. Fop: uint8(20),
  11789. Fbits: uint8(7),
  11790. Fval: uint16(83),
  11791. },
  11792. 181: {
  11793. Fbits: uint8(8),
  11794. Fval: uint16(125),
  11795. },
  11796. 182: {
  11797. Fbits: uint8(8),
  11798. Fval: uint16(61),
  11799. },
  11800. 183: {
  11801. Fbits: uint8(9),
  11802. Fval: uint16(218),
  11803. },
  11804. 184: {
  11805. Fop: uint8(18),
  11806. Fbits: uint8(7),
  11807. Fval: uint16(23),
  11808. },
  11809. 185: {
  11810. Fbits: uint8(8),
  11811. Fval: uint16(109),
  11812. },
  11813. 186: {
  11814. Fbits: uint8(8),
  11815. Fval: uint16(45),
  11816. },
  11817. 187: {
  11818. Fbits: uint8(9),
  11819. Fval: uint16(186),
  11820. },
  11821. 188: {
  11822. Fbits: uint8(8),
  11823. Fval: uint16(13),
  11824. },
  11825. 189: {
  11826. Fbits: uint8(8),
  11827. Fval: uint16(141),
  11828. },
  11829. 190: {
  11830. Fbits: uint8(8),
  11831. Fval: uint16(77),
  11832. },
  11833. 191: {
  11834. Fbits: uint8(9),
  11835. Fval: uint16(250),
  11836. },
  11837. 192: {
  11838. Fop: uint8(16),
  11839. Fbits: uint8(7),
  11840. Fval: uint16(3),
  11841. },
  11842. 193: {
  11843. Fbits: uint8(8),
  11844. Fval: uint16(83),
  11845. },
  11846. 194: {
  11847. Fbits: uint8(8),
  11848. Fval: uint16(19),
  11849. },
  11850. 195: {
  11851. Fop: uint8(21),
  11852. Fbits: uint8(8),
  11853. Fval: uint16(195),
  11854. },
  11855. 196: {
  11856. Fop: uint8(19),
  11857. Fbits: uint8(7),
  11858. Fval: uint16(35),
  11859. },
  11860. 197: {
  11861. Fbits: uint8(8),
  11862. Fval: uint16(115),
  11863. },
  11864. 198: {
  11865. Fbits: uint8(8),
  11866. Fval: uint16(51),
  11867. },
  11868. 199: {
  11869. Fbits: uint8(9),
  11870. Fval: uint16(198),
  11871. },
  11872. 200: {
  11873. Fop: uint8(17),
  11874. Fbits: uint8(7),
  11875. Fval: uint16(11),
  11876. },
  11877. 201: {
  11878. Fbits: uint8(8),
  11879. Fval: uint16(99),
  11880. },
  11881. 202: {
  11882. Fbits: uint8(8),
  11883. Fval: uint16(35),
  11884. },
  11885. 203: {
  11886. Fbits: uint8(9),
  11887. Fval: uint16(166),
  11888. },
  11889. 204: {
  11890. Fbits: uint8(8),
  11891. Fval: uint16(3),
  11892. },
  11893. 205: {
  11894. Fbits: uint8(8),
  11895. Fval: uint16(131),
  11896. },
  11897. 206: {
  11898. Fbits: uint8(8),
  11899. Fval: uint16(67),
  11900. },
  11901. 207: {
  11902. Fbits: uint8(9),
  11903. Fval: uint16(230),
  11904. },
  11905. 208: {
  11906. Fop: uint8(16),
  11907. Fbits: uint8(7),
  11908. Fval: uint16(7),
  11909. },
  11910. 209: {
  11911. Fbits: uint8(8),
  11912. Fval: uint16(91),
  11913. },
  11914. 210: {
  11915. Fbits: uint8(8),
  11916. Fval: uint16(27),
  11917. },
  11918. 211: {
  11919. Fbits: uint8(9),
  11920. Fval: uint16(150),
  11921. },
  11922. 212: {
  11923. Fop: uint8(20),
  11924. Fbits: uint8(7),
  11925. Fval: uint16(67),
  11926. },
  11927. 213: {
  11928. Fbits: uint8(8),
  11929. Fval: uint16(123),
  11930. },
  11931. 214: {
  11932. Fbits: uint8(8),
  11933. Fval: uint16(59),
  11934. },
  11935. 215: {
  11936. Fbits: uint8(9),
  11937. Fval: uint16(214),
  11938. },
  11939. 216: {
  11940. Fop: uint8(18),
  11941. Fbits: uint8(7),
  11942. Fval: uint16(19),
  11943. },
  11944. 217: {
  11945. Fbits: uint8(8),
  11946. Fval: uint16(107),
  11947. },
  11948. 218: {
  11949. Fbits: uint8(8),
  11950. Fval: uint16(43),
  11951. },
  11952. 219: {
  11953. Fbits: uint8(9),
  11954. Fval: uint16(182),
  11955. },
  11956. 220: {
  11957. Fbits: uint8(8),
  11958. Fval: uint16(11),
  11959. },
  11960. 221: {
  11961. Fbits: uint8(8),
  11962. Fval: uint16(139),
  11963. },
  11964. 222: {
  11965. Fbits: uint8(8),
  11966. Fval: uint16(75),
  11967. },
  11968. 223: {
  11969. Fbits: uint8(9),
  11970. Fval: uint16(246),
  11971. },
  11972. 224: {
  11973. Fop: uint8(16),
  11974. Fbits: uint8(7),
  11975. Fval: uint16(5),
  11976. },
  11977. 225: {
  11978. Fbits: uint8(8),
  11979. Fval: uint16(87),
  11980. },
  11981. 226: {
  11982. Fbits: uint8(8),
  11983. Fval: uint16(23),
  11984. },
  11985. 227: {
  11986. Fop: uint8(64),
  11987. Fbits: uint8(8),
  11988. },
  11989. 228: {
  11990. Fop: uint8(19),
  11991. Fbits: uint8(7),
  11992. Fval: uint16(51),
  11993. },
  11994. 229: {
  11995. Fbits: uint8(8),
  11996. Fval: uint16(119),
  11997. },
  11998. 230: {
  11999. Fbits: uint8(8),
  12000. Fval: uint16(55),
  12001. },
  12002. 231: {
  12003. Fbits: uint8(9),
  12004. Fval: uint16(206),
  12005. },
  12006. 232: {
  12007. Fop: uint8(17),
  12008. Fbits: uint8(7),
  12009. Fval: uint16(15),
  12010. },
  12011. 233: {
  12012. Fbits: uint8(8),
  12013. Fval: uint16(103),
  12014. },
  12015. 234: {
  12016. Fbits: uint8(8),
  12017. Fval: uint16(39),
  12018. },
  12019. 235: {
  12020. Fbits: uint8(9),
  12021. Fval: uint16(174),
  12022. },
  12023. 236: {
  12024. Fbits: uint8(8),
  12025. Fval: uint16(7),
  12026. },
  12027. 237: {
  12028. Fbits: uint8(8),
  12029. Fval: uint16(135),
  12030. },
  12031. 238: {
  12032. Fbits: uint8(8),
  12033. Fval: uint16(71),
  12034. },
  12035. 239: {
  12036. Fbits: uint8(9),
  12037. Fval: uint16(238),
  12038. },
  12039. 240: {
  12040. Fop: uint8(16),
  12041. Fbits: uint8(7),
  12042. Fval: uint16(9),
  12043. },
  12044. 241: {
  12045. Fbits: uint8(8),
  12046. Fval: uint16(95),
  12047. },
  12048. 242: {
  12049. Fbits: uint8(8),
  12050. Fval: uint16(31),
  12051. },
  12052. 243: {
  12053. Fbits: uint8(9),
  12054. Fval: uint16(158),
  12055. },
  12056. 244: {
  12057. Fop: uint8(20),
  12058. Fbits: uint8(7),
  12059. Fval: uint16(99),
  12060. },
  12061. 245: {
  12062. Fbits: uint8(8),
  12063. Fval: uint16(127),
  12064. },
  12065. 246: {
  12066. Fbits: uint8(8),
  12067. Fval: uint16(63),
  12068. },
  12069. 247: {
  12070. Fbits: uint8(9),
  12071. Fval: uint16(222),
  12072. },
  12073. 248: {
  12074. Fop: uint8(18),
  12075. Fbits: uint8(7),
  12076. Fval: uint16(27),
  12077. },
  12078. 249: {
  12079. Fbits: uint8(8),
  12080. Fval: uint16(111),
  12081. },
  12082. 250: {
  12083. Fbits: uint8(8),
  12084. Fval: uint16(47),
  12085. },
  12086. 251: {
  12087. Fbits: uint8(9),
  12088. Fval: uint16(190),
  12089. },
  12090. 252: {
  12091. Fbits: uint8(8),
  12092. Fval: uint16(15),
  12093. },
  12094. 253: {
  12095. Fbits: uint8(8),
  12096. Fval: uint16(143),
  12097. },
  12098. 254: {
  12099. Fbits: uint8(8),
  12100. Fval: uint16(79),
  12101. },
  12102. 255: {
  12103. Fbits: uint8(9),
  12104. Fval: uint16(254),
  12105. },
  12106. 256: {
  12107. Fop: uint8(96),
  12108. Fbits: uint8(7),
  12109. },
  12110. 257: {
  12111. Fbits: uint8(8),
  12112. Fval: uint16(80),
  12113. },
  12114. 258: {
  12115. Fbits: uint8(8),
  12116. Fval: uint16(16),
  12117. },
  12118. 259: {
  12119. Fop: uint8(20),
  12120. Fbits: uint8(8),
  12121. Fval: uint16(115),
  12122. },
  12123. 260: {
  12124. Fop: uint8(18),
  12125. Fbits: uint8(7),
  12126. Fval: uint16(31),
  12127. },
  12128. 261: {
  12129. Fbits: uint8(8),
  12130. Fval: uint16(112),
  12131. },
  12132. 262: {
  12133. Fbits: uint8(8),
  12134. Fval: uint16(48),
  12135. },
  12136. 263: {
  12137. Fbits: uint8(9),
  12138. Fval: uint16(193),
  12139. },
  12140. 264: {
  12141. Fop: uint8(16),
  12142. Fbits: uint8(7),
  12143. Fval: uint16(10),
  12144. },
  12145. 265: {
  12146. Fbits: uint8(8),
  12147. Fval: uint16(96),
  12148. },
  12149. 266: {
  12150. Fbits: uint8(8),
  12151. Fval: uint16(32),
  12152. },
  12153. 267: {
  12154. Fbits: uint8(9),
  12155. Fval: uint16(161),
  12156. },
  12157. 268: {
  12158. Fbits: uint8(8),
  12159. },
  12160. 269: {
  12161. Fbits: uint8(8),
  12162. Fval: uint16(128),
  12163. },
  12164. 270: {
  12165. Fbits: uint8(8),
  12166. Fval: uint16(64),
  12167. },
  12168. 271: {
  12169. Fbits: uint8(9),
  12170. Fval: uint16(225),
  12171. },
  12172. 272: {
  12173. Fop: uint8(16),
  12174. Fbits: uint8(7),
  12175. Fval: uint16(6),
  12176. },
  12177. 273: {
  12178. Fbits: uint8(8),
  12179. Fval: uint16(88),
  12180. },
  12181. 274: {
  12182. Fbits: uint8(8),
  12183. Fval: uint16(24),
  12184. },
  12185. 275: {
  12186. Fbits: uint8(9),
  12187. Fval: uint16(145),
  12188. },
  12189. 276: {
  12190. Fop: uint8(19),
  12191. Fbits: uint8(7),
  12192. Fval: uint16(59),
  12193. },
  12194. 277: {
  12195. Fbits: uint8(8),
  12196. Fval: uint16(120),
  12197. },
  12198. 278: {
  12199. Fbits: uint8(8),
  12200. Fval: uint16(56),
  12201. },
  12202. 279: {
  12203. Fbits: uint8(9),
  12204. Fval: uint16(209),
  12205. },
  12206. 280: {
  12207. Fop: uint8(17),
  12208. Fbits: uint8(7),
  12209. Fval: uint16(17),
  12210. },
  12211. 281: {
  12212. Fbits: uint8(8),
  12213. Fval: uint16(104),
  12214. },
  12215. 282: {
  12216. Fbits: uint8(8),
  12217. Fval: uint16(40),
  12218. },
  12219. 283: {
  12220. Fbits: uint8(9),
  12221. Fval: uint16(177),
  12222. },
  12223. 284: {
  12224. Fbits: uint8(8),
  12225. Fval: uint16(8),
  12226. },
  12227. 285: {
  12228. Fbits: uint8(8),
  12229. Fval: uint16(136),
  12230. },
  12231. 286: {
  12232. Fbits: uint8(8),
  12233. Fval: uint16(72),
  12234. },
  12235. 287: {
  12236. Fbits: uint8(9),
  12237. Fval: uint16(241),
  12238. },
  12239. 288: {
  12240. Fop: uint8(16),
  12241. Fbits: uint8(7),
  12242. Fval: uint16(4),
  12243. },
  12244. 289: {
  12245. Fbits: uint8(8),
  12246. Fval: uint16(84),
  12247. },
  12248. 290: {
  12249. Fbits: uint8(8),
  12250. Fval: uint16(20),
  12251. },
  12252. 291: {
  12253. Fop: uint8(21),
  12254. Fbits: uint8(8),
  12255. Fval: uint16(227),
  12256. },
  12257. 292: {
  12258. Fop: uint8(19),
  12259. Fbits: uint8(7),
  12260. Fval: uint16(43),
  12261. },
  12262. 293: {
  12263. Fbits: uint8(8),
  12264. Fval: uint16(116),
  12265. },
  12266. 294: {
  12267. Fbits: uint8(8),
  12268. Fval: uint16(52),
  12269. },
  12270. 295: {
  12271. Fbits: uint8(9),
  12272. Fval: uint16(201),
  12273. },
  12274. 296: {
  12275. Fop: uint8(17),
  12276. Fbits: uint8(7),
  12277. Fval: uint16(13),
  12278. },
  12279. 297: {
  12280. Fbits: uint8(8),
  12281. Fval: uint16(100),
  12282. },
  12283. 298: {
  12284. Fbits: uint8(8),
  12285. Fval: uint16(36),
  12286. },
  12287. 299: {
  12288. Fbits: uint8(9),
  12289. Fval: uint16(169),
  12290. },
  12291. 300: {
  12292. Fbits: uint8(8),
  12293. Fval: uint16(4),
  12294. },
  12295. 301: {
  12296. Fbits: uint8(8),
  12297. Fval: uint16(132),
  12298. },
  12299. 302: {
  12300. Fbits: uint8(8),
  12301. Fval: uint16(68),
  12302. },
  12303. 303: {
  12304. Fbits: uint8(9),
  12305. Fval: uint16(233),
  12306. },
  12307. 304: {
  12308. Fop: uint8(16),
  12309. Fbits: uint8(7),
  12310. Fval: uint16(8),
  12311. },
  12312. 305: {
  12313. Fbits: uint8(8),
  12314. Fval: uint16(92),
  12315. },
  12316. 306: {
  12317. Fbits: uint8(8),
  12318. Fval: uint16(28),
  12319. },
  12320. 307: {
  12321. Fbits: uint8(9),
  12322. Fval: uint16(153),
  12323. },
  12324. 308: {
  12325. Fop: uint8(20),
  12326. Fbits: uint8(7),
  12327. Fval: uint16(83),
  12328. },
  12329. 309: {
  12330. Fbits: uint8(8),
  12331. Fval: uint16(124),
  12332. },
  12333. 310: {
  12334. Fbits: uint8(8),
  12335. Fval: uint16(60),
  12336. },
  12337. 311: {
  12338. Fbits: uint8(9),
  12339. Fval: uint16(217),
  12340. },
  12341. 312: {
  12342. Fop: uint8(18),
  12343. Fbits: uint8(7),
  12344. Fval: uint16(23),
  12345. },
  12346. 313: {
  12347. Fbits: uint8(8),
  12348. Fval: uint16(108),
  12349. },
  12350. 314: {
  12351. Fbits: uint8(8),
  12352. Fval: uint16(44),
  12353. },
  12354. 315: {
  12355. Fbits: uint8(9),
  12356. Fval: uint16(185),
  12357. },
  12358. 316: {
  12359. Fbits: uint8(8),
  12360. Fval: uint16(12),
  12361. },
  12362. 317: {
  12363. Fbits: uint8(8),
  12364. Fval: uint16(140),
  12365. },
  12366. 318: {
  12367. Fbits: uint8(8),
  12368. Fval: uint16(76),
  12369. },
  12370. 319: {
  12371. Fbits: uint8(9),
  12372. Fval: uint16(249),
  12373. },
  12374. 320: {
  12375. Fop: uint8(16),
  12376. Fbits: uint8(7),
  12377. Fval: uint16(3),
  12378. },
  12379. 321: {
  12380. Fbits: uint8(8),
  12381. Fval: uint16(82),
  12382. },
  12383. 322: {
  12384. Fbits: uint8(8),
  12385. Fval: uint16(18),
  12386. },
  12387. 323: {
  12388. Fop: uint8(21),
  12389. Fbits: uint8(8),
  12390. Fval: uint16(163),
  12391. },
  12392. 324: {
  12393. Fop: uint8(19),
  12394. Fbits: uint8(7),
  12395. Fval: uint16(35),
  12396. },
  12397. 325: {
  12398. Fbits: uint8(8),
  12399. Fval: uint16(114),
  12400. },
  12401. 326: {
  12402. Fbits: uint8(8),
  12403. Fval: uint16(50),
  12404. },
  12405. 327: {
  12406. Fbits: uint8(9),
  12407. Fval: uint16(197),
  12408. },
  12409. 328: {
  12410. Fop: uint8(17),
  12411. Fbits: uint8(7),
  12412. Fval: uint16(11),
  12413. },
  12414. 329: {
  12415. Fbits: uint8(8),
  12416. Fval: uint16(98),
  12417. },
  12418. 330: {
  12419. Fbits: uint8(8),
  12420. Fval: uint16(34),
  12421. },
  12422. 331: {
  12423. Fbits: uint8(9),
  12424. Fval: uint16(165),
  12425. },
  12426. 332: {
  12427. Fbits: uint8(8),
  12428. Fval: uint16(2),
  12429. },
  12430. 333: {
  12431. Fbits: uint8(8),
  12432. Fval: uint16(130),
  12433. },
  12434. 334: {
  12435. Fbits: uint8(8),
  12436. Fval: uint16(66),
  12437. },
  12438. 335: {
  12439. Fbits: uint8(9),
  12440. Fval: uint16(229),
  12441. },
  12442. 336: {
  12443. Fop: uint8(16),
  12444. Fbits: uint8(7),
  12445. Fval: uint16(7),
  12446. },
  12447. 337: {
  12448. Fbits: uint8(8),
  12449. Fval: uint16(90),
  12450. },
  12451. 338: {
  12452. Fbits: uint8(8),
  12453. Fval: uint16(26),
  12454. },
  12455. 339: {
  12456. Fbits: uint8(9),
  12457. Fval: uint16(149),
  12458. },
  12459. 340: {
  12460. Fop: uint8(20),
  12461. Fbits: uint8(7),
  12462. Fval: uint16(67),
  12463. },
  12464. 341: {
  12465. Fbits: uint8(8),
  12466. Fval: uint16(122),
  12467. },
  12468. 342: {
  12469. Fbits: uint8(8),
  12470. Fval: uint16(58),
  12471. },
  12472. 343: {
  12473. Fbits: uint8(9),
  12474. Fval: uint16(213),
  12475. },
  12476. 344: {
  12477. Fop: uint8(18),
  12478. Fbits: uint8(7),
  12479. Fval: uint16(19),
  12480. },
  12481. 345: {
  12482. Fbits: uint8(8),
  12483. Fval: uint16(106),
  12484. },
  12485. 346: {
  12486. Fbits: uint8(8),
  12487. Fval: uint16(42),
  12488. },
  12489. 347: {
  12490. Fbits: uint8(9),
  12491. Fval: uint16(181),
  12492. },
  12493. 348: {
  12494. Fbits: uint8(8),
  12495. Fval: uint16(10),
  12496. },
  12497. 349: {
  12498. Fbits: uint8(8),
  12499. Fval: uint16(138),
  12500. },
  12501. 350: {
  12502. Fbits: uint8(8),
  12503. Fval: uint16(74),
  12504. },
  12505. 351: {
  12506. Fbits: uint8(9),
  12507. Fval: uint16(245),
  12508. },
  12509. 352: {
  12510. Fop: uint8(16),
  12511. Fbits: uint8(7),
  12512. Fval: uint16(5),
  12513. },
  12514. 353: {
  12515. Fbits: uint8(8),
  12516. Fval: uint16(86),
  12517. },
  12518. 354: {
  12519. Fbits: uint8(8),
  12520. Fval: uint16(22),
  12521. },
  12522. 355: {
  12523. Fop: uint8(64),
  12524. Fbits: uint8(8),
  12525. },
  12526. 356: {
  12527. Fop: uint8(19),
  12528. Fbits: uint8(7),
  12529. Fval: uint16(51),
  12530. },
  12531. 357: {
  12532. Fbits: uint8(8),
  12533. Fval: uint16(118),
  12534. },
  12535. 358: {
  12536. Fbits: uint8(8),
  12537. Fval: uint16(54),
  12538. },
  12539. 359: {
  12540. Fbits: uint8(9),
  12541. Fval: uint16(205),
  12542. },
  12543. 360: {
  12544. Fop: uint8(17),
  12545. Fbits: uint8(7),
  12546. Fval: uint16(15),
  12547. },
  12548. 361: {
  12549. Fbits: uint8(8),
  12550. Fval: uint16(102),
  12551. },
  12552. 362: {
  12553. Fbits: uint8(8),
  12554. Fval: uint16(38),
  12555. },
  12556. 363: {
  12557. Fbits: uint8(9),
  12558. Fval: uint16(173),
  12559. },
  12560. 364: {
  12561. Fbits: uint8(8),
  12562. Fval: uint16(6),
  12563. },
  12564. 365: {
  12565. Fbits: uint8(8),
  12566. Fval: uint16(134),
  12567. },
  12568. 366: {
  12569. Fbits: uint8(8),
  12570. Fval: uint16(70),
  12571. },
  12572. 367: {
  12573. Fbits: uint8(9),
  12574. Fval: uint16(237),
  12575. },
  12576. 368: {
  12577. Fop: uint8(16),
  12578. Fbits: uint8(7),
  12579. Fval: uint16(9),
  12580. },
  12581. 369: {
  12582. Fbits: uint8(8),
  12583. Fval: uint16(94),
  12584. },
  12585. 370: {
  12586. Fbits: uint8(8),
  12587. Fval: uint16(30),
  12588. },
  12589. 371: {
  12590. Fbits: uint8(9),
  12591. Fval: uint16(157),
  12592. },
  12593. 372: {
  12594. Fop: uint8(20),
  12595. Fbits: uint8(7),
  12596. Fval: uint16(99),
  12597. },
  12598. 373: {
  12599. Fbits: uint8(8),
  12600. Fval: uint16(126),
  12601. },
  12602. 374: {
  12603. Fbits: uint8(8),
  12604. Fval: uint16(62),
  12605. },
  12606. 375: {
  12607. Fbits: uint8(9),
  12608. Fval: uint16(221),
  12609. },
  12610. 376: {
  12611. Fop: uint8(18),
  12612. Fbits: uint8(7),
  12613. Fval: uint16(27),
  12614. },
  12615. 377: {
  12616. Fbits: uint8(8),
  12617. Fval: uint16(110),
  12618. },
  12619. 378: {
  12620. Fbits: uint8(8),
  12621. Fval: uint16(46),
  12622. },
  12623. 379: {
  12624. Fbits: uint8(9),
  12625. Fval: uint16(189),
  12626. },
  12627. 380: {
  12628. Fbits: uint8(8),
  12629. Fval: uint16(14),
  12630. },
  12631. 381: {
  12632. Fbits: uint8(8),
  12633. Fval: uint16(142),
  12634. },
  12635. 382: {
  12636. Fbits: uint8(8),
  12637. Fval: uint16(78),
  12638. },
  12639. 383: {
  12640. Fbits: uint8(9),
  12641. Fval: uint16(253),
  12642. },
  12643. 384: {
  12644. Fop: uint8(96),
  12645. Fbits: uint8(7),
  12646. },
  12647. 385: {
  12648. Fbits: uint8(8),
  12649. Fval: uint16(81),
  12650. },
  12651. 386: {
  12652. Fbits: uint8(8),
  12653. Fval: uint16(17),
  12654. },
  12655. 387: {
  12656. Fop: uint8(21),
  12657. Fbits: uint8(8),
  12658. Fval: uint16(131),
  12659. },
  12660. 388: {
  12661. Fop: uint8(18),
  12662. Fbits: uint8(7),
  12663. Fval: uint16(31),
  12664. },
  12665. 389: {
  12666. Fbits: uint8(8),
  12667. Fval: uint16(113),
  12668. },
  12669. 390: {
  12670. Fbits: uint8(8),
  12671. Fval: uint16(49),
  12672. },
  12673. 391: {
  12674. Fbits: uint8(9),
  12675. Fval: uint16(195),
  12676. },
  12677. 392: {
  12678. Fop: uint8(16),
  12679. Fbits: uint8(7),
  12680. Fval: uint16(10),
  12681. },
  12682. 393: {
  12683. Fbits: uint8(8),
  12684. Fval: uint16(97),
  12685. },
  12686. 394: {
  12687. Fbits: uint8(8),
  12688. Fval: uint16(33),
  12689. },
  12690. 395: {
  12691. Fbits: uint8(9),
  12692. Fval: uint16(163),
  12693. },
  12694. 396: {
  12695. Fbits: uint8(8),
  12696. Fval: uint16(1),
  12697. },
  12698. 397: {
  12699. Fbits: uint8(8),
  12700. Fval: uint16(129),
  12701. },
  12702. 398: {
  12703. Fbits: uint8(8),
  12704. Fval: uint16(65),
  12705. },
  12706. 399: {
  12707. Fbits: uint8(9),
  12708. Fval: uint16(227),
  12709. },
  12710. 400: {
  12711. Fop: uint8(16),
  12712. Fbits: uint8(7),
  12713. Fval: uint16(6),
  12714. },
  12715. 401: {
  12716. Fbits: uint8(8),
  12717. Fval: uint16(89),
  12718. },
  12719. 402: {
  12720. Fbits: uint8(8),
  12721. Fval: uint16(25),
  12722. },
  12723. 403: {
  12724. Fbits: uint8(9),
  12725. Fval: uint16(147),
  12726. },
  12727. 404: {
  12728. Fop: uint8(19),
  12729. Fbits: uint8(7),
  12730. Fval: uint16(59),
  12731. },
  12732. 405: {
  12733. Fbits: uint8(8),
  12734. Fval: uint16(121),
  12735. },
  12736. 406: {
  12737. Fbits: uint8(8),
  12738. Fval: uint16(57),
  12739. },
  12740. 407: {
  12741. Fbits: uint8(9),
  12742. Fval: uint16(211),
  12743. },
  12744. 408: {
  12745. Fop: uint8(17),
  12746. Fbits: uint8(7),
  12747. Fval: uint16(17),
  12748. },
  12749. 409: {
  12750. Fbits: uint8(8),
  12751. Fval: uint16(105),
  12752. },
  12753. 410: {
  12754. Fbits: uint8(8),
  12755. Fval: uint16(41),
  12756. },
  12757. 411: {
  12758. Fbits: uint8(9),
  12759. Fval: uint16(179),
  12760. },
  12761. 412: {
  12762. Fbits: uint8(8),
  12763. Fval: uint16(9),
  12764. },
  12765. 413: {
  12766. Fbits: uint8(8),
  12767. Fval: uint16(137),
  12768. },
  12769. 414: {
  12770. Fbits: uint8(8),
  12771. Fval: uint16(73),
  12772. },
  12773. 415: {
  12774. Fbits: uint8(9),
  12775. Fval: uint16(243),
  12776. },
  12777. 416: {
  12778. Fop: uint8(16),
  12779. Fbits: uint8(7),
  12780. Fval: uint16(4),
  12781. },
  12782. 417: {
  12783. Fbits: uint8(8),
  12784. Fval: uint16(85),
  12785. },
  12786. 418: {
  12787. Fbits: uint8(8),
  12788. Fval: uint16(21),
  12789. },
  12790. 419: {
  12791. Fop: uint8(16),
  12792. Fbits: uint8(8),
  12793. Fval: uint16(258),
  12794. },
  12795. 420: {
  12796. Fop: uint8(19),
  12797. Fbits: uint8(7),
  12798. Fval: uint16(43),
  12799. },
  12800. 421: {
  12801. Fbits: uint8(8),
  12802. Fval: uint16(117),
  12803. },
  12804. 422: {
  12805. Fbits: uint8(8),
  12806. Fval: uint16(53),
  12807. },
  12808. 423: {
  12809. Fbits: uint8(9),
  12810. Fval: uint16(203),
  12811. },
  12812. 424: {
  12813. Fop: uint8(17),
  12814. Fbits: uint8(7),
  12815. Fval: uint16(13),
  12816. },
  12817. 425: {
  12818. Fbits: uint8(8),
  12819. Fval: uint16(101),
  12820. },
  12821. 426: {
  12822. Fbits: uint8(8),
  12823. Fval: uint16(37),
  12824. },
  12825. 427: {
  12826. Fbits: uint8(9),
  12827. Fval: uint16(171),
  12828. },
  12829. 428: {
  12830. Fbits: uint8(8),
  12831. Fval: uint16(5),
  12832. },
  12833. 429: {
  12834. Fbits: uint8(8),
  12835. Fval: uint16(133),
  12836. },
  12837. 430: {
  12838. Fbits: uint8(8),
  12839. Fval: uint16(69),
  12840. },
  12841. 431: {
  12842. Fbits: uint8(9),
  12843. Fval: uint16(235),
  12844. },
  12845. 432: {
  12846. Fop: uint8(16),
  12847. Fbits: uint8(7),
  12848. Fval: uint16(8),
  12849. },
  12850. 433: {
  12851. Fbits: uint8(8),
  12852. Fval: uint16(93),
  12853. },
  12854. 434: {
  12855. Fbits: uint8(8),
  12856. Fval: uint16(29),
  12857. },
  12858. 435: {
  12859. Fbits: uint8(9),
  12860. Fval: uint16(155),
  12861. },
  12862. 436: {
  12863. Fop: uint8(20),
  12864. Fbits: uint8(7),
  12865. Fval: uint16(83),
  12866. },
  12867. 437: {
  12868. Fbits: uint8(8),
  12869. Fval: uint16(125),
  12870. },
  12871. 438: {
  12872. Fbits: uint8(8),
  12873. Fval: uint16(61),
  12874. },
  12875. 439: {
  12876. Fbits: uint8(9),
  12877. Fval: uint16(219),
  12878. },
  12879. 440: {
  12880. Fop: uint8(18),
  12881. Fbits: uint8(7),
  12882. Fval: uint16(23),
  12883. },
  12884. 441: {
  12885. Fbits: uint8(8),
  12886. Fval: uint16(109),
  12887. },
  12888. 442: {
  12889. Fbits: uint8(8),
  12890. Fval: uint16(45),
  12891. },
  12892. 443: {
  12893. Fbits: uint8(9),
  12894. Fval: uint16(187),
  12895. },
  12896. 444: {
  12897. Fbits: uint8(8),
  12898. Fval: uint16(13),
  12899. },
  12900. 445: {
  12901. Fbits: uint8(8),
  12902. Fval: uint16(141),
  12903. },
  12904. 446: {
  12905. Fbits: uint8(8),
  12906. Fval: uint16(77),
  12907. },
  12908. 447: {
  12909. Fbits: uint8(9),
  12910. Fval: uint16(251),
  12911. },
  12912. 448: {
  12913. Fop: uint8(16),
  12914. Fbits: uint8(7),
  12915. Fval: uint16(3),
  12916. },
  12917. 449: {
  12918. Fbits: uint8(8),
  12919. Fval: uint16(83),
  12920. },
  12921. 450: {
  12922. Fbits: uint8(8),
  12923. Fval: uint16(19),
  12924. },
  12925. 451: {
  12926. Fop: uint8(21),
  12927. Fbits: uint8(8),
  12928. Fval: uint16(195),
  12929. },
  12930. 452: {
  12931. Fop: uint8(19),
  12932. Fbits: uint8(7),
  12933. Fval: uint16(35),
  12934. },
  12935. 453: {
  12936. Fbits: uint8(8),
  12937. Fval: uint16(115),
  12938. },
  12939. 454: {
  12940. Fbits: uint8(8),
  12941. Fval: uint16(51),
  12942. },
  12943. 455: {
  12944. Fbits: uint8(9),
  12945. Fval: uint16(199),
  12946. },
  12947. 456: {
  12948. Fop: uint8(17),
  12949. Fbits: uint8(7),
  12950. Fval: uint16(11),
  12951. },
  12952. 457: {
  12953. Fbits: uint8(8),
  12954. Fval: uint16(99),
  12955. },
  12956. 458: {
  12957. Fbits: uint8(8),
  12958. Fval: uint16(35),
  12959. },
  12960. 459: {
  12961. Fbits: uint8(9),
  12962. Fval: uint16(167),
  12963. },
  12964. 460: {
  12965. Fbits: uint8(8),
  12966. Fval: uint16(3),
  12967. },
  12968. 461: {
  12969. Fbits: uint8(8),
  12970. Fval: uint16(131),
  12971. },
  12972. 462: {
  12973. Fbits: uint8(8),
  12974. Fval: uint16(67),
  12975. },
  12976. 463: {
  12977. Fbits: uint8(9),
  12978. Fval: uint16(231),
  12979. },
  12980. 464: {
  12981. Fop: uint8(16),
  12982. Fbits: uint8(7),
  12983. Fval: uint16(7),
  12984. },
  12985. 465: {
  12986. Fbits: uint8(8),
  12987. Fval: uint16(91),
  12988. },
  12989. 466: {
  12990. Fbits: uint8(8),
  12991. Fval: uint16(27),
  12992. },
  12993. 467: {
  12994. Fbits: uint8(9),
  12995. Fval: uint16(151),
  12996. },
  12997. 468: {
  12998. Fop: uint8(20),
  12999. Fbits: uint8(7),
  13000. Fval: uint16(67),
  13001. },
  13002. 469: {
  13003. Fbits: uint8(8),
  13004. Fval: uint16(123),
  13005. },
  13006. 470: {
  13007. Fbits: uint8(8),
  13008. Fval: uint16(59),
  13009. },
  13010. 471: {
  13011. Fbits: uint8(9),
  13012. Fval: uint16(215),
  13013. },
  13014. 472: {
  13015. Fop: uint8(18),
  13016. Fbits: uint8(7),
  13017. Fval: uint16(19),
  13018. },
  13019. 473: {
  13020. Fbits: uint8(8),
  13021. Fval: uint16(107),
  13022. },
  13023. 474: {
  13024. Fbits: uint8(8),
  13025. Fval: uint16(43),
  13026. },
  13027. 475: {
  13028. Fbits: uint8(9),
  13029. Fval: uint16(183),
  13030. },
  13031. 476: {
  13032. Fbits: uint8(8),
  13033. Fval: uint16(11),
  13034. },
  13035. 477: {
  13036. Fbits: uint8(8),
  13037. Fval: uint16(139),
  13038. },
  13039. 478: {
  13040. Fbits: uint8(8),
  13041. Fval: uint16(75),
  13042. },
  13043. 479: {
  13044. Fbits: uint8(9),
  13045. Fval: uint16(247),
  13046. },
  13047. 480: {
  13048. Fop: uint8(16),
  13049. Fbits: uint8(7),
  13050. Fval: uint16(5),
  13051. },
  13052. 481: {
  13053. Fbits: uint8(8),
  13054. Fval: uint16(87),
  13055. },
  13056. 482: {
  13057. Fbits: uint8(8),
  13058. Fval: uint16(23),
  13059. },
  13060. 483: {
  13061. Fop: uint8(64),
  13062. Fbits: uint8(8),
  13063. },
  13064. 484: {
  13065. Fop: uint8(19),
  13066. Fbits: uint8(7),
  13067. Fval: uint16(51),
  13068. },
  13069. 485: {
  13070. Fbits: uint8(8),
  13071. Fval: uint16(119),
  13072. },
  13073. 486: {
  13074. Fbits: uint8(8),
  13075. Fval: uint16(55),
  13076. },
  13077. 487: {
  13078. Fbits: uint8(9),
  13079. Fval: uint16(207),
  13080. },
  13081. 488: {
  13082. Fop: uint8(17),
  13083. Fbits: uint8(7),
  13084. Fval: uint16(15),
  13085. },
  13086. 489: {
  13087. Fbits: uint8(8),
  13088. Fval: uint16(103),
  13089. },
  13090. 490: {
  13091. Fbits: uint8(8),
  13092. Fval: uint16(39),
  13093. },
  13094. 491: {
  13095. Fbits: uint8(9),
  13096. Fval: uint16(175),
  13097. },
  13098. 492: {
  13099. Fbits: uint8(8),
  13100. Fval: uint16(7),
  13101. },
  13102. 493: {
  13103. Fbits: uint8(8),
  13104. Fval: uint16(135),
  13105. },
  13106. 494: {
  13107. Fbits: uint8(8),
  13108. Fval: uint16(71),
  13109. },
  13110. 495: {
  13111. Fbits: uint8(9),
  13112. Fval: uint16(239),
  13113. },
  13114. 496: {
  13115. Fop: uint8(16),
  13116. Fbits: uint8(7),
  13117. Fval: uint16(9),
  13118. },
  13119. 497: {
  13120. Fbits: uint8(8),
  13121. Fval: uint16(95),
  13122. },
  13123. 498: {
  13124. Fbits: uint8(8),
  13125. Fval: uint16(31),
  13126. },
  13127. 499: {
  13128. Fbits: uint8(9),
  13129. Fval: uint16(159),
  13130. },
  13131. 500: {
  13132. Fop: uint8(20),
  13133. Fbits: uint8(7),
  13134. Fval: uint16(99),
  13135. },
  13136. 501: {
  13137. Fbits: uint8(8),
  13138. Fval: uint16(127),
  13139. },
  13140. 502: {
  13141. Fbits: uint8(8),
  13142. Fval: uint16(63),
  13143. },
  13144. 503: {
  13145. Fbits: uint8(9),
  13146. Fval: uint16(223),
  13147. },
  13148. 504: {
  13149. Fop: uint8(18),
  13150. Fbits: uint8(7),
  13151. Fval: uint16(27),
  13152. },
  13153. 505: {
  13154. Fbits: uint8(8),
  13155. Fval: uint16(111),
  13156. },
  13157. 506: {
  13158. Fbits: uint8(8),
  13159. Fval: uint16(47),
  13160. },
  13161. 507: {
  13162. Fbits: uint8(9),
  13163. Fval: uint16(191),
  13164. },
  13165. 508: {
  13166. Fbits: uint8(8),
  13167. Fval: uint16(15),
  13168. },
  13169. 509: {
  13170. Fbits: uint8(8),
  13171. Fval: uint16(143),
  13172. },
  13173. 510: {
  13174. Fbits: uint8(8),
  13175. Fval: uint16(79),
  13176. },
  13177. 511: {
  13178. Fbits: uint8(9),
  13179. Fval: uint16(255),
  13180. },
  13181. }
  13182. var _distfix = [32]Tcode{
  13183. 0: {
  13184. Fop: uint8(16),
  13185. Fbits: uint8(5),
  13186. Fval: uint16(1),
  13187. },
  13188. 1: {
  13189. Fop: uint8(23),
  13190. Fbits: uint8(5),
  13191. Fval: uint16(257),
  13192. },
  13193. 2: {
  13194. Fop: uint8(19),
  13195. Fbits: uint8(5),
  13196. Fval: uint16(17),
  13197. },
  13198. 3: {
  13199. Fop: uint8(27),
  13200. Fbits: uint8(5),
  13201. Fval: uint16(4097),
  13202. },
  13203. 4: {
  13204. Fop: uint8(17),
  13205. Fbits: uint8(5),
  13206. Fval: uint16(5),
  13207. },
  13208. 5: {
  13209. Fop: uint8(25),
  13210. Fbits: uint8(5),
  13211. Fval: uint16(1025),
  13212. },
  13213. 6: {
  13214. Fop: uint8(21),
  13215. Fbits: uint8(5),
  13216. Fval: uint16(65),
  13217. },
  13218. 7: {
  13219. Fop: uint8(29),
  13220. Fbits: uint8(5),
  13221. Fval: uint16(16385),
  13222. },
  13223. 8: {
  13224. Fop: uint8(16),
  13225. Fbits: uint8(5),
  13226. Fval: uint16(3),
  13227. },
  13228. 9: {
  13229. Fop: uint8(24),
  13230. Fbits: uint8(5),
  13231. Fval: uint16(513),
  13232. },
  13233. 10: {
  13234. Fop: uint8(20),
  13235. Fbits: uint8(5),
  13236. Fval: uint16(33),
  13237. },
  13238. 11: {
  13239. Fop: uint8(28),
  13240. Fbits: uint8(5),
  13241. Fval: uint16(8193),
  13242. },
  13243. 12: {
  13244. Fop: uint8(18),
  13245. Fbits: uint8(5),
  13246. Fval: uint16(9),
  13247. },
  13248. 13: {
  13249. Fop: uint8(26),
  13250. Fbits: uint8(5),
  13251. Fval: uint16(2049),
  13252. },
  13253. 14: {
  13254. Fop: uint8(22),
  13255. Fbits: uint8(5),
  13256. Fval: uint16(129),
  13257. },
  13258. 15: {
  13259. Fop: uint8(64),
  13260. Fbits: uint8(5),
  13261. },
  13262. 16: {
  13263. Fop: uint8(16),
  13264. Fbits: uint8(5),
  13265. Fval: uint16(2),
  13266. },
  13267. 17: {
  13268. Fop: uint8(23),
  13269. Fbits: uint8(5),
  13270. Fval: uint16(385),
  13271. },
  13272. 18: {
  13273. Fop: uint8(19),
  13274. Fbits: uint8(5),
  13275. Fval: uint16(25),
  13276. },
  13277. 19: {
  13278. Fop: uint8(27),
  13279. Fbits: uint8(5),
  13280. Fval: uint16(6145),
  13281. },
  13282. 20: {
  13283. Fop: uint8(17),
  13284. Fbits: uint8(5),
  13285. Fval: uint16(7),
  13286. },
  13287. 21: {
  13288. Fop: uint8(25),
  13289. Fbits: uint8(5),
  13290. Fval: uint16(1537),
  13291. },
  13292. 22: {
  13293. Fop: uint8(21),
  13294. Fbits: uint8(5),
  13295. Fval: uint16(97),
  13296. },
  13297. 23: {
  13298. Fop: uint8(29),
  13299. Fbits: uint8(5),
  13300. Fval: uint16(24577),
  13301. },
  13302. 24: {
  13303. Fop: uint8(16),
  13304. Fbits: uint8(5),
  13305. Fval: uint16(4),
  13306. },
  13307. 25: {
  13308. Fop: uint8(24),
  13309. Fbits: uint8(5),
  13310. Fval: uint16(769),
  13311. },
  13312. 26: {
  13313. Fop: uint8(20),
  13314. Fbits: uint8(5),
  13315. Fval: uint16(49),
  13316. },
  13317. 27: {
  13318. Fop: uint8(28),
  13319. Fbits: uint8(5),
  13320. Fval: uint16(12289),
  13321. },
  13322. 28: {
  13323. Fop: uint8(18),
  13324. Fbits: uint8(5),
  13325. Fval: uint16(13),
  13326. },
  13327. 29: {
  13328. Fop: uint8(26),
  13329. Fbits: uint8(5),
  13330. Fval: uint16(3073),
  13331. },
  13332. 30: {
  13333. Fop: uint8(22),
  13334. Fbits: uint8(5),
  13335. Fval: uint16(193),
  13336. },
  13337. 31: {
  13338. Fop: uint8(64),
  13339. Fbits: uint8(5),
  13340. },
  13341. }
  13342. /* Macros for inflateBack(): */
  13343. /* Load returned state from inflate_fast() */
  13344. /* Set state from registers for inflate_fast() */
  13345. /* Clear the input bit accumulator */
  13346. /* Assure that some input is available. If input is requested, but denied,
  13347. then return a Z_BUF_ERROR from inflateBack(). */
  13348. /* Get a byte of input into the bit accumulator, or return from inflateBack()
  13349. with an error if there is no input available. */
  13350. /* Assure that there are at least n bits in the bit accumulator. If there is
  13351. not enough available input to do that, then return from inflateBack() with
  13352. an error. */
  13353. /* Return the low n bits of the bit accumulator (n < 16) */
  13354. /* Remove n bits from the bit accumulator */
  13355. /* Remove zero to seven bits as needed to go to a byte boundary */
  13356. /* Assure that some output space is available, by writing out the window
  13357. if it's full. If the write fails, return from inflateBack() with a
  13358. Z_BUF_ERROR. */
  13359. // C documentation
  13360. //
  13361. // /*
  13362. // strm provides the memory allocation functions and window buffer on input,
  13363. // and provides information on the unused input on return. For Z_DATA_ERROR
  13364. // returns, strm will also provide an error message.
  13365. //
  13366. // in() and out() are the call-back input and output functions. When
  13367. // inflateBack() needs more input, it calls in(). When inflateBack() has
  13368. // filled the window with output, or when it completes with data in the
  13369. // window, it calls out() to write out the data. The application must not
  13370. // change the provided input until in() is called again or inflateBack()
  13371. // returns. The application must not change the window/output buffer until
  13372. // inflateBack() returns.
  13373. //
  13374. // in() and out() are called with a descriptor parameter provided in the
  13375. // inflateBack() call. This parameter can be a structure that provides the
  13376. // information required to do the read or write, as well as accumulated
  13377. // information on the input and output such as totals and check values.
  13378. //
  13379. // in() should return zero on failure. out() should return non-zero on
  13380. // failure. If either in() or out() fails, than inflateBack() returns a
  13381. // Z_BUF_ERROR. strm->next_in can be checked for Z_NULL to see whether it
  13382. // was in() or out() that caused in the error. Otherwise, inflateBack()
  13383. // returns Z_STREAM_END on success, Z_DATA_ERROR for an deflate format
  13384. // error, or Z_MEM_ERROR if it could not allocate memory for the state.
  13385. // inflateBack() can also return Z_STREAM_ERROR if the input parameters
  13386. // are not correct, i.e. strm is Z_NULL or the state was not initialized.
  13387. // */
  13388. func XinflateBack(tls *libc.TLS, strm Tz_streamp, in Tin_func, in_desc uintptr, out Tout_func, out_desc uintptr) (r int32) {
  13389. bp := tls.Alloc(16)
  13390. defer tls.Free(16)
  13391. var bits, copy1, have, hold, left, len1, v1, v18, v20, v24, v29, v30, v43, v44 uint32
  13392. var from, put, state, v11, v15, v16, v17, v19, v21, v23, v25, v26, v27, v28, v31, v33, v35, v36, v37, v39, v41, v42, v46, v47 uintptr
  13393. var here, last Tcode
  13394. var ret int32
  13395. var _ /* next at bp+0 */ uintptr
  13396. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, copy1, from, have, here, hold, last, left, len1, put, ret, state, v1, v11, v15, v16, v17, v18, v19, v20, v21, v23, v24, v25, v26, v27, v28, v29, v30, v31, v33, v35, v36, v37, v39, v41, v42, v43, v44, v46, v47 /* return code */
  13397. /* Check that the strm exists and that the state was initialized */
  13398. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) {
  13399. return -int32(2)
  13400. }
  13401. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  13402. /* Reset the state */
  13403. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  13404. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13405. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  13406. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  13407. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13408. if *(*uintptr)(unsafe.Pointer(bp)) != uintptr(m_Z_NULL) {
  13409. v1 = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13410. } else {
  13411. v1 = uint32(0)
  13412. }
  13413. have = v1
  13414. hold = uint32(0)
  13415. bits = uint32(0)
  13416. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  13417. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13418. /* Inflate until end of block marked as last */
  13419. for {
  13420. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  13421. case int32(_TYPE):
  13422. goto _3
  13423. case int32(_STORED):
  13424. goto _4
  13425. case int32(_TABLE):
  13426. goto _5
  13427. case int32(_LEN):
  13428. goto _6
  13429. case int32(_DONE):
  13430. goto _7
  13431. case int32(_BAD):
  13432. goto _8
  13433. default:
  13434. goto _9
  13435. }
  13436. goto _10
  13437. _3:
  13438. ;
  13439. /* determine and dispatch block type */
  13440. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  13441. hold >>= bits & uint32(7)
  13442. bits -= bits & uint32(7)
  13443. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  13444. goto _10
  13445. }
  13446. for bits < uint32(libc.Int32FromInt32(3)) {
  13447. if have == uint32(0) {
  13448. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13449. if have == uint32(0) {
  13450. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13451. ret = -int32(5)
  13452. goto inf_leave
  13453. }
  13454. }
  13455. have--
  13456. v11 = *(*uintptr)(unsafe.Pointer(bp))
  13457. *(*uintptr)(unsafe.Pointer(bp))++
  13458. hold += uint32(*(*uint8)(unsafe.Pointer(v11))) << bits
  13459. bits += uint32(8)
  13460. }
  13461. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  13462. hold >>= uint32(libc.Int32FromInt32(1))
  13463. bits -= uint32(libc.Int32FromInt32(1))
  13464. switch hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  13465. case uint32(0): /* stored block */
  13466. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  13467. case uint32(1): /* fixed block */
  13468. _fixedtables(tls, state)
  13469. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN) /* decode codes */
  13470. case uint32(2): /* dynamic block */
  13471. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  13472. case uint32(3):
  13473. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  13474. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13475. }
  13476. hold >>= uint32(libc.Int32FromInt32(2))
  13477. bits -= uint32(libc.Int32FromInt32(2))
  13478. goto _10
  13479. _4:
  13480. ;
  13481. /* get and verify stored block length */
  13482. _14:
  13483. ;
  13484. hold >>= bits & uint32(7)
  13485. bits -= bits & uint32(7)
  13486. goto _13
  13487. _13:
  13488. ;
  13489. if 0 != 0 {
  13490. goto _14
  13491. }
  13492. goto _12
  13493. _12:
  13494. ; /* go to byte boundary */
  13495. for bits < uint32(libc.Int32FromInt32(32)) {
  13496. if have == uint32(0) {
  13497. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13498. if have == uint32(0) {
  13499. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13500. ret = -int32(5)
  13501. goto inf_leave
  13502. }
  13503. }
  13504. have--
  13505. v15 = *(*uintptr)(unsafe.Pointer(bp))
  13506. *(*uintptr)(unsafe.Pointer(bp))++
  13507. hold += uint32(*(*uint8)(unsafe.Pointer(v15))) << bits
  13508. bits += uint32(8)
  13509. }
  13510. if hold&uint32(0xffff) != hold>>int32(16)^uint32(0xffff) {
  13511. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 350
  13512. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13513. goto _10
  13514. }
  13515. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold & uint32(0xffff)
  13516. hold = uint32(0)
  13517. bits = uint32(0)
  13518. /* copy stored block from input to output */
  13519. for (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  13520. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  13521. if have == uint32(0) {
  13522. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13523. if have == uint32(0) {
  13524. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13525. ret = -int32(5)
  13526. goto inf_leave
  13527. }
  13528. }
  13529. if left == uint32(0) {
  13530. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  13531. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13532. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  13533. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  13534. ret = -int32(5)
  13535. goto inf_leave
  13536. }
  13537. }
  13538. if copy1 > have {
  13539. copy1 = have
  13540. }
  13541. if copy1 > left {
  13542. copy1 = left
  13543. }
  13544. libc.Xmemcpy(tls, put, *(*uintptr)(unsafe.Pointer(bp)), uint64(copy1))
  13545. have -= copy1
  13546. *(*uintptr)(unsafe.Pointer(bp)) += uintptr(copy1)
  13547. left -= copy1
  13548. put += uintptr(copy1)
  13549. *(*uint32)(unsafe.Pointer(state + 80)) -= copy1
  13550. }
  13551. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13552. goto _10
  13553. _5:
  13554. ;
  13555. /* get dynamic table entries descriptor */
  13556. for bits < uint32(libc.Int32FromInt32(14)) {
  13557. if have == uint32(0) {
  13558. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13559. if have == uint32(0) {
  13560. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13561. ret = -int32(5)
  13562. goto inf_leave
  13563. }
  13564. }
  13565. have--
  13566. v16 = *(*uintptr)(unsafe.Pointer(bp))
  13567. *(*uintptr)(unsafe.Pointer(bp))++
  13568. hold += uint32(*(*uint8)(unsafe.Pointer(v16))) << bits
  13569. bits += uint32(8)
  13570. }
  13571. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  13572. hold >>= uint32(libc.Int32FromInt32(5))
  13573. bits -= uint32(libc.Int32FromInt32(5))
  13574. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  13575. hold >>= uint32(libc.Int32FromInt32(5))
  13576. bits -= uint32(libc.Int32FromInt32(5))
  13577. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  13578. hold >>= uint32(libc.Int32FromInt32(4))
  13579. bits -= uint32(libc.Int32FromInt32(4))
  13580. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  13581. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 379
  13582. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13583. goto _10
  13584. }
  13585. /* get code length code lengths (not a typo) */
  13586. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13587. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  13588. for bits < uint32(libc.Int32FromInt32(3)) {
  13589. if have == uint32(0) {
  13590. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13591. if have == uint32(0) {
  13592. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13593. ret = -int32(5)
  13594. goto inf_leave
  13595. }
  13596. }
  13597. have--
  13598. v17 = *(*uintptr)(unsafe.Pointer(bp))
  13599. *(*uintptr)(unsafe.Pointer(bp))++
  13600. hold += uint32(*(*uint8)(unsafe.Pointer(v17))) << bits
  13601. bits += uint32(8)
  13602. }
  13603. v19 = state + 132
  13604. v18 = *(*uint32)(unsafe.Pointer(v19))
  13605. *(*uint32)(unsafe.Pointer(v19))++
  13606. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(_order[v18])*2)) = uint16(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  13607. hold >>= uint32(libc.Int32FromInt32(3))
  13608. bits -= uint32(libc.Int32FromInt32(3))
  13609. }
  13610. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  13611. v21 = state + 132
  13612. v20 = *(*uint32)(unsafe.Pointer(v21))
  13613. *(*uint32)(unsafe.Pointer(v21))++
  13614. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(_order[v20])*2)) = uint16(0)
  13615. }
  13616. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1360
  13617. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13618. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  13619. ret = Xinflate_table(tls, int32(_CODES), state+144, uint32(19), state+136, state+112, state+784)
  13620. if ret != 0 {
  13621. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 415
  13622. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13623. goto _10
  13624. }
  13625. /* get length and distance code code lengths */
  13626. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  13627. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13628. for {
  13629. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13630. if uint32(here.Fbits) <= bits {
  13631. break
  13632. }
  13633. if have == uint32(0) {
  13634. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13635. if have == uint32(0) {
  13636. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13637. ret = -int32(5)
  13638. goto inf_leave
  13639. }
  13640. }
  13641. have--
  13642. v23 = *(*uintptr)(unsafe.Pointer(bp))
  13643. *(*uintptr)(unsafe.Pointer(bp))++
  13644. hold += uint32(*(*uint8)(unsafe.Pointer(v23))) << bits
  13645. bits += uint32(8)
  13646. goto _22
  13647. _22:
  13648. }
  13649. if int32(here.Fval) < int32(16) {
  13650. hold >>= uint32(here.Fbits)
  13651. bits -= uint32(here.Fbits)
  13652. v25 = state + 132
  13653. v24 = *(*uint32)(unsafe.Pointer(v25))
  13654. *(*uint32)(unsafe.Pointer(v25))++
  13655. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(v24)*2)) = here.Fval
  13656. } else {
  13657. if int32(here.Fval) == int32(16) {
  13658. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  13659. if have == uint32(0) {
  13660. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13661. if have == uint32(0) {
  13662. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13663. ret = -int32(5)
  13664. goto inf_leave
  13665. }
  13666. }
  13667. have--
  13668. v26 = *(*uintptr)(unsafe.Pointer(bp))
  13669. *(*uintptr)(unsafe.Pointer(bp))++
  13670. hold += uint32(*(*uint8)(unsafe.Pointer(v26))) << bits
  13671. bits += uint32(8)
  13672. }
  13673. hold >>= uint32(here.Fbits)
  13674. bits -= uint32(here.Fbits)
  13675. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  13676. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  13677. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13678. break
  13679. }
  13680. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 144 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  13681. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  13682. hold >>= uint32(libc.Int32FromInt32(2))
  13683. bits -= uint32(libc.Int32FromInt32(2))
  13684. } else {
  13685. if int32(here.Fval) == int32(17) {
  13686. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  13687. if have == uint32(0) {
  13688. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13689. if have == uint32(0) {
  13690. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13691. ret = -int32(5)
  13692. goto inf_leave
  13693. }
  13694. }
  13695. have--
  13696. v27 = *(*uintptr)(unsafe.Pointer(bp))
  13697. *(*uintptr)(unsafe.Pointer(bp))++
  13698. hold += uint32(*(*uint8)(unsafe.Pointer(v27))) << bits
  13699. bits += uint32(8)
  13700. }
  13701. hold >>= uint32(here.Fbits)
  13702. bits -= uint32(here.Fbits)
  13703. len1 = uint32(0)
  13704. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  13705. hold >>= uint32(libc.Int32FromInt32(3))
  13706. bits -= uint32(libc.Int32FromInt32(3))
  13707. } else {
  13708. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  13709. if have == uint32(0) {
  13710. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13711. if have == uint32(0) {
  13712. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13713. ret = -int32(5)
  13714. goto inf_leave
  13715. }
  13716. }
  13717. have--
  13718. v28 = *(*uintptr)(unsafe.Pointer(bp))
  13719. *(*uintptr)(unsafe.Pointer(bp))++
  13720. hold += uint32(*(*uint8)(unsafe.Pointer(v28))) << bits
  13721. bits += uint32(8)
  13722. }
  13723. hold >>= uint32(here.Fbits)
  13724. bits -= uint32(here.Fbits)
  13725. len1 = uint32(0)
  13726. copy1 = uint32(11) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  13727. hold >>= uint32(libc.Int32FromInt32(7))
  13728. bits -= uint32(libc.Int32FromInt32(7))
  13729. }
  13730. }
  13731. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  13732. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  13733. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13734. break
  13735. }
  13736. for {
  13737. v29 = copy1
  13738. copy1--
  13739. if !(v29 != 0) {
  13740. break
  13741. }
  13742. v31 = state + 132
  13743. v30 = *(*uint32)(unsafe.Pointer(v31))
  13744. *(*uint32)(unsafe.Pointer(v31))++
  13745. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(v30)*2)) = uint16(len1)
  13746. }
  13747. }
  13748. }
  13749. /* handle error breaks in while */
  13750. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  13751. goto _10
  13752. }
  13753. /* check for end-of-block code (better have one) */
  13754. if int32(*(*uint16)(unsafe.Pointer(state + 144 + 256*2))) == 0 {
  13755. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 466
  13756. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13757. goto _10
  13758. }
  13759. /* build code tables -- note: do not change the lenbits or distbits
  13760. values here (9 and 6) without reading the comments in inftrees.h
  13761. concerning the ENOUGH constants, which depend on those values */
  13762. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1360
  13763. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13764. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  13765. ret = Xinflate_table(tls, int32(_LENS), state+144, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+136, state+112, state+784)
  13766. if ret != 0 {
  13767. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 503
  13768. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13769. goto _10
  13770. }
  13771. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  13772. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  13773. ret = Xinflate_table(tls, int32(_DISTS), state+144+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+136, state+116, state+784)
  13774. if ret != 0 {
  13775. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 531
  13776. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13777. goto _10
  13778. }
  13779. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  13780. /* fallthrough */
  13781. _6:
  13782. ;
  13783. /* use inflate_fast() if we have enough input and output */
  13784. if have >= uint32(6) && left >= uint32(258) {
  13785. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  13786. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  13787. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  13788. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  13789. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  13790. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  13791. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13792. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - left
  13793. }
  13794. Xinflate_fast(tls, strm, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize)
  13795. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  13796. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  13797. *(*uintptr)(unsafe.Pointer(bp)) = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  13798. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  13799. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  13800. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  13801. goto _10
  13802. }
  13803. /* get a literal, length, or end-of-block code */
  13804. for {
  13805. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  13806. if uint32(here.Fbits) <= bits {
  13807. break
  13808. }
  13809. if have == uint32(0) {
  13810. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13811. if have == uint32(0) {
  13812. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13813. ret = -int32(5)
  13814. goto inf_leave
  13815. }
  13816. }
  13817. have--
  13818. v33 = *(*uintptr)(unsafe.Pointer(bp))
  13819. *(*uintptr)(unsafe.Pointer(bp))++
  13820. hold += uint32(*(*uint8)(unsafe.Pointer(v33))) << bits
  13821. bits += uint32(8)
  13822. goto _32
  13823. _32:
  13824. }
  13825. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  13826. last = here
  13827. for {
  13828. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  13829. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  13830. break
  13831. }
  13832. if have == uint32(0) {
  13833. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13834. if have == uint32(0) {
  13835. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13836. ret = -int32(5)
  13837. goto inf_leave
  13838. }
  13839. }
  13840. have--
  13841. v35 = *(*uintptr)(unsafe.Pointer(bp))
  13842. *(*uintptr)(unsafe.Pointer(bp))++
  13843. hold += uint32(*(*uint8)(unsafe.Pointer(v35))) << bits
  13844. bits += uint32(8)
  13845. goto _34
  13846. _34:
  13847. }
  13848. hold >>= uint32(last.Fbits)
  13849. bits -= uint32(last.Fbits)
  13850. }
  13851. hold >>= uint32(here.Fbits)
  13852. bits -= uint32(here.Fbits)
  13853. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  13854. /* process literal */
  13855. if int32(here.Fop) == 0 {
  13856. if left == uint32(0) {
  13857. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  13858. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13859. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  13860. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  13861. ret = -int32(5)
  13862. goto inf_leave
  13863. }
  13864. }
  13865. v36 = put
  13866. put++
  13867. *(*uint8)(unsafe.Pointer(v36)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  13868. left--
  13869. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  13870. goto _10
  13871. }
  13872. /* process end of block */
  13873. if int32(here.Fop)&int32(32) != 0 {
  13874. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  13875. goto _10
  13876. }
  13877. /* invalid code */
  13878. if int32(here.Fop)&int32(64) != 0 {
  13879. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 553
  13880. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13881. goto _10
  13882. }
  13883. /* length code -- get extra bits, if any */
  13884. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  13885. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  13886. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  13887. if have == uint32(0) {
  13888. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13889. if have == uint32(0) {
  13890. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13891. ret = -int32(5)
  13892. goto inf_leave
  13893. }
  13894. }
  13895. have--
  13896. v37 = *(*uintptr)(unsafe.Pointer(bp))
  13897. *(*uintptr)(unsafe.Pointer(bp))++
  13898. hold += uint32(*(*uint8)(unsafe.Pointer(v37))) << bits
  13899. bits += uint32(8)
  13900. }
  13901. *(*uint32)(unsafe.Pointer(state + 80)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  13902. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13903. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13904. }
  13905. /* get distance code */
  13906. for {
  13907. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  13908. if uint32(here.Fbits) <= bits {
  13909. break
  13910. }
  13911. if have == uint32(0) {
  13912. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13913. if have == uint32(0) {
  13914. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13915. ret = -int32(5)
  13916. goto inf_leave
  13917. }
  13918. }
  13919. have--
  13920. v39 = *(*uintptr)(unsafe.Pointer(bp))
  13921. *(*uintptr)(unsafe.Pointer(bp))++
  13922. hold += uint32(*(*uint8)(unsafe.Pointer(v39))) << bits
  13923. bits += uint32(8)
  13924. goto _38
  13925. _38:
  13926. }
  13927. if int32(here.Fop)&int32(0xf0) == 0 {
  13928. last = here
  13929. for {
  13930. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  13931. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  13932. break
  13933. }
  13934. if have == uint32(0) {
  13935. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13936. if have == uint32(0) {
  13937. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13938. ret = -int32(5)
  13939. goto inf_leave
  13940. }
  13941. }
  13942. have--
  13943. v41 = *(*uintptr)(unsafe.Pointer(bp))
  13944. *(*uintptr)(unsafe.Pointer(bp))++
  13945. hold += uint32(*(*uint8)(unsafe.Pointer(v41))) << bits
  13946. bits += uint32(8)
  13947. goto _40
  13948. _40:
  13949. }
  13950. hold >>= uint32(last.Fbits)
  13951. bits -= uint32(last.Fbits)
  13952. }
  13953. hold >>= uint32(here.Fbits)
  13954. bits -= uint32(here.Fbits)
  13955. if int32(here.Fop)&int32(64) != 0 {
  13956. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 581
  13957. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13958. goto _10
  13959. }
  13960. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  13961. /* get distance extra bits, if any */
  13962. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  13963. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != uint32(0) {
  13964. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  13965. if have == uint32(0) {
  13966. have = (*(*func(*libc.TLS, uintptr, uintptr) uint32)(unsafe.Pointer(&struct{ uintptr }{in})))(tls, in_desc, bp)
  13967. if have == uint32(0) {
  13968. *(*uintptr)(unsafe.Pointer(bp)) = uintptr(m_Z_NULL)
  13969. ret = -int32(5)
  13970. goto inf_leave
  13971. }
  13972. }
  13973. have--
  13974. v42 = *(*uintptr)(unsafe.Pointer(bp))
  13975. *(*uintptr)(unsafe.Pointer(bp))++
  13976. hold += uint32(*(*uint8)(unsafe.Pointer(v42))) << bits
  13977. bits += uint32(8)
  13978. }
  13979. *(*uint32)(unsafe.Pointer(state + 84)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  13980. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13981. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  13982. }
  13983. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  13984. v43 = left
  13985. } else {
  13986. v43 = uint32(0)
  13987. }
  13988. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-v43 {
  13989. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 603
  13990. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  13991. goto _10
  13992. }
  13993. /* copy match from window to output */
  13994. for cond := true; cond; cond = (*Tinflate_state)(unsafe.Pointer(state)).Flength != uint32(0) {
  13995. if left == uint32(0) {
  13996. put = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  13997. left = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  13998. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = left
  13999. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, put, left) != 0 {
  14000. ret = -int32(5)
  14001. goto inf_leave
  14002. }
  14003. }
  14004. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Foffset
  14005. if copy1 < left {
  14006. from = put + uintptr(copy1)
  14007. copy1 = left - copy1
  14008. } else {
  14009. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  14010. copy1 = left
  14011. }
  14012. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  14013. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  14014. }
  14015. *(*uint32)(unsafe.Pointer(state + 80)) -= copy1
  14016. left -= copy1
  14017. for {
  14018. v46 = put
  14019. put++
  14020. v47 = from
  14021. from++
  14022. *(*uint8)(unsafe.Pointer(v46)) = *(*uint8)(unsafe.Pointer(v47))
  14023. goto _45
  14024. _45:
  14025. ;
  14026. copy1--
  14027. v44 = copy1
  14028. if !(v44 != 0) {
  14029. break
  14030. }
  14031. }
  14032. }
  14033. goto _10
  14034. _7:
  14035. ;
  14036. /* inflate stream terminated properly */
  14037. ret = int32(m_Z_STREAM_END)
  14038. goto inf_leave
  14039. _8:
  14040. ;
  14041. ret = -int32(3)
  14042. goto inf_leave
  14043. _9:
  14044. ;
  14045. /* can't happen, but makes compilers happy */
  14046. ret = -int32(2)
  14047. goto inf_leave
  14048. _10:
  14049. ;
  14050. goto _2
  14051. _2:
  14052. }
  14053. /* Write leftover output and return unused input */
  14054. goto inf_leave
  14055. inf_leave:
  14056. ;
  14057. if left < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  14058. if (*(*func(*libc.TLS, uintptr, uintptr, uint32) int32)(unsafe.Pointer(&struct{ uintptr }{out})))(tls, out_desc, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, (*Tinflate_state)(unsafe.Pointer(state)).Fwsize-left) != 0 && ret == int32(m_Z_STREAM_END) {
  14059. ret = -int32(5)
  14060. }
  14061. }
  14062. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = *(*uintptr)(unsafe.Pointer(bp))
  14063. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  14064. return ret
  14065. }
  14066. var _order = [19]uint16{
  14067. 0: uint16(16),
  14068. 1: uint16(17),
  14069. 2: uint16(18),
  14070. 4: uint16(8),
  14071. 5: uint16(7),
  14072. 6: uint16(9),
  14073. 7: uint16(6),
  14074. 8: uint16(10),
  14075. 9: uint16(5),
  14076. 10: uint16(11),
  14077. 11: uint16(4),
  14078. 12: uint16(12),
  14079. 13: uint16(3),
  14080. 14: uint16(13),
  14081. 15: uint16(2),
  14082. 16: uint16(14),
  14083. 17: uint16(1),
  14084. 18: uint16(15),
  14085. }
  14086. func XinflateBackEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14087. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fstate == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  14088. return -int32(2)
  14089. }
  14090. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  14091. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  14092. return m_Z_OK
  14093. }
  14094. // C documentation
  14095. //
  14096. // /*
  14097. // Decode literal, length, and distance codes and write out the resulting
  14098. // literal and match bytes until either not enough input or output is
  14099. // available, an end-of-block is encountered, or a data error is encountered.
  14100. // When large enough input and output buffers are supplied to inflate(), for
  14101. // example, a 16K input buffer and a 64K output buffer, more than 95% of the
  14102. // inflate execution time is spent in this routine.
  14103. //
  14104. // Entry assumptions:
  14105. //
  14106. // state->mode == LEN
  14107. // strm->avail_in >= 6
  14108. // strm->avail_out >= 258
  14109. // start >= strm->avail_out
  14110. // state->bits < 8
  14111. //
  14112. // On return, state->mode is one of:
  14113. //
  14114. // LEN -- ran out of enough output space or enough available input
  14115. // TYPE -- reached end of block code, inflate() to interpret next block
  14116. // BAD -- error in block data
  14117. //
  14118. // Notes:
  14119. //
  14120. // - The maximum input bits used by a length/distance pair is 15 bits for the
  14121. // length code, 5 bits for the length extra, 15 bits for the distance code,
  14122. // and 13 bits for the distance extra. This totals 48 bits, or six bytes.
  14123. // Therefore if strm->avail_in >= 6, then there is enough input to avoid
  14124. // checking for available input while decoding.
  14125. //
  14126. // - The maximum bytes that a single length/distance pair can output is 258
  14127. // bytes, which is the maximum length that can be coded. inflate_fast()
  14128. // requires strm->avail_out >= 258 for each loop to avoid checking for
  14129. // output space.
  14130. // */
  14131. func Xinflate_fast(tls *libc.TLS, strm Tz_streamp, start uint32) {
  14132. var beg, dcode, end, from, here, in, last, lcode, out, state, window, v1, v11, v12, v15, v16, v19, v2, v20, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v5, v6, v7, v8 uintptr
  14133. var bits, dist, dmask, hold, len1, lmask, op, whave, wnext, wsize, v13, v17, v21, v9 uint32
  14134. var v45, v46 int64
  14135. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = beg, bits, dcode, dist, dmask, end, from, here, hold, in, last, lcode, len1, lmask, op, out, state, whave, window, wnext, wsize, v1, v11, v12, v13, v15, v16, v17, v19, v2, v20, v21, v23, v24, v25, v26, v27, v28, v29, v3, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v4, v40, v41, v42, v43, v44, v45, v46, v5, v6, v7, v8, v9 /* where to copy match from */
  14136. /* copy state to local variables */
  14137. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14138. in = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  14139. last = in + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_in-libc.Uint32FromInt32(5))
  14140. out = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  14141. beg = out - uintptr(start-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out)
  14142. end = out + uintptr((*Tz_stream)(unsafe.Pointer(strm)).Favail_out-libc.Uint32FromInt32(257))
  14143. wsize = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  14144. whave = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  14145. wnext = (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  14146. window = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow
  14147. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  14148. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  14149. lcode = (*Tinflate_state)(unsafe.Pointer(state)).Flencode
  14150. dcode = (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode
  14151. lmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits - uint32(1)
  14152. dmask = uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits - uint32(1)
  14153. /* decode literals and length/distances until end-of-block or not enough
  14154. input data or output space */
  14155. for cond := true; cond; cond = in < last && out < end {
  14156. if bits < uint32(15) {
  14157. v1 = in
  14158. in++
  14159. hold += uint32(*(*uint8)(unsafe.Pointer(v1))) << bits
  14160. bits += uint32(8)
  14161. v2 = in
  14162. in++
  14163. hold += uint32(*(*uint8)(unsafe.Pointer(v2))) << bits
  14164. bits += uint32(8)
  14165. }
  14166. here = lcode + uintptr(hold&lmask)*4
  14167. goto dolen
  14168. dolen:
  14169. ;
  14170. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  14171. hold >>= op
  14172. bits -= op
  14173. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  14174. if op == uint32(0) { /* literal */
  14175. v3 = out
  14176. out++
  14177. *(*uint8)(unsafe.Pointer(v3)) = uint8((*Tcode)(unsafe.Pointer(here)).Fval)
  14178. } else {
  14179. if op&uint32(16) != 0 { /* length base */
  14180. len1 = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  14181. op &= uint32(15) /* number of extra bits */
  14182. if op != 0 {
  14183. if bits < op {
  14184. v4 = in
  14185. in++
  14186. hold += uint32(*(*uint8)(unsafe.Pointer(v4))) << bits
  14187. bits += uint32(8)
  14188. }
  14189. len1 += hold & (uint32(1)<<op - uint32(1))
  14190. hold >>= op
  14191. bits -= op
  14192. }
  14193. if bits < uint32(15) {
  14194. v5 = in
  14195. in++
  14196. hold += uint32(*(*uint8)(unsafe.Pointer(v5))) << bits
  14197. bits += uint32(8)
  14198. v6 = in
  14199. in++
  14200. hold += uint32(*(*uint8)(unsafe.Pointer(v6))) << bits
  14201. bits += uint32(8)
  14202. }
  14203. here = dcode + uintptr(hold&dmask)*4
  14204. goto dodist
  14205. dodist:
  14206. ;
  14207. op = uint32((*Tcode)(unsafe.Pointer(here)).Fbits)
  14208. hold >>= op
  14209. bits -= op
  14210. op = uint32((*Tcode)(unsafe.Pointer(here)).Fop)
  14211. if op&uint32(16) != 0 { /* distance base */
  14212. dist = uint32((*Tcode)(unsafe.Pointer(here)).Fval)
  14213. op &= uint32(15) /* number of extra bits */
  14214. if bits < op {
  14215. v7 = in
  14216. in++
  14217. hold += uint32(*(*uint8)(unsafe.Pointer(v7))) << bits
  14218. bits += uint32(8)
  14219. if bits < op {
  14220. v8 = in
  14221. in++
  14222. hold += uint32(*(*uint8)(unsafe.Pointer(v8))) << bits
  14223. bits += uint32(8)
  14224. }
  14225. }
  14226. dist += hold & (uint32(1)<<op - uint32(1))
  14227. hold >>= op
  14228. bits -= op
  14229. op = uint32(int64(out) - int64(beg)) /* max distance in output */
  14230. if dist > op { /* see if copy from window */
  14231. op = dist - op /* distance back in window */
  14232. if op > whave {
  14233. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  14234. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 603
  14235. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14236. break
  14237. }
  14238. }
  14239. from = window
  14240. if wnext == uint32(0) { /* very common case */
  14241. from += uintptr(wsize - op)
  14242. if op < len1 { /* some from window */
  14243. len1 -= op
  14244. for {
  14245. v11 = out
  14246. out++
  14247. v12 = from
  14248. from++
  14249. *(*uint8)(unsafe.Pointer(v11)) = *(*uint8)(unsafe.Pointer(v12))
  14250. goto _10
  14251. _10:
  14252. ;
  14253. op--
  14254. v9 = op
  14255. if !(v9 != 0) {
  14256. break
  14257. }
  14258. }
  14259. from = out - uintptr(dist) /* rest from output */
  14260. }
  14261. } else {
  14262. if wnext < op { /* wrap around window */
  14263. from += uintptr(wsize + wnext - op)
  14264. op -= wnext
  14265. if op < len1 { /* some from end of window */
  14266. len1 -= op
  14267. for {
  14268. v15 = out
  14269. out++
  14270. v16 = from
  14271. from++
  14272. *(*uint8)(unsafe.Pointer(v15)) = *(*uint8)(unsafe.Pointer(v16))
  14273. goto _14
  14274. _14:
  14275. ;
  14276. op--
  14277. v13 = op
  14278. if !(v13 != 0) {
  14279. break
  14280. }
  14281. }
  14282. from = window
  14283. if wnext < len1 { /* some from start of window */
  14284. op = wnext
  14285. len1 -= op
  14286. for {
  14287. v19 = out
  14288. out++
  14289. v20 = from
  14290. from++
  14291. *(*uint8)(unsafe.Pointer(v19)) = *(*uint8)(unsafe.Pointer(v20))
  14292. goto _18
  14293. _18:
  14294. ;
  14295. op--
  14296. v17 = op
  14297. if !(v17 != 0) {
  14298. break
  14299. }
  14300. }
  14301. from = out - uintptr(dist) /* rest from output */
  14302. }
  14303. }
  14304. } else { /* contiguous in window */
  14305. from += uintptr(wnext - op)
  14306. if op < len1 { /* some from window */
  14307. len1 -= op
  14308. for {
  14309. v23 = out
  14310. out++
  14311. v24 = from
  14312. from++
  14313. *(*uint8)(unsafe.Pointer(v23)) = *(*uint8)(unsafe.Pointer(v24))
  14314. goto _22
  14315. _22:
  14316. ;
  14317. op--
  14318. v21 = op
  14319. if !(v21 != 0) {
  14320. break
  14321. }
  14322. }
  14323. from = out - uintptr(dist) /* rest from output */
  14324. }
  14325. }
  14326. }
  14327. for len1 > uint32(2) {
  14328. v25 = out
  14329. out++
  14330. v26 = from
  14331. from++
  14332. *(*uint8)(unsafe.Pointer(v25)) = *(*uint8)(unsafe.Pointer(v26))
  14333. v27 = out
  14334. out++
  14335. v28 = from
  14336. from++
  14337. *(*uint8)(unsafe.Pointer(v27)) = *(*uint8)(unsafe.Pointer(v28))
  14338. v29 = out
  14339. out++
  14340. v30 = from
  14341. from++
  14342. *(*uint8)(unsafe.Pointer(v29)) = *(*uint8)(unsafe.Pointer(v30))
  14343. len1 -= uint32(3)
  14344. }
  14345. if len1 != 0 {
  14346. v31 = out
  14347. out++
  14348. v32 = from
  14349. from++
  14350. *(*uint8)(unsafe.Pointer(v31)) = *(*uint8)(unsafe.Pointer(v32))
  14351. if len1 > uint32(1) {
  14352. v33 = out
  14353. out++
  14354. v34 = from
  14355. from++
  14356. *(*uint8)(unsafe.Pointer(v33)) = *(*uint8)(unsafe.Pointer(v34))
  14357. }
  14358. }
  14359. } else {
  14360. from = out - uintptr(dist) /* copy direct from output */
  14361. for cond := true; cond; cond = len1 > uint32(2) { /* minimum length is three */
  14362. v35 = out
  14363. out++
  14364. v36 = from
  14365. from++
  14366. *(*uint8)(unsafe.Pointer(v35)) = *(*uint8)(unsafe.Pointer(v36))
  14367. v37 = out
  14368. out++
  14369. v38 = from
  14370. from++
  14371. *(*uint8)(unsafe.Pointer(v37)) = *(*uint8)(unsafe.Pointer(v38))
  14372. v39 = out
  14373. out++
  14374. v40 = from
  14375. from++
  14376. *(*uint8)(unsafe.Pointer(v39)) = *(*uint8)(unsafe.Pointer(v40))
  14377. len1 -= uint32(3)
  14378. }
  14379. if len1 != 0 {
  14380. v41 = out
  14381. out++
  14382. v42 = from
  14383. from++
  14384. *(*uint8)(unsafe.Pointer(v41)) = *(*uint8)(unsafe.Pointer(v42))
  14385. if len1 > uint32(1) {
  14386. v43 = out
  14387. out++
  14388. v44 = from
  14389. from++
  14390. *(*uint8)(unsafe.Pointer(v43)) = *(*uint8)(unsafe.Pointer(v44))
  14391. }
  14392. }
  14393. }
  14394. } else {
  14395. if op&uint32(64) == uint32(0) { /* 2nd level distance code */
  14396. here = dcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint32(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  14397. goto dodist
  14398. } else {
  14399. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 581
  14400. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14401. break
  14402. }
  14403. }
  14404. } else {
  14405. if op&uint32(64) == uint32(0) { /* 2nd level length code */
  14406. here = lcode + uintptr((*Tcode)(unsafe.Pointer(here)).Fval)*4 + uintptr(hold&uint32(libc.Uint32FromUint32(1)<<op-libc.Uint32FromInt32(1)))*4
  14407. goto dolen
  14408. } else {
  14409. if op&uint32(32) != 0 { /* end-of-block */
  14410. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  14411. break
  14412. } else {
  14413. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 553
  14414. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  14415. break
  14416. }
  14417. }
  14418. }
  14419. }
  14420. }
  14421. /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
  14422. len1 = bits >> int32(3)
  14423. in -= uintptr(len1)
  14424. bits -= len1 << int32(3)
  14425. hold &= uint32(uint32(1)<<bits - uint32(1))
  14426. /* update state and return */
  14427. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = in
  14428. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = out
  14429. if in < last {
  14430. v45 = int64(5) + (int64(last) - int64(in))
  14431. } else {
  14432. v45 = int64(5) - (int64(in) - int64(last))
  14433. }
  14434. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = uint32(v45)
  14435. if out < end {
  14436. v46 = int64(257) + (int64(end) - int64(out))
  14437. } else {
  14438. v46 = int64(257) - (int64(out) - int64(end))
  14439. }
  14440. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = uint32(v46)
  14441. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  14442. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  14443. return
  14444. }
  14445. func _inflateStateCheck(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14446. var state uintptr
  14447. _ = state
  14448. if strm == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) || (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  14449. return int32(1)
  14450. }
  14451. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14452. if state == uintptr(m_Z_NULL) || (*Tinflate_state)(unsafe.Pointer(state)).Fstrm != strm || (*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_HEAD) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode > int32(_SYNC) {
  14453. return int32(1)
  14454. }
  14455. return 0
  14456. }
  14457. func XinflateResetKeep(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14458. var state, v3, v4 uintptr
  14459. var v1 TuLong
  14460. var v2 uint32
  14461. _, _, _, _, _ = state, v1, v2, v3, v4
  14462. if _inflateStateCheck(tls, strm) != 0 {
  14463. return -int32(2)
  14464. }
  14465. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14466. v2 = libc.Uint32FromInt32(0)
  14467. (*Tinflate_state)(unsafe.Pointer(state)).Ftotal = v2
  14468. v1 = v2
  14469. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = v1
  14470. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = v1
  14471. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL)
  14472. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 { /* to support ill-conceived Java test suite */
  14473. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = uint32((*Tinflate_state)(unsafe.Pointer(state)).Fwrap & int32(1))
  14474. }
  14475. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD)
  14476. (*Tinflate_state)(unsafe.Pointer(state)).Flast = 0
  14477. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = 0
  14478. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = -int32(1)
  14479. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(32768)
  14480. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = uintptr(m_Z_NULL)
  14481. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint32(0)
  14482. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  14483. v4 = state + 1360
  14484. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = v4
  14485. v3 = v4
  14486. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = v3
  14487. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = v3
  14488. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  14489. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  14490. return m_Z_OK
  14491. }
  14492. func XinflateReset(tls *libc.TLS, strm Tz_streamp) (r int32) {
  14493. var state uintptr
  14494. _ = state
  14495. if _inflateStateCheck(tls, strm) != 0 {
  14496. return -int32(2)
  14497. }
  14498. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14499. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(0)
  14500. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  14501. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  14502. return XinflateResetKeep(tls, strm)
  14503. }
  14504. func XinflateReset2(tls *libc.TLS, strm Tz_streamp, windowBits int32) (r int32) {
  14505. var state uintptr
  14506. var wrap int32
  14507. _, _ = state, wrap
  14508. /* get the state */
  14509. if _inflateStateCheck(tls, strm) != 0 {
  14510. return -int32(2)
  14511. }
  14512. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14513. /* extract wrap request from windowBits parameter */
  14514. if windowBits < 0 {
  14515. if windowBits < -int32(15) {
  14516. return -int32(2)
  14517. }
  14518. wrap = 0
  14519. windowBits = -windowBits
  14520. } else {
  14521. wrap = windowBits>>int32(4) + int32(5)
  14522. if windowBits < int32(48) {
  14523. windowBits &= int32(15)
  14524. }
  14525. }
  14526. /* set number of window bits, free window if different */
  14527. if windowBits != 0 && (windowBits < int32(8) || windowBits > int32(15)) {
  14528. return -int32(2)
  14529. }
  14530. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Fwbits != uint32(windowBits) {
  14531. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow)
  14532. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  14533. }
  14534. /* update state and reset the rest of it */
  14535. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = wrap
  14536. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(windowBits)
  14537. return XinflateReset(tls, strm)
  14538. }
  14539. func XinflateInit2_(tls *libc.TLS, strm Tz_streamp, windowBits int32, version uintptr, stream_size int32) (r int32) {
  14540. var ret int32
  14541. var state uintptr
  14542. _, _ = ret, state
  14543. if version == uintptr(m_Z_NULL) || int32(*(*int8)(unsafe.Pointer(version))) != int32(*(*int8)(unsafe.Pointer(__ccgo_ts))) || stream_size != int32(libc.Uint64FromInt64(88)) {
  14544. return -int32(6)
  14545. }
  14546. if strm == uintptr(m_Z_NULL) {
  14547. return -int32(2)
  14548. }
  14549. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = uintptr(m_Z_NULL) /* in case we return an error */
  14550. if (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc == libc.UintptrFromInt32(0) {
  14551. (*Tz_stream)(unsafe.Pointer(strm)).Fzalloc = __ccgo_fp(Xzcalloc)
  14552. (*Tz_stream)(unsafe.Pointer(strm)).Fopaque = libc.UintptrFromInt32(0)
  14553. }
  14554. if (*Tz_stream)(unsafe.Pointer(strm)).Fzfree == libc.UintptrFromInt32(0) {
  14555. (*Tz_stream)(unsafe.Pointer(strm)).Fzfree = __ccgo_fp(Xzcfree)
  14556. }
  14557. state = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7152)))
  14558. if state == uintptr(m_Z_NULL) {
  14559. return -int32(4)
  14560. }
  14561. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = state
  14562. (*Tinflate_state)(unsafe.Pointer(state)).Fstrm = strm
  14563. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = uintptr(m_Z_NULL)
  14564. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HEAD) /* to pass state test in inflateReset2() */
  14565. ret = XinflateReset2(tls, strm, windowBits)
  14566. if ret != m_Z_OK {
  14567. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, state)
  14568. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  14569. }
  14570. return ret
  14571. }
  14572. func XinflateInit_(tls *libc.TLS, strm Tz_streamp, version uintptr, stream_size int32) (r int32) {
  14573. return XinflateInit2_(tls, strm, int32(m_MAX_WBITS), version, stream_size)
  14574. }
  14575. func XinflatePrime(tls *libc.TLS, strm Tz_streamp, bits int32, value int32) (r int32) {
  14576. var state uintptr
  14577. _ = state
  14578. if _inflateStateCheck(tls, strm) != 0 {
  14579. return -int32(2)
  14580. }
  14581. if bits == 0 {
  14582. return m_Z_OK
  14583. }
  14584. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  14585. if bits < 0 {
  14586. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = uint32(0)
  14587. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = uint32(0)
  14588. return m_Z_OK
  14589. }
  14590. if bits > int32(16) || (*Tinflate_state)(unsafe.Pointer(state)).Fbits+uint32(bits) > uint32(32) {
  14591. return -int32(2)
  14592. }
  14593. value = int32(value & (libc.Int32FromInt32(1)<<bits - libc.Int32FromInt32(1)))
  14594. *(*uint32)(unsafe.Pointer(state + 72)) += uint32(uint32(value) << (*Tinflate_state)(unsafe.Pointer(state)).Fbits)
  14595. *(*uint32)(unsafe.Pointer(state + 76)) += uint32(bits)
  14596. return m_Z_OK
  14597. }
  14598. // C documentation
  14599. //
  14600. // /*
  14601. // Return state with length and distance decoding tables and index sizes set to
  14602. // fixed code decoding. Normally this returns fixed tables from inffixed.h.
  14603. // If BUILDFIXED is defined, then instead this routine builds the tables the
  14604. // first time it's called, and returns those tables the first time and
  14605. // thereafter. This reduces the size of the code by about 2K bytes, in
  14606. // exchange for a little execution time. However, BUILDFIXED should not be
  14607. // used for threaded applications, since the rewriting of the tables and virgin
  14608. // may not be thread-safe.
  14609. // */
  14610. func _fixedtables1(tls *libc.TLS, state uintptr) {
  14611. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = uintptr(unsafe.Pointer(&_lenfix1))
  14612. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  14613. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = uintptr(unsafe.Pointer(&_distfix1))
  14614. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(5)
  14615. }
  14616. var _lenfix1 = [512]Tcode{
  14617. 0: {
  14618. Fop: uint8(96),
  14619. Fbits: uint8(7),
  14620. },
  14621. 1: {
  14622. Fbits: uint8(8),
  14623. Fval: uint16(80),
  14624. },
  14625. 2: {
  14626. Fbits: uint8(8),
  14627. Fval: uint16(16),
  14628. },
  14629. 3: {
  14630. Fop: uint8(20),
  14631. Fbits: uint8(8),
  14632. Fval: uint16(115),
  14633. },
  14634. 4: {
  14635. Fop: uint8(18),
  14636. Fbits: uint8(7),
  14637. Fval: uint16(31),
  14638. },
  14639. 5: {
  14640. Fbits: uint8(8),
  14641. Fval: uint16(112),
  14642. },
  14643. 6: {
  14644. Fbits: uint8(8),
  14645. Fval: uint16(48),
  14646. },
  14647. 7: {
  14648. Fbits: uint8(9),
  14649. Fval: uint16(192),
  14650. },
  14651. 8: {
  14652. Fop: uint8(16),
  14653. Fbits: uint8(7),
  14654. Fval: uint16(10),
  14655. },
  14656. 9: {
  14657. Fbits: uint8(8),
  14658. Fval: uint16(96),
  14659. },
  14660. 10: {
  14661. Fbits: uint8(8),
  14662. Fval: uint16(32),
  14663. },
  14664. 11: {
  14665. Fbits: uint8(9),
  14666. Fval: uint16(160),
  14667. },
  14668. 12: {
  14669. Fbits: uint8(8),
  14670. },
  14671. 13: {
  14672. Fbits: uint8(8),
  14673. Fval: uint16(128),
  14674. },
  14675. 14: {
  14676. Fbits: uint8(8),
  14677. Fval: uint16(64),
  14678. },
  14679. 15: {
  14680. Fbits: uint8(9),
  14681. Fval: uint16(224),
  14682. },
  14683. 16: {
  14684. Fop: uint8(16),
  14685. Fbits: uint8(7),
  14686. Fval: uint16(6),
  14687. },
  14688. 17: {
  14689. Fbits: uint8(8),
  14690. Fval: uint16(88),
  14691. },
  14692. 18: {
  14693. Fbits: uint8(8),
  14694. Fval: uint16(24),
  14695. },
  14696. 19: {
  14697. Fbits: uint8(9),
  14698. Fval: uint16(144),
  14699. },
  14700. 20: {
  14701. Fop: uint8(19),
  14702. Fbits: uint8(7),
  14703. Fval: uint16(59),
  14704. },
  14705. 21: {
  14706. Fbits: uint8(8),
  14707. Fval: uint16(120),
  14708. },
  14709. 22: {
  14710. Fbits: uint8(8),
  14711. Fval: uint16(56),
  14712. },
  14713. 23: {
  14714. Fbits: uint8(9),
  14715. Fval: uint16(208),
  14716. },
  14717. 24: {
  14718. Fop: uint8(17),
  14719. Fbits: uint8(7),
  14720. Fval: uint16(17),
  14721. },
  14722. 25: {
  14723. Fbits: uint8(8),
  14724. Fval: uint16(104),
  14725. },
  14726. 26: {
  14727. Fbits: uint8(8),
  14728. Fval: uint16(40),
  14729. },
  14730. 27: {
  14731. Fbits: uint8(9),
  14732. Fval: uint16(176),
  14733. },
  14734. 28: {
  14735. Fbits: uint8(8),
  14736. Fval: uint16(8),
  14737. },
  14738. 29: {
  14739. Fbits: uint8(8),
  14740. Fval: uint16(136),
  14741. },
  14742. 30: {
  14743. Fbits: uint8(8),
  14744. Fval: uint16(72),
  14745. },
  14746. 31: {
  14747. Fbits: uint8(9),
  14748. Fval: uint16(240),
  14749. },
  14750. 32: {
  14751. Fop: uint8(16),
  14752. Fbits: uint8(7),
  14753. Fval: uint16(4),
  14754. },
  14755. 33: {
  14756. Fbits: uint8(8),
  14757. Fval: uint16(84),
  14758. },
  14759. 34: {
  14760. Fbits: uint8(8),
  14761. Fval: uint16(20),
  14762. },
  14763. 35: {
  14764. Fop: uint8(21),
  14765. Fbits: uint8(8),
  14766. Fval: uint16(227),
  14767. },
  14768. 36: {
  14769. Fop: uint8(19),
  14770. Fbits: uint8(7),
  14771. Fval: uint16(43),
  14772. },
  14773. 37: {
  14774. Fbits: uint8(8),
  14775. Fval: uint16(116),
  14776. },
  14777. 38: {
  14778. Fbits: uint8(8),
  14779. Fval: uint16(52),
  14780. },
  14781. 39: {
  14782. Fbits: uint8(9),
  14783. Fval: uint16(200),
  14784. },
  14785. 40: {
  14786. Fop: uint8(17),
  14787. Fbits: uint8(7),
  14788. Fval: uint16(13),
  14789. },
  14790. 41: {
  14791. Fbits: uint8(8),
  14792. Fval: uint16(100),
  14793. },
  14794. 42: {
  14795. Fbits: uint8(8),
  14796. Fval: uint16(36),
  14797. },
  14798. 43: {
  14799. Fbits: uint8(9),
  14800. Fval: uint16(168),
  14801. },
  14802. 44: {
  14803. Fbits: uint8(8),
  14804. Fval: uint16(4),
  14805. },
  14806. 45: {
  14807. Fbits: uint8(8),
  14808. Fval: uint16(132),
  14809. },
  14810. 46: {
  14811. Fbits: uint8(8),
  14812. Fval: uint16(68),
  14813. },
  14814. 47: {
  14815. Fbits: uint8(9),
  14816. Fval: uint16(232),
  14817. },
  14818. 48: {
  14819. Fop: uint8(16),
  14820. Fbits: uint8(7),
  14821. Fval: uint16(8),
  14822. },
  14823. 49: {
  14824. Fbits: uint8(8),
  14825. Fval: uint16(92),
  14826. },
  14827. 50: {
  14828. Fbits: uint8(8),
  14829. Fval: uint16(28),
  14830. },
  14831. 51: {
  14832. Fbits: uint8(9),
  14833. Fval: uint16(152),
  14834. },
  14835. 52: {
  14836. Fop: uint8(20),
  14837. Fbits: uint8(7),
  14838. Fval: uint16(83),
  14839. },
  14840. 53: {
  14841. Fbits: uint8(8),
  14842. Fval: uint16(124),
  14843. },
  14844. 54: {
  14845. Fbits: uint8(8),
  14846. Fval: uint16(60),
  14847. },
  14848. 55: {
  14849. Fbits: uint8(9),
  14850. Fval: uint16(216),
  14851. },
  14852. 56: {
  14853. Fop: uint8(18),
  14854. Fbits: uint8(7),
  14855. Fval: uint16(23),
  14856. },
  14857. 57: {
  14858. Fbits: uint8(8),
  14859. Fval: uint16(108),
  14860. },
  14861. 58: {
  14862. Fbits: uint8(8),
  14863. Fval: uint16(44),
  14864. },
  14865. 59: {
  14866. Fbits: uint8(9),
  14867. Fval: uint16(184),
  14868. },
  14869. 60: {
  14870. Fbits: uint8(8),
  14871. Fval: uint16(12),
  14872. },
  14873. 61: {
  14874. Fbits: uint8(8),
  14875. Fval: uint16(140),
  14876. },
  14877. 62: {
  14878. Fbits: uint8(8),
  14879. Fval: uint16(76),
  14880. },
  14881. 63: {
  14882. Fbits: uint8(9),
  14883. Fval: uint16(248),
  14884. },
  14885. 64: {
  14886. Fop: uint8(16),
  14887. Fbits: uint8(7),
  14888. Fval: uint16(3),
  14889. },
  14890. 65: {
  14891. Fbits: uint8(8),
  14892. Fval: uint16(82),
  14893. },
  14894. 66: {
  14895. Fbits: uint8(8),
  14896. Fval: uint16(18),
  14897. },
  14898. 67: {
  14899. Fop: uint8(21),
  14900. Fbits: uint8(8),
  14901. Fval: uint16(163),
  14902. },
  14903. 68: {
  14904. Fop: uint8(19),
  14905. Fbits: uint8(7),
  14906. Fval: uint16(35),
  14907. },
  14908. 69: {
  14909. Fbits: uint8(8),
  14910. Fval: uint16(114),
  14911. },
  14912. 70: {
  14913. Fbits: uint8(8),
  14914. Fval: uint16(50),
  14915. },
  14916. 71: {
  14917. Fbits: uint8(9),
  14918. Fval: uint16(196),
  14919. },
  14920. 72: {
  14921. Fop: uint8(17),
  14922. Fbits: uint8(7),
  14923. Fval: uint16(11),
  14924. },
  14925. 73: {
  14926. Fbits: uint8(8),
  14927. Fval: uint16(98),
  14928. },
  14929. 74: {
  14930. Fbits: uint8(8),
  14931. Fval: uint16(34),
  14932. },
  14933. 75: {
  14934. Fbits: uint8(9),
  14935. Fval: uint16(164),
  14936. },
  14937. 76: {
  14938. Fbits: uint8(8),
  14939. Fval: uint16(2),
  14940. },
  14941. 77: {
  14942. Fbits: uint8(8),
  14943. Fval: uint16(130),
  14944. },
  14945. 78: {
  14946. Fbits: uint8(8),
  14947. Fval: uint16(66),
  14948. },
  14949. 79: {
  14950. Fbits: uint8(9),
  14951. Fval: uint16(228),
  14952. },
  14953. 80: {
  14954. Fop: uint8(16),
  14955. Fbits: uint8(7),
  14956. Fval: uint16(7),
  14957. },
  14958. 81: {
  14959. Fbits: uint8(8),
  14960. Fval: uint16(90),
  14961. },
  14962. 82: {
  14963. Fbits: uint8(8),
  14964. Fval: uint16(26),
  14965. },
  14966. 83: {
  14967. Fbits: uint8(9),
  14968. Fval: uint16(148),
  14969. },
  14970. 84: {
  14971. Fop: uint8(20),
  14972. Fbits: uint8(7),
  14973. Fval: uint16(67),
  14974. },
  14975. 85: {
  14976. Fbits: uint8(8),
  14977. Fval: uint16(122),
  14978. },
  14979. 86: {
  14980. Fbits: uint8(8),
  14981. Fval: uint16(58),
  14982. },
  14983. 87: {
  14984. Fbits: uint8(9),
  14985. Fval: uint16(212),
  14986. },
  14987. 88: {
  14988. Fop: uint8(18),
  14989. Fbits: uint8(7),
  14990. Fval: uint16(19),
  14991. },
  14992. 89: {
  14993. Fbits: uint8(8),
  14994. Fval: uint16(106),
  14995. },
  14996. 90: {
  14997. Fbits: uint8(8),
  14998. Fval: uint16(42),
  14999. },
  15000. 91: {
  15001. Fbits: uint8(9),
  15002. Fval: uint16(180),
  15003. },
  15004. 92: {
  15005. Fbits: uint8(8),
  15006. Fval: uint16(10),
  15007. },
  15008. 93: {
  15009. Fbits: uint8(8),
  15010. Fval: uint16(138),
  15011. },
  15012. 94: {
  15013. Fbits: uint8(8),
  15014. Fval: uint16(74),
  15015. },
  15016. 95: {
  15017. Fbits: uint8(9),
  15018. Fval: uint16(244),
  15019. },
  15020. 96: {
  15021. Fop: uint8(16),
  15022. Fbits: uint8(7),
  15023. Fval: uint16(5),
  15024. },
  15025. 97: {
  15026. Fbits: uint8(8),
  15027. Fval: uint16(86),
  15028. },
  15029. 98: {
  15030. Fbits: uint8(8),
  15031. Fval: uint16(22),
  15032. },
  15033. 99: {
  15034. Fop: uint8(64),
  15035. Fbits: uint8(8),
  15036. },
  15037. 100: {
  15038. Fop: uint8(19),
  15039. Fbits: uint8(7),
  15040. Fval: uint16(51),
  15041. },
  15042. 101: {
  15043. Fbits: uint8(8),
  15044. Fval: uint16(118),
  15045. },
  15046. 102: {
  15047. Fbits: uint8(8),
  15048. Fval: uint16(54),
  15049. },
  15050. 103: {
  15051. Fbits: uint8(9),
  15052. Fval: uint16(204),
  15053. },
  15054. 104: {
  15055. Fop: uint8(17),
  15056. Fbits: uint8(7),
  15057. Fval: uint16(15),
  15058. },
  15059. 105: {
  15060. Fbits: uint8(8),
  15061. Fval: uint16(102),
  15062. },
  15063. 106: {
  15064. Fbits: uint8(8),
  15065. Fval: uint16(38),
  15066. },
  15067. 107: {
  15068. Fbits: uint8(9),
  15069. Fval: uint16(172),
  15070. },
  15071. 108: {
  15072. Fbits: uint8(8),
  15073. Fval: uint16(6),
  15074. },
  15075. 109: {
  15076. Fbits: uint8(8),
  15077. Fval: uint16(134),
  15078. },
  15079. 110: {
  15080. Fbits: uint8(8),
  15081. Fval: uint16(70),
  15082. },
  15083. 111: {
  15084. Fbits: uint8(9),
  15085. Fval: uint16(236),
  15086. },
  15087. 112: {
  15088. Fop: uint8(16),
  15089. Fbits: uint8(7),
  15090. Fval: uint16(9),
  15091. },
  15092. 113: {
  15093. Fbits: uint8(8),
  15094. Fval: uint16(94),
  15095. },
  15096. 114: {
  15097. Fbits: uint8(8),
  15098. Fval: uint16(30),
  15099. },
  15100. 115: {
  15101. Fbits: uint8(9),
  15102. Fval: uint16(156),
  15103. },
  15104. 116: {
  15105. Fop: uint8(20),
  15106. Fbits: uint8(7),
  15107. Fval: uint16(99),
  15108. },
  15109. 117: {
  15110. Fbits: uint8(8),
  15111. Fval: uint16(126),
  15112. },
  15113. 118: {
  15114. Fbits: uint8(8),
  15115. Fval: uint16(62),
  15116. },
  15117. 119: {
  15118. Fbits: uint8(9),
  15119. Fval: uint16(220),
  15120. },
  15121. 120: {
  15122. Fop: uint8(18),
  15123. Fbits: uint8(7),
  15124. Fval: uint16(27),
  15125. },
  15126. 121: {
  15127. Fbits: uint8(8),
  15128. Fval: uint16(110),
  15129. },
  15130. 122: {
  15131. Fbits: uint8(8),
  15132. Fval: uint16(46),
  15133. },
  15134. 123: {
  15135. Fbits: uint8(9),
  15136. Fval: uint16(188),
  15137. },
  15138. 124: {
  15139. Fbits: uint8(8),
  15140. Fval: uint16(14),
  15141. },
  15142. 125: {
  15143. Fbits: uint8(8),
  15144. Fval: uint16(142),
  15145. },
  15146. 126: {
  15147. Fbits: uint8(8),
  15148. Fval: uint16(78),
  15149. },
  15150. 127: {
  15151. Fbits: uint8(9),
  15152. Fval: uint16(252),
  15153. },
  15154. 128: {
  15155. Fop: uint8(96),
  15156. Fbits: uint8(7),
  15157. },
  15158. 129: {
  15159. Fbits: uint8(8),
  15160. Fval: uint16(81),
  15161. },
  15162. 130: {
  15163. Fbits: uint8(8),
  15164. Fval: uint16(17),
  15165. },
  15166. 131: {
  15167. Fop: uint8(21),
  15168. Fbits: uint8(8),
  15169. Fval: uint16(131),
  15170. },
  15171. 132: {
  15172. Fop: uint8(18),
  15173. Fbits: uint8(7),
  15174. Fval: uint16(31),
  15175. },
  15176. 133: {
  15177. Fbits: uint8(8),
  15178. Fval: uint16(113),
  15179. },
  15180. 134: {
  15181. Fbits: uint8(8),
  15182. Fval: uint16(49),
  15183. },
  15184. 135: {
  15185. Fbits: uint8(9),
  15186. Fval: uint16(194),
  15187. },
  15188. 136: {
  15189. Fop: uint8(16),
  15190. Fbits: uint8(7),
  15191. Fval: uint16(10),
  15192. },
  15193. 137: {
  15194. Fbits: uint8(8),
  15195. Fval: uint16(97),
  15196. },
  15197. 138: {
  15198. Fbits: uint8(8),
  15199. Fval: uint16(33),
  15200. },
  15201. 139: {
  15202. Fbits: uint8(9),
  15203. Fval: uint16(162),
  15204. },
  15205. 140: {
  15206. Fbits: uint8(8),
  15207. Fval: uint16(1),
  15208. },
  15209. 141: {
  15210. Fbits: uint8(8),
  15211. Fval: uint16(129),
  15212. },
  15213. 142: {
  15214. Fbits: uint8(8),
  15215. Fval: uint16(65),
  15216. },
  15217. 143: {
  15218. Fbits: uint8(9),
  15219. Fval: uint16(226),
  15220. },
  15221. 144: {
  15222. Fop: uint8(16),
  15223. Fbits: uint8(7),
  15224. Fval: uint16(6),
  15225. },
  15226. 145: {
  15227. Fbits: uint8(8),
  15228. Fval: uint16(89),
  15229. },
  15230. 146: {
  15231. Fbits: uint8(8),
  15232. Fval: uint16(25),
  15233. },
  15234. 147: {
  15235. Fbits: uint8(9),
  15236. Fval: uint16(146),
  15237. },
  15238. 148: {
  15239. Fop: uint8(19),
  15240. Fbits: uint8(7),
  15241. Fval: uint16(59),
  15242. },
  15243. 149: {
  15244. Fbits: uint8(8),
  15245. Fval: uint16(121),
  15246. },
  15247. 150: {
  15248. Fbits: uint8(8),
  15249. Fval: uint16(57),
  15250. },
  15251. 151: {
  15252. Fbits: uint8(9),
  15253. Fval: uint16(210),
  15254. },
  15255. 152: {
  15256. Fop: uint8(17),
  15257. Fbits: uint8(7),
  15258. Fval: uint16(17),
  15259. },
  15260. 153: {
  15261. Fbits: uint8(8),
  15262. Fval: uint16(105),
  15263. },
  15264. 154: {
  15265. Fbits: uint8(8),
  15266. Fval: uint16(41),
  15267. },
  15268. 155: {
  15269. Fbits: uint8(9),
  15270. Fval: uint16(178),
  15271. },
  15272. 156: {
  15273. Fbits: uint8(8),
  15274. Fval: uint16(9),
  15275. },
  15276. 157: {
  15277. Fbits: uint8(8),
  15278. Fval: uint16(137),
  15279. },
  15280. 158: {
  15281. Fbits: uint8(8),
  15282. Fval: uint16(73),
  15283. },
  15284. 159: {
  15285. Fbits: uint8(9),
  15286. Fval: uint16(242),
  15287. },
  15288. 160: {
  15289. Fop: uint8(16),
  15290. Fbits: uint8(7),
  15291. Fval: uint16(4),
  15292. },
  15293. 161: {
  15294. Fbits: uint8(8),
  15295. Fval: uint16(85),
  15296. },
  15297. 162: {
  15298. Fbits: uint8(8),
  15299. Fval: uint16(21),
  15300. },
  15301. 163: {
  15302. Fop: uint8(16),
  15303. Fbits: uint8(8),
  15304. Fval: uint16(258),
  15305. },
  15306. 164: {
  15307. Fop: uint8(19),
  15308. Fbits: uint8(7),
  15309. Fval: uint16(43),
  15310. },
  15311. 165: {
  15312. Fbits: uint8(8),
  15313. Fval: uint16(117),
  15314. },
  15315. 166: {
  15316. Fbits: uint8(8),
  15317. Fval: uint16(53),
  15318. },
  15319. 167: {
  15320. Fbits: uint8(9),
  15321. Fval: uint16(202),
  15322. },
  15323. 168: {
  15324. Fop: uint8(17),
  15325. Fbits: uint8(7),
  15326. Fval: uint16(13),
  15327. },
  15328. 169: {
  15329. Fbits: uint8(8),
  15330. Fval: uint16(101),
  15331. },
  15332. 170: {
  15333. Fbits: uint8(8),
  15334. Fval: uint16(37),
  15335. },
  15336. 171: {
  15337. Fbits: uint8(9),
  15338. Fval: uint16(170),
  15339. },
  15340. 172: {
  15341. Fbits: uint8(8),
  15342. Fval: uint16(5),
  15343. },
  15344. 173: {
  15345. Fbits: uint8(8),
  15346. Fval: uint16(133),
  15347. },
  15348. 174: {
  15349. Fbits: uint8(8),
  15350. Fval: uint16(69),
  15351. },
  15352. 175: {
  15353. Fbits: uint8(9),
  15354. Fval: uint16(234),
  15355. },
  15356. 176: {
  15357. Fop: uint8(16),
  15358. Fbits: uint8(7),
  15359. Fval: uint16(8),
  15360. },
  15361. 177: {
  15362. Fbits: uint8(8),
  15363. Fval: uint16(93),
  15364. },
  15365. 178: {
  15366. Fbits: uint8(8),
  15367. Fval: uint16(29),
  15368. },
  15369. 179: {
  15370. Fbits: uint8(9),
  15371. Fval: uint16(154),
  15372. },
  15373. 180: {
  15374. Fop: uint8(20),
  15375. Fbits: uint8(7),
  15376. Fval: uint16(83),
  15377. },
  15378. 181: {
  15379. Fbits: uint8(8),
  15380. Fval: uint16(125),
  15381. },
  15382. 182: {
  15383. Fbits: uint8(8),
  15384. Fval: uint16(61),
  15385. },
  15386. 183: {
  15387. Fbits: uint8(9),
  15388. Fval: uint16(218),
  15389. },
  15390. 184: {
  15391. Fop: uint8(18),
  15392. Fbits: uint8(7),
  15393. Fval: uint16(23),
  15394. },
  15395. 185: {
  15396. Fbits: uint8(8),
  15397. Fval: uint16(109),
  15398. },
  15399. 186: {
  15400. Fbits: uint8(8),
  15401. Fval: uint16(45),
  15402. },
  15403. 187: {
  15404. Fbits: uint8(9),
  15405. Fval: uint16(186),
  15406. },
  15407. 188: {
  15408. Fbits: uint8(8),
  15409. Fval: uint16(13),
  15410. },
  15411. 189: {
  15412. Fbits: uint8(8),
  15413. Fval: uint16(141),
  15414. },
  15415. 190: {
  15416. Fbits: uint8(8),
  15417. Fval: uint16(77),
  15418. },
  15419. 191: {
  15420. Fbits: uint8(9),
  15421. Fval: uint16(250),
  15422. },
  15423. 192: {
  15424. Fop: uint8(16),
  15425. Fbits: uint8(7),
  15426. Fval: uint16(3),
  15427. },
  15428. 193: {
  15429. Fbits: uint8(8),
  15430. Fval: uint16(83),
  15431. },
  15432. 194: {
  15433. Fbits: uint8(8),
  15434. Fval: uint16(19),
  15435. },
  15436. 195: {
  15437. Fop: uint8(21),
  15438. Fbits: uint8(8),
  15439. Fval: uint16(195),
  15440. },
  15441. 196: {
  15442. Fop: uint8(19),
  15443. Fbits: uint8(7),
  15444. Fval: uint16(35),
  15445. },
  15446. 197: {
  15447. Fbits: uint8(8),
  15448. Fval: uint16(115),
  15449. },
  15450. 198: {
  15451. Fbits: uint8(8),
  15452. Fval: uint16(51),
  15453. },
  15454. 199: {
  15455. Fbits: uint8(9),
  15456. Fval: uint16(198),
  15457. },
  15458. 200: {
  15459. Fop: uint8(17),
  15460. Fbits: uint8(7),
  15461. Fval: uint16(11),
  15462. },
  15463. 201: {
  15464. Fbits: uint8(8),
  15465. Fval: uint16(99),
  15466. },
  15467. 202: {
  15468. Fbits: uint8(8),
  15469. Fval: uint16(35),
  15470. },
  15471. 203: {
  15472. Fbits: uint8(9),
  15473. Fval: uint16(166),
  15474. },
  15475. 204: {
  15476. Fbits: uint8(8),
  15477. Fval: uint16(3),
  15478. },
  15479. 205: {
  15480. Fbits: uint8(8),
  15481. Fval: uint16(131),
  15482. },
  15483. 206: {
  15484. Fbits: uint8(8),
  15485. Fval: uint16(67),
  15486. },
  15487. 207: {
  15488. Fbits: uint8(9),
  15489. Fval: uint16(230),
  15490. },
  15491. 208: {
  15492. Fop: uint8(16),
  15493. Fbits: uint8(7),
  15494. Fval: uint16(7),
  15495. },
  15496. 209: {
  15497. Fbits: uint8(8),
  15498. Fval: uint16(91),
  15499. },
  15500. 210: {
  15501. Fbits: uint8(8),
  15502. Fval: uint16(27),
  15503. },
  15504. 211: {
  15505. Fbits: uint8(9),
  15506. Fval: uint16(150),
  15507. },
  15508. 212: {
  15509. Fop: uint8(20),
  15510. Fbits: uint8(7),
  15511. Fval: uint16(67),
  15512. },
  15513. 213: {
  15514. Fbits: uint8(8),
  15515. Fval: uint16(123),
  15516. },
  15517. 214: {
  15518. Fbits: uint8(8),
  15519. Fval: uint16(59),
  15520. },
  15521. 215: {
  15522. Fbits: uint8(9),
  15523. Fval: uint16(214),
  15524. },
  15525. 216: {
  15526. Fop: uint8(18),
  15527. Fbits: uint8(7),
  15528. Fval: uint16(19),
  15529. },
  15530. 217: {
  15531. Fbits: uint8(8),
  15532. Fval: uint16(107),
  15533. },
  15534. 218: {
  15535. Fbits: uint8(8),
  15536. Fval: uint16(43),
  15537. },
  15538. 219: {
  15539. Fbits: uint8(9),
  15540. Fval: uint16(182),
  15541. },
  15542. 220: {
  15543. Fbits: uint8(8),
  15544. Fval: uint16(11),
  15545. },
  15546. 221: {
  15547. Fbits: uint8(8),
  15548. Fval: uint16(139),
  15549. },
  15550. 222: {
  15551. Fbits: uint8(8),
  15552. Fval: uint16(75),
  15553. },
  15554. 223: {
  15555. Fbits: uint8(9),
  15556. Fval: uint16(246),
  15557. },
  15558. 224: {
  15559. Fop: uint8(16),
  15560. Fbits: uint8(7),
  15561. Fval: uint16(5),
  15562. },
  15563. 225: {
  15564. Fbits: uint8(8),
  15565. Fval: uint16(87),
  15566. },
  15567. 226: {
  15568. Fbits: uint8(8),
  15569. Fval: uint16(23),
  15570. },
  15571. 227: {
  15572. Fop: uint8(64),
  15573. Fbits: uint8(8),
  15574. },
  15575. 228: {
  15576. Fop: uint8(19),
  15577. Fbits: uint8(7),
  15578. Fval: uint16(51),
  15579. },
  15580. 229: {
  15581. Fbits: uint8(8),
  15582. Fval: uint16(119),
  15583. },
  15584. 230: {
  15585. Fbits: uint8(8),
  15586. Fval: uint16(55),
  15587. },
  15588. 231: {
  15589. Fbits: uint8(9),
  15590. Fval: uint16(206),
  15591. },
  15592. 232: {
  15593. Fop: uint8(17),
  15594. Fbits: uint8(7),
  15595. Fval: uint16(15),
  15596. },
  15597. 233: {
  15598. Fbits: uint8(8),
  15599. Fval: uint16(103),
  15600. },
  15601. 234: {
  15602. Fbits: uint8(8),
  15603. Fval: uint16(39),
  15604. },
  15605. 235: {
  15606. Fbits: uint8(9),
  15607. Fval: uint16(174),
  15608. },
  15609. 236: {
  15610. Fbits: uint8(8),
  15611. Fval: uint16(7),
  15612. },
  15613. 237: {
  15614. Fbits: uint8(8),
  15615. Fval: uint16(135),
  15616. },
  15617. 238: {
  15618. Fbits: uint8(8),
  15619. Fval: uint16(71),
  15620. },
  15621. 239: {
  15622. Fbits: uint8(9),
  15623. Fval: uint16(238),
  15624. },
  15625. 240: {
  15626. Fop: uint8(16),
  15627. Fbits: uint8(7),
  15628. Fval: uint16(9),
  15629. },
  15630. 241: {
  15631. Fbits: uint8(8),
  15632. Fval: uint16(95),
  15633. },
  15634. 242: {
  15635. Fbits: uint8(8),
  15636. Fval: uint16(31),
  15637. },
  15638. 243: {
  15639. Fbits: uint8(9),
  15640. Fval: uint16(158),
  15641. },
  15642. 244: {
  15643. Fop: uint8(20),
  15644. Fbits: uint8(7),
  15645. Fval: uint16(99),
  15646. },
  15647. 245: {
  15648. Fbits: uint8(8),
  15649. Fval: uint16(127),
  15650. },
  15651. 246: {
  15652. Fbits: uint8(8),
  15653. Fval: uint16(63),
  15654. },
  15655. 247: {
  15656. Fbits: uint8(9),
  15657. Fval: uint16(222),
  15658. },
  15659. 248: {
  15660. Fop: uint8(18),
  15661. Fbits: uint8(7),
  15662. Fval: uint16(27),
  15663. },
  15664. 249: {
  15665. Fbits: uint8(8),
  15666. Fval: uint16(111),
  15667. },
  15668. 250: {
  15669. Fbits: uint8(8),
  15670. Fval: uint16(47),
  15671. },
  15672. 251: {
  15673. Fbits: uint8(9),
  15674. Fval: uint16(190),
  15675. },
  15676. 252: {
  15677. Fbits: uint8(8),
  15678. Fval: uint16(15),
  15679. },
  15680. 253: {
  15681. Fbits: uint8(8),
  15682. Fval: uint16(143),
  15683. },
  15684. 254: {
  15685. Fbits: uint8(8),
  15686. Fval: uint16(79),
  15687. },
  15688. 255: {
  15689. Fbits: uint8(9),
  15690. Fval: uint16(254),
  15691. },
  15692. 256: {
  15693. Fop: uint8(96),
  15694. Fbits: uint8(7),
  15695. },
  15696. 257: {
  15697. Fbits: uint8(8),
  15698. Fval: uint16(80),
  15699. },
  15700. 258: {
  15701. Fbits: uint8(8),
  15702. Fval: uint16(16),
  15703. },
  15704. 259: {
  15705. Fop: uint8(20),
  15706. Fbits: uint8(8),
  15707. Fval: uint16(115),
  15708. },
  15709. 260: {
  15710. Fop: uint8(18),
  15711. Fbits: uint8(7),
  15712. Fval: uint16(31),
  15713. },
  15714. 261: {
  15715. Fbits: uint8(8),
  15716. Fval: uint16(112),
  15717. },
  15718. 262: {
  15719. Fbits: uint8(8),
  15720. Fval: uint16(48),
  15721. },
  15722. 263: {
  15723. Fbits: uint8(9),
  15724. Fval: uint16(193),
  15725. },
  15726. 264: {
  15727. Fop: uint8(16),
  15728. Fbits: uint8(7),
  15729. Fval: uint16(10),
  15730. },
  15731. 265: {
  15732. Fbits: uint8(8),
  15733. Fval: uint16(96),
  15734. },
  15735. 266: {
  15736. Fbits: uint8(8),
  15737. Fval: uint16(32),
  15738. },
  15739. 267: {
  15740. Fbits: uint8(9),
  15741. Fval: uint16(161),
  15742. },
  15743. 268: {
  15744. Fbits: uint8(8),
  15745. },
  15746. 269: {
  15747. Fbits: uint8(8),
  15748. Fval: uint16(128),
  15749. },
  15750. 270: {
  15751. Fbits: uint8(8),
  15752. Fval: uint16(64),
  15753. },
  15754. 271: {
  15755. Fbits: uint8(9),
  15756. Fval: uint16(225),
  15757. },
  15758. 272: {
  15759. Fop: uint8(16),
  15760. Fbits: uint8(7),
  15761. Fval: uint16(6),
  15762. },
  15763. 273: {
  15764. Fbits: uint8(8),
  15765. Fval: uint16(88),
  15766. },
  15767. 274: {
  15768. Fbits: uint8(8),
  15769. Fval: uint16(24),
  15770. },
  15771. 275: {
  15772. Fbits: uint8(9),
  15773. Fval: uint16(145),
  15774. },
  15775. 276: {
  15776. Fop: uint8(19),
  15777. Fbits: uint8(7),
  15778. Fval: uint16(59),
  15779. },
  15780. 277: {
  15781. Fbits: uint8(8),
  15782. Fval: uint16(120),
  15783. },
  15784. 278: {
  15785. Fbits: uint8(8),
  15786. Fval: uint16(56),
  15787. },
  15788. 279: {
  15789. Fbits: uint8(9),
  15790. Fval: uint16(209),
  15791. },
  15792. 280: {
  15793. Fop: uint8(17),
  15794. Fbits: uint8(7),
  15795. Fval: uint16(17),
  15796. },
  15797. 281: {
  15798. Fbits: uint8(8),
  15799. Fval: uint16(104),
  15800. },
  15801. 282: {
  15802. Fbits: uint8(8),
  15803. Fval: uint16(40),
  15804. },
  15805. 283: {
  15806. Fbits: uint8(9),
  15807. Fval: uint16(177),
  15808. },
  15809. 284: {
  15810. Fbits: uint8(8),
  15811. Fval: uint16(8),
  15812. },
  15813. 285: {
  15814. Fbits: uint8(8),
  15815. Fval: uint16(136),
  15816. },
  15817. 286: {
  15818. Fbits: uint8(8),
  15819. Fval: uint16(72),
  15820. },
  15821. 287: {
  15822. Fbits: uint8(9),
  15823. Fval: uint16(241),
  15824. },
  15825. 288: {
  15826. Fop: uint8(16),
  15827. Fbits: uint8(7),
  15828. Fval: uint16(4),
  15829. },
  15830. 289: {
  15831. Fbits: uint8(8),
  15832. Fval: uint16(84),
  15833. },
  15834. 290: {
  15835. Fbits: uint8(8),
  15836. Fval: uint16(20),
  15837. },
  15838. 291: {
  15839. Fop: uint8(21),
  15840. Fbits: uint8(8),
  15841. Fval: uint16(227),
  15842. },
  15843. 292: {
  15844. Fop: uint8(19),
  15845. Fbits: uint8(7),
  15846. Fval: uint16(43),
  15847. },
  15848. 293: {
  15849. Fbits: uint8(8),
  15850. Fval: uint16(116),
  15851. },
  15852. 294: {
  15853. Fbits: uint8(8),
  15854. Fval: uint16(52),
  15855. },
  15856. 295: {
  15857. Fbits: uint8(9),
  15858. Fval: uint16(201),
  15859. },
  15860. 296: {
  15861. Fop: uint8(17),
  15862. Fbits: uint8(7),
  15863. Fval: uint16(13),
  15864. },
  15865. 297: {
  15866. Fbits: uint8(8),
  15867. Fval: uint16(100),
  15868. },
  15869. 298: {
  15870. Fbits: uint8(8),
  15871. Fval: uint16(36),
  15872. },
  15873. 299: {
  15874. Fbits: uint8(9),
  15875. Fval: uint16(169),
  15876. },
  15877. 300: {
  15878. Fbits: uint8(8),
  15879. Fval: uint16(4),
  15880. },
  15881. 301: {
  15882. Fbits: uint8(8),
  15883. Fval: uint16(132),
  15884. },
  15885. 302: {
  15886. Fbits: uint8(8),
  15887. Fval: uint16(68),
  15888. },
  15889. 303: {
  15890. Fbits: uint8(9),
  15891. Fval: uint16(233),
  15892. },
  15893. 304: {
  15894. Fop: uint8(16),
  15895. Fbits: uint8(7),
  15896. Fval: uint16(8),
  15897. },
  15898. 305: {
  15899. Fbits: uint8(8),
  15900. Fval: uint16(92),
  15901. },
  15902. 306: {
  15903. Fbits: uint8(8),
  15904. Fval: uint16(28),
  15905. },
  15906. 307: {
  15907. Fbits: uint8(9),
  15908. Fval: uint16(153),
  15909. },
  15910. 308: {
  15911. Fop: uint8(20),
  15912. Fbits: uint8(7),
  15913. Fval: uint16(83),
  15914. },
  15915. 309: {
  15916. Fbits: uint8(8),
  15917. Fval: uint16(124),
  15918. },
  15919. 310: {
  15920. Fbits: uint8(8),
  15921. Fval: uint16(60),
  15922. },
  15923. 311: {
  15924. Fbits: uint8(9),
  15925. Fval: uint16(217),
  15926. },
  15927. 312: {
  15928. Fop: uint8(18),
  15929. Fbits: uint8(7),
  15930. Fval: uint16(23),
  15931. },
  15932. 313: {
  15933. Fbits: uint8(8),
  15934. Fval: uint16(108),
  15935. },
  15936. 314: {
  15937. Fbits: uint8(8),
  15938. Fval: uint16(44),
  15939. },
  15940. 315: {
  15941. Fbits: uint8(9),
  15942. Fval: uint16(185),
  15943. },
  15944. 316: {
  15945. Fbits: uint8(8),
  15946. Fval: uint16(12),
  15947. },
  15948. 317: {
  15949. Fbits: uint8(8),
  15950. Fval: uint16(140),
  15951. },
  15952. 318: {
  15953. Fbits: uint8(8),
  15954. Fval: uint16(76),
  15955. },
  15956. 319: {
  15957. Fbits: uint8(9),
  15958. Fval: uint16(249),
  15959. },
  15960. 320: {
  15961. Fop: uint8(16),
  15962. Fbits: uint8(7),
  15963. Fval: uint16(3),
  15964. },
  15965. 321: {
  15966. Fbits: uint8(8),
  15967. Fval: uint16(82),
  15968. },
  15969. 322: {
  15970. Fbits: uint8(8),
  15971. Fval: uint16(18),
  15972. },
  15973. 323: {
  15974. Fop: uint8(21),
  15975. Fbits: uint8(8),
  15976. Fval: uint16(163),
  15977. },
  15978. 324: {
  15979. Fop: uint8(19),
  15980. Fbits: uint8(7),
  15981. Fval: uint16(35),
  15982. },
  15983. 325: {
  15984. Fbits: uint8(8),
  15985. Fval: uint16(114),
  15986. },
  15987. 326: {
  15988. Fbits: uint8(8),
  15989. Fval: uint16(50),
  15990. },
  15991. 327: {
  15992. Fbits: uint8(9),
  15993. Fval: uint16(197),
  15994. },
  15995. 328: {
  15996. Fop: uint8(17),
  15997. Fbits: uint8(7),
  15998. Fval: uint16(11),
  15999. },
  16000. 329: {
  16001. Fbits: uint8(8),
  16002. Fval: uint16(98),
  16003. },
  16004. 330: {
  16005. Fbits: uint8(8),
  16006. Fval: uint16(34),
  16007. },
  16008. 331: {
  16009. Fbits: uint8(9),
  16010. Fval: uint16(165),
  16011. },
  16012. 332: {
  16013. Fbits: uint8(8),
  16014. Fval: uint16(2),
  16015. },
  16016. 333: {
  16017. Fbits: uint8(8),
  16018. Fval: uint16(130),
  16019. },
  16020. 334: {
  16021. Fbits: uint8(8),
  16022. Fval: uint16(66),
  16023. },
  16024. 335: {
  16025. Fbits: uint8(9),
  16026. Fval: uint16(229),
  16027. },
  16028. 336: {
  16029. Fop: uint8(16),
  16030. Fbits: uint8(7),
  16031. Fval: uint16(7),
  16032. },
  16033. 337: {
  16034. Fbits: uint8(8),
  16035. Fval: uint16(90),
  16036. },
  16037. 338: {
  16038. Fbits: uint8(8),
  16039. Fval: uint16(26),
  16040. },
  16041. 339: {
  16042. Fbits: uint8(9),
  16043. Fval: uint16(149),
  16044. },
  16045. 340: {
  16046. Fop: uint8(20),
  16047. Fbits: uint8(7),
  16048. Fval: uint16(67),
  16049. },
  16050. 341: {
  16051. Fbits: uint8(8),
  16052. Fval: uint16(122),
  16053. },
  16054. 342: {
  16055. Fbits: uint8(8),
  16056. Fval: uint16(58),
  16057. },
  16058. 343: {
  16059. Fbits: uint8(9),
  16060. Fval: uint16(213),
  16061. },
  16062. 344: {
  16063. Fop: uint8(18),
  16064. Fbits: uint8(7),
  16065. Fval: uint16(19),
  16066. },
  16067. 345: {
  16068. Fbits: uint8(8),
  16069. Fval: uint16(106),
  16070. },
  16071. 346: {
  16072. Fbits: uint8(8),
  16073. Fval: uint16(42),
  16074. },
  16075. 347: {
  16076. Fbits: uint8(9),
  16077. Fval: uint16(181),
  16078. },
  16079. 348: {
  16080. Fbits: uint8(8),
  16081. Fval: uint16(10),
  16082. },
  16083. 349: {
  16084. Fbits: uint8(8),
  16085. Fval: uint16(138),
  16086. },
  16087. 350: {
  16088. Fbits: uint8(8),
  16089. Fval: uint16(74),
  16090. },
  16091. 351: {
  16092. Fbits: uint8(9),
  16093. Fval: uint16(245),
  16094. },
  16095. 352: {
  16096. Fop: uint8(16),
  16097. Fbits: uint8(7),
  16098. Fval: uint16(5),
  16099. },
  16100. 353: {
  16101. Fbits: uint8(8),
  16102. Fval: uint16(86),
  16103. },
  16104. 354: {
  16105. Fbits: uint8(8),
  16106. Fval: uint16(22),
  16107. },
  16108. 355: {
  16109. Fop: uint8(64),
  16110. Fbits: uint8(8),
  16111. },
  16112. 356: {
  16113. Fop: uint8(19),
  16114. Fbits: uint8(7),
  16115. Fval: uint16(51),
  16116. },
  16117. 357: {
  16118. Fbits: uint8(8),
  16119. Fval: uint16(118),
  16120. },
  16121. 358: {
  16122. Fbits: uint8(8),
  16123. Fval: uint16(54),
  16124. },
  16125. 359: {
  16126. Fbits: uint8(9),
  16127. Fval: uint16(205),
  16128. },
  16129. 360: {
  16130. Fop: uint8(17),
  16131. Fbits: uint8(7),
  16132. Fval: uint16(15),
  16133. },
  16134. 361: {
  16135. Fbits: uint8(8),
  16136. Fval: uint16(102),
  16137. },
  16138. 362: {
  16139. Fbits: uint8(8),
  16140. Fval: uint16(38),
  16141. },
  16142. 363: {
  16143. Fbits: uint8(9),
  16144. Fval: uint16(173),
  16145. },
  16146. 364: {
  16147. Fbits: uint8(8),
  16148. Fval: uint16(6),
  16149. },
  16150. 365: {
  16151. Fbits: uint8(8),
  16152. Fval: uint16(134),
  16153. },
  16154. 366: {
  16155. Fbits: uint8(8),
  16156. Fval: uint16(70),
  16157. },
  16158. 367: {
  16159. Fbits: uint8(9),
  16160. Fval: uint16(237),
  16161. },
  16162. 368: {
  16163. Fop: uint8(16),
  16164. Fbits: uint8(7),
  16165. Fval: uint16(9),
  16166. },
  16167. 369: {
  16168. Fbits: uint8(8),
  16169. Fval: uint16(94),
  16170. },
  16171. 370: {
  16172. Fbits: uint8(8),
  16173. Fval: uint16(30),
  16174. },
  16175. 371: {
  16176. Fbits: uint8(9),
  16177. Fval: uint16(157),
  16178. },
  16179. 372: {
  16180. Fop: uint8(20),
  16181. Fbits: uint8(7),
  16182. Fval: uint16(99),
  16183. },
  16184. 373: {
  16185. Fbits: uint8(8),
  16186. Fval: uint16(126),
  16187. },
  16188. 374: {
  16189. Fbits: uint8(8),
  16190. Fval: uint16(62),
  16191. },
  16192. 375: {
  16193. Fbits: uint8(9),
  16194. Fval: uint16(221),
  16195. },
  16196. 376: {
  16197. Fop: uint8(18),
  16198. Fbits: uint8(7),
  16199. Fval: uint16(27),
  16200. },
  16201. 377: {
  16202. Fbits: uint8(8),
  16203. Fval: uint16(110),
  16204. },
  16205. 378: {
  16206. Fbits: uint8(8),
  16207. Fval: uint16(46),
  16208. },
  16209. 379: {
  16210. Fbits: uint8(9),
  16211. Fval: uint16(189),
  16212. },
  16213. 380: {
  16214. Fbits: uint8(8),
  16215. Fval: uint16(14),
  16216. },
  16217. 381: {
  16218. Fbits: uint8(8),
  16219. Fval: uint16(142),
  16220. },
  16221. 382: {
  16222. Fbits: uint8(8),
  16223. Fval: uint16(78),
  16224. },
  16225. 383: {
  16226. Fbits: uint8(9),
  16227. Fval: uint16(253),
  16228. },
  16229. 384: {
  16230. Fop: uint8(96),
  16231. Fbits: uint8(7),
  16232. },
  16233. 385: {
  16234. Fbits: uint8(8),
  16235. Fval: uint16(81),
  16236. },
  16237. 386: {
  16238. Fbits: uint8(8),
  16239. Fval: uint16(17),
  16240. },
  16241. 387: {
  16242. Fop: uint8(21),
  16243. Fbits: uint8(8),
  16244. Fval: uint16(131),
  16245. },
  16246. 388: {
  16247. Fop: uint8(18),
  16248. Fbits: uint8(7),
  16249. Fval: uint16(31),
  16250. },
  16251. 389: {
  16252. Fbits: uint8(8),
  16253. Fval: uint16(113),
  16254. },
  16255. 390: {
  16256. Fbits: uint8(8),
  16257. Fval: uint16(49),
  16258. },
  16259. 391: {
  16260. Fbits: uint8(9),
  16261. Fval: uint16(195),
  16262. },
  16263. 392: {
  16264. Fop: uint8(16),
  16265. Fbits: uint8(7),
  16266. Fval: uint16(10),
  16267. },
  16268. 393: {
  16269. Fbits: uint8(8),
  16270. Fval: uint16(97),
  16271. },
  16272. 394: {
  16273. Fbits: uint8(8),
  16274. Fval: uint16(33),
  16275. },
  16276. 395: {
  16277. Fbits: uint8(9),
  16278. Fval: uint16(163),
  16279. },
  16280. 396: {
  16281. Fbits: uint8(8),
  16282. Fval: uint16(1),
  16283. },
  16284. 397: {
  16285. Fbits: uint8(8),
  16286. Fval: uint16(129),
  16287. },
  16288. 398: {
  16289. Fbits: uint8(8),
  16290. Fval: uint16(65),
  16291. },
  16292. 399: {
  16293. Fbits: uint8(9),
  16294. Fval: uint16(227),
  16295. },
  16296. 400: {
  16297. Fop: uint8(16),
  16298. Fbits: uint8(7),
  16299. Fval: uint16(6),
  16300. },
  16301. 401: {
  16302. Fbits: uint8(8),
  16303. Fval: uint16(89),
  16304. },
  16305. 402: {
  16306. Fbits: uint8(8),
  16307. Fval: uint16(25),
  16308. },
  16309. 403: {
  16310. Fbits: uint8(9),
  16311. Fval: uint16(147),
  16312. },
  16313. 404: {
  16314. Fop: uint8(19),
  16315. Fbits: uint8(7),
  16316. Fval: uint16(59),
  16317. },
  16318. 405: {
  16319. Fbits: uint8(8),
  16320. Fval: uint16(121),
  16321. },
  16322. 406: {
  16323. Fbits: uint8(8),
  16324. Fval: uint16(57),
  16325. },
  16326. 407: {
  16327. Fbits: uint8(9),
  16328. Fval: uint16(211),
  16329. },
  16330. 408: {
  16331. Fop: uint8(17),
  16332. Fbits: uint8(7),
  16333. Fval: uint16(17),
  16334. },
  16335. 409: {
  16336. Fbits: uint8(8),
  16337. Fval: uint16(105),
  16338. },
  16339. 410: {
  16340. Fbits: uint8(8),
  16341. Fval: uint16(41),
  16342. },
  16343. 411: {
  16344. Fbits: uint8(9),
  16345. Fval: uint16(179),
  16346. },
  16347. 412: {
  16348. Fbits: uint8(8),
  16349. Fval: uint16(9),
  16350. },
  16351. 413: {
  16352. Fbits: uint8(8),
  16353. Fval: uint16(137),
  16354. },
  16355. 414: {
  16356. Fbits: uint8(8),
  16357. Fval: uint16(73),
  16358. },
  16359. 415: {
  16360. Fbits: uint8(9),
  16361. Fval: uint16(243),
  16362. },
  16363. 416: {
  16364. Fop: uint8(16),
  16365. Fbits: uint8(7),
  16366. Fval: uint16(4),
  16367. },
  16368. 417: {
  16369. Fbits: uint8(8),
  16370. Fval: uint16(85),
  16371. },
  16372. 418: {
  16373. Fbits: uint8(8),
  16374. Fval: uint16(21),
  16375. },
  16376. 419: {
  16377. Fop: uint8(16),
  16378. Fbits: uint8(8),
  16379. Fval: uint16(258),
  16380. },
  16381. 420: {
  16382. Fop: uint8(19),
  16383. Fbits: uint8(7),
  16384. Fval: uint16(43),
  16385. },
  16386. 421: {
  16387. Fbits: uint8(8),
  16388. Fval: uint16(117),
  16389. },
  16390. 422: {
  16391. Fbits: uint8(8),
  16392. Fval: uint16(53),
  16393. },
  16394. 423: {
  16395. Fbits: uint8(9),
  16396. Fval: uint16(203),
  16397. },
  16398. 424: {
  16399. Fop: uint8(17),
  16400. Fbits: uint8(7),
  16401. Fval: uint16(13),
  16402. },
  16403. 425: {
  16404. Fbits: uint8(8),
  16405. Fval: uint16(101),
  16406. },
  16407. 426: {
  16408. Fbits: uint8(8),
  16409. Fval: uint16(37),
  16410. },
  16411. 427: {
  16412. Fbits: uint8(9),
  16413. Fval: uint16(171),
  16414. },
  16415. 428: {
  16416. Fbits: uint8(8),
  16417. Fval: uint16(5),
  16418. },
  16419. 429: {
  16420. Fbits: uint8(8),
  16421. Fval: uint16(133),
  16422. },
  16423. 430: {
  16424. Fbits: uint8(8),
  16425. Fval: uint16(69),
  16426. },
  16427. 431: {
  16428. Fbits: uint8(9),
  16429. Fval: uint16(235),
  16430. },
  16431. 432: {
  16432. Fop: uint8(16),
  16433. Fbits: uint8(7),
  16434. Fval: uint16(8),
  16435. },
  16436. 433: {
  16437. Fbits: uint8(8),
  16438. Fval: uint16(93),
  16439. },
  16440. 434: {
  16441. Fbits: uint8(8),
  16442. Fval: uint16(29),
  16443. },
  16444. 435: {
  16445. Fbits: uint8(9),
  16446. Fval: uint16(155),
  16447. },
  16448. 436: {
  16449. Fop: uint8(20),
  16450. Fbits: uint8(7),
  16451. Fval: uint16(83),
  16452. },
  16453. 437: {
  16454. Fbits: uint8(8),
  16455. Fval: uint16(125),
  16456. },
  16457. 438: {
  16458. Fbits: uint8(8),
  16459. Fval: uint16(61),
  16460. },
  16461. 439: {
  16462. Fbits: uint8(9),
  16463. Fval: uint16(219),
  16464. },
  16465. 440: {
  16466. Fop: uint8(18),
  16467. Fbits: uint8(7),
  16468. Fval: uint16(23),
  16469. },
  16470. 441: {
  16471. Fbits: uint8(8),
  16472. Fval: uint16(109),
  16473. },
  16474. 442: {
  16475. Fbits: uint8(8),
  16476. Fval: uint16(45),
  16477. },
  16478. 443: {
  16479. Fbits: uint8(9),
  16480. Fval: uint16(187),
  16481. },
  16482. 444: {
  16483. Fbits: uint8(8),
  16484. Fval: uint16(13),
  16485. },
  16486. 445: {
  16487. Fbits: uint8(8),
  16488. Fval: uint16(141),
  16489. },
  16490. 446: {
  16491. Fbits: uint8(8),
  16492. Fval: uint16(77),
  16493. },
  16494. 447: {
  16495. Fbits: uint8(9),
  16496. Fval: uint16(251),
  16497. },
  16498. 448: {
  16499. Fop: uint8(16),
  16500. Fbits: uint8(7),
  16501. Fval: uint16(3),
  16502. },
  16503. 449: {
  16504. Fbits: uint8(8),
  16505. Fval: uint16(83),
  16506. },
  16507. 450: {
  16508. Fbits: uint8(8),
  16509. Fval: uint16(19),
  16510. },
  16511. 451: {
  16512. Fop: uint8(21),
  16513. Fbits: uint8(8),
  16514. Fval: uint16(195),
  16515. },
  16516. 452: {
  16517. Fop: uint8(19),
  16518. Fbits: uint8(7),
  16519. Fval: uint16(35),
  16520. },
  16521. 453: {
  16522. Fbits: uint8(8),
  16523. Fval: uint16(115),
  16524. },
  16525. 454: {
  16526. Fbits: uint8(8),
  16527. Fval: uint16(51),
  16528. },
  16529. 455: {
  16530. Fbits: uint8(9),
  16531. Fval: uint16(199),
  16532. },
  16533. 456: {
  16534. Fop: uint8(17),
  16535. Fbits: uint8(7),
  16536. Fval: uint16(11),
  16537. },
  16538. 457: {
  16539. Fbits: uint8(8),
  16540. Fval: uint16(99),
  16541. },
  16542. 458: {
  16543. Fbits: uint8(8),
  16544. Fval: uint16(35),
  16545. },
  16546. 459: {
  16547. Fbits: uint8(9),
  16548. Fval: uint16(167),
  16549. },
  16550. 460: {
  16551. Fbits: uint8(8),
  16552. Fval: uint16(3),
  16553. },
  16554. 461: {
  16555. Fbits: uint8(8),
  16556. Fval: uint16(131),
  16557. },
  16558. 462: {
  16559. Fbits: uint8(8),
  16560. Fval: uint16(67),
  16561. },
  16562. 463: {
  16563. Fbits: uint8(9),
  16564. Fval: uint16(231),
  16565. },
  16566. 464: {
  16567. Fop: uint8(16),
  16568. Fbits: uint8(7),
  16569. Fval: uint16(7),
  16570. },
  16571. 465: {
  16572. Fbits: uint8(8),
  16573. Fval: uint16(91),
  16574. },
  16575. 466: {
  16576. Fbits: uint8(8),
  16577. Fval: uint16(27),
  16578. },
  16579. 467: {
  16580. Fbits: uint8(9),
  16581. Fval: uint16(151),
  16582. },
  16583. 468: {
  16584. Fop: uint8(20),
  16585. Fbits: uint8(7),
  16586. Fval: uint16(67),
  16587. },
  16588. 469: {
  16589. Fbits: uint8(8),
  16590. Fval: uint16(123),
  16591. },
  16592. 470: {
  16593. Fbits: uint8(8),
  16594. Fval: uint16(59),
  16595. },
  16596. 471: {
  16597. Fbits: uint8(9),
  16598. Fval: uint16(215),
  16599. },
  16600. 472: {
  16601. Fop: uint8(18),
  16602. Fbits: uint8(7),
  16603. Fval: uint16(19),
  16604. },
  16605. 473: {
  16606. Fbits: uint8(8),
  16607. Fval: uint16(107),
  16608. },
  16609. 474: {
  16610. Fbits: uint8(8),
  16611. Fval: uint16(43),
  16612. },
  16613. 475: {
  16614. Fbits: uint8(9),
  16615. Fval: uint16(183),
  16616. },
  16617. 476: {
  16618. Fbits: uint8(8),
  16619. Fval: uint16(11),
  16620. },
  16621. 477: {
  16622. Fbits: uint8(8),
  16623. Fval: uint16(139),
  16624. },
  16625. 478: {
  16626. Fbits: uint8(8),
  16627. Fval: uint16(75),
  16628. },
  16629. 479: {
  16630. Fbits: uint8(9),
  16631. Fval: uint16(247),
  16632. },
  16633. 480: {
  16634. Fop: uint8(16),
  16635. Fbits: uint8(7),
  16636. Fval: uint16(5),
  16637. },
  16638. 481: {
  16639. Fbits: uint8(8),
  16640. Fval: uint16(87),
  16641. },
  16642. 482: {
  16643. Fbits: uint8(8),
  16644. Fval: uint16(23),
  16645. },
  16646. 483: {
  16647. Fop: uint8(64),
  16648. Fbits: uint8(8),
  16649. },
  16650. 484: {
  16651. Fop: uint8(19),
  16652. Fbits: uint8(7),
  16653. Fval: uint16(51),
  16654. },
  16655. 485: {
  16656. Fbits: uint8(8),
  16657. Fval: uint16(119),
  16658. },
  16659. 486: {
  16660. Fbits: uint8(8),
  16661. Fval: uint16(55),
  16662. },
  16663. 487: {
  16664. Fbits: uint8(9),
  16665. Fval: uint16(207),
  16666. },
  16667. 488: {
  16668. Fop: uint8(17),
  16669. Fbits: uint8(7),
  16670. Fval: uint16(15),
  16671. },
  16672. 489: {
  16673. Fbits: uint8(8),
  16674. Fval: uint16(103),
  16675. },
  16676. 490: {
  16677. Fbits: uint8(8),
  16678. Fval: uint16(39),
  16679. },
  16680. 491: {
  16681. Fbits: uint8(9),
  16682. Fval: uint16(175),
  16683. },
  16684. 492: {
  16685. Fbits: uint8(8),
  16686. Fval: uint16(7),
  16687. },
  16688. 493: {
  16689. Fbits: uint8(8),
  16690. Fval: uint16(135),
  16691. },
  16692. 494: {
  16693. Fbits: uint8(8),
  16694. Fval: uint16(71),
  16695. },
  16696. 495: {
  16697. Fbits: uint8(9),
  16698. Fval: uint16(239),
  16699. },
  16700. 496: {
  16701. Fop: uint8(16),
  16702. Fbits: uint8(7),
  16703. Fval: uint16(9),
  16704. },
  16705. 497: {
  16706. Fbits: uint8(8),
  16707. Fval: uint16(95),
  16708. },
  16709. 498: {
  16710. Fbits: uint8(8),
  16711. Fval: uint16(31),
  16712. },
  16713. 499: {
  16714. Fbits: uint8(9),
  16715. Fval: uint16(159),
  16716. },
  16717. 500: {
  16718. Fop: uint8(20),
  16719. Fbits: uint8(7),
  16720. Fval: uint16(99),
  16721. },
  16722. 501: {
  16723. Fbits: uint8(8),
  16724. Fval: uint16(127),
  16725. },
  16726. 502: {
  16727. Fbits: uint8(8),
  16728. Fval: uint16(63),
  16729. },
  16730. 503: {
  16731. Fbits: uint8(9),
  16732. Fval: uint16(223),
  16733. },
  16734. 504: {
  16735. Fop: uint8(18),
  16736. Fbits: uint8(7),
  16737. Fval: uint16(27),
  16738. },
  16739. 505: {
  16740. Fbits: uint8(8),
  16741. Fval: uint16(111),
  16742. },
  16743. 506: {
  16744. Fbits: uint8(8),
  16745. Fval: uint16(47),
  16746. },
  16747. 507: {
  16748. Fbits: uint8(9),
  16749. Fval: uint16(191),
  16750. },
  16751. 508: {
  16752. Fbits: uint8(8),
  16753. Fval: uint16(15),
  16754. },
  16755. 509: {
  16756. Fbits: uint8(8),
  16757. Fval: uint16(143),
  16758. },
  16759. 510: {
  16760. Fbits: uint8(8),
  16761. Fval: uint16(79),
  16762. },
  16763. 511: {
  16764. Fbits: uint8(9),
  16765. Fval: uint16(255),
  16766. },
  16767. }
  16768. var _distfix1 = [32]Tcode{
  16769. 0: {
  16770. Fop: uint8(16),
  16771. Fbits: uint8(5),
  16772. Fval: uint16(1),
  16773. },
  16774. 1: {
  16775. Fop: uint8(23),
  16776. Fbits: uint8(5),
  16777. Fval: uint16(257),
  16778. },
  16779. 2: {
  16780. Fop: uint8(19),
  16781. Fbits: uint8(5),
  16782. Fval: uint16(17),
  16783. },
  16784. 3: {
  16785. Fop: uint8(27),
  16786. Fbits: uint8(5),
  16787. Fval: uint16(4097),
  16788. },
  16789. 4: {
  16790. Fop: uint8(17),
  16791. Fbits: uint8(5),
  16792. Fval: uint16(5),
  16793. },
  16794. 5: {
  16795. Fop: uint8(25),
  16796. Fbits: uint8(5),
  16797. Fval: uint16(1025),
  16798. },
  16799. 6: {
  16800. Fop: uint8(21),
  16801. Fbits: uint8(5),
  16802. Fval: uint16(65),
  16803. },
  16804. 7: {
  16805. Fop: uint8(29),
  16806. Fbits: uint8(5),
  16807. Fval: uint16(16385),
  16808. },
  16809. 8: {
  16810. Fop: uint8(16),
  16811. Fbits: uint8(5),
  16812. Fval: uint16(3),
  16813. },
  16814. 9: {
  16815. Fop: uint8(24),
  16816. Fbits: uint8(5),
  16817. Fval: uint16(513),
  16818. },
  16819. 10: {
  16820. Fop: uint8(20),
  16821. Fbits: uint8(5),
  16822. Fval: uint16(33),
  16823. },
  16824. 11: {
  16825. Fop: uint8(28),
  16826. Fbits: uint8(5),
  16827. Fval: uint16(8193),
  16828. },
  16829. 12: {
  16830. Fop: uint8(18),
  16831. Fbits: uint8(5),
  16832. Fval: uint16(9),
  16833. },
  16834. 13: {
  16835. Fop: uint8(26),
  16836. Fbits: uint8(5),
  16837. Fval: uint16(2049),
  16838. },
  16839. 14: {
  16840. Fop: uint8(22),
  16841. Fbits: uint8(5),
  16842. Fval: uint16(129),
  16843. },
  16844. 15: {
  16845. Fop: uint8(64),
  16846. Fbits: uint8(5),
  16847. },
  16848. 16: {
  16849. Fop: uint8(16),
  16850. Fbits: uint8(5),
  16851. Fval: uint16(2),
  16852. },
  16853. 17: {
  16854. Fop: uint8(23),
  16855. Fbits: uint8(5),
  16856. Fval: uint16(385),
  16857. },
  16858. 18: {
  16859. Fop: uint8(19),
  16860. Fbits: uint8(5),
  16861. Fval: uint16(25),
  16862. },
  16863. 19: {
  16864. Fop: uint8(27),
  16865. Fbits: uint8(5),
  16866. Fval: uint16(6145),
  16867. },
  16868. 20: {
  16869. Fop: uint8(17),
  16870. Fbits: uint8(5),
  16871. Fval: uint16(7),
  16872. },
  16873. 21: {
  16874. Fop: uint8(25),
  16875. Fbits: uint8(5),
  16876. Fval: uint16(1537),
  16877. },
  16878. 22: {
  16879. Fop: uint8(21),
  16880. Fbits: uint8(5),
  16881. Fval: uint16(97),
  16882. },
  16883. 23: {
  16884. Fop: uint8(29),
  16885. Fbits: uint8(5),
  16886. Fval: uint16(24577),
  16887. },
  16888. 24: {
  16889. Fop: uint8(16),
  16890. Fbits: uint8(5),
  16891. Fval: uint16(4),
  16892. },
  16893. 25: {
  16894. Fop: uint8(24),
  16895. Fbits: uint8(5),
  16896. Fval: uint16(769),
  16897. },
  16898. 26: {
  16899. Fop: uint8(20),
  16900. Fbits: uint8(5),
  16901. Fval: uint16(49),
  16902. },
  16903. 27: {
  16904. Fop: uint8(28),
  16905. Fbits: uint8(5),
  16906. Fval: uint16(12289),
  16907. },
  16908. 28: {
  16909. Fop: uint8(18),
  16910. Fbits: uint8(5),
  16911. Fval: uint16(13),
  16912. },
  16913. 29: {
  16914. Fop: uint8(26),
  16915. Fbits: uint8(5),
  16916. Fval: uint16(3073),
  16917. },
  16918. 30: {
  16919. Fop: uint8(22),
  16920. Fbits: uint8(5),
  16921. Fval: uint16(193),
  16922. },
  16923. 31: {
  16924. Fop: uint8(64),
  16925. Fbits: uint8(5),
  16926. },
  16927. }
  16928. // C documentation
  16929. //
  16930. // /*
  16931. // Update the window with the last wsize (normally 32K) bytes written before
  16932. // returning. If window does not exist yet, create it. This is only called
  16933. // when a window is already in use, or when output has been written during this
  16934. // inflate call, but the end of the deflate stream has not been reached yet.
  16935. // It is also called to create a window for dictionary data when a dictionary
  16936. // is loaded.
  16937. //
  16938. // Providing output buffers larger than 32K to inflate() should provide a speed
  16939. // advantage, since only the last 32K of output is copied to the sliding window
  16940. // upon return from inflate(), and since all distances after the first 32K of
  16941. // output will fall in the output data, making match copies simpler and faster.
  16942. // The advantage may be dependent on the size of the processor's data caches.
  16943. // */
  16944. func _updatewindow(tls *libc.TLS, strm Tz_streamp, end uintptr, copy1 uint32) (r int32) {
  16945. var dist uint32
  16946. var state uintptr
  16947. _, _ = dist, state
  16948. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  16949. /* if it hasn't been done already, allocate space for the window */
  16950. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  16951. (*Tinflate_state)(unsafe.Pointer(state)).Fwindow = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  16952. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow == uintptr(m_Z_NULL) {
  16953. return int32(1)
  16954. }
  16955. }
  16956. /* if window not in use yet, initialize */
  16957. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize == uint32(0) {
  16958. (*Tinflate_state)(unsafe.Pointer(state)).Fwsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  16959. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  16960. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = uint32(0)
  16961. }
  16962. /* copy state->wsize or less output bytes into the circular window */
  16963. if copy1 >= (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  16964. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwsize))
  16965. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  16966. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  16967. } else {
  16968. dist = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize - (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  16969. if dist > copy1 {
  16970. dist = copy1
  16971. }
  16972. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), end-uintptr(copy1), uint64(dist))
  16973. copy1 -= dist
  16974. if copy1 != 0 {
  16975. libc.Xmemcpy(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, end-uintptr(copy1), uint64(copy1))
  16976. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = copy1
  16977. (*Tinflate_state)(unsafe.Pointer(state)).Fwhave = (*Tinflate_state)(unsafe.Pointer(state)).Fwsize
  16978. } else {
  16979. *(*uint32)(unsafe.Pointer(state + 60)) += dist
  16980. if (*Tinflate_state)(unsafe.Pointer(state)).Fwnext == (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  16981. (*Tinflate_state)(unsafe.Pointer(state)).Fwnext = uint32(0)
  16982. }
  16983. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave < (*Tinflate_state)(unsafe.Pointer(state)).Fwsize {
  16984. *(*uint32)(unsafe.Pointer(state + 56)) += dist
  16985. }
  16986. }
  16987. }
  16988. return 0
  16989. }
  16990. /* Macros for inflate(): */
  16991. /* check function to use adler32() for zlib or crc32() for gzip */
  16992. /* check macros for header crc */
  16993. /* Load registers with state in inflate() for speed */
  16994. /* Restore state from registers in inflate() */
  16995. /* Clear the input bit accumulator */
  16996. /* Get a byte of input into the bit accumulator, or return from inflate()
  16997. if there is no input available. */
  16998. /* Assure that there are at least n bits in the bit accumulator. If there is
  16999. not enough available input to do that, then return from inflate(). */
  17000. /* Return the low n bits of the bit accumulator (n < 16) */
  17001. /* Remove n bits from the bit accumulator */
  17002. /* Remove zero to seven bits as needed to go to a byte boundary */
  17003. /*
  17004. inflate() uses a state machine to process as much input data and generate as
  17005. much output data as possible before returning. The state machine is
  17006. structured roughly as follows:
  17007. for (;;) switch (state) {
  17008. ...
  17009. case STATEn:
  17010. if (not enough input data or output space to make progress)
  17011. return;
  17012. ... make progress ...
  17013. state = STATEm;
  17014. break;
  17015. ...
  17016. }
  17017. so when inflate() is called again, the same case is attempted again, and
  17018. if the appropriate resources are provided, the machine proceeds to the
  17019. next state. The NEEDBITS() macro is usually the way the state evaluates
  17020. whether it can proceed or should return. NEEDBITS() does the return if
  17021. the requested bits are not available. The typical use of the BITS macros
  17022. is:
  17023. NEEDBITS(n);
  17024. ... do something with BITS(n) ...
  17025. DROPBITS(n);
  17026. where NEEDBITS(n) either returns from inflate() if there isn't enough
  17027. input left to load n bits into the accumulator, or it continues. BITS(n)
  17028. gives the low n bits in the accumulator. When done, DROPBITS(n) drops
  17029. the low n bits off the accumulator. INITBITS() clears the accumulator
  17030. and sets the number of available bits to zero. BYTEBITS() discards just
  17031. enough bits to put the accumulator on a byte boundary. After BYTEBITS()
  17032. and a NEEDBITS(8), then BITS(8) would return the next byte in the stream.
  17033. NEEDBITS(n) uses PULLBYTE() to get an available byte of input, or to return
  17034. if there is no input available. The decoding of variable length codes uses
  17035. PULLBYTE() directly in order to pull just enough bytes to decode the next
  17036. code, and no more.
  17037. Some states loop until they get enough input, making sure that enough
  17038. state information is maintained to continue the loop where it left off
  17039. if NEEDBITS() returns in the loop. For example, want, need, and keep
  17040. would all have to actually be part of the saved state in case NEEDBITS()
  17041. returns:
  17042. case STATEw:
  17043. while (want < need) {
  17044. NEEDBITS(n);
  17045. keep[want++] = BITS(n);
  17046. DROPBITS(n);
  17047. }
  17048. state = STATEx;
  17049. case STATEx:
  17050. As shown above, if the next state is also the next case, then the break
  17051. is omitted.
  17052. A state may also return if there is not enough output space available to
  17053. complete that state. Those states are copying stored data, writing a
  17054. literal byte, and copying a matching string.
  17055. When returning, a "goto inf_leave" is used to update the total counters,
  17056. update the check value, and determine whether any progress has been made
  17057. during that inflate() call in order to return the proper return code.
  17058. Progress is defined as a change in either strm->avail_in or strm->avail_out.
  17059. When there is a window, goto inf_leave will update the window with the last
  17060. output written. If a goto inf_leave occurs in the middle of decompression
  17061. and there is no window currently, goto inf_leave will create one and copy
  17062. output to the window for the next call of inflate().
  17063. In this implementation, the flush parameter of inflate() only affects the
  17064. return code (per zlib.h). inflate() always writes as much as possible to
  17065. strm->next_out, given the space available and the provided input--the effect
  17066. documented in zlib.h of Z_SYNC_FLUSH. Furthermore, inflate() always defers
  17067. the allocation of and copying into a sliding window until necessary, which
  17068. provides the effect documented in zlib.h for Z_FINISH when the entire input
  17069. stream available. So the only thing the flush parameter actually does is:
  17070. when flush is set to Z_FINISH, inflate() cannot return Z_OK. Instead it
  17071. will return Z_BUF_ERROR if it has not reached the end of the stream.
  17072. */
  17073. func Xinflate(tls *libc.TLS, strm Tz_streamp, flush int32) (r int32) {
  17074. bp := tls.Alloc(16)
  17075. defer tls.Free(16)
  17076. var bits, copy1, have, hold, in, left, len1, out, v101, v102, v37, v46, v48, v49, v50, v52, v53, v56, v58, v59, v64, v66, v70, v75, v76, v90, v96, v97, v98 uint32
  17077. var from, next, put, state, v100, v36, v42, v43, v44, v45, v51, v54, v55, v57, v60, v61, v62, v63, v65, v67, v69, v71, v72, v73, v74, v77, v79, v81, v82, v85, v87, v88, v92, v93, v94, v95, p83, p89 uintptr
  17078. var here, last Tcode
  17079. var ret, v103, v104, v105, v38 int32
  17080. var v47, v99 bool
  17081. var _ /* hbuf at bp+0 */ [4]uint8
  17082. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = bits, copy1, from, have, here, hold, in, last, left, len1, next, out, put, ret, state, v100, v101, v102, v103, v104, v105, v36, v37, v38, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v69, v70, v71, v72, v73, v74, v75, v76, v77, v79, v81, v82, v85, v87, v88, v90, v92, v93, v94, v95, v96, v97, v98, v99, p83, p89 /* buffer for gzip header crc calculation */
  17083. if _inflateStateCheck(tls, strm) != 0 || (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out == uintptr(m_Z_NULL) || (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in == uintptr(m_Z_NULL) && (*Tz_stream)(unsafe.Pointer(strm)).Favail_in != uint32(0) {
  17084. return -int32(2)
  17085. }
  17086. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  17087. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  17088. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  17089. } /* skip check */
  17090. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  17091. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  17092. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  17093. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  17094. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  17095. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  17096. in = have
  17097. out = left
  17098. ret = m_Z_OK
  17099. for {
  17100. switch (*Tinflate_state)(unsafe.Pointer(state)).Fmode {
  17101. case int32(_HEAD):
  17102. goto _2
  17103. case int32(_FLAGS):
  17104. goto _3
  17105. case int32(_TIME):
  17106. goto _4
  17107. case int32(_OS):
  17108. goto _5
  17109. case int32(_EXLEN):
  17110. goto _6
  17111. case int32(_EXTRA):
  17112. goto _7
  17113. case int32(_NAME):
  17114. goto _8
  17115. case int32(_COMMENT):
  17116. goto _9
  17117. case int32(_HCRC):
  17118. goto _10
  17119. case int32(_DICTID):
  17120. goto _11
  17121. case int32(_DICT):
  17122. goto _12
  17123. case int32(_TYPE):
  17124. goto _13
  17125. case int32(_TYPEDO):
  17126. goto _14
  17127. case int32(_STORED):
  17128. goto _15
  17129. case int32(_COPY_):
  17130. goto _16
  17131. case int32(_COPY):
  17132. goto _17
  17133. case int32(_TABLE):
  17134. goto _18
  17135. case int32(_LENLENS):
  17136. goto _19
  17137. case int32(_CODELENS):
  17138. goto _20
  17139. case int32(_LEN_):
  17140. goto _21
  17141. case int32(_LEN):
  17142. goto _22
  17143. case int32(_LENEXT):
  17144. goto _23
  17145. case int32(_DIST):
  17146. goto _24
  17147. case int32(_DISTEXT):
  17148. goto _25
  17149. case int32(_MATCH):
  17150. goto _26
  17151. case int32(_LIT):
  17152. goto _27
  17153. case int32(_CHECK):
  17154. goto _28
  17155. case int32(_LENGTH):
  17156. goto _29
  17157. case int32(_DONE):
  17158. goto _30
  17159. case int32(_BAD):
  17160. goto _31
  17161. case int32(_MEM):
  17162. goto _32
  17163. default:
  17164. goto _33
  17165. case int32(_SYNC):
  17166. goto _34
  17167. }
  17168. goto _35
  17169. _2:
  17170. ;
  17171. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap == 0 {
  17172. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPEDO)
  17173. goto _35
  17174. }
  17175. for bits < uint32(libc.Int32FromInt32(16)) {
  17176. if have == uint32(0) {
  17177. goto inf_leave
  17178. }
  17179. have--
  17180. v36 = next
  17181. next++
  17182. hold += uint32(*(*uint8)(unsafe.Pointer(v36))) << bits
  17183. bits += uint32(8)
  17184. }
  17185. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) != 0 && hold == uint32(0x8b1f) { /* gzip header */
  17186. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  17187. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = uint32(15)
  17188. }
  17189. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  17190. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  17191. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  17192. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  17193. hold = uint32(0)
  17194. bits = uint32(0)
  17195. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_FLAGS)
  17196. goto _35
  17197. }
  17198. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17199. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = -int32(1)
  17200. }
  17201. if !((*Tinflate_state)(unsafe.Pointer(state)).Fwrap&libc.Int32FromInt32(1) != 0) || (uint32(hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(8)-libc.Uint32FromInt32(1))<<libc.Int32FromInt32(8))+hold>>int32(8))%uint32(31) != 0 {
  17202. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 633
  17203. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17204. goto _35
  17205. }
  17206. if hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) != uint32(m_Z_DEFLATED) {
  17207. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 656
  17208. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17209. goto _35
  17210. }
  17211. hold >>= uint32(libc.Int32FromInt32(4))
  17212. bits -= uint32(libc.Int32FromInt32(4))
  17213. len1 = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(8)
  17214. if (*Tinflate_state)(unsafe.Pointer(state)).Fwbits == uint32(0) {
  17215. (*Tinflate_state)(unsafe.Pointer(state)).Fwbits = len1
  17216. }
  17217. if len1 > uint32(15) || len1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwbits {
  17218. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 683
  17219. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17220. goto _35
  17221. }
  17222. (*Tinflate_state)(unsafe.Pointer(state)).Fdmax = uint32(1) << len1
  17223. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = 0 /* indicate zlib header */
  17224. v37 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  17225. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v37
  17226. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v37
  17227. if hold&uint32(0x200) != 0 {
  17228. v38 = int32(_DICTID)
  17229. } else {
  17230. v38 = int32(_TYPE)
  17231. }
  17232. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = v38
  17233. hold = uint32(0)
  17234. bits = uint32(0)
  17235. goto _35
  17236. _3:
  17237. ;
  17238. _41:
  17239. ;
  17240. for bits < uint32(libc.Int32FromInt32(16)) {
  17241. if have == uint32(0) {
  17242. goto inf_leave
  17243. }
  17244. have--
  17245. v42 = next
  17246. next++
  17247. hold += uint32(*(*uint8)(unsafe.Pointer(v42))) << bits
  17248. bits += uint32(8)
  17249. }
  17250. goto _40
  17251. _40:
  17252. ;
  17253. if 0 != 0 {
  17254. goto _41
  17255. }
  17256. goto _39
  17257. _39:
  17258. ;
  17259. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = int32(hold)
  17260. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xff) != int32(m_Z_DEFLATED) {
  17261. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 656
  17262. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17263. goto _35
  17264. }
  17265. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0xe000) != 0 {
  17266. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 703
  17267. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17268. goto _35
  17269. }
  17270. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17271. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftext = int32(hold >> libc.Int32FromInt32(8) & libc.Uint32FromInt32(1))
  17272. }
  17273. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  17274. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  17275. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  17276. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  17277. }
  17278. hold = uint32(0)
  17279. bits = uint32(0)
  17280. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TIME)
  17281. /* fallthrough */
  17282. _4:
  17283. ;
  17284. for bits < uint32(libc.Int32FromInt32(32)) {
  17285. if have == uint32(0) {
  17286. goto inf_leave
  17287. }
  17288. have--
  17289. v43 = next
  17290. next++
  17291. hold += uint32(*(*uint8)(unsafe.Pointer(v43))) << bits
  17292. bits += uint32(8)
  17293. }
  17294. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17295. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Ftime = hold
  17296. }
  17297. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  17298. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  17299. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  17300. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(2)] = uint8(hold >> libc.Int32FromInt32(16))
  17301. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(3)] = uint8(hold >> libc.Int32FromInt32(24))
  17302. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(4))
  17303. }
  17304. hold = uint32(0)
  17305. bits = uint32(0)
  17306. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_OS)
  17307. /* fallthrough */
  17308. _5:
  17309. ;
  17310. for bits < uint32(libc.Int32FromInt32(16)) {
  17311. if have == uint32(0) {
  17312. goto inf_leave
  17313. }
  17314. have--
  17315. v44 = next
  17316. next++
  17317. hold += uint32(*(*uint8)(unsafe.Pointer(v44))) << bits
  17318. bits += uint32(8)
  17319. }
  17320. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17321. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fxflags = int32(hold & libc.Uint32FromInt32(0xff))
  17322. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fos = int32(hold >> libc.Int32FromInt32(8))
  17323. }
  17324. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  17325. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  17326. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  17327. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  17328. }
  17329. hold = uint32(0)
  17330. bits = uint32(0)
  17331. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXLEN)
  17332. /* fallthrough */
  17333. _6:
  17334. ;
  17335. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  17336. for bits < uint32(libc.Int32FromInt32(16)) {
  17337. if have == uint32(0) {
  17338. goto inf_leave
  17339. }
  17340. have--
  17341. v45 = next
  17342. next++
  17343. hold += uint32(*(*uint8)(unsafe.Pointer(v45))) << bits
  17344. bits += uint32(8)
  17345. }
  17346. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold
  17347. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17348. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len = hold
  17349. }
  17350. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  17351. (*(*[4]uint8)(unsafe.Pointer(bp)))[0] = uint8(hold)
  17352. (*(*[4]uint8)(unsafe.Pointer(bp)))[int32(1)] = uint8(hold >> libc.Int32FromInt32(8))
  17353. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, bp, uint32(2))
  17354. }
  17355. hold = uint32(0)
  17356. bits = uint32(0)
  17357. } else {
  17358. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17359. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra = uintptr(m_Z_NULL)
  17360. }
  17361. }
  17362. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_EXTRA)
  17363. /* fallthrough */
  17364. _7:
  17365. ;
  17366. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0400) != 0 {
  17367. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  17368. if copy1 > have {
  17369. copy1 = have
  17370. }
  17371. if copy1 != 0 {
  17372. if v47 = (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra != uintptr(m_Z_NULL); v47 {
  17373. v46 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_len - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  17374. len1 = v46
  17375. }
  17376. if v47 && v46 < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  17377. if len1+copy1 > (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max {
  17378. v48 = (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra_max - len1
  17379. } else {
  17380. v48 = copy1
  17381. }
  17382. libc.Xmemcpy(tls, (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fextra+uintptr(len1), next, uint64(v48))
  17383. }
  17384. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  17385. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  17386. }
  17387. have -= copy1
  17388. next += uintptr(copy1)
  17389. *(*uint32)(unsafe.Pointer(state + 80)) -= copy1
  17390. }
  17391. if (*Tinflate_state)(unsafe.Pointer(state)).Flength != 0 {
  17392. goto inf_leave
  17393. }
  17394. }
  17395. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  17396. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_NAME)
  17397. /* fallthrough */
  17398. _8:
  17399. ;
  17400. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0800) != 0 {
  17401. if have == uint32(0) {
  17402. goto inf_leave
  17403. }
  17404. copy1 = uint32(0)
  17405. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  17406. v49 = copy1
  17407. copy1++
  17408. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v49))))
  17409. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Flength < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname_max {
  17410. v51 = state + 80
  17411. v50 = *(*uint32)(unsafe.Pointer(v51))
  17412. *(*uint32)(unsafe.Pointer(v51))++
  17413. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname + uintptr(v50))) = uint8(len1)
  17414. }
  17415. }
  17416. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  17417. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  17418. }
  17419. have -= copy1
  17420. next += uintptr(copy1)
  17421. if len1 != 0 {
  17422. goto inf_leave
  17423. }
  17424. } else {
  17425. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17426. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fname = uintptr(m_Z_NULL)
  17427. }
  17428. }
  17429. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(0)
  17430. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COMMENT)
  17431. /* fallthrough */
  17432. _9:
  17433. ;
  17434. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x1000) != 0 {
  17435. if have == uint32(0) {
  17436. goto inf_leave
  17437. }
  17438. copy1 = uint32(0)
  17439. for cond := true; cond; cond = len1 != 0 && copy1 < have {
  17440. v52 = copy1
  17441. copy1++
  17442. len1 = uint32(*(*uint8)(unsafe.Pointer(next + uintptr(v52))))
  17443. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) && (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment != uintptr(m_Z_NULL) && (*Tinflate_state)(unsafe.Pointer(state)).Flength < (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomm_max {
  17444. v54 = state + 80
  17445. v53 = *(*uint32)(unsafe.Pointer(v54))
  17446. *(*uint32)(unsafe.Pointer(v54))++
  17447. *(*TBytef)(unsafe.Pointer((*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment + uintptr(v53))) = uint8(len1)
  17448. }
  17449. }
  17450. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 {
  17451. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, next, copy1)
  17452. }
  17453. have -= copy1
  17454. next += uintptr(copy1)
  17455. if len1 != 0 {
  17456. goto inf_leave
  17457. }
  17458. } else {
  17459. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17460. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fcomment = uintptr(m_Z_NULL)
  17461. }
  17462. }
  17463. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_HCRC)
  17464. /* fallthrough */
  17465. _10:
  17466. ;
  17467. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags&int32(0x0200) != 0 {
  17468. for bits < uint32(libc.Int32FromInt32(16)) {
  17469. if have == uint32(0) {
  17470. goto inf_leave
  17471. }
  17472. have--
  17473. v55 = next
  17474. next++
  17475. hold += uint32(*(*uint8)(unsafe.Pointer(v55))) << bits
  17476. bits += uint32(8)
  17477. }
  17478. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck&uint32(0xffff) {
  17479. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 728
  17480. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17481. goto _35
  17482. }
  17483. hold = uint32(0)
  17484. bits = uint32(0)
  17485. }
  17486. if (*Tinflate_state)(unsafe.Pointer(state)).Fhead != uintptr(m_Z_NULL) {
  17487. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fhcrc = (*Tinflate_state)(unsafe.Pointer(state)).Fflags >> libc.Int32FromInt32(9) & libc.Int32FromInt32(1)
  17488. (*Tgz_header)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fhead)).Fdone = int32(1)
  17489. }
  17490. v56 = Xcrc32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  17491. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v56
  17492. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v56
  17493. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  17494. goto _35
  17495. _11:
  17496. ;
  17497. for bits < uint32(libc.Int32FromInt32(32)) {
  17498. if have == uint32(0) {
  17499. goto inf_leave
  17500. }
  17501. have--
  17502. v57 = next
  17503. next++
  17504. hold += uint32(*(*uint8)(unsafe.Pointer(v57))) << bits
  17505. bits += uint32(8)
  17506. }
  17507. v58 = hold>>libc.Int32FromInt32(24)&libc.Uint32FromInt32(0xff) + hold>>libc.Int32FromInt32(8)&libc.Uint32FromInt32(0xff00) + hold&libc.Uint32FromInt32(0xff00)<<libc.Int32FromInt32(8) + hold&libc.Uint32FromInt32(0xff)<<libc.Int32FromInt32(24)
  17508. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v58
  17509. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v58
  17510. hold = uint32(0)
  17511. bits = uint32(0)
  17512. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DICT)
  17513. /* fallthrough */
  17514. _12:
  17515. ;
  17516. if (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict == 0 {
  17517. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  17518. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  17519. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  17520. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  17521. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  17522. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  17523. return int32(m_Z_NEED_DICT)
  17524. }
  17525. v59 = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  17526. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v59
  17527. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v59
  17528. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  17529. /* fallthrough */
  17530. _13:
  17531. ;
  17532. if flush == int32(m_Z_BLOCK) || flush == int32(m_Z_TREES) {
  17533. goto inf_leave
  17534. }
  17535. /* fallthrough */
  17536. _14:
  17537. ;
  17538. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  17539. hold >>= bits & uint32(7)
  17540. bits -= bits & uint32(7)
  17541. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CHECK)
  17542. goto _35
  17543. }
  17544. for bits < uint32(libc.Int32FromInt32(3)) {
  17545. if have == uint32(0) {
  17546. goto inf_leave
  17547. }
  17548. have--
  17549. v60 = next
  17550. next++
  17551. hold += uint32(*(*uint8)(unsafe.Pointer(v60))) << bits
  17552. bits += uint32(8)
  17553. }
  17554. (*Tinflate_state)(unsafe.Pointer(state)).Flast = int32(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(1) - libc.Uint32FromInt32(1)))
  17555. hold >>= uint32(libc.Int32FromInt32(1))
  17556. bits -= uint32(libc.Int32FromInt32(1))
  17557. switch hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2) - libc.Uint32FromInt32(1)) {
  17558. case uint32(0): /* stored block */
  17559. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_STORED)
  17560. case uint32(1): /* fixed block */
  17561. _fixedtables1(tls, state)
  17562. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_) /* decode codes */
  17563. if flush == int32(m_Z_TREES) {
  17564. hold >>= uint32(libc.Int32FromInt32(2))
  17565. bits -= uint32(libc.Int32FromInt32(2))
  17566. goto inf_leave
  17567. }
  17568. case uint32(2): /* dynamic block */
  17569. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TABLE)
  17570. case uint32(3):
  17571. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 331
  17572. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17573. }
  17574. hold >>= uint32(libc.Int32FromInt32(2))
  17575. bits -= uint32(libc.Int32FromInt32(2))
  17576. goto _35
  17577. _15:
  17578. ;
  17579. hold >>= bits & uint32(7)
  17580. bits -= bits & uint32(7) /* go to byte boundary */
  17581. for bits < uint32(libc.Int32FromInt32(32)) {
  17582. if have == uint32(0) {
  17583. goto inf_leave
  17584. }
  17585. have--
  17586. v61 = next
  17587. next++
  17588. hold += uint32(*(*uint8)(unsafe.Pointer(v61))) << bits
  17589. bits += uint32(8)
  17590. }
  17591. if hold&uint32(0xffff) != hold>>int32(16)^uint32(0xffff) {
  17592. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 350
  17593. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17594. goto _35
  17595. }
  17596. (*Tinflate_state)(unsafe.Pointer(state)).Flength = hold & uint32(0xffff)
  17597. hold = uint32(0)
  17598. bits = uint32(0)
  17599. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY_)
  17600. if flush == int32(m_Z_TREES) {
  17601. goto inf_leave
  17602. }
  17603. /* fallthrough */
  17604. _16:
  17605. ;
  17606. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_COPY)
  17607. /* fallthrough */
  17608. _17:
  17609. ;
  17610. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  17611. if copy1 != 0 {
  17612. if copy1 > have {
  17613. copy1 = have
  17614. }
  17615. if copy1 > left {
  17616. copy1 = left
  17617. }
  17618. if copy1 == uint32(0) {
  17619. goto inf_leave
  17620. }
  17621. libc.Xmemcpy(tls, put, next, uint64(copy1))
  17622. have -= copy1
  17623. next += uintptr(copy1)
  17624. left -= copy1
  17625. put += uintptr(copy1)
  17626. *(*uint32)(unsafe.Pointer(state + 80)) -= copy1
  17627. goto _35
  17628. }
  17629. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  17630. goto _35
  17631. _18:
  17632. ;
  17633. for bits < uint32(libc.Int32FromInt32(14)) {
  17634. if have == uint32(0) {
  17635. goto inf_leave
  17636. }
  17637. have--
  17638. v62 = next
  17639. next++
  17640. hold += uint32(*(*uint8)(unsafe.Pointer(v62))) << bits
  17641. bits += uint32(8)
  17642. }
  17643. (*Tinflate_state)(unsafe.Pointer(state)).Fnlen = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(257)
  17644. hold >>= uint32(libc.Int32FromInt32(5))
  17645. bits -= uint32(libc.Int32FromInt32(5))
  17646. (*Tinflate_state)(unsafe.Pointer(state)).Fndist = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(5)-libc.Uint32FromInt32(1)) + uint32(1)
  17647. hold >>= uint32(libc.Int32FromInt32(5))
  17648. bits -= uint32(libc.Int32FromInt32(5))
  17649. (*Tinflate_state)(unsafe.Pointer(state)).Fncode = hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(4)-libc.Uint32FromInt32(1)) + uint32(4)
  17650. hold >>= uint32(libc.Int32FromInt32(4))
  17651. bits -= uint32(libc.Int32FromInt32(4))
  17652. if (*Tinflate_state)(unsafe.Pointer(state)).Fnlen > uint32(286) || (*Tinflate_state)(unsafe.Pointer(state)).Fndist > uint32(30) {
  17653. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 379
  17654. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17655. goto _35
  17656. }
  17657. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  17658. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENLENS)
  17659. /* fallthrough */
  17660. _19:
  17661. ;
  17662. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fncode {
  17663. for bits < uint32(libc.Int32FromInt32(3)) {
  17664. if have == uint32(0) {
  17665. goto inf_leave
  17666. }
  17667. have--
  17668. v63 = next
  17669. next++
  17670. hold += uint32(*(*uint8)(unsafe.Pointer(v63))) << bits
  17671. bits += uint32(8)
  17672. }
  17673. v65 = state + 132
  17674. v64 = *(*uint32)(unsafe.Pointer(v65))
  17675. *(*uint32)(unsafe.Pointer(v65))++
  17676. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(_order1[v64])*2)) = uint16(hold & (libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3) - libc.Uint32FromInt32(1)))
  17677. hold >>= uint32(libc.Int32FromInt32(3))
  17678. bits -= uint32(libc.Int32FromInt32(3))
  17679. }
  17680. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < uint32(19) {
  17681. v67 = state + 132
  17682. v66 = *(*uint32)(unsafe.Pointer(v67))
  17683. *(*uint32)(unsafe.Pointer(v67))++
  17684. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(_order1[v66])*2)) = uint16(0)
  17685. }
  17686. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1360
  17687. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  17688. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(7)
  17689. ret = Xinflate_table(tls, int32(_CODES), state+144, uint32(19), state+136, state+112, state+784)
  17690. if ret != 0 {
  17691. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 415
  17692. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17693. goto _35
  17694. }
  17695. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  17696. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_CODELENS)
  17697. /* fallthrough */
  17698. _20:
  17699. ;
  17700. for (*Tinflate_state)(unsafe.Pointer(state)).Fhave < (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  17701. for {
  17702. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  17703. if uint32(here.Fbits) <= bits {
  17704. break
  17705. }
  17706. if have == uint32(0) {
  17707. goto inf_leave
  17708. }
  17709. have--
  17710. v69 = next
  17711. next++
  17712. hold += uint32(*(*uint8)(unsafe.Pointer(v69))) << bits
  17713. bits += uint32(8)
  17714. goto _68
  17715. _68:
  17716. }
  17717. if int32(here.Fval) < int32(16) {
  17718. hold >>= uint32(here.Fbits)
  17719. bits -= uint32(here.Fbits)
  17720. v71 = state + 132
  17721. v70 = *(*uint32)(unsafe.Pointer(v71))
  17722. *(*uint32)(unsafe.Pointer(v71))++
  17723. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(v70)*2)) = here.Fval
  17724. } else {
  17725. if int32(here.Fval) == int32(16) {
  17726. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(2)) {
  17727. if have == uint32(0) {
  17728. goto inf_leave
  17729. }
  17730. have--
  17731. v72 = next
  17732. next++
  17733. hold += uint32(*(*uint8)(unsafe.Pointer(v72))) << bits
  17734. bits += uint32(8)
  17735. }
  17736. hold >>= uint32(here.Fbits)
  17737. bits -= uint32(here.Fbits)
  17738. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave == uint32(0) {
  17739. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  17740. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17741. break
  17742. }
  17743. len1 = uint32(*(*uint16)(unsafe.Pointer(state + 144 + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fhave-uint32(1))*2)))
  17744. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(2)-libc.Uint32FromInt32(1))
  17745. hold >>= uint32(libc.Int32FromInt32(2))
  17746. bits -= uint32(libc.Int32FromInt32(2))
  17747. } else {
  17748. if int32(here.Fval) == int32(17) {
  17749. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(3)) {
  17750. if have == uint32(0) {
  17751. goto inf_leave
  17752. }
  17753. have--
  17754. v73 = next
  17755. next++
  17756. hold += uint32(*(*uint8)(unsafe.Pointer(v73))) << bits
  17757. bits += uint32(8)
  17758. }
  17759. hold >>= uint32(here.Fbits)
  17760. bits -= uint32(here.Fbits)
  17761. len1 = uint32(0)
  17762. copy1 = uint32(3) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(3)-libc.Uint32FromInt32(1))
  17763. hold >>= uint32(libc.Int32FromInt32(3))
  17764. bits -= uint32(libc.Int32FromInt32(3))
  17765. } else {
  17766. for bits < uint32(int32(here.Fbits)+libc.Int32FromInt32(7)) {
  17767. if have == uint32(0) {
  17768. goto inf_leave
  17769. }
  17770. have--
  17771. v74 = next
  17772. next++
  17773. hold += uint32(*(*uint8)(unsafe.Pointer(v74))) << bits
  17774. bits += uint32(8)
  17775. }
  17776. hold >>= uint32(here.Fbits)
  17777. bits -= uint32(here.Fbits)
  17778. len1 = uint32(0)
  17779. copy1 = uint32(11) + hold&(libc.Uint32FromUint32(1)<<libc.Int32FromInt32(7)-libc.Uint32FromInt32(1))
  17780. hold >>= uint32(libc.Int32FromInt32(7))
  17781. bits -= uint32(libc.Int32FromInt32(7))
  17782. }
  17783. }
  17784. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave+copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fnlen+(*Tinflate_state)(unsafe.Pointer(state)).Fndist {
  17785. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 440
  17786. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17787. break
  17788. }
  17789. for {
  17790. v75 = copy1
  17791. copy1--
  17792. if !(v75 != 0) {
  17793. break
  17794. }
  17795. v77 = state + 132
  17796. v76 = *(*uint32)(unsafe.Pointer(v77))
  17797. *(*uint32)(unsafe.Pointer(v77))++
  17798. *(*uint16)(unsafe.Pointer(state + 144 + uintptr(v76)*2)) = uint16(len1)
  17799. }
  17800. }
  17801. }
  17802. /* handle error breaks in while */
  17803. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_BAD) {
  17804. goto _35
  17805. }
  17806. /* check for end-of-block code (better have one) */
  17807. if int32(*(*uint16)(unsafe.Pointer(state + 144 + 256*2))) == 0 {
  17808. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 466
  17809. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17810. goto _35
  17811. }
  17812. /* build code tables -- note: do not change the lenbits or distbits
  17813. values here (9 and 6) without reading the comments in inftrees.h
  17814. concerning the ENOUGH constants, which depend on those values */
  17815. (*Tinflate_state)(unsafe.Pointer(state)).Fnext = state + 1360
  17816. (*Tinflate_state)(unsafe.Pointer(state)).Flencode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  17817. (*Tinflate_state)(unsafe.Pointer(state)).Flenbits = uint32(9)
  17818. ret = Xinflate_table(tls, int32(_LENS), state+144, (*Tinflate_state)(unsafe.Pointer(state)).Fnlen, state+136, state+112, state+784)
  17819. if ret != 0 {
  17820. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 503
  17821. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17822. goto _35
  17823. }
  17824. (*Tinflate_state)(unsafe.Pointer(state)).Fdistcode = (*Tinflate_state)(unsafe.Pointer(state)).Fnext
  17825. (*Tinflate_state)(unsafe.Pointer(state)).Fdistbits = uint32(6)
  17826. ret = Xinflate_table(tls, int32(_DISTS), state+144+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fnlen)*2, (*Tinflate_state)(unsafe.Pointer(state)).Fndist, state+136, state+116, state+784)
  17827. if ret != 0 {
  17828. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 531
  17829. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17830. goto _35
  17831. }
  17832. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN_)
  17833. if flush == int32(m_Z_TREES) {
  17834. goto inf_leave
  17835. }
  17836. /* fallthrough */
  17837. _21:
  17838. ;
  17839. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  17840. /* fallthrough */
  17841. _22:
  17842. ;
  17843. if have >= uint32(6) && left >= uint32(258) {
  17844. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  17845. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  17846. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  17847. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  17848. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  17849. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  17850. Xinflate_fast(tls, strm, out)
  17851. put = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out
  17852. left = (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  17853. next = (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in
  17854. have = (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  17855. hold = (*Tinflate_state)(unsafe.Pointer(state)).Fhold
  17856. bits = (*Tinflate_state)(unsafe.Pointer(state)).Fbits
  17857. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  17858. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  17859. }
  17860. goto _35
  17861. }
  17862. (*Tinflate_state)(unsafe.Pointer(state)).Fback = 0
  17863. for {
  17864. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Flenbits-libc.Uint32FromInt32(1)))*4))
  17865. if uint32(here.Fbits) <= bits {
  17866. break
  17867. }
  17868. if have == uint32(0) {
  17869. goto inf_leave
  17870. }
  17871. have--
  17872. v79 = next
  17873. next++
  17874. hold += uint32(*(*uint8)(unsafe.Pointer(v79))) << bits
  17875. bits += uint32(8)
  17876. goto _78
  17877. _78:
  17878. }
  17879. if here.Fop != 0 && int32(here.Fop)&int32(0xf0) == 0 {
  17880. last = here
  17881. for {
  17882. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Flencode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  17883. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  17884. break
  17885. }
  17886. if have == uint32(0) {
  17887. goto inf_leave
  17888. }
  17889. have--
  17890. v81 = next
  17891. next++
  17892. hold += uint32(*(*uint8)(unsafe.Pointer(v81))) << bits
  17893. bits += uint32(8)
  17894. goto _80
  17895. _80:
  17896. }
  17897. hold >>= uint32(last.Fbits)
  17898. bits -= uint32(last.Fbits)
  17899. *(*int32)(unsafe.Pointer(state + 7140)) += int32(last.Fbits)
  17900. }
  17901. hold >>= uint32(here.Fbits)
  17902. bits -= uint32(here.Fbits)
  17903. *(*int32)(unsafe.Pointer(state + 7140)) += int32(here.Fbits)
  17904. (*Tinflate_state)(unsafe.Pointer(state)).Flength = uint32(here.Fval)
  17905. if int32(here.Fop) == 0 {
  17906. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LIT)
  17907. goto _35
  17908. }
  17909. if int32(here.Fop)&int32(32) != 0 {
  17910. (*Tinflate_state)(unsafe.Pointer(state)).Fback = -int32(1)
  17911. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  17912. goto _35
  17913. }
  17914. if int32(here.Fop)&int32(64) != 0 {
  17915. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 553
  17916. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17917. goto _35
  17918. }
  17919. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  17920. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENEXT)
  17921. /* fallthrough */
  17922. _23:
  17923. ;
  17924. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  17925. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  17926. if have == uint32(0) {
  17927. goto inf_leave
  17928. }
  17929. have--
  17930. v82 = next
  17931. next++
  17932. hold += uint32(*(*uint8)(unsafe.Pointer(v82))) << bits
  17933. bits += uint32(8)
  17934. }
  17935. *(*uint32)(unsafe.Pointer(state + 80)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  17936. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  17937. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  17938. p83 = state + 7140
  17939. *(*int32)(unsafe.Pointer(p83)) = int32(uint32(*(*int32)(unsafe.Pointer(p83))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  17940. }
  17941. (*Tinflate_state)(unsafe.Pointer(state)).Fwas = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  17942. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DIST)
  17943. /* fallthrough */
  17944. _24:
  17945. ;
  17946. for {
  17947. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(hold&(libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fdistbits-libc.Uint32FromInt32(1)))*4))
  17948. if uint32(here.Fbits) <= bits {
  17949. break
  17950. }
  17951. if have == uint32(0) {
  17952. goto inf_leave
  17953. }
  17954. have--
  17955. v85 = next
  17956. next++
  17957. hold += uint32(*(*uint8)(unsafe.Pointer(v85))) << bits
  17958. bits += uint32(8)
  17959. goto _84
  17960. _84:
  17961. }
  17962. if int32(here.Fop)&int32(0xf0) == 0 {
  17963. last = here
  17964. for {
  17965. here = *(*Tcode)(unsafe.Pointer((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode + uintptr(uint32(last.Fval)+hold&(uint32(1)<<(int32(last.Fbits)+int32(last.Fop))-uint32(1))>>last.Fbits)*4))
  17966. if uint32(int32(last.Fbits)+int32(here.Fbits)) <= bits {
  17967. break
  17968. }
  17969. if have == uint32(0) {
  17970. goto inf_leave
  17971. }
  17972. have--
  17973. v87 = next
  17974. next++
  17975. hold += uint32(*(*uint8)(unsafe.Pointer(v87))) << bits
  17976. bits += uint32(8)
  17977. goto _86
  17978. _86:
  17979. }
  17980. hold >>= uint32(last.Fbits)
  17981. bits -= uint32(last.Fbits)
  17982. *(*int32)(unsafe.Pointer(state + 7140)) += int32(last.Fbits)
  17983. }
  17984. hold >>= uint32(here.Fbits)
  17985. bits -= uint32(here.Fbits)
  17986. *(*int32)(unsafe.Pointer(state + 7140)) += int32(here.Fbits)
  17987. if int32(here.Fop)&int32(64) != 0 {
  17988. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 581
  17989. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  17990. goto _35
  17991. }
  17992. (*Tinflate_state)(unsafe.Pointer(state)).Foffset = uint32(here.Fval)
  17993. (*Tinflate_state)(unsafe.Pointer(state)).Fextra = uint32(here.Fop) & uint32(15)
  17994. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DISTEXT)
  17995. /* fallthrough */
  17996. _25:
  17997. ;
  17998. if (*Tinflate_state)(unsafe.Pointer(state)).Fextra != 0 {
  17999. for bits < (*Tinflate_state)(unsafe.Pointer(state)).Fextra {
  18000. if have == uint32(0) {
  18001. goto inf_leave
  18002. }
  18003. have--
  18004. v88 = next
  18005. next++
  18006. hold += uint32(*(*uint8)(unsafe.Pointer(v88))) << bits
  18007. bits += uint32(8)
  18008. }
  18009. *(*uint32)(unsafe.Pointer(state + 84)) += hold & (uint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fextra - uint32(1))
  18010. hold >>= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  18011. bits -= (*Tinflate_state)(unsafe.Pointer(state)).Fextra
  18012. p89 = state + 7140
  18013. *(*int32)(unsafe.Pointer(p89)) = int32(uint32(*(*int32)(unsafe.Pointer(p89))) + (*Tinflate_state)(unsafe.Pointer(state)).Fextra)
  18014. }
  18015. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MATCH)
  18016. /* fallthrough */
  18017. _26:
  18018. ;
  18019. if left == uint32(0) {
  18020. goto inf_leave
  18021. }
  18022. copy1 = out - left
  18023. if (*Tinflate_state)(unsafe.Pointer(state)).Foffset > copy1 { /* copy from window */
  18024. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Foffset - copy1
  18025. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwhave {
  18026. if (*Tinflate_state)(unsafe.Pointer(state)).Fsane != 0 {
  18027. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 603
  18028. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  18029. goto _35
  18030. }
  18031. }
  18032. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Fwnext {
  18033. copy1 -= (*Tinflate_state)(unsafe.Pointer(state)).Fwnext
  18034. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwsize-copy1)
  18035. } else {
  18036. from = (*Tinflate_state)(unsafe.Pointer(state)).Fwindow + uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext-copy1)
  18037. }
  18038. if copy1 > (*Tinflate_state)(unsafe.Pointer(state)).Flength {
  18039. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  18040. }
  18041. } else { /* copy from output */
  18042. from = put - uintptr((*Tinflate_state)(unsafe.Pointer(state)).Foffset)
  18043. copy1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  18044. }
  18045. if copy1 > left {
  18046. copy1 = left
  18047. }
  18048. left -= copy1
  18049. *(*uint32)(unsafe.Pointer(state + 80)) -= copy1
  18050. for {
  18051. v92 = put
  18052. put++
  18053. v93 = from
  18054. from++
  18055. *(*uint8)(unsafe.Pointer(v92)) = *(*uint8)(unsafe.Pointer(v93))
  18056. goto _91
  18057. _91:
  18058. ;
  18059. copy1--
  18060. v90 = copy1
  18061. if !(v90 != 0) {
  18062. break
  18063. }
  18064. }
  18065. if (*Tinflate_state)(unsafe.Pointer(state)).Flength == uint32(0) {
  18066. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  18067. }
  18068. goto _35
  18069. _27:
  18070. ;
  18071. if left == uint32(0) {
  18072. goto inf_leave
  18073. }
  18074. v94 = put
  18075. put++
  18076. *(*uint8)(unsafe.Pointer(v94)) = uint8((*Tinflate_state)(unsafe.Pointer(state)).Flength)
  18077. left--
  18078. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LEN)
  18079. goto _35
  18080. _28:
  18081. ;
  18082. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  18083. for bits < uint32(libc.Int32FromInt32(32)) {
  18084. if have == uint32(0) {
  18085. goto inf_leave
  18086. }
  18087. have--
  18088. v95 = next
  18089. next++
  18090. hold += uint32(*(*uint8)(unsafe.Pointer(v95))) << bits
  18091. bits += uint32(8)
  18092. }
  18093. out -= left
  18094. *(*TuLong)(unsafe.Pointer(strm + 28)) += out
  18095. *(*uint32)(unsafe.Pointer(state + 36)) += out
  18096. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  18097. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  18098. v97 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  18099. } else {
  18100. v97 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, put-uintptr(out), out)
  18101. }
  18102. v96 = v97
  18103. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v96
  18104. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v96
  18105. }
  18106. out = left
  18107. if v99 = (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0; v99 {
  18108. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  18109. v98 = hold
  18110. } else {
  18111. v98 = hold>>int32(24)&uint32(0xff) + hold>>int32(8)&uint32(0xff00) + hold&uint32(0xff00)<<int32(8) + hold&uint32(0xff)<<int32(24)
  18112. }
  18113. }
  18114. if v99 && v98 != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  18115. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 748
  18116. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  18117. goto _35
  18118. }
  18119. hold = uint32(0)
  18120. bits = uint32(0)
  18121. }
  18122. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_LENGTH)
  18123. /* fallthrough */
  18124. _29:
  18125. ;
  18126. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  18127. for bits < uint32(libc.Int32FromInt32(32)) {
  18128. if have == uint32(0) {
  18129. goto inf_leave
  18130. }
  18131. have--
  18132. v100 = next
  18133. next++
  18134. hold += uint32(*(*uint8)(unsafe.Pointer(v100))) << bits
  18135. bits += uint32(8)
  18136. }
  18137. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && hold != (*Tinflate_state)(unsafe.Pointer(state)).Ftotal&uint32(0xffffffff) {
  18138. (*Tz_stream)(unsafe.Pointer(strm)).Fmsg = __ccgo_ts + 769
  18139. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_BAD)
  18140. goto _35
  18141. }
  18142. hold = uint32(0)
  18143. bits = uint32(0)
  18144. }
  18145. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_DONE)
  18146. /* fallthrough */
  18147. _30:
  18148. ;
  18149. ret = int32(m_Z_STREAM_END)
  18150. goto inf_leave
  18151. _31:
  18152. ;
  18153. ret = -int32(3)
  18154. goto inf_leave
  18155. _32:
  18156. ;
  18157. return -int32(4)
  18158. _34:
  18159. ;
  18160. /* fallthrough */
  18161. _33:
  18162. ;
  18163. return -int32(2)
  18164. _35:
  18165. ;
  18166. goto _1
  18167. _1:
  18168. }
  18169. /*
  18170. Return from inflate(), updating the total counts and the check value.
  18171. If there was no progress during the inflate() call, return a buffer
  18172. error. Call updatewindow() to create and/or update the window state.
  18173. Note: a memory error from inflate() is non-recoverable.
  18174. */
  18175. goto inf_leave
  18176. inf_leave:
  18177. ;
  18178. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out = put
  18179. (*Tz_stream)(unsafe.Pointer(strm)).Favail_out = left
  18180. (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in = next
  18181. (*Tz_stream)(unsafe.Pointer(strm)).Favail_in = have
  18182. (*Tinflate_state)(unsafe.Pointer(state)).Fhold = hold
  18183. (*Tinflate_state)(unsafe.Pointer(state)).Fbits = bits
  18184. if (*Tinflate_state)(unsafe.Pointer(state)).Fwsize != 0 || out != (*Tz_stream)(unsafe.Pointer(strm)).Favail_out && (*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_BAD) && ((*Tinflate_state)(unsafe.Pointer(state)).Fmode < int32(_CHECK) || flush != int32(m_Z_FINISH)) {
  18185. if _updatewindow(tls, strm, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out, out-(*Tz_stream)(unsafe.Pointer(strm)).Favail_out) != 0 {
  18186. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  18187. return -int32(4)
  18188. }
  18189. }
  18190. in -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_in
  18191. out -= (*Tz_stream)(unsafe.Pointer(strm)).Favail_out
  18192. *(*TuLong)(unsafe.Pointer(strm + 12)) += in
  18193. *(*TuLong)(unsafe.Pointer(strm + 28)) += out
  18194. *(*uint32)(unsafe.Pointer(state + 36)) += out
  18195. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(4) != 0 && out != 0 {
  18196. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags != 0 {
  18197. v102 = Xcrc32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  18198. } else {
  18199. v102 = Xadler32(tls, (*Tinflate_state)(unsafe.Pointer(state)).Fcheck, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_out-uintptr(out), out)
  18200. }
  18201. v101 = v102
  18202. (*Tinflate_state)(unsafe.Pointer(state)).Fcheck = v101
  18203. (*Tz_stream)(unsafe.Pointer(strm)).Fadler = v101
  18204. }
  18205. if (*Tinflate_state)(unsafe.Pointer(state)).Flast != 0 {
  18206. v103 = int32(64)
  18207. } else {
  18208. v103 = 0
  18209. }
  18210. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_TYPE) {
  18211. v104 = int32(128)
  18212. } else {
  18213. v104 = 0
  18214. }
  18215. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_LEN_) || (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY_) {
  18216. v105 = int32(256)
  18217. } else {
  18218. v105 = 0
  18219. }
  18220. (*Tz_stream)(unsafe.Pointer(strm)).Fdata_type = int32((*Tinflate_state)(unsafe.Pointer(state)).Fbits) + v103 + v104 + v105
  18221. if (in == uint32(0) && out == uint32(0) || flush == int32(m_Z_FINISH)) && ret == m_Z_OK {
  18222. ret = -int32(5)
  18223. }
  18224. return ret
  18225. }
  18226. var _order1 = [19]uint16{
  18227. 0: uint16(16),
  18228. 1: uint16(17),
  18229. 2: uint16(18),
  18230. 4: uint16(8),
  18231. 5: uint16(7),
  18232. 6: uint16(9),
  18233. 7: uint16(6),
  18234. 8: uint16(10),
  18235. 9: uint16(5),
  18236. 10: uint16(11),
  18237. 11: uint16(4),
  18238. 12: uint16(12),
  18239. 13: uint16(3),
  18240. 14: uint16(13),
  18241. 15: uint16(2),
  18242. 16: uint16(14),
  18243. 17: uint16(1),
  18244. 18: uint16(15),
  18245. }
  18246. func XinflateEnd(tls *libc.TLS, strm Tz_streamp) (r int32) {
  18247. var state uintptr
  18248. _ = state
  18249. if _inflateStateCheck(tls, strm) != 0 {
  18250. return -int32(2)
  18251. }
  18252. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18253. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  18254. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow)
  18255. }
  18256. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(strm)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(strm)).Fopaque, (*Tz_stream)(unsafe.Pointer(strm)).Fstate)
  18257. (*Tz_stream)(unsafe.Pointer(strm)).Fstate = uintptr(m_Z_NULL)
  18258. return m_Z_OK
  18259. }
  18260. func XinflateGetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength uintptr) (r int32) {
  18261. var state uintptr
  18262. _ = state
  18263. /* check state */
  18264. if _inflateStateCheck(tls, strm) != 0 {
  18265. return -int32(2)
  18266. }
  18267. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18268. /* copy dictionary */
  18269. if (*Tinflate_state)(unsafe.Pointer(state)).Fwhave != 0 && dictionary != uintptr(m_Z_NULL) {
  18270. libc.Xmemcpy(tls, dictionary, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwhave-(*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  18271. libc.Xmemcpy(tls, dictionary+uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwhave)-uintptr((*Tinflate_state)(unsafe.Pointer(state)).Fwnext), (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64((*Tinflate_state)(unsafe.Pointer(state)).Fwnext))
  18272. }
  18273. if dictLength != uintptr(m_Z_NULL) {
  18274. *(*TuInt)(unsafe.Pointer(dictLength)) = (*Tinflate_state)(unsafe.Pointer(state)).Fwhave
  18275. }
  18276. return m_Z_OK
  18277. }
  18278. func XinflateSetDictionary(tls *libc.TLS, strm Tz_streamp, dictionary uintptr, dictLength TuInt) (r int32) {
  18279. var dictid uint32
  18280. var ret int32
  18281. var state uintptr
  18282. _, _, _ = dictid, ret, state
  18283. /* check state */
  18284. if _inflateStateCheck(tls, strm) != 0 {
  18285. return -int32(2)
  18286. }
  18287. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18288. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_DICT) {
  18289. return -int32(2)
  18290. }
  18291. /* check for correct dictionary identifier */
  18292. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_DICT) {
  18293. dictid = Xadler32(tls, uint32(0), uintptr(m_Z_NULL), uint32(0))
  18294. dictid = Xadler32(tls, dictid, dictionary, dictLength)
  18295. if dictid != (*Tinflate_state)(unsafe.Pointer(state)).Fcheck {
  18296. return -int32(3)
  18297. }
  18298. }
  18299. /* copy dictionary to window using updatewindow(), which will amend the
  18300. existing dictionary if appropriate */
  18301. ret = _updatewindow(tls, strm, dictionary+uintptr(dictLength), dictLength)
  18302. if ret != 0 {
  18303. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_MEM)
  18304. return -int32(4)
  18305. }
  18306. (*Tinflate_state)(unsafe.Pointer(state)).Fhavedict = int32(1)
  18307. return m_Z_OK
  18308. }
  18309. func XinflateGetHeader(tls *libc.TLS, strm Tz_streamp, head Tgz_headerp) (r int32) {
  18310. var state uintptr
  18311. _ = state
  18312. /* check state */
  18313. if _inflateStateCheck(tls, strm) != 0 {
  18314. return -int32(2)
  18315. }
  18316. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18317. if (*Tinflate_state)(unsafe.Pointer(state)).Fwrap&int32(2) == 0 {
  18318. return -int32(2)
  18319. }
  18320. /* save header structure */
  18321. (*Tinflate_state)(unsafe.Pointer(state)).Fhead = head
  18322. (*Tgz_header)(unsafe.Pointer(head)).Fdone = 0
  18323. return m_Z_OK
  18324. }
  18325. // C documentation
  18326. //
  18327. // /*
  18328. // Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff. Return when found
  18329. // or when out of input. When called, *have is the number of pattern bytes
  18330. // found in order so far, in 0..3. On return *have is updated to the new
  18331. // state. If on return *have equals four, then the pattern was found and the
  18332. // return value is how many bytes were read including the last byte of the
  18333. // pattern. If *have is less than four, then the pattern has not been found
  18334. // yet and the return value is len. In the latter case, syncsearch() can be
  18335. // called again with more data and the *have state. *have is initialized to
  18336. // zero for the first call.
  18337. // */
  18338. func _syncsearch(tls *libc.TLS, have uintptr, buf uintptr, len1 uint32) (r uint32) {
  18339. var got, next uint32
  18340. var v1 int32
  18341. _, _, _ = got, next, v1
  18342. got = *(*uint32)(unsafe.Pointer(have))
  18343. next = uint32(0)
  18344. for next < len1 && got < uint32(4) {
  18345. if got < uint32(2) {
  18346. v1 = 0
  18347. } else {
  18348. v1 = int32(0xff)
  18349. }
  18350. if int32(*(*uint8)(unsafe.Pointer(buf + uintptr(next)))) == v1 {
  18351. got++
  18352. } else {
  18353. if *(*uint8)(unsafe.Pointer(buf + uintptr(next))) != 0 {
  18354. got = uint32(0)
  18355. } else {
  18356. got = uint32(4) - got
  18357. }
  18358. }
  18359. next++
  18360. }
  18361. *(*uint32)(unsafe.Pointer(have)) = got
  18362. return next
  18363. }
  18364. func XinflateSync(tls *libc.TLS, strm Tz_streamp) (r int32) {
  18365. bp := tls.Alloc(16)
  18366. defer tls.Free(16)
  18367. var flags int32
  18368. var in, len1, out, v1 uint32
  18369. var state uintptr
  18370. var _ /* buf at bp+0 */ [4]uint8
  18371. _, _, _, _, _, _ = flags, in, len1, out, state, v1
  18372. /* check parameters */
  18373. if _inflateStateCheck(tls, strm) != 0 {
  18374. return -int32(2)
  18375. }
  18376. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18377. if (*Tz_stream)(unsafe.Pointer(strm)).Favail_in == uint32(0) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits < uint32(8) {
  18378. return -int32(5)
  18379. }
  18380. /* if first time, start search in bit buffer */
  18381. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode != int32(_SYNC) {
  18382. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_SYNC)
  18383. *(*uint32)(unsafe.Pointer(state + 72)) >>= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  18384. *(*uint32)(unsafe.Pointer(state + 76)) -= (*Tinflate_state)(unsafe.Pointer(state)).Fbits & uint32(7)
  18385. len1 = uint32(0)
  18386. for (*Tinflate_state)(unsafe.Pointer(state)).Fbits >= uint32(8) {
  18387. v1 = len1
  18388. len1++
  18389. (*(*[4]uint8)(unsafe.Pointer(bp)))[v1] = uint8((*Tinflate_state)(unsafe.Pointer(state)).Fhold)
  18390. *(*uint32)(unsafe.Pointer(state + 72)) >>= uint32(8)
  18391. *(*uint32)(unsafe.Pointer(state + 76)) -= uint32(8)
  18392. }
  18393. (*Tinflate_state)(unsafe.Pointer(state)).Fhave = uint32(0)
  18394. _syncsearch(tls, state+132, bp, len1)
  18395. }
  18396. /* search available input */
  18397. len1 = _syncsearch(tls, state+132, (*Tz_stream)(unsafe.Pointer(strm)).Fnext_in, (*Tz_stream)(unsafe.Pointer(strm)).Favail_in)
  18398. *(*TuInt)(unsafe.Pointer(strm + 8)) -= len1
  18399. *(*uintptr)(unsafe.Pointer(strm)) += uintptr(len1)
  18400. *(*TuLong)(unsafe.Pointer(strm + 12)) += len1
  18401. /* return no joy or set up to restart inflate() on a new block */
  18402. if (*Tinflate_state)(unsafe.Pointer(state)).Fhave != uint32(4) {
  18403. return -int32(3)
  18404. }
  18405. if (*Tinflate_state)(unsafe.Pointer(state)).Fflags == -int32(1) {
  18406. (*Tinflate_state)(unsafe.Pointer(state)).Fwrap = 0
  18407. } else {
  18408. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  18409. } /* no point in computing a check value now */
  18410. flags = (*Tinflate_state)(unsafe.Pointer(state)).Fflags
  18411. in = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in
  18412. out = (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out
  18413. XinflateReset(tls, strm)
  18414. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_in = in
  18415. (*Tz_stream)(unsafe.Pointer(strm)).Ftotal_out = out
  18416. (*Tinflate_state)(unsafe.Pointer(state)).Fflags = flags
  18417. (*Tinflate_state)(unsafe.Pointer(state)).Fmode = int32(_TYPE)
  18418. return m_Z_OK
  18419. }
  18420. // C documentation
  18421. //
  18422. // /*
  18423. // Returns true if inflate is currently at the end of a block generated by
  18424. // Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
  18425. // implementation to provide an additional safety check. PPP uses
  18426. // Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored
  18427. // block. When decompressing, PPP checks that at the end of input packet,
  18428. // inflate is waiting for these length bytes.
  18429. // */
  18430. func XinflateSyncPoint(tls *libc.TLS, strm Tz_streamp) (r int32) {
  18431. var state uintptr
  18432. _ = state
  18433. if _inflateStateCheck(tls, strm) != 0 {
  18434. return -int32(2)
  18435. }
  18436. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18437. return libc.BoolInt32((*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_STORED) && (*Tinflate_state)(unsafe.Pointer(state)).Fbits == uint32(0))
  18438. }
  18439. func XinflateCopy(tls *libc.TLS, dest Tz_streamp, source Tz_streamp) (r int32) {
  18440. var copy1, state, window uintptr
  18441. var wsize uint32
  18442. _, _, _, _ = copy1, state, window, wsize
  18443. /* check input */
  18444. if _inflateStateCheck(tls, source) != 0 || dest == uintptr(m_Z_NULL) {
  18445. return -int32(2)
  18446. }
  18447. state = (*Tz_stream)(unsafe.Pointer(source)).Fstate
  18448. /* allocate space */
  18449. copy1 = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, uint32(libc.Int32FromInt32(1)), uint32(libc.Uint64FromInt64(7152)))
  18450. if copy1 == uintptr(m_Z_NULL) {
  18451. return -int32(4)
  18452. }
  18453. window = uintptr(m_Z_NULL)
  18454. if (*Tinflate_state)(unsafe.Pointer(state)).Fwindow != uintptr(m_Z_NULL) {
  18455. window = (*(*func(*libc.TLS, Tvoidpf, TuInt, TuInt) Tvoidpf)(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzalloc})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, libc.Uint32FromUint32(1)<<(*Tinflate_state)(unsafe.Pointer(state)).Fwbits, uint32(libc.Uint64FromInt64(1)))
  18456. if window == uintptr(m_Z_NULL) {
  18457. (*(*func(*libc.TLS, Tvoidpf, Tvoidpf))(unsafe.Pointer(&struct{ uintptr }{(*Tz_stream)(unsafe.Pointer(source)).Fzfree})))(tls, (*Tz_stream)(unsafe.Pointer(source)).Fopaque, copy1)
  18458. return -int32(4)
  18459. }
  18460. }
  18461. /* copy state */
  18462. libc.Xmemcpy(tls, dest, source, uint64(88))
  18463. libc.Xmemcpy(tls, copy1, state, uint64(7152))
  18464. (*Tinflate_state)(unsafe.Pointer(copy1)).Fstrm = dest
  18465. if (*Tinflate_state)(unsafe.Pointer(state)).Flencode >= state+1360 && (*Tinflate_state)(unsafe.Pointer(state)).Flencode <= state+1360+uintptr(libc.Int32FromInt32(m_ENOUGH_LENS)+libc.Int32FromInt32(m_ENOUGH_DISTS))*4-uintptr(1)*4 {
  18466. (*Tinflate_state)(unsafe.Pointer(copy1)).Flencode = copy1 + 1360 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Flencode)-t__predefined_ptrdiff_t(state+1360))/4)*4
  18467. (*Tinflate_state)(unsafe.Pointer(copy1)).Fdistcode = copy1 + 1360 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fdistcode)-t__predefined_ptrdiff_t(state+1360))/4)*4
  18468. }
  18469. (*Tinflate_state)(unsafe.Pointer(copy1)).Fnext = copy1 + 1360 + uintptr((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext)-t__predefined_ptrdiff_t(state+1360))/4)*4
  18470. if window != uintptr(m_Z_NULL) {
  18471. wsize = uint32(1) << (*Tinflate_state)(unsafe.Pointer(state)).Fwbits
  18472. libc.Xmemcpy(tls, window, (*Tinflate_state)(unsafe.Pointer(state)).Fwindow, uint64(wsize))
  18473. }
  18474. (*Tinflate_state)(unsafe.Pointer(copy1)).Fwindow = window
  18475. (*Tz_stream)(unsafe.Pointer(dest)).Fstate = copy1
  18476. return m_Z_OK
  18477. }
  18478. func XinflateUndermine(tls *libc.TLS, strm Tz_streamp, subvert int32) (r int32) {
  18479. var state uintptr
  18480. _ = state
  18481. if _inflateStateCheck(tls, strm) != 0 {
  18482. return -int32(2)
  18483. }
  18484. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18485. _ = subvert
  18486. (*Tinflate_state)(unsafe.Pointer(state)).Fsane = int32(1)
  18487. return -int32(3)
  18488. }
  18489. func XinflateValidate(tls *libc.TLS, strm Tz_streamp, check int32) (r int32) {
  18490. var state uintptr
  18491. _ = state
  18492. if _inflateStateCheck(tls, strm) != 0 {
  18493. return -int32(2)
  18494. }
  18495. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18496. if check != 0 && (*Tinflate_state)(unsafe.Pointer(state)).Fwrap != 0 {
  18497. *(*int32)(unsafe.Pointer(state + 16)) |= int32(4)
  18498. } else {
  18499. *(*int32)(unsafe.Pointer(state + 16)) &= ^libc.Int32FromInt32(4)
  18500. }
  18501. return m_Z_OK
  18502. }
  18503. func XinflateMark(tls *libc.TLS, strm Tz_streamp) (r int32) {
  18504. var state uintptr
  18505. var v1, v2 uint32
  18506. _, _, _ = state, v1, v2
  18507. if _inflateStateCheck(tls, strm) != 0 {
  18508. return -(libc.Int32FromInt32(1) << libc.Int32FromInt32(16))
  18509. }
  18510. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18511. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_COPY) {
  18512. v1 = (*Tinflate_state)(unsafe.Pointer(state)).Flength
  18513. } else {
  18514. if (*Tinflate_state)(unsafe.Pointer(state)).Fmode == int32(_MATCH) {
  18515. v2 = (*Tinflate_state)(unsafe.Pointer(state)).Fwas - (*Tinflate_state)(unsafe.Pointer(state)).Flength
  18516. } else {
  18517. v2 = uint32(0)
  18518. }
  18519. v1 = v2
  18520. }
  18521. return int32(uint32(int32(uint32((*Tinflate_state)(unsafe.Pointer(state)).Fback)<<libc.Int32FromInt32(16))) + v1)
  18522. }
  18523. func XinflateCodesUsed(tls *libc.TLS, strm Tz_streamp) (r uint32) {
  18524. var state uintptr
  18525. _ = state
  18526. if _inflateStateCheck(tls, strm) != 0 {
  18527. return uint32(-libc.Int32FromInt32(1))
  18528. }
  18529. state = (*Tz_stream)(unsafe.Pointer(strm)).Fstate
  18530. return uint32((int64((*Tinflate_state)(unsafe.Pointer(state)).Fnext) - t__predefined_ptrdiff_t(state+1360)) / 4)
  18531. }
  18532. const m_MAXBITS = 15
  18533. /*
  18534. If you use the zlib library in a product, an acknowledgment is welcome
  18535. in the documentation of your product. If for some reason you cannot
  18536. include such an acknowledgment, I would appreciate that you keep this
  18537. copyright string in the executable of your product.
  18538. */
  18539. // C documentation
  18540. //
  18541. // /*
  18542. // Build a set of tables to decode the provided canonical Huffman code.
  18543. // The code lengths are lens[0..codes-1]. The result starts at *table,
  18544. // whose indices are 0..2^bits-1. work is a writable array of at least
  18545. // lens shorts, which is used as a work area. type is the type of code
  18546. // to be generated, CODES, LENS, or DISTS. On return, zero is success,
  18547. // -1 is an invalid code, and +1 means that ENOUGH isn't enough. table
  18548. // on return points to the next available entry's address. bits is the
  18549. // requested root table index bits, and on return it is the actual root
  18550. // table index bits. It will differ if the request is greater than the
  18551. // longest code or if it is less than the shortest code.
  18552. // */
  18553. func Xinflate_table(tls *libc.TLS, type1 Tcodetype, lens uintptr, codes uint32, table uintptr, bits uintptr, work uintptr) (r int32) {
  18554. bp := tls.Alloc(64)
  18555. defer tls.Free(64)
  18556. var base, extra, next, v13, v14, v17, v4, v5, v6, v7 uintptr
  18557. var curr, drop, fill, huff, incr, len1, low, mask, match, max, min, root, sym, used uint32
  18558. var here Tcode
  18559. var left int32
  18560. var v12, v16 uint16
  18561. var _ /* count at bp+0 */ [16]uint16
  18562. var _ /* offs at bp+32 */ [16]uint16
  18563. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, curr, drop, extra, fill, here, huff, incr, left, len1, low, mask, match, max, min, next, root, sym, used, v12, v13, v14, v16, v17, v4, v5, v6, v7 /* offsets in table for each length */
  18564. /*
  18565. Process a set of code lengths to create a canonical Huffman code. The
  18566. code lengths are lens[0..codes-1]. Each length corresponds to the
  18567. symbols 0..codes-1. The Huffman code is generated by first sorting the
  18568. symbols by length from short to long, and retaining the symbol order
  18569. for codes with equal lengths. Then the code starts with all zero bits
  18570. for the first code of the shortest length, and the codes are integer
  18571. increments for the same length, and zeros are appended as the length
  18572. increases. For the deflate format, these bits are stored backwards
  18573. from their more natural integer increment ordering, and so when the
  18574. decoding tables are built in the large loop below, the integer codes
  18575. are incremented backwards.
  18576. This routine assumes, but does not check, that all of the entries in
  18577. lens[] are in the range 0..MAXBITS. The caller must assure this.
  18578. 1..MAXBITS is interpreted as that code length. zero means that that
  18579. symbol does not occur in this code.
  18580. The codes are sorted by computing a count of codes for each length,
  18581. creating from that a table of starting indices for each length in the
  18582. sorted table, and then entering the symbols in order in the sorted
  18583. table. The sorted table is work[], with that space being provided by
  18584. the caller.
  18585. The length counts are used for other purposes as well, i.e. finding
  18586. the minimum and maximum length codes, determining if there are any
  18587. codes at all, checking for a valid set of lengths, and looking ahead
  18588. at length counts to determine sub-table sizes when building the
  18589. decoding tables.
  18590. */
  18591. /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
  18592. len1 = uint32(0)
  18593. for {
  18594. if !(len1 <= uint32(m_MAXBITS)) {
  18595. break
  18596. }
  18597. (*(*[16]uint16)(unsafe.Pointer(bp)))[len1] = uint16(0)
  18598. goto _1
  18599. _1:
  18600. ;
  18601. len1++
  18602. }
  18603. sym = uint32(0)
  18604. for {
  18605. if !(sym < codes) {
  18606. break
  18607. }
  18608. (*(*[16]uint16)(unsafe.Pointer(bp)))[*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))]++
  18609. goto _2
  18610. _2:
  18611. ;
  18612. sym++
  18613. }
  18614. /* bound code lengths, force root to be within code lengths */
  18615. root = *(*uint32)(unsafe.Pointer(bits))
  18616. max = uint32(m_MAXBITS)
  18617. for {
  18618. if !(max >= uint32(1)) {
  18619. break
  18620. }
  18621. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[max]) != 0 {
  18622. break
  18623. }
  18624. goto _3
  18625. _3:
  18626. ;
  18627. max--
  18628. }
  18629. if root > max {
  18630. root = max
  18631. }
  18632. if max == uint32(0) { /* no symbols to code at all */
  18633. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  18634. here.Fbits = libc.Uint8FromInt32(1)
  18635. here.Fval = libc.Uint16FromInt32(0)
  18636. v5 = table
  18637. v4 = *(*uintptr)(unsafe.Pointer(v5))
  18638. *(*uintptr)(unsafe.Pointer(v5)) += 4
  18639. *(*Tcode)(unsafe.Pointer(v4)) = here /* make a table to force an error */
  18640. v7 = table
  18641. v6 = *(*uintptr)(unsafe.Pointer(v7))
  18642. *(*uintptr)(unsafe.Pointer(v7)) += 4
  18643. *(*Tcode)(unsafe.Pointer(v6)) = here
  18644. *(*uint32)(unsafe.Pointer(bits)) = uint32(1)
  18645. return 0 /* no symbols, but wait for decoding to report error */
  18646. }
  18647. min = uint32(1)
  18648. for {
  18649. if !(min < max) {
  18650. break
  18651. }
  18652. if int32((*(*[16]uint16)(unsafe.Pointer(bp)))[min]) != 0 {
  18653. break
  18654. }
  18655. goto _8
  18656. _8:
  18657. ;
  18658. min++
  18659. }
  18660. if root < min {
  18661. root = min
  18662. }
  18663. /* check for an over-subscribed or incomplete set of lengths */
  18664. left = int32(1)
  18665. len1 = uint32(1)
  18666. for {
  18667. if !(len1 <= uint32(m_MAXBITS)) {
  18668. break
  18669. }
  18670. left <<= int32(1)
  18671. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1])
  18672. if left < 0 {
  18673. return -int32(1)
  18674. } /* over-subscribed */
  18675. goto _9
  18676. _9:
  18677. ;
  18678. len1++
  18679. }
  18680. if left > 0 && (type1 == int32(_CODES) || max != uint32(1)) {
  18681. return -int32(1)
  18682. } /* incomplete set */
  18683. /* generate offsets into symbol table for each length for sorting */
  18684. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[int32(1)] = uint16(0)
  18685. len1 = uint32(1)
  18686. for {
  18687. if !(len1 < uint32(m_MAXBITS)) {
  18688. break
  18689. }
  18690. (*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1+uint32(1)] = uint16(int32((*(*[16]uint16)(unsafe.Pointer(bp + 32)))[len1]) + int32((*(*[16]uint16)(unsafe.Pointer(bp)))[len1]))
  18691. goto _10
  18692. _10:
  18693. ;
  18694. len1++
  18695. }
  18696. /* sort symbols by length, by symbol order within each length */
  18697. sym = uint32(0)
  18698. for {
  18699. if !(sym < codes) {
  18700. break
  18701. }
  18702. if int32(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2))) != 0 {
  18703. v13 = bp + 32 + uintptr(*(*uint16)(unsafe.Pointer(lens + uintptr(sym)*2)))*2
  18704. v12 = *(*uint16)(unsafe.Pointer(v13))
  18705. *(*uint16)(unsafe.Pointer(v13))++
  18706. *(*uint16)(unsafe.Pointer(work + uintptr(v12)*2)) = uint16(sym)
  18707. }
  18708. goto _11
  18709. _11:
  18710. ;
  18711. sym++
  18712. }
  18713. /*
  18714. Create and fill in decoding tables. In this loop, the table being
  18715. filled is at next and has curr index bits. The code being used is huff
  18716. with length len. That code is converted to an index by dropping drop
  18717. bits off of the bottom. For codes where len is less than drop + curr,
  18718. those top drop + curr - len bits are incremented through all values to
  18719. fill the table with replicated entries.
  18720. root is the number of index bits for the root table. When len exceeds
  18721. root, sub-tables are created pointed to by the root entry with an index
  18722. of the low root bits of huff. This is saved in low to check for when a
  18723. new sub-table should be started. drop is zero when the root table is
  18724. being filled, and drop is root when sub-tables are being filled.
  18725. When a new sub-table is needed, it is necessary to look ahead in the
  18726. code lengths to determine what size sub-table is needed. The length
  18727. counts are used for this, and so count[] is decremented as codes are
  18728. entered in the tables.
  18729. used keeps track of how many table entries have been allocated from the
  18730. provided *table space. It is checked for LENS and DIST tables against
  18731. the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
  18732. the initial root table size constants. See the comments in inftrees.h
  18733. for more information.
  18734. sym increments through all symbols, and the loop terminates when
  18735. all codes of length max, i.e. all codes, have been processed. This
  18736. routine permits incomplete codes, so another loop after this one fills
  18737. in the rest of the decoding tables with invalid code markers.
  18738. */
  18739. /* set up for code type */
  18740. switch type1 {
  18741. case int32(_CODES):
  18742. v14 = work
  18743. extra = v14
  18744. base = v14 /* dummy value--not used */
  18745. match = uint32(20)
  18746. case int32(_LENS):
  18747. base = uintptr(unsafe.Pointer(&_lbase))
  18748. extra = uintptr(unsafe.Pointer(&_lext))
  18749. match = uint32(257)
  18750. default: /* DISTS */
  18751. base = uintptr(unsafe.Pointer(&_dbase))
  18752. extra = uintptr(unsafe.Pointer(&_dext))
  18753. match = uint32(0)
  18754. }
  18755. /* initialize state for loop */
  18756. huff = uint32(0) /* starting code */
  18757. sym = uint32(0) /* starting code symbol */
  18758. len1 = min /* starting code length */
  18759. next = *(*uintptr)(unsafe.Pointer(table)) /* current table to fill in */
  18760. curr = root /* current table index bits */
  18761. drop = uint32(0) /* current bits to drop from code for index */
  18762. low = uint32(-libc.Int32FromInt32(1)) /* trigger new sub-table when len > root */
  18763. used = uint32(1) << root /* use root table entries */
  18764. mask = used - uint32(1) /* mask for comparing low */
  18765. /* check available table space */
  18766. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  18767. return int32(1)
  18768. }
  18769. /* process all codes and make table entries */
  18770. for {
  18771. /* create table entry */
  18772. here.Fbits = uint8(len1 - drop)
  18773. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))+uint32(1) < match {
  18774. here.Fop = libc.Uint8FromInt32(0)
  18775. here.Fval = *(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))
  18776. } else {
  18777. if uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2))) >= match {
  18778. here.Fop = uint8(*(*uint16)(unsafe.Pointer(extra + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2)))
  18779. here.Fval = *(*uint16)(unsafe.Pointer(base + uintptr(uint32(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))-match)*2))
  18780. } else {
  18781. here.Fop = uint8(libc.Int32FromInt32(32) + libc.Int32FromInt32(64)) /* end of block */
  18782. here.Fval = uint16(0)
  18783. }
  18784. }
  18785. /* replicate for those indices with low len bits equal to huff */
  18786. incr = uint32(1) << (len1 - drop)
  18787. fill = uint32(1) << curr
  18788. min = fill /* save offset to next table */
  18789. for cond := true; cond; cond = fill != uint32(0) {
  18790. fill -= incr
  18791. *(*Tcode)(unsafe.Pointer(next + uintptr(huff>>drop+fill)*4)) = here
  18792. }
  18793. /* backwards increment the len-bit code huff */
  18794. incr = uint32(1) << (len1 - uint32(1))
  18795. for huff&incr != 0 {
  18796. incr >>= uint32(1)
  18797. }
  18798. if incr != uint32(0) {
  18799. huff &= incr - uint32(1)
  18800. huff += incr
  18801. } else {
  18802. huff = uint32(0)
  18803. }
  18804. /* go to next symbol, update count, len */
  18805. sym++
  18806. v17 = bp + uintptr(len1)*2
  18807. *(*uint16)(unsafe.Pointer(v17))--
  18808. v16 = *(*uint16)(unsafe.Pointer(v17))
  18809. if int32(v16) == 0 {
  18810. if len1 == max {
  18811. break
  18812. }
  18813. len1 = uint32(*(*uint16)(unsafe.Pointer(lens + uintptr(*(*uint16)(unsafe.Pointer(work + uintptr(sym)*2)))*2)))
  18814. }
  18815. /* create new sub-table if needed */
  18816. if len1 > root && huff&mask != low {
  18817. /* if first time, transition to sub-tables */
  18818. if drop == uint32(0) {
  18819. drop = root
  18820. }
  18821. /* increment past last table */
  18822. next += uintptr(min) * 4 /* here min is 1 << curr */
  18823. /* determine length of next table */
  18824. curr = len1 - drop
  18825. left = libc.Int32FromInt32(1) << curr
  18826. for curr+drop < max {
  18827. left -= int32((*(*[16]uint16)(unsafe.Pointer(bp)))[curr+drop])
  18828. if left <= 0 {
  18829. break
  18830. }
  18831. curr++
  18832. left <<= int32(1)
  18833. }
  18834. /* check for enough space */
  18835. used += uint32(1) << curr
  18836. if type1 == int32(_LENS) && used > uint32(m_ENOUGH_LENS) || type1 == int32(_DISTS) && used > uint32(m_ENOUGH_DISTS) {
  18837. return int32(1)
  18838. }
  18839. /* point entry in root table to sub-table */
  18840. low = huff & mask
  18841. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fop = uint8(curr)
  18842. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fbits = uint8(root)
  18843. (*(*Tcode)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(table)) + uintptr(low)*4))).Fval = uint16((int64(next) - int64(*(*uintptr)(unsafe.Pointer(table)))) / 4)
  18844. }
  18845. goto _15
  18846. _15:
  18847. }
  18848. /* fill in remaining table entry if code is incomplete (guaranteed to have
  18849. at most one remaining entry, since if the code is incomplete, the
  18850. maximum code length that was allowed to get this far is one bit) */
  18851. if huff != uint32(0) {
  18852. here.Fop = libc.Uint8FromInt32(64) /* invalid code marker */
  18853. here.Fbits = uint8(len1 - drop)
  18854. here.Fval = libc.Uint16FromInt32(0)
  18855. *(*Tcode)(unsafe.Pointer(next + uintptr(huff)*4)) = here
  18856. }
  18857. /* set return parameters */
  18858. *(*uintptr)(unsafe.Pointer(table)) += uintptr(used) * 4
  18859. *(*uint32)(unsafe.Pointer(bits)) = root
  18860. return 0
  18861. }
  18862. var _lbase = [31]uint16{
  18863. 0: uint16(3),
  18864. 1: uint16(4),
  18865. 2: uint16(5),
  18866. 3: uint16(6),
  18867. 4: uint16(7),
  18868. 5: uint16(8),
  18869. 6: uint16(9),
  18870. 7: uint16(10),
  18871. 8: uint16(11),
  18872. 9: uint16(13),
  18873. 10: uint16(15),
  18874. 11: uint16(17),
  18875. 12: uint16(19),
  18876. 13: uint16(23),
  18877. 14: uint16(27),
  18878. 15: uint16(31),
  18879. 16: uint16(35),
  18880. 17: uint16(43),
  18881. 18: uint16(51),
  18882. 19: uint16(59),
  18883. 20: uint16(67),
  18884. 21: uint16(83),
  18885. 22: uint16(99),
  18886. 23: uint16(115),
  18887. 24: uint16(131),
  18888. 25: uint16(163),
  18889. 26: uint16(195),
  18890. 27: uint16(227),
  18891. 28: uint16(258),
  18892. }
  18893. var _lext = [31]uint16{
  18894. 0: uint16(16),
  18895. 1: uint16(16),
  18896. 2: uint16(16),
  18897. 3: uint16(16),
  18898. 4: uint16(16),
  18899. 5: uint16(16),
  18900. 6: uint16(16),
  18901. 7: uint16(16),
  18902. 8: uint16(17),
  18903. 9: uint16(17),
  18904. 10: uint16(17),
  18905. 11: uint16(17),
  18906. 12: uint16(18),
  18907. 13: uint16(18),
  18908. 14: uint16(18),
  18909. 15: uint16(18),
  18910. 16: uint16(19),
  18911. 17: uint16(19),
  18912. 18: uint16(19),
  18913. 19: uint16(19),
  18914. 20: uint16(20),
  18915. 21: uint16(20),
  18916. 22: uint16(20),
  18917. 23: uint16(20),
  18918. 24: uint16(21),
  18919. 25: uint16(21),
  18920. 26: uint16(21),
  18921. 27: uint16(21),
  18922. 28: uint16(16),
  18923. 29: uint16(203),
  18924. 30: uint16(77),
  18925. }
  18926. var _dbase = [32]uint16{
  18927. 0: uint16(1),
  18928. 1: uint16(2),
  18929. 2: uint16(3),
  18930. 3: uint16(4),
  18931. 4: uint16(5),
  18932. 5: uint16(7),
  18933. 6: uint16(9),
  18934. 7: uint16(13),
  18935. 8: uint16(17),
  18936. 9: uint16(25),
  18937. 10: uint16(33),
  18938. 11: uint16(49),
  18939. 12: uint16(65),
  18940. 13: uint16(97),
  18941. 14: uint16(129),
  18942. 15: uint16(193),
  18943. 16: uint16(257),
  18944. 17: uint16(385),
  18945. 18: uint16(513),
  18946. 19: uint16(769),
  18947. 20: uint16(1025),
  18948. 21: uint16(1537),
  18949. 22: uint16(2049),
  18950. 23: uint16(3073),
  18951. 24: uint16(4097),
  18952. 25: uint16(6145),
  18953. 26: uint16(8193),
  18954. 27: uint16(12289),
  18955. 28: uint16(16385),
  18956. 29: uint16(24577),
  18957. }
  18958. var _dext = [32]uint16{
  18959. 0: uint16(16),
  18960. 1: uint16(16),
  18961. 2: uint16(16),
  18962. 3: uint16(16),
  18963. 4: uint16(17),
  18964. 5: uint16(17),
  18965. 6: uint16(18),
  18966. 7: uint16(18),
  18967. 8: uint16(19),
  18968. 9: uint16(19),
  18969. 10: uint16(20),
  18970. 11: uint16(20),
  18971. 12: uint16(21),
  18972. 13: uint16(21),
  18973. 14: uint16(22),
  18974. 15: uint16(22),
  18975. 16: uint16(23),
  18976. 17: uint16(23),
  18977. 18: uint16(24),
  18978. 19: uint16(24),
  18979. 20: uint16(25),
  18980. 21: uint16(25),
  18981. 22: uint16(26),
  18982. 23: uint16(26),
  18983. 24: uint16(27),
  18984. 25: uint16(27),
  18985. 26: uint16(28),
  18986. 27: uint16(28),
  18987. 28: uint16(29),
  18988. 29: uint16(29),
  18989. 30: uint16(64),
  18990. 31: uint16(64),
  18991. }
  18992. const m_DIST_CODE_LEN = 512
  18993. const m_END_BLOCK = 256
  18994. const m_MAX_BL_BITS = 7
  18995. const m_REPZ_11_138 = 18
  18996. const m_REPZ_3_10 = 17
  18997. const m_REP_3_6 = 16
  18998. const m_SMALLEST = 1
  18999. const m_TCONST = "const"
  19000. type Tstatic_tree_desc = struct {
  19001. Fstatic_tree uintptr
  19002. Fextra_bits uintptr
  19003. Fextra_base int32
  19004. Felems int32
  19005. Fmax_length int32
  19006. }
  19007. type Tstatic_tree_desc_s = Tstatic_tree_desc
  19008. /* ===========================================================================
  19009. * Constants
  19010. */
  19011. /* Bit length codes must not exceed MAX_BL_BITS bits */
  19012. /* end of block literal code */
  19013. /* repeat previous bit length 3-6 times (2 bits of repeat count) */
  19014. /* repeat a zero length 3-10 times (3 bits of repeat count) */
  19015. /* repeat a zero length 11-138 times (7 bits of repeat count) */
  19016. var _extra_lbits = [29]int32{
  19017. 8: int32(1),
  19018. 9: int32(1),
  19019. 10: int32(1),
  19020. 11: int32(1),
  19021. 12: int32(2),
  19022. 13: int32(2),
  19023. 14: int32(2),
  19024. 15: int32(2),
  19025. 16: int32(3),
  19026. 17: int32(3),
  19027. 18: int32(3),
  19028. 19: int32(3),
  19029. 20: int32(4),
  19030. 21: int32(4),
  19031. 22: int32(4),
  19032. 23: int32(4),
  19033. 24: int32(5),
  19034. 25: int32(5),
  19035. 26: int32(5),
  19036. 27: int32(5),
  19037. }
  19038. var _extra_dbits = [30]int32{
  19039. 4: int32(1),
  19040. 5: int32(1),
  19041. 6: int32(2),
  19042. 7: int32(2),
  19043. 8: int32(3),
  19044. 9: int32(3),
  19045. 10: int32(4),
  19046. 11: int32(4),
  19047. 12: int32(5),
  19048. 13: int32(5),
  19049. 14: int32(6),
  19050. 15: int32(6),
  19051. 16: int32(7),
  19052. 17: int32(7),
  19053. 18: int32(8),
  19054. 19: int32(8),
  19055. 20: int32(9),
  19056. 21: int32(9),
  19057. 22: int32(10),
  19058. 23: int32(10),
  19059. 24: int32(11),
  19060. 25: int32(11),
  19061. 26: int32(12),
  19062. 27: int32(12),
  19063. 28: int32(13),
  19064. 29: int32(13),
  19065. }
  19066. var _extra_blbits = [19]int32{
  19067. 16: int32(2),
  19068. 17: int32(3),
  19069. 18: int32(7),
  19070. }
  19071. var _bl_order = [19]Tuch{
  19072. 0: uint8(16),
  19073. 1: uint8(17),
  19074. 2: uint8(18),
  19075. 4: uint8(8),
  19076. 5: uint8(7),
  19077. 6: uint8(9),
  19078. 7: uint8(6),
  19079. 8: uint8(10),
  19080. 9: uint8(5),
  19081. 10: uint8(11),
  19082. 11: uint8(4),
  19083. 12: uint8(12),
  19084. 13: uint8(3),
  19085. 14: uint8(13),
  19086. 15: uint8(2),
  19087. 16: uint8(14),
  19088. 17: uint8(1),
  19089. 18: uint8(15),
  19090. }
  19091. var _static_ltree = [288]Tct_data{
  19092. 0: {
  19093. Ffc: *(*struct {
  19094. Fcode [0]Tush
  19095. Ffreq Tush
  19096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  19097. Fdl: *(*struct {
  19098. Flen1 [0]Tush
  19099. Fdad Tush
  19100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19101. },
  19102. 1: {
  19103. Ffc: *(*struct {
  19104. Fcode [0]Tush
  19105. Ffreq Tush
  19106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(140)})),
  19107. Fdl: *(*struct {
  19108. Flen1 [0]Tush
  19109. Fdad Tush
  19110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19111. },
  19112. 2: {
  19113. Ffc: *(*struct {
  19114. Fcode [0]Tush
  19115. Ffreq Tush
  19116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(76)})),
  19117. Fdl: *(*struct {
  19118. Flen1 [0]Tush
  19119. Fdad Tush
  19120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19121. },
  19122. 3: {
  19123. Ffc: *(*struct {
  19124. Fcode [0]Tush
  19125. Ffreq Tush
  19126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(204)})),
  19127. Fdl: *(*struct {
  19128. Flen1 [0]Tush
  19129. Fdad Tush
  19130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19131. },
  19132. 4: {
  19133. Ffc: *(*struct {
  19134. Fcode [0]Tush
  19135. Ffreq Tush
  19136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(44)})),
  19137. Fdl: *(*struct {
  19138. Flen1 [0]Tush
  19139. Fdad Tush
  19140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19141. },
  19142. 5: {
  19143. Ffc: *(*struct {
  19144. Fcode [0]Tush
  19145. Ffreq Tush
  19146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(172)})),
  19147. Fdl: *(*struct {
  19148. Flen1 [0]Tush
  19149. Fdad Tush
  19150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19151. },
  19152. 6: {
  19153. Ffc: *(*struct {
  19154. Fcode [0]Tush
  19155. Ffreq Tush
  19156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(108)})),
  19157. Fdl: *(*struct {
  19158. Flen1 [0]Tush
  19159. Fdad Tush
  19160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19161. },
  19162. 7: {
  19163. Ffc: *(*struct {
  19164. Fcode [0]Tush
  19165. Ffreq Tush
  19166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(236)})),
  19167. Fdl: *(*struct {
  19168. Flen1 [0]Tush
  19169. Fdad Tush
  19170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19171. },
  19172. 8: {
  19173. Ffc: *(*struct {
  19174. Fcode [0]Tush
  19175. Ffreq Tush
  19176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  19177. Fdl: *(*struct {
  19178. Flen1 [0]Tush
  19179. Fdad Tush
  19180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19181. },
  19182. 9: {
  19183. Ffc: *(*struct {
  19184. Fcode [0]Tush
  19185. Ffreq Tush
  19186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(156)})),
  19187. Fdl: *(*struct {
  19188. Flen1 [0]Tush
  19189. Fdad Tush
  19190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19191. },
  19192. 10: {
  19193. Ffc: *(*struct {
  19194. Fcode [0]Tush
  19195. Ffreq Tush
  19196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(92)})),
  19197. Fdl: *(*struct {
  19198. Flen1 [0]Tush
  19199. Fdad Tush
  19200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19201. },
  19202. 11: {
  19203. Ffc: *(*struct {
  19204. Fcode [0]Tush
  19205. Ffreq Tush
  19206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(220)})),
  19207. Fdl: *(*struct {
  19208. Flen1 [0]Tush
  19209. Fdad Tush
  19210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19211. },
  19212. 12: {
  19213. Ffc: *(*struct {
  19214. Fcode [0]Tush
  19215. Ffreq Tush
  19216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(60)})),
  19217. Fdl: *(*struct {
  19218. Flen1 [0]Tush
  19219. Fdad Tush
  19220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19221. },
  19222. 13: {
  19223. Ffc: *(*struct {
  19224. Fcode [0]Tush
  19225. Ffreq Tush
  19226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(188)})),
  19227. Fdl: *(*struct {
  19228. Flen1 [0]Tush
  19229. Fdad Tush
  19230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19231. },
  19232. 14: {
  19233. Ffc: *(*struct {
  19234. Fcode [0]Tush
  19235. Ffreq Tush
  19236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(124)})),
  19237. Fdl: *(*struct {
  19238. Flen1 [0]Tush
  19239. Fdad Tush
  19240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19241. },
  19242. 15: {
  19243. Ffc: *(*struct {
  19244. Fcode [0]Tush
  19245. Ffreq Tush
  19246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(252)})),
  19247. Fdl: *(*struct {
  19248. Flen1 [0]Tush
  19249. Fdad Tush
  19250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19251. },
  19252. 16: {
  19253. Ffc: *(*struct {
  19254. Fcode [0]Tush
  19255. Ffreq Tush
  19256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  19257. Fdl: *(*struct {
  19258. Flen1 [0]Tush
  19259. Fdad Tush
  19260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19261. },
  19262. 17: {
  19263. Ffc: *(*struct {
  19264. Fcode [0]Tush
  19265. Ffreq Tush
  19266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(130)})),
  19267. Fdl: *(*struct {
  19268. Flen1 [0]Tush
  19269. Fdad Tush
  19270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19271. },
  19272. 18: {
  19273. Ffc: *(*struct {
  19274. Fcode [0]Tush
  19275. Ffreq Tush
  19276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(66)})),
  19277. Fdl: *(*struct {
  19278. Flen1 [0]Tush
  19279. Fdad Tush
  19280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19281. },
  19282. 19: {
  19283. Ffc: *(*struct {
  19284. Fcode [0]Tush
  19285. Ffreq Tush
  19286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(194)})),
  19287. Fdl: *(*struct {
  19288. Flen1 [0]Tush
  19289. Fdad Tush
  19290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19291. },
  19292. 20: {
  19293. Ffc: *(*struct {
  19294. Fcode [0]Tush
  19295. Ffreq Tush
  19296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(34)})),
  19297. Fdl: *(*struct {
  19298. Flen1 [0]Tush
  19299. Fdad Tush
  19300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19301. },
  19302. 21: {
  19303. Ffc: *(*struct {
  19304. Fcode [0]Tush
  19305. Ffreq Tush
  19306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(162)})),
  19307. Fdl: *(*struct {
  19308. Flen1 [0]Tush
  19309. Fdad Tush
  19310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19311. },
  19312. 22: {
  19313. Ffc: *(*struct {
  19314. Fcode [0]Tush
  19315. Ffreq Tush
  19316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(98)})),
  19317. Fdl: *(*struct {
  19318. Flen1 [0]Tush
  19319. Fdad Tush
  19320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19321. },
  19322. 23: {
  19323. Ffc: *(*struct {
  19324. Fcode [0]Tush
  19325. Ffreq Tush
  19326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(226)})),
  19327. Fdl: *(*struct {
  19328. Flen1 [0]Tush
  19329. Fdad Tush
  19330. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19331. },
  19332. 24: {
  19333. Ffc: *(*struct {
  19334. Fcode [0]Tush
  19335. Ffreq Tush
  19336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  19337. Fdl: *(*struct {
  19338. Flen1 [0]Tush
  19339. Fdad Tush
  19340. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19341. },
  19342. 25: {
  19343. Ffc: *(*struct {
  19344. Fcode [0]Tush
  19345. Ffreq Tush
  19346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(146)})),
  19347. Fdl: *(*struct {
  19348. Flen1 [0]Tush
  19349. Fdad Tush
  19350. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19351. },
  19352. 26: {
  19353. Ffc: *(*struct {
  19354. Fcode [0]Tush
  19355. Ffreq Tush
  19356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(82)})),
  19357. Fdl: *(*struct {
  19358. Flen1 [0]Tush
  19359. Fdad Tush
  19360. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19361. },
  19362. 27: {
  19363. Ffc: *(*struct {
  19364. Fcode [0]Tush
  19365. Ffreq Tush
  19366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(210)})),
  19367. Fdl: *(*struct {
  19368. Flen1 [0]Tush
  19369. Fdad Tush
  19370. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19371. },
  19372. 28: {
  19373. Ffc: *(*struct {
  19374. Fcode [0]Tush
  19375. Ffreq Tush
  19376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(50)})),
  19377. Fdl: *(*struct {
  19378. Flen1 [0]Tush
  19379. Fdad Tush
  19380. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19381. },
  19382. 29: {
  19383. Ffc: *(*struct {
  19384. Fcode [0]Tush
  19385. Ffreq Tush
  19386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(178)})),
  19387. Fdl: *(*struct {
  19388. Flen1 [0]Tush
  19389. Fdad Tush
  19390. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19391. },
  19392. 30: {
  19393. Ffc: *(*struct {
  19394. Fcode [0]Tush
  19395. Ffreq Tush
  19396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(114)})),
  19397. Fdl: *(*struct {
  19398. Flen1 [0]Tush
  19399. Fdad Tush
  19400. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19401. },
  19402. 31: {
  19403. Ffc: *(*struct {
  19404. Fcode [0]Tush
  19405. Ffreq Tush
  19406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(242)})),
  19407. Fdl: *(*struct {
  19408. Flen1 [0]Tush
  19409. Fdad Tush
  19410. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19411. },
  19412. 32: {
  19413. Ffc: *(*struct {
  19414. Fcode [0]Tush
  19415. Ffreq Tush
  19416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  19417. Fdl: *(*struct {
  19418. Flen1 [0]Tush
  19419. Fdad Tush
  19420. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19421. },
  19422. 33: {
  19423. Ffc: *(*struct {
  19424. Fcode [0]Tush
  19425. Ffreq Tush
  19426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(138)})),
  19427. Fdl: *(*struct {
  19428. Flen1 [0]Tush
  19429. Fdad Tush
  19430. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19431. },
  19432. 34: {
  19433. Ffc: *(*struct {
  19434. Fcode [0]Tush
  19435. Ffreq Tush
  19436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(74)})),
  19437. Fdl: *(*struct {
  19438. Flen1 [0]Tush
  19439. Fdad Tush
  19440. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19441. },
  19442. 35: {
  19443. Ffc: *(*struct {
  19444. Fcode [0]Tush
  19445. Ffreq Tush
  19446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(202)})),
  19447. Fdl: *(*struct {
  19448. Flen1 [0]Tush
  19449. Fdad Tush
  19450. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19451. },
  19452. 36: {
  19453. Ffc: *(*struct {
  19454. Fcode [0]Tush
  19455. Ffreq Tush
  19456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(42)})),
  19457. Fdl: *(*struct {
  19458. Flen1 [0]Tush
  19459. Fdad Tush
  19460. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19461. },
  19462. 37: {
  19463. Ffc: *(*struct {
  19464. Fcode [0]Tush
  19465. Ffreq Tush
  19466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(170)})),
  19467. Fdl: *(*struct {
  19468. Flen1 [0]Tush
  19469. Fdad Tush
  19470. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19471. },
  19472. 38: {
  19473. Ffc: *(*struct {
  19474. Fcode [0]Tush
  19475. Ffreq Tush
  19476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(106)})),
  19477. Fdl: *(*struct {
  19478. Flen1 [0]Tush
  19479. Fdad Tush
  19480. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19481. },
  19482. 39: {
  19483. Ffc: *(*struct {
  19484. Fcode [0]Tush
  19485. Ffreq Tush
  19486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(234)})),
  19487. Fdl: *(*struct {
  19488. Flen1 [0]Tush
  19489. Fdad Tush
  19490. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19491. },
  19492. 40: {
  19493. Ffc: *(*struct {
  19494. Fcode [0]Tush
  19495. Ffreq Tush
  19496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  19497. Fdl: *(*struct {
  19498. Flen1 [0]Tush
  19499. Fdad Tush
  19500. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19501. },
  19502. 41: {
  19503. Ffc: *(*struct {
  19504. Fcode [0]Tush
  19505. Ffreq Tush
  19506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(154)})),
  19507. Fdl: *(*struct {
  19508. Flen1 [0]Tush
  19509. Fdad Tush
  19510. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19511. },
  19512. 42: {
  19513. Ffc: *(*struct {
  19514. Fcode [0]Tush
  19515. Ffreq Tush
  19516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(90)})),
  19517. Fdl: *(*struct {
  19518. Flen1 [0]Tush
  19519. Fdad Tush
  19520. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19521. },
  19522. 43: {
  19523. Ffc: *(*struct {
  19524. Fcode [0]Tush
  19525. Ffreq Tush
  19526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(218)})),
  19527. Fdl: *(*struct {
  19528. Flen1 [0]Tush
  19529. Fdad Tush
  19530. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19531. },
  19532. 44: {
  19533. Ffc: *(*struct {
  19534. Fcode [0]Tush
  19535. Ffreq Tush
  19536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(58)})),
  19537. Fdl: *(*struct {
  19538. Flen1 [0]Tush
  19539. Fdad Tush
  19540. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19541. },
  19542. 45: {
  19543. Ffc: *(*struct {
  19544. Fcode [0]Tush
  19545. Ffreq Tush
  19546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(186)})),
  19547. Fdl: *(*struct {
  19548. Flen1 [0]Tush
  19549. Fdad Tush
  19550. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19551. },
  19552. 46: {
  19553. Ffc: *(*struct {
  19554. Fcode [0]Tush
  19555. Ffreq Tush
  19556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(122)})),
  19557. Fdl: *(*struct {
  19558. Flen1 [0]Tush
  19559. Fdad Tush
  19560. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19561. },
  19562. 47: {
  19563. Ffc: *(*struct {
  19564. Fcode [0]Tush
  19565. Ffreq Tush
  19566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(250)})),
  19567. Fdl: *(*struct {
  19568. Flen1 [0]Tush
  19569. Fdad Tush
  19570. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19571. },
  19572. 48: {
  19573. Ffc: *(*struct {
  19574. Fcode [0]Tush
  19575. Ffreq Tush
  19576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  19577. Fdl: *(*struct {
  19578. Flen1 [0]Tush
  19579. Fdad Tush
  19580. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19581. },
  19582. 49: {
  19583. Ffc: *(*struct {
  19584. Fcode [0]Tush
  19585. Ffreq Tush
  19586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(134)})),
  19587. Fdl: *(*struct {
  19588. Flen1 [0]Tush
  19589. Fdad Tush
  19590. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19591. },
  19592. 50: {
  19593. Ffc: *(*struct {
  19594. Fcode [0]Tush
  19595. Ffreq Tush
  19596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(70)})),
  19597. Fdl: *(*struct {
  19598. Flen1 [0]Tush
  19599. Fdad Tush
  19600. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19601. },
  19602. 51: {
  19603. Ffc: *(*struct {
  19604. Fcode [0]Tush
  19605. Ffreq Tush
  19606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(198)})),
  19607. Fdl: *(*struct {
  19608. Flen1 [0]Tush
  19609. Fdad Tush
  19610. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19611. },
  19612. 52: {
  19613. Ffc: *(*struct {
  19614. Fcode [0]Tush
  19615. Ffreq Tush
  19616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(38)})),
  19617. Fdl: *(*struct {
  19618. Flen1 [0]Tush
  19619. Fdad Tush
  19620. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19621. },
  19622. 53: {
  19623. Ffc: *(*struct {
  19624. Fcode [0]Tush
  19625. Ffreq Tush
  19626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(166)})),
  19627. Fdl: *(*struct {
  19628. Flen1 [0]Tush
  19629. Fdad Tush
  19630. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19631. },
  19632. 54: {
  19633. Ffc: *(*struct {
  19634. Fcode [0]Tush
  19635. Ffreq Tush
  19636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(102)})),
  19637. Fdl: *(*struct {
  19638. Flen1 [0]Tush
  19639. Fdad Tush
  19640. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19641. },
  19642. 55: {
  19643. Ffc: *(*struct {
  19644. Fcode [0]Tush
  19645. Ffreq Tush
  19646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(230)})),
  19647. Fdl: *(*struct {
  19648. Flen1 [0]Tush
  19649. Fdad Tush
  19650. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19651. },
  19652. 56: {
  19653. Ffc: *(*struct {
  19654. Fcode [0]Tush
  19655. Ffreq Tush
  19656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  19657. Fdl: *(*struct {
  19658. Flen1 [0]Tush
  19659. Fdad Tush
  19660. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19661. },
  19662. 57: {
  19663. Ffc: *(*struct {
  19664. Fcode [0]Tush
  19665. Ffreq Tush
  19666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(150)})),
  19667. Fdl: *(*struct {
  19668. Flen1 [0]Tush
  19669. Fdad Tush
  19670. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19671. },
  19672. 58: {
  19673. Ffc: *(*struct {
  19674. Fcode [0]Tush
  19675. Ffreq Tush
  19676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(86)})),
  19677. Fdl: *(*struct {
  19678. Flen1 [0]Tush
  19679. Fdad Tush
  19680. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19681. },
  19682. 59: {
  19683. Ffc: *(*struct {
  19684. Fcode [0]Tush
  19685. Ffreq Tush
  19686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(214)})),
  19687. Fdl: *(*struct {
  19688. Flen1 [0]Tush
  19689. Fdad Tush
  19690. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19691. },
  19692. 60: {
  19693. Ffc: *(*struct {
  19694. Fcode [0]Tush
  19695. Ffreq Tush
  19696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(54)})),
  19697. Fdl: *(*struct {
  19698. Flen1 [0]Tush
  19699. Fdad Tush
  19700. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19701. },
  19702. 61: {
  19703. Ffc: *(*struct {
  19704. Fcode [0]Tush
  19705. Ffreq Tush
  19706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(182)})),
  19707. Fdl: *(*struct {
  19708. Flen1 [0]Tush
  19709. Fdad Tush
  19710. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19711. },
  19712. 62: {
  19713. Ffc: *(*struct {
  19714. Fcode [0]Tush
  19715. Ffreq Tush
  19716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(118)})),
  19717. Fdl: *(*struct {
  19718. Flen1 [0]Tush
  19719. Fdad Tush
  19720. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19721. },
  19722. 63: {
  19723. Ffc: *(*struct {
  19724. Fcode [0]Tush
  19725. Ffreq Tush
  19726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(246)})),
  19727. Fdl: *(*struct {
  19728. Flen1 [0]Tush
  19729. Fdad Tush
  19730. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19731. },
  19732. 64: {
  19733. Ffc: *(*struct {
  19734. Fcode [0]Tush
  19735. Ffreq Tush
  19736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  19737. Fdl: *(*struct {
  19738. Flen1 [0]Tush
  19739. Fdad Tush
  19740. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19741. },
  19742. 65: {
  19743. Ffc: *(*struct {
  19744. Fcode [0]Tush
  19745. Ffreq Tush
  19746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(142)})),
  19747. Fdl: *(*struct {
  19748. Flen1 [0]Tush
  19749. Fdad Tush
  19750. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19751. },
  19752. 66: {
  19753. Ffc: *(*struct {
  19754. Fcode [0]Tush
  19755. Ffreq Tush
  19756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(78)})),
  19757. Fdl: *(*struct {
  19758. Flen1 [0]Tush
  19759. Fdad Tush
  19760. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19761. },
  19762. 67: {
  19763. Ffc: *(*struct {
  19764. Fcode [0]Tush
  19765. Ffreq Tush
  19766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(206)})),
  19767. Fdl: *(*struct {
  19768. Flen1 [0]Tush
  19769. Fdad Tush
  19770. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19771. },
  19772. 68: {
  19773. Ffc: *(*struct {
  19774. Fcode [0]Tush
  19775. Ffreq Tush
  19776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(46)})),
  19777. Fdl: *(*struct {
  19778. Flen1 [0]Tush
  19779. Fdad Tush
  19780. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19781. },
  19782. 69: {
  19783. Ffc: *(*struct {
  19784. Fcode [0]Tush
  19785. Ffreq Tush
  19786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(174)})),
  19787. Fdl: *(*struct {
  19788. Flen1 [0]Tush
  19789. Fdad Tush
  19790. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19791. },
  19792. 70: {
  19793. Ffc: *(*struct {
  19794. Fcode [0]Tush
  19795. Ffreq Tush
  19796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(110)})),
  19797. Fdl: *(*struct {
  19798. Flen1 [0]Tush
  19799. Fdad Tush
  19800. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19801. },
  19802. 71: {
  19803. Ffc: *(*struct {
  19804. Fcode [0]Tush
  19805. Ffreq Tush
  19806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(238)})),
  19807. Fdl: *(*struct {
  19808. Flen1 [0]Tush
  19809. Fdad Tush
  19810. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19811. },
  19812. 72: {
  19813. Ffc: *(*struct {
  19814. Fcode [0]Tush
  19815. Ffreq Tush
  19816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  19817. Fdl: *(*struct {
  19818. Flen1 [0]Tush
  19819. Fdad Tush
  19820. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19821. },
  19822. 73: {
  19823. Ffc: *(*struct {
  19824. Fcode [0]Tush
  19825. Ffreq Tush
  19826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(158)})),
  19827. Fdl: *(*struct {
  19828. Flen1 [0]Tush
  19829. Fdad Tush
  19830. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19831. },
  19832. 74: {
  19833. Ffc: *(*struct {
  19834. Fcode [0]Tush
  19835. Ffreq Tush
  19836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(94)})),
  19837. Fdl: *(*struct {
  19838. Flen1 [0]Tush
  19839. Fdad Tush
  19840. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19841. },
  19842. 75: {
  19843. Ffc: *(*struct {
  19844. Fcode [0]Tush
  19845. Ffreq Tush
  19846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(222)})),
  19847. Fdl: *(*struct {
  19848. Flen1 [0]Tush
  19849. Fdad Tush
  19850. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19851. },
  19852. 76: {
  19853. Ffc: *(*struct {
  19854. Fcode [0]Tush
  19855. Ffreq Tush
  19856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(62)})),
  19857. Fdl: *(*struct {
  19858. Flen1 [0]Tush
  19859. Fdad Tush
  19860. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19861. },
  19862. 77: {
  19863. Ffc: *(*struct {
  19864. Fcode [0]Tush
  19865. Ffreq Tush
  19866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(190)})),
  19867. Fdl: *(*struct {
  19868. Flen1 [0]Tush
  19869. Fdad Tush
  19870. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19871. },
  19872. 78: {
  19873. Ffc: *(*struct {
  19874. Fcode [0]Tush
  19875. Ffreq Tush
  19876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(126)})),
  19877. Fdl: *(*struct {
  19878. Flen1 [0]Tush
  19879. Fdad Tush
  19880. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19881. },
  19882. 79: {
  19883. Ffc: *(*struct {
  19884. Fcode [0]Tush
  19885. Ffreq Tush
  19886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(254)})),
  19887. Fdl: *(*struct {
  19888. Flen1 [0]Tush
  19889. Fdad Tush
  19890. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19891. },
  19892. 80: {
  19893. Ffc: *(*struct {
  19894. Fcode [0]Tush
  19895. Ffreq Tush
  19896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  19897. Fdl: *(*struct {
  19898. Flen1 [0]Tush
  19899. Fdad Tush
  19900. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19901. },
  19902. 81: {
  19903. Ffc: *(*struct {
  19904. Fcode [0]Tush
  19905. Ffreq Tush
  19906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(129)})),
  19907. Fdl: *(*struct {
  19908. Flen1 [0]Tush
  19909. Fdad Tush
  19910. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19911. },
  19912. 82: {
  19913. Ffc: *(*struct {
  19914. Fcode [0]Tush
  19915. Ffreq Tush
  19916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(65)})),
  19917. Fdl: *(*struct {
  19918. Flen1 [0]Tush
  19919. Fdad Tush
  19920. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19921. },
  19922. 83: {
  19923. Ffc: *(*struct {
  19924. Fcode [0]Tush
  19925. Ffreq Tush
  19926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(193)})),
  19927. Fdl: *(*struct {
  19928. Flen1 [0]Tush
  19929. Fdad Tush
  19930. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19931. },
  19932. 84: {
  19933. Ffc: *(*struct {
  19934. Fcode [0]Tush
  19935. Ffreq Tush
  19936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(33)})),
  19937. Fdl: *(*struct {
  19938. Flen1 [0]Tush
  19939. Fdad Tush
  19940. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19941. },
  19942. 85: {
  19943. Ffc: *(*struct {
  19944. Fcode [0]Tush
  19945. Ffreq Tush
  19946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(161)})),
  19947. Fdl: *(*struct {
  19948. Flen1 [0]Tush
  19949. Fdad Tush
  19950. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19951. },
  19952. 86: {
  19953. Ffc: *(*struct {
  19954. Fcode [0]Tush
  19955. Ffreq Tush
  19956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(97)})),
  19957. Fdl: *(*struct {
  19958. Flen1 [0]Tush
  19959. Fdad Tush
  19960. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19961. },
  19962. 87: {
  19963. Ffc: *(*struct {
  19964. Fcode [0]Tush
  19965. Ffreq Tush
  19966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(225)})),
  19967. Fdl: *(*struct {
  19968. Flen1 [0]Tush
  19969. Fdad Tush
  19970. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19971. },
  19972. 88: {
  19973. Ffc: *(*struct {
  19974. Fcode [0]Tush
  19975. Ffreq Tush
  19976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  19977. Fdl: *(*struct {
  19978. Flen1 [0]Tush
  19979. Fdad Tush
  19980. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19981. },
  19982. 89: {
  19983. Ffc: *(*struct {
  19984. Fcode [0]Tush
  19985. Ffreq Tush
  19986. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(145)})),
  19987. Fdl: *(*struct {
  19988. Flen1 [0]Tush
  19989. Fdad Tush
  19990. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  19991. },
  19992. 90: {
  19993. Ffc: *(*struct {
  19994. Fcode [0]Tush
  19995. Ffreq Tush
  19996. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(81)})),
  19997. Fdl: *(*struct {
  19998. Flen1 [0]Tush
  19999. Fdad Tush
  20000. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20001. },
  20002. 91: {
  20003. Ffc: *(*struct {
  20004. Fcode [0]Tush
  20005. Ffreq Tush
  20006. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(209)})),
  20007. Fdl: *(*struct {
  20008. Flen1 [0]Tush
  20009. Fdad Tush
  20010. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20011. },
  20012. 92: {
  20013. Ffc: *(*struct {
  20014. Fcode [0]Tush
  20015. Ffreq Tush
  20016. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(49)})),
  20017. Fdl: *(*struct {
  20018. Flen1 [0]Tush
  20019. Fdad Tush
  20020. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20021. },
  20022. 93: {
  20023. Ffc: *(*struct {
  20024. Fcode [0]Tush
  20025. Ffreq Tush
  20026. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(177)})),
  20027. Fdl: *(*struct {
  20028. Flen1 [0]Tush
  20029. Fdad Tush
  20030. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20031. },
  20032. 94: {
  20033. Ffc: *(*struct {
  20034. Fcode [0]Tush
  20035. Ffreq Tush
  20036. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(113)})),
  20037. Fdl: *(*struct {
  20038. Flen1 [0]Tush
  20039. Fdad Tush
  20040. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20041. },
  20042. 95: {
  20043. Ffc: *(*struct {
  20044. Fcode [0]Tush
  20045. Ffreq Tush
  20046. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(241)})),
  20047. Fdl: *(*struct {
  20048. Flen1 [0]Tush
  20049. Fdad Tush
  20050. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20051. },
  20052. 96: {
  20053. Ffc: *(*struct {
  20054. Fcode [0]Tush
  20055. Ffreq Tush
  20056. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20057. Fdl: *(*struct {
  20058. Flen1 [0]Tush
  20059. Fdad Tush
  20060. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20061. },
  20062. 97: {
  20063. Ffc: *(*struct {
  20064. Fcode [0]Tush
  20065. Ffreq Tush
  20066. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(137)})),
  20067. Fdl: *(*struct {
  20068. Flen1 [0]Tush
  20069. Fdad Tush
  20070. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20071. },
  20072. 98: {
  20073. Ffc: *(*struct {
  20074. Fcode [0]Tush
  20075. Ffreq Tush
  20076. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(73)})),
  20077. Fdl: *(*struct {
  20078. Flen1 [0]Tush
  20079. Fdad Tush
  20080. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20081. },
  20082. 99: {
  20083. Ffc: *(*struct {
  20084. Fcode [0]Tush
  20085. Ffreq Tush
  20086. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(201)})),
  20087. Fdl: *(*struct {
  20088. Flen1 [0]Tush
  20089. Fdad Tush
  20090. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20091. },
  20092. 100: {
  20093. Ffc: *(*struct {
  20094. Fcode [0]Tush
  20095. Ffreq Tush
  20096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(41)})),
  20097. Fdl: *(*struct {
  20098. Flen1 [0]Tush
  20099. Fdad Tush
  20100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20101. },
  20102. 101: {
  20103. Ffc: *(*struct {
  20104. Fcode [0]Tush
  20105. Ffreq Tush
  20106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(169)})),
  20107. Fdl: *(*struct {
  20108. Flen1 [0]Tush
  20109. Fdad Tush
  20110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20111. },
  20112. 102: {
  20113. Ffc: *(*struct {
  20114. Fcode [0]Tush
  20115. Ffreq Tush
  20116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(105)})),
  20117. Fdl: *(*struct {
  20118. Flen1 [0]Tush
  20119. Fdad Tush
  20120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20121. },
  20122. 103: {
  20123. Ffc: *(*struct {
  20124. Fcode [0]Tush
  20125. Ffreq Tush
  20126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(233)})),
  20127. Fdl: *(*struct {
  20128. Flen1 [0]Tush
  20129. Fdad Tush
  20130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20131. },
  20132. 104: {
  20133. Ffc: *(*struct {
  20134. Fcode [0]Tush
  20135. Ffreq Tush
  20136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  20137. Fdl: *(*struct {
  20138. Flen1 [0]Tush
  20139. Fdad Tush
  20140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20141. },
  20142. 105: {
  20143. Ffc: *(*struct {
  20144. Fcode [0]Tush
  20145. Ffreq Tush
  20146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(153)})),
  20147. Fdl: *(*struct {
  20148. Flen1 [0]Tush
  20149. Fdad Tush
  20150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20151. },
  20152. 106: {
  20153. Ffc: *(*struct {
  20154. Fcode [0]Tush
  20155. Ffreq Tush
  20156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(89)})),
  20157. Fdl: *(*struct {
  20158. Flen1 [0]Tush
  20159. Fdad Tush
  20160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20161. },
  20162. 107: {
  20163. Ffc: *(*struct {
  20164. Fcode [0]Tush
  20165. Ffreq Tush
  20166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(217)})),
  20167. Fdl: *(*struct {
  20168. Flen1 [0]Tush
  20169. Fdad Tush
  20170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20171. },
  20172. 108: {
  20173. Ffc: *(*struct {
  20174. Fcode [0]Tush
  20175. Ffreq Tush
  20176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(57)})),
  20177. Fdl: *(*struct {
  20178. Flen1 [0]Tush
  20179. Fdad Tush
  20180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20181. },
  20182. 109: {
  20183. Ffc: *(*struct {
  20184. Fcode [0]Tush
  20185. Ffreq Tush
  20186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(185)})),
  20187. Fdl: *(*struct {
  20188. Flen1 [0]Tush
  20189. Fdad Tush
  20190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20191. },
  20192. 110: {
  20193. Ffc: *(*struct {
  20194. Fcode [0]Tush
  20195. Ffreq Tush
  20196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(121)})),
  20197. Fdl: *(*struct {
  20198. Flen1 [0]Tush
  20199. Fdad Tush
  20200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20201. },
  20202. 111: {
  20203. Ffc: *(*struct {
  20204. Fcode [0]Tush
  20205. Ffreq Tush
  20206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(249)})),
  20207. Fdl: *(*struct {
  20208. Flen1 [0]Tush
  20209. Fdad Tush
  20210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20211. },
  20212. 112: {
  20213. Ffc: *(*struct {
  20214. Fcode [0]Tush
  20215. Ffreq Tush
  20216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  20217. Fdl: *(*struct {
  20218. Flen1 [0]Tush
  20219. Fdad Tush
  20220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20221. },
  20222. 113: {
  20223. Ffc: *(*struct {
  20224. Fcode [0]Tush
  20225. Ffreq Tush
  20226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(133)})),
  20227. Fdl: *(*struct {
  20228. Flen1 [0]Tush
  20229. Fdad Tush
  20230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20231. },
  20232. 114: {
  20233. Ffc: *(*struct {
  20234. Fcode [0]Tush
  20235. Ffreq Tush
  20236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(69)})),
  20237. Fdl: *(*struct {
  20238. Flen1 [0]Tush
  20239. Fdad Tush
  20240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20241. },
  20242. 115: {
  20243. Ffc: *(*struct {
  20244. Fcode [0]Tush
  20245. Ffreq Tush
  20246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(197)})),
  20247. Fdl: *(*struct {
  20248. Flen1 [0]Tush
  20249. Fdad Tush
  20250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20251. },
  20252. 116: {
  20253. Ffc: *(*struct {
  20254. Fcode [0]Tush
  20255. Ffreq Tush
  20256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(37)})),
  20257. Fdl: *(*struct {
  20258. Flen1 [0]Tush
  20259. Fdad Tush
  20260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20261. },
  20262. 117: {
  20263. Ffc: *(*struct {
  20264. Fcode [0]Tush
  20265. Ffreq Tush
  20266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(165)})),
  20267. Fdl: *(*struct {
  20268. Flen1 [0]Tush
  20269. Fdad Tush
  20270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20271. },
  20272. 118: {
  20273. Ffc: *(*struct {
  20274. Fcode [0]Tush
  20275. Ffreq Tush
  20276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(101)})),
  20277. Fdl: *(*struct {
  20278. Flen1 [0]Tush
  20279. Fdad Tush
  20280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20281. },
  20282. 119: {
  20283. Ffc: *(*struct {
  20284. Fcode [0]Tush
  20285. Ffreq Tush
  20286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(229)})),
  20287. Fdl: *(*struct {
  20288. Flen1 [0]Tush
  20289. Fdad Tush
  20290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20291. },
  20292. 120: {
  20293. Ffc: *(*struct {
  20294. Fcode [0]Tush
  20295. Ffreq Tush
  20296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  20297. Fdl: *(*struct {
  20298. Flen1 [0]Tush
  20299. Fdad Tush
  20300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20301. },
  20302. 121: {
  20303. Ffc: *(*struct {
  20304. Fcode [0]Tush
  20305. Ffreq Tush
  20306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(149)})),
  20307. Fdl: *(*struct {
  20308. Flen1 [0]Tush
  20309. Fdad Tush
  20310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20311. },
  20312. 122: {
  20313. Ffc: *(*struct {
  20314. Fcode [0]Tush
  20315. Ffreq Tush
  20316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(85)})),
  20317. Fdl: *(*struct {
  20318. Flen1 [0]Tush
  20319. Fdad Tush
  20320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20321. },
  20322. 123: {
  20323. Ffc: *(*struct {
  20324. Fcode [0]Tush
  20325. Ffreq Tush
  20326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(213)})),
  20327. Fdl: *(*struct {
  20328. Flen1 [0]Tush
  20329. Fdad Tush
  20330. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20331. },
  20332. 124: {
  20333. Ffc: *(*struct {
  20334. Fcode [0]Tush
  20335. Ffreq Tush
  20336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(53)})),
  20337. Fdl: *(*struct {
  20338. Flen1 [0]Tush
  20339. Fdad Tush
  20340. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20341. },
  20342. 125: {
  20343. Ffc: *(*struct {
  20344. Fcode [0]Tush
  20345. Ffreq Tush
  20346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(181)})),
  20347. Fdl: *(*struct {
  20348. Flen1 [0]Tush
  20349. Fdad Tush
  20350. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20351. },
  20352. 126: {
  20353. Ffc: *(*struct {
  20354. Fcode [0]Tush
  20355. Ffreq Tush
  20356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(117)})),
  20357. Fdl: *(*struct {
  20358. Flen1 [0]Tush
  20359. Fdad Tush
  20360. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20361. },
  20362. 127: {
  20363. Ffc: *(*struct {
  20364. Fcode [0]Tush
  20365. Ffreq Tush
  20366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(245)})),
  20367. Fdl: *(*struct {
  20368. Flen1 [0]Tush
  20369. Fdad Tush
  20370. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20371. },
  20372. 128: {
  20373. Ffc: *(*struct {
  20374. Fcode [0]Tush
  20375. Ffreq Tush
  20376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  20377. Fdl: *(*struct {
  20378. Flen1 [0]Tush
  20379. Fdad Tush
  20380. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20381. },
  20382. 129: {
  20383. Ffc: *(*struct {
  20384. Fcode [0]Tush
  20385. Ffreq Tush
  20386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(141)})),
  20387. Fdl: *(*struct {
  20388. Flen1 [0]Tush
  20389. Fdad Tush
  20390. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20391. },
  20392. 130: {
  20393. Ffc: *(*struct {
  20394. Fcode [0]Tush
  20395. Ffreq Tush
  20396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(77)})),
  20397. Fdl: *(*struct {
  20398. Flen1 [0]Tush
  20399. Fdad Tush
  20400. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20401. },
  20402. 131: {
  20403. Ffc: *(*struct {
  20404. Fcode [0]Tush
  20405. Ffreq Tush
  20406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(205)})),
  20407. Fdl: *(*struct {
  20408. Flen1 [0]Tush
  20409. Fdad Tush
  20410. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20411. },
  20412. 132: {
  20413. Ffc: *(*struct {
  20414. Fcode [0]Tush
  20415. Ffreq Tush
  20416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(45)})),
  20417. Fdl: *(*struct {
  20418. Flen1 [0]Tush
  20419. Fdad Tush
  20420. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20421. },
  20422. 133: {
  20423. Ffc: *(*struct {
  20424. Fcode [0]Tush
  20425. Ffreq Tush
  20426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(173)})),
  20427. Fdl: *(*struct {
  20428. Flen1 [0]Tush
  20429. Fdad Tush
  20430. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20431. },
  20432. 134: {
  20433. Ffc: *(*struct {
  20434. Fcode [0]Tush
  20435. Ffreq Tush
  20436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(109)})),
  20437. Fdl: *(*struct {
  20438. Flen1 [0]Tush
  20439. Fdad Tush
  20440. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20441. },
  20442. 135: {
  20443. Ffc: *(*struct {
  20444. Fcode [0]Tush
  20445. Ffreq Tush
  20446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(237)})),
  20447. Fdl: *(*struct {
  20448. Flen1 [0]Tush
  20449. Fdad Tush
  20450. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20451. },
  20452. 136: {
  20453. Ffc: *(*struct {
  20454. Fcode [0]Tush
  20455. Ffreq Tush
  20456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  20457. Fdl: *(*struct {
  20458. Flen1 [0]Tush
  20459. Fdad Tush
  20460. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20461. },
  20462. 137: {
  20463. Ffc: *(*struct {
  20464. Fcode [0]Tush
  20465. Ffreq Tush
  20466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(157)})),
  20467. Fdl: *(*struct {
  20468. Flen1 [0]Tush
  20469. Fdad Tush
  20470. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20471. },
  20472. 138: {
  20473. Ffc: *(*struct {
  20474. Fcode [0]Tush
  20475. Ffreq Tush
  20476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(93)})),
  20477. Fdl: *(*struct {
  20478. Flen1 [0]Tush
  20479. Fdad Tush
  20480. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20481. },
  20482. 139: {
  20483. Ffc: *(*struct {
  20484. Fcode [0]Tush
  20485. Ffreq Tush
  20486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(221)})),
  20487. Fdl: *(*struct {
  20488. Flen1 [0]Tush
  20489. Fdad Tush
  20490. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20491. },
  20492. 140: {
  20493. Ffc: *(*struct {
  20494. Fcode [0]Tush
  20495. Ffreq Tush
  20496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(61)})),
  20497. Fdl: *(*struct {
  20498. Flen1 [0]Tush
  20499. Fdad Tush
  20500. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20501. },
  20502. 141: {
  20503. Ffc: *(*struct {
  20504. Fcode [0]Tush
  20505. Ffreq Tush
  20506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(189)})),
  20507. Fdl: *(*struct {
  20508. Flen1 [0]Tush
  20509. Fdad Tush
  20510. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20511. },
  20512. 142: {
  20513. Ffc: *(*struct {
  20514. Fcode [0]Tush
  20515. Ffreq Tush
  20516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(125)})),
  20517. Fdl: *(*struct {
  20518. Flen1 [0]Tush
  20519. Fdad Tush
  20520. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20521. },
  20522. 143: {
  20523. Ffc: *(*struct {
  20524. Fcode [0]Tush
  20525. Ffreq Tush
  20526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(253)})),
  20527. Fdl: *(*struct {
  20528. Flen1 [0]Tush
  20529. Fdad Tush
  20530. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  20531. },
  20532. 144: {
  20533. Ffc: *(*struct {
  20534. Fcode [0]Tush
  20535. Ffreq Tush
  20536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  20537. Fdl: *(*struct {
  20538. Flen1 [0]Tush
  20539. Fdad Tush
  20540. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20541. },
  20542. 145: {
  20543. Ffc: *(*struct {
  20544. Fcode [0]Tush
  20545. Ffreq Tush
  20546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(275)})),
  20547. Fdl: *(*struct {
  20548. Flen1 [0]Tush
  20549. Fdad Tush
  20550. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20551. },
  20552. 146: {
  20553. Ffc: *(*struct {
  20554. Fcode [0]Tush
  20555. Ffreq Tush
  20556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(147)})),
  20557. Fdl: *(*struct {
  20558. Flen1 [0]Tush
  20559. Fdad Tush
  20560. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20561. },
  20562. 147: {
  20563. Ffc: *(*struct {
  20564. Fcode [0]Tush
  20565. Ffreq Tush
  20566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(403)})),
  20567. Fdl: *(*struct {
  20568. Flen1 [0]Tush
  20569. Fdad Tush
  20570. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20571. },
  20572. 148: {
  20573. Ffc: *(*struct {
  20574. Fcode [0]Tush
  20575. Ffreq Tush
  20576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(83)})),
  20577. Fdl: *(*struct {
  20578. Flen1 [0]Tush
  20579. Fdad Tush
  20580. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20581. },
  20582. 149: {
  20583. Ffc: *(*struct {
  20584. Fcode [0]Tush
  20585. Ffreq Tush
  20586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(339)})),
  20587. Fdl: *(*struct {
  20588. Flen1 [0]Tush
  20589. Fdad Tush
  20590. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20591. },
  20592. 150: {
  20593. Ffc: *(*struct {
  20594. Fcode [0]Tush
  20595. Ffreq Tush
  20596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(211)})),
  20597. Fdl: *(*struct {
  20598. Flen1 [0]Tush
  20599. Fdad Tush
  20600. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20601. },
  20602. 151: {
  20603. Ffc: *(*struct {
  20604. Fcode [0]Tush
  20605. Ffreq Tush
  20606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(467)})),
  20607. Fdl: *(*struct {
  20608. Flen1 [0]Tush
  20609. Fdad Tush
  20610. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20611. },
  20612. 152: {
  20613. Ffc: *(*struct {
  20614. Fcode [0]Tush
  20615. Ffreq Tush
  20616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(51)})),
  20617. Fdl: *(*struct {
  20618. Flen1 [0]Tush
  20619. Fdad Tush
  20620. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20621. },
  20622. 153: {
  20623. Ffc: *(*struct {
  20624. Fcode [0]Tush
  20625. Ffreq Tush
  20626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(307)})),
  20627. Fdl: *(*struct {
  20628. Flen1 [0]Tush
  20629. Fdad Tush
  20630. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20631. },
  20632. 154: {
  20633. Ffc: *(*struct {
  20634. Fcode [0]Tush
  20635. Ffreq Tush
  20636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(179)})),
  20637. Fdl: *(*struct {
  20638. Flen1 [0]Tush
  20639. Fdad Tush
  20640. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20641. },
  20642. 155: {
  20643. Ffc: *(*struct {
  20644. Fcode [0]Tush
  20645. Ffreq Tush
  20646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(435)})),
  20647. Fdl: *(*struct {
  20648. Flen1 [0]Tush
  20649. Fdad Tush
  20650. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20651. },
  20652. 156: {
  20653. Ffc: *(*struct {
  20654. Fcode [0]Tush
  20655. Ffreq Tush
  20656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(115)})),
  20657. Fdl: *(*struct {
  20658. Flen1 [0]Tush
  20659. Fdad Tush
  20660. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20661. },
  20662. 157: {
  20663. Ffc: *(*struct {
  20664. Fcode [0]Tush
  20665. Ffreq Tush
  20666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(371)})),
  20667. Fdl: *(*struct {
  20668. Flen1 [0]Tush
  20669. Fdad Tush
  20670. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20671. },
  20672. 158: {
  20673. Ffc: *(*struct {
  20674. Fcode [0]Tush
  20675. Ffreq Tush
  20676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(243)})),
  20677. Fdl: *(*struct {
  20678. Flen1 [0]Tush
  20679. Fdad Tush
  20680. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20681. },
  20682. 159: {
  20683. Ffc: *(*struct {
  20684. Fcode [0]Tush
  20685. Ffreq Tush
  20686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(499)})),
  20687. Fdl: *(*struct {
  20688. Flen1 [0]Tush
  20689. Fdad Tush
  20690. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20691. },
  20692. 160: {
  20693. Ffc: *(*struct {
  20694. Fcode [0]Tush
  20695. Ffreq Tush
  20696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  20697. Fdl: *(*struct {
  20698. Flen1 [0]Tush
  20699. Fdad Tush
  20700. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20701. },
  20702. 161: {
  20703. Ffc: *(*struct {
  20704. Fcode [0]Tush
  20705. Ffreq Tush
  20706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(267)})),
  20707. Fdl: *(*struct {
  20708. Flen1 [0]Tush
  20709. Fdad Tush
  20710. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20711. },
  20712. 162: {
  20713. Ffc: *(*struct {
  20714. Fcode [0]Tush
  20715. Ffreq Tush
  20716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(139)})),
  20717. Fdl: *(*struct {
  20718. Flen1 [0]Tush
  20719. Fdad Tush
  20720. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20721. },
  20722. 163: {
  20723. Ffc: *(*struct {
  20724. Fcode [0]Tush
  20725. Ffreq Tush
  20726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(395)})),
  20727. Fdl: *(*struct {
  20728. Flen1 [0]Tush
  20729. Fdad Tush
  20730. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20731. },
  20732. 164: {
  20733. Ffc: *(*struct {
  20734. Fcode [0]Tush
  20735. Ffreq Tush
  20736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(75)})),
  20737. Fdl: *(*struct {
  20738. Flen1 [0]Tush
  20739. Fdad Tush
  20740. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20741. },
  20742. 165: {
  20743. Ffc: *(*struct {
  20744. Fcode [0]Tush
  20745. Ffreq Tush
  20746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(331)})),
  20747. Fdl: *(*struct {
  20748. Flen1 [0]Tush
  20749. Fdad Tush
  20750. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20751. },
  20752. 166: {
  20753. Ffc: *(*struct {
  20754. Fcode [0]Tush
  20755. Ffreq Tush
  20756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(203)})),
  20757. Fdl: *(*struct {
  20758. Flen1 [0]Tush
  20759. Fdad Tush
  20760. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20761. },
  20762. 167: {
  20763. Ffc: *(*struct {
  20764. Fcode [0]Tush
  20765. Ffreq Tush
  20766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(459)})),
  20767. Fdl: *(*struct {
  20768. Flen1 [0]Tush
  20769. Fdad Tush
  20770. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20771. },
  20772. 168: {
  20773. Ffc: *(*struct {
  20774. Fcode [0]Tush
  20775. Ffreq Tush
  20776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(43)})),
  20777. Fdl: *(*struct {
  20778. Flen1 [0]Tush
  20779. Fdad Tush
  20780. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20781. },
  20782. 169: {
  20783. Ffc: *(*struct {
  20784. Fcode [0]Tush
  20785. Ffreq Tush
  20786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(299)})),
  20787. Fdl: *(*struct {
  20788. Flen1 [0]Tush
  20789. Fdad Tush
  20790. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20791. },
  20792. 170: {
  20793. Ffc: *(*struct {
  20794. Fcode [0]Tush
  20795. Ffreq Tush
  20796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(171)})),
  20797. Fdl: *(*struct {
  20798. Flen1 [0]Tush
  20799. Fdad Tush
  20800. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20801. },
  20802. 171: {
  20803. Ffc: *(*struct {
  20804. Fcode [0]Tush
  20805. Ffreq Tush
  20806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(427)})),
  20807. Fdl: *(*struct {
  20808. Flen1 [0]Tush
  20809. Fdad Tush
  20810. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20811. },
  20812. 172: {
  20813. Ffc: *(*struct {
  20814. Fcode [0]Tush
  20815. Ffreq Tush
  20816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(107)})),
  20817. Fdl: *(*struct {
  20818. Flen1 [0]Tush
  20819. Fdad Tush
  20820. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20821. },
  20822. 173: {
  20823. Ffc: *(*struct {
  20824. Fcode [0]Tush
  20825. Ffreq Tush
  20826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(363)})),
  20827. Fdl: *(*struct {
  20828. Flen1 [0]Tush
  20829. Fdad Tush
  20830. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20831. },
  20832. 174: {
  20833. Ffc: *(*struct {
  20834. Fcode [0]Tush
  20835. Ffreq Tush
  20836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(235)})),
  20837. Fdl: *(*struct {
  20838. Flen1 [0]Tush
  20839. Fdad Tush
  20840. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20841. },
  20842. 175: {
  20843. Ffc: *(*struct {
  20844. Fcode [0]Tush
  20845. Ffreq Tush
  20846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(491)})),
  20847. Fdl: *(*struct {
  20848. Flen1 [0]Tush
  20849. Fdad Tush
  20850. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20851. },
  20852. 176: {
  20853. Ffc: *(*struct {
  20854. Fcode [0]Tush
  20855. Ffreq Tush
  20856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  20857. Fdl: *(*struct {
  20858. Flen1 [0]Tush
  20859. Fdad Tush
  20860. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20861. },
  20862. 177: {
  20863. Ffc: *(*struct {
  20864. Fcode [0]Tush
  20865. Ffreq Tush
  20866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(283)})),
  20867. Fdl: *(*struct {
  20868. Flen1 [0]Tush
  20869. Fdad Tush
  20870. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20871. },
  20872. 178: {
  20873. Ffc: *(*struct {
  20874. Fcode [0]Tush
  20875. Ffreq Tush
  20876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(155)})),
  20877. Fdl: *(*struct {
  20878. Flen1 [0]Tush
  20879. Fdad Tush
  20880. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20881. },
  20882. 179: {
  20883. Ffc: *(*struct {
  20884. Fcode [0]Tush
  20885. Ffreq Tush
  20886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(411)})),
  20887. Fdl: *(*struct {
  20888. Flen1 [0]Tush
  20889. Fdad Tush
  20890. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20891. },
  20892. 180: {
  20893. Ffc: *(*struct {
  20894. Fcode [0]Tush
  20895. Ffreq Tush
  20896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(91)})),
  20897. Fdl: *(*struct {
  20898. Flen1 [0]Tush
  20899. Fdad Tush
  20900. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20901. },
  20902. 181: {
  20903. Ffc: *(*struct {
  20904. Fcode [0]Tush
  20905. Ffreq Tush
  20906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(347)})),
  20907. Fdl: *(*struct {
  20908. Flen1 [0]Tush
  20909. Fdad Tush
  20910. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20911. },
  20912. 182: {
  20913. Ffc: *(*struct {
  20914. Fcode [0]Tush
  20915. Ffreq Tush
  20916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(219)})),
  20917. Fdl: *(*struct {
  20918. Flen1 [0]Tush
  20919. Fdad Tush
  20920. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20921. },
  20922. 183: {
  20923. Ffc: *(*struct {
  20924. Fcode [0]Tush
  20925. Ffreq Tush
  20926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(475)})),
  20927. Fdl: *(*struct {
  20928. Flen1 [0]Tush
  20929. Fdad Tush
  20930. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20931. },
  20932. 184: {
  20933. Ffc: *(*struct {
  20934. Fcode [0]Tush
  20935. Ffreq Tush
  20936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(59)})),
  20937. Fdl: *(*struct {
  20938. Flen1 [0]Tush
  20939. Fdad Tush
  20940. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20941. },
  20942. 185: {
  20943. Ffc: *(*struct {
  20944. Fcode [0]Tush
  20945. Ffreq Tush
  20946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(315)})),
  20947. Fdl: *(*struct {
  20948. Flen1 [0]Tush
  20949. Fdad Tush
  20950. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20951. },
  20952. 186: {
  20953. Ffc: *(*struct {
  20954. Fcode [0]Tush
  20955. Ffreq Tush
  20956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(187)})),
  20957. Fdl: *(*struct {
  20958. Flen1 [0]Tush
  20959. Fdad Tush
  20960. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20961. },
  20962. 187: {
  20963. Ffc: *(*struct {
  20964. Fcode [0]Tush
  20965. Ffreq Tush
  20966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(443)})),
  20967. Fdl: *(*struct {
  20968. Flen1 [0]Tush
  20969. Fdad Tush
  20970. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20971. },
  20972. 188: {
  20973. Ffc: *(*struct {
  20974. Fcode [0]Tush
  20975. Ffreq Tush
  20976. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(123)})),
  20977. Fdl: *(*struct {
  20978. Flen1 [0]Tush
  20979. Fdad Tush
  20980. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20981. },
  20982. 189: {
  20983. Ffc: *(*struct {
  20984. Fcode [0]Tush
  20985. Ffreq Tush
  20986. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(379)})),
  20987. Fdl: *(*struct {
  20988. Flen1 [0]Tush
  20989. Fdad Tush
  20990. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  20991. },
  20992. 190: {
  20993. Ffc: *(*struct {
  20994. Fcode [0]Tush
  20995. Ffreq Tush
  20996. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(251)})),
  20997. Fdl: *(*struct {
  20998. Flen1 [0]Tush
  20999. Fdad Tush
  21000. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21001. },
  21002. 191: {
  21003. Ffc: *(*struct {
  21004. Fcode [0]Tush
  21005. Ffreq Tush
  21006. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(507)})),
  21007. Fdl: *(*struct {
  21008. Flen1 [0]Tush
  21009. Fdad Tush
  21010. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21011. },
  21012. 192: {
  21013. Ffc: *(*struct {
  21014. Fcode [0]Tush
  21015. Ffreq Tush
  21016. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21017. Fdl: *(*struct {
  21018. Flen1 [0]Tush
  21019. Fdad Tush
  21020. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21021. },
  21022. 193: {
  21023. Ffc: *(*struct {
  21024. Fcode [0]Tush
  21025. Ffreq Tush
  21026. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(263)})),
  21027. Fdl: *(*struct {
  21028. Flen1 [0]Tush
  21029. Fdad Tush
  21030. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21031. },
  21032. 194: {
  21033. Ffc: *(*struct {
  21034. Fcode [0]Tush
  21035. Ffreq Tush
  21036. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(135)})),
  21037. Fdl: *(*struct {
  21038. Flen1 [0]Tush
  21039. Fdad Tush
  21040. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21041. },
  21042. 195: {
  21043. Ffc: *(*struct {
  21044. Fcode [0]Tush
  21045. Ffreq Tush
  21046. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(391)})),
  21047. Fdl: *(*struct {
  21048. Flen1 [0]Tush
  21049. Fdad Tush
  21050. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21051. },
  21052. 196: {
  21053. Ffc: *(*struct {
  21054. Fcode [0]Tush
  21055. Ffreq Tush
  21056. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(71)})),
  21057. Fdl: *(*struct {
  21058. Flen1 [0]Tush
  21059. Fdad Tush
  21060. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21061. },
  21062. 197: {
  21063. Ffc: *(*struct {
  21064. Fcode [0]Tush
  21065. Ffreq Tush
  21066. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(327)})),
  21067. Fdl: *(*struct {
  21068. Flen1 [0]Tush
  21069. Fdad Tush
  21070. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21071. },
  21072. 198: {
  21073. Ffc: *(*struct {
  21074. Fcode [0]Tush
  21075. Ffreq Tush
  21076. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(199)})),
  21077. Fdl: *(*struct {
  21078. Flen1 [0]Tush
  21079. Fdad Tush
  21080. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21081. },
  21082. 199: {
  21083. Ffc: *(*struct {
  21084. Fcode [0]Tush
  21085. Ffreq Tush
  21086. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(455)})),
  21087. Fdl: *(*struct {
  21088. Flen1 [0]Tush
  21089. Fdad Tush
  21090. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21091. },
  21092. 200: {
  21093. Ffc: *(*struct {
  21094. Fcode [0]Tush
  21095. Ffreq Tush
  21096. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(39)})),
  21097. Fdl: *(*struct {
  21098. Flen1 [0]Tush
  21099. Fdad Tush
  21100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21101. },
  21102. 201: {
  21103. Ffc: *(*struct {
  21104. Fcode [0]Tush
  21105. Ffreq Tush
  21106. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(295)})),
  21107. Fdl: *(*struct {
  21108. Flen1 [0]Tush
  21109. Fdad Tush
  21110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21111. },
  21112. 202: {
  21113. Ffc: *(*struct {
  21114. Fcode [0]Tush
  21115. Ffreq Tush
  21116. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(167)})),
  21117. Fdl: *(*struct {
  21118. Flen1 [0]Tush
  21119. Fdad Tush
  21120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21121. },
  21122. 203: {
  21123. Ffc: *(*struct {
  21124. Fcode [0]Tush
  21125. Ffreq Tush
  21126. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(423)})),
  21127. Fdl: *(*struct {
  21128. Flen1 [0]Tush
  21129. Fdad Tush
  21130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21131. },
  21132. 204: {
  21133. Ffc: *(*struct {
  21134. Fcode [0]Tush
  21135. Ffreq Tush
  21136. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(103)})),
  21137. Fdl: *(*struct {
  21138. Flen1 [0]Tush
  21139. Fdad Tush
  21140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21141. },
  21142. 205: {
  21143. Ffc: *(*struct {
  21144. Fcode [0]Tush
  21145. Ffreq Tush
  21146. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(359)})),
  21147. Fdl: *(*struct {
  21148. Flen1 [0]Tush
  21149. Fdad Tush
  21150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21151. },
  21152. 206: {
  21153. Ffc: *(*struct {
  21154. Fcode [0]Tush
  21155. Ffreq Tush
  21156. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(231)})),
  21157. Fdl: *(*struct {
  21158. Flen1 [0]Tush
  21159. Fdad Tush
  21160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21161. },
  21162. 207: {
  21163. Ffc: *(*struct {
  21164. Fcode [0]Tush
  21165. Ffreq Tush
  21166. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(487)})),
  21167. Fdl: *(*struct {
  21168. Flen1 [0]Tush
  21169. Fdad Tush
  21170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21171. },
  21172. 208: {
  21173. Ffc: *(*struct {
  21174. Fcode [0]Tush
  21175. Ffreq Tush
  21176. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  21177. Fdl: *(*struct {
  21178. Flen1 [0]Tush
  21179. Fdad Tush
  21180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21181. },
  21182. 209: {
  21183. Ffc: *(*struct {
  21184. Fcode [0]Tush
  21185. Ffreq Tush
  21186. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(279)})),
  21187. Fdl: *(*struct {
  21188. Flen1 [0]Tush
  21189. Fdad Tush
  21190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21191. },
  21192. 210: {
  21193. Ffc: *(*struct {
  21194. Fcode [0]Tush
  21195. Ffreq Tush
  21196. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(151)})),
  21197. Fdl: *(*struct {
  21198. Flen1 [0]Tush
  21199. Fdad Tush
  21200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21201. },
  21202. 211: {
  21203. Ffc: *(*struct {
  21204. Fcode [0]Tush
  21205. Ffreq Tush
  21206. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(407)})),
  21207. Fdl: *(*struct {
  21208. Flen1 [0]Tush
  21209. Fdad Tush
  21210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21211. },
  21212. 212: {
  21213. Ffc: *(*struct {
  21214. Fcode [0]Tush
  21215. Ffreq Tush
  21216. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(87)})),
  21217. Fdl: *(*struct {
  21218. Flen1 [0]Tush
  21219. Fdad Tush
  21220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21221. },
  21222. 213: {
  21223. Ffc: *(*struct {
  21224. Fcode [0]Tush
  21225. Ffreq Tush
  21226. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(343)})),
  21227. Fdl: *(*struct {
  21228. Flen1 [0]Tush
  21229. Fdad Tush
  21230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21231. },
  21232. 214: {
  21233. Ffc: *(*struct {
  21234. Fcode [0]Tush
  21235. Ffreq Tush
  21236. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(215)})),
  21237. Fdl: *(*struct {
  21238. Flen1 [0]Tush
  21239. Fdad Tush
  21240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21241. },
  21242. 215: {
  21243. Ffc: *(*struct {
  21244. Fcode [0]Tush
  21245. Ffreq Tush
  21246. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(471)})),
  21247. Fdl: *(*struct {
  21248. Flen1 [0]Tush
  21249. Fdad Tush
  21250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21251. },
  21252. 216: {
  21253. Ffc: *(*struct {
  21254. Fcode [0]Tush
  21255. Ffreq Tush
  21256. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(55)})),
  21257. Fdl: *(*struct {
  21258. Flen1 [0]Tush
  21259. Fdad Tush
  21260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21261. },
  21262. 217: {
  21263. Ffc: *(*struct {
  21264. Fcode [0]Tush
  21265. Ffreq Tush
  21266. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(311)})),
  21267. Fdl: *(*struct {
  21268. Flen1 [0]Tush
  21269. Fdad Tush
  21270. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21271. },
  21272. 218: {
  21273. Ffc: *(*struct {
  21274. Fcode [0]Tush
  21275. Ffreq Tush
  21276. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(183)})),
  21277. Fdl: *(*struct {
  21278. Flen1 [0]Tush
  21279. Fdad Tush
  21280. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21281. },
  21282. 219: {
  21283. Ffc: *(*struct {
  21284. Fcode [0]Tush
  21285. Ffreq Tush
  21286. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(439)})),
  21287. Fdl: *(*struct {
  21288. Flen1 [0]Tush
  21289. Fdad Tush
  21290. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21291. },
  21292. 220: {
  21293. Ffc: *(*struct {
  21294. Fcode [0]Tush
  21295. Ffreq Tush
  21296. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(119)})),
  21297. Fdl: *(*struct {
  21298. Flen1 [0]Tush
  21299. Fdad Tush
  21300. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21301. },
  21302. 221: {
  21303. Ffc: *(*struct {
  21304. Fcode [0]Tush
  21305. Ffreq Tush
  21306. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(375)})),
  21307. Fdl: *(*struct {
  21308. Flen1 [0]Tush
  21309. Fdad Tush
  21310. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21311. },
  21312. 222: {
  21313. Ffc: *(*struct {
  21314. Fcode [0]Tush
  21315. Ffreq Tush
  21316. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(247)})),
  21317. Fdl: *(*struct {
  21318. Flen1 [0]Tush
  21319. Fdad Tush
  21320. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21321. },
  21322. 223: {
  21323. Ffc: *(*struct {
  21324. Fcode [0]Tush
  21325. Ffreq Tush
  21326. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(503)})),
  21327. Fdl: *(*struct {
  21328. Flen1 [0]Tush
  21329. Fdad Tush
  21330. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21331. },
  21332. 224: {
  21333. Ffc: *(*struct {
  21334. Fcode [0]Tush
  21335. Ffreq Tush
  21336. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(15)})),
  21337. Fdl: *(*struct {
  21338. Flen1 [0]Tush
  21339. Fdad Tush
  21340. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21341. },
  21342. 225: {
  21343. Ffc: *(*struct {
  21344. Fcode [0]Tush
  21345. Ffreq Tush
  21346. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(271)})),
  21347. Fdl: *(*struct {
  21348. Flen1 [0]Tush
  21349. Fdad Tush
  21350. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21351. },
  21352. 226: {
  21353. Ffc: *(*struct {
  21354. Fcode [0]Tush
  21355. Ffreq Tush
  21356. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(143)})),
  21357. Fdl: *(*struct {
  21358. Flen1 [0]Tush
  21359. Fdad Tush
  21360. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21361. },
  21362. 227: {
  21363. Ffc: *(*struct {
  21364. Fcode [0]Tush
  21365. Ffreq Tush
  21366. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(399)})),
  21367. Fdl: *(*struct {
  21368. Flen1 [0]Tush
  21369. Fdad Tush
  21370. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21371. },
  21372. 228: {
  21373. Ffc: *(*struct {
  21374. Fcode [0]Tush
  21375. Ffreq Tush
  21376. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(79)})),
  21377. Fdl: *(*struct {
  21378. Flen1 [0]Tush
  21379. Fdad Tush
  21380. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21381. },
  21382. 229: {
  21383. Ffc: *(*struct {
  21384. Fcode [0]Tush
  21385. Ffreq Tush
  21386. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(335)})),
  21387. Fdl: *(*struct {
  21388. Flen1 [0]Tush
  21389. Fdad Tush
  21390. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21391. },
  21392. 230: {
  21393. Ffc: *(*struct {
  21394. Fcode [0]Tush
  21395. Ffreq Tush
  21396. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(207)})),
  21397. Fdl: *(*struct {
  21398. Flen1 [0]Tush
  21399. Fdad Tush
  21400. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21401. },
  21402. 231: {
  21403. Ffc: *(*struct {
  21404. Fcode [0]Tush
  21405. Ffreq Tush
  21406. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(463)})),
  21407. Fdl: *(*struct {
  21408. Flen1 [0]Tush
  21409. Fdad Tush
  21410. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21411. },
  21412. 232: {
  21413. Ffc: *(*struct {
  21414. Fcode [0]Tush
  21415. Ffreq Tush
  21416. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(47)})),
  21417. Fdl: *(*struct {
  21418. Flen1 [0]Tush
  21419. Fdad Tush
  21420. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21421. },
  21422. 233: {
  21423. Ffc: *(*struct {
  21424. Fcode [0]Tush
  21425. Ffreq Tush
  21426. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(303)})),
  21427. Fdl: *(*struct {
  21428. Flen1 [0]Tush
  21429. Fdad Tush
  21430. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21431. },
  21432. 234: {
  21433. Ffc: *(*struct {
  21434. Fcode [0]Tush
  21435. Ffreq Tush
  21436. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(175)})),
  21437. Fdl: *(*struct {
  21438. Flen1 [0]Tush
  21439. Fdad Tush
  21440. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21441. },
  21442. 235: {
  21443. Ffc: *(*struct {
  21444. Fcode [0]Tush
  21445. Ffreq Tush
  21446. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(431)})),
  21447. Fdl: *(*struct {
  21448. Flen1 [0]Tush
  21449. Fdad Tush
  21450. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21451. },
  21452. 236: {
  21453. Ffc: *(*struct {
  21454. Fcode [0]Tush
  21455. Ffreq Tush
  21456. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(111)})),
  21457. Fdl: *(*struct {
  21458. Flen1 [0]Tush
  21459. Fdad Tush
  21460. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21461. },
  21462. 237: {
  21463. Ffc: *(*struct {
  21464. Fcode [0]Tush
  21465. Ffreq Tush
  21466. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(367)})),
  21467. Fdl: *(*struct {
  21468. Flen1 [0]Tush
  21469. Fdad Tush
  21470. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21471. },
  21472. 238: {
  21473. Ffc: *(*struct {
  21474. Fcode [0]Tush
  21475. Ffreq Tush
  21476. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(239)})),
  21477. Fdl: *(*struct {
  21478. Flen1 [0]Tush
  21479. Fdad Tush
  21480. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21481. },
  21482. 239: {
  21483. Ffc: *(*struct {
  21484. Fcode [0]Tush
  21485. Ffreq Tush
  21486. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(495)})),
  21487. Fdl: *(*struct {
  21488. Flen1 [0]Tush
  21489. Fdad Tush
  21490. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21491. },
  21492. 240: {
  21493. Ffc: *(*struct {
  21494. Fcode [0]Tush
  21495. Ffreq Tush
  21496. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(31)})),
  21497. Fdl: *(*struct {
  21498. Flen1 [0]Tush
  21499. Fdad Tush
  21500. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21501. },
  21502. 241: {
  21503. Ffc: *(*struct {
  21504. Fcode [0]Tush
  21505. Ffreq Tush
  21506. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(287)})),
  21507. Fdl: *(*struct {
  21508. Flen1 [0]Tush
  21509. Fdad Tush
  21510. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21511. },
  21512. 242: {
  21513. Ffc: *(*struct {
  21514. Fcode [0]Tush
  21515. Ffreq Tush
  21516. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(159)})),
  21517. Fdl: *(*struct {
  21518. Flen1 [0]Tush
  21519. Fdad Tush
  21520. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21521. },
  21522. 243: {
  21523. Ffc: *(*struct {
  21524. Fcode [0]Tush
  21525. Ffreq Tush
  21526. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(415)})),
  21527. Fdl: *(*struct {
  21528. Flen1 [0]Tush
  21529. Fdad Tush
  21530. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21531. },
  21532. 244: {
  21533. Ffc: *(*struct {
  21534. Fcode [0]Tush
  21535. Ffreq Tush
  21536. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(95)})),
  21537. Fdl: *(*struct {
  21538. Flen1 [0]Tush
  21539. Fdad Tush
  21540. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21541. },
  21542. 245: {
  21543. Ffc: *(*struct {
  21544. Fcode [0]Tush
  21545. Ffreq Tush
  21546. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(351)})),
  21547. Fdl: *(*struct {
  21548. Flen1 [0]Tush
  21549. Fdad Tush
  21550. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21551. },
  21552. 246: {
  21553. Ffc: *(*struct {
  21554. Fcode [0]Tush
  21555. Ffreq Tush
  21556. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(223)})),
  21557. Fdl: *(*struct {
  21558. Flen1 [0]Tush
  21559. Fdad Tush
  21560. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21561. },
  21562. 247: {
  21563. Ffc: *(*struct {
  21564. Fcode [0]Tush
  21565. Ffreq Tush
  21566. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(479)})),
  21567. Fdl: *(*struct {
  21568. Flen1 [0]Tush
  21569. Fdad Tush
  21570. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21571. },
  21572. 248: {
  21573. Ffc: *(*struct {
  21574. Fcode [0]Tush
  21575. Ffreq Tush
  21576. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(63)})),
  21577. Fdl: *(*struct {
  21578. Flen1 [0]Tush
  21579. Fdad Tush
  21580. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21581. },
  21582. 249: {
  21583. Ffc: *(*struct {
  21584. Fcode [0]Tush
  21585. Ffreq Tush
  21586. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(319)})),
  21587. Fdl: *(*struct {
  21588. Flen1 [0]Tush
  21589. Fdad Tush
  21590. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21591. },
  21592. 250: {
  21593. Ffc: *(*struct {
  21594. Fcode [0]Tush
  21595. Ffreq Tush
  21596. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(191)})),
  21597. Fdl: *(*struct {
  21598. Flen1 [0]Tush
  21599. Fdad Tush
  21600. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21601. },
  21602. 251: {
  21603. Ffc: *(*struct {
  21604. Fcode [0]Tush
  21605. Ffreq Tush
  21606. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(447)})),
  21607. Fdl: *(*struct {
  21608. Flen1 [0]Tush
  21609. Fdad Tush
  21610. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21611. },
  21612. 252: {
  21613. Ffc: *(*struct {
  21614. Fcode [0]Tush
  21615. Ffreq Tush
  21616. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(127)})),
  21617. Fdl: *(*struct {
  21618. Flen1 [0]Tush
  21619. Fdad Tush
  21620. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21621. },
  21622. 253: {
  21623. Ffc: *(*struct {
  21624. Fcode [0]Tush
  21625. Ffreq Tush
  21626. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(383)})),
  21627. Fdl: *(*struct {
  21628. Flen1 [0]Tush
  21629. Fdad Tush
  21630. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21631. },
  21632. 254: {
  21633. Ffc: *(*struct {
  21634. Fcode [0]Tush
  21635. Ffreq Tush
  21636. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(255)})),
  21637. Fdl: *(*struct {
  21638. Flen1 [0]Tush
  21639. Fdad Tush
  21640. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21641. },
  21642. 255: {
  21643. Ffc: *(*struct {
  21644. Fcode [0]Tush
  21645. Ffreq Tush
  21646. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(511)})),
  21647. Fdl: *(*struct {
  21648. Flen1 [0]Tush
  21649. Fdad Tush
  21650. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  21651. },
  21652. 256: {
  21653. Fdl: *(*struct {
  21654. Flen1 [0]Tush
  21655. Fdad Tush
  21656. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21657. },
  21658. 257: {
  21659. Ffc: *(*struct {
  21660. Fcode [0]Tush
  21661. Ffreq Tush
  21662. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(64)})),
  21663. Fdl: *(*struct {
  21664. Flen1 [0]Tush
  21665. Fdad Tush
  21666. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21667. },
  21668. 258: {
  21669. Ffc: *(*struct {
  21670. Fcode [0]Tush
  21671. Ffreq Tush
  21672. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(32)})),
  21673. Fdl: *(*struct {
  21674. Flen1 [0]Tush
  21675. Fdad Tush
  21676. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21677. },
  21678. 259: {
  21679. Ffc: *(*struct {
  21680. Fcode [0]Tush
  21681. Ffreq Tush
  21682. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(96)})),
  21683. Fdl: *(*struct {
  21684. Flen1 [0]Tush
  21685. Fdad Tush
  21686. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21687. },
  21688. 260: {
  21689. Ffc: *(*struct {
  21690. Fcode [0]Tush
  21691. Ffreq Tush
  21692. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  21693. Fdl: *(*struct {
  21694. Flen1 [0]Tush
  21695. Fdad Tush
  21696. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21697. },
  21698. 261: {
  21699. Ffc: *(*struct {
  21700. Fcode [0]Tush
  21701. Ffreq Tush
  21702. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(80)})),
  21703. Fdl: *(*struct {
  21704. Flen1 [0]Tush
  21705. Fdad Tush
  21706. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21707. },
  21708. 262: {
  21709. Ffc: *(*struct {
  21710. Fcode [0]Tush
  21711. Ffreq Tush
  21712. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(48)})),
  21713. Fdl: *(*struct {
  21714. Flen1 [0]Tush
  21715. Fdad Tush
  21716. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21717. },
  21718. 263: {
  21719. Ffc: *(*struct {
  21720. Fcode [0]Tush
  21721. Ffreq Tush
  21722. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(112)})),
  21723. Fdl: *(*struct {
  21724. Flen1 [0]Tush
  21725. Fdad Tush
  21726. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21727. },
  21728. 264: {
  21729. Ffc: *(*struct {
  21730. Fcode [0]Tush
  21731. Ffreq Tush
  21732. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21733. Fdl: *(*struct {
  21734. Flen1 [0]Tush
  21735. Fdad Tush
  21736. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21737. },
  21738. 265: {
  21739. Ffc: *(*struct {
  21740. Fcode [0]Tush
  21741. Ffreq Tush
  21742. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(72)})),
  21743. Fdl: *(*struct {
  21744. Flen1 [0]Tush
  21745. Fdad Tush
  21746. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21747. },
  21748. 266: {
  21749. Ffc: *(*struct {
  21750. Fcode [0]Tush
  21751. Ffreq Tush
  21752. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(40)})),
  21753. Fdl: *(*struct {
  21754. Flen1 [0]Tush
  21755. Fdad Tush
  21756. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21757. },
  21758. 267: {
  21759. Ffc: *(*struct {
  21760. Fcode [0]Tush
  21761. Ffreq Tush
  21762. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(104)})),
  21763. Fdl: *(*struct {
  21764. Flen1 [0]Tush
  21765. Fdad Tush
  21766. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21767. },
  21768. 268: {
  21769. Ffc: *(*struct {
  21770. Fcode [0]Tush
  21771. Ffreq Tush
  21772. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  21773. Fdl: *(*struct {
  21774. Flen1 [0]Tush
  21775. Fdad Tush
  21776. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21777. },
  21778. 269: {
  21779. Ffc: *(*struct {
  21780. Fcode [0]Tush
  21781. Ffreq Tush
  21782. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(88)})),
  21783. Fdl: *(*struct {
  21784. Flen1 [0]Tush
  21785. Fdad Tush
  21786. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21787. },
  21788. 270: {
  21789. Ffc: *(*struct {
  21790. Fcode [0]Tush
  21791. Ffreq Tush
  21792. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(56)})),
  21793. Fdl: *(*struct {
  21794. Flen1 [0]Tush
  21795. Fdad Tush
  21796. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21797. },
  21798. 271: {
  21799. Ffc: *(*struct {
  21800. Fcode [0]Tush
  21801. Ffreq Tush
  21802. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(120)})),
  21803. Fdl: *(*struct {
  21804. Flen1 [0]Tush
  21805. Fdad Tush
  21806. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21807. },
  21808. 272: {
  21809. Ffc: *(*struct {
  21810. Fcode [0]Tush
  21811. Ffreq Tush
  21812. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  21813. Fdl: *(*struct {
  21814. Flen1 [0]Tush
  21815. Fdad Tush
  21816. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21817. },
  21818. 273: {
  21819. Ffc: *(*struct {
  21820. Fcode [0]Tush
  21821. Ffreq Tush
  21822. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(68)})),
  21823. Fdl: *(*struct {
  21824. Flen1 [0]Tush
  21825. Fdad Tush
  21826. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21827. },
  21828. 274: {
  21829. Ffc: *(*struct {
  21830. Fcode [0]Tush
  21831. Ffreq Tush
  21832. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(36)})),
  21833. Fdl: *(*struct {
  21834. Flen1 [0]Tush
  21835. Fdad Tush
  21836. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21837. },
  21838. 275: {
  21839. Ffc: *(*struct {
  21840. Fcode [0]Tush
  21841. Ffreq Tush
  21842. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(100)})),
  21843. Fdl: *(*struct {
  21844. Flen1 [0]Tush
  21845. Fdad Tush
  21846. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21847. },
  21848. 276: {
  21849. Ffc: *(*struct {
  21850. Fcode [0]Tush
  21851. Ffreq Tush
  21852. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  21853. Fdl: *(*struct {
  21854. Flen1 [0]Tush
  21855. Fdad Tush
  21856. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21857. },
  21858. 277: {
  21859. Ffc: *(*struct {
  21860. Fcode [0]Tush
  21861. Ffreq Tush
  21862. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(84)})),
  21863. Fdl: *(*struct {
  21864. Flen1 [0]Tush
  21865. Fdad Tush
  21866. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21867. },
  21868. 278: {
  21869. Ffc: *(*struct {
  21870. Fcode [0]Tush
  21871. Ffreq Tush
  21872. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(52)})),
  21873. Fdl: *(*struct {
  21874. Flen1 [0]Tush
  21875. Fdad Tush
  21876. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21877. },
  21878. 279: {
  21879. Ffc: *(*struct {
  21880. Fcode [0]Tush
  21881. Ffreq Tush
  21882. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(116)})),
  21883. Fdl: *(*struct {
  21884. Flen1 [0]Tush
  21885. Fdad Tush
  21886. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  21887. },
  21888. 280: {
  21889. Ffc: *(*struct {
  21890. Fcode [0]Tush
  21891. Ffreq Tush
  21892. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  21893. Fdl: *(*struct {
  21894. Flen1 [0]Tush
  21895. Fdad Tush
  21896. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21897. },
  21898. 281: {
  21899. Ffc: *(*struct {
  21900. Fcode [0]Tush
  21901. Ffreq Tush
  21902. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(131)})),
  21903. Fdl: *(*struct {
  21904. Flen1 [0]Tush
  21905. Fdad Tush
  21906. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21907. },
  21908. 282: {
  21909. Ffc: *(*struct {
  21910. Fcode [0]Tush
  21911. Ffreq Tush
  21912. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(67)})),
  21913. Fdl: *(*struct {
  21914. Flen1 [0]Tush
  21915. Fdad Tush
  21916. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21917. },
  21918. 283: {
  21919. Ffc: *(*struct {
  21920. Fcode [0]Tush
  21921. Ffreq Tush
  21922. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(195)})),
  21923. Fdl: *(*struct {
  21924. Flen1 [0]Tush
  21925. Fdad Tush
  21926. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21927. },
  21928. 284: {
  21929. Ffc: *(*struct {
  21930. Fcode [0]Tush
  21931. Ffreq Tush
  21932. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(35)})),
  21933. Fdl: *(*struct {
  21934. Flen1 [0]Tush
  21935. Fdad Tush
  21936. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21937. },
  21938. 285: {
  21939. Ffc: *(*struct {
  21940. Fcode [0]Tush
  21941. Ffreq Tush
  21942. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(163)})),
  21943. Fdl: *(*struct {
  21944. Flen1 [0]Tush
  21945. Fdad Tush
  21946. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21947. },
  21948. 286: {
  21949. Ffc: *(*struct {
  21950. Fcode [0]Tush
  21951. Ffreq Tush
  21952. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(99)})),
  21953. Fdl: *(*struct {
  21954. Flen1 [0]Tush
  21955. Fdad Tush
  21956. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21957. },
  21958. 287: {
  21959. Ffc: *(*struct {
  21960. Fcode [0]Tush
  21961. Ffreq Tush
  21962. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(227)})),
  21963. Fdl: *(*struct {
  21964. Flen1 [0]Tush
  21965. Fdad Tush
  21966. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21967. },
  21968. }
  21969. var _static_dtree = [30]Tct_data{
  21970. 0: {
  21971. Fdl: *(*struct {
  21972. Flen1 [0]Tush
  21973. Fdad Tush
  21974. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  21975. },
  21976. 1: {
  21977. Ffc: *(*struct {
  21978. Fcode [0]Tush
  21979. Ffreq Tush
  21980. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(16)})),
  21981. Fdl: *(*struct {
  21982. Flen1 [0]Tush
  21983. Fdad Tush
  21984. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  21985. },
  21986. 2: {
  21987. Ffc: *(*struct {
  21988. Fcode [0]Tush
  21989. Ffreq Tush
  21990. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(8)})),
  21991. Fdl: *(*struct {
  21992. Flen1 [0]Tush
  21993. Fdad Tush
  21994. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  21995. },
  21996. 3: {
  21997. Ffc: *(*struct {
  21998. Fcode [0]Tush
  21999. Ffreq Tush
  22000. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(24)})),
  22001. Fdl: *(*struct {
  22002. Flen1 [0]Tush
  22003. Fdad Tush
  22004. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22005. },
  22006. 4: {
  22007. Ffc: *(*struct {
  22008. Fcode [0]Tush
  22009. Ffreq Tush
  22010. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(4)})),
  22011. Fdl: *(*struct {
  22012. Flen1 [0]Tush
  22013. Fdad Tush
  22014. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22015. },
  22016. 5: {
  22017. Ffc: *(*struct {
  22018. Fcode [0]Tush
  22019. Ffreq Tush
  22020. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(20)})),
  22021. Fdl: *(*struct {
  22022. Flen1 [0]Tush
  22023. Fdad Tush
  22024. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22025. },
  22026. 6: {
  22027. Ffc: *(*struct {
  22028. Fcode [0]Tush
  22029. Ffreq Tush
  22030. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(12)})),
  22031. Fdl: *(*struct {
  22032. Flen1 [0]Tush
  22033. Fdad Tush
  22034. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22035. },
  22036. 7: {
  22037. Ffc: *(*struct {
  22038. Fcode [0]Tush
  22039. Ffreq Tush
  22040. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(28)})),
  22041. Fdl: *(*struct {
  22042. Flen1 [0]Tush
  22043. Fdad Tush
  22044. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22045. },
  22046. 8: {
  22047. Ffc: *(*struct {
  22048. Fcode [0]Tush
  22049. Ffreq Tush
  22050. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(2)})),
  22051. Fdl: *(*struct {
  22052. Flen1 [0]Tush
  22053. Fdad Tush
  22054. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22055. },
  22056. 9: {
  22057. Ffc: *(*struct {
  22058. Fcode [0]Tush
  22059. Ffreq Tush
  22060. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(18)})),
  22061. Fdl: *(*struct {
  22062. Flen1 [0]Tush
  22063. Fdad Tush
  22064. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22065. },
  22066. 10: {
  22067. Ffc: *(*struct {
  22068. Fcode [0]Tush
  22069. Ffreq Tush
  22070. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(10)})),
  22071. Fdl: *(*struct {
  22072. Flen1 [0]Tush
  22073. Fdad Tush
  22074. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22075. },
  22076. 11: {
  22077. Ffc: *(*struct {
  22078. Fcode [0]Tush
  22079. Ffreq Tush
  22080. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(26)})),
  22081. Fdl: *(*struct {
  22082. Flen1 [0]Tush
  22083. Fdad Tush
  22084. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22085. },
  22086. 12: {
  22087. Ffc: *(*struct {
  22088. Fcode [0]Tush
  22089. Ffreq Tush
  22090. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(6)})),
  22091. Fdl: *(*struct {
  22092. Flen1 [0]Tush
  22093. Fdad Tush
  22094. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22095. },
  22096. 13: {
  22097. Ffc: *(*struct {
  22098. Fcode [0]Tush
  22099. Ffreq Tush
  22100. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(22)})),
  22101. Fdl: *(*struct {
  22102. Flen1 [0]Tush
  22103. Fdad Tush
  22104. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22105. },
  22106. 14: {
  22107. Ffc: *(*struct {
  22108. Fcode [0]Tush
  22109. Ffreq Tush
  22110. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(14)})),
  22111. Fdl: *(*struct {
  22112. Flen1 [0]Tush
  22113. Fdad Tush
  22114. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22115. },
  22116. 15: {
  22117. Ffc: *(*struct {
  22118. Fcode [0]Tush
  22119. Ffreq Tush
  22120. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(30)})),
  22121. Fdl: *(*struct {
  22122. Flen1 [0]Tush
  22123. Fdad Tush
  22124. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22125. },
  22126. 16: {
  22127. Ffc: *(*struct {
  22128. Fcode [0]Tush
  22129. Ffreq Tush
  22130. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(1)})),
  22131. Fdl: *(*struct {
  22132. Flen1 [0]Tush
  22133. Fdad Tush
  22134. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22135. },
  22136. 17: {
  22137. Ffc: *(*struct {
  22138. Fcode [0]Tush
  22139. Ffreq Tush
  22140. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(17)})),
  22141. Fdl: *(*struct {
  22142. Flen1 [0]Tush
  22143. Fdad Tush
  22144. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22145. },
  22146. 18: {
  22147. Ffc: *(*struct {
  22148. Fcode [0]Tush
  22149. Ffreq Tush
  22150. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(9)})),
  22151. Fdl: *(*struct {
  22152. Flen1 [0]Tush
  22153. Fdad Tush
  22154. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22155. },
  22156. 19: {
  22157. Ffc: *(*struct {
  22158. Fcode [0]Tush
  22159. Ffreq Tush
  22160. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(25)})),
  22161. Fdl: *(*struct {
  22162. Flen1 [0]Tush
  22163. Fdad Tush
  22164. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22165. },
  22166. 20: {
  22167. Ffc: *(*struct {
  22168. Fcode [0]Tush
  22169. Ffreq Tush
  22170. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22171. Fdl: *(*struct {
  22172. Flen1 [0]Tush
  22173. Fdad Tush
  22174. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22175. },
  22176. 21: {
  22177. Ffc: *(*struct {
  22178. Fcode [0]Tush
  22179. Ffreq Tush
  22180. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(21)})),
  22181. Fdl: *(*struct {
  22182. Flen1 [0]Tush
  22183. Fdad Tush
  22184. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22185. },
  22186. 22: {
  22187. Ffc: *(*struct {
  22188. Fcode [0]Tush
  22189. Ffreq Tush
  22190. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(13)})),
  22191. Fdl: *(*struct {
  22192. Flen1 [0]Tush
  22193. Fdad Tush
  22194. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22195. },
  22196. 23: {
  22197. Ffc: *(*struct {
  22198. Fcode [0]Tush
  22199. Ffreq Tush
  22200. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(29)})),
  22201. Fdl: *(*struct {
  22202. Flen1 [0]Tush
  22203. Fdad Tush
  22204. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22205. },
  22206. 24: {
  22207. Ffc: *(*struct {
  22208. Fcode [0]Tush
  22209. Ffreq Tush
  22210. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(3)})),
  22211. Fdl: *(*struct {
  22212. Flen1 [0]Tush
  22213. Fdad Tush
  22214. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22215. },
  22216. 25: {
  22217. Ffc: *(*struct {
  22218. Fcode [0]Tush
  22219. Ffreq Tush
  22220. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(19)})),
  22221. Fdl: *(*struct {
  22222. Flen1 [0]Tush
  22223. Fdad Tush
  22224. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22225. },
  22226. 26: {
  22227. Ffc: *(*struct {
  22228. Fcode [0]Tush
  22229. Ffreq Tush
  22230. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(11)})),
  22231. Fdl: *(*struct {
  22232. Flen1 [0]Tush
  22233. Fdad Tush
  22234. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22235. },
  22236. 27: {
  22237. Ffc: *(*struct {
  22238. Fcode [0]Tush
  22239. Ffreq Tush
  22240. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(27)})),
  22241. Fdl: *(*struct {
  22242. Flen1 [0]Tush
  22243. Fdad Tush
  22244. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22245. },
  22246. 28: {
  22247. Ffc: *(*struct {
  22248. Fcode [0]Tush
  22249. Ffreq Tush
  22250. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(7)})),
  22251. Fdl: *(*struct {
  22252. Flen1 [0]Tush
  22253. Fdad Tush
  22254. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22255. },
  22256. 29: {
  22257. Ffc: *(*struct {
  22258. Fcode [0]Tush
  22259. Ffreq Tush
  22260. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(23)})),
  22261. Fdl: *(*struct {
  22262. Flen1 [0]Tush
  22263. Fdad Tush
  22264. })(unsafe.Pointer(&struct{ f Tush }{f: uint16(5)})),
  22265. },
  22266. }
  22267. var _base_length = [29]int32{
  22268. 1: int32(1),
  22269. 2: int32(2),
  22270. 3: int32(3),
  22271. 4: int32(4),
  22272. 5: int32(5),
  22273. 6: int32(6),
  22274. 7: int32(7),
  22275. 8: int32(8),
  22276. 9: int32(10),
  22277. 10: int32(12),
  22278. 11: int32(14),
  22279. 12: int32(16),
  22280. 13: int32(20),
  22281. 14: int32(24),
  22282. 15: int32(28),
  22283. 16: int32(32),
  22284. 17: int32(40),
  22285. 18: int32(48),
  22286. 19: int32(56),
  22287. 20: int32(64),
  22288. 21: int32(80),
  22289. 22: int32(96),
  22290. 23: int32(112),
  22291. 24: int32(128),
  22292. 25: int32(160),
  22293. 26: int32(192),
  22294. 27: int32(224),
  22295. }
  22296. var _base_dist = [30]int32{
  22297. 1: int32(1),
  22298. 2: int32(2),
  22299. 3: int32(3),
  22300. 4: int32(4),
  22301. 5: int32(6),
  22302. 6: int32(8),
  22303. 7: int32(12),
  22304. 8: int32(16),
  22305. 9: int32(24),
  22306. 10: int32(32),
  22307. 11: int32(48),
  22308. 12: int32(64),
  22309. 13: int32(96),
  22310. 14: int32(128),
  22311. 15: int32(192),
  22312. 16: int32(256),
  22313. 17: int32(384),
  22314. 18: int32(512),
  22315. 19: int32(768),
  22316. 20: int32(1024),
  22317. 21: int32(1536),
  22318. 22: int32(2048),
  22319. 23: int32(3072),
  22320. 24: int32(4096),
  22321. 25: int32(6144),
  22322. 26: int32(8192),
  22323. 27: int32(12288),
  22324. 28: int32(16384),
  22325. 29: int32(24576),
  22326. }
  22327. var _static_l_desc = Tstatic_tree_desc{
  22328. Fstatic_tree: uintptr(unsafe.Pointer(&_static_ltree)),
  22329. Fextra_bits: uintptr(unsafe.Pointer(&_extra_lbits)),
  22330. Fextra_base: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1),
  22331. Felems: libc.Int32FromInt32(m_LITERALS) + libc.Int32FromInt32(1) + libc.Int32FromInt32(m_LENGTH_CODES),
  22332. Fmax_length: int32(m_MAX_BITS),
  22333. }
  22334. var _static_d_desc = Tstatic_tree_desc{
  22335. Fstatic_tree: uintptr(unsafe.Pointer(&_static_dtree)),
  22336. Fextra_bits: uintptr(unsafe.Pointer(&_extra_dbits)),
  22337. Felems: int32(m_D_CODES),
  22338. Fmax_length: int32(m_MAX_BITS),
  22339. }
  22340. var _static_bl_desc = Tstatic_tree_desc{
  22341. Fextra_bits: uintptr(unsafe.Pointer(&_extra_blbits)),
  22342. Felems: int32(m_BL_CODES),
  22343. Fmax_length: int32(m_MAX_BL_BITS),
  22344. }
  22345. /* ===========================================================================
  22346. * Output a short LSB first on the stream.
  22347. * IN assertion: there is enough room in pendingBuf.
  22348. */
  22349. // C documentation
  22350. //
  22351. // /* ===========================================================================
  22352. // * Reverse the first len bits of a code, using straightforward code (a faster
  22353. // * method would use a table)
  22354. // * IN assertion: 1 <= len <= 15
  22355. // */
  22356. func _bi_reverse(tls *libc.TLS, code uint32, len1 int32) (r uint32) {
  22357. var res uint32
  22358. var v1 int32
  22359. _, _ = res, v1
  22360. res = uint32(0)
  22361. for {
  22362. res |= code & uint32(1)
  22363. code >>= uint32(1)
  22364. res <<= uint32(1)
  22365. goto _2
  22366. _2:
  22367. ;
  22368. len1--
  22369. v1 = len1
  22370. if !(v1 > 0) {
  22371. break
  22372. }
  22373. }
  22374. return res >> int32(1)
  22375. }
  22376. // C documentation
  22377. //
  22378. // /* ===========================================================================
  22379. // * Flush the bit buffer, keeping at most 7 bits in it.
  22380. // */
  22381. func _bi_flush(tls *libc.TLS, s uintptr) {
  22382. var v1, v3, v5 Tulg
  22383. var v2, v4, v6, p7 uintptr
  22384. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, p7
  22385. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid == int32(16) {
  22386. v2 = s + 40
  22387. v1 = *(*Tulg)(unsafe.Pointer(v2))
  22388. *(*Tulg)(unsafe.Pointer(v2))++
  22389. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  22390. v4 = s + 40
  22391. v3 = *(*Tulg)(unsafe.Pointer(v4))
  22392. *(*Tulg)(unsafe.Pointer(v4))++
  22393. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  22394. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  22395. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  22396. } else {
  22397. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid >= int32(8) {
  22398. v6 = s + 40
  22399. v5 = *(*Tulg)(unsafe.Pointer(v6))
  22400. *(*Tulg)(unsafe.Pointer(v6))++
  22401. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  22402. p7 = s + 5900
  22403. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) >> libc.Int32FromInt32(8))
  22404. *(*int32)(unsafe.Pointer(s + 5904)) -= int32(8)
  22405. }
  22406. }
  22407. }
  22408. // C documentation
  22409. //
  22410. // /* ===========================================================================
  22411. // * Flush the bit buffer and align the output on a byte boundary
  22412. // */
  22413. func _bi_windup(tls *libc.TLS, s uintptr) {
  22414. var v1, v3, v5 Tulg
  22415. var v2, v4, v6 uintptr
  22416. _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6
  22417. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > int32(8) {
  22418. v2 = s + 40
  22419. v1 = *(*Tulg)(unsafe.Pointer(v2))
  22420. *(*Tulg)(unsafe.Pointer(v2))++
  22421. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v1))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  22422. v4 = s + 40
  22423. v3 = *(*Tulg)(unsafe.Pointer(v4))
  22424. *(*Tulg)(unsafe.Pointer(v4))++
  22425. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  22426. } else {
  22427. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > 0 {
  22428. v6 = s + 40
  22429. v5 = *(*Tulg)(unsafe.Pointer(v6))
  22430. *(*Tulg)(unsafe.Pointer(v6))++
  22431. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf)
  22432. }
  22433. }
  22434. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  22435. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  22436. }
  22437. // C documentation
  22438. //
  22439. // /* ===========================================================================
  22440. // * Generate the codes for a given tree and bit counts (which need not be
  22441. // * optimal).
  22442. // * IN assertion: the array bl_count contains the bit length statistics for
  22443. // * the given tree and the field len is set for all tree elements.
  22444. // * OUT assertion: the field code is set for all tree elements of non
  22445. // * zero code length.
  22446. // */
  22447. func _gen_codes(tls *libc.TLS, tree uintptr, max_code int32, bl_count uintptr) {
  22448. bp := tls.Alloc(32)
  22449. defer tls.Free(32)
  22450. var bits, len1, n int32
  22451. var code uint32
  22452. var v3 Tush
  22453. var v4 uintptr
  22454. var _ /* next_code at bp+0 */ [16]Tush
  22455. _, _, _, _, _, _ = bits, code, len1, n, v3, v4 /* next code value for each bit length */
  22456. code = uint32(0) /* code index */
  22457. /* The distribution counts are first used to generate the code values
  22458. * without bit reversal.
  22459. */
  22460. bits = int32(1)
  22461. for {
  22462. if !(bits <= int32(m_MAX_BITS)) {
  22463. break
  22464. }
  22465. code = (code + uint32(*(*Tushf)(unsafe.Pointer(bl_count + uintptr(bits-int32(1))*2)))) << int32(1)
  22466. (*(*[16]Tush)(unsafe.Pointer(bp)))[bits] = uint16(code)
  22467. goto _1
  22468. _1:
  22469. ;
  22470. bits++
  22471. }
  22472. /* Check that the bit counts in bl_count are consistent. The last code
  22473. * must be all ones.
  22474. */
  22475. n = 0
  22476. for {
  22477. if !(n <= max_code) {
  22478. break
  22479. }
  22480. len1 = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))
  22481. if len1 == 0 {
  22482. goto _2
  22483. }
  22484. /* Now reverse the bits */
  22485. v4 = bp + uintptr(len1)*2
  22486. v3 = *(*Tush)(unsafe.Pointer(v4))
  22487. *(*Tush)(unsafe.Pointer(v4))++
  22488. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4)) = uint16(_bi_reverse(tls, uint32(v3), len1))
  22489. goto _2
  22490. _2:
  22491. ;
  22492. n++
  22493. }
  22494. }
  22495. /* Send a code of the given tree. c and tree must not have side effects */
  22496. /* ===========================================================================
  22497. * Send a value on a given number of bits.
  22498. * IN assertion: length <= 16 and value fits in length bits.
  22499. */
  22500. /* the arguments must not have side effects */
  22501. // C documentation
  22502. //
  22503. // /* ===========================================================================
  22504. // * Initialize the various 'constant' tables.
  22505. // */
  22506. func _tr_static_init(tls *libc.TLS) {
  22507. }
  22508. /* ===========================================================================
  22509. * Generate the file trees.h describing the static trees.
  22510. */
  22511. // C documentation
  22512. //
  22513. // /* ===========================================================================
  22514. // * Initialize a new block.
  22515. // */
  22516. func _init_block(tls *libc.TLS, s uintptr) {
  22517. var n int32
  22518. var v4 Tulg
  22519. var v5 TuInt
  22520. _, _, _ = n, v4, v5 /* iterates over tree elements */
  22521. /* Initialize the trees. */
  22522. n = 0
  22523. for {
  22524. if !(n < libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) {
  22525. break
  22526. }
  22527. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(n)*4)) = uint16(0)
  22528. goto _1
  22529. _1:
  22530. ;
  22531. n++
  22532. }
  22533. n = 0
  22534. for {
  22535. if !(n < int32(m_D_CODES)) {
  22536. break
  22537. }
  22538. *(*Tush)(unsafe.Pointer(s + 2480 + uintptr(n)*4)) = uint16(0)
  22539. goto _2
  22540. _2:
  22541. ;
  22542. n++
  22543. }
  22544. n = 0
  22545. for {
  22546. if !(n < int32(m_BL_CODES)) {
  22547. break
  22548. }
  22549. *(*Tush)(unsafe.Pointer(s + 2724 + uintptr(n)*4)) = uint16(0)
  22550. goto _3
  22551. _3:
  22552. ;
  22553. n++
  22554. }
  22555. *(*Tush)(unsafe.Pointer(s + 188 + 256*4)) = uint16(1)
  22556. v4 = libc.Uint32FromInt32(0)
  22557. (*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len = v4
  22558. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len = v4
  22559. v5 = libc.Uint32FromInt32(0)
  22560. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches = v5
  22561. (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next = v5
  22562. }
  22563. // C documentation
  22564. //
  22565. // /* ===========================================================================
  22566. // * Initialize the tree data structures for a new zlib stream.
  22567. // */
  22568. func x__tr_init(tls *libc.TLS, s uintptr) {
  22569. _tr_static_init(tls)
  22570. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fdyn_tree = s + 188
  22571. (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_l_desc))
  22572. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fdyn_tree = s + 2480
  22573. (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_d_desc))
  22574. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fdyn_tree = s + 2724
  22575. (*Tdeflate_state)(unsafe.Pointer(s)).Fbl_desc.Fstat_desc = uintptr(unsafe.Pointer(&_static_bl_desc))
  22576. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(0)
  22577. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid = 0
  22578. /* Initialize the first block of the first file: */
  22579. _init_block(tls, s)
  22580. }
  22581. /* Index within the heap array of least frequent node in the Huffman tree */
  22582. /* ===========================================================================
  22583. * Remove the smallest element from the heap and recreate the heap with
  22584. * one less element. Updates heap and heap_len.
  22585. */
  22586. /* ===========================================================================
  22587. * Compares to subtrees, using the tree depth as tie breaker when
  22588. * the subtrees have equal frequency. This minimizes the worst case length.
  22589. */
  22590. // C documentation
  22591. //
  22592. // /* ===========================================================================
  22593. // * Restore the heap property by moving down the tree starting at node k,
  22594. // * exchanging a node with the smallest of its two sons if necessary, stopping
  22595. // * when the heap property is re-established (each father smaller than its
  22596. // * two sons).
  22597. // */
  22598. func _pqdownheap(tls *libc.TLS, s uintptr, tree uintptr, k int32) {
  22599. var j, v int32
  22600. _, _ = j, v
  22601. v = *(*int32)(unsafe.Pointer(s + 2984 + uintptr(k)*4))
  22602. j = k << int32(1) /* left son of k */
  22603. for j <= (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len {
  22604. /* Set j to the smallest of the two sons: */
  22605. if j < (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len && (int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j+int32(1))*4)))*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j+int32(1))*4)))*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j+int32(1))*4)))))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j)*4))))))) {
  22606. j++
  22607. }
  22608. /* Exit if v is smaller than both sons */
  22609. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) < int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j)*4)))*4))) || int32(*(*Tush)(unsafe.Pointer(tree + uintptr(v)*4))) == int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j)*4)))*4))) && int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(v)))) <= int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr(j)*4)))))) {
  22610. break
  22611. }
  22612. /* Exchange v with the smallest son */
  22613. *(*int32)(unsafe.Pointer(s + 2984 + uintptr(k)*4)) = *(*int32)(unsafe.Pointer(s + 2984 + uintptr(j)*4))
  22614. k = j
  22615. /* And continue down the tree, setting j to the left son of k */
  22616. j <<= int32(1)
  22617. }
  22618. *(*int32)(unsafe.Pointer(s + 2984 + uintptr(k)*4)) = v
  22619. }
  22620. // C documentation
  22621. //
  22622. // /* ===========================================================================
  22623. // * Compute the optimal bit lengths for a tree and update the total bit length
  22624. // * for the current block.
  22625. // * IN assertion: the fields freq and dad are set, heap[heap_max] and
  22626. // * above are the tree nodes sorted by increasing frequency.
  22627. // * OUT assertions: the field len is set to the optimal bit length, the
  22628. // * array bl_count contains the frequencies for each bit length.
  22629. // * The length opt_len is updated; static_len is also updated if stree is
  22630. // * not null.
  22631. // */
  22632. func _gen_bitlen(tls *libc.TLS, s uintptr, desc uintptr) {
  22633. var base, bits, h, m, max_code, max_length, n, overflow, xbits, v5 int32
  22634. var extra, stree, tree, p3 uintptr
  22635. var f Tush
  22636. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = base, bits, extra, f, h, m, max_code, max_length, n, overflow, stree, tree, xbits, v5, p3
  22637. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  22638. max_code = (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code
  22639. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  22640. extra = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_bits
  22641. base = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fextra_base
  22642. max_length = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fmax_length /* frequency */
  22643. overflow = 0 /* number of elements with bit length too large */
  22644. bits = 0
  22645. for {
  22646. if !(bits <= int32(m_MAX_BITS)) {
  22647. break
  22648. }
  22649. *(*Tush)(unsafe.Pointer(s + 2952 + uintptr(bits)*2)) = uint16(0)
  22650. goto _1
  22651. _1:
  22652. ;
  22653. bits++
  22654. }
  22655. /* In a first pass, compute the optimal bit lengths (which may
  22656. * overflow in the case of the bit length tree).
  22657. */
  22658. *(*Tush)(unsafe.Pointer(tree + uintptr(*(*int32)(unsafe.Pointer(s + 2984 + uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max)*4)))*4 + 2)) = uint16(0) /* root of the heap */
  22659. h = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max + int32(1)
  22660. for {
  22661. if !(h < libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES))+libc.Int32FromInt32(1)) {
  22662. break
  22663. }
  22664. n = *(*int32)(unsafe.Pointer(s + 2984 + uintptr(h)*4))
  22665. bits = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)))*4 + 2))) + int32(1)
  22666. if bits > max_length {
  22667. bits = max_length
  22668. overflow++
  22669. }
  22670. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(bits)
  22671. /* We overwrite tree[n].Dad which is no longer needed */
  22672. if n > max_code {
  22673. goto _2
  22674. } /* not a leaf node */
  22675. *(*Tush)(unsafe.Pointer(s + 2952 + uintptr(bits)*2))++
  22676. xbits = 0
  22677. if n >= base {
  22678. xbits = *(*Tintf)(unsafe.Pointer(extra + uintptr(n-base)*4))
  22679. }
  22680. f = *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))
  22681. *(*Tulg)(unsafe.Pointer(s + 5884)) += uint32(f) * uint32(bits+xbits)
  22682. if stree != 0 {
  22683. *(*Tulg)(unsafe.Pointer(s + 5888)) += uint32(f) * uint32(int32(*(*Tush)(unsafe.Pointer(stree + uintptr(n)*4 + 2)))+xbits)
  22684. }
  22685. goto _2
  22686. _2:
  22687. ;
  22688. h++
  22689. }
  22690. if overflow == 0 {
  22691. return
  22692. }
  22693. /* This happens for example on obj2 and pic of the Calgary corpus */
  22694. /* Find the first bit length which could increase: */
  22695. for cond := true; cond; cond = overflow > 0 {
  22696. bits = max_length - int32(1)
  22697. for int32(*(*Tush)(unsafe.Pointer(s + 2952 + uintptr(bits)*2))) == 0 {
  22698. bits--
  22699. }
  22700. *(*Tush)(unsafe.Pointer(s + 2952 + uintptr(bits)*2))-- /* move one leaf down the tree */
  22701. p3 = s + 2952 + uintptr(bits+int32(1))*2
  22702. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + libc.Int32FromInt32(2)) /* move one overflow item as its brother */
  22703. *(*Tush)(unsafe.Pointer(s + 2952 + uintptr(max_length)*2))--
  22704. /* The brother of the overflow item also moves one step up,
  22705. * but this does not affect bl_count[max_length]
  22706. */
  22707. overflow -= int32(2)
  22708. }
  22709. /* Now recompute all bit lengths, scanning in increasing frequency.
  22710. * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
  22711. * lengths instead of fixing only the wrong ones. This idea is taken
  22712. * from 'ar' written by Haruhiko Okumura.)
  22713. */
  22714. bits = max_length
  22715. for {
  22716. if !(bits != 0) {
  22717. break
  22718. }
  22719. n = int32(*(*Tush)(unsafe.Pointer(s + 2952 + uintptr(bits)*2)))
  22720. for n != 0 {
  22721. h--
  22722. v5 = h
  22723. m = *(*int32)(unsafe.Pointer(s + 2984 + uintptr(v5)*4))
  22724. if m > max_code {
  22725. continue
  22726. }
  22727. if uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2))) != uint32(bits) {
  22728. *(*Tulg)(unsafe.Pointer(s + 5884)) += (uint32(bits) - uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)))) * uint32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4)))
  22729. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = uint16(bits)
  22730. }
  22731. n--
  22732. }
  22733. goto _4
  22734. _4:
  22735. ;
  22736. bits--
  22737. }
  22738. }
  22739. // C documentation
  22740. //
  22741. // /* ===========================================================================
  22742. // * Construct one Huffman tree and assigns the code bit strings and lengths.
  22743. // * Update the total bit length for the current block.
  22744. // * IN assertion: the field freq is set for all tree elements.
  22745. // * OUT assertions: the fields len and code are set to the optimal bit length
  22746. // * and corresponding code. The length opt_len is updated; static_len is
  22747. // * also updated if stree is not null. The field max_code is set.
  22748. // */
  22749. func _build_tree(tls *libc.TLS, s uintptr, desc uintptr) {
  22750. var elems, m, max_code, n, node, v11, v13, v15, v17, v19, v2, v20, v4, v5, v6, v7, v8 int32
  22751. var stree, tree, v12, v14, v16, v21, v3, v9 uintptr
  22752. var v18 Tush
  22753. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = elems, m, max_code, n, node, stree, tree, v11, v12, v13, v14, v15, v16, v17, v18, v19, v2, v20, v21, v3, v4, v5, v6, v7, v8, v9
  22754. tree = (*Ttree_desc)(unsafe.Pointer(desc)).Fdyn_tree
  22755. stree = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Fstatic_tree
  22756. elems = (*Tstatic_tree_desc)(unsafe.Pointer((*Ttree_desc)(unsafe.Pointer(desc)).Fstat_desc)).Felems /* iterate over heap elements */
  22757. max_code = -int32(1) /* new node being created */
  22758. /* Construct the initial heap, with least frequent element in
  22759. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  22760. * heap[0] is not used.
  22761. */
  22762. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len = 0 /* new node being created */
  22763. /* Construct the initial heap, with least frequent element in
  22764. * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n + 1].
  22765. * heap[0] is not used.
  22766. */
  22767. (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_max = libc.Int32FromInt32(2)*(libc.Int32FromInt32(m_LITERALS)+libc.Int32FromInt32(1)+libc.Int32FromInt32(m_LENGTH_CODES)) + libc.Int32FromInt32(1)
  22768. n = 0
  22769. for {
  22770. if !(n < elems) {
  22771. break
  22772. }
  22773. if int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) != 0 {
  22774. v3 = s + 5276
  22775. *(*int32)(unsafe.Pointer(v3))++
  22776. v2 = *(*int32)(unsafe.Pointer(v3))
  22777. v4 = n
  22778. max_code = v4
  22779. *(*int32)(unsafe.Pointer(s + 2984 + uintptr(v2)*4)) = v4
  22780. *(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(n))) = uint8(0)
  22781. } else {
  22782. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = uint16(0)
  22783. }
  22784. goto _1
  22785. _1:
  22786. ;
  22787. n++
  22788. }
  22789. /* The pkzip format requires that at least one distance code exists,
  22790. * and that at least one bit should be sent even if there is only one
  22791. * possible code. So to avoid special checks later on we force at least
  22792. * two codes of non zero frequency.
  22793. */
  22794. for (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len < int32(2) {
  22795. if max_code < int32(2) {
  22796. max_code++
  22797. v7 = max_code
  22798. v6 = v7
  22799. } else {
  22800. v6 = 0
  22801. }
  22802. v5 = v6
  22803. v9 = s + 5276
  22804. *(*int32)(unsafe.Pointer(v9))++
  22805. v8 = *(*int32)(unsafe.Pointer(v9))
  22806. *(*int32)(unsafe.Pointer(s + 2984 + uintptr(v8)*4)) = v5
  22807. node = v5
  22808. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(1)
  22809. *(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(node))) = uint8(0)
  22810. (*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len--
  22811. if stree != 0 {
  22812. *(*Tulg)(unsafe.Pointer(s + 5888)) -= uint32(*(*Tush)(unsafe.Pointer(stree + uintptr(node)*4 + 2)))
  22813. }
  22814. /* node is 0 or 1 so it does not have extra bits */
  22815. }
  22816. (*Ttree_desc)(unsafe.Pointer(desc)).Fmax_code = max_code
  22817. /* The elements heap[heap_len/2 + 1 .. heap_len] are leaves of the tree,
  22818. * establish sub-heaps of increasing lengths:
  22819. */
  22820. n = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len / int32(2)
  22821. for {
  22822. if !(n >= int32(1)) {
  22823. break
  22824. }
  22825. _pqdownheap(tls, s, tree, n)
  22826. goto _10
  22827. _10:
  22828. ;
  22829. n--
  22830. }
  22831. /* Construct the Huffman tree by repeatedly combining the least two
  22832. * frequent nodes.
  22833. */
  22834. node = elems /* next internal node of the tree */
  22835. for cond := true; cond; cond = (*Tdeflate_state)(unsafe.Pointer(s)).Fheap_len >= int32(2) {
  22836. n = *(*int32)(unsafe.Pointer(s + 2984 + 1*4))
  22837. v12 = s + 5276
  22838. v11 = *(*int32)(unsafe.Pointer(v12))
  22839. *(*int32)(unsafe.Pointer(v12))--
  22840. *(*int32)(unsafe.Pointer(s + 2984 + 1*4)) = *(*int32)(unsafe.Pointer(s + 2984 + uintptr(v11)*4))
  22841. _pqdownheap(tls, s, tree, int32(m_SMALLEST)) /* n = node of least frequency */
  22842. m = *(*int32)(unsafe.Pointer(s + 2984 + 1*4)) /* m = node of next least frequency */
  22843. v14 = s + 5280
  22844. *(*int32)(unsafe.Pointer(v14))--
  22845. v13 = *(*int32)(unsafe.Pointer(v14))
  22846. *(*int32)(unsafe.Pointer(s + 2984 + uintptr(v13)*4)) = n /* keep the nodes sorted by frequency */
  22847. v16 = s + 5280
  22848. *(*int32)(unsafe.Pointer(v16))--
  22849. v15 = *(*int32)(unsafe.Pointer(v16))
  22850. *(*int32)(unsafe.Pointer(s + 2984 + uintptr(v15)*4)) = m
  22851. /* Create a new node father of n and m */
  22852. *(*Tush)(unsafe.Pointer(tree + uintptr(node)*4)) = uint16(int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n)*4))) + int32(*(*Tush)(unsafe.Pointer(tree + uintptr(m)*4))))
  22853. if int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(n)))) >= int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(m)))) {
  22854. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(n))))
  22855. } else {
  22856. v17 = int32(*(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(m))))
  22857. }
  22858. *(*Tuch)(unsafe.Pointer(s + 5284 + uintptr(node))) = uint8(v17 + libc.Int32FromInt32(1))
  22859. v18 = uint16(node)
  22860. *(*Tush)(unsafe.Pointer(tree + uintptr(m)*4 + 2)) = v18
  22861. *(*Tush)(unsafe.Pointer(tree + uintptr(n)*4 + 2)) = v18
  22862. /* and insert the new node in the heap */
  22863. v19 = node
  22864. node++
  22865. *(*int32)(unsafe.Pointer(s + 2984 + 1*4)) = v19
  22866. _pqdownheap(tls, s, tree, int32(m_SMALLEST))
  22867. }
  22868. v21 = s + 5280
  22869. *(*int32)(unsafe.Pointer(v21))--
  22870. v20 = *(*int32)(unsafe.Pointer(v21))
  22871. *(*int32)(unsafe.Pointer(s + 2984 + uintptr(v20)*4)) = *(*int32)(unsafe.Pointer(s + 2984 + 1*4))
  22872. /* At this point, the fields freq and dad are set. We can now
  22873. * generate the bit lengths.
  22874. */
  22875. _gen_bitlen(tls, s, desc)
  22876. /* The field len is now set, we can generate the bit codes */
  22877. _gen_codes(tls, tree, max_code, s+2952)
  22878. }
  22879. // C documentation
  22880. //
  22881. // /* ===========================================================================
  22882. // * Scan a literal or distance tree to determine the frequencies of the codes
  22883. // * in the bit length tree.
  22884. // */
  22885. func _scan_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  22886. var count, curlen, max_count, min_count, n, nextlen, prevlen, v2 int32
  22887. var p3 uintptr
  22888. _, _, _, _, _, _, _, _, _ = count, curlen, max_count, min_count, n, nextlen, prevlen, v2, p3 /* iterates over all tree elements */
  22889. prevlen = -int32(1) /* length of current code */
  22890. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  22891. count = 0 /* repeat count of the current code */
  22892. max_count = int32(7) /* max repeat count */
  22893. min_count = int32(4) /* min repeat count */
  22894. if nextlen == 0 {
  22895. max_count = int32(138)
  22896. min_count = libc.Int32FromInt32(3)
  22897. }
  22898. *(*Tush)(unsafe.Pointer(tree + uintptr(max_code+int32(1))*4 + 2)) = libc.Uint16FromInt32(0xffff) /* guard */
  22899. n = 0
  22900. for {
  22901. if !(n <= max_code) {
  22902. break
  22903. }
  22904. curlen = nextlen
  22905. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  22906. count++
  22907. v2 = count
  22908. if v2 < max_count && curlen == nextlen {
  22909. goto _1
  22910. } else {
  22911. if count < min_count {
  22912. p3 = s + 2724 + uintptr(curlen)*4
  22913. *(*Tush)(unsafe.Pointer(p3)) = Tush(int32(*(*Tush)(unsafe.Pointer(p3))) + count)
  22914. } else {
  22915. if curlen != 0 {
  22916. if curlen != prevlen {
  22917. *(*Tush)(unsafe.Pointer(s + 2724 + uintptr(curlen)*4))++
  22918. }
  22919. *(*Tush)(unsafe.Pointer(s + 2724 + 16*4))++
  22920. } else {
  22921. if count <= int32(10) {
  22922. *(*Tush)(unsafe.Pointer(s + 2724 + 17*4))++
  22923. } else {
  22924. *(*Tush)(unsafe.Pointer(s + 2724 + 18*4))++
  22925. }
  22926. }
  22927. }
  22928. }
  22929. count = 0
  22930. prevlen = curlen
  22931. if nextlen == 0 {
  22932. max_count = int32(138)
  22933. min_count = libc.Int32FromInt32(3)
  22934. } else {
  22935. if curlen == nextlen {
  22936. max_count = int32(6)
  22937. min_count = libc.Int32FromInt32(3)
  22938. } else {
  22939. max_count = int32(7)
  22940. min_count = libc.Int32FromInt32(4)
  22941. }
  22942. }
  22943. goto _1
  22944. _1:
  22945. ;
  22946. n++
  22947. }
  22948. }
  22949. // C documentation
  22950. //
  22951. // /* ===========================================================================
  22952. // * Send a literal or distance tree in compressed form, using the codes in
  22953. // * bl_tree.
  22954. // */
  22955. func _send_tree(tls *libc.TLS, s uintptr, tree uintptr, max_code int32) {
  22956. var count, curlen, len1, len11, len2, len3, len4, len5, len6, len7, max_count, min_count, n, nextlen, prevlen, val, val1, val2, val3, val4, val5, val6, val7, v2, v3 int32
  22957. var v12, v14, v18, v20, v24, v26, v30, v32, v36, v38, v42, v44, v48, v50, v6, v8 Tulg
  22958. var v13, v15, v19, v21, v25, v27, v31, v33, v37, v39, v43, v45, v49, v51, v7, v9, p10, p11, p16, p17, p22, p23, p28, p29, p34, p35, p40, p41, p46, p47, p5, p52 uintptr
  22959. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = count, curlen, len1, len11, len2, len3, len4, len5, len6, len7, max_count, min_count, n, nextlen, prevlen, val, val1, val2, val3, val4, val5, val6, val7, v12, v13, v14, v15, v18, v19, v2, v20, v21, v24, v25, v26, v27, v3, v30, v31, v32, v33, v36, v37, v38, v39, v42, v43, v44, v45, v48, v49, v50, v51, v6, v7, v8, v9, p10, p11, p16, p17, p22, p23, p28, p29, p34, p35, p40, p41, p46, p47, p5, p52 /* iterates over all tree elements */
  22960. prevlen = -int32(1) /* length of current code */
  22961. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + 2))) /* length of next code */
  22962. count = 0 /* repeat count of the current code */
  22963. max_count = int32(7) /* max repeat count */
  22964. min_count = int32(4) /* min repeat count */
  22965. /* tree[max_code + 1].Len = -1; */ /* guard already set */
  22966. if nextlen == 0 {
  22967. max_count = int32(138)
  22968. min_count = libc.Int32FromInt32(3)
  22969. }
  22970. n = 0
  22971. for {
  22972. if !(n <= max_code) {
  22973. break
  22974. }
  22975. curlen = nextlen
  22976. nextlen = int32(*(*Tush)(unsafe.Pointer(tree + uintptr(n+int32(1))*4 + 2)))
  22977. count++
  22978. v2 = count
  22979. if v2 < max_count && curlen == nextlen {
  22980. goto _1
  22981. } else {
  22982. if count < min_count {
  22983. for {
  22984. len1 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(curlen)*4 + 2)))
  22985. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  22986. val = int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(curlen)*4)))
  22987. p5 = s + 5900
  22988. *(*Tush)(unsafe.Pointer(p5)) = Tush(int32(*(*Tush)(unsafe.Pointer(p5))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  22989. v7 = s + 40
  22990. v6 = *(*Tulg)(unsafe.Pointer(v7))
  22991. *(*Tulg)(unsafe.Pointer(v7))++
  22992. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v6))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  22993. v9 = s + 40
  22994. v8 = *(*Tulg)(unsafe.Pointer(v9))
  22995. *(*Tulg)(unsafe.Pointer(v9))++
  22996. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  22997. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  22998. *(*int32)(unsafe.Pointer(s + 5904)) += len1 - int32(m_Buf_size)
  22999. } else {
  23000. p10 = s + 5900
  23001. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23002. *(*int32)(unsafe.Pointer(s + 5904)) += len1
  23003. }
  23004. goto _4
  23005. _4:
  23006. ;
  23007. count--
  23008. v3 = count
  23009. if !(v3 != 0) {
  23010. break
  23011. }
  23012. }
  23013. } else {
  23014. if curlen != 0 {
  23015. if curlen != prevlen {
  23016. len11 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(curlen)*4 + 2)))
  23017. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  23018. val1 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(curlen)*4)))
  23019. p11 = s + 5900
  23020. *(*Tush)(unsafe.Pointer(p11)) = Tush(int32(*(*Tush)(unsafe.Pointer(p11))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23021. v13 = s + 40
  23022. v12 = *(*Tulg)(unsafe.Pointer(v13))
  23023. *(*Tulg)(unsafe.Pointer(v13))++
  23024. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v12))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23025. v15 = s + 40
  23026. v14 = *(*Tulg)(unsafe.Pointer(v15))
  23027. *(*Tulg)(unsafe.Pointer(v15))++
  23028. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23029. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23030. *(*int32)(unsafe.Pointer(s + 5904)) += len11 - int32(m_Buf_size)
  23031. } else {
  23032. p16 = s + 5900
  23033. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(curlen)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23034. *(*int32)(unsafe.Pointer(s + 5904)) += len11
  23035. }
  23036. count--
  23037. }
  23038. len2 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + 16*4 + 2)))
  23039. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  23040. val2 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + 16*4)))
  23041. p17 = s + 5900
  23042. *(*Tush)(unsafe.Pointer(p17)) = Tush(int32(*(*Tush)(unsafe.Pointer(p17))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23043. v19 = s + 40
  23044. v18 = *(*Tulg)(unsafe.Pointer(v19))
  23045. *(*Tulg)(unsafe.Pointer(v19))++
  23046. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v18))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23047. v21 = s + 40
  23048. v20 = *(*Tulg)(unsafe.Pointer(v21))
  23049. *(*Tulg)(unsafe.Pointer(v21))++
  23050. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v20))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23051. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23052. *(*int32)(unsafe.Pointer(s + 5904)) += len2 - int32(m_Buf_size)
  23053. } else {
  23054. p22 = s + 5900
  23055. *(*Tush)(unsafe.Pointer(p22)) = Tush(int32(*(*Tush)(unsafe.Pointer(p22))) | int32(*(*Tush)(unsafe.Pointer(s + 2724 + 16*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23056. *(*int32)(unsafe.Pointer(s + 5904)) += len2
  23057. }
  23058. len3 = int32(2)
  23059. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  23060. val3 = count - int32(3)
  23061. p23 = s + 5900
  23062. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23063. v25 = s + 40
  23064. v24 = *(*Tulg)(unsafe.Pointer(v25))
  23065. *(*Tulg)(unsafe.Pointer(v25))++
  23066. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23067. v27 = s + 40
  23068. v26 = *(*Tulg)(unsafe.Pointer(v27))
  23069. *(*Tulg)(unsafe.Pointer(v27))++
  23070. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23071. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23072. *(*int32)(unsafe.Pointer(s + 5904)) += len3 - int32(m_Buf_size)
  23073. } else {
  23074. p28 = s + 5900
  23075. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23076. *(*int32)(unsafe.Pointer(s + 5904)) += len3
  23077. }
  23078. } else {
  23079. if count <= int32(10) {
  23080. len4 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + 17*4 + 2)))
  23081. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  23082. val4 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + 17*4)))
  23083. p29 = s + 5900
  23084. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23085. v31 = s + 40
  23086. v30 = *(*Tulg)(unsafe.Pointer(v31))
  23087. *(*Tulg)(unsafe.Pointer(v31))++
  23088. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23089. v33 = s + 40
  23090. v32 = *(*Tulg)(unsafe.Pointer(v33))
  23091. *(*Tulg)(unsafe.Pointer(v33))++
  23092. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23093. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23094. *(*int32)(unsafe.Pointer(s + 5904)) += len4 - int32(m_Buf_size)
  23095. } else {
  23096. p34 = s + 5900
  23097. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(*(*Tush)(unsafe.Pointer(s + 2724 + 17*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23098. *(*int32)(unsafe.Pointer(s + 5904)) += len4
  23099. }
  23100. len5 = int32(3)
  23101. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  23102. val5 = count - int32(3)
  23103. p35 = s + 5900
  23104. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23105. v37 = s + 40
  23106. v36 = *(*Tulg)(unsafe.Pointer(v37))
  23107. *(*Tulg)(unsafe.Pointer(v37))++
  23108. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23109. v39 = s + 40
  23110. v38 = *(*Tulg)(unsafe.Pointer(v39))
  23111. *(*Tulg)(unsafe.Pointer(v39))++
  23112. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23113. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23114. *(*int32)(unsafe.Pointer(s + 5904)) += len5 - int32(m_Buf_size)
  23115. } else {
  23116. p40 = s + 5900
  23117. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(uint16(count-libc.Int32FromInt32(3)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23118. *(*int32)(unsafe.Pointer(s + 5904)) += len5
  23119. }
  23120. } else {
  23121. len6 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + 18*4 + 2)))
  23122. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len6 {
  23123. val6 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + 18*4)))
  23124. p41 = s + 5900
  23125. *(*Tush)(unsafe.Pointer(p41)) = Tush(int32(*(*Tush)(unsafe.Pointer(p41))) | int32(uint16(val6))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23126. v43 = s + 40
  23127. v42 = *(*Tulg)(unsafe.Pointer(v43))
  23128. *(*Tulg)(unsafe.Pointer(v43))++
  23129. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v42))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23130. v45 = s + 40
  23131. v44 = *(*Tulg)(unsafe.Pointer(v45))
  23132. *(*Tulg)(unsafe.Pointer(v45))++
  23133. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v44))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23134. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val6)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23135. *(*int32)(unsafe.Pointer(s + 5904)) += len6 - int32(m_Buf_size)
  23136. } else {
  23137. p46 = s + 5900
  23138. *(*Tush)(unsafe.Pointer(p46)) = Tush(int32(*(*Tush)(unsafe.Pointer(p46))) | int32(*(*Tush)(unsafe.Pointer(s + 2724 + 18*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23139. *(*int32)(unsafe.Pointer(s + 5904)) += len6
  23140. }
  23141. len7 = int32(7)
  23142. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len7 {
  23143. val7 = count - int32(11)
  23144. p47 = s + 5900
  23145. *(*Tush)(unsafe.Pointer(p47)) = Tush(int32(*(*Tush)(unsafe.Pointer(p47))) | int32(uint16(val7))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23146. v49 = s + 40
  23147. v48 = *(*Tulg)(unsafe.Pointer(v49))
  23148. *(*Tulg)(unsafe.Pointer(v49))++
  23149. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v48))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23150. v51 = s + 40
  23151. v50 = *(*Tulg)(unsafe.Pointer(v51))
  23152. *(*Tulg)(unsafe.Pointer(v51))++
  23153. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v50))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23154. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val7)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23155. *(*int32)(unsafe.Pointer(s + 5904)) += len7 - int32(m_Buf_size)
  23156. } else {
  23157. p52 = s + 5900
  23158. *(*Tush)(unsafe.Pointer(p52)) = Tush(int32(*(*Tush)(unsafe.Pointer(p52))) | int32(uint16(count-libc.Int32FromInt32(11)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23159. *(*int32)(unsafe.Pointer(s + 5904)) += len7
  23160. }
  23161. }
  23162. }
  23163. }
  23164. }
  23165. count = 0
  23166. prevlen = curlen
  23167. if nextlen == 0 {
  23168. max_count = int32(138)
  23169. min_count = libc.Int32FromInt32(3)
  23170. } else {
  23171. if curlen == nextlen {
  23172. max_count = int32(6)
  23173. min_count = libc.Int32FromInt32(3)
  23174. } else {
  23175. max_count = int32(7)
  23176. min_count = libc.Int32FromInt32(4)
  23177. }
  23178. }
  23179. goto _1
  23180. _1:
  23181. ;
  23182. n++
  23183. }
  23184. }
  23185. // C documentation
  23186. //
  23187. // /* ===========================================================================
  23188. // * Construct the Huffman tree for the bit lengths and return the index in
  23189. // * bl_order of the last bit length code to send.
  23190. // */
  23191. func _build_bl_tree(tls *libc.TLS, s uintptr) (r int32) {
  23192. var max_blindex int32
  23193. _ = max_blindex /* index of last bit length code of non zero freq */
  23194. /* Determine the bit length frequencies for literal and distance trees */
  23195. _scan_tree(tls, s, s+188, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code)
  23196. _scan_tree(tls, s, s+2480, (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code)
  23197. /* Build the bit length tree: */
  23198. _build_tree(tls, s, s+2928)
  23199. /* opt_len now includes the length of the tree representations, except the
  23200. * lengths of the bit lengths codes and the 5 + 5 + 4 bits for the counts.
  23201. */
  23202. /* Determine the number of bit length codes to send. The pkzip format
  23203. * requires that at least 4 bit length codes be sent. (appnote.txt says
  23204. * 3 but the actual value used is 4.)
  23205. */
  23206. max_blindex = libc.Int32FromInt32(m_BL_CODES) - libc.Int32FromInt32(1)
  23207. for {
  23208. if !(max_blindex >= int32(3)) {
  23209. break
  23210. }
  23211. if int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(_bl_order[max_blindex])*4 + 2))) != 0 {
  23212. break
  23213. }
  23214. goto _1
  23215. _1:
  23216. ;
  23217. max_blindex--
  23218. }
  23219. /* Update opt_len to include the bit length tree and counts */
  23220. *(*Tulg)(unsafe.Pointer(s + 5884)) += uint32(3)*(uint32(max_blindex)+uint32(1)) + uint32(5) + uint32(5) + uint32(4)
  23221. return max_blindex
  23222. }
  23223. // C documentation
  23224. //
  23225. // /* ===========================================================================
  23226. // * Send the header for a block using dynamic Huffman trees: the counts, the
  23227. // * lengths of the bit length codes, the literal tree and the distance tree.
  23228. // * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
  23229. // */
  23230. func _send_all_trees(tls *libc.TLS, s uintptr, lcodes int32, dcodes int32, blcodes int32) {
  23231. var len1, len11, len2, len3, rank, val, val1, val2, val3 int32
  23232. var v10, v14, v16, v2, v21, v23, v4, v8 Tulg
  23233. var v11, v15, v17, v22, v24, v3, v5, v9, p1, p12, p13, p18, p20, p25, p6, p7 uintptr
  23234. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, len2, len3, rank, val, val1, val2, val3, v10, v11, v14, v15, v16, v17, v2, v21, v22, v23, v24, v3, v4, v5, v8, v9, p1, p12, p13, p18, p20, p25, p6, p7 /* index in bl_order */
  23235. len1 = int32(5)
  23236. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  23237. val = lcodes - int32(257)
  23238. p1 = s + 5900
  23239. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23240. v3 = s + 40
  23241. v2 = *(*Tulg)(unsafe.Pointer(v3))
  23242. *(*Tulg)(unsafe.Pointer(v3))++
  23243. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23244. v5 = s + 40
  23245. v4 = *(*Tulg)(unsafe.Pointer(v5))
  23246. *(*Tulg)(unsafe.Pointer(v5))++
  23247. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23248. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23249. *(*int32)(unsafe.Pointer(s + 5904)) += len1 - int32(m_Buf_size)
  23250. } else {
  23251. p6 = s + 5900
  23252. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(lcodes-libc.Int32FromInt32(257)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23253. *(*int32)(unsafe.Pointer(s + 5904)) += len1
  23254. } /* not +255 as stated in appnote.txt */
  23255. len11 = int32(5)
  23256. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  23257. val1 = dcodes - int32(1)
  23258. p7 = s + 5900
  23259. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23260. v9 = s + 40
  23261. v8 = *(*Tulg)(unsafe.Pointer(v9))
  23262. *(*Tulg)(unsafe.Pointer(v9))++
  23263. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23264. v11 = s + 40
  23265. v10 = *(*Tulg)(unsafe.Pointer(v11))
  23266. *(*Tulg)(unsafe.Pointer(v11))++
  23267. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23268. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23269. *(*int32)(unsafe.Pointer(s + 5904)) += len11 - int32(m_Buf_size)
  23270. } else {
  23271. p12 = s + 5900
  23272. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(uint16(dcodes-libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23273. *(*int32)(unsafe.Pointer(s + 5904)) += len11
  23274. }
  23275. len2 = int32(4)
  23276. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  23277. val2 = blcodes - int32(4)
  23278. p13 = s + 5900
  23279. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23280. v15 = s + 40
  23281. v14 = *(*Tulg)(unsafe.Pointer(v15))
  23282. *(*Tulg)(unsafe.Pointer(v15))++
  23283. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v14))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23284. v17 = s + 40
  23285. v16 = *(*Tulg)(unsafe.Pointer(v17))
  23286. *(*Tulg)(unsafe.Pointer(v17))++
  23287. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v16))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23288. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23289. *(*int32)(unsafe.Pointer(s + 5904)) += len2 - int32(m_Buf_size)
  23290. } else {
  23291. p18 = s + 5900
  23292. *(*Tush)(unsafe.Pointer(p18)) = Tush(int32(*(*Tush)(unsafe.Pointer(p18))) | int32(uint16(blcodes-libc.Int32FromInt32(4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23293. *(*int32)(unsafe.Pointer(s + 5904)) += len2
  23294. } /* not -3 as stated in appnote.txt */
  23295. rank = 0
  23296. for {
  23297. if !(rank < blcodes) {
  23298. break
  23299. }
  23300. len3 = int32(3)
  23301. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  23302. val3 = int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(_bl_order[rank])*4 + 2)))
  23303. p20 = s + 5900
  23304. *(*Tush)(unsafe.Pointer(p20)) = Tush(int32(*(*Tush)(unsafe.Pointer(p20))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23305. v22 = s + 40
  23306. v21 = *(*Tulg)(unsafe.Pointer(v22))
  23307. *(*Tulg)(unsafe.Pointer(v22))++
  23308. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v21))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23309. v24 = s + 40
  23310. v23 = *(*Tulg)(unsafe.Pointer(v24))
  23311. *(*Tulg)(unsafe.Pointer(v24))++
  23312. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v23))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23313. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23314. *(*int32)(unsafe.Pointer(s + 5904)) += len3 - int32(m_Buf_size)
  23315. } else {
  23316. p25 = s + 5900
  23317. *(*Tush)(unsafe.Pointer(p25)) = Tush(int32(*(*Tush)(unsafe.Pointer(p25))) | int32(*(*Tush)(unsafe.Pointer(s + 2724 + uintptr(_bl_order[rank])*4 + 2)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23318. *(*int32)(unsafe.Pointer(s + 5904)) += len3
  23319. }
  23320. goto _19
  23321. _19:
  23322. ;
  23323. rank++
  23324. }
  23325. _send_tree(tls, s, s+188, lcodes-int32(1)) /* literal tree */
  23326. _send_tree(tls, s, s+2480, dcodes-int32(1)) /* distance tree */
  23327. }
  23328. // C documentation
  23329. //
  23330. // /* ===========================================================================
  23331. // * Send a stored block
  23332. // */
  23333. func x__tr_stored_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  23334. var len1, val int32
  23335. var v10, v12, v14, v3, v5, v8, p1, p6 uintptr
  23336. var v11, v13, v2, v4, v7, v9 Tulg
  23337. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, val, v10, v11, v12, v13, v14, v2, v3, v4, v5, v7, v8, v9, p1, p6
  23338. len1 = int32(3)
  23339. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  23340. val = libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1) + last
  23341. p1 = s + 5900
  23342. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23343. v3 = s + 40
  23344. v2 = *(*Tulg)(unsafe.Pointer(v3))
  23345. *(*Tulg)(unsafe.Pointer(v3))++
  23346. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23347. v5 = s + 40
  23348. v4 = *(*Tulg)(unsafe.Pointer(v5))
  23349. *(*Tulg)(unsafe.Pointer(v5))++
  23350. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23351. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23352. *(*int32)(unsafe.Pointer(s + 5904)) += len1 - int32(m_Buf_size)
  23353. } else {
  23354. p6 = s + 5900
  23355. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STORED_BLOCK)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23356. *(*int32)(unsafe.Pointer(s + 5904)) += len1
  23357. } /* send block type */
  23358. _bi_windup(tls, s) /* align on byte boundary */
  23359. v8 = s + 40
  23360. v7 = *(*Tulg)(unsafe.Pointer(v8))
  23361. *(*Tulg)(unsafe.Pointer(v8))++
  23362. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32(uint16(stored_len)) & libc.Int32FromInt32(0xff))
  23363. v10 = s + 40
  23364. v9 = *(*Tulg)(unsafe.Pointer(v10))
  23365. *(*Tulg)(unsafe.Pointer(v10))++
  23366. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32(uint16(stored_len)) >> libc.Int32FromInt32(8))
  23367. v12 = s + 40
  23368. v11 = *(*Tulg)(unsafe.Pointer(v12))
  23369. *(*Tulg)(unsafe.Pointer(v12))++
  23370. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32(uint16(^stored_len)) & libc.Int32FromInt32(0xff))
  23371. v14 = s + 40
  23372. v13 = *(*Tulg)(unsafe.Pointer(v14))
  23373. *(*Tulg)(unsafe.Pointer(v14))++
  23374. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32(uint16(^stored_len)) >> libc.Int32FromInt32(8))
  23375. if stored_len != 0 {
  23376. libc.Xmemcpy(tls, (*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf+uintptr((*Tdeflate_state)(unsafe.Pointer(s)).Fpending), buf, uint64(stored_len))
  23377. }
  23378. *(*Tulg)(unsafe.Pointer(s + 40)) += stored_len
  23379. }
  23380. // C documentation
  23381. //
  23382. // /* ===========================================================================
  23383. // * Flush the bits in the bit buffer to pending output (leaves at most 7 bits)
  23384. // */
  23385. func x__tr_flush_bits(tls *libc.TLS, s uintptr) {
  23386. _bi_flush(tls, s)
  23387. }
  23388. // C documentation
  23389. //
  23390. // /* ===========================================================================
  23391. // * Send one empty static block to give enough lookahead for inflate.
  23392. // * This takes 10 bits, of which 7 may remain in the bit buffer.
  23393. // */
  23394. func x__tr_align(tls *libc.TLS, s uintptr) {
  23395. var len1, len11, val, val1 int32
  23396. var v10, v2, v4, v8 Tulg
  23397. var v11, v3, v5, v9, p1, p12, p6, p7 uintptr
  23398. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, val, val1, v10, v11, v2, v3, v4, v5, v8, v9, p1, p12, p6, p7
  23399. len1 = int32(3)
  23400. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  23401. val = libc.Int32FromInt32(m_STATIC_TREES) << libc.Int32FromInt32(1)
  23402. p1 = s + 5900
  23403. *(*Tush)(unsafe.Pointer(p1)) = Tush(int32(*(*Tush)(unsafe.Pointer(p1))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23404. v3 = s + 40
  23405. v2 = *(*Tulg)(unsafe.Pointer(v3))
  23406. *(*Tulg)(unsafe.Pointer(v3))++
  23407. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v2))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23408. v5 = s + 40
  23409. v4 = *(*Tulg)(unsafe.Pointer(v5))
  23410. *(*Tulg)(unsafe.Pointer(v5))++
  23411. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v4))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23412. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23413. *(*int32)(unsafe.Pointer(s + 5904)) += len1 - int32(m_Buf_size)
  23414. } else {
  23415. p6 = s + 5900
  23416. *(*Tush)(unsafe.Pointer(p6)) = Tush(int32(*(*Tush)(unsafe.Pointer(p6))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23417. *(*int32)(unsafe.Pointer(s + 5904)) += len1
  23418. }
  23419. len11 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4 + 2)))
  23420. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  23421. val1 = int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))
  23422. p7 = s + 5900
  23423. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23424. v9 = s + 40
  23425. v8 = *(*Tulg)(unsafe.Pointer(v9))
  23426. *(*Tulg)(unsafe.Pointer(v9))++
  23427. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v8))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23428. v11 = s + 40
  23429. v10 = *(*Tulg)(unsafe.Pointer(v11))
  23430. *(*Tulg)(unsafe.Pointer(v11))++
  23431. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v10))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23432. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23433. *(*int32)(unsafe.Pointer(s + 5904)) += len11 - int32(m_Buf_size)
  23434. } else {
  23435. p12 = s + 5900
  23436. *(*Tush)(unsafe.Pointer(p12)) = Tush(int32(*(*Tush)(unsafe.Pointer(p12))) | int32(*(*Tush)(unsafe.Pointer(uintptr(unsafe.Pointer(&_static_ltree)) + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23437. *(*int32)(unsafe.Pointer(s + 5904)) += len11
  23438. }
  23439. _bi_flush(tls, s)
  23440. }
  23441. // C documentation
  23442. //
  23443. // /* ===========================================================================
  23444. // * Send the block data compressed using the given Huffman trees
  23445. // */
  23446. func _compress_block(tls *libc.TLS, s uintptr, ltree uintptr, dtree uintptr) {
  23447. var code, dist, sx, v1, v2, v3 uint32
  23448. var extra, lc, len1, len11, len2, len3, len4, len5, val, val1, val2, val3, val4, val5, v22 int32
  23449. var v11, v13, v17, v19, v24, v26, v30, v32, v36, v38, v5, v7 Tulg
  23450. var v12, v14, v18, v20, v25, v27, v31, v33, v37, v39, v6, v8, p10, p15, p16, p21, p23, p28, p29, p34, p35, p4, p40, p9 uintptr
  23451. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = code, dist, extra, lc, len1, len11, len2, len3, len4, len5, sx, val, val1, val2, val3, val4, val5, v1, v11, v12, v13, v14, v17, v18, v19, v2, v20, v22, v24, v25, v26, v27, v3, v30, v31, v32, v33, v36, v37, v38, v39, v5, v6, v7, v8, p10, p15, p16, p21, p23, p28, p29, p34, p35, p4, p40, p9 /* match length or unmatched char (if dist == 0) */
  23452. sx = uint32(0) /* number of extra bits to send */
  23453. if (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next != uint32(0) {
  23454. for cond := true; cond; cond = sx < (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next {
  23455. v1 = sx
  23456. sx++
  23457. dist = uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1)))) & int32(0xff))
  23458. v2 = sx
  23459. sx++
  23460. dist += uint32(int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v2))))&libc.Int32FromInt32(0xff)) << int32(8)
  23461. v3 = sx
  23462. sx++
  23463. lc = int32(*(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))))
  23464. if dist == uint32(0) {
  23465. len1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4 + 2)))
  23466. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  23467. val = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))
  23468. p4 = s + 5900
  23469. *(*Tush)(unsafe.Pointer(p4)) = Tush(int32(*(*Tush)(unsafe.Pointer(p4))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23470. v6 = s + 40
  23471. v5 = *(*Tulg)(unsafe.Pointer(v6))
  23472. *(*Tulg)(unsafe.Pointer(v6))++
  23473. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23474. v8 = s + 40
  23475. v7 = *(*Tulg)(unsafe.Pointer(v8))
  23476. *(*Tulg)(unsafe.Pointer(v8))++
  23477. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v7))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23478. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23479. *(*int32)(unsafe.Pointer(s + 5904)) += len1 - int32(m_Buf_size)
  23480. } else {
  23481. p9 = s + 5900
  23482. *(*Tush)(unsafe.Pointer(p9)) = Tush(int32(*(*Tush)(unsafe.Pointer(p9))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(lc)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23483. *(*int32)(unsafe.Pointer(s + 5904)) += len1
  23484. } /* send a literal byte */
  23485. } else {
  23486. /* Here, lc is the match length - MIN_MATCH */
  23487. code = uint32(x__length_code[lc])
  23488. len11 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4 + 2)))
  23489. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  23490. val1 = int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))
  23491. p10 = s + 5900
  23492. *(*Tush)(unsafe.Pointer(p10)) = Tush(int32(*(*Tush)(unsafe.Pointer(p10))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23493. v12 = s + 40
  23494. v11 = *(*Tulg)(unsafe.Pointer(v12))
  23495. *(*Tulg)(unsafe.Pointer(v12))++
  23496. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23497. v14 = s + 40
  23498. v13 = *(*Tulg)(unsafe.Pointer(v14))
  23499. *(*Tulg)(unsafe.Pointer(v14))++
  23500. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v13))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23501. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23502. *(*int32)(unsafe.Pointer(s + 5904)) += len11 - int32(m_Buf_size)
  23503. } else {
  23504. p15 = s + 5900
  23505. *(*Tush)(unsafe.Pointer(p15)) = Tush(int32(*(*Tush)(unsafe.Pointer(p15))) | int32(*(*Tush)(unsafe.Pointer(ltree + uintptr(code+uint32(m_LITERALS)+uint32(1))*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23506. *(*int32)(unsafe.Pointer(s + 5904)) += len11
  23507. } /* send length code */
  23508. extra = _extra_lbits[code]
  23509. if extra != 0 {
  23510. lc -= _base_length[code]
  23511. len2 = extra
  23512. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len2 {
  23513. val2 = lc
  23514. p16 = s + 5900
  23515. *(*Tush)(unsafe.Pointer(p16)) = Tush(int32(*(*Tush)(unsafe.Pointer(p16))) | int32(uint16(val2))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23516. v18 = s + 40
  23517. v17 = *(*Tulg)(unsafe.Pointer(v18))
  23518. *(*Tulg)(unsafe.Pointer(v18))++
  23519. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v17))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23520. v20 = s + 40
  23521. v19 = *(*Tulg)(unsafe.Pointer(v20))
  23522. *(*Tulg)(unsafe.Pointer(v20))++
  23523. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v19))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23524. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val2)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23525. *(*int32)(unsafe.Pointer(s + 5904)) += len2 - int32(m_Buf_size)
  23526. } else {
  23527. p21 = s + 5900
  23528. *(*Tush)(unsafe.Pointer(p21)) = Tush(int32(*(*Tush)(unsafe.Pointer(p21))) | int32(uint16(lc))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23529. *(*int32)(unsafe.Pointer(s + 5904)) += len2
  23530. } /* send the extra length bits */
  23531. }
  23532. dist-- /* dist is now the match distance - 1 */
  23533. if dist < uint32(256) {
  23534. v22 = int32(x__dist_code[dist])
  23535. } else {
  23536. v22 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  23537. }
  23538. code = uint32(v22)
  23539. len3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4 + 2)))
  23540. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len3 {
  23541. val3 = int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))
  23542. p23 = s + 5900
  23543. *(*Tush)(unsafe.Pointer(p23)) = Tush(int32(*(*Tush)(unsafe.Pointer(p23))) | int32(uint16(val3))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23544. v25 = s + 40
  23545. v24 = *(*Tulg)(unsafe.Pointer(v25))
  23546. *(*Tulg)(unsafe.Pointer(v25))++
  23547. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v24))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23548. v27 = s + 40
  23549. v26 = *(*Tulg)(unsafe.Pointer(v27))
  23550. *(*Tulg)(unsafe.Pointer(v27))++
  23551. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v26))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23552. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val3)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23553. *(*int32)(unsafe.Pointer(s + 5904)) += len3 - int32(m_Buf_size)
  23554. } else {
  23555. p28 = s + 5900
  23556. *(*Tush)(unsafe.Pointer(p28)) = Tush(int32(*(*Tush)(unsafe.Pointer(p28))) | int32(*(*Tush)(unsafe.Pointer(dtree + uintptr(code)*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23557. *(*int32)(unsafe.Pointer(s + 5904)) += len3
  23558. } /* send the distance code */
  23559. extra = _extra_dbits[code]
  23560. if extra != 0 {
  23561. dist -= uint32(_base_dist[code])
  23562. len4 = extra
  23563. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len4 {
  23564. val4 = int32(dist)
  23565. p29 = s + 5900
  23566. *(*Tush)(unsafe.Pointer(p29)) = Tush(int32(*(*Tush)(unsafe.Pointer(p29))) | int32(uint16(val4))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23567. v31 = s + 40
  23568. v30 = *(*Tulg)(unsafe.Pointer(v31))
  23569. *(*Tulg)(unsafe.Pointer(v31))++
  23570. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v30))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23571. v33 = s + 40
  23572. v32 = *(*Tulg)(unsafe.Pointer(v33))
  23573. *(*Tulg)(unsafe.Pointer(v33))++
  23574. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v32))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23575. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val4)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23576. *(*int32)(unsafe.Pointer(s + 5904)) += len4 - int32(m_Buf_size)
  23577. } else {
  23578. p34 = s + 5900
  23579. *(*Tush)(unsafe.Pointer(p34)) = Tush(int32(*(*Tush)(unsafe.Pointer(p34))) | int32(uint16(dist))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23580. *(*int32)(unsafe.Pointer(s + 5904)) += len4
  23581. } /* send the extra distance bits */
  23582. }
  23583. } /* literal or match pair ? */
  23584. /* Check for no overlay of pending_buf on needed symbols */
  23585. }
  23586. }
  23587. len5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4 + 2)))
  23588. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len5 {
  23589. val5 = int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))
  23590. p35 = s + 5900
  23591. *(*Tush)(unsafe.Pointer(p35)) = Tush(int32(*(*Tush)(unsafe.Pointer(p35))) | int32(uint16(val5))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23592. v37 = s + 40
  23593. v36 = *(*Tulg)(unsafe.Pointer(v37))
  23594. *(*Tulg)(unsafe.Pointer(v37))++
  23595. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v36))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23596. v39 = s + 40
  23597. v38 = *(*Tulg)(unsafe.Pointer(v39))
  23598. *(*Tulg)(unsafe.Pointer(v39))++
  23599. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v38))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23600. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val5)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23601. *(*int32)(unsafe.Pointer(s + 5904)) += len5 - int32(m_Buf_size)
  23602. } else {
  23603. p40 = s + 5900
  23604. *(*Tush)(unsafe.Pointer(p40)) = Tush(int32(*(*Tush)(unsafe.Pointer(p40))) | int32(*(*Tush)(unsafe.Pointer(ltree + 256*4)))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23605. *(*int32)(unsafe.Pointer(s + 5904)) += len5
  23606. }
  23607. }
  23608. // C documentation
  23609. //
  23610. // /* ===========================================================================
  23611. // * Check if the data type is TEXT or BINARY, using the following algorithm:
  23612. // * - TEXT if the two conditions below are satisfied:
  23613. // * a) There are no non-portable control characters belonging to the
  23614. // * "block list" (0..6, 14..25, 28..31).
  23615. // * b) There is at least one printable character belonging to the
  23616. // * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
  23617. // * - BINARY otherwise.
  23618. // * - The following partially-portable control characters form a
  23619. // * "gray list" that is ignored in this detection algorithm:
  23620. // * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
  23621. // * IN assertion: the fields Freq of dyn_ltree are set.
  23622. // */
  23623. func _detect_data_type(tls *libc.TLS, s uintptr) (r int32) {
  23624. var block_mask uint32
  23625. var n int32
  23626. _, _ = block_mask, n
  23627. /* block_mask is the bit mask of block-listed bytes
  23628. * set bits 0..6, 14..25, and 28..31
  23629. * 0xf3ffc07f = binary 11110011111111111100000001111111
  23630. */
  23631. block_mask = uint32(0xf3ffc07f)
  23632. /* Check for non-textual ("block-listed") bytes. */
  23633. n = 0
  23634. for {
  23635. if !(n <= int32(31)) {
  23636. break
  23637. }
  23638. if block_mask&uint32(1) != 0 && int32(*(*Tush)(unsafe.Pointer(s + 188 + uintptr(n)*4))) != 0 {
  23639. return m_Z_BINARY
  23640. }
  23641. goto _1
  23642. _1:
  23643. ;
  23644. n++
  23645. block_mask >>= uint32(1)
  23646. }
  23647. /* Check for textual ("allow-listed") bytes. */
  23648. if int32(*(*Tush)(unsafe.Pointer(s + 188 + 9*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 188 + 10*4))) != 0 || int32(*(*Tush)(unsafe.Pointer(s + 188 + 13*4))) != 0 {
  23649. return int32(m_Z_TEXT)
  23650. }
  23651. n = int32(32)
  23652. for {
  23653. if !(n < int32(m_LITERALS)) {
  23654. break
  23655. }
  23656. if int32(*(*Tush)(unsafe.Pointer(s + 188 + uintptr(n)*4))) != 0 {
  23657. return int32(m_Z_TEXT)
  23658. }
  23659. goto _2
  23660. _2:
  23661. ;
  23662. n++
  23663. }
  23664. /* There are no "block-listed" or "allow-listed" bytes:
  23665. * this stream either is empty or has tolerated ("gray-listed") bytes only.
  23666. */
  23667. return m_Z_BINARY
  23668. }
  23669. // C documentation
  23670. //
  23671. // /* ===========================================================================
  23672. // * Determine the best encoding for the current block: dynamic trees, static
  23673. // * trees or store, and write out the encoded block.
  23674. // */
  23675. func x__tr_flush_block(tls *libc.TLS, s uintptr, buf uintptr, stored_len Tulg, last int32) {
  23676. var len1, len11, max_blindex, val, val1 int32
  23677. var opt_lenb, static_lenb, v1, v11, v3, v5, v9 Tulg
  23678. var v10, v12, v4, v6, p13, p2, p7, p8 uintptr
  23679. _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _ = len1, len11, max_blindex, opt_lenb, static_lenb, val, val1, v1, v10, v11, v12, v3, v4, v5, v6, v9, p13, p2, p7, p8 /* opt_len and static_len in bytes */
  23680. max_blindex = 0 /* index of last bit length code of non zero freq */
  23681. /* Build the Huffman trees unless a stored block is forced */
  23682. if (*Tdeflate_state)(unsafe.Pointer(s)).Flevel > 0 {
  23683. /* Check if the file is binary or text */
  23684. if (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type == int32(m_Z_UNKNOWN) {
  23685. (*Tz_stream)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fstrm)).Fdata_type = _detect_data_type(tls, s)
  23686. }
  23687. /* Construct the literal and distance trees */
  23688. _build_tree(tls, s, s+2880)
  23689. _build_tree(tls, s, s+2904)
  23690. /* At this point, opt_len and static_len are the total bit lengths of
  23691. * the compressed block data, excluding the tree representations.
  23692. */
  23693. /* Build the bit length tree for the above two trees, and get the index
  23694. * in bl_order of the last bit length code to send.
  23695. */
  23696. max_blindex = _build_bl_tree(tls, s)
  23697. /* Determine the best encoding. Compute the block lengths in bytes. */
  23698. opt_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fopt_len + uint32(3) + uint32(7)) >> int32(3)
  23699. static_lenb = ((*Tdeflate_state)(unsafe.Pointer(s)).Fstatic_len + uint32(3) + uint32(7)) >> int32(3)
  23700. if static_lenb <= opt_lenb || (*Tdeflate_state)(unsafe.Pointer(s)).Fstrategy == int32(m_Z_FIXED) {
  23701. opt_lenb = static_lenb
  23702. }
  23703. } else {
  23704. v1 = stored_len + libc.Uint32FromInt32(5)
  23705. static_lenb = v1
  23706. opt_lenb = v1 /* force a stored block */
  23707. }
  23708. if stored_len+uint32(4) <= opt_lenb && buf != libc.UintptrFromInt32(0) {
  23709. /* 4: two words for the lengths */
  23710. /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
  23711. * Otherwise we can't have processed more than WSIZE input bytes since
  23712. * the last block flush, because compression would have been
  23713. * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
  23714. * transform a block into a stored block.
  23715. */
  23716. x__tr_stored_block(tls, s, buf, stored_len, last)
  23717. } else {
  23718. if static_lenb == opt_lenb {
  23719. len1 = int32(3)
  23720. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len1 {
  23721. val = libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1) + last
  23722. p2 = s + 5900
  23723. *(*Tush)(unsafe.Pointer(p2)) = Tush(int32(*(*Tush)(unsafe.Pointer(p2))) | int32(uint16(val))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23724. v4 = s + 40
  23725. v3 = *(*Tulg)(unsafe.Pointer(v4))
  23726. *(*Tulg)(unsafe.Pointer(v4))++
  23727. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v3))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23728. v6 = s + 40
  23729. v5 = *(*Tulg)(unsafe.Pointer(v6))
  23730. *(*Tulg)(unsafe.Pointer(v6))++
  23731. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v5))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23732. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23733. *(*int32)(unsafe.Pointer(s + 5904)) += len1 - int32(m_Buf_size)
  23734. } else {
  23735. p7 = s + 5900
  23736. *(*Tush)(unsafe.Pointer(p7)) = Tush(int32(*(*Tush)(unsafe.Pointer(p7))) | int32(uint16(libc.Int32FromInt32(m_STATIC_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23737. *(*int32)(unsafe.Pointer(s + 5904)) += len1
  23738. }
  23739. _compress_block(tls, s, uintptr(unsafe.Pointer(&_static_ltree)), uintptr(unsafe.Pointer(&_static_dtree)))
  23740. } else {
  23741. len11 = int32(3)
  23742. if (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid > libc.Int32FromInt32(m_Buf_size)-len11 {
  23743. val1 = libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1) + last
  23744. p8 = s + 5900
  23745. *(*Tush)(unsafe.Pointer(p8)) = Tush(int32(*(*Tush)(unsafe.Pointer(p8))) | int32(uint16(val1))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23746. v10 = s + 40
  23747. v9 = *(*Tulg)(unsafe.Pointer(v10))
  23748. *(*Tulg)(unsafe.Pointer(v10))++
  23749. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v9))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) & libc.Int32FromInt32(0xff))
  23750. v12 = s + 40
  23751. v11 = *(*Tulg)(unsafe.Pointer(v12))
  23752. *(*Tulg)(unsafe.Pointer(v12))++
  23753. *(*TBytef)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fpending_buf + uintptr(v11))) = uint8(int32((*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf) >> libc.Int32FromInt32(8))
  23754. (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_buf = uint16(int32(uint16(val1)) >> (int32(m_Buf_size) - (*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid))
  23755. *(*int32)(unsafe.Pointer(s + 5904)) += len11 - int32(m_Buf_size)
  23756. } else {
  23757. p13 = s + 5900
  23758. *(*Tush)(unsafe.Pointer(p13)) = Tush(int32(*(*Tush)(unsafe.Pointer(p13))) | int32(uint16(libc.Int32FromInt32(m_DYN_TREES)<<libc.Int32FromInt32(1)+last))<<(*Tdeflate_state)(unsafe.Pointer(s)).Fbi_valid)
  23759. *(*int32)(unsafe.Pointer(s + 5904)) += len11
  23760. }
  23761. _send_all_trees(tls, s, (*Tdeflate_state)(unsafe.Pointer(s)).Fl_desc.Fmax_code+int32(1), (*Tdeflate_state)(unsafe.Pointer(s)).Fd_desc.Fmax_code+int32(1), max_blindex+int32(1))
  23762. _compress_block(tls, s, s+188, s+2480)
  23763. }
  23764. }
  23765. /* The above check is made mod 2^32, for files larger than 512 MB
  23766. * and uLong implemented on 32 bits.
  23767. */
  23768. _init_block(tls, s)
  23769. if last != 0 {
  23770. _bi_windup(tls, s)
  23771. }
  23772. }
  23773. // C documentation
  23774. //
  23775. // /* ===========================================================================
  23776. // * Save the match info and tally the frequency counts. Return true if
  23777. // * the current block must be flushed.
  23778. // */
  23779. func x__tr_tally(tls *libc.TLS, s uintptr, dist uint32, lc uint32) (r int32) {
  23780. var v1, v3, v5 TuInt
  23781. var v2, v4, v6 uintptr
  23782. var v7 int32
  23783. _, _, _, _, _, _, _ = v1, v2, v3, v4, v5, v6, v7
  23784. v2 = s + 5876
  23785. v1 = *(*TuInt)(unsafe.Pointer(v2))
  23786. *(*TuInt)(unsafe.Pointer(v2))++
  23787. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v1))) = uint8(dist)
  23788. v4 = s + 5876
  23789. v3 = *(*TuInt)(unsafe.Pointer(v4))
  23790. *(*TuInt)(unsafe.Pointer(v4))++
  23791. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v3))) = uint8(dist >> libc.Int32FromInt32(8))
  23792. v6 = s + 5876
  23793. v5 = *(*TuInt)(unsafe.Pointer(v6))
  23794. *(*TuInt)(unsafe.Pointer(v6))++
  23795. *(*Tuchf)(unsafe.Pointer((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_buf + uintptr(v5))) = uint8(lc)
  23796. if dist == uint32(0) {
  23797. /* lc is the unmatched char */
  23798. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(lc)*4))++
  23799. } else {
  23800. (*Tdeflate_state)(unsafe.Pointer(s)).Fmatches++
  23801. /* Here, lc is the match length - MIN_MATCH */
  23802. dist-- /* dist = match distance - 1 */
  23803. *(*Tush)(unsafe.Pointer(s + 188 + uintptr(int32(x__length_code[lc])+int32(m_LITERALS)+int32(1))*4))++
  23804. if dist < uint32(256) {
  23805. v7 = int32(x__dist_code[dist])
  23806. } else {
  23807. v7 = int32(x__dist_code[uint32(256)+dist>>int32(7)])
  23808. }
  23809. *(*Tush)(unsafe.Pointer(s + 2480 + uintptr(v7)*4))++
  23810. }
  23811. return libc.BoolInt32((*Tdeflate_state)(unsafe.Pointer(s)).Fsym_next == (*Tdeflate_state)(unsafe.Pointer(s)).Fsym_end)
  23812. }
  23813. // C documentation
  23814. //
  23815. // /* ===========================================================================
  23816. // Decompresses the source buffer into the destination buffer. *sourceLen is
  23817. // the byte length of the source buffer. Upon entry, *destLen is the total size
  23818. // of the destination buffer, which must be large enough to hold the entire
  23819. // uncompressed data. (The size of the uncompressed data must have been saved
  23820. // previously by the compressor and transmitted to the decompressor by some
  23821. // mechanism outside the scope of this compression library.) Upon exit,
  23822. // *destLen is the size of the decompressed data and *sourceLen is the number
  23823. // of source bytes consumed. Upon return, source + *sourceLen points to the
  23824. // first unused input byte.
  23825. //
  23826. // uncompress returns Z_OK if success, Z_MEM_ERROR if there was not enough
  23827. // memory, Z_BUF_ERROR if there was not enough room in the output buffer, or
  23828. // Z_DATA_ERROR if the input data was corrupted, including if the input data is
  23829. // an incomplete zlib stream.
  23830. // */
  23831. func Xuncompress2(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, sourceLen uintptr) (r int32) {
  23832. bp := tls.Alloc(96)
  23833. defer tls.Free(96)
  23834. var err, v3, v4, v5 int32
  23835. var left, len1 TuLong
  23836. var max TuInt
  23837. var v1, v2 uint32
  23838. var _ /* buf at bp+88 */ [1]TByte
  23839. var _ /* stream at bp+0 */ Tz_stream
  23840. _, _, _, _, _, _, _, _, _ = err, left, len1, max, v1, v2, v3, v4, v5
  23841. max = uint32(-libc.Int32FromInt32(1)) /* for detection of incomplete stream when *destLen == 0 */
  23842. len1 = *(*TuLong)(unsafe.Pointer(sourceLen))
  23843. if *(*TuLongf)(unsafe.Pointer(destLen)) != 0 {
  23844. left = *(*TuLongf)(unsafe.Pointer(destLen))
  23845. *(*TuLongf)(unsafe.Pointer(destLen)) = uint32(0)
  23846. } else {
  23847. left = uint32(1)
  23848. dest = bp + 88
  23849. }
  23850. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_in = source
  23851. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = uint32(0)
  23852. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzalloc = libc.UintptrFromInt32(0)
  23853. (*(*Tz_stream)(unsafe.Pointer(bp))).Fzfree = libc.UintptrFromInt32(0)
  23854. (*(*Tz_stream)(unsafe.Pointer(bp))).Fopaque = libc.UintptrFromInt32(0)
  23855. err = XinflateInit_(tls, bp, __ccgo_ts, libc.Int32FromInt64(88))
  23856. if err != m_Z_OK {
  23857. return err
  23858. }
  23859. (*(*Tz_stream)(unsafe.Pointer(bp))).Fnext_out = dest
  23860. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = uint32(0)
  23861. for cond := true; cond; cond = err == m_Z_OK {
  23862. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out == uint32(0) {
  23863. if left > max {
  23864. v1 = max
  23865. } else {
  23866. v1 = left
  23867. }
  23868. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out = v1
  23869. left -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out
  23870. }
  23871. if (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in == uint32(0) {
  23872. if len1 > max {
  23873. v2 = max
  23874. } else {
  23875. v2 = len1
  23876. }
  23877. (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in = v2
  23878. len1 -= (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  23879. }
  23880. err = Xinflate(tls, bp, m_Z_NO_FLUSH)
  23881. }
  23882. *(*TuLong)(unsafe.Pointer(sourceLen)) -= len1 + (*(*Tz_stream)(unsafe.Pointer(bp))).Favail_in
  23883. if dest != bp+88 {
  23884. *(*TuLongf)(unsafe.Pointer(destLen)) = (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out
  23885. } else {
  23886. if (*(*Tz_stream)(unsafe.Pointer(bp))).Ftotal_out != 0 && err == -int32(5) {
  23887. left = uint32(1)
  23888. }
  23889. }
  23890. XinflateEnd(tls, bp)
  23891. if err == int32(m_Z_STREAM_END) {
  23892. v3 = m_Z_OK
  23893. } else {
  23894. if err == int32(m_Z_NEED_DICT) {
  23895. v4 = -int32(3)
  23896. } else {
  23897. if err == -int32(5) && left+(*(*Tz_stream)(unsafe.Pointer(bp))).Favail_out != 0 {
  23898. v5 = -int32(3)
  23899. } else {
  23900. v5 = err
  23901. }
  23902. v4 = v5
  23903. }
  23904. v3 = v4
  23905. }
  23906. return v3
  23907. }
  23908. func Xuncompress(tls *libc.TLS, dest uintptr, destLen uintptr, source uintptr, _sourceLen TuLong) (r int32) {
  23909. bp := tls.Alloc(16)
  23910. defer tls.Free(16)
  23911. *(*TuLong)(unsafe.Pointer(bp)) = _sourceLen
  23912. return Xuncompress2(tls, dest, destLen, source, bp)
  23913. }
  23914. func XzlibVersion(tls *libc.TLS) (r uintptr) {
  23915. return __ccgo_ts
  23916. }
  23917. func XzlibCompileFlags(tls *libc.TLS) (r TuLong) {
  23918. var flags TuLong
  23919. _ = flags
  23920. flags = uint32(0)
  23921. switch int32(libc.Uint64FromInt64(4)) {
  23922. case int32(2):
  23923. case int32(4):
  23924. flags += uint32(1)
  23925. case int32(8):
  23926. flags += uint32(2)
  23927. default:
  23928. flags += uint32(3)
  23929. }
  23930. switch int32(libc.Uint64FromInt64(4)) {
  23931. case int32(2):
  23932. case int32(4):
  23933. flags += uint32(libc.Int32FromInt32(1) << libc.Int32FromInt32(2))
  23934. case int32(8):
  23935. flags += uint32(libc.Int32FromInt32(2) << libc.Int32FromInt32(2))
  23936. default:
  23937. flags += uint32(libc.Int32FromInt32(3) << libc.Int32FromInt32(2))
  23938. }
  23939. switch int32(libc.Uint64FromInt64(8)) {
  23940. case int32(2):
  23941. case int32(4):
  23942. flags += uint32(libc.Int32FromInt32(1) << libc.Int32FromInt32(4))
  23943. case int32(8):
  23944. flags += uint32(libc.Int32FromInt32(2) << libc.Int32FromInt32(4))
  23945. default:
  23946. flags += uint32(libc.Int32FromInt32(3) << libc.Int32FromInt32(4))
  23947. }
  23948. switch int32(libc.Uint64FromInt64(4)) {
  23949. case int32(2):
  23950. case int32(4):
  23951. flags += uint32(libc.Int32FromInt32(1) << libc.Int32FromInt32(6))
  23952. case int32(8):
  23953. flags += uint32(libc.Int32FromInt32(2) << libc.Int32FromInt32(6))
  23954. default:
  23955. flags += uint32(libc.Int32FromInt32(3) << libc.Int32FromInt32(6))
  23956. }
  23957. /*
  23958. #if defined(ASMV) || defined(ASMINF)
  23959. flags += 1 << 9;
  23960. #endif
  23961. */
  23962. return flags
  23963. }
  23964. // C documentation
  23965. //
  23966. // /* exported to allow conversion of error code to string for compress() and
  23967. // * uncompress()
  23968. // */
  23969. func XzError(tls *libc.TLS, err int32) (r uintptr) {
  23970. var v1 int32
  23971. _ = v1
  23972. if err < -int32(6) || err > int32(2) {
  23973. v1 = int32(9)
  23974. } else {
  23975. v1 = int32(2) - err
  23976. }
  23977. return Xz_errmsg[v1]
  23978. }
  23979. func Xzcalloc(tls *libc.TLS, opaque Tvoidpf, items uint32, size uint32) (r Tvoidpf) {
  23980. _ = opaque
  23981. return libc.Xmalloc(tls, uint64(items*size))
  23982. }
  23983. func Xzcfree(tls *libc.TLS, opaque Tvoidpf, ptr Tvoidpf) {
  23984. _ = opaque
  23985. libc.Xfree(tls, ptr)
  23986. }
  23987. func __ccgo_fp(f interface{}) uintptr {
  23988. type iface [2]uintptr
  23989. return (*iface)(unsafe.Pointer(&f))[1]
  23990. }
  23991. var x__dist_code = [512]Tuch{
  23992. 1: uint8(1),
  23993. 2: uint8(2),
  23994. 3: uint8(3),
  23995. 4: uint8(4),
  23996. 5: uint8(4),
  23997. 6: uint8(5),
  23998. 7: uint8(5),
  23999. 8: uint8(6),
  24000. 9: uint8(6),
  24001. 10: uint8(6),
  24002. 11: uint8(6),
  24003. 12: uint8(7),
  24004. 13: uint8(7),
  24005. 14: uint8(7),
  24006. 15: uint8(7),
  24007. 16: uint8(8),
  24008. 17: uint8(8),
  24009. 18: uint8(8),
  24010. 19: uint8(8),
  24011. 20: uint8(8),
  24012. 21: uint8(8),
  24013. 22: uint8(8),
  24014. 23: uint8(8),
  24015. 24: uint8(9),
  24016. 25: uint8(9),
  24017. 26: uint8(9),
  24018. 27: uint8(9),
  24019. 28: uint8(9),
  24020. 29: uint8(9),
  24021. 30: uint8(9),
  24022. 31: uint8(9),
  24023. 32: uint8(10),
  24024. 33: uint8(10),
  24025. 34: uint8(10),
  24026. 35: uint8(10),
  24027. 36: uint8(10),
  24028. 37: uint8(10),
  24029. 38: uint8(10),
  24030. 39: uint8(10),
  24031. 40: uint8(10),
  24032. 41: uint8(10),
  24033. 42: uint8(10),
  24034. 43: uint8(10),
  24035. 44: uint8(10),
  24036. 45: uint8(10),
  24037. 46: uint8(10),
  24038. 47: uint8(10),
  24039. 48: uint8(11),
  24040. 49: uint8(11),
  24041. 50: uint8(11),
  24042. 51: uint8(11),
  24043. 52: uint8(11),
  24044. 53: uint8(11),
  24045. 54: uint8(11),
  24046. 55: uint8(11),
  24047. 56: uint8(11),
  24048. 57: uint8(11),
  24049. 58: uint8(11),
  24050. 59: uint8(11),
  24051. 60: uint8(11),
  24052. 61: uint8(11),
  24053. 62: uint8(11),
  24054. 63: uint8(11),
  24055. 64: uint8(12),
  24056. 65: uint8(12),
  24057. 66: uint8(12),
  24058. 67: uint8(12),
  24059. 68: uint8(12),
  24060. 69: uint8(12),
  24061. 70: uint8(12),
  24062. 71: uint8(12),
  24063. 72: uint8(12),
  24064. 73: uint8(12),
  24065. 74: uint8(12),
  24066. 75: uint8(12),
  24067. 76: uint8(12),
  24068. 77: uint8(12),
  24069. 78: uint8(12),
  24070. 79: uint8(12),
  24071. 80: uint8(12),
  24072. 81: uint8(12),
  24073. 82: uint8(12),
  24074. 83: uint8(12),
  24075. 84: uint8(12),
  24076. 85: uint8(12),
  24077. 86: uint8(12),
  24078. 87: uint8(12),
  24079. 88: uint8(12),
  24080. 89: uint8(12),
  24081. 90: uint8(12),
  24082. 91: uint8(12),
  24083. 92: uint8(12),
  24084. 93: uint8(12),
  24085. 94: uint8(12),
  24086. 95: uint8(12),
  24087. 96: uint8(13),
  24088. 97: uint8(13),
  24089. 98: uint8(13),
  24090. 99: uint8(13),
  24091. 100: uint8(13),
  24092. 101: uint8(13),
  24093. 102: uint8(13),
  24094. 103: uint8(13),
  24095. 104: uint8(13),
  24096. 105: uint8(13),
  24097. 106: uint8(13),
  24098. 107: uint8(13),
  24099. 108: uint8(13),
  24100. 109: uint8(13),
  24101. 110: uint8(13),
  24102. 111: uint8(13),
  24103. 112: uint8(13),
  24104. 113: uint8(13),
  24105. 114: uint8(13),
  24106. 115: uint8(13),
  24107. 116: uint8(13),
  24108. 117: uint8(13),
  24109. 118: uint8(13),
  24110. 119: uint8(13),
  24111. 120: uint8(13),
  24112. 121: uint8(13),
  24113. 122: uint8(13),
  24114. 123: uint8(13),
  24115. 124: uint8(13),
  24116. 125: uint8(13),
  24117. 126: uint8(13),
  24118. 127: uint8(13),
  24119. 128: uint8(14),
  24120. 129: uint8(14),
  24121. 130: uint8(14),
  24122. 131: uint8(14),
  24123. 132: uint8(14),
  24124. 133: uint8(14),
  24125. 134: uint8(14),
  24126. 135: uint8(14),
  24127. 136: uint8(14),
  24128. 137: uint8(14),
  24129. 138: uint8(14),
  24130. 139: uint8(14),
  24131. 140: uint8(14),
  24132. 141: uint8(14),
  24133. 142: uint8(14),
  24134. 143: uint8(14),
  24135. 144: uint8(14),
  24136. 145: uint8(14),
  24137. 146: uint8(14),
  24138. 147: uint8(14),
  24139. 148: uint8(14),
  24140. 149: uint8(14),
  24141. 150: uint8(14),
  24142. 151: uint8(14),
  24143. 152: uint8(14),
  24144. 153: uint8(14),
  24145. 154: uint8(14),
  24146. 155: uint8(14),
  24147. 156: uint8(14),
  24148. 157: uint8(14),
  24149. 158: uint8(14),
  24150. 159: uint8(14),
  24151. 160: uint8(14),
  24152. 161: uint8(14),
  24153. 162: uint8(14),
  24154. 163: uint8(14),
  24155. 164: uint8(14),
  24156. 165: uint8(14),
  24157. 166: uint8(14),
  24158. 167: uint8(14),
  24159. 168: uint8(14),
  24160. 169: uint8(14),
  24161. 170: uint8(14),
  24162. 171: uint8(14),
  24163. 172: uint8(14),
  24164. 173: uint8(14),
  24165. 174: uint8(14),
  24166. 175: uint8(14),
  24167. 176: uint8(14),
  24168. 177: uint8(14),
  24169. 178: uint8(14),
  24170. 179: uint8(14),
  24171. 180: uint8(14),
  24172. 181: uint8(14),
  24173. 182: uint8(14),
  24174. 183: uint8(14),
  24175. 184: uint8(14),
  24176. 185: uint8(14),
  24177. 186: uint8(14),
  24178. 187: uint8(14),
  24179. 188: uint8(14),
  24180. 189: uint8(14),
  24181. 190: uint8(14),
  24182. 191: uint8(14),
  24183. 192: uint8(15),
  24184. 193: uint8(15),
  24185. 194: uint8(15),
  24186. 195: uint8(15),
  24187. 196: uint8(15),
  24188. 197: uint8(15),
  24189. 198: uint8(15),
  24190. 199: uint8(15),
  24191. 200: uint8(15),
  24192. 201: uint8(15),
  24193. 202: uint8(15),
  24194. 203: uint8(15),
  24195. 204: uint8(15),
  24196. 205: uint8(15),
  24197. 206: uint8(15),
  24198. 207: uint8(15),
  24199. 208: uint8(15),
  24200. 209: uint8(15),
  24201. 210: uint8(15),
  24202. 211: uint8(15),
  24203. 212: uint8(15),
  24204. 213: uint8(15),
  24205. 214: uint8(15),
  24206. 215: uint8(15),
  24207. 216: uint8(15),
  24208. 217: uint8(15),
  24209. 218: uint8(15),
  24210. 219: uint8(15),
  24211. 220: uint8(15),
  24212. 221: uint8(15),
  24213. 222: uint8(15),
  24214. 223: uint8(15),
  24215. 224: uint8(15),
  24216. 225: uint8(15),
  24217. 226: uint8(15),
  24218. 227: uint8(15),
  24219. 228: uint8(15),
  24220. 229: uint8(15),
  24221. 230: uint8(15),
  24222. 231: uint8(15),
  24223. 232: uint8(15),
  24224. 233: uint8(15),
  24225. 234: uint8(15),
  24226. 235: uint8(15),
  24227. 236: uint8(15),
  24228. 237: uint8(15),
  24229. 238: uint8(15),
  24230. 239: uint8(15),
  24231. 240: uint8(15),
  24232. 241: uint8(15),
  24233. 242: uint8(15),
  24234. 243: uint8(15),
  24235. 244: uint8(15),
  24236. 245: uint8(15),
  24237. 246: uint8(15),
  24238. 247: uint8(15),
  24239. 248: uint8(15),
  24240. 249: uint8(15),
  24241. 250: uint8(15),
  24242. 251: uint8(15),
  24243. 252: uint8(15),
  24244. 253: uint8(15),
  24245. 254: uint8(15),
  24246. 255: uint8(15),
  24247. 258: uint8(16),
  24248. 259: uint8(17),
  24249. 260: uint8(18),
  24250. 261: uint8(18),
  24251. 262: uint8(19),
  24252. 263: uint8(19),
  24253. 264: uint8(20),
  24254. 265: uint8(20),
  24255. 266: uint8(20),
  24256. 267: uint8(20),
  24257. 268: uint8(21),
  24258. 269: uint8(21),
  24259. 270: uint8(21),
  24260. 271: uint8(21),
  24261. 272: uint8(22),
  24262. 273: uint8(22),
  24263. 274: uint8(22),
  24264. 275: uint8(22),
  24265. 276: uint8(22),
  24266. 277: uint8(22),
  24267. 278: uint8(22),
  24268. 279: uint8(22),
  24269. 280: uint8(23),
  24270. 281: uint8(23),
  24271. 282: uint8(23),
  24272. 283: uint8(23),
  24273. 284: uint8(23),
  24274. 285: uint8(23),
  24275. 286: uint8(23),
  24276. 287: uint8(23),
  24277. 288: uint8(24),
  24278. 289: uint8(24),
  24279. 290: uint8(24),
  24280. 291: uint8(24),
  24281. 292: uint8(24),
  24282. 293: uint8(24),
  24283. 294: uint8(24),
  24284. 295: uint8(24),
  24285. 296: uint8(24),
  24286. 297: uint8(24),
  24287. 298: uint8(24),
  24288. 299: uint8(24),
  24289. 300: uint8(24),
  24290. 301: uint8(24),
  24291. 302: uint8(24),
  24292. 303: uint8(24),
  24293. 304: uint8(25),
  24294. 305: uint8(25),
  24295. 306: uint8(25),
  24296. 307: uint8(25),
  24297. 308: uint8(25),
  24298. 309: uint8(25),
  24299. 310: uint8(25),
  24300. 311: uint8(25),
  24301. 312: uint8(25),
  24302. 313: uint8(25),
  24303. 314: uint8(25),
  24304. 315: uint8(25),
  24305. 316: uint8(25),
  24306. 317: uint8(25),
  24307. 318: uint8(25),
  24308. 319: uint8(25),
  24309. 320: uint8(26),
  24310. 321: uint8(26),
  24311. 322: uint8(26),
  24312. 323: uint8(26),
  24313. 324: uint8(26),
  24314. 325: uint8(26),
  24315. 326: uint8(26),
  24316. 327: uint8(26),
  24317. 328: uint8(26),
  24318. 329: uint8(26),
  24319. 330: uint8(26),
  24320. 331: uint8(26),
  24321. 332: uint8(26),
  24322. 333: uint8(26),
  24323. 334: uint8(26),
  24324. 335: uint8(26),
  24325. 336: uint8(26),
  24326. 337: uint8(26),
  24327. 338: uint8(26),
  24328. 339: uint8(26),
  24329. 340: uint8(26),
  24330. 341: uint8(26),
  24331. 342: uint8(26),
  24332. 343: uint8(26),
  24333. 344: uint8(26),
  24334. 345: uint8(26),
  24335. 346: uint8(26),
  24336. 347: uint8(26),
  24337. 348: uint8(26),
  24338. 349: uint8(26),
  24339. 350: uint8(26),
  24340. 351: uint8(26),
  24341. 352: uint8(27),
  24342. 353: uint8(27),
  24343. 354: uint8(27),
  24344. 355: uint8(27),
  24345. 356: uint8(27),
  24346. 357: uint8(27),
  24347. 358: uint8(27),
  24348. 359: uint8(27),
  24349. 360: uint8(27),
  24350. 361: uint8(27),
  24351. 362: uint8(27),
  24352. 363: uint8(27),
  24353. 364: uint8(27),
  24354. 365: uint8(27),
  24355. 366: uint8(27),
  24356. 367: uint8(27),
  24357. 368: uint8(27),
  24358. 369: uint8(27),
  24359. 370: uint8(27),
  24360. 371: uint8(27),
  24361. 372: uint8(27),
  24362. 373: uint8(27),
  24363. 374: uint8(27),
  24364. 375: uint8(27),
  24365. 376: uint8(27),
  24366. 377: uint8(27),
  24367. 378: uint8(27),
  24368. 379: uint8(27),
  24369. 380: uint8(27),
  24370. 381: uint8(27),
  24371. 382: uint8(27),
  24372. 383: uint8(27),
  24373. 384: uint8(28),
  24374. 385: uint8(28),
  24375. 386: uint8(28),
  24376. 387: uint8(28),
  24377. 388: uint8(28),
  24378. 389: uint8(28),
  24379. 390: uint8(28),
  24380. 391: uint8(28),
  24381. 392: uint8(28),
  24382. 393: uint8(28),
  24383. 394: uint8(28),
  24384. 395: uint8(28),
  24385. 396: uint8(28),
  24386. 397: uint8(28),
  24387. 398: uint8(28),
  24388. 399: uint8(28),
  24389. 400: uint8(28),
  24390. 401: uint8(28),
  24391. 402: uint8(28),
  24392. 403: uint8(28),
  24393. 404: uint8(28),
  24394. 405: uint8(28),
  24395. 406: uint8(28),
  24396. 407: uint8(28),
  24397. 408: uint8(28),
  24398. 409: uint8(28),
  24399. 410: uint8(28),
  24400. 411: uint8(28),
  24401. 412: uint8(28),
  24402. 413: uint8(28),
  24403. 414: uint8(28),
  24404. 415: uint8(28),
  24405. 416: uint8(28),
  24406. 417: uint8(28),
  24407. 418: uint8(28),
  24408. 419: uint8(28),
  24409. 420: uint8(28),
  24410. 421: uint8(28),
  24411. 422: uint8(28),
  24412. 423: uint8(28),
  24413. 424: uint8(28),
  24414. 425: uint8(28),
  24415. 426: uint8(28),
  24416. 427: uint8(28),
  24417. 428: uint8(28),
  24418. 429: uint8(28),
  24419. 430: uint8(28),
  24420. 431: uint8(28),
  24421. 432: uint8(28),
  24422. 433: uint8(28),
  24423. 434: uint8(28),
  24424. 435: uint8(28),
  24425. 436: uint8(28),
  24426. 437: uint8(28),
  24427. 438: uint8(28),
  24428. 439: uint8(28),
  24429. 440: uint8(28),
  24430. 441: uint8(28),
  24431. 442: uint8(28),
  24432. 443: uint8(28),
  24433. 444: uint8(28),
  24434. 445: uint8(28),
  24435. 446: uint8(28),
  24436. 447: uint8(28),
  24437. 448: uint8(29),
  24438. 449: uint8(29),
  24439. 450: uint8(29),
  24440. 451: uint8(29),
  24441. 452: uint8(29),
  24442. 453: uint8(29),
  24443. 454: uint8(29),
  24444. 455: uint8(29),
  24445. 456: uint8(29),
  24446. 457: uint8(29),
  24447. 458: uint8(29),
  24448. 459: uint8(29),
  24449. 460: uint8(29),
  24450. 461: uint8(29),
  24451. 462: uint8(29),
  24452. 463: uint8(29),
  24453. 464: uint8(29),
  24454. 465: uint8(29),
  24455. 466: uint8(29),
  24456. 467: uint8(29),
  24457. 468: uint8(29),
  24458. 469: uint8(29),
  24459. 470: uint8(29),
  24460. 471: uint8(29),
  24461. 472: uint8(29),
  24462. 473: uint8(29),
  24463. 474: uint8(29),
  24464. 475: uint8(29),
  24465. 476: uint8(29),
  24466. 477: uint8(29),
  24467. 478: uint8(29),
  24468. 479: uint8(29),
  24469. 480: uint8(29),
  24470. 481: uint8(29),
  24471. 482: uint8(29),
  24472. 483: uint8(29),
  24473. 484: uint8(29),
  24474. 485: uint8(29),
  24475. 486: uint8(29),
  24476. 487: uint8(29),
  24477. 488: uint8(29),
  24478. 489: uint8(29),
  24479. 490: uint8(29),
  24480. 491: uint8(29),
  24481. 492: uint8(29),
  24482. 493: uint8(29),
  24483. 494: uint8(29),
  24484. 495: uint8(29),
  24485. 496: uint8(29),
  24486. 497: uint8(29),
  24487. 498: uint8(29),
  24488. 499: uint8(29),
  24489. 500: uint8(29),
  24490. 501: uint8(29),
  24491. 502: uint8(29),
  24492. 503: uint8(29),
  24493. 504: uint8(29),
  24494. 505: uint8(29),
  24495. 506: uint8(29),
  24496. 507: uint8(29),
  24497. 508: uint8(29),
  24498. 509: uint8(29),
  24499. 510: uint8(29),
  24500. 511: uint8(29),
  24501. }
  24502. var x__length_code = [256]Tuch{
  24503. 1: uint8(1),
  24504. 2: uint8(2),
  24505. 3: uint8(3),
  24506. 4: uint8(4),
  24507. 5: uint8(5),
  24508. 6: uint8(6),
  24509. 7: uint8(7),
  24510. 8: uint8(8),
  24511. 9: uint8(8),
  24512. 10: uint8(9),
  24513. 11: uint8(9),
  24514. 12: uint8(10),
  24515. 13: uint8(10),
  24516. 14: uint8(11),
  24517. 15: uint8(11),
  24518. 16: uint8(12),
  24519. 17: uint8(12),
  24520. 18: uint8(12),
  24521. 19: uint8(12),
  24522. 20: uint8(13),
  24523. 21: uint8(13),
  24524. 22: uint8(13),
  24525. 23: uint8(13),
  24526. 24: uint8(14),
  24527. 25: uint8(14),
  24528. 26: uint8(14),
  24529. 27: uint8(14),
  24530. 28: uint8(15),
  24531. 29: uint8(15),
  24532. 30: uint8(15),
  24533. 31: uint8(15),
  24534. 32: uint8(16),
  24535. 33: uint8(16),
  24536. 34: uint8(16),
  24537. 35: uint8(16),
  24538. 36: uint8(16),
  24539. 37: uint8(16),
  24540. 38: uint8(16),
  24541. 39: uint8(16),
  24542. 40: uint8(17),
  24543. 41: uint8(17),
  24544. 42: uint8(17),
  24545. 43: uint8(17),
  24546. 44: uint8(17),
  24547. 45: uint8(17),
  24548. 46: uint8(17),
  24549. 47: uint8(17),
  24550. 48: uint8(18),
  24551. 49: uint8(18),
  24552. 50: uint8(18),
  24553. 51: uint8(18),
  24554. 52: uint8(18),
  24555. 53: uint8(18),
  24556. 54: uint8(18),
  24557. 55: uint8(18),
  24558. 56: uint8(19),
  24559. 57: uint8(19),
  24560. 58: uint8(19),
  24561. 59: uint8(19),
  24562. 60: uint8(19),
  24563. 61: uint8(19),
  24564. 62: uint8(19),
  24565. 63: uint8(19),
  24566. 64: uint8(20),
  24567. 65: uint8(20),
  24568. 66: uint8(20),
  24569. 67: uint8(20),
  24570. 68: uint8(20),
  24571. 69: uint8(20),
  24572. 70: uint8(20),
  24573. 71: uint8(20),
  24574. 72: uint8(20),
  24575. 73: uint8(20),
  24576. 74: uint8(20),
  24577. 75: uint8(20),
  24578. 76: uint8(20),
  24579. 77: uint8(20),
  24580. 78: uint8(20),
  24581. 79: uint8(20),
  24582. 80: uint8(21),
  24583. 81: uint8(21),
  24584. 82: uint8(21),
  24585. 83: uint8(21),
  24586. 84: uint8(21),
  24587. 85: uint8(21),
  24588. 86: uint8(21),
  24589. 87: uint8(21),
  24590. 88: uint8(21),
  24591. 89: uint8(21),
  24592. 90: uint8(21),
  24593. 91: uint8(21),
  24594. 92: uint8(21),
  24595. 93: uint8(21),
  24596. 94: uint8(21),
  24597. 95: uint8(21),
  24598. 96: uint8(22),
  24599. 97: uint8(22),
  24600. 98: uint8(22),
  24601. 99: uint8(22),
  24602. 100: uint8(22),
  24603. 101: uint8(22),
  24604. 102: uint8(22),
  24605. 103: uint8(22),
  24606. 104: uint8(22),
  24607. 105: uint8(22),
  24608. 106: uint8(22),
  24609. 107: uint8(22),
  24610. 108: uint8(22),
  24611. 109: uint8(22),
  24612. 110: uint8(22),
  24613. 111: uint8(22),
  24614. 112: uint8(23),
  24615. 113: uint8(23),
  24616. 114: uint8(23),
  24617. 115: uint8(23),
  24618. 116: uint8(23),
  24619. 117: uint8(23),
  24620. 118: uint8(23),
  24621. 119: uint8(23),
  24622. 120: uint8(23),
  24623. 121: uint8(23),
  24624. 122: uint8(23),
  24625. 123: uint8(23),
  24626. 124: uint8(23),
  24627. 125: uint8(23),
  24628. 126: uint8(23),
  24629. 127: uint8(23),
  24630. 128: uint8(24),
  24631. 129: uint8(24),
  24632. 130: uint8(24),
  24633. 131: uint8(24),
  24634. 132: uint8(24),
  24635. 133: uint8(24),
  24636. 134: uint8(24),
  24637. 135: uint8(24),
  24638. 136: uint8(24),
  24639. 137: uint8(24),
  24640. 138: uint8(24),
  24641. 139: uint8(24),
  24642. 140: uint8(24),
  24643. 141: uint8(24),
  24644. 142: uint8(24),
  24645. 143: uint8(24),
  24646. 144: uint8(24),
  24647. 145: uint8(24),
  24648. 146: uint8(24),
  24649. 147: uint8(24),
  24650. 148: uint8(24),
  24651. 149: uint8(24),
  24652. 150: uint8(24),
  24653. 151: uint8(24),
  24654. 152: uint8(24),
  24655. 153: uint8(24),
  24656. 154: uint8(24),
  24657. 155: uint8(24),
  24658. 156: uint8(24),
  24659. 157: uint8(24),
  24660. 158: uint8(24),
  24661. 159: uint8(24),
  24662. 160: uint8(25),
  24663. 161: uint8(25),
  24664. 162: uint8(25),
  24665. 163: uint8(25),
  24666. 164: uint8(25),
  24667. 165: uint8(25),
  24668. 166: uint8(25),
  24669. 167: uint8(25),
  24670. 168: uint8(25),
  24671. 169: uint8(25),
  24672. 170: uint8(25),
  24673. 171: uint8(25),
  24674. 172: uint8(25),
  24675. 173: uint8(25),
  24676. 174: uint8(25),
  24677. 175: uint8(25),
  24678. 176: uint8(25),
  24679. 177: uint8(25),
  24680. 178: uint8(25),
  24681. 179: uint8(25),
  24682. 180: uint8(25),
  24683. 181: uint8(25),
  24684. 182: uint8(25),
  24685. 183: uint8(25),
  24686. 184: uint8(25),
  24687. 185: uint8(25),
  24688. 186: uint8(25),
  24689. 187: uint8(25),
  24690. 188: uint8(25),
  24691. 189: uint8(25),
  24692. 190: uint8(25),
  24693. 191: uint8(25),
  24694. 192: uint8(26),
  24695. 193: uint8(26),
  24696. 194: uint8(26),
  24697. 195: uint8(26),
  24698. 196: uint8(26),
  24699. 197: uint8(26),
  24700. 198: uint8(26),
  24701. 199: uint8(26),
  24702. 200: uint8(26),
  24703. 201: uint8(26),
  24704. 202: uint8(26),
  24705. 203: uint8(26),
  24706. 204: uint8(26),
  24707. 205: uint8(26),
  24708. 206: uint8(26),
  24709. 207: uint8(26),
  24710. 208: uint8(26),
  24711. 209: uint8(26),
  24712. 210: uint8(26),
  24713. 211: uint8(26),
  24714. 212: uint8(26),
  24715. 213: uint8(26),
  24716. 214: uint8(26),
  24717. 215: uint8(26),
  24718. 216: uint8(26),
  24719. 217: uint8(26),
  24720. 218: uint8(26),
  24721. 219: uint8(26),
  24722. 220: uint8(26),
  24723. 221: uint8(26),
  24724. 222: uint8(26),
  24725. 223: uint8(26),
  24726. 224: uint8(27),
  24727. 225: uint8(27),
  24728. 226: uint8(27),
  24729. 227: uint8(27),
  24730. 228: uint8(27),
  24731. 229: uint8(27),
  24732. 230: uint8(27),
  24733. 231: uint8(27),
  24734. 232: uint8(27),
  24735. 233: uint8(27),
  24736. 234: uint8(27),
  24737. 235: uint8(27),
  24738. 236: uint8(27),
  24739. 237: uint8(27),
  24740. 238: uint8(27),
  24741. 239: uint8(27),
  24742. 240: uint8(27),
  24743. 241: uint8(27),
  24744. 242: uint8(27),
  24745. 243: uint8(27),
  24746. 244: uint8(27),
  24747. 245: uint8(27),
  24748. 246: uint8(27),
  24749. 247: uint8(27),
  24750. 248: uint8(27),
  24751. 249: uint8(27),
  24752. 250: uint8(27),
  24753. 251: uint8(27),
  24754. 252: uint8(27),
  24755. 253: uint8(27),
  24756. 254: uint8(27),
  24757. 255: uint8(28),
  24758. }
  24759. var Xdeflate_copyright = [68]int8{' ', 'd', 'e', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', 'J', 'e', 'a', 'n', '-', 'l', 'o', 'u', 'p', ' ', 'G', 'a', 'i', 'l', 'l', 'y', ' ', 'a', 'n', 'd', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  24760. var Xinflate_copyright = [47]int8{' ', 'i', 'n', 'f', 'l', 'a', 't', 'e', ' ', '1', '.', '3', '.', '1', ' ', 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '1', '9', '9', '5', '-', '2', '0', '2', '4', ' ', 'M', 'a', 'r', 'k', ' ', 'A', 'd', 'l', 'e', 'r', ' '}
  24761. var Xz_errmsg = [10]uintptr{
  24762. 0: __ccgo_ts + 792,
  24763. 1: __ccgo_ts + 808,
  24764. 2: __ccgo_ts + 31,
  24765. 3: __ccgo_ts + 819,
  24766. 4: __ccgo_ts + 830,
  24767. 5: __ccgo_ts + 843,
  24768. 6: __ccgo_ts + 854,
  24769. 7: __ccgo_ts + 874,
  24770. 8: __ccgo_ts + 887,
  24771. 9: __ccgo_ts + 31,
  24772. }
  24773. var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data
  24774. var __ccgo_ts1 = "1.3.1\x00%s\x00<fd:%d>\x00out of memory\x00\x00%s%s%s\x00: \x00unexpected end of file\x00internal error: inflate stream corrupt\x00compressed data error\x00request does not fit in an int\x00request does not fit in a size_t\x00out of room to push characters\x00internal error: deflate stream corrupt\x00requested length does not fit in int\x00string length does not fit in int\x00invalid block type\x00invalid stored block lengths\x00too many length or distance symbols\x00invalid code lengths set\x00invalid bit length repeat\x00invalid code -- missing end-of-block\x00invalid literal/lengths set\x00invalid distances set\x00invalid literal/length code\x00invalid distance code\x00invalid distance too far back\x00incorrect header check\x00unknown compression method\x00invalid window size\x00unknown header flags set\x00header crc mismatch\x00incorrect data check\x00incorrect length check\x00need dictionary\x00stream end\x00file error\x00stream error\x00data error\x00insufficient memory\x00buffer error\x00incompatible version\x00"