+
    šh©jú^  ã                   óÔ   € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHtHtHtHtHtHtHt ^ RIHt ^ RIHtHt ^ RIHt R t ! R	 R
]4      tR t ! R R4      tR# )z
Packet handling
N)ÚHMAC)Úutil)Úlinefeed_byteÚcr_byte_valueÚ	MSG_NAMESÚDEBUGÚ	xffffffffÚ	zero_byteÚbyte_ord)Úu)ÚSSHExceptionÚProxyCommandFailure)ÚMessagec                 ó6   € \        WV4      P                  4       # ©N)r   Údigest)ÚkeyÚmessageÚdigest_classs   &&&ÚJ/var/www/html/bestweb/venv/lib/python3.14/site-packages/paramiko/packet.pyÚcompute_hmacr   .   s   € Ü�˜lÓ+×2Ñ2Ó4Ð4ó    c                   ó   € ] tR t^2tRtRtR# )ÚNeedRekeyExceptionz)
Exception indicating a rekey is needed.
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   r   r   r   r   2   s   † ñó 	r   r   c                 óž   € R p\        V P                  4      \        J d.   \        V P                  4      ^ 8”  d   V P                  ^ ,          pV# r   )ÚtypeÚargsÚtupleÚlen)ÚeÚargs   & r   Ú	first_argr(   :   s7   € Ø
€CÜˆA�F‰Fƒ|”uÓ¤ Q§V¡V£¨q¤Ø�f‰f�Q�iˆØ€Jr   c                   ó<  a € ] tR t^At o Rt]! ^^4      t]! ^^4      t]! ^^4      t]! ^^4      t	R t
]R 4       tR tR tR tR#R ltR$R	 ltR
 tR tR tR tR tR tR tR tR tR tR tR tR tR%R ltR t R t!R t"R t#R t$R t%R t&R t'R  t(R! t)R"t*V t+R# )&Ú
Packetizerz1
Implementation of the base SSH packet protocol.
c                óÌ  € Wn         R V n        RV n        RV n        RV n        ^ V n        \        4       V n        RV n        ^ V n	        ^ V n
        ^ V n        ^ V n        ^ V n        ^ V n        ^V n        ^V n        ^ V n        ^ V n        R V n        R V n        RV n        R V n        R V n        \        4       V n        \        4       V n        R V n        R V n        ^ V n        ^ V n        RV n        RV n        RV n         RV n!        R V n"        R V n#        \H        PJ                  ! 4       V n&        ^ V n'        \P        PP                  ! 4       V n)        R V n*        R V n+        RV n,        RV n-        R # )NF).Ú_Packetizer__socketÚ_Packetizer__loggerÚ_Packetizer__closedÚ_Packetizer__dump_packetsÚ_Packetizer__need_rekeyÚ_Packetizer__init_countÚbytesÚ_Packetizer__remainderÚ_initial_kex_doneÚ_Packetizer__sent_bytesÚ_Packetizer__sent_packetsÚ_Packetizer__received_bytesÚ_Packetizer__received_packetsÚ$_Packetizer__received_bytes_overflowÚ&_Packetizer__received_packets_overflowÚ_Packetizer__block_size_outÚ_Packetizer__block_size_inÚ_Packetizer__mac_size_outÚ_Packetizer__mac_size_inÚ_Packetizer__block_engine_outÚ_Packetizer__block_engine_inÚ_Packetizer__sdctr_outÚ_Packetizer__mac_engine_outÚ_Packetizer__mac_engine_inÚ_Packetizer__mac_key_outÚ_Packetizer__mac_key_inÚ _Packetizer__compress_engine_outÚ_Packetizer__compress_engine_inÚ _Packetizer__sequence_number_outÚ_Packetizer__sequence_number_inÚ_Packetizer__etm_outÚ_Packetizer__etm_inÚ_Packetizer__aead_outÚ_Packetizer__aead_inÚ_Packetizer__iv_outÚ_Packetizer__iv_inÚ	threadingÚRLockÚ_Packetizer__write_lockÚ_Packetizer__keepalive_intervalÚtimeÚ_Packetizer__keepalive_lastÚ_Packetizer__keepalive_callbackÚ_Packetizer__timerÚ_Packetizer__handshake_completeÚ_Packetizer__timer_expired)ÚselfÚsockets   &&r   Ú__init__ÚPacketizer.__init__Q   sc  € ØŒØˆŒØˆŒØ#ˆÔØ!ˆÔØˆÔÜ ›7ˆÔØ!&ˆÔð ˆÔØˆÔØ !ˆÔØ"#ˆÔØ)*ˆÔ&Ø+,ˆÔ(ð !"ˆÔØ ˆÔØˆÔØˆÔØ"&ˆÔØ!%ˆÔØ ˆÔØ $ˆÔØ#ˆÔÜ"›WˆÔÜ!›GˆÔØ%)ˆÔ"Ø$(ˆÔ!Ø%&ˆÔ"Ø$%ˆÔ!ØˆŒØˆŒð  ˆŒØˆŒØˆŒØˆŒô &ŸOšOÓ-ˆÔð %&ˆÔ!Ü $§	¢	£ˆÔØ$(ˆÔ!àˆŒØ$)ˆÔ!Ø$ˆÖr   c                ó   € V P                   # r   )r.   ©rZ   s   &r   ÚclosedÚPacketizer.closedˆ   s   € à�}‰}Ðr   c                ó   € ^ V n         R# ©é    N)rH   r_   s   &r   Úreset_seqno_outÚPacketizer.reset_seqno_outŒ   s
   € Ø%&ˆÖ"r   c                ó   € ^ V n         R# rc   )rI   r_   s   &r   Úreset_seqno_inÚPacketizer.reset_seqno_in�   s
   € Ø$%ˆÖ!r   c                ó   € Wn         R# )z/
