Ë
    =²Xj|E  ã                   ó$  — d Z ddlZddlZddgZ ej                  d«      Z ej                  d«      Z ej                  d«      Z ej                  d«      Z ej                  d	«      Z	 ej                  d
«      Z
 ej                  d«      Z ej                  d«      Z ej                  d«      Z ej                  d«      Z ej                  d«      Z G d„ de«      Z G d„ dej$                  «      Z G d„ de«      Zdd„Zedk(  r e«        yy)z;A parser for SGML, using the derived class as a static DTD.é    NÚ
SGMLParserÚSGMLParseErrorz[&<]zN&([a-zA-Z][a-zA-Z0-9]*|#[0-9]*)?|<([a-zA-Z][^<>]*|/([a-zA-Z][^<>]*)?|![^<>]*)?z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z&#([0-9]+)[^0-9]z
<[>a-zA-Z]z<[a-zA-Z][-.a-zA-Z0-9]*/z"<([a-zA-Z][-.a-zA-Z0-9]*)/([^/]*)/Ú>z[<>]z[a-zA-Z][-_.a-zA-Z0-9]*ze\s*([a-zA-Z_][-:.a-zA-Z_0-9]*)(\s*=\s*(\'[^\']*\'|"[^"]*"|[][\-a-zA-Z0-9./,:;+*%?!&$\(\)_#=~\'"@]*))?c                   ó   — e Zd ZdZy)r   z&Exception raised for all parse errors.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úM/var/www/html/content_generation/venv/lib/python3.12/site-packages/sgmllib.pyr   r   &   s   „ Ù0Ør   c                   ó  — e Zd Z ej                  d«      Zd*d„Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZddddddœZd„ Zd „ Zd!„ Z d"„ Z!d#„ Z"d$„ Z#d%„ Z$d&„ Z%d'„ Z&d(„ Z'y))+r   z+&(?:([a-zA-Z][-.a-zA-Z0-9]*)|#([0-9]+))(;?)c                 ó2   — || _         | j                  «        y)z#Initialize and reset this instance.N)ÚverboseÚreset©Úselfr   s     r   Ú__init__zSGMLParser.__init__<   s   € àˆŒØ�
‰
�r   c                 ó–   — d| _         d| _        g | _        d| _        d| _        d| _        t        j                  j                  | «       y)z0Reset this instance. Loses all unprocessed data.NÚ z???r   )	Ú_SGMLParser__starttag_textÚrawdataÚstackÚlasttagÚ
nomoretagsÚliteralÚ_markupbaseÚ
ParserBaser   ©r   s    r   r   zSGMLParser.resetA   sA   € à#ˆÔØˆŒØˆŒ
ØˆŒØˆŒØˆŒÜ×Ñ×$Ñ$ TÕ*r   c                 ó    — dx| _         | _        y)zYEnter literal mode (CDATA) till EOF.

        Intended for derived classes only.
        é   N)r   r   r   s    r   ÚsetnomoretagszSGMLParser.setnomoretagsK   s   € ð
 *+Ð*ˆŒ˜$�,r   c                 ó   — d| _         y)zPEnter literal mode (CDATA).

        Intended for derived classes only.
        r!   N)r   )r   Úargss     r   Ú
setliteralzSGMLParser.setliteralR   s   € ð
 ˆ�r   c                 óN   — | j                   |z   | _         | j                  d«       y)zãFeed some data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '
