Ë
    [Rðiê%  ã                   óÊ   — d Z ddlmZ ddlmZ ddlmZmZ ddlmZm	Z	 	 ddl
mZ  G d„ d	ej                  «      Zd
„ Z G d„ de«      Z G d„ d«      Zd„ Zy# e$ r d„ ZY Œ;w xY w)a?  
SAX-based adapter to copy trees from/to the Python standard library.

Use the `ElementTreeContentHandler` class to build an ElementTree from
SAX events.

Use the `ElementTreeProducer` class or the `saxify()` function to fire
the SAX events of an ElementTree against a SAX ContentHandler.

See https://lxml.de/sax.html
é    )ÚContentHandler)Úetree)ÚElementTreeÚ
SubElement)ÚCommentÚProcessingInstruction)ÚGenericAliasc                 ó:   — | j                   › d|j                   › d�S )Nú[ú])Ú__name__©ÚclsÚitems     úC/var/www/html/Extract/venv/lib/python3.12/site-packages/lxml/sax.pyÚ_GenericAliasr      s   € Ø—,‘,�˜q §¡ ¨qÐ1Ð1ó    c                   ó   — e Zd ZdZy)ÚSaxErrorzGeneral SAX error.
    N)r   Ú
__module__Ú__qualname__Ú__doc__© r   r   r   r      s   „ òr   r   c                 ó^   — | d   dk(  r"d| v rt        | dd  j                  dd«      «      S d | fS )Nr   ú{ú}é   )ÚtupleÚsplit)Útags    r   Ú	_getNsTagr!       s9   € Ø
ˆ1�v�‚}˜ ™Ü�S˜˜�W—]‘] 3¨Ó*Ó+Ð+à�SˆyÐr   c                   óœ   — e Zd ZdZdd„Zd„ Z eeej                  ¬«      Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zdd„Zd„ Zd„ Zdd„Zd„ Zd„ ZeZd„ Zy)ÚElementTreeContentHandlerz/Build an lxml ElementTree from SAX events.
    Nc                 óº   — t        j                  | «       d | _        g | _        g | _        d | _        d d gi| _        i | _        |€t        j                  }|| _
        y ©N)r   Ú__init__Ú_rootÚ_root_siblingsÚ_element_stackÚ_default_nsÚ_ns_mappingÚ_new_mappingsr   ÚElementÚ_makeelement)ÚselfÚmakeelements     r   r&   z"ElementTreeContentHandler.__init__*   s]   € Ü×Ñ Ô%ØˆŒ
Ø ˆÔØ ˆÔØˆÔØ! T FÐ,ˆÔØˆÔØÐÜŸ-™-ˆKØ'ˆÕr   c                 ó,   — t        | j                  «      S )z=Contains the generated ElementTree after parsing is finished.)r   r'   ©r/   s    r   Ú
_get_etreez$ElementTreeContentHandler._get_etree6   s   € ä˜4Ÿ:™:Ó&Ð&r   )Údocc                  ó   — y r%   r   )r/   Úlocators     r   ÚsetDocumentLocatorz,ElementTreeContentHandler.setDocumentLocator<   ó   € Ør   c                  ó   — y r%   r   r2   s    r   ÚstartDocumentz'ElementTreeContentHandler.startDocument?   r8   r   c                  ó   — y r%   r   r2   s    r   ÚendDocumentz%ElementTreeContentHandler.endDocumentB   r8   r   c                 ó²   — || j                   |<   	 | j                  |   j                  |«       |€|| _        y y # t        $ r |g| j                  |<   Y Œ&w xY wr%   )r,   r+   ÚappendÚKeyErrorr*   )r/   ÚprefixÚuris      r   ÚstartPrefixMappingz,ElementTreeContentHandler.startPrefixMappingE   sg   € Ø%(ˆ×Ñ˜6Ñ"ð	-Ø×Ñ˜VÑ$×+Ñ+¨CÔ0ð ˆ>Ø"ˆDÕð øô ò 	-Ø(+ uˆD×Ñ˜VÓ$ð	-ús   ‘: ºAÁAc                 ó\   — | j                   |   }|j                  «        |€|d   | _        y y ©Néÿÿÿÿ)r+   Úpopr*   )r/   r@   Úns_uri_lists      r   ÚendPrefixMappingz*ElementTreeContentHandler.endPrefixMappingN   s2   € Ø×&Ñ& vÑ.ˆØ�‰ÔØˆ>Ø*¨2™ˆDÕð r   c                 óf   — |\  }}|rd|z  }|S | j                   rd| j                   ›d|›�}|S |}|S )Nú{%s}%sr   r   )r*   )r/   Úns_name_tupleÚns_uriÚ
local_nameÚel_tags        r   Ú	_buildTagz#ElementTreeContentHandler._buildTagT   sN   € Ø*Ñˆ�
ÙØ Ñ-ˆFð
 ˆð	 ×ÓØ!%×!1Ó!1±:Ð>ˆFð ˆð  ˆFØˆr   c                 ól  — | j                  |«      }|r3i }	 |j                  «       }|D ]  \  }}|d   rd|z  }	n|d   }	|||	<   Œ nd }| j                  }