Set the Python log object to use for logging.
N)r-   )rZ   Úlogs   &&r   Úset_logÚPacketizer.set_log’   s	   € ð Žr   Nc
                ó  € Wn         W`n        W n        W0n        W@n        WPn        ^ V n        ^ V n        Wpn        W€n	        W�n
        V ;P                  ^,          un        V P                  ^8X  d   ^ V n        RV n        R# R# )zL
Switch outbound data cipher.
:param etm: Set encrypt-then-mac from OpenSSH
FN)r?   rA   r;   rB   r=   rD   r5   r6   rJ   rL   rN   r1   r0   )
rZ   Úblock_engineÚ
block_sizeÚ
mac_engineÚmac_sizeÚmac_keyÚsdctrÚetmÚaeadÚiv_outs
   &&&&&&&&&&r   Úset_outbound_cipherÚPacketizer.set_outbound_cipher˜   s}   € ð  #/ÔØ ÔØ *ÔØ *ÔØ&ÔØ$ÔØˆÔØˆÔØŒØŒØŒð 	×Ò˜QÕÕØ×Ñ Ô!Ø !ˆDÔØ %ˆDÖñ "r   c	                ó  € Wn         W n        W0n        W@n        WPn        ^ V n        ^ V n        ^ V n        ^ V n        W`n	        Wpn
        W€n        V ;P                  ^,          un        V P                  ^8X  d   ^ V n        RV n        R# R# )zK