').  (This just saves the text,
        all the processing is done by goahead().)
        r   N)r   Úgoahead©r   Údatas     r   ÚfeedzSGMLParser.feedY   s   € ð —|‘| dÑ*ˆŒØ�‰�Q�r   c                 ó&   — | j                  d«       y)zHandle the remaining data.r!   N)r'   r   s    r   ÚclosezSGMLParser.closed   s   € à�‰�Q�r   c                 ó   — t        |«      ‚©N)r   )r   Úmessages     r   ÚerrorzSGMLParser.errorh   s   € Ü˜WÓ%Ð%r   c                 óØ  — | j                   }d}t        |«      }||k  �r$| j                  r| j                  ||| «       |}�n t        j                  ||«      }|r|j                  «       }n|}||k  r| j                  ||| «       |}||k(  r�n³||   dk(  �rIt        j                  ||«      rA| j                  r| j                  ||   «       |dz   }Œ¼| j                  |«      }|dk  r�nV|}Œ×|j                  d|«      r#| j                  |«      }|dk  r�n)|}d| _	        �Œ| j                  r#||dz   kD  r| j                  d«       |dz   }n�nñ�Œ;|j                  d|«      r| j                  |«      }|dk  r�nÅ|}�Œi|j                  d|«      r| j                  |«      }|dk  r�n—||z   }�Œš|j                  d|«      �r| j                  |«      }|dk  r�ne|}�ŒÉ||   dk(  rá| j                  r| j                  ||   «       |dz   }�Œøt         j                  ||«      }|rE|j#                  d«      }| j%                  |«       |j'                  d«      }||dz
     d	k7  r|dz
  }�ŒUt(        j                  ||«      }|rV|j#                  d«      }| j+                  |«       |j'                  d«      }||dz
     d	k7  r|dz
  }�Œ²| j-                  d
«       t.        j                  ||«      }|s| j                  ||   «       |dz   }�Œö|j'                  d«      }||k(  rn| j                  ||| «       |}||k  r�Œ$|r||k  r| j                  ||| «       |}||d  | _         y )Nr   Ú<r!   z</z<!--ú<?z<!Ú&Ú;zneither < nor & ??)r   Úlenr   Úhandle_dataÚinterestingÚsearchÚstartÚstarttagopenÚmatchr   Úparse_starttagÚ
startswithÚparse_endtagÚparse_commentÚparse_piÚparse_declarationÚcharrefÚgroupÚhandle_charrefÚendÚ	entityrefÚhandle_entityrefr0   Ú
incomplete)	r   rF   r   ÚiÚnr<   ÚjÚkÚnames	            r   r'   zSGMLParser.goaheadn   s  € Ø—,‘,ˆØˆÜ�‹LˆØ�!‹eØ�ŠØ× Ñ  ¨¨1 Ô.Ø�ÙÜ×&Ñ& w°Ó2ˆEÙ˜%Ÿ+™+›-‘aØ�!Ø�1ŠuØ× Ñ  ¨¨1 Ô.ØˆAØ�AŠv‘uØ�q‰z˜SÓ Ü×%Ñ% g¨qÔ1Ø—|’|Ø×(Ñ(¨°©Ô4Ø˜a™C˜Ø Ø×+Ñ+¨AÓ.�AØ˜1’u™eØ�AØØ×%Ñ% d¨AÔ.Ø×)Ñ)¨!Ó,�AØ˜1’u™eØ�AØ#$�D”LÙØ—<’<Ø˜A ™E’{Ø×(Ñ(¨Ô-Ø˜a™C™ñ ÙØ×%Ñ% f¨aÔ0ð
 ×*Ñ*¨1Ó-�AØ˜1’u™eØ�AÙØ×%Ñ% d¨AÔ.ØŸ™ aÓ(�AØ˜1’u™eØ˜!™�AÙØ×%Ñ% d¨AÕ.ð ×.Ñ.¨qÓ1�AØ˜1’u™eØ�AÙØ˜‘˜sÒ"Ø—<’<Ø×$Ñ$ W¨Q¡ZÔ0Ø˜!™�AÙÜŸ™ g¨qÓ1�ÙØ Ÿ;™; q›>�DØ×'Ñ'¨Ô-ØŸ	™	 !›�AØ˜q ™s‘| sÒ*°°!±¨AÙÜ!Ÿ™¨°Ó3�ÙØ Ÿ;™; q›>�DØ×)Ñ)¨$Ô/ØŸ	™	 !›�AØ˜q ™s‘| sÒ*°°!±¨AÙà—
‘
Ð/Ô0ô ×$Ñ$ W¨aÓ0ˆEÙØ× Ñ  ¨¡Ô,Ø�a‘C�ÙØ—	‘	˜!“ˆAØ�AŠvØØ×Ñ˜W Q q˜\Ô*ØˆAðu �!Œeñx �1�q’5Ø×Ñ˜W Q q˜\Ô*ØˆAØ˜q˜r�{ˆ�r   Ú=c                 ó  — | j                   }|||dz    dk7  r| j                  d«       t        j                  ||dz   «      }|sy|j	                  d«      }| j                  ||dz   | «       |j                  d«      }||z
  S )Né   r3   zunexpected call to parse_pi()éÿÿÿÿr   )r   r0   Úpicloser9   r:   Ú	handle_pirF   )r   rJ   r   r<   rL   s        r   rA   zSGMLParser.parse_piØ   s}   € Ø—,‘,ˆØ�1�Q�q‘Sˆ>˜TÒ!Ø�J‰JÐ6Ô7Ü—‘˜w¨¨!©Ó,ˆÙØØ�K‰K˜‹NˆØ�‰�w˜q ™s A�Ô'Ø�I‰I�a‹LˆØ�‰sˆ
