§
     MºfªJ  ã                   ód  — d Z dgZddlZddlZddlmZmZmZmZm	Z	 ddl
mZmZ ddlZddlmZmZ ddl
mZmZmZmZ 	 ddlmZ d	Zn# e$ rZdd
lmZ dZY dZ[ndZ[ww xY w G d„ de	¦  «        Z G d„ dej        ¦  «        Z G d„ de¦  «        Z  G d„ dej!        ¦  «        Z" G d„ de"¦  «        Z#dS )ÚMITÚHTML5TreeBuilderé    N)ÚDetectsXMLParsedAsHTMLÚ
PERMISSIVEÚHTMLÚHTML_5ÚHTMLTreeBuilder)ÚNamespacedAttributeÚnonwhitespace_re)Ú
namespacesÚprefixes)ÚCommentÚDoctypeÚNavigableStringÚTag)Ú_baseF)ÚbaseTc                   óB   — e Zd ZdZdZeeeegZdZ		 d	d„Z
d„ Zd„ Zd„ ZdS )
r   a  Use html5lib to build a tree.

    Note that this TreeBuilder does not support some features common
    to HTML TreeBuilders. Some of these features could theoretically
    be implemented, but at the very least it's quite difficult,
    because html5lib moves the parse tree around as it's being built.

    * This TreeBuilder doesn't use different subclasses of NavigableString
      based on the name of the tag in which the string was found.

    * You can't use a SoupStrainer to parse only part of a document.
    Úhtml5libTNc              #   ó„   K  — || _         |rt          j        dd¬¦  «         t          j        |d¬¦  «         |d d dfV — d S )NzjYou provided a value for exclude_encoding, but the html5lib tree builder doesn't support exclude_encoding.é   ©Ú