Switch inbound data cipher.
:param etm: Set encrypt-then-mac from OpenSSH
FN)r@   r<   rC   r>   rE   r7   r8   r9   r:   rK   rM   rO   r1   r0   )	rZ   ro   rp   rq   rr   rs   ru   rv   Úiv_ins	   &&&&&&&&&r   Úset_inbound_cipherÚPacketizer.set_inbound_cipherº   s‡   € ð ".ÔØ)ÔØ)ÔØ%ÔØ#ÔØ !ˆÔØ"#ˆÔØ)*ˆÔ&Ø+,ˆÔ(ØŒØŒØŒð 	×Ò˜QÕÕØ×Ñ Ô!Ø !ˆDÔØ %ˆDÖñ "r   c                ó   € Wn         R # r   )rF   ©rZ   Ú
compressors   &&r   Úset_outbound_compressorÚ"Packetizer.set_outbound_compressorÜ   s   € Ø%/Ö"r   c                ó   € Wn         R # r   )rG   r   s   &&r   Úset_inbound_compressorÚ!Packetizer.set_inbound_compressorß   s   € Ø$.Ö!r   c                óH   € R V n         V P                  P                  4        R# ©TN)r.   r,   Úcloser_   s   &r   rˆ   ÚPacketizer.closeâ   s   € ØˆŒØ�‰×ÑÖr   c                ó   € Wn         R # r   ©r/   )rZ   Úhexdumps   &&r   Úset_hexdumpÚPacketizer.set_hexdumpæ   s   € Ø%Ör   c                ó   € V P                   # r   r‹   r_   s   &r   Úget_hexdumpÚPacketizer.get_hexdumpé   ó   € Ø×"Ñ"Ð"r   c                ó   € V P                   # r   )r>   r_   s   &r   Úget_mac_size_inÚPacketizer.get_mac_size_inì   s   € Ø×!Ñ!Ð!r   c                ó   € V P                   # r   )r=   r_   s   &r   Úget_mac_size_outÚPacketizer.get_mac_size_outï   r’   r   c                ó   € V P                   # )zÆ
Returns ``True`` if a new set of keys needs to be negotiated.  This
will be triggered during a packet read or write, so it should be
checked after every read or write, or at least after every few.
©r0   r_   s   &r   Ú
need_rekeyÚPacketizer.need_rekeyò   s   € ð × Ñ Ð r   c                óR   € Wn         W n        \        P                  ! 4       V n        R# )z¯
Turn on/off the callback keepalive.  If ``interval`` seconds pass with
no data read from or written to the socket, the callback will be
executed and the timer will be reset.
N)rS   rV   rT   rU   )rZ   ÚintervalÚcallbacks   &&&r   Úset_keepaliveÚPacketizer.set_keepaliveú   s   € ð %-Ô!Ø$,Ô!Ü $§	¢	£ˆÖr   c                ó   € R V n         R# r‡   )rY   r_   s   &r   Ú
read_timerÚPacketizer.read_timer  s
   € Ø#ˆÖr   c                óÀ   € V P                   '       gL   \        P                  ! \        V4      V P                  4      V n         V P                   P                  4        R# R# )zË
Tells `Packetizer` that the handshake process started.
Starts a book keeping timer that can signal a timeout in the
handshake process.

:param float timeout: amount of seconds to wait before timing out
N)rW   rP   ÚTimerÚfloatr£   Ústart)rZ   Útimeouts   &&r   Ústart_handshakeÚPacketizer.start_handshake  s<   € ð �|�|ˆ|Ü$Ÿ?š?¬5°«>¸4¿?¹?ÓKˆDŒLØ�L‰L×ÑÖ ñ r   c                ój   € V P                   '       g   R# V P                  '       d   R# V P                  # )a"  
Checks if the handshake has timed out.

If `start_handshake` wasn't called before the call to this function,
the return value will always be `False`. If the handshake completed
before a timeout was reached, the return value will be `False`

:return: handshake time out status, as a `bool`
F)rW   rX   rY   r_   s   &r   Úhandshake_timed_outÚPacketizer.handshake_timed_out  s+   € ð �|�|ˆ|ÙØ×$×$Ð$ÙØ×#Ñ#Ð#r   c                ó~   € V P                   '       d+   V P                   P                  4        RV n        RV n        R# R# )z6
Tells `Packetizer` that the handshake has completed.
FTN)rW   ÚcancelrY   rX   r_   s   &r   Úcomplete_handshakeÚPacketizer.complete_handshake#  s2   € ð �<�<ˆ<Ø�L‰L×ÑÔ!Ø#(ˆDÔ Ø(,ˆDÖ%ñ r   c                ót  € \        4       p\        V P                  4      ^ 8”  d6   V P                  RV pV P                  VR V n        V\        V4      ,          pV^ 8”  dß   RpV P                  4       '       d   \	        4       h V P
                  P                  V4      p\        V4      ^ 8X  d   \	        4       hW5,          pV\        V4      ,          pT'       g   Kƒ  T P                  '       d   \	        4       hT'       d-   \        T4      ^ 8X  d   T P                  '       d   \        4       hT P!                  4        Kå  V#   \        P                   d    Rp L‡\        P                   dJ   p\        T4      pT\        P                  8X  d   Rp Rp?LÂT P                  '       d   \	        4       hh Rp?ii ; i)zî
Read as close to N bytes as possible, blocking as long as necessary.

:param int n: number of bytes to read
:return: the data read, as a `str`

:raises:
    ``EOFError`` -- if the socket was closed before all the bytes could
    be read