r   c                 ó   — | j                   S r.   )r   r   s    r   Úget_starttag_textzSGMLParser.get_starttag_textä   s   € Ø×#Ñ#Ð#r   c                 óŽ  — d | _         |}| j                  }t        j                  ||«      r‰t        j                  ||«      }|sy|j                  dd«      \  }}d|z  | _         |j                  «       }|j                  d«      }| j                  ||«       |||j                  d«      dz    | _         |S t        j                  ||dz   «      }|sy|j                  d«      }g }	|||dz    dk(  r|}| j                  }nZt        j                  ||dz   «      }|s| j                  d«       |j                  d«      }||dz   | j                  «       }|| _        ||k  r¿t        j                  ||«      }|sn¦|j                  ddd«      \  }
}}|s|
}nR|d d d	cxk(  r|dd  k(  sn |d d d
cxk(  r|dd  k(  rn n|dd }| j                   j#                  | j$                  |«      }|	j'                  |
j                  «       |f«       |j                  d«      }||k  rŒ¿||   dk(  r|dz   }||| | _         | j)                  ||	«       |S )NrR   r!   rQ   z<%s/r   z<>z!unexpected call to parse_starttagé   Ú'Ú"r   )r   r   Úshorttagopenr<   ÚshorttagrD   ÚlowerrF   Úfinish_shorttagÚ
endbracketr9   r:   r   Útagfindr0   ÚattrfindÚentity_or_charrefÚsubÚ_convert_refÚappendÚfinish_starttag)r   rJ   Ú	start_posr   r<   Útagr)   rM   rL   ÚattrsÚattrnameÚrestÚ	attrvalues                r   r=   zSGMLParser.parse_starttagè   sM  € Ø#ˆÔØˆ	Ø—,‘,ˆÜ×Ñ˜g qÔ)ô
 —N‘N 7¨AÓ.ˆEÙØØŸ™ A qÓ)‰IˆC�Ø#)¨C¡<ˆDÔ Ø—)‘)“+ˆCØ—	‘	˜!“ˆAØ× Ñ   dÔ+Ø#*¨9°U·Y±Y¸q³\ÀAÑ5EÐ#FˆDÔ ØˆHô
 ×!Ñ! '¨1¨Q©3Ó/ˆÙØØ�K‰K˜‹NˆàˆØ�1�Q�q‘Sˆ>˜TÒ!àˆAØ—,‘,‰Cä—M‘M '¨1¨Q©3Ó/ˆEÙØ—