stacklevelF)Úuser_specified_encodingÚwarningsÚwarnr   Úwarn_if_markup_looks_like_xml)ÚselfÚmarkupr   Údocument_declared_encodingÚexclude_encodingss        úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/bs4/builder/_html5lib.pyÚprepare_markupzHTML5TreeBuilder.prepare_markup@   sw   è è € ð (?ˆÔ$ð
 ð 	ÝŒMØ|Øðñ ô ð õ 	Ô<Ø˜qð	
ñ 	
ô 	
ð 	
ð �t˜T 5Ð)Ð)Ð)Ð)Ð)Ð)ó    c                 óö  — | j         j        �t          j        dd¬¦  «         t	          j        | j        ¬¦  «        }|| j        _        t          ¦   «         }t          |t          ¦  «        st          r| j        |d<   n
| j        |d<    |j        |fi |¤Ž}t          |t          ¦  «        rd |_        n:|j        j        j        d         }t          |t          ¦  «        s|j        }||_        d | j        _        d S )Nz‚You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.é   r   )ÚtreeÚoverride_encodingÚencodingr   )ÚsoupÚ
parse_onlyr   r   r   Ú
HTMLParserÚcreate_treebuilderÚunderlying_builderÚparserÚdictÚ
isinstanceÚstrÚnew_html5libr   ÚparseÚoriginal_encodingÚ	tokenizerÚstreamÚcharEncodingÚname)r   r   r/   Úextra_kwargsÚdocr5   s         r"   ÚfeedzHTML5TreeBuilder.feedW   s  € ØŒ9ÔÐ+ÝŒMð UØðñ ô ð õ Ô$¨$Ô*AÐBÑBÔBˆØ)/ˆÔÔ&Ý‘v”vˆÝ˜&¥#Ñ&Ô&ð 	HÝð HØ48Ô4P�Ð0Ñ1Ð1à+/Ô+G�˜ZÑ(ØˆfŒl˜6Ð2Ð2 \Ð2Ð2ˆõ �f�cÑ"Ô"ð 	6ð %)ˆCÔ!Ð!à &Ô 0Ô 7Ô DÀQÔ GÐÝÐ/µÑ5Ô5ð ;ð %6Ô$:Ð!Ø$5ˆCÔ!Ø)-ˆÔÔ&Ð&Ð&r$   c                 óR   — t          || j        | j        ¬¦  «        | _        | j        S )N)Ústore_line_numbers)ÚTreeBuilderForHtml5libr*   r>   r.   )r   ÚnamespaceHTMLElementss     r"   r-   z#HTML5TreeBuilder.create_treebuilderv   s1   € Ý"8Ø! 4¤9Ø#Ô6ð#
ñ #
ô #
ˆÔð Ô&Ð&r$   c                 ó   — d|z  S )zSee `TreeBuilder`.z)<html><head></head><body>%s</body></html>© )r   Úfragments     r"   Útest_fragment_to_documentz*HTML5TreeBuilder.test_fragment_to_document}   s   € à:¸XÑEÐEr$   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚNAMEr   r   r   ÚfeaturesÚTRACKS_LINE_NUMBERSr#   r<   r-   rD   rB   r$   r"   r   r   *   sˆ   € € € € € ðð ð €Dà�j &¨$Ð/€Hð Ðð KOð*ð *ð *ð *ð..ð .ð .ð>'ð 'ð 'ðFð Fð Fð Fð Fr$   c                   óZ   ‡ — e Zd Z	 	 dˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zˆ xZS )r?   NTc                 ó´   •— |r|| _         nddlm}  |	 dd|i|¤Ž| _         t          t          | ¦  «                             |¦  «         d | _        || _        d S )Nr   ©ÚBeautifulSoupÚ úhtml.parserr>   )rP   rQ   )r*   Úbs4rO   Úsuperr?   Ú__init__r/   r>   )r   r@   r*   r>   ÚkwargsrO   Ú	__class__s         €r"   rT   zTreeBuilderForHtml5lib.__init__„   sŒ   ø€ àð 		ØˆDŒIˆIà)Ð)Ð)Ð)Ð)Ð)ð &˜Ø!ðð Ø6Hðàðð ˆDŒIõ 	Õ$ dÑ+Ô+×4Ò4Ð5JÑKÔKÐKð ˆŒØ"4ˆÔÐÐr$   c                 ój   — | j                              ¦   «          t          | j         | j         d ¦  «        S ©N)r*   ÚresetÚElement©r   s    r"   ÚdocumentClassz$TreeBuilderForHtml5lib.documentClassš   s*   € ØŒ	�ŠÑÔÐÝ�t”y $¤)¨TÑ2Ô2Ð2r$   c                 ó–   — |d         }|d         }|d         }t          j        |||¦  «        }| j                             |¦  «         d S )Nr9   ÚpublicIdÚsystemId)r   Úfor_name_and_idsr*   Úobject_was_parsed)r   Útokenr9   r^   r_   Údoctypes         r"   ÚinsertDoctypez$TreeBuilderForHtml5lib.insertDoctypež   sO   € Ø�VŒ}ˆØ˜Ô$ˆØ˜Ô$ˆåÔ*¨4°¸8ÑDÔDˆØŒ	×#Ò# GÑ,Ô,Ð,Ð,Ð,r$   c                 óÜ   — i }| j         r:| j        r3| j         j        j                             ¦   «         \  }}||d<   |dz
  |d<    | j        j        ||fi |¤Ž}t          || j        |¦  «        S )NÚ
sourcelineé   Ú	sourcepos)r/   r>   r6   r7   Úpositionr*   Únew_tagrZ   )r   r9   Ú	namespacerU   rf   rh   Útags          r"   ÚelementClassz#TreeBuilderForHtml5lib.elementClass¦   s…   € ØˆØŒ;ð 	.˜4Ô2ð 	.ð %)¤KÔ$9Ô$@×$IÒ$IÑ$KÔ$KÑ!ˆJ˜	Ø#-ˆF�<Ñ Ø"+¨A¡+ˆF�;ÑØˆdŒiÔ  iÐ:Ð:°6Ð:Ð:ˆå�s˜DœI yÑ1Ô1Ð1r$   c                 óF   — t          t          |¦  «        | j        ¦  «        S rX   )ÚTextNoder   r*   )r   Údatas     r"   ÚcommentClassz#TreeBuilderForHtml5lib.commentClass³   s   € Ý� ™œ t¤yÑ1Ô1Ð1r$   c                 ó~   — ddl m}  |dd¦  «        | _        d| j        _        t	          | j        | j        d ¦  «        S )Nr   rN   rP   rQ   z[document_fragment])rR   rO   r*   r9   rZ   )r   rO   s     r"   ÚfragmentClassz$TreeBuilderForHtml5lib.fragmentClass¶   sH   € Ø%Ð%Ð%Ð%Ð%Ð%ð "�M " mÑ4Ô4ˆŒ	Ø.ˆŒ	ŒÝ�t”y $¤)¨TÑ2Ô2Ð2r$   c                 óD   — | j                              |j        ¦  «         d S rX   )r*   ÚappendÚelement©r   Únodes     r"   ÚappendChildz"TreeBuilderForHtml5lib.appendChild¾   s    € àŒ	×Ò˜œÑ&Ô&Ð&Ð&Ð&r$   c                 ó   — | j         S rX   )r*   r[   s    r"   ÚgetDocumentz"TreeBuilderForHtml5lib.getDocumentÂ   s
   € ØŒyÐr$   c                 óJ   — t           j                             | ¦  «        j        S rX   )Útreebuilder_baseÚTreeBuilderÚgetFragmentrv   r[   s    r"   r   z"TreeBuilderForHtml5lib.getFragmentÅ   s   € ÝÔ+×7Ò7¸Ñ=Ô=ÔEÐEr$   c                 ó–   ‡‡‡‡— ddl mŠ g Št          j        d¦  «        Šdˆˆˆˆfd„	Š ‰|d¦  «         d                     ‰¦  «        S )Nr   rN   z8^(.*?)(?: PUBLIC "(.*?)"(?: "(.*?)")?| SYSTEM "(.*?)")?$c                 óv  •— t          | ‰	¦  «        r	 t          | t          ¦  «        rà‰
                     | ¦  «        }|r«|                     d¦  «        }|j        dk    rj|                     d¦  «        pd}|                     d¦  «        p|                     d¦  «        pd}‰                     dd|z  ›d|›d	|›d