| j
                  €n| j                  ||| j                  «      x}| _        | j                  r.t        |d«      r"| j                  D ]  }|j                  |«       Œ | j                  d d …= nt        |
d   ||| j                  «      }|
j                  |«       | j                  j                  «        y # t        $ r |j                  «       }Y �Œw xY w)Nr   rJ   r   ÚaddpreviousrE   )rO   Ú	iteritemsÚAttributeErrorÚitemsr)   r'   r.   r,   r(   ÚhasattrrQ   r   r>   Úclear)r/   Úns_nameÚqnameÚ
attributesÚel_nameÚattrsÚiter_attributesÚ
name_tupleÚvalueÚ	attr_nameÚelement_stackÚelementÚsiblings                r   ÚstartElementNSz(ElementTreeContentHandler.startElementNS^   sE  € Ø—.‘. Ó)ˆÙØˆEð5Ø",×"6Ñ"6Ó"8�ð &5ò )Ñ!�
˜EØ˜a’=Ø (¨:Ñ 5‘Ià *¨1¡�IØ#(��iÒ ñ)ð ˆEà×+Ñ+ˆØ�:‰:Ðà×'Ñ'¨°¸×8JÑ8JÓKðLˆG�d”jà×"Ò"¤w¨w¸Ô'FØ#×2Ñ2ò 1�GØ×'Ñ'¨Õ0ð1à×#Ñ#¢AÑ&ä  ¨rÑ!2°GØ!&¨×(:Ñ(:ó<ˆGà×Ñ˜WÔ%à×Ñ× Ñ Õ"øô3 "ò 5Ø",×"2Ñ"2Ó"4“ð5ús   —D ÄD3Ä2D3c                 ó¨   — t        ||«      }| j                  €| j                  j                  |«       y | j                  d   j                  |«       y rD   )r   r'   r(   r>   r)   )r/   ÚtargetÚdataÚpis       r   ÚprocessingInstructionz/ElementTreeContentHandler.processingInstruction   sE   € Ü" 6¨4Ó0ˆØ�:‰:ÐØ×Ñ×&Ñ& rÕ*à×Ñ Ñ#×*Ñ*¨2Õ.r   c                 ó”   — | j                   j                  «       }| j                  |«      }||j                  k7  rt	        d|z   «      ‚y )NzUnexpected element closed: )r)   rF   rO   r    r   )r/   rW   rX   ra   rN   s        r   ÚendElementNSz&ElementTreeContentHandler.endElementNS†   sF   € Ø×%Ñ%×)Ñ)Ó+ˆØ—‘ Ó(ˆØ�W—[‘[Ò ÜÐ8¸6ÑAÓBÐBð !r   c                 óˆ   — |r%|j                  «       D ��ci c]
  \  }}d |f|“Œ }}}| j                  d |f||«       y c c}}w r%   )rT   rc   )r/   ÚnamerY   ÚkÚvs        r   ÚstartElementz&ElementTreeContentHandler.startElementŒ   sI   € ÙØ3=×3CÑ3CÓ3E×F©4¨1¨a˜4 ˜) Q™,ÐFˆJÑFØ×Ñ˜T 4˜L¨$°