‘
Ð>Ô?Ø—	‘	˜!“ˆAØ˜!˜A™#˜a�.×&Ñ&Ó(ˆCØˆDŒLØ�!ŠeÜ—N‘N 7¨AÓ.ˆEÙ˜%Ø(-¯©°A°q¸!Ó(<Ñ%ˆH�d˜IÙØ$‘	à˜b˜q�M SÔ:¨I°b°c¨NÔ:Ø˜b˜q�M SÔ:¨I°b°c¨NÕ:à )¨!¨B �IØ ×2Ñ2×6Ñ6Ø×%Ñ% yó2�	à�L‰L˜(Ÿ.™.Ó*¨IÐ6Ô7Ø—	‘	˜!“ˆAð �!‹eð �1‰:˜ÒØ�!‘ˆAØ& y°Ð3ˆÔØ×Ñ˜S %Ô(Øˆr   c                 óJ  — |j                  d«      r8| j                  |j                  d«      «      xs d|j                  «       dd  z  S |j                  d«      r6| j                  |j                  d«      «      xs d|j                  d«      z  S d|j                  d«      z  S )NrQ   z&#%s%sr!   rX   z&%s;z&%s)rD   Úconvert_charrefÚgroupsÚconvert_entityref)r   r<   s     r   rd   zSGMLParser._convert_ref&  s’   € Ø�;‰;�qŒ>Ø×'Ñ'¨¯©°A«Ó7ò .Ø˜5Ÿ<™<›>¨!¨"Ð-Ñ-ð.à�[‰[˜Œ^Ø×)Ñ)¨%¯+©+°a«.Ó9ò (Ø˜Ÿ™ Q›Ñ'ð(ð ˜5Ÿ;™; q›>Ñ)Ð)r   c                 óü   — | j                   }t        j                  ||dz   «      }|sy|j                  d«      }||dz   | j	                  «       j                  «       }||   dk(  r|dz   }| j                  |«       |S )Nr!   rR   r   rQ   r   )r   r_   r9   r:   Ústripr]   Úfinish_endtag)r   rJ   r   r<   rL   rh   s         r   r?   zSGMLParser.parse_endtag1  s}   € Ø—,‘,ˆÜ×!Ñ! '¨1¨Q©3Ó/ˆÙØØ�K‰K˜‹NˆØ�a˜‘c˜!ˆn×"Ñ"Ó$×*Ñ*Ó,ˆØ�1‰:˜ÒØ�!‘ˆAØ×Ñ˜3ÔØˆr   c                 ól   — | j                  |g «       | j                  |«       | j                  |«       y r.   )rf   r7   rs   )r   rh   r)   s      r   r^   zSGMLParser.finish_shorttag>  s.   € Ø×Ñ˜S "Ô%Ø×Ñ˜ÔØ×Ñ˜3Õr   c                 ó(  — 	 t        | d|z   «      }| j                  j                  |«       | j                  |||«       y# t        $ rH 	 t        | d|z   «      }| j                  |||«       Y y# t        $ r | j                  ||«       Y Y yw xY ww xY w)NÚstart_r!   Údo_r   rR   )Úgetattrr   re   Úhandle_starttagÚAttributeErrorÚunknown_starttag)r   rh   ri   Úmethods       r   rf   zSGMLParser.finish_starttagE  s¡   € ð	Ü˜T 8¨c¡>Ó2ˆFð �J‰J×Ñ˜cÔ"Ø× Ñ   f¨eÔ4Øøô ò 	ðÜ   u¨s¡{Ó3�ð
 ×$Ñ$ S¨&°%Ô8Ùøô "ò Ø×%Ñ% c¨5Ô1Úðúð	ús/   ‚A  Á 	BÁ