|›d�	¦  «         d S ‰                     dd|z  ›d|›d�¦  «         d S ‰                     dd|z  ›d�¦  «         d S t          | t          ¦  «        r!‰                     dd|z  ›d| ›d�¦  «         d S t          | t          ¦  «        r!‰                     dd|z  ›d| ›d�¦  «         d S | j        rt          | j                 ›d| j
        ›�}n| j
        }‰                     dd|z  ›d|›d�¦  «         | j        rÙg }t          | j                             ¦   «         ¦  «        D ]w\  }}t          |t          ¦  «        rt          |j                 ›d|j
        ›�}t          |t          ¦  «        rd                     |¦  «        }|                     ||f¦  «         Œxt!          |¦  «        D ])\  }}‰                     dd|dz   z  ›|›d|›d�¦  «         Œ*|dz  }| j        D ]} ‰||¦  «         Œd S )Nrg   é   rP   r   r&   ú|ú z
<!DOCTYPE z "z" "z">ú>z<!DOCTYPE >z<!-- z -->ú"ú<z=")r1   r   ÚmatchÚgroupÚ	lastindexru   r   r   rk   r   r9   ÚattrsÚlistÚitemsr
   ÚjoinÚsortedÚchildren)rv   ÚindentÚmr9   r^   r_   Ú