NFT)r2   r%   r3   r­   ÚEOFErrorr,   Úrecvr[   r©   Úerrorr(   ÚerrnoÚEAGAINr.   r0   r   Ú_check_keepalive)rZ   ÚnÚcheck_rekeyÚoutÚgot_timeoutÚxr&   r'   s   &&&     r   Úread_allÚPacketizer.read_all,  sV  € ô ‹gˆäˆt×ÑÓ  1Ô$Ø×"Ñ" 2 AÐ&ˆCØ#×/Ñ/°°Ð3ˆDÔØ”�S“�MˆAØ�!ŒeØˆKØ×'Ñ'×)Ò)Ü“jÐ ðØ—M‘M×&Ñ& qÓ)�Ü�q“6˜Q”;Ü"›*Ð$Ø•�Ø”S˜“V•�÷ ‰{Ø—=—=�=Ü"›*Ð$ß¤C¨£H°¤M°t×7H×7HÐ7HÜ,Ó.Ð.Ø×%Ñ%Ö'Øˆ
øô' —>‘>ô #Ø"’Ü—<‘<ô 
ô   “l�Øœ%Ÿ,™,Ô&Ø"&•KØ—]—]�]Ü"›*Ð$àûð
ús1   ÂAE ÅF7ÅF7Å-F7Å."F2ÆF2Æ'F2Æ2F7c                óV  € \         P                   ! 4       V n        ^ p\        V4      ^ 8”  d�   Rp V P                  P	                  V4      pT'       d   ^ pT P                  '       d   RpMX^ 8X  d
   T^
8”  d   RpT^,          pT^ 8  d   \        4       hT\        T4      8X  d    R# YR pK�  R#   \
        P                   d    Rp L}\
        P                   d4   p\        T4      pT\        P                  8X  d   Rp Rp?L¸Rp Rp?L¿Rp?i\         d    h \         d    Rp LÜi ; i)rd   FTNéÿÿÿÿ)rT   rU   r%   r,   Úsendr[   r©   r¶   r(   r·   r¸   r   Ú	Exceptionr.   r´   )rZ   r¼   Ú#iteration_with_zero_as_return_valueÚretry_writerº   r&   r'   s   &&     r   Ú	write_allÚPacketizer.write_all\  s  € Ü $§	¢	£ˆÔØ./Ð+Ü�#‹h˜ŒlØˆKðØ—M‘M×&Ñ& sÓ+�÷ Ø�Ø—=—=�=Ø�Aøà˜”6ÐAÀBÔFð �AØ3°qÕ8Ð3Ø�1ŒuÜ“jÐ Ø”C˜“HŒ}Øáð �b�'ŠCÙøô? —>‘>ô #Ø"’Ü—<‘<ô Ü “l�Øœ%Ÿ,™,Ô&Ø"&•Kà•AûÜ&ô ØÜô à’ðús;   °B/ Â/D(ÃD(ÃD(Ã"D
ÄD
Ä
D(Ä
D(Ä"D(Ä'D(c                ó  € V P                   p\        V9  d   W P                  V4      ,          pK$  VP                  \        4      pW#^,           R V n         VRV p\	        V4      ^ 8”  d   VR,          \
        8X  d   VRR p\        V4      # )zq
Read a line from the socket.  We assume no data is pending after the
line, so it's okay to attempt large reads.
NrÂ   )r3   r   Ú_read_timeoutÚindexr%   r   r   )rZ   r©   Úbufrº   s   &&  r   ÚreadlineÚPacketizer.readline„  s}   € ð
 ×ÑˆÜ 3Ô&Ø×%Ñ% gÓ.Õ.ŠCØ�I‰I”mÓ$ˆØ 1�u˜w˜<ˆÔØ�"�1ˆgˆÜ�‹H�qŒL˜s 2�w¬-Ô7Ø�c�r�(ˆCÜ�‹vˆr   c                óš   € VR ,          p\         P                  VR4      pV^,           pVP                  ^R4      pVR,          V,           pV# )ºé   NNÚbigºrd   rÑ   N)ÚintÚ