Õ;ùó Gs   –>c                 ó,   — | j                  d |f|«       y r%   )rj   )r/   rl   s     r   Ú
endElementz$ElementTreeContentHandler.endElement‘   s   € Ø×Ñ˜4 ˜,¨Õ-r   c                 ó¬   — | j                   d   }	 |d   }|j                  xs d|z   |_        y # t        $ r |j                  xs d|z   |_        Y y w xY w)NrE   Ú )r)   ÚtailÚ
IndexErrorÚtext)r/   rf   Úlast_elements      r   Ú
charactersz$ElementTreeContentHandler.characters”   sg   € Ø×*Ñ*¨2Ñ.ˆð	Aà'¨Ñ+ˆLð
 ".×!2Ñ!2Ò!8°b¸DÑ @ˆLÕøô	 ò 	Aà!-×!2Ñ!2Ò!8°b¸DÑ @ˆLÖð	Aús   ‘/ ¯!AÁAc                 ó   — t        | |«      S r%   )r   r   s     r   Ú__class_getitem__z+ElementTreeContentHandler.__class_getitem__¢   s   € Ü˜S $Ó'Ð'r   r%   )r   r   r   r   r&   r3   Úpropertyr   r7   r:   r<   rB   rH   rO   rc   rh   rj   ro   rq   rx   ÚignorableWhitespacerz   r   r   r   r#   r#   '   sq   „ ñó
(ò'ñ �Z Z×%7Ñ%7Ô8€Eòòòò#ò/òó#òB/òCó<ò
.ò	Að %Ðó(r   r#   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚElementTreeProducerz5Produces SAX events for an element and children.
    c                 óš   — 	 |j                  «       }|| _        || _        ddlm} || _         |i i «      | _        y # t        $ r |}Y Œ7w xY w)Nr   )ÚAttributesNSImpl)ÚgetrootrS   Ú_elementÚ_content_handlerÚxml.sax.xmlreaderr€   Ú_attr_classÚ_empty_attributes)r/   Úelement_or_treeÚcontent_handlerra   Ú
attr_classs        r   r&   zElementTreeProducer.__init__©   sV   € ð	&Ø%×-Ñ-Ó/ˆGð  ˆŒØ /ˆÔÝDØ%ˆÔÙ!+¨B°Ó!3ˆÕøô ò 	&Ø%ŠGð	&ús   ‚< ¼A
Á	A
c                 ó|  — | j                   j                  «        | j                  }t        |d«      ryg }|j	                  «       }t        |dd «      t        u r5|j                  |«       |j	                  «       }t        |dd «      t        u rŒ5|d d d…   D ]  }| j                  |i «       Œ | j                  |i «       t        |d«      rY|j                  «       }t        |dd «      t        u r6| j                  |i «       |j                  «       }t        |dd «      t        u rŒ6| j                   j                  «        y )NÚgetpreviousr    rE   Úgetnext)rƒ   r:   r‚   rU   r‹   Úgetattrr   r>   Ú_recursive_saxifyrŒ   r<   )r/   ra   Úsiblingsrb   s       r   ÚsaxifyzElementTreeProducer.saxify´   s!  € Ø×Ñ×+Ñ+Ô-à—-‘-ˆÜ�7˜MÔ*ØˆHØ×)Ñ)Ó+ˆGÜ˜' 5¨$Ó/Ô3HÑHØ—‘ Ô(Ø!×-Ñ-Ó/�ô ˜' 5¨$Ó/Ô3HÒHð $¡D b D™>ò 4�Ø×&Ñ& w°Õ3ð4ð 	×Ñ˜w¨Ô+ä�7˜IÔ&Ø—o‘oÓ'ˆGÜ˜' 5¨$Ó/Ô3HÑHØ×&Ñ& w°Ô3Ø!Ÿ/™/Ó+�ô ˜' 5¨$Ó/Ô3HÒHð 	×Ñ×)Ñ)Õ+r   c                 ó>  — | j                   }|j                  }|t        u s|t        u rN|t        u r&|j	                  |j
                  |j                  «       |j                  }|r|j                  |«       y |j                  }g }||k7  r@|j                  «       D ]-  \  }}	|j                  |«      |	k7  sŒ|j                  ||	f«       Œ/ |j                  «       }