attributesÚvalueÚchildrO   Ú
doctype_reÚrvÚserializeElements            €€€€r"   r˜   z?TreeBuilderForHtml5lib.testSerializer.<locals>.serializeElementÍ   s5  ø€ Ý˜' =Ñ1Ô1ð ØÝ˜'¥7Ñ+Ô+ð %4Ø×$Ò$ WÑ-Ô-�Øð 
BØŸ7š7 1™:œ:�DØ”{ Q’�Ø#$§7¢7¨1¡:¤:Ð#3°˜Ø#$§7¢7¨1¡:¤:Ð#A°·²¸±´Ð#A¸r˜ØŸ	š	˜	Ø#&¨¡< < <°°°°x°x°xÀÀÀð#Kñ Lô Lð Lð Lð Lð Ÿ	š	˜	¸¸f¹¸¸ÀdÀdÀdÐ"KÑLÔLÐLÐLÐLà—I’I�I°#¸±,°,°,Ð@ÑAÔAÐAÐAÐAÝ˜G¥WÑ-Ô-ð 4Ø—	’	�	¨c°F©l¨l¨l¸G¸G¸GÐDÑEÔEÐEÐEÐEÝ˜G¥_Ñ5Ô5ð 4Ø—	’	�	¨¨v©¨¨°w°w°wÐ?Ñ@Ô@Ð@Ð@Ð@àÔ$ð (Ý&.¨wÔ/@Ô&AÐ&AÐ&AØ&-¤l lð4�D�Dð #œ<�DØ—	’	�	 s¨V¡| | |°T°T°TÐ:Ñ;Ô;Ð;Ø”=ð 
TØ!#�JÝ'+¨G¬M×,?Ò,?Ñ,AÔ,AÑ'BÔ'Bð 9ð 9™˜˜eÝ% dÕ,?Ñ@Ô@ð SÝ.6°t´~Ô.FÐ.FÐ.FÈÌ	È	Ð#R˜DÝ% e­TÑ2Ô2ð 4Ø$'§H¢H¨U¡O¤O˜EØ"×)Ò)¨4°¨-Ñ8Ô8Ð8Ð8å'-¨jÑ'9Ô'9ð Tð T™˜˜eØŸ	š	˜	°#¸À!¹Ñ2DÐ2DÀdÀdÀdÈEÈEÈEÐ"RÑSÔSÐSÐSØ˜!‘�Ø$Ô-ð 4ð 4�EØ$Ð$ U¨FÑ3Ô3Ð3Ð3ð4ð 4r$   ú
)r   )rR   rO   ÚreÚcompilerŽ   )r   rv   rO   r–   r—   r˜   s     @@@@r"   ÚtestSerializerz%TreeBuilderForHtml5lib.testSerializerÈ   s€   øøøø€ Ø%Ð%Ð%Ð%Ð%Ð%ØˆÝ”ZÐ [Ñ\Ô\ˆ
ð(	4ð (	4ð (	4ð (	4ð (	4ð (	4ð (	4ð (	4ð (	4ðR 	Ð˜ !Ñ$Ô$Ð$à�yŠy˜‰}Œ}Ðr$   )NT)rE   rF   rG   rT   r\   rd   rm   rq   rs   ry   r{   r   rœ   Ú__classcell__)rV   s   @r"   r?   r?   ‚   sÍ   ø€ € € € € à37Ø$(ð5ð 5ð 5ð 5ð 5ð 5ð,3ð 3ð 3ð-ð -ð -ð2ð 2ð 2ð2ð 2ð 2ð3ð 3ð 3ð'ð 'ð 'ðð ð ðFð Fð Fð0ð 0ð 0ð 0ð 0ð 0ð 0r$   r?   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚAttrListc                 óP   — || _         t          | j         j        ¦  «        | _        d S rX   )rv   r0   r‹   )r   rv   s     r"   rT   zAttrList.__init__û   s!   € ØˆŒÝ˜$œ,Ô,Ñ-Ô-ˆŒ
ˆ
ˆ
r$   c                 ór   — t          | j                             ¦   «         ¦  «                             ¦   «         S rX   )rŒ   r‹   r�   Ú__iter__r[   s    r"   r¢   zAttrList.__iter__þ   s*   € Ý�D”J×$Ò$Ñ&Ô&Ñ'Ô'×0Ò0Ñ2Ô2Ð2r$   c                 ó  — | j         j        pi }||                     dg ¦  «        v s0| j         j        |v rK||                     | j         j        g ¦  «        v r)t	          |t
          ¦  «        st          j        |¦  «        }|| j         |<   d S )NÚ*)rv   Úcdata_list_attributesÚgetr9   r1   rŒ   r   Úfindall)r   r9   r”   Ú	list_attrs       r"   Ú__setitem__zAttrList.__setitem__   s�   € ð ”LÔ6Ð<¸"ˆ	Ø�I—M’M # rÑ*Ô*Ð*Ð*Ø”Ô! YÐ.Ð.Ø˜IŸMšM¨$¬,Ô*;¸RÑ@Ô@Ð@Ð@õ ˜e¥TÑ*Ô*ð 8Ý(Ô0°Ñ7Ô7�Ø"ˆŒ�TÑÐÐr$   c                 óN   — t          | j                             ¦   «         ¦  «        S rX   )rŒ   r‹   r�   r[   s    r"   r�   zAttrList.items  s   € Ý�D”J×$Ò$Ñ&Ô&Ñ'Ô'Ð'r$   c                 óN   — t          | j                             ¦   «         ¦  «        S rX   ©rŒ   r‹   Úkeysr[   s    r"   r­   zAttrList.keys  s   € Ý�D”J—O’OÑ%Ô%Ñ&Ô&Ð&r$   c                 ó*   — t          | j        ¦  «        S rX   )Úlenr‹   r[   s    r"   Ú__len__zAttrList.__len__  s   € Ý�4”:‰ŒÐr$   c                 ó   — | j         |         S rX   )r‹   ©r   r9   s     r"   Ú__getitem__zAttrList.__getitem__  s   € ØŒz˜$ÔÐr$   c                 óR   — |t          | j                             ¦   «         ¦  «        v S rX   r¬   r²   s     r"   Ú__contains__zAttrList.__contains__  s!   € Ø•t˜DœJŸOšOÑ-Ô-Ñ.Ô.Ð.Ð.r$   N)rE   rF   rG   rT   r¢   r©   r�   r­   r°   r³   rµ   rB   r$   r"   rŸ   rŸ   ú   sŒ   € € € € € ð.ð .ð .ð3ð 3ð 3ð#ð #ð #ð(ð (ð (ð'ð 'ð 'ðð ð ð ð  ð  ð/ð /ð /ð /ð /r$   rŸ   c                   ó€   — e Zd Zd„ Zd„ Zd„ Zd„ Z eee¦  «        Zdd„Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Z ee¦  «        ZdS )rZ   c                 óz   — t           j                             | |j        ¦  «         || _        || _        || _        d S rX   )r}   ÚNoderT   r9   rv   r*   rk   )r   rv   r*   rk   s       r"   rT   zElement.__init__  s6   € ÝÔ×&Ò& t¨W¬\Ñ:Ô:Ð:ØˆŒØˆŒ	Ø"ˆŒˆˆr$   c                 óŽ  — d x}}t          |t          ¦  «        r|x}}nLt          |t          ¦  «        r|}n4|j        j        t
          k    r|j        x}}| |_        n|j        }| |_        t          |t          ¦  «        s |j        �|j                             ¦   «          |�~| j        j        rr| j        j        d         j        t
          k    rR| j        j        d         }| j	         
                    ||z   ¦  «        }|                     |¦  «         || j	        _        d S t          |t          ¦  «        r| j	         
                    |¦  «        }| j        j        r| j                             d¦  «        }n-| j        j        �| j	                             ¦   «         }n| j        }| j	                             || j        |¬¦  «         d S )NéÿÿÿÿF)ÚparentÚmost_recent_element)r1   r2   r   rv   rV   r   r»   ÚextractÚcontentsr*   Ú
