ó ¸ùbc@s3dZddlmZmZmZmZejZejZej Z ej Z d„Z dejfd„ƒYZ yddlZWnek r—dZnXidd6dd6d d 6Zd „Zd „Zddd „Zdd„Zeje je e ƒeje jeƒeje jdƒeje jdƒdS(s0.9iÿÿÿÿ(tImaget ImageFilet ImagePalettet_binarycCs|d dkS(NitGIF87atGIF89a(RR((tprefix((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyt_accept.st GifImageFilecBs>eZdZdZdZd„Zd„Zd„Zd„Z RS(tGIFsCompuserve GIFcCs>|jjdƒ}|r:t|ƒr:|jjt|ƒƒSdS(Ni(tfptreadti8tNone(tselfts((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pytdata<scCs|jjdƒ}|d dkr1tdƒ‚n|d |jdƒ}xštdt |ƒdƒD]}}|dt||ƒko.t||d ƒko.t||dƒknsÜt j d|ƒ}||_ |_ PqÜqÜWn|j|_|jjƒ|_|jdƒdS(Ni iRRsnot a GIF filetversionii iii€i t backgroundiiitRGB(sGIF87asGIF89a(R R t SyntaxErrortinfoti16tsizettileR trangetlenRtrawtglobal_palettetpalettet_GifImageFile__fpttellt_GifImageFile__rewindtseek(RRtflagstbitstpti((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyt_openBs&#  Q  c Cs'|dkr=d|_d|_d|_|jj|jƒn||jdkrctd|ƒ‚n||_g|_|j|_ |jr¼|j j|jƒx|j ƒr¯q Wd|_n|jrÝ|j|_ d|_n|j |_ xtrì|j jdƒ}| s|dkrPqì|dkrÆ|j jdƒ}|j ƒ}t|ƒdkrt|dƒ}|d@r‹t|dƒ|jd ƒƒ|_ nt|j jdƒƒ} |j jƒ|_d||||f|j| | ffg|_PqìqìW|jstdƒ‚nd |_|j r#d |_ndS(!Niiÿÿÿÿiscannot seek to frame %dt;t!iùit transparencyi tdurationitPRiiÿt extensioni s NETSCAPE2.0tloopt,i iiii@i€iRtgifsno more images in GIF filetL( t_GifImageFile__offsetR tdisposet_GifImageFile__frameRR!R t ValueErrorRR RtimRRtTrueR R RRRtcoretfillRtcopytAttributeErrortKeyErrorRRRRtEOFErrortmode( RtframeRtblockR"tx0ty0tx1ty1t interlaceR#((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyR!bsŠ                    (# !) (   cCs|jS(N(R3(R((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyRÑsN( t__name__t __module__tformattformat_descriptionR RRR&R!R(((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyR5s  oNR0t1R+c Cs›tr8ytj|||ƒdSWq8tk r4q8Xnyt|j}|}WnVtk r§tj|jƒdkr|jdƒ}d}q¨|jdƒ}d}nXy|j d}Wntk rÒd}nXx*t |||j ƒD]}|j |ƒqéWd}y|j d}Wntk r0d}nXt |jƒdkrOd}n|rb|d B}ny|j d } Wntk r†nPX|j d td ƒtd ƒtdƒtdƒtt| ƒƒtdƒƒ|j dtdƒtdƒt|jdƒt|jdƒt|ƒtdƒƒd|f|_tj||dd|jd|fgƒ|j dƒ|j dƒy|jƒWnnXdS(NRR+R0RiRDiii@R)R(iùiR.iR/tR'(ii(t _imaging_giftsavetIOErrortRAWMODER=R;Rt getmodebasetconvertt encoderinfoR t getheadertwritetminRto8to16tintt encoderconfigRt_savetflush( R5R tfilenametrawmodetimOutRRR"RDR)((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyRYãs^             IC)  cCswddl}|jƒ}|jdkrA|jd||fƒn|jd||fƒy|j|ƒWnnXdS(NiÿÿÿÿRsppmtogif %s >%ssppmquant 256 %s | ppmtogif >%s(tost_dumpR=tsystemtunlink(R5R R[R^tfile((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyt _save_netpbm3s  c Cs;|o|jddƒ}dt|jdƒt|jdƒtd ƒtdƒtdƒg}|r¦d}d}x6|jƒD]}|r•|}n|d}q€Wnd}|jdkr |d k rßt|tƒrß|}n|j j d ƒ|d  }|j |ƒn.x+t |ƒD]}|j t|ƒd ƒqW|S( s2Return a list of strings representing a GIF headertoptimizeiRiii€iR+Rii‡N( tgetRVRRUt histogramR=R t isinstancetbytesR5t getpalettetappendR( R5RRRdRR%tmaxcolortcountt paletteBytes((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyRRGs&9  icKsàdd d„ƒY}|jƒ|ƒ}z©||_|jdt|dƒt|dƒt|jdƒt|jdƒtdƒtdƒƒtj||dd |jdt|j fgƒ|jdƒWd |`X|j S( sReturn a list of strings representing this image. The first string is a local image header, the rest contains encoded image data.t collectorcBseZgZd„ZRS(cSs|jj|ƒdS(N(RRj(RR((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyRSxs(RERFRRS(((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyRnvsR.iiiR/RJN((ii( tloadRQRSRVRRURRYRNR=R(R5toffsettparamsRnR ((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pytgetdataqs   K0s.gifs image/gif(ii(t __version__tPILRRRRR ti16leRRUto16leRVRRRKt ImportErrorR RNRYRcRRRrt register_openRGt register_savetregister_extensiont register_mime(((s8/usr/lib64/python2.7/site-packages/PIL/GifImagePlugin.pyts."     £    P * '