|
rPi }i }|
D ]4  \  }}t        |«      }|||<   | j                  |d   |d   |d d¬«      ||<   Œ6 | j                  ||«      }n| j                   }t        |«      \  }	}| j                  |	|||j"                  d¬«      }|D ]  \  }}|j%                  ||«       Œ |j'                  |	|f||«       |j                  }|r|j                  |«       |D ]  }| j)                  ||«       Œ |j+                  |	|f|«       |D ]  \  }}|j-                  |«       Œ |j                  }|r|j                  |«       y y )Nr   r   T)Úpreferred_prefixÚis_attributeF)r“   )rƒ   r    r   r   rh   re   rv   rt   rx   ÚnsmaprT   Úgetr>   r!   Ú_build_qnamer…   r†   r@   rB   rc   rŽ   rj   rH   )r/   ra   Úparent_nsmaprˆ   r    rt   Úelement_nsmapÚnew_prefixesr@   rL   ÚattribsÚattr_valuesÚattr_qnamesÚattr_ns_namer^   Úattr_ns_tupleÚsax_attributesrM   rX   rA   rv   Úchilds                         r   rŽ   z%ElementTreeProducer._recursive_saxifyË   sO  € Ø×/Ñ/ˆØ�k‰kˆØ”'‰>˜SÔ$9Ñ9ØÔ+Ñ+Ø×5Ñ5Ø—N‘N G§L¡Lô2à—<‘<ˆDÙØ×*Ñ*¨4Ô0ØàŸ™ˆØˆØ˜LÒ(à"/×"5Ñ"5Ó"7ò <‘�˜Ø×#Ñ# FÓ+¨vÓ5Ø ×'Ñ'¨&°&Ð)9Õ;ð<ð —-‘-“/ˆÙØˆKØˆKØ'.ò >Ñ#�˜eÜ )¨,Ó 7�Ø-2�˜MÑ*Ø-1×->Ñ->Ø! !Ñ$ m°AÑ&6¸Ø%)¸ð .?ó .>�˜MÒ*ð>ð "×-Ñ-¨k¸;ÓG‰Nà!×3Ñ3ˆNä& s›^Ñˆ�
Ø×!Ñ!Ø�J ¨w¯~©~ÈEð "ó Sˆð (ò 	<‰KˆF�CØ×.Ñ.¨v°sÕ;ð	<à×&Ñ&Ø�ZÐ  %¨ô	9à�|‰|ˆÙØ×&Ñ& tÔ,Øò 	9ˆEØ×"Ñ" 5¨-Õ8ð	9à×$Ñ$ f¨jÐ%9¸5ÔAØ'ò 	5‰KˆF�CØ×,Ñ,¨VÕ4ð	5à�|‰|ˆÙØ×&Ñ& tÕ,ð r   c                 óö   — |€|S |s|j                  |«      |k(  r|}nK|j                  «       D ��cg c]  \  }}|�||k(  r|‘Œ }	}}t        |	«      dk(  r|	d   n|	rt        |	«      nd }|€|S |dz   |z   S c c}}w )Nr   r   ú:)r•   rT   ÚlenÚmin)
r/   rL   rM   r”   r’   r“   r@   ÚpfxrA   Ú
candidatess
             r   r–   z ElementTreeProducer._build_qname  s    € Øˆ>ØÐá §	¡	Ð*:Ó ;¸vÒ EØ%‰Fð ',§k¡k£m÷Ù"˜˜cØ�? s¨f¢}ò ðˆJñ ô
 "% Z£°AÒ!5�
˜1’Ù(2”S˜”_Øð ð ˆ>àÐØ˜‰|˜jÑ(Ð(ùós   ±A5N)r   r   r   r   r&   r�   rŽ   r–   r   r   r   r~   r~   ¦   s   „ ñò	4ò,ò.4-ól)r   r~   c                 ó6   — t        | |«      j                  «       S )zlOne-shot helper to generate SAX events from an XML tree and fire
    them against a SAX ContentHandler.
    )r~   r�   )r‡   rˆ   s     r   r�   r�     s   € ô ˜°Ó@×GÑGÓIÐIr   N)r   Úxml.sax.handlerr   Úlxmlr   Ú
lxml.etreer   r   r   r   Útypesr	   r   ÚImportErrorÚ	LxmlErrorr   r!   r#   r~   r�   r   r   r   ú<module>r®      sn   ðñ
õ +Ý ß .ß 5ð2Ý3ôˆu�‰ô ò
ô|( ô |(÷~p)ñ p)ófJøðI ò 2ô2ð2ús    A ÁA"Á!A"