new_stringÚreplace_withÚ_most_recent_elementÚ_last_descendantÚnext_elementra   )r   rx   Ústring_childr•   Úold_elementÚnew_elementr¼   s          r"   ry   zElement.appendChild  sÌ  € Ø#Ð#ˆ�uÝ�d�CÑ Ô ð 	ð $(Ð'ˆL˜5˜5Ý˜�cÑ"Ô"ð 
	ð ˆEˆEØŒ\Ô#¥Ò6Ð6Ø#'¤<Ð/ˆL˜5ØˆDŒKˆKà”LˆEØˆDŒKå˜%¥Ñ%Ô%ð 	#¨%¬,Ð*BØŒL× Ò Ñ"Ô"Ð"àÐ$¨¬Ô)>Ð$Ø”Ô% bÔ)Ô3µÒFÐFð œ,Ô/°Ô3ˆKØœ)×.Ò.¨{¸\Ñ/IÑJÔJˆKØ×$Ò$ [Ñ1Ô1Ð1Ø-8ˆDŒIÔ*Ð*Ð*å˜$¥Ñ$Ô$ð 3àœ	×,Ò,¨TÑ2Ô2�ð
 Œ|Ô$ð 	3Ø&*¤l×&CÒ&CÀEÑ&JÔ&JÐ#Ð#Ø”Ô*Ð6ð
 '+¤i×&@Ò&@Ñ&BÔ&BÐ#Ð#à&*¤lÐ#àŒI×'Ò'Ø˜dœlØ$7ð (ñ 9ô 9ð 9ð 9ð 9r$   c                 ób   — t          | j        t          ¦  «        ri S t          | j        ¦  «        S rX   )r1   rv   r   rŸ   r[   s    r"   ÚgetAttributeszElement.getAttributesU  s+   € Ý�d”l¥GÑ,Ô,ð 	ØˆIÝ˜œÑ%Ô%Ð%r$   c                 óÊ  — |�Þt          |¦  «        dk    rÍg }t          |                     ¦   «         ¦  «        D ]+\  }}t          |t          ¦  «        rt          |Ž }||= |||<   Œ,| j        j                             | j	        |¦  «         t          |                     ¦   «         ¦  «        D ]\  }}|| j
        |<   Œ| j        j                             | j
        ¦  «         d S d S d S )Nr   )r¯   rŒ   r�   r1   Útupler
   r*   ÚbuilderÚ$_replace_cdata_list_attribute_valuesr9   rv   Úset_up_substitutions)r   r“   Úconverted_attributesr9   r”   Únew_names         r"   ÚsetAttributeszElement.setAttributesZ  sÿ   € ØÐ!¥c¨*¡o¤o¸Ò&9Ð&9Ø#%Ð Ý# J×$4Ò$4Ñ$6Ô$6Ñ7Ô7ð 1ð 1‘��eÝ˜d¥EÑ*Ô*ð 1Ý2°DÐ9�HØ" 4Ð(Ø+0�J˜xÑ(øàŒIÔ×BÒBØ”	˜:ñ'ô 'ð 'å# J×$4Ò$4Ñ$6Ô$6Ñ7Ô7ð +ð +‘��eØ%*�”˜TÑ"Ð"ð ŒIÔ×2Ò2°4´<Ñ@Ô@Ð@Ð@Ð@ð% "Ð!Ð&9Ð&9r$   Nc                 ó¾   — t          | j                             |¦  «        | j        ¦  «        }|r|                      ||¦  «         d S |                      |¦  «         d S rX   )ro   r*   r¿   ÚinsertBeforery   )r   rp   rÒ   Útexts       r"   Ú
insertTextzElement.insertTextp  sa   € Ý˜œ	×,Ò,¨TÑ2Ô2°D´IÑ>Ô>ˆØð 	#Ø×Ò˜d LÑ1Ô1Ð1Ð1Ð1à×Ò˜TÑ"Ô"Ð"Ð"Ð"r$   c                 ó¶  — | j                              |j         ¦  «        }|j         j        t          k    r}| j         j        rq| j         j        |dz
           j        t          k    rN| j         j        |dz
           }| j                             ||j         z   ¦  «        }|                     |¦  «         d S | j                              ||j         ¦  «         | |_	        d S )Nrg   )
