+
    üÐj*  ã                   ó®   € R t ^ RIt^ RIt^ RIHt ^ RIHt ^RIHt  ! R R4      t	 ! R R4      t
 ! R	 R
]
4      t]
3R ltR t]R8X  d
   ]! 4        R# R# )z"
HTML rendering of Python source.
N)Úescape)ÚList)Úreflectc                   óF   a € ] tR t^t o Rt^ ^utt^ ;ttRt	R t
R tRtV tR# )ÚTokenPrinterzM
Format a stream of tokens and intermediate whitespace, for pretty-printing.
úutf-8c                ó   € Wn         R# )z:
@param writer: A file-like object, opened in bytes mode.
N)Úwriter)Úselfr	   s   &&Ú9/usr/lib/python3/dist-packages/twisted/python/htmlizer.pyÚ__init__ÚTokenPrinter.__init__   s	   € ð Žó    c                óÚ  € \        \        R 4      '       d   V\        P                  8X  d	   W n        R# \	        V\
        4      '       g   VP                  V P                  4      pVw  rgVw  r‰V P                  V8  d8   V P                  RW`P                  ,
          ,          4       V^ uV n        V n	        V P                  RWpP                  ,
          ,          4       V P                  '       d   Rp^V n        M�V\        P                  8X  d8   \        P                  ! V4      '       d   RpMMV P                  '       d   RpM8RpM5\        P                  P!                  V4      pVf   Q hVP#                  4       pV P                  W!4       W�n	        V ;P                  VP%                  R4      ,          un        V P                  V8w  d   ^ V n	        VR	9   V n
        VR8X  d
   ^ V n        R# R# )
ÚENCODINGNó   
ó    Ú
identifierÚkeywordÚ	parameterÚvariableó   :)s   defs   class)ÚhasattrÚtokenizer   ÚencodingÚ
isinstanceÚbytesÚencodeÚcurrentLiner	   Ú
currentColÚlastIdentifierÚ
parametersÚNAMEr   Ú	iskeywordÚtok_nameÚgetÚlowerÚcount)
r
   ÚtypeÚtokenÚsCoordinatesÚeCoordinatesÚlineÚsrowÚscolÚerowÚecols
   &&&&&&    r   Ú
printtokenÚTokenPrinter.printtoken    s}  € Ü”8˜Z×(Ò(¨T´X×5FÑ5FÔ-FØ!ŒMÙä˜%¤×'Ò'Ø—L‘L §¡Ó/ˆEà#‰ˆØ#‰ˆØ×Ñ˜dÔ"Ø�K‰K˜ ×(8Ñ(8Õ!8Õ9Ô:Ø04°aÐ-ˆDÔ˜dœoØ�‰�D˜D§?¡?Õ2Õ3Ô4Ø××ÐØˆDØˆD�OØ”X—]‘]Ô"Ü× Ò  ×'Ò'Ø ‘à—?—?�?Ø&‘Dà%‘Dä×$Ñ$×(Ñ(¨Ó.ˆDØÒ#Ð#Ð#Ø—:‘:“<ˆDØ�‰�EÔ ØŒØ×Ò˜EŸK™K¨Ó.Õ.ÕØ×Ñ˜tÔ#ØˆDŒOØ#Ð'9Ñ9ˆÔØ�DŒ=ØˆDŽOñ r   )r   r   r   r    r!   r	   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r    r!   r   r   r1   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s6   ø‡ € ñð   Ð€J�Ø"#Ð#€N�ZØ€Hò÷$ ð $ r   r   c                   óD   a € ] tR t^Gt o Rt. tR tRR ltV 3R ltRt	V t
R# )Ú
HTMLWriterza
Write the stream of tokens and whitespace from L{TokenPrinter}, formating
tokens as HTML spans.
c                óf   € Wn         . p\        P                  ! V P                  R V4       W n        R# )ÚnoSpanN)r	   r   ÚaccumulateClassListÚ	__class__r?   )r
   r	   r?   s   && r   r   ÚHTMLWriter.__init__O   s'   € ØŒØˆÜ×#Ò# D§N¡N°H¸fÔEØŽr   Nc                óR  € \        V\        4      '       d   VP                  R 4      p\        V4      pVP	                  R 4      pVe   W P
                  9   d   V P                  V4       R# V P                  RVP	                  R 4      ,           R,           V,           R,           4       R# )r   Ns   <span class="py-src-s   ">s   </span>)r   r   Údecoder   r   r?   r	   )r
   r)   r(   s   &&&r   ÚwriteÚHTMLWriter.writeU   sŠ   € Ü�eœU×#Ò#Ø—L‘L Ó)ˆEÜ�u“ˆØ—‘˜WÓ%ˆØŠL˜d§k¡kÔ1Ø�K‰K˜Öà�K‰KØ'Ø—+‘+˜gÓ&õ'àõð õð õ	ör   c                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )é   r?   )r   Ústr)Úformatr;   s   "€r   Ú__annotate__ÚHTMLWriter.__annotate__G   s   ø‡ ‚ ñ ‘�IÑò r   )r?   r	   )N)r3   r4   r5   r6   r7   r?   r   rE   Ú__annotate_func__r8   r9   r:   s   @r   r=   r=   G   s"   ø‡ € ñð
 €Fòô÷ ƒ r   r=   c                   ó"   € ] tR t^ftRt. ROtRtR# )ÚSmallerHTMLWriterz]
HTMLWriter that doesn't generate spans for some junk.

Results in much smaller HTML output.
© N)Ú	endmarkerÚindentÚdedentÚopÚnewlineÚnl)r3   r4   r5   r6   r7   r?   r8   rP   r   r   rO   rO   f   s   † ñò F„Fr   rO   c                 óN  € VP                  R 4       \        V! VP                   4      P                   4      P                  p \        P                  ! V P                  4       F  pVw  rVrxp	V! WVWxV	4       K  	  VP                  R4       R#   \        P
                   d     L*i ; i)s   <pre>s   </pre>
N)rE   r   r1   r   ÚreadlineÚ
TokenError)
ÚinpÚoutr	   Úprinterr)   Ú	tokenTypeÚstringÚstartÚendr,   s
   &&&       r   Úfilterra   p   s‹   € Ø‡I�IˆhÔÜ™6 #§)¡)Ó,×2Ñ2Ó3×>Ñ>€GðÜ×&Ò& s§|¡|Ö4ˆEØ49Ñ1ˆY ¨DÙ�I u°4Ö8ñ 5ð
 ‡I�IˆkÖøô ×Ñô Ùðús   Á7B ÂB$Â#B$c                  óê   € ^ RI p \        V P                  RV P                  4      p\        V P                  ^,          R4      ;_uu_ 4       p\        W!4       RRR4       R#   + '       g   i     R# ; i)é    NÚbufferÚrb)ÚsysÚgetattrÚstdoutÚopenÚargvra   )rf   rh   Úfs      r   Úmainrl   |   sI   € Ûä�S—Z‘Z ¨3¯:©:Ó6€FÜ	ˆc�h‰h�q�k˜4×	 Ô	  AÜˆqÔ÷ 
!×	 ×	 Ò	 ús   ÁA!Á!A2	Ú__main__)r7   r   r   Úhtmlr   Útypingr   Ú r   r   r=   rO   ra   rl   r3   rP   r   r   Ú<module>rq      sa   ðñ
ó Û Ý Ý å ÷3 ñ 3 ÷lñ ô>F˜
ô Fð 'ô 	òð ˆzÔÙ†Fñ r   