Ë
    Dü´jô  ã                   ó6  — d Z ddlmZmZ ddlZddlmZmZmZm	Z	 e	r!dZ
ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ndZ
ddlmZ ddlZdZdd
lmZ ddlmZ 	 ddlZdZdd„Z G d„ derej6                  ne«      Z G d„ de«      Zd„ Zd„ Z y# e$ r dZY Œ:w xY w)z*Defused xmlrpclib

Also defuses gzip bomb
é    )Úprint_functionÚabsolute_importNé   )ÚDTDForbiddenÚEntitiesForbiddenÚExternalReferenceForbiddenÚPY3zxmlrpc.client)ÚExpatParser)Úclient)Úserver)Úgzip_decode)ÚGzipDecodedResponseÚ	xmlrpclibi  àc                 óˆ  — t         st        ‚|€t        }t        j                  | «      }t        j
                  d|¬«      }	 |dk  r|j                  «       }n|j                  |dz   «      }|j                  «        |j                  «        |dk\  rt        |«      |kD  rt        d«      ‚|S # t        $ r t        d«      ‚w xY w)zrgzip encoded data -> unencoded data

    Decode data using the gzip content encoding as described in RFC 1952
    Úrb©ÚmodeÚfileobjr   r   zinvalid dataz#max gzipped payload length exceeded)ÚgzipÚNotImplementedErrorÚMAX_DATAÚioÚBytesIOÚGzipFileÚreadÚIOErrorÚ
ValueErrorÚcloseÚlen)ÚdataÚlimitÚfÚgzfÚdecodeds        úO/root/workspace/ytshorts/venv/lib/python3.12/site-packages/defusedxml/xmlrpc.pyÚdefused_gzip_decoder&   -   s±   € õ
 Ü!Ð!Ø€}ÜˆÜ
�
‰
�4Ó€AÜ
�-‰-˜T¨1Ô
-€Cð)Ø�1Š9Ø—h‘h“j‰Gà—h‘h˜u q™yÓ)ˆGð ‡G�G„IØ‡I�I„KØ�‚z”c˜'“l UÒ*ÜÐ>Ó?Ð?Ø€Nøô ò )Ü˜Ó(Ð(ð)ús   Á*B, Â,Cc                   ó$   — e Zd ZdZdd„Zd„ Zd„ Zy)ÚDefusedGzipDecodedResponsezha file-like object to decode a response encoded with the gzip
    method, as described in RFC 1952.
    Nc                 óv  — t         st        ‚|�|nt        x| _        }|dk  r|j	                  «       }d | _        n|j	                  |dz   «      }d| _        |dk\  rt        |«      |kD  rt        d«      ‚t        j                  |«      | _
        t         j                  j                  | d| j                  ¬«       y )Nr   r   úmax payload length exceededr   r   )r   r   r   r!   r   Ú