rv   ÚindexrV   r   r¾   r*   r¿   rÀ   Úinsertr»   )r   rx   ÚrefNoderÖ   Úold_nodeÚnew_strs         r"   rÒ   zElement.insertBeforew  s½   € Ø”×"Ò" 7¤?Ñ3Ô3ˆØŒLÔ"¥oÒ5Ð5¸$¼,Ô:OÐ5Ø”Ô% e¨A¡gÔ.Ô8½OÒKÐKà”|Ô,¨U°1©WÔ5ˆHØ”i×*Ò*¨8°d´lÑ+BÑCÔCˆGØ×!Ò! 'Ñ*Ô*Ð*Ð*Ð*àŒL×Ò  t¤|Ñ4Ô4Ð4ØˆDŒKˆKˆKr$   c                 ó8   — |j                              ¦   «          d S rX   )rv   r½   rw   s     r"   ÚremoveChildzElement.removeChildƒ  s   € ØŒ×ÒÑÔÐÐÐr$   c                 ó>  — | j         }|j         }|j        }|                     dd¦  «        }t          |j        ¦  «        dk    r|j        d         }|j        }n	d}|j        }|j        }t          |¦  «        dk    rm|d         }	|�||	_        n||	_        ||	_        |�|	|_        n|	|_        |�|	|_        |d                              dd¦  «        }
||
_        |�|
|_        d|
_        |D ]#}||_        |j         	                    |¦  «         Œ$g |_        ||_        dS )z1Move all of this tag's children into another tag.Fr   rº   NT)
rv   Únext_siblingrÂ   r¯   r¾   rÃ   Úprevious_elementÚprevious_siblingr»   ru   )r   Ú
new_parentrv   Únew_parent_elementÚfinal_next_elementÚnew_parents_last_descendantÚnew_parents_last_childÚ(new_parents_last_descendant_next_elementÚ	to_appendÚfirst_childÚlast_childs_last_descendantr•   s               r"   ÚreparentChildrenzElement.reparentChildren†  ss  € ð ”,ˆØ'Ô/Ðð %Ô1Ðà&8×&IÒ&IÈ%ÐQVÑ&WÔ&WÐ#ÝÐ!Ô*Ñ+Ô+¨aÒ/Ð/ð &8Ô%@ÀÔ%DÐ"Ø7RÔ7_Ð4Ð4ð &*Ð"Ø7IÔ7VÐ4àÔ$ˆ	Ýˆy‰>Œ>˜AÒÐð $ Aœ,ˆKØ*Ð6Ø/J�Ô,Ð,à/A�Ô,Ø+AˆKÔ(Ø*Ð6Ø;FÐ+Ô8Ð8à2=Ð"Ô/Ø%Ð1Ø6AÐ&Ô3ð +4°B¬-×*HÒ*HÈÐPTÑ*UÔ*UÐ'à7_Ð'Ô4Ø7ÐCð MhÐ8ÔIØ7;Ð'Ô4àð 	6ð 	6ˆEØ-ˆEŒLØÔ'×.Ò.¨uÑ5Ô5Ð5Ð5ð ˆÔØ1ˆÔÐÐr$   c                 ó¾   — | j                              | j        j        | j        ¦  «        }t          || j         | j        ¦  «        }| j        D ]\  }}||j        |<   Œ|S rX   )r*   rj   rv   r9   rk   rZ   r“   )r   rl   rx   Úkeyr”   s        r"   Ú	cloneNodezElement.cloneNodeÈ  s^   € ØŒi×Ò ¤Ô 1°4´>ÑBÔBˆÝ�s˜DœI t¤~Ñ6Ô6ˆØœð 	)ð 	)‰IˆC�Ø#(ˆDŒO˜CÑ Ð Øˆr$   c                 ó   — | j         j        S rX   )rv   r¾   r[   s    r"   Ú
hasContentzElement.hasContentÏ  s   € ØŒ|Ô$Ð$r$   c                 ó\   — | j         d k    rt          d         | j        fS | j         | j        fS )NÚhtml)rk   r   r9   r[   s    r"   ÚgetNameTuplezElement.getNameTupleÒ  s0   € ØŒ>˜TÒ!Ð!Ý˜fÔ% t¤yÐ0Ð0à”> 4¤9Ð,Ð,r$   rX   )rE   rF   rG   rT   ry   rÈ   rÐ   Úpropertyr“   rÔ   rÒ   rÜ   rê   rí   rï   rò   Ú	nameTuplerB   r$   r"   rZ   rZ     sá   € € € € € ð#ð #ð #ð49ð 49ð 49ðl&ð &ð &ð
Að Að Að( �˜-¨Ñ7Ô7€Jð#ð #ð #ð #ð
ð 
ð 
ðð ð ð<2ð <2ð <2ðDð ð ð%ð %ð %ð-ð -ð -ð �˜Ñ&Ô&€I€I€Ir$   rZ   c                   ó   — e Zd Zd„ Zd„ ZdS )ro   c                 ób   — t           j                             | d ¦  «         || _        || _        d S rX   )r}   r¸   rT   rv   r*   )r   rv   r*   s      r"   rT   zTextNode.__init__Û  s-   € ÝÔ×&Ò& t¨TÑ2Ô2Ð2ØˆŒØˆŒ	ˆ	ˆ	r$   c                 ó   — t           ‚rX   )ÚNotImplementedErrorr[   s    r"   rí   zTextNode.cloneNodeà  s   € Ý!Ð!r$   N)rE   rF   rG   rT   rí   rB   r$   r"   ro   ro   Ú  s2   € € € € € ðð ð ð
"ð "ð "ð "ð "r$   ro   )$Ú__license__Ú__all__r   rš   Úbs4.builderr   r   r   r   r	   Úbs4.elementr
   r   r   Úhtml5lib.constantsr   r   r   r   r   r   Úhtml5lib.treebuildersr   r}   r3   ÚImportErrorÚer   r   r~   r?   ÚobjectrŸ   r¸   rZ   ro   rB   r$   r"   ú<module>r     sl  ðà€ð ð€ð €€€Ø 	€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð €€€ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ðà?Ð?Ð?Ð?Ð?Ð?Ø€L€LøØð ð ð à>Ð>Ð>Ð>Ð>Ð>Ø€L€L€L€L€L€Løøøøðøøøð
UFð UFð UFð UFð UF�ñ UFô UFð UFðpvð vð vð vð vÐ-Ô9ñ vô vð vðp/ð /ð /ð /ð /ˆvñ /ô /ð /ð<@'ð @'ð @'ð @'ð @'ÐÔ#ñ @'ô @'ð @'ðD"ð "ð "ð "ð "ˆwñ "ô "ð "ð "ð "s   ½A ÁAÁAÁA