from_bytesÚto_bytes)rZ   ÚivÚiv_counter_bÚ
iv_counterÚinc_iv_counterÚinc_iv_counter_bÚnew_ivs   &&     r   Ú_inc_iv_counterÚPacketizer._inc_iv_counter“  sM   € ð ˜"•vˆÜ—^‘^ L°%Ó8ˆ
Ø# a�ˆØ)×2Ñ2°1°eÓ<Ðà�C•Ð+Õ+ˆØˆr   c                óð  € VP                  4       p\        V^ ,          4      pV\        9   d   \        V,          pMRP                  V4      p\	        V4      pV P
                  P                  4         V P                  e   V P                  V4      pV P                  V4      pV P                  '       dQ   V P                  \        RP                  W44      4       V P                  \        \        P                  ! VR4      4       V P                  eÖ   V P                  '       d2   VR,          V P                  P!                  VR,          4      ,           pM”V P"                  '       de   VR,          V P                  P%                  V P&                  VR,          VR,          4      ,           pV P)                  V P&                  4      V n        MV P                  P!                  V4      pMTpV P                  e„   V P"                  '       gr   \*        P,                  ! RV P.                  4      pYpP                  '       d   TMT,           pV\1        V P2                  W€P4                  4      RV P6                   ,          pV P.                  ^,           \8        ,          p	V	^ 8X  d   V P:                  '       g   \=        R4      hW�n        V P?                  V4       V ;P@                  \	        V4      ,          un         V ;PB                  ^,          un!        V PB                  V PD                  8¬  ;'       g    V P@                  V PF                  8¬  p
V
'       dm   V PH                  '       g[   R	pV P                  \        VP                  V PB                  V P@                  4      4       ^ V n%        ^ V n&        V PO                  4        V P
                  PQ                  4        R#   T P
                  PQ                  4        i ; i)
zB
Write a block of data using the current cipher, as an SSH block.
ú${:x}NzWrite packet <{}>, length {}zOUT: rÓ   rÐ   ú>Iú/Sequence number rolled over during initial kex!z(Rekeying (hit {} packets, {} bytes sent)))Úasbytesr
   r   Úformatr%   rR   ÚacquirerF   Ú_build_packetr/   Ú_logr   r   Úformat_binaryr?   rJ   ÚupdaterL   ÚencryptrN   rÝ   ÚstructÚpackrH   r   rD   rB   r=   r   r4   r   rÇ   r5   r6   ÚREKEY_PACKETSÚREKEY_BYTESr0   r9   r:   Ú_trigger_rekeyÚrelease)rZ   ÚdataÚcmdÚcmd_nameÚorig_lenÚpacketr¼   ÚpackedÚpayloadÚnext_seqÚsent_too_muchÚmsgs   &&          r   Úsend_messageÚPacketizer.send_messagež  s  € ð
 �|‰|‹~ˆÜ�t˜A•wÓˆØ”)ÔÜ  •~‰Hà—~‘~ cÓ*ˆHÜ�t“9ˆØ×Ñ×!Ñ!Ô#ð;	(Ø×)Ñ)Ò5Ø×1Ñ1°$Ó7�Ø×'Ñ'¨Ó-ˆFØ×"×"Ð"Ø—	‘	ÜØ2×9Ñ9¸(ÓMôð —	‘	œ%¤×!3Ò!3°F¸GÓ!DÔEØ×&Ñ&Ò2Ø—>—>�>à  �+¨×(?Ñ(?×(FÑ(FØ˜r�
ó)õ ‘Cð —_—_�_ð ! �+¨×(?Ñ(?×(GÑ(GØŸ™ v¨b¥z°6¸#µ;ó)õ �Cð %)×$8Ñ$8¸¿¹Ó$G�D•Mà×1Ñ1×8Ñ8¸Ó@‘Cà�à×&Ñ&Ò2¸4¿?¿?¸?ÜŸš T¨4×+EÑ+EÓF�Ø ¯>¯>¨>¡C¸vÕF�Ø”|Ø×&Ñ&¨×1FÑ1Fóà'�D×'Ñ'ð)õ )�ð ×2Ñ2°QÕ6¼)ÕCˆHØ˜1Œ} T×%;×%;Ð%;Ü"ØEóð ð *2Ô&Ø�N‰N˜3Ôà×Ò¤ S£Õ)ÕØ×Ò 1Õ$Õà×#Ñ# t×'9Ñ'9Ñ9÷ 9ð 9Ø×$Ñ$¨×(8Ñ(8Ñ8ð ÷  T×%6×%6Ð%6à@�Ø—	‘	Ü˜3Ÿ:™: d×&9Ñ&9¸4×;LÑ;LÓMôð 23�Ô.Ø34�Ô0Ø×#Ñ#Ô%à×Ñ×%Ñ%Ö'øˆD×Ñ×%Ñ%Õ'úsC   Á3AO Â5A/O Ä%AO Å(B!O È
B'O Ê2A<O Ì/!O ÍO Í#AO ÏO5c           	     óŒ  € V P                  V P                  RR7      pV P                  '       dü   \        P                  ! RVR,          4      ^ ,          pW P                  ,
          ^,           pVR,          V P                  VRR7      ,           pV P                  V P
                  RR7      p\        P                  ! RV P                  V4      V,           p\        V P                  W`P                  4      RV P
                   p\        P                  ! Wu4      '       g   \        R	4      hTpV P                  '       dÀ   \        P                  ! RVR,          4      ^ ,          pVR,          pW P                  ,
          ^,           V P
                  ,           pVR,          V P                  VRR7      ,           pV P                  P!                  V P"                  WH4      pV P%                  V P"                  4      V n        V P                  e.   V P                  '       g   V P                  P'                  V4      pV P(                  '       d,   V P+                  \,        \        P.                  ! VR
4      4       V P                  '       g   V P                  '       d   TpMì\        P                  ! RVR,          4      ^ ,          pVR,          p	V\1        V	4      ,
          V P                  ,          ^ 8w  d   \        R4      hV P                  W P
                  ,           \1        V	4      ,
          4      p
V
RV\1        V	4      ,
           pW¢\1        V	4      ,
          R pV P                  e   V P                  P'                  V4      pW”,           pV P(                  '       d,   V P+                  \,        \        P.                  ! VR
4      4       V P
                  ^ 8”  d±   V P                  '       gŸ   V P                  '       g�   XRV P
                   p\        P                  ! RV P                  X4      V,           p\        V P                  W`P                  4      RV P
                   p\        P                  ! Wu4      '       g   \        R	4      h\3        V^ ,          4      pV^XV,
           pV P(                  '       d&   V P+                  \,        RP5                  W,4      4       V P6                  e   V P7                  V4      p\9        VR,          4      pV P                  Vn        V P                  ^,           \<        ,          pV^ 8X  d   V P>                  '       g   \        R4      hWðn        W P
                  ,           ^,           pV ;P@                  V,          un         V ;PB                  ^,          un!        V PD                  '       du   V ;PF                  V,          un#        V ;PH                  ^,          un$        V PH                  V PJ                  8¼  g   V PF                  V PL                  8¼  d   \        R4      hM�V PB                  V PN                  8¼  g   V P@                  V PP                  8¼  d[   RpV P+                  \,        VP5                  V PB                  V P@                  4      4       ^ V n#        ^ V n$        V PS                  4        \3        V^ ,          4      pV\T        9   d   \T        V,          pMRP5                  V4      pV P(                  '       d0   V P+                  \,        RP5                  V\1        V4      4      4       VV3# )zÃ
Only one thread should ever be in this function (no other locking is
done).

:raises: `.SSHException` -- if the packet is mangled
:raises: `.NeedRekeyException` -- if the transport should rekey
T)r»   rá   :NrÑ   NrÐ   Fz>IINzMismatched MACzIN: zInvalid packet blockingz"Got payload ({} bytes, {} padding):é   NNrâ   z+Remote transport is ignoring rekey requestsz,Rekeying (hit {} packets, {} bytes received)rà   zRead packet <{}>, length {})+r¿   r<   rK   rë   Úunpackr>   rì   rI   r   rE   rC   r   Úconstant_time_bytes_eqr   rM   r@   ÚdecryptrO   rÝ   ré   r/   rç   r   rè   r%   r
   rä   rG   r   Úseqnor   r4   r7   r8   r0   r9   r:   ÚREKEY_PACKETS_OVERFLOW_MAXÚREKEY_BYTES_OVERFLOW_MAXrí   rî   rï   r   )rZ   ÚheaderÚpacket_sizeÚ	remainingrõ   ÚmacÚmac_payloadÚmy_macÚaadÚleftoverrÌ   Úpost_packetÚpaddingr÷   rú   rø   Úraw_packet_sizeÚerrrò   ró   s   &                   r   Úread_messageÚPacketizer.read_messageè  sÙ  € ð —‘˜t×3Ñ3À�ÓFˆØ�=�=ˆ=Ü Ÿ-š-¨¨f°R­jÓ9¸!Õ<ˆKØ#×&:Ñ&:Õ:¸QÕ>ˆIØ˜B•Z $§-¡-°	Àu -Ó"MÕMˆFØ—-‘- × 2Ñ 2À�-ÓFˆCä—’˜E 4×#<Ñ#<¸kÓJØõð ô "Ø×!Ñ! ;×0DÑ0Dóà"�×"Ñ"ð$ˆFô ×.Ò.¨v×;Ò;Ü"Ð#3Ó4Ð4ØˆFà�>�>ˆ>ô !Ÿ-š-¨¨f°R­jÓ9¸!Õ<ˆKØ˜•*ˆCà×2Ñ2Õ2°QÕ6¸×9KÑ9KÕKð ð ˜B•Z $§-¡-°	Àu -Ó"MÕMˆFØ×+Ñ+×3Ñ3°D·L±LÀ&ÓNˆFà×/Ñ/°·±Ó=ˆDŒLà×!Ñ!Ò-°d·n·n°nØ×+Ñ+×2Ñ2°6Ó:ˆFØ××ÐØ�I‰I”eœT×/Ò/°¸Ó?Ô@ð
 �=�=ˆ=˜DŸNŸN˜NØ‰Fô !Ÿ-š-¨¨f°R­jÓ9¸!Õ<ˆKð ˜b•zˆHØœc (›mÕ+¨t×/CÑ/CÕCÀqÔHÜ"Ð#<Ó=Ð=Ø—-‘-Ø×0Ñ0Õ0´3°x³=Õ@óˆCð Ð6˜;¬¨X«Õ6Ð7ˆFØ¬C°«MÕ9Ð;Ð<ˆKà×%Ñ%Ò1Ø×/Ñ/×6Ñ6°vÓ>�ØÕ&ˆFà××ÐØ�I‰I”eœT×/Ò/°¸Ó?Ô@à×Ñ Ô!¨$¯-¯-¨-ÀÇÇÀØÐ2 × 2Ñ 2Ð3ˆCä—’˜E 4×#<Ñ#<¸kÓJØõð ô "Ø×!Ñ! ;×0DÑ0Dóà"�×"Ñ"ð$ˆFô ×.Ò.¨v×;Ò;Ü"Ð#3Ó4Ð4Ü˜6 !�9Ó%ˆØ˜˜[¨7Õ2Ð3ˆà××ÐØ�I‰IÜØ4×;Ñ;Øóôð ×$Ñ$Ò0Ø×/Ñ/°Ó8ˆGä�g˜b•kÓ"ˆØ×-Ñ-ˆŒ	Ø×-Ñ-°Õ1´YÕ>ˆØ�qŒ= ×!7×!7Ð!7ÜØAóð ð %-Ô!ð &×(:Ñ(:Õ:¸QÕ>ˆØ×Ò Õ0ÕØ×Ò 1Õ$ÕØ××Ðð ×*Ò*¨oÕ=Õ*Ø×,Ò,°Õ1Õ,à×0Ñ0Ø×2Ñ2ô3ð ×.Ñ.°$×2OÑ2OÔOä"ØAóð ð Pð
 ×%Ñ%¨×);Ñ);Ô;Ø×!Ñ! T×%5Ñ%5Ô5ð AˆCØ�I‰IÜØ—
‘
˜4×2Ñ2°D×4IÑ4IÓJôð ./ˆDÔ*Ø/0ˆDÔ,Ø×ÑÔ!ä�w˜q•zÓ"ˆØ”)ÔÜ  •~‰Hà—~‘~ cÓ*ˆHØ××ÐØ�I‰IÜØ-×4Ñ4°X¼sÀ7»|ÓLôð �Cˆxˆr   c                óæ   € V P                   f   R # \        \        V4      \        4      '       d'   V F  pV P                   P	                  W4       K   	  R # V P                   P	                  W4       R # r   )r-   Ú
issubclassr"   Úlistrk   )rZ   Úlevelrú   Úms   &&& r   rç   ÚPacketizer._log}  sP   € Ø�=‰=Ò ÙÜ”d˜3“i¤×&Ò&Û�Ø—‘×!Ñ! %Ö+ó ð �M‰M×Ñ˜eÖ)r   c                ó  € V P                   '       d%   V P                  '       d   V P                  '       d   R # \        P                  ! 4       pWP                  V P                   ,           8”  d   V P                  4        Wn        R # R # r   )rS   r?   r0   rT   rU   rV   )rZ   Únows   & r   r¹   ÚPacketizer._check_keepalive†  se   € à×)×)Ð)Ø×*×*Ð*Ø× × Ð ñ Ü�iŠi‹kˆØ×&Ñ&¨×)BÑ)BÕBÔBØ×%Ñ%Ô'Ø$'Ö!ñ Cr   c                ó€  € \         P                   ! 4       p  V P                  P                  ^€4      p\        V4      ^ 8X  d   \	        4       h V#   \
        P                   d     Mi ; iT P                  '       d   \	        4       h\         P                   ! 4       pYB,
          T8¼  g   K•  \
        P                  ! 4       h)T)rT   r,   rµ   r%   r´   r[   r©   r.   )rZ   r©   r¨   r¾   r  s   &&   r   rÊ   ÚPacketizer._read_timeout“  s‘   € Ü—	’	“ˆØðØ—M‘M×&Ñ& sÓ+�Ü�q“6˜Q”;Ü"›*Ð$Øð ˆøô —>‘>ô Ùðúà�}�}ˆ}Ü“jÐ Ü—)’)“+ˆCØ�{˜gÖ%Ü—n’nÓ&Ð&s   ˜5A ÁA(Á'A(c                óÐ  € V P                   pV P                  '       g   V P                  '       d   ^M^p^V,           \        V4      V,           V,          ,
          p\        P
                  ! R\        V4      V,           ^,           V4      pWQ,          pV P                  '       g   V P                  f   V\        V,          ,          pV# V\        P                  ! V4      ,          pV# )rÑ   z>IB)r;   rJ   rL   r%   rë   rì   rA   r?   r	   ÚosÚurandom)rZ   r÷   ÚbsizeÚaddlenr  rõ   s   &&    r   ræ   ÚPacketizer._build_packet¤  s³   € à×%Ñ%ˆð —n—n�n¨¯¯¨‘¸QˆØ�e•)¤ G£¨vÕ 5¸Õ>Õ?ˆÜ—’˜U¤C¨£L°7Õ$:¸QÕ$>ÀÓHˆØÕˆØ××Ð˜t×6Ñ6Ò>ð ”i 'Õ)Õ)ˆFð ˆð ”b—j’j Ó)Õ)ˆFØˆr   c                ó   € R V n         R# r‡   rš   r_   s   &r   rï   ÚPacketizer._trigger_rekey¶  s
   € à ˆÖr   )*Ú	__aead_inÚ