readlengthr   r   r   r   Ústringior   Ú__init__)ÚselfÚresponser!   r    s       r%   r-   z#DefusedGzipDecodedResponse.__init__K   s�   € õ Ü%Ð%Ø&+Ð&7™U¼XÐEˆŒ
�UØ�1Š9Ø—=‘=“?ˆDØ"ˆD�Oà—=‘= ¨¡Ó+ˆDØˆDŒOØ�AŠ:œ#˜d›) eÒ+ÜÐ:Ó;Ð;ÜŸ
™
 4Ó(ˆŒÜ�‰×Ñ˜t¨$¸¿¹ÐÕFó    c                 óx  — | j                   dk\  rŒ| j                   | j                  z
  }t        ||dz   «      }t        j                  j                  | |«      }| xj                  t        |«      z  c_        | j                  | j                   kD  rt        d«      ‚|S t        j                  j                  | |«      S )Nr   r   r*   )r!   r+   Úminr   r   r   r   r   )r.   ÚnÚleftr    s       r%   r   zDefusedGzipDecodedResponse.read\   s�   € Ø�:‰:˜Š?Ø—:‘: §¡Ñ/ˆDÜ�A�t˜a‘xÓ ˆAÜ—=‘=×%Ñ% d¨AÓ.ˆDØ�OŠOœs 4›yÑ(�OØ�‰ §¡Ò+Ü Ð!>Ó?Ð?ØˆKä—=‘=×%Ñ% d¨AÓ.Ð.r0   c                 óv   — t         j                  j                  | «       | j                  j                  «        y ©N)r   r   r   r,   )r.   s    r%   r   z DefusedGzipDecodedResponse.closeh   s$   € Ü�‰×Ñ˜DÔ!Ø�‰×ÑÕr0   r6   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r-   r   r   © r0   r%   r(   r(   F   s   „ ñóGò"
/ór0   r(   c                   ó,   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zy)ÚDefusedExpatParserc                 óD  — t        j                  | |«       || _        || _        || _        | j
                  }| j                  r| j                  |_        | j                  r"| j                  |_	        | j                  |_        | j                  r| j                  |_        y y r6   )r
   r-   Ú
forbid_dtdÚforbid_entitiesÚforbid_externalÚ_parserÚdefused_start_doctype_declÚStartDoctypeDeclHandlerÚdefused_entity_declÚEntityDeclHandlerÚdefused_unparsed_entity_declÚUnparsedEntityDeclHandlerÚ#defused_external_entity_ref_handlerÚExternalEntityRefHandler)r.   Útargetr?   r@   rA   Úparsers         r%   r-   zDefusedExpatParser.__init__n   sˆ   € Ü×Ñ˜T 6Ô*Ø$ˆŒØ.ˆÔØ.ˆÔØ—‘ˆØ�?Š?Ø-1×-LÑ-LˆFÔ*Ø×ÒØ'+×'?Ñ'?ˆFÔ$Ø/3×/PÑ/PˆFÔ,Ø×ÒØ.2×.VÑ.VˆFÕ+ð  r0   c                 ó   — t        |||«      ‚r6   )r   )r.   ÚnameÚsysidÚpubidÚhas_internal_subsets        r%   rC   z-DefusedExpatParser.defused_start_doctype_decl|   s   € Ü˜4 ¨Ó.Ð.r0   c                 ó"   — t        ||||||«      ‚r6   ©r   )r.   rN   Úis_parameter_entityÚvalueÚbaserO   rP   Únotation_names           r%   rE   z&DefusedExpatParser.defused_entity_decl   s   € ô    e¨T°5¸%ÀÓOÐOr0   c                 ó"   — t        |d ||||«      ‚r6   rS   )r.   rN   rV   rO   rP   rW   s         r%   rG   z/DefusedExpatParser.defused_unparsed_entity_decl„   s   € ä  d¨D°%¸ÀÓNÐNr0   c                 ó   — t        ||||«      ‚r6   )r   )r.   ÚcontextrV   rO   rP   s        r%   rI   z6DefusedExpatParser.defused_external_entity_ref_handlerˆ   s   € Ü(¨°$¸¸uÓEÐEr0   N)FTT)r7   r8   r9   r-   rC   rE   rG   rI   r;   r0   r%   r=   r=   m   s   „ óWò/òPò
OóFr0   r=   c                  óŠ   — t         t        _        t        t        _        t
        t        _        t        rt
        t        _        y y r6   )r=   Úxmlrpc_clientÚ
FastParserr(   r   r&   r   Úxmlrpc_serverr;   r0   r%   Úmonkey_patchr_   Œ   s*   € Ü1„MÔÜ(B„MÔ%Ü 3„MÔÝÜ$7ŒÕ!ð r0   c                  ó‚   — d t         _        t        t         _        t        t         _        t        rt        t        _        y y r6   )r\   r]   Ú_OrigGzipDecodedResponser   Ú_orig_gzip_decoder   r^   r;   r0   r%   Úunmonkey_patchrc   ”   s*   € Ø#„MÔÜ(@„MÔ%Ü 1„MÔÝÜ$5ŒÕ!ð r0   r6   )!r:   Ú
__future__r   r   r   Úcommonr   r   r   r	   Ú
__origin__Úxmlrpc.clientr
   Úxmlrpcr   r\   r   r^   r   rb   r   ra   r   r   ÚImportErrorr   r&   r   Úobjectr(   r=   r_   rc   r;   r0   r%   ú<module>rk      s�   ðñ÷ 7ã 	ç TÓ TáØ €JÝ)Ý.Ý.Ý>ÞMà€JÝ%Û%à€MÝ:ÝIðÛð €óô2$±$ §¢¸Fô $ôNF˜ô Fò>8ó6øðe ò Ø‚Dðús   ÁB ÂBÂB