A.ÁBÁ.BÂ	BÂBÂBc                 ó¤  — |s/t        | j                  «      dz
  }|dk  r|| j                  |«       y || j                  vr"	 t        | d|z   «      }| j	                  |«       y t        | j                  «      }t        |«      D ]  }| j                  |   |k(  sŒ|}Œ t        | j                  «      |kD  rl| j                  d   }	 t        | d|z   «      }|r| j                  ||«       n| j                  |«       | j                  d= t        | j                  «      |kD  rŒky y # t
        $ r | j                  |«       Y y w xY w# t
        $ r d }Y Œ{w xY w)Nr!   r   Úend_rR   )r6   r   Úunknown_endtagrx   Úreport_unbalancedrz   ÚrangeÚhandle_endtag)r   rh   Úfoundr|   rJ   s        r   rs   zSGMLParser.finish_endtagW  s=  € ÙÜ˜Ÿ
™
“O aÑ'ˆEØ�qŠyØ×#Ñ# CÔ(Øà˜$Ÿ*™*Ñ$ð0Ü$ T¨6°C©<Ó8�Fð ×*Ñ*¨3Ô/ØÜ˜Ÿ
™
“OˆEÜ˜5–\�Ø—:‘:˜a‘= CÓ'°©ð "ä�$—*‘*‹o Ò%Ø—*‘*˜R‘.ˆCðÜ   v°¡|Ó4�ñ Ø×"Ñ" 3¨Õ/à×#Ñ# CÔ(Ø—
‘
˜2�ô �$—*‘*‹o Õ%øô &ò -Ø×'Ñ'¨Õ,ð ð	-ûô "ò Ø’ðús$   ÁD! ÃE Ä!D>Ä=D>ÅEÅEc                 ó   —  ||«       y r.   r   )r   rh   r|   ri   s       r   ry   zSGMLParser.handle_starttagv  s	   € Ùˆu�r   c                 ó   —  |«        y r.   r   )r   rh   r|   s      r   r‚   zSGMLParser.handle_endtagz  s   € Ù�r   c                 ól   — | j                   r(t        d|z   dz   «       t        d| j                  «       y y )Nz*** Unbalanced </r   z
*** Stack:)r   Úprintr   ©r   rh   s     r   r€   zSGMLParser.report_unbalanced~  s/   € Ø�<Š<ÜÐ%¨Ñ+¨cÑ1Ô2Ü�, §
¡
Õ+ð r   c                 óv   — 	 t        |«      }d|cxk  rdk  sy y| j                  |«      S # t        $ r Y yw xY w)z/Convert character reference, may be overridden.Nr   é   )ÚintÚ
ValueErrorÚconvert_codepoint)r   rN   rK   s      r   rn   zSGMLParser.convert_charrefƒ  sM   € ð	Ü�D“	ˆAð �AŒ}˜Š}Øð ØØ×%Ñ% aÓ(Ð(øô	 ò 	Ùð	ús   ‚, ¬	8·8c                 ó   — t        |«      S r.   )Úchr)r   Ú	codepoints     r   r�   zSGMLParser.convert_codepoint�  s   € Ü�9‹~Ðr   c                 óp   — | j                  |«      }|€| j                  |«       y| j                  |«       y)z0Handle character reference, no need to override.N)rn   Úunknown_charrefr7   ©r   rN   Úreplacements      r   rE   zSGMLParser.handle_charref�  s4   € à×*Ñ*¨4Ó0ˆØÐØ× Ñ  Õ&à×Ñ˜[Õ)r   r2   r   r4   rZ   rY   )ÚltÚgtÚampÚquotÚaposc                 ó.   — | j                   }||v r||   S y)zµConvert entity references.

        As an alternative to overriding this method; one can tailor the
        results by setting up the self.entitydefs mapping appropriately.
        N)Ú