__aead_outÚ__block_engine_inÚ__block_engine_outÚ__block_size_inÚ__block_size_outÚ__closedÚ__compress_engine_inÚ__compress_engine_outÚ__dump_packetsÚ__etm_inÚ	__etm_outÚ__handshake_completeÚ__init_countÚ__iv_inÚ__iv_outÚ__keepalive_callbackÚ__keepalive_intervalÚ__keepalive_lastÚ__loggerÚ__mac_engine_inÚ__mac_engine_outÚ__mac_key_inÚ__mac_key_outÚ__mac_size_inÚ__mac_size_outÚ__need_rekeyÚ__received_bytesÚ__received_bytes_overflowÚ__received_packetsÚ__received_packets_overflowÚ__remainderÚ__sdctr_outÚ__sent_bytesÚ__sent_packetsÚ__sequence_number_inÚ__sequence_number_outÚ__socketÚ__timerÚ__timer_expiredÚ__write_lockr4   )FFFN)FFN)F),r   r   r   r   r   Úpowrí   rî   r  r  r\   Úpropertyr`   re   rh   rl   rx   r|   r�   r„   rˆ   r�   r�   r”   r—   r›   r    r£   rª   r­   r±   r¿   rÇ   rÍ   rÝ   rû   r  rç   r¹   rÊ   ræ   rï   r    Ú__classdictcell__)Ú__classdict__s   @r   r*   r*   A   sô   ø‡ € ññ ˜˜2“J€MÙ�a˜“*€Kñ "% Q¨£Ðá" 1 b›zÐò5%ðn ñó ðò'ò&òô &ôD &òD0ò/òò&ò#ò"ò#ò!ò,ò$ò
!ò$ò -ô.ò`&òPò	òH(òTQòj*ò(òò"÷$!ð !r   r*   )r   r·   r  r[   rë   rP   rT   Úhmacr   Úparamikor   Úparamiko.commonr   r   r   r   r   r	   r
   Úparamiko.utilr   Úparamiko.ssh_exceptionr   r   Úparamiko.messager   r   rÄ   r   r(   r*   r   r   r   Ú<module>rY     s`   ðñ&ó Û 	Û Û Û Û Ý å ÷÷ ñ õ ß DÝ $ò5ô	˜ô 	ò÷w	!ó w	!r   