ó
    &ÝNjB   ã                   ó@   • S SK r S SKrS SKJrJrJrJr   " S S5      rg)é    N)Ú	x80000000Úo700Úo70Ú	xffffffffc                   ó’   • \ rS rSrSrSrSrSrSr\	r
S r\SS	 j5       rS
 r\SS j5       rS rS rS r\SS j5       rS rS rSrg)ÚSFTPAttributesé   a1  
Representation of the attributes of a file (or proxied file) for SFTP in
client or server mode.  It attempts to mirror the object returned by
`os.stat` as closely as possible, so it may have the following fields,
with the same meanings as those returned by an `os.stat` object:

    - ``st_size``
    - ``st_uid``
    - ``st_gid``
    - ``st_mode``
    - ``st_atime``
    - ``st_mtime``

Because SFTP allows flags to have other arbitrary named attributes, these
are stored in a dict named ``attr``.  Occasionally, the filename is also
stored, in ``filename``.
é   é   é   é   c                 ót   • SU l         SU l        SU l        SU l        SU l        SU l        SU l        0 U l        g)zH
Create a new (empty) SFTPAttributes object.  All fields will be empty.
r   N)Ú_flagsÚst_sizeÚst_uidÚst_gidÚst_modeÚst_atimeÚst_mtimeÚattr©Úselfs    ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/paramiko/sftp_attr.pyÚ__init__ÚSFTPAttributes.__init__1   s<   € ð ˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆ�	ó    Nc                 óò   • U " 5       nUR                   Ul         UR                  Ul        UR                  Ul        UR                  Ul        UR                  Ul        UR
                  Ul        Ub  X#l        U$ )a0  
Create an `.SFTPAttributes` object from an existing ``stat`` object (an
object returned by `os.stat`).