entitydefs)r   rN   Útables      r   rp   zSGMLParser.convert_entityrefœ  s!   € ð —‘ˆØ�5‰=Ø˜‘;Ðàr   c                 óp   — | j                  |«      }|€| j                  |«       y| j                  |«       y)z.Handle entity references, no need to override.N)rp   Úunknown_entityrefr7   r“   s      r   rH   zSGMLParser.handle_entityref¨  s4   € à×,Ñ,¨TÓ2ˆØÐØ×"Ñ" 4Õ(à×Ñ˜[Õ)r   c                  ó   — y r.   r   r(   s     r   r7   zSGMLParser.handle_data±  ó   € Ør   c                  ó   — y r.   r   r(   s     r   Úhandle_commentzSGMLParser.handle_commentµ  r    r   c                  ó   — y r.   r   )r   Údecls     r   Úhandle_declzSGMLParser.handle_decl¹  r    r   c                  ó   — y r.   r   r(   s     r   rT   zSGMLParser.handle_pi½  r    r   c                  ó   — y r.   r   )r   rh   ri   s      r   r{   zSGMLParser.unknown_starttagÁ  s   € ¨Dr   c                  ó   — y r.   r   rˆ   s     r   r   zSGMLParser.unknown_endtagÂ  s   €  4r   c                  ó   — y r.   r   ©r   Úrefs     r   r’   zSGMLParser.unknown_charrefÃ  s   €  Dr   c                  ó   — y r.   r   rª   s     r   rž   zSGMLParser.unknown_entityrefÄ  s   €  dr   N©r   )(r   r   r	   ÚreÚcompilerb   r   r   r"   r%   r*   r,   r0   r'   Ú_decl_othercharsrA   rV   r=   rd   r?   r^   rf   rs   ry   r‚   r€   rn   r�   rE   r›   rp   rH   r7   r¢   r¥   rT   r{   r   r’   rž   r   r   r   r   r   6   sÒ   „ à"˜Ÿ
™
ð $ó Ðóò
+ò+òò	òò&òc#ðN Ðò
ò$ò;ò|*ò
ò òò$ò>òò,ò
)òò*ð ˜c¨#°sÀDÑIð ò
ò*òòòòò 1Ú'Ú(Û*r   c                   óJ   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚTestSGMLParserc                 ó>   — d| _         t        j                  | |«       y )Nr   )Útestdatar   r   r   s     r   r   zTestSGMLParser.__init__É  s   € ØˆŒÜ×Ñ˜D 'Õ*r   c                 ó�   — | j                   |z   | _         t        t        | j                   «      «      dk\  r| j                  «        y y )NéF   )r´   r6   ÚreprÚflushr(   s     r   r7   zTestSGMLParser.handle_dataÍ  s6   € ØŸ™¨Ñ,ˆŒÜŒt�D—M‘MÓ"Ó# rÒ)Ø�J‰J�Lð *r   c                 óZ   — | j                   }|rd| _         t        dt        |«      «       y y )Nr   zdata:)r´   r‡   r·   r(   s     r   r¸   zTestSGMLParser.flushÒ  s(   € Ø�}‰}ˆÙØˆDŒMÜ�'œ4 ›:Õ&ð r   c                 óŠ   — | j                  «        t        |«      }t        |«      dkD  r|d d dz   |dd  z   }t        d|«       y )NéD   é    z...iàÿÿÿzcomment:)r¸   r·   r6   r‡   )r   r)   Úrs      r   r¢   zTestSGMLParser.handle_commentØ  sC   € Ø�
‰
ŒÜ�‹JˆÜˆq‹6�BŠ;Ø�#�2�˜‘  3 4 Ñ(ˆAÜˆj˜!Õr   c                 óÈ   — | j                  «        |st        d|z   dz   «       y t        d|z   d¬«       |D ]  \  }}t        |dz   dz   |z   dz   d¬«       Œ  t        d«       y )Nzstart tag: <r   Ú )rF   rO   rZ   ©r¸   r‡   )r   rh   ri   rN   Úvalues        r   r{   zTestSGMLParser.unknown_starttagß  sa   € Ø�
‰
ŒÙÜ�. 3Ñ&¨Ñ,Õ-ä�. 3Ñ&¨CÕ0Û$‘��eÜ�d˜S‘j 3Ñ&¨Ñ.°Ñ4¸#Ö>ð  %ä�#�Jr   c                 óF   — | j                  «        t        d|z   dz   «       y )Nzend tag: </r   rÀ   rˆ   s     r   r   zTestSGMLParser.unknown_endtagé  s   € Ø�
‰
ŒÜˆm˜cÑ! CÑ'Õ(r   c                 óF   — | j                  «        t        d|z   dz   «       y )Nz*** unknown entity ref: &r5   rÀ   rª   s     r   rž   z TestSGMLParser.unknown_entityrefí  s   € Ø�
‰
ŒÜÐ)¨CÑ/°#Ñ5Õ6r   c                 óF   — | j                  «        t        d|z   dz   «       y )Nz*** unknown char ref: &#r5   rÀ   rª   s     r   r’   zTestSGMLParser.unknown_charrefñ  s   € Ø�
‰
ŒÜÐ(¨3Ñ.°Ñ4Õ5r   c                 óF   — | j                  «        t        d|z   dz   «       y )Nz*** unknown decl: [Ú]rÀ   r(   s     r   Úunknown_declzTestSGMLParser.unknown_declõ  s   € Ø�
‰
ŒÜÐ# dÑ*¨SÑ0Õ1r   c                 óN   — t         j                  | «       | j                  «        y r.   )r   r,   r¸   r   s    r   r,   zTestSGMLParser.closeù  s   € Ü×Ñ˜ÔØ�
‰
�r   Nr­   )r   r   r	   r   r7   r¸   r¢   r{   r   rž   r’   rÇ   r,   r   r   r   r²   r²   Ç  s4   „ ó+òò
'òòò)ò7ò6ò2ór   r²   c                 óÚ  — dd l }| €|j                  dd  } | r| d   dk(  r| dd  } t        }nt        }| r| d   }nd}|dk(  r|j                  }n	 t        |d«      }j                  «       }||j                  ur|j                  «         |«       }|D ]  }|j                  |«       Œ |j                  «        y # t        $ r(}t        |d|«       |j                  d«       Y d }~ŒŠd }~ww xY w)Nr   r!   z-sz	test.htmlÚ-r½   Ú:)ÚsysÚargvr   r²   ÚstdinÚopenÚIOErrorr‡   ÚexitÚreadr,   r*   )	r$   rÌ   ÚklassÚfileÚfÚmsgr)   ÚxÚcs	            r   ÚtestrÙ   þ  sÞ   € Ûà€|Ø�x‰x˜˜ˆ|ˆá��Q‘˜4’Ø�A�BˆxˆÜ‰äˆáØ�A‰w‰àˆàˆs‚{Ø�I‰I‰ð	Ü�T˜3“ˆAð
 �6‰6‹8€DØ�—	‘	ÑØ	�‰Œ	á‹€AÛˆØ	�‰ˆq�	ð à‡G�G…Iøô ò 	Ü�$˜˜SÔ!Ø�H‰H�Q�K‰Kûð	ús   ÁB9 Â9	C*ÃC%Ã%C*Ú__main__r.   )r
   r   r®   Ú__all__r¯   r8   rI   rG   rC   r;   r[   r\   rS   r_   r`   ra   ÚRuntimeErrorr   r   r   r²   rÙ   r   r   r   r   Ú<module>rÝ      s'  ðÙ Aó Û 	àÐ)Ð
*€ð ˆb�j‰j˜Ó €ØˆR�Z‰Zð *ó +€
ð
 ˆB�J‰JÐ>Ó?€	Ø
ˆ"�*‰*Ð'Ó
(€àˆr�z‰z˜,Ó'€Øˆr�z‰zÐ4Ó5€Øˆ2�:‰:Ð:Ó;€Ø
ˆ"�*‰*�S‹/€ØˆR�Z‰Z˜Ó€
Ø
ˆ"�*‰*Ð.Ó
/€Øˆ2�:‰:ðGóH€ô
	�\ô 	ô N+�×'Ñ'ô N+ôb4�Zô 4ón!ðH ˆzÒÙ…Fð r   