Ë
    [Rðiž  ã                   óz   — d Z ddlmZmZ ddlmZmZ  G d„ d«      Z G d„ d«      Z G d„ d	ej                  «      Z	y
)zù
Legacy module - don't use in new code!

html5lib now has its own proper implementation.

This module implements a tree builder for html5lib that generates lxml
html element trees.  This module uses camelCase as it follows the
html5lib style guide.
é    )Ú_baseÚetree)Úhtmlr   c                   ó   — e Zd Zd„ Zy)ÚDocumentTypec                 ó.   — || _         || _        || _        y ©N)ÚnameÚpublicIdÚsystemId)Úselfr
   r   r   s       úR/var/www/html/Extract/venv/lib/python3.12/site-packages/lxml/html/_html5builder.pyÚ__init__zDocumentType.__init__   s   € ØˆŒ	Ø ˆŒØ ˆ�ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s   „ ó!r   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚDocumentc                 ó    — d | _         g | _        y r	   )Ú_elementTreeÚ
childNodes©r   s    r   r   zDocument.__init__   s   € Ø ˆÔØˆ�r   c                 ój   — | j                   j                  «       j                  |j                  «       y r	   )r   ÚgetrootÚaddnextÚ_element)r   Úelements     r   ÚappendChildzDocument.appendChild   s%   € Ø×Ñ×!Ñ!Ó#×+Ñ+¨G×,<Ñ,<Õ=r   N)r   r   r   r   r    r   r   r   r   r      s   „ òó>r   r   c                   óL   — e Zd ZeZeZdZdZeZ	d„ Z
d„ Zd„ Zd„ Zd„ Zd	d„Zd„ Zy)
ÚTreeBuilderNc                 óú   — t        j                  t        d¬«      }t        j                  t        d¬«      }|j                  | _        |j                  | _        t        j                  j                  | g|¢­i |¤Ž y )NF)ÚfullTree)Úetree_buildersÚgetETreeModuler   r   ÚElementÚelementClassÚCommentÚcommentClassr   r"   r   )r   ÚargsÚkwargsÚhtml_builderÚetree_builders        r   r   zTreeBuilder.__init__'   s`   € Ü%×4Ñ4´TÀEÔJˆÜ&×5Ñ5´eÀeÔLˆØ(×0Ñ0ˆÔØ)×1Ñ1ˆÔÜ×Ñ×"Ñ" 4Ð9¨$Ò9°&Ó9r   c                 ól   — t         j                  j                  | «       d| _        g | _        d | _        y )NF)r   r"   ÚresetÚrootInsertedÚinitialCommentsÚdoctyper   s    r   r0   zTreeBuilder.reset.   s-   € Ü×Ñ×Ñ Ô%Ø!ˆÔØ!ˆÔØˆ�r   c                 ó.   — | j                   j                  S r	   )Údocumentr   r   s    r   ÚgetDocumentzTreeBuilder.getDocument4   s   € Ø�}‰}×)Ñ)Ð)r   c                 ó  — g }| j                   d   j                  }|j                  r|j                  |j                  «       |j	                  |j                  «       «       |j                  r|j                  |j                  «       |S )Nr   )ÚopenElementsr   ÚtextÚappendÚextendÚgetchildrenÚtail)r   Úfragmentr   s      r   ÚgetFragmentzTreeBuilder.getFragment7   se   € ØˆØ×#Ñ# AÑ&×/Ñ/ˆØ�<Š<Ø�O‰O˜GŸL™LÔ)Ø�‰˜×+Ñ+Ó-Ô.Ø�<Š<Ø�O‰O˜GŸL™LÔ)Øˆr   c                 ó8   — | j                  |||«      }|| _        y r	   )ÚdoctypeClassr3   )r   r
   r   r   r3   s        r   ÚinsertDoctypezTreeBuilder.insertDoctypeA   s   € Ø×#Ñ# D¨(°HÓ=ˆØˆ�r   c                 ó–   — | j                   s| j                  j                  |«       y t        j                  j                  | ||«       y r	   )r1   r2   r:   r   r"   ÚinsertComment)r   ÚdataÚparents      r   rD   zTreeBuilder.insertCommentE   s7   € Ø× Ò Ø× Ñ ×'Ñ'¨Õ-ä×Ñ×+Ñ+¨D°$¸Õ?r   c                 ó�  — g }| j                   r»| j                   j                  r¥|j                  d| j                   j                  z  «       | j                   j                  €| j                   j                  �@|j                  d| j                   j                  ›d| j                   j                  ›d�«       |j                  d«       |j                  d«       t        j                  dj                  |«      «      }| j                  D ]&  }|j                  t        j                  |«      «       Œ( | j                  «       | _        |j                  «       | j                  _        | j!                  |«      }||_        | j                  j$                  j                  |«       | j&                  j                  |«       d| _        y )	Nz<!DOCTYPE %sz	 PUBLIC "z" "ú"ú>z<html></html>Ú T)r3   r
   r:   r   r   r   Ú
fromstringÚjoinr2   Úaddpreviousr   r)   ÚdocumentClassr5   Úgetroottreer   r(   r   r   r8   r1   )r   r
   ÚbufÚrootÚcommentÚroot_elements         r   Ú
insertRootzTreeBuilder.insertRootK   sP  € ØˆØ�<Š<˜DŸL™L×-Ò-Ø�J‰J�~¨¯©×(9Ñ(9Ñ9Ô:Ø�|‰|×$Ñ$Ð0°D·L±L×4IÑ4IÐ4UØ—
’
°$·,±,×2GÓ2GØ26·,±,×2GÓ2GðIô Jà�J‰J�sŒOØ�
‰
�?Ô#Ü�‰˜rŸw™w s›|Ó,ˆð ×+Ñ+ò 	5ˆGØ×ÑœUŸ]™]¨7Ó3Õ4ð	5ð ×*Ñ*Ó,ˆŒØ%)×%5Ñ%5Ó%7ˆ�‰Ô"ð ×(Ñ(¨Ó.ˆØ $ˆÔØ�‰× Ñ ×'Ñ'¨Ô5Ø×Ñ× Ñ  Ô.à ˆÕr   r	   )r   r   r   r   rN   r   rA   r(   r*   ÚfragmentClassr   r0   r6   r?   rB   rD   rT   r   r   r   r"   r"       s?   „ Ø€MØ€LØ€LØ€LØ€Mò:òò*òòó@ó!r   r"   N)
Ú__doc__Úhtml5lib.treebuildersr   r   r%   Úlxmlr   r   r   r"   r   r   r   ú<module>rY      s;   ðñ÷ Aß ÷!ñ !÷>ñ >ôD!�%×#Ñ#õ D!r   