:param object obj: an object returned by `os.stat` (or equivalent).
:param str filename: the filename associated with this file.
:return: new `.SFTPAttributes` object with the same attribute fields.
)r   r   r   r   r   r   Úfilename)ÚclsÚobjr   r   s       r   Ú	from_statÚSFTPAttributes.from_stat>   s]   € ñ ‹uˆØ—{‘{ˆŒØ—j‘jˆŒØ—j‘jˆŒØ—{‘{ˆŒØŸ™ˆŒØŸ™ˆŒØÑØ$ŒMØˆr   c                 ó@   • SR                  U R                  5       5      $ )Nz<SFTPAttributes: {}>)ÚformatÚ
_debug_strr   s    r   Ú__repr__ÚSFTPAttributes.__repr__S   s   € Ø%×,Ñ,¨T¯_©_Ó->Ó?Ð?r   c                 óZ   • U " 5       nUR                  U5        Ub  X$l        Ub  X4l        U$ ©N)Ú_unpackr   Úlongname)r   Úmsgr   r+   r   s        r   Ú	_from_msgÚSFTPAttributes._from_msgW   s0   € á‹uˆØ�‰�SÔØÑØ$ŒMØÑØ$ŒMØˆr   c                 óò  • UR                  5       U l        U R                  U R                  -  (       a  UR                  5       U l        U R                  U R
                  -  (       a*  UR                  5       U l        UR                  5       U l        U R                  U R                  -  (       a  UR                  5       U l	        U R                  U R                  -  (       a*  UR                  5       U l        UR                  5       U l        U R                  U R                  -  (       aN  UR                  5       n[        U5       H.  nUR                  5       U R                   UR                  5       '   M0     g g r)   )Úget_intr   Ú	FLAG_SIZEÚ	get_int64r   ÚFLAG_UIDGIDr   r   ÚFLAG_PERMISSIONSr   ÚFLAG_AMTIMEr   r   ÚFLAG_EXTENDEDÚrangeÚ
get_stringr   )r   r,   ÚcountÚis       r   r*   ÚSFTPAttributes._unpacka   sï   € Ø—k‘k“mˆŒØ�;‰;˜Ÿ™×'ØŸ=™=›?ˆDŒLØ�;‰;˜×)Ñ)×)ØŸ+™+›-ˆDŒKØŸ+™+›-ˆDŒKØ�;‰;˜×.Ñ.×.ØŸ;™;›=ˆDŒLØ�;‰;˜×)Ñ)×)ØŸK™K›MˆDŒMØŸK™K›MˆDŒMØ�;‰;˜×+Ñ+×+Ø—K‘K“MˆEÜ˜5–\�Ø.1¯n©nÓ.>�—	‘	˜#Ÿ.™.Ó*Ó+ò "ð ,r   c                 ó²  • SU l         U R                  b  U =R                   U R                  -  sl         U R                  b,  U R                  b  U =R                   U R
                  -  sl         U R                  b  U =R                   U R                  -  sl         U R                  b,  U R                  b  U =R                   U R                  -  sl         [        U R                  5      S:”  a  U =R                   U R                  -  sl         UR                  U R                   5        U R                   U R                  -  (       a  UR                  U R                  5        U R                   U R
                  -  (       a6  UR                  U R                  5        UR                  U R                  5        U R                   U R                  -  (       a  UR                  U R                  5        U R                   U R                  -  (       aH  UR                  [!        U R                  5      5        UR                  [!        U R                  5      5        U R                   U R                  -  (       ai  UR                  [        U R                  5      5        U R                  R#                  5        H'  u  p#UR%                  U5        UR%                  U5        M)     g )Nr   )r   r   r1   r   r   r3   r   r4   r   r   r5   Úlenr   r6   Úadd_intÚ	add_int64ÚintÚitemsÚ
add_string)r   r,   ÚkeyÚvals       r   Ú_packÚSFTPAttributes._packr   sÏ  € ØˆŒØ�<‰<Ñ#Ø�KŠK˜4Ÿ>™>Ñ)�KØ�K‰KÑ#¨$¯+©+Ñ*AØ�KŠK˜4×+Ñ+Ñ+�KØ�<‰<Ñ#Ø�KŠK˜4×0Ñ0Ñ0�KØ�M‰MÑ%¨D¯M©MÑ,EØ�KŠK˜4×+Ñ+Ñ+�KÜˆt�y‰y‹>˜AÓØ�KŠK˜4×-Ñ-Ñ-�KØ�‰�D—K‘KÔ Ø�;‰;˜Ÿ™×'Ø�M‰M˜$Ÿ,™,Ô'Ø�;‰;˜×)Ñ)×)Ø�K‰K˜Ÿ™Ô$Ø�K‰K˜Ÿ™Ô$Ø�;‰;˜×.Ñ.×.Ø�K‰K˜Ÿ™Ô%Ø�;‰;˜×)Ñ)×)à�K‰Kœ˜DŸM™MÓ*Ô+Ø�K‰Kœ˜DŸM™MÓ*Ô+Ø�;‰;˜×+Ñ+×+Ø�K‰Kœ˜DŸI™I›Ô'Ø ŸI™IŸO™OÖ-‘�Ø—‘˜sÔ#Ø—‘˜sÖ#ñ .ð 	r   c                 óN  • SnU R                   b  USR                  U R                   5      -  nU R                  b6  U R                  b)  USR                  U R                  U R                  5      -  nU R                  b  US[        U R                  5      -   S-   -  nU R                  b6  U R                  b)  USR                  U R                  U R                  5      -  nU R                  R                  5        H#  u  p#USR                  [        U5      U5      -  nM%     US-  nU$ )	Nz[ zsize={} zuid={} gid={} zmode=Ú zatime={} mtime={} z
"{}"={!r} Ú])r   r$   r   r   r   Úoctr   r   r   rA   Ústr)r   ÚoutÚkÚvs       r   r%   ÚSFTPAttributes._debug_str‘   s÷   € ØˆØ�<‰<Ñ#Ø�:×$Ñ$ T§\¡\Ó2Ñ2ˆCØ�K‰KÑ#¨$¯+©+Ñ*AØÐ#×*Ñ*¨4¯;©;¸¿¹ÓDÑDˆCØ�<‰<Ñ#Ø�7œS §¡Ó.Ñ.°Ñ4Ñ4ˆCØ�M‰MÑ%¨D¯M©MÑ,EØÐ'×.Ñ.¨t¯}©}¸d¿m¹mÓLÑLˆCØ—I‘I—O‘OÖ%‰DˆAØ�<×&Ñ&¤s¨1£v¨qÓ1Ñ1ŠCñ &àˆs‰
ˆØˆ
r   c                 ó†   • U(       a  SnSU S-	     SU S-	  S-     -   nU(       a  USXS-  -      -  nU$ USXS-  -      -  nU$ )Nr   z-rz-wr
   z-xTtz-xSs© )ÚnÚsuidÚstickyrL   s       r   Ú_rwxÚSFTPAttributes._rwx    sd   € æØˆDØ�1˜‘6‰l˜T 1¨¡6¨Q¡,Ñ/Ñ/ˆÞØ�6˜$ a¡%™.Ñ)Ñ)ˆCð ˆ
ð �6˜$ a¡%™.Ñ)Ñ)ˆCØˆ
r   c                 ó
  • U R                   Gb‡  [        R                  " U R                   5      nU[        R                  :X  a  SnOŒU[        R                  :X  a  SnOuU[        R
                  :X  a  SnO^U[        R                  :X  a  SnOGU[        R                  :X  a  SnO0U[        R                  :X  a  SnOU[        R                  :X  a  SnOSnX R                  U R                   [        -  S	-	  U R                   [        R                  -  5      -  nX R                  U R                   [        -  S
-	  U R                   [        R                  -  5      -  nX R                  U R                   S-  U R                   [        R                  -  S5      -  nOSnU R                   b  U R                   ["        :X  a  SnO~[$        R&                  " U R                   5      n[)        [$        R$                  " 5       U R                   -
  5      S:”  a  [$        R*                  " SU5      nO[$        R*                  " SU5      n[-        U SS5      nU R.                  nU R0                  nU R2                  nUc  SnUc  SnUc  SnSUUUUUU4-  $ )z=create a unix-style long description of the file (like ls -l)ÚpÚcÚdÚbÚ-ÚlÚsÚ?é   é   é   Tz
?---------z(unknown date)i Ní z%d %b %Yz%d %b %H:%Mr   r   z%s   1 %-8d %-8d %8d %-12s %s)r   ÚstatÚS_IFMTÚS_IFIFOÚS_IFCHRÚS_IFDIRÚS_IFBLKÚS_IFREGÚS_IFLNKÚS_IFSOCKrU   r   ÚS_ISUIDr   ÚS_ISGIDÚS_ISVTXr   r   ÚtimeÚ	localtimeÚabsÚstrftimeÚgetattrr   r   r   )	r   ÚkindÚksÚdatestrÚ
time_tupler   ÚuidÚgidÚsizes	            r   Ú__str__ÚSFTPAttributes.__str__«   s  € à�<‰<Ò#Ü—;’;˜tŸ|™|Ó,ˆDØ”t—|‘|Ó#Ø‘ØœŸ™Ó%Ø‘ØœŸ™Ó%Ø‘ØœŸ™Ó%Ø‘ØœŸ™Ó%Ø‘ØœŸ™Ó%Ø‘ØœŸ™Ó&Ø‘à�Ø—)‘)Ø—‘¤Ñ$¨Ñ*¨D¯L©L¼4¿<¹<Ñ,Góñ ˆBð —)‘)Ø—‘¤Ñ#¨Ñ)¨4¯<©<¼$¿,¹,Ñ+Fóñ ˆBð —)‘)Ø—‘˜qÑ  $§,¡,´·±Ñ"=¸tóñ ‰Bð ˆBà�M‰MÑ! t§}¡}¼	Ó'Aà&‰GäŸš¨¯©Ó6ˆJÜ”4—9’9“; §¡Ñ.Ó/°*Ó<äŸ-š-¨
°JÓ?‘äŸ-š-¨°zÓB�Ü˜4 ¨SÓ1ˆð �k‰kˆØ�k‰kˆØ�|‰|ˆØ‰;ØˆCØ‰;ØˆCØ‰<ØˆDð
 /ØØØØØØð2
ñ 
ð 	
r   c                 ó4   • [        U 5      R                  5       $ r)   )rK   Úencoder   s    r   ÚasbytesÚSFTPAttributes.asbytesî   s   € Ü�4‹y×ÑÓ!Ð!r   )r   r   r   r   r   r   r   r   r)   )NN)F)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r1   r3   r4   r5   r   r6   r   Úclassmethodr!   r&   r-   r*   rE   r%   ÚstaticmethodrU   r{   r   Ú__static_attributes__rQ   r   r   r   r      s…   † ñð$ €IØ€KØÐØ€KØ€Mòð óó ðò(@ð óó ðò?ò"ò>ð óó ðòA
õF"r   r   )rc   ro   Úparamiko.commonr   r   r   r   r   rQ   r   r   Ú<module>rŠ      s   ðó& Û ß ;Ó ;÷W"ò W"r   