mò mã¸Ec@s{dkZdklZdkZdfd„ƒYZdfd„ƒYZdeifd„ƒYZdeifd „ƒYZ dS( N(sStringIOt GzipConsumercBs,tZd„Zd„Zd„Zd„ZRS(NcCs||_d|_d|_dS(Nt(tconsumertselft_GzipConsumer__consumertNonet_GzipConsumer__decodert_GzipConsumer__data(RR((t./data/zmath/zope/lib/python/mechanize/_gzip.pyt__init__s  cCst|i|ƒS(N(tgetattrRRtkey(RR ((Rt __getattr__ scCsÙ|idjo˜|i|}y<d}t|dƒ}|d@o8t||ƒdt||dƒ}|d|}n|d@o1x t||ƒo|d}q‡W|d}n|d@o1x t||ƒo|d}qÃW|d}n|d@o|d}nt |ƒ|jot d ƒ‚n|d d jot d ƒ‚n||}Wn t j o||_dSnXdk }d |_|i |i ƒ|_n|ii|ƒ}|o|ii|ƒndS( Ni iiiiiiisnot enough datas‹sinvalid gzip dataR(RRRRtdatatitordtflagtxtlent IndexErrortIOErrortzlibt decompressobjt MAX_WBITSt decompressRtfeed(RR RRRR((RRsD  &       cCsI|io.|iiƒ}|o|ii|ƒq8n|iiƒdS(N(RRtflushR RRtclose(RR ((RR3s  (t__name__t __module__R R RR(((RRs   #tstupid_gzip_consumercBstZd„Zd„ZRS(NcCs g|_dS(N(RR (R((RR AscCs|ii|ƒdS(N(RR tappend(RR ((RRBs(RRR R(((RR@s tstupid_gzip_wrappercBs>tZd„Zdd„Zdd„Zdd„Zd„ZRS(NcCsP||_tƒ}t|ƒ}|i|iƒƒt di |i ƒƒ|_ dS(NR( tresponseRt _responseRtcRtgzcRtreadtStringIOtjoinR t_stupid_gzip_wrapper__data(RR!R#R$((RR Es    iÿÿÿÿcCs|ii|ƒS(N(RR(R%tsize(RR)((RR%MscCs|ii|ƒS(N(RR(treadlineR)(RR)((RR*OscCs|iitƒS(N(RR(t readlinesR)(Rtsizehint((RR+QscCst|i|ƒS(N(R RR"tname(RR-((RR Ts(RRR R%R*R+R (((RR Ds     tHTTPGzipProcessorcBs&tZdZd„Zd„ZeZRS(NiÈcCs|iddƒ|S(NsAccept-Encodingtgzip(trequestt add_header(RR0((Rt http_request[scCsR|iƒidƒ}x6|D].}d|jp d|jot|ƒSqqW|S(NsContent-encodingR/tcompress(R!tinfot getheaderstenc_hdrstenc_hdrR (RR0R!R7R6((Rt http_response_s (RRt handler_orderR2R8thttps_response(((RR.Xs  ( turllib2t cStringIOR&t_utilRRtcloseable_responseR t BaseHandlerR.(R.R&R R;R=RR((Rt?s   :