§
    ÈtºfG  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZmZ d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZmZmZ d dlmZmZ d d	lmZm Z   G d
„ de¦  «        Z!da"da#d a$da%d a&da'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0 G d„ d¦  «        Z1 G d„ dej2        ¦  «        Z2 G d„ dej3        ¦  «        Z4 G d„ dej5        ¦  «        Z5 G d„ dej6        ¦  «        Z6d„ Z7d „ Z8e9d!k    r e(¦   «          dS dS )"é    N)ÚListÚTuple)ÚconnectÚdefault)ÚConchOptions)Ú
ConchError)ÚchannelÚcommonÚ
connectionÚ
forwardingÚsession)ÚreactorÚstdioÚtask)ÚlogÚusage)ÚioTypeÚnetworkStringc            
       óª  — e Zd ZU dZdZg d¢g d¢g d¢gZg d¢g d¢g d¢g d	¢g d
¢g d¢gZ ej        dg ej	        d¬¦  «         ej	        d¬¦  «        dœ ej
        ¦   «          ej	        d¬¦  «         ej	        dd¬¦  «        g¬¦  «        Zg Zeeeeeef         f                  ed<   g Zeeeeeef         f                  ed<   d„ Zd„ Zd„ Zd„ ZdS )ÚClientOptionsz(Usage:   conch [options] host [command]
zYconch is a SSHv2 client that allows logging into a remote machine and executing commands.)ÚescapeÚeú~)ÚlocalforwardÚLNz<listen-port:host:port   Forward local port to remote address)ÚremoteforwardÚRNz<listen-port:host:port   Forward remote port to local address)ÚnullÚnzRedirect input from /dev/null.)ÚforkÚfz(Fork to background after authentication.)ÚttyÚtz-Tty; allocate a tty even if command is given.)ÚnottyÚTzDo not allocate a tty.)ÚnoshellÚNz"Do not execute a shell or command.)Ú	subsystemÚsz-Invoke command (mandatory) as SSH2 subsystem.)r"   r$   zlisten-port:host:port)Údescr)r   r   ÚcommandÚargumentT)r*   Úrepeat)ÚmutuallyExclusiveÚ
optActionsÚextraActionsÚlocalForwardsÚremoteForwardsc                 ó  — |dk    rd| d<   dS |d         dk    r=t          |¦  «        dk    r*t          t          |d         ¦  «        dz
  ¦  «        | d<   dS t          |¦  «        dk    r|| d<   dS t          j        d	|› d
�¦  «         dS )z:
        Set escape character; ``none'' = disable
        ÚnoneNr   r   ú^é   é   é@   zBad escape character 'z'.)ÚlenÚchrÚordÚsysÚexit)ÚselfÚescs     úZ/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/conch/scripts/conch.pyÚ
opt_escapezClientOptions.opt_escapeO   s—   € ð �&Š=ˆ=Ø!ˆD�‰NˆNˆNØ�ŒV�sŠ]ˆ]�s 3™xœx¨1š}˜}Ý ¥ S¨¤V¡¤¨rÑ!1Ñ2Ô2ˆD�‰NˆNˆNÝ�‰XŒX˜Š]ˆ]Ø ˆD�‰NˆNˆNåŒHÐ5¨cÐ5Ð5Ð5Ñ6Ô6Ð6Ð6Ð6ó    c                 ó°   — |                      d¦  «        \  }}}t          |¦  «        }t          |¦  «        }| j                             |||ff¦  «         dS )zH
        Forward local port to remote address (lport:host:port)
        ú:N)ÚsplitÚintr1   Úappend)r>   r!   Ú	localPortÚ
remoteHostÚ
remotePorts        r@   Úopt_localforwardzClientOptions.opt_localforward\   sW   € ð -.¯GªG°C©L¬LÑ)ˆ	�:˜zÝ˜	‘N”Nˆ	Ý˜‘_”_ˆ
ØÔ×!Ò! 9¨z¸:Ð.FÐ"GÑHÔHÐHÐHÐHrB   c                 ó°   — |                      d¦  «        \  }}}t          |¦  «        }t          |¦  «        }| j                             |||ff¦  «         dS )zH
        Forward remote port to local address (rport:host:port)
        rD   N)rE   rF   r2   rG   )r>   r!   rJ   ÚconnHostÚconnPorts        r@   Úopt_remoteforwardzClientOptions.opt_remoteforwarde   sW   € ð *+¯ª°©¬Ñ&ˆ
�H˜hÝ˜‘_”_ˆ
Ý�x‘=”=ˆØÔ×"Ò" J°¸8Ð0DÐ#EÑFÔFÐFÐFÐFrB   c                 ó@   — || d<   d                      |¦  «        | d<   d S )NÚhostú r+   )Újoin)r>   rQ   r+   s      r@   Ú	parseArgszClientOptions.parseArgsn   s$   € ØˆˆV‰ØŸ(š( 7Ñ+Ô+ˆˆY‰ˆˆrB   N)Ú__name__Ú
__module__Ú__qualname__ÚsynopsisÚlongdescÚoptParametersÚoptFlagsr   ÚCompletionsÚ	CompleterÚCompleteUserAtHostÚcompDatar1   r   r   rF   Ú__annotations__r2   rA   rK   rO   rT   © rB   r@   r   r      s´  € € € € € € ð€Hð	*ð ð 	ÐÐð	
ð 	
ð 	
ð	
ð 	
ð 	
ð€Mð" 	8Ð7Ð7ØAÐAÐAØEÐEÐEØ0Ð0Ð0Ø>Ð>Ð>ØKÐKÐKð€Hð !ˆuÔ Ø+Ð,à+˜EœOÐ2IÐJÑJÔJØ,˜Uœ_Ð3JÐKÑKÔKð
ð 
ð
 %ˆEÔ$Ñ&Ô&ØˆEŒO )Ð,Ñ,Ô,ØˆEŒO *°TÐ:Ñ:Ô:ð
ðñ ô €Hð 8:€M�4˜˜c 5¨¨c¨¤?Ð2Ô3Ô4Ð9Ð9Ñ9Ø8:€N�D˜˜s E¨#¨s¨(¤OÐ3Ô4Ô5Ð:Ð:Ñ:ð7ð 7ð 7ðIð Ið IðGð Gð Gð,ð ,ð ,ð ,ð ,rB   r   c                  ó<  — t           j        dd …         } d| v r0|                      d¦  «        }| ||dz   …         | z   } | |dz   |dz   …= | d d …         D ]U}	 |                      |¦  «        }|d d…         dk    r| |dz            d         dk    r
g | ||dz   …<   ŒF# t          $ r Y ŒRw xY wt	          ¦   «         a	 t
                               | ¦  «         n[# t          j        $ rI}t          d|› �¦  «         t
           
                    ¦   «          t          j        d¦  «         Y d }~nd }~ww xY wt
          d	         r€t
          d
         r:t
          d
         dk    rt           j        }n(t          t
          d
         d¦  «        }nt           j        }t           j        }t          j        |¦  «         |t           _        nt          j        ¦   «          t%          ¦   «          t           j                             ¦   «         }	 t+          j        |¦  «        an# t0          $ r d aY nw xY w	 t3          j        t2          j        d„ ¦  «        }n# t0          $ r d }Y nw xY w	 t7          j        ¦   «          t.          r%t+          j        |t*          j        t.          ¦  «         |rt3          j        t2          j        |¦  «         t
          d         rt
          d         st
          d         s)t3          j        t2          j        t2          j         ¦  «         n£# t.          r%t+          j        |t*          j        t.          ¦  «         |rt3          j        t2          j        |¦  «         t
          d         rt
          d         st
          d         s*t3          j        t2          j        t2          j         ¦  «         w w xY wt           j         !                    ¦   «         r:t
          d         s-t          d "                    t
          d         ¦  «        ¦  «         t          j        tF          ¦  «         d S )Nr7   z-lr6   é   z-or   ú-zERROR: r   Úlogfileza+c                  ó6   — t          j        dt          ¦  «        S ©Nr   )r   Ú	callLaterÚ	reConnect)Úas    r@   ú<lambda>zrun.<locals>.<lambda>¦   s   € ¥wÔ'8¸½IÑ'FÔ'F€ rB   r+   r"   r$   zConnection to {} closed.rQ   )$r<   ÚargvÚindexÚ
ValueErrorr   ÚoptionsÚparseOptionsr   Ú
UsageErrorÚprintÚopt_helpr=   ÚstdoutÚopenÚstderrr   ÚstartLoggingÚdiscardLogsÚ	doConnectÚstdinÚfilenor"   Ú	tcgetattrÚoldÚBaseExceptionÚsignalÚSIGUSR1r   ÚrunÚ	tcsetattrÚTCSANOWÚSIGWINCHÚSIG_DFLÚisattyÚformatÚ
exitStatus)ÚargsÚiÚargÚur!   ÚrealoutÚfdÚoldUSR1s           r@   r�   r�   |   sÞ  € åŒ8�A�B�BŒ<€DØˆt€|€|Ø�JŠJ�tÑÔˆØ�A˜˜A™�IŒ Ñ%ˆØ��Q‘˜˜Q™�ÐØ�A�A�AŒwð ð ˆð	Ø—
’
˜3‘”ˆAØ�2�A�2Œw˜$Šˆ 4¨¨A©¤;¨q¤>°SÒ#8Ð#8Ø"$��Q˜˜Q™�Y‘øøÝð 	ð 	ð 	ØˆDð	øøøå‰oŒo€GðÝ×Ò˜TÑ"Ô"Ð"Ð"øÝÔð ð ð Ýˆm˜ˆmˆmÑÔÐÝ×ÒÑÔÐÝŒ�‰Œˆˆˆˆˆˆøøøøðøøøõ ˆu„~ð Ý�9Ôð 	Ý�yÔ! SÒ(Ð(Ý”J��å� Ô+¨TÑ2Ô2��å”
ˆAÝ”*ˆÝÔ˜ÑÔÐØ�Œ
ˆ
åŒÑÔÐÝ�K„K€KÝ	Œ×	Ò	Ñ	Ô	€BðÝŒm˜BÑÔˆˆøÝð ð ð ØˆˆˆðøøøðÝ”-ÝŒNÐFÐFñ
ô 
ˆˆøõ ð ð ð Øˆˆˆðøøøð;ÝŒ‰Œˆåð 	0ÝŒM˜"�cœk­3Ñ/Ô/Ð/Øð 	3ÝŒM�&œ.¨'Ñ2Ô2Ð2Ý�IÔð 	;¥7¨5¤>ð 	;½'À'Ô:Jð 	;ÝŒM�&œ/­6¬>Ñ:Ô:Ð:øøõ ð 	0ÝŒM˜"�cœk­3Ñ/Ô/Ð/Øð 	3ÝŒM�&œ.¨'Ñ2Ô2Ð2Ý�IÔð 	;¥7¨5¤>ð 	;½'À'Ô:Jð 	;ÝŒM�&œ/­6¬>Ñ:Ô:Ð:Ð:ð	;øøøå
„z×ÒÑÔð B¥7¨9Ô#5ð BÝÐ(×/Ò/µ¸´Ñ@Ô@ÑAÔAÐAÝ„H�ZÑÔÐÐÐs\   ÁABÂ
B&Â%B&Â8C ÃD+Ã"?D&Ä&D+Ç;H ÈHÈHÈ# I ÉIÉIÉL ÌB N(c                  ó”   — ddl m}  dat          j        dt
          ¦  «         t          j        |                      ¦   «         ¦  «         ‚ )Nr   ©Úfailurer6   g{®Gáz„?)	Útwisted.pythonr’   rˆ   r   rh   Ú_stopReactorr   ÚerrÚFailurer‘   s    r@   ÚhandleErrorr—   ¸   sK   € Ø&Ð&Ð&Ð&Ð&Ð&ð €JÝÔ�d�LÑ)Ô)Ð)Ý„GˆG�OŠOÑÔÑÔÐØ	rB   c                  óP   — 	 t          j        ¦   «          d S # t          $ r Y d S w xY w©N)r   Ústopr~   ra   rB   r@   r”   r”   Â   s8   € ðÝŒ‰ŒˆˆˆøÝð ð ð Øˆˆðøøøs   ‚ —
%¤%c                  ó  — dt           d         v r4t           d                              dd¦  «        \  t           d<   t           d<   t           j        sddgt           _        t           d         } t           d         st          j        ¦   «         t           d<   t           d         sdt           d<   n"t          t           d         ¦  «        t           d<   t           d         } t           d         }t          j        }t           d	         s"t          j        | t           ¦  «        t           d	<   t          j	        t           d         t           t          ¦   «         ¦  «        }t          j        | |t           ||¦  «                             t          ¦  «         d S )
Nú@rQ   r7   Úuserz~/.ssh/id_rsaz~/.ssh/id_dsaÚporté   zhost-key-algorithms)ro   rE   Ú	identitysÚgetpassÚgetuserrF   r   ÚverifyHostKeyÚgetHostKeyAlgorithmsÚSSHUserAuthClientÚSSHConnectionr   Ú
addErrbackÚ_ebExit)rQ   rž   ÚvhkÚuaos       r@   ry   ry   É   s*  € Ø
�g�fŒoÐÐÝ+2°6¬?×+@Ò+@ÀÀaÑ+HÔ+HÑ(��‰� ™ÝÔð ?Ø,¨oÐ>�ÔÝ�6Œ?€DÝ�6Œ?ð ,Ý!œ/Ñ+Ô+��‰Ý�6Œ?ð /Ø��‰ˆå�g fœoÑ.Ô.��‰Ý�6Œ?€DÝ�6Œ?€DÝ
Ô
€CÝÐ(Ô)ð UÝ)0Ô)EÀdÍGÑ)TÔ)T�Ð%Ñ&Ý
Ô
#¥G¨F¤OµW½m¹o¼oÑ
NÔ
N€CÝ„O�D˜$¥¨¨cÑ2Ô2×=Ò=½gÑFÔFÐFÐFÐFrB   c                 óD   — d| › �a t          j        dt          ¦  «         d S )Nzconch: exiting with error çš™™™™™¹?)rˆ   r   rh   r”   )r!   s    r@   r¨   r¨   Þ   s(   € à1¨aÐ1Ð1€JÝÔ�c�<Ñ(Ô(Ð(Ð(Ð(rB   c            	      óÖ  — t          t          j        d¦  «        rt          t          ¦  «         t          j        rdt          j        D ]W\  } }t          j        | t          j	        t          |t          ¦  «        ¦  «        }t          j                             |¦  «         ŒXt          j        rbt          j        D ]:\  }}t          j        d|› d|› �¦  «         t                               ||¦  «         Œ;t          j        ddt"          ¦  «         t          d         rt          d         r&t                               t'          ¦   «         ¦  «         t          d         r�t)          j        ¦   «         rt)          j        d	¦  «         t)          j        ¦   «          t1          d
¦  «        D ]E}	 t)          j        |¦  «         Œ# t4          $ r}d	d l}|j        |j        k    r‚ Y d }~Œ<d }~ww xY wd S d S )NÚ
sendIgnorez!asking for remote forwarding for rD   ÚbeforeÚshutdownr&   Úagentr    r   é   )ÚhasattrÚconnÚ	transportÚ
_KeepAlivero   r1   r   Ú	listenTCPr   ÚSSHListenForwardingFactoryÚ SSHListenClientForwardingChannelrG   r2   r   ÚmsgÚrequestRemoteForwardingÚaddSystemEventTriggerÚbeforeShutdownÚopenChannelÚ
SSHSessionÚosr    Ú_exitÚsetsidÚrangeÚcloseÚOSErrorÚerrnoÚEBADF)rH   Úhostportr)   rJ   rŠ   r   rÆ   s          r@   Ú	onConnectrÉ   ä   sî  € õ �tŒ~˜|Ñ,Ô,ð Ý•4ÑÔÐÝÔð )Ý#*Ô#8ð 	)ð 	)ÑˆI�xÝÔ!ØÝÔ5Ý˜(Õ$Dñô ñô ˆAõ Ô×%Ò% aÑ(Ô(Ð(Ð(ÝÔð LÝ$+Ô$:ð 	?ð 	?Ñ ˆJ˜ÝŒGÐO¸
ÐOÐOÀXÐOÐOÑPÔPÐPÝ×(Ò(¨°XÑ>Ô>Ð>Ð>ÝÔ% h°
½NÑKÔKÐKÝ�9Ôð '¥¨Ô!1ð 'Ý×Ò�™œÑ&Ô&Ð&Ýˆv„ð ÝŒ7‰9Œ9ð 	ÝŒH�Q‰KŒKˆKÝ
Œ	‰ŒˆÝ�q‘”ð 	ð 	ˆAðÝ”˜‘”��øÝð ð ð Ø���à”7˜eœkÒ)Ð)Øð *Ð)Ð)Ð)Ð)øøøøðøøøðð ð	ð 	s   Æ&F;Æ;
G$ÇGÇG$c                  óh   — t          ¦   «          t          j        j                             ¦   «          d S r™   )r½   r´   rµ   ÚloseConnectionra   rB   r@   ri   ri     s+   € ÝÑÔÐÝ„NÔ×+Ò+Ñ-Ô-Ð-Ð-Ð-rB   c                  ó–   — t           j        } | D ]9\  }}t          j        d|› d|› �¦  «         t                               |¦  «         Œ:d S )Nzcancelling rD   )ro   r2   r   rº   r´   ÚcancelRemoteForwarding)r2   rJ   rÈ   s      r@   r½   r½     s`   € ÝÔ+€NØ .ð 0ð 0Ñˆ
�HÝŒÐ5˜jÐ5Ð5¨8Ð5Ð5Ñ6Ô6Ð6Ý×#Ò# JÑ/Ô/Ð/Ð/ð0ð 0rB   c                  óX   — t           d         st          j        dt          ¦  «         d S d S )NÚ	reconnectr¬   )ro   r   rh   r”   ra   rB   r@   ÚstopConnectionrÐ     s2   € Ý�;Ôð -ÝÔ˜#�|Ñ,Ô,Ð,Ð,Ð,ð-ð -rB   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )r¶   c                 ó’   — || _         d | _        t          j        | j        ¦  «        | _        | j                             d¦  «         d S )Ni,  )r´   ÚglobalTimeoutr   ÚLoopingCallÚ
sendGlobalÚlcÚstart)r>   r´   s     r@   Ú__init__z_KeepAlive.__init__  s?   € ØˆŒ	Ø!ˆÔÝÔ" 4¤?Ñ3Ô3ˆŒØŒ�Š�cÑÔÐÐÐrB   c                 ó²   — | j                              ddd¬¦  «        }|                     | j        ¦  «         t	          j        d| j        ¦  «        | _        d S )Ns"   conch-keep-alive@twistedmatrix.comrB   r7   ©Ú	wantReplyé   )r´   ÚsendGlobalRequestÚaddBothÚ	_cbGlobalr   rh   Ú	_ebGlobalrÓ   )r>   Úds     r@   rÕ   z_KeepAlive.sendGlobal   sX   € ØŒI×'Ò'Ø1°3À!ð (ñ 
ô 
ˆð 	
�	Š	�$”.Ñ!Ô!Ð!Ý$Ô.¨r°4´>ÑBÔBˆÔÐÐrB   c                 óX   — | j         r"| j                              ¦   «          d | _         d S d S r™   )rÓ   Úcancel)r>   Úress     r@   rß   z_KeepAlive._cbGlobal'  s:   € ØÔð 	&ØÔ×%Ò%Ñ'Ô'Ð'Ø!%ˆDÔÐÐð	&ð 	&rB   c                 ób   — | j         r'd | _         | j        j                             ¦   «          d S d S r™   )rÓ   r´   rµ   rË   ©r>   s    r@   rà   z_KeepAlive._ebGlobal,  s<   € ØÔð 	1Ø!%ˆDÔØŒIÔ×.Ò.Ñ0Ô0Ð0Ð0Ð0ð	1ð 	1rB   N)rU   rV   rW   rØ   rÕ   rß   rà   ra   rB   r@   r¶   r¶     sS   € € € € € ðð ð ðCð Cð Cð&ð &ð &ð
1ð 1ð 1ð 1ð 1rB   r¶   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
r¦   c                 óB   — | a g | _        i | _        t          ¦   «          d S r™   )r´   r1   r2   rÉ   ræ   s    r@   ÚserviceStartedzSSHConnection.serviceStarted3  s$   € àˆØˆÔØ ˆÔÝ‰ŒˆˆˆrB   c                 óp   — | j         }g | _         |D ]}|                     ¦   «          Œt          ¦   «          d S r™   )r1   rË   rÐ   )r>   Úlfr)   s      r@   ÚserviceStoppedzSSHConnection.serviceStopped:  sH   € ØÔˆØˆÔØð 	ð 	ˆAØ×ÒÑÔÐÐÝÑÔÐÐÐrB   c                 ó  — t          j        d|f¦  «        }|                      d|d¬¦  «        }t          j        d|› d|› �¦  «         |                     | j        ||¦  «         |                     | j        ||¦  «         d S )Nú0.0.0.0s   tcpip-forwardr7   rÚ   zrequesting remote forwarding rD   )	r   ÚpackGlobal_tcpip_forwardrÝ   r   rº   ÚaddCallbackÚ_cbRemoteForwardingr§   Ú_ebRemoteForwarding)r>   rJ   rÈ   Údatará   s        r@   r»   z%SSHConnection.requestRemoteForwardingA  s‹   € ÝÔ2°I¸zÐ3JÑKÔKˆØ×"Ò"Ð#3°TÀQÐ"ÑGÔGˆÝŒÐG°
ÐGÐG¸XÐGÐGÑHÔHÐHØ	�Š�dÔ.°
¸HÑEÔEÐEØ	�Š�TÔ-¨z¸8ÑDÔDÐDÐDÐDrB   c                 óš   — t          j        d|› d|› �¦  «         || j        |<   t          j        t          | j        ¦  «        ¦  «         d S )Nzaccepted remote forwarding rD   )r   rº   r2   Úrepr)r>   ÚresultrJ   rÈ   s       r@   rñ   z!SSHConnection._cbRemoteForwardingH  sQ   € ÝŒÐE¨jÐEÐE¸8ÐEÐEÑFÔFÐFØ*2ˆÔ˜JÑ'ÝŒ•�TÔ(Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*rB   c                 ód   — t          j        d|› d|› d�¦  «         t          j        |¦  «         d S )Nzremote forwarding rD   z failed©r   rº   )r>   r!   rJ   rÈ   s       r@   rò   z!SSHConnection._ebRemoteForwardingM  s7   € ÝŒÐC ZÐCÐC°(ÐCÐCÐCÑDÔDÐDÝŒ�‰
Œ
ˆ
ˆ
ˆ
rB   c                 ó  — t          j        d|f¦  «        }|                      d|¦  «         t          j        d|› �¦  «         	 | j        |= n# t          $ r Y nw xY wt          j        t          | j        ¦  «        ¦  «         d S )Nrî   s   cancel-tcpip-forwardzcancelling remote forwarding )r   rï   rÝ   r   rº   r2   Ú	Exceptionrõ   )r>   rJ   ró   s      r@   rÍ   z$SSHConnection.cancelRemoteForwardingQ  s›   € ÝÔ2°I¸zÐ3JÑKÔKˆØ×ÒÐ6¸Ñ=Ô=Ð=ÝŒÐ<°
Ð<Ð<Ñ=Ô=Ð=ð	ØÔ# JÐ/Ð/øÝð 	ð 	ð 	ØˆDð	øøøåŒ•�TÔ(Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*s   ÁA Á
AÁAc                 ó„  — t          j        d|›�¦  «         t          j        |¦  «        \  }}t          j        | j        ¦  «         t          j        |¦  «         |d         | j        v r=| j        |d                  }t          j        d|› �¦  «         t          |||| ¬¦  «        S t          t          j        d¦  «        ‚)NzFTCP r7   zconnect forwarding )ÚremoteWindowÚremoteMaxPacketr´   zdon't know about that port)	r   rº   r   ÚunpackOpen_forwarded_tcpipr2   ÚSSHConnectForwardingChannelr   r   ÚOPEN_CONNECT_FAILED)r>   Ú
windowSizeÚ	maxPacketró   ÚremoteHPÚorigHPÚ	connectHPs          r@   Úchannel_forwarded_tcpipz%SSHConnection.channel_forwarded_tcpip[  sÍ   € ÝŒÐ ˜Ð Ð Ñ!Ô!Ð!Ý%Ô@ÀÑFÔFÑˆ�&ÝŒ�Ô#Ñ$Ô$Ð$ÝŒ�ÑÔÐØ�AŒ;˜$Ô-Ð-Ð-ØÔ+¨H°Q¬KÔ8ˆIÝŒGÐ5¨)Ð5Ð5Ñ6Ô6Ð6Ý.Ø¨
ÀIÐTXðñ ô ð õ ÝÔ.Ð0Lñô ð rB   c                 ó*  — t          j        d|› �¦  «         t          j        | j        ¦  «         t          | j        ¦  «        dk    r$t          j        d¦  «         t	          ¦   «          d S | j        j        d                              | |¦  «         d S )Nzconnection closing r7   zstopping connectionr   )r   rº   Úchannelsr9   rÐ   Ú	__class__Ú	__bases__ÚchannelClosed)r>   r	   s     r@   r  zSSHConnection.channelClosedk  s�   € ÝŒÐ/ gÐ/Ð/Ñ0Ô0Ð0ÝŒ�”ÑÔÐÝˆtŒ}ÑÔ Ò"Ð"ÝŒGÐ)Ñ*Ô*Ð*ÝÑÔÐÐÐð ŒNÔ$ QÔ'×5Ò5°d¸GÑDÔDÐDÐDÐDrB   N)rU   rV   rW   ré   rì   r»   rñ   rò   rÍ   r  r  ra   rB   r@   r¦   r¦   2  s”   € € € € € ðð ð ðð ð ðEð Eð Eð+ð +ð +ð
ð ð ð+ð +ð +ðð ð ð Eð Eð Eð Eð ErB   r¦   c                   óZ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ ZdS )r¿   s   sessionc                 ó0  ‡ — t          j        d‰ j        › d�¦  «         t          d         r4‰ j                             ‰ ddd¬¦  «        }|                     d„ ¦  «         t          d	         rd S t          d
         rt          d         st          d         st          ¦   «          t          j	        ¦   «         }t          d         r!t          d         sd‰ _
        ‰ j        |_        n‰ j        |_        ˆ fd„|_        t          j        |¦  «        ‰ _        d}t          d         r;‰ j                             ‰ dt#          j        t          d
         ¦  «        ¦  «         d S t          d
         råt          d         r�t&          j        d         }t+          j        |t.          j        d¦  «        }t3          j        d|¦  «        }t          j        ||d¦  «        }‰ j                             ‰ d|¦  «         t9          j        t8          j        ‰ j        ¦  «         ‰ j                             ‰ dt#          j        t          d
         ¦  «        ¦  «         d S t          d         s�t&          j        d         }t+          j        |t.          j        d¦  «        }t3          j        d|¦  «        }t          j        ||d¦  «        }‰ j                             ‰ d|¦  «         t9          j        t8          j        ‰ j        ¦  «         ‰ j                             ‰ dd¦  «         d S )Nzsession z openr±   s   auth-agent-req@openssh.comrB   r7   rÚ   c                 ó*   — t          j        | ¦  «        S r™   rø   )Úxs    r@   rk   z(SSHSession.channelOpen.<locals>.<lambda>  s   € ¥¤¨¡
¤
€ rB   r&   r+   r"   r$   r   c                 ó,   •— ‰                      ¦   «         S r™   )ÚsendEOF)r  r>   s    €r@   rk   z(SSHSession.channelOpen.<locals>.<lambda>Š  s   ø€  T§\¢\¡^¤^€ rB   r   r(   s	   subsystemÚTERMÚ12345678Ú4HÚ s   pty-reqs   execs   shell)r   rº   Úidro   r´   ÚsendRequestrÞ   Ú_enterRawModer   ÚSSHSessionClientÚ
escapeModeÚhandleInputÚdataReceivedÚwriteÚconnectionLostr   Ú
StandardIOr
   ÚNSrÀ   ÚenvironÚfcntlÚioctlr"   Ú
TIOCGWINSZÚstructÚunpackÚpackRequest_pty_reqr   r„   Ú_windowResized)	r>   Úfoorá   ÚcrŽ   ÚtermÚwinszÚwinSizeÚ
ptyReqDatas	   `        r@   ÚchannelOpenzSSHSession.channelOpeny  s·  ø€ ÝŒÐ)˜4œ7Ð)Ð)Ð)Ñ*Ô*Ð*Ý�7Ôð 	,Ø”	×%Ò%ØÐ3°SÀAð &ñ ô ˆAð �IŠIÐ*Ð*Ñ+Ô+Ð+Ý�9Ôð 	ØˆFÝ�IÔð 	¥7¨5¤>ð 	½'À'Ô:Jð 	Ý‰OŒOˆOÝÔ$Ñ&Ô&ˆÝ�8Ôð 	(¥W¨WÔ%5ð 	(ØˆDŒOØ!Ô-ˆAŒNˆNà!œZˆAŒNØ3Ð3Ð3Ð3ˆÔÝÔ% aÑ(Ô(ˆŒ
ØˆÝ�;Ôð 	7ØŒI×!Ò! $¨µf´iÅÈ	Ô@RÑ6SÔ6SÑTÔTÐTÐTÐTÝ�YÔð 	7Ý�uŒ~ð DÝ”z &Ô)�Ýœ B­¬¸
ÑCÔC�Ý œ-¨¨eÑ4Ô4�Ý$Ô8¸¸wÈÑKÔK�
Ø”	×%Ò% d¨J¸
ÑCÔCÐCÝ”�fœo¨tÔ/BÑCÔCÐCØŒI×!Ò! $¨µ´½7À9Ô;MÑ1NÔ1NÑOÔOÐOÐOÐOå˜7Ô#ð DÝ”z &Ô)�Ýœ B­¬¸
ÑCÔC�Ý œ-¨¨eÑ4Ô4�Ý$Ô8¸¸wÈÑKÔK�
Ø”	×%Ò% d¨J¸
ÑCÔCÐCÝ”�fœo¨tÔ/BÑCÔCÐCØŒI×!Ò! $¨°#Ñ6Ô6Ð6Ð6Ð6rB   c           
      óv  — |dv rd| _         |                      |¦  «         d S | j         dk    r|t          d         k    r	d| _         d S | j         dk    �rId| _         |dk    r$t          j        d¦  «         t          ¦   «          d S |dk    rd„ }t          j        d	|¦  «         d S |d
k    r4t          j        d¦  «         | j        j	         
                    ¦   «          d S |dk    rž| j                             d¦  «         | j        j                             ¦   «         }|                     ¦   «          |D ]M}| j                             t          d                     || j        j        |         ¦  «        ¦  «        ¦  «         ŒNd S |                      d|z   ¦  «         d S d	| _         |                      |¦  «         d S )N)ó   
ó   r7   r   r6   ó   .zdisconnecting from escapeó   c                  ó  — t          ¦   «          t          j                             ¦   «          t          j                             ¦   «          t          j        t          j        ¦   «         t          j	        ¦  «         t          ¦   «          d S r™   )Ú_leaveRawModer<   rt   Úflushrz   rÀ   ÚkillÚgetpidr   ÚSIGTSTPr  ra   rB   r@   Ú_z!SSHSession.handleInput.<locals>._²  sX   € Ý!‘O”O�OÝ”J×$Ò$Ñ&Ô&Ð&Ý”I—O’OÑ%Ô%Ð%Ý”G�BœI™KœK­¬Ñ8Ô8Ð8Ý!‘O”O�O�O�OrB   r   ó   Rzrekeying connectionó   #s'   
The following connections are open:
z
  #{} {}
ó   ~)r  r  ro   r   rº   rÐ   r   rh   r´   rµ   ÚsendKexInitr   r  ÚkeysÚsortr   r‡   )r>   Úcharr;  r  Ú	channelIds        r@   r  zSSHSession.handleInput¤  sÜ  € Ø�>Ð!Ð!ØˆDŒOØ�JŠJ�tÑÔÐÐÐØŒ_ Ò!Ð! d­g°hÔ.?Ò&?Ð&?ØˆDŒOˆOˆOØŒ_ Ò!Ñ!ØˆDŒOØ�tŠ|ˆ|Ý”Ð3Ñ4Ô4Ð4ÝÑ Ô Ð Ø�Ø˜’�ð$ð $ð $õ Ô! ! QÑ'Ô'Ð'Ø�Ø˜’�Ý”Ð-Ñ.Ô.Ð.Ø”	Ô#×/Ò/Ñ1Ô1Ð1Ø�Ø˜’�Ø”
× Ò Ð!OÑPÔPÐPØœ9Ô-×2Ò2Ñ4Ô4�Ø—’‘”�Ø!)ð ð �IØ”J×$Ò$Ý%Ø*×1Ò1Ø )¨4¬9Ô+=¸iÔ+Hñô ñô ñô ð ð ð �Ø�JŠJ�t˜d‘{Ñ#Ô#Ð#Ð#Ð#àˆDŒOØ�JŠJ�tÑÔÐÐÐrB   c                 ó:   — | j                              |¦  «         d S r™   )r   r  ©r>   ró   s     r@   r  zSSHSession.dataReceivedÑ  s   € ØŒ
×Ò˜ÑÔÐÐÐrB   c                 óB  — |t           j        k    rŽt          j        dt	          |¦  «        › d�¦  «         t          t          j        ¦  «        t          k    r&t          j        j	         
                    |¦  «         d S t          j         
                    |¦  «         d S d S )Nzgot z stderr data)r   ÚEXTENDED_DATA_STDERRr   rº   r9   r   r<   rv   ÚstrÚbufferr  )r>   r#   ró   s      r@   ÚextReceivedzSSHSession.extReceivedÔ  sŠ   € Ø•
Ô/Ò/Ð/ÝŒGÐ2�3˜t™9œ9Ð2Ð2Ð2Ñ3Ô3Ð3Ý•c”jÑ!Ô!¥SÒ(Ð(Ý”
Ô!×'Ò'¨Ñ-Ô-Ð-Ð-Ð-å”
× Ò  Ñ&Ô&Ð&Ð&Ð&ð 0Ð/rB   c                 ó`   — t          j        d¦  «         | j                             ¦   «          d S )Nzgot eof)r   rº   r   ÚloseWriteConnectionræ   s    r@   ÚeofReceivedzSSHSession.eofReceivedÜ  s,   € ÝŒ�	ÑÔÐØŒ
×&Ò&Ñ(Ô(Ð(Ð(Ð(rB   c                 óh   — t          j        d| › �¦  «         | j                             | ¦  «         d S )Nzremote side closed )r   rº   r´   Ú	sendCloseræ   s    r@   ÚcloseReceivedzSSHSession.closeReceivedà  s7   € ÝŒÐ, dÐ,Ð,Ñ-Ô-Ð-ØŒ	×Ò˜DÑ!Ô!Ð!Ð!Ð!rB   c                 óŠ   — t          j        d| › �¦  «         t          j        t          | j        j        ¦  «        ¦  «         d S )Nzclosed )r   rº   rõ   r´   r  ræ   s    r@   ÚclosedzSSHSession.closedä  s>   € åŒÐ ˜$Ð Ð Ñ!Ô!Ð!ÝŒ•�T”YÔ'Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)rB   c                 óŽ   — t          t          j        d|¦  «        d         ¦  «        at	          j        dt          › �¦  «         d S )Nz>Lr   zexit status: )rF   r%  r&  rˆ   r   rº   rE  s     r@   Úrequest_exit_statuszSSHSession.request_exit_statusé  s?   € å�œ t¨TÑ2Ô2°1Ô5Ñ6Ô6ˆ
ÝŒÐ,¥
Ð,Ð,Ñ-Ô-Ð-Ð-Ð-rB   c                 ó:   — | j                              | ¦  «         d S r™   )r´   r  ræ   s    r@   r  zSSHSession.sendEOFî  s   € ØŒ	×Ò˜$ÑÔÐÐÐrB   c                 ó8   — | j                              ¦   «          d S r™   )r   ÚpauseProducingræ   s    r@   ÚstopWritingzSSHSession.stopWritingñ  s   € ØŒ
×!Ò!Ñ#Ô#Ð#Ð#Ð#rB   c                 ó8   — | j                              ¦   «          d S r™   )r   ÚresumeProducingræ   s    r@   ÚstartWritingzSSHSession.startWritingô  s   € ØŒ
×"Ò"Ñ$Ô$Ð$Ð$Ð$rB   c                 ó  — t          j        dt          j        d¦  «        }t	          j        d|¦  «        }|d         |d         |d         |d         f}| j                             | dt	          j        dg|¢R Ž ¦  «         d S )	Nr   r  r  r7   r6   r²   s   window-changez!4L)	r"  r#  r"   r$  r%  r&  r´   r  Úpack)r>   r‰   r,  r-  ÚnewSizes        r@   r(  zSSHSession._windowResized÷  sy   € Ý”˜A�sœ~¨zÑ:Ô:ˆÝ”-  eÑ,Ô,ˆØ˜!”*˜g aœj¨'°!¬*°g¸a´jÐ@ˆØŒ	×Ò˜dÐ$4µf´kÀ%Ð6RÈ'Ð6RÐ6RÐ6RÑSÔSÐSÐSÐSrB   N)rU   rV   rW   Únamer/  r  r  rJ  rM  rP  rR  rT  r  rX  r[  r(  ra   rB   r@   r¿   r¿   v  sÔ   € € € € € Ø€Dð'7ð '7ð '7ðV+ð +ð +ðZð ð ð'ð 'ð 'ð)ð )ð )ð"ð "ð "ð*ð *ð *ð
.ð .ð .ð
 ð  ð  ð$ð $ð $ð%ð %ð %ðTð Tð Tð Tð TrB   r¿   c                   ó   — e Zd ZdS )r¹   N©rU   rV   rW   ra   rB   r@   r¹   r¹   þ  ó   € € € € € Ø€DrB   r¹   c                   ó   — e Zd ZdS )rÿ   Nra  ra   rB   r@   rÿ   rÿ     rb  rB   rÿ   c                  ó¢   — t           sd S t          j                             ¦   «         } t	          j        | t          j        t          ¦  «         da d S rg   )Ú
_inRawModer<   rz   r{   r"   r‚   rƒ   Ú_savedRawMode)rŽ   s    r@   r6  r6    sA   € åð ØˆÝ	Œ×	Ò	Ñ	Ô	€BÝ„M�"•c”k¥=Ñ1Ô1Ð1Ø€J€J€JrB   c                  ó.  — t           rd S t          j                             ¦   «         } 	 t	          j        | ¦  «        }|d d …         }|d         t          j        z  |d<   |d         t          j        t          j        z  t          j	        z  t          j
        z  t          j        z  t          j        z  t          j        z   z  |d<   t          t          d¦  «        r|d         t          j         z  |d<   |d         t          j        t          j        z  t          j        z  t          j        z  t          j        z  t          j        z  t          j        z   z  |d<   t          t          d¦  «        r|d         t          j         z  |d<   |d         t          j         z  |d<   d|d         t          j        <   d|d         t          j        <   |at	          j        | t          j        |¦  «         da d S # t:          $ r t=          j        d¦  «         Y d S w xY w)Nr   ÚIUCLCr²   ÚIEXTENr7   é   znot a typewriter!) re  r<   rz   r{   r"   r|   ÚIGNPARÚISTRIPÚINLCRÚIGNCRÚICRNLÚIXONÚIXANYÚIXOFFr³   rh  ÚISIGÚICANONÚECHOÚECHOEÚECHOKÚECHONLri  ÚOPOSTÚVMINÚVTIMErf  r‚   rƒ   r~   r   rº   )rŽ   r}   Únews      r@   r  r    s  € åð ØˆÝ	Œ×	Ò	Ñ	Ô	€Bð*ÝŒm˜BÑÔˆØ�!�!�!Œfˆð
 �Q”�#œ*Ñ$ˆˆA‰Ø�Q”ÝŒJÝŒiñåŒiñõ Œiñõ Œhñ	õ
 Œiñõ Œiñð
ñ 
ˆˆA‰õ •3˜Ñ Ô ð 	)Ø˜”V�sœy˜jÑ(ˆC�‰Fð �Q”ÝŒHÝŒjñåŒhñõ Œhñõ Œiñ	õ
 Œiñõ Œjñð
ñ 
ˆˆA‰õ •3˜Ñ!Ô!ð 	*Ø˜”V�sœz˜kÑ)ˆC�‰Fð �Q”�3œ9˜*Ñ$ˆˆA‰àˆˆAŒ�sŒxÑØˆˆAŒ�sŒyÑàˆÝŒ�b�#œ+ sÑ+Ô+Ð+àˆ
ˆ
ˆ
øõO ð %ð %ð %ÝŒÐ#Ñ$Ô$Ð$Ð$Ð$Ð$ð%øøøs   ©G2 Ç2HÈHÚ__main__):r"  r¡   rÀ   r   r%  r<   r"   Útypingr   r   Útwisted.conch.clientr   r   Útwisted.conch.client.optionsr   Útwisted.conch.errorr   Útwisted.conch.sshr	   r
   r   r   r   Útwisted.internetr   r   r   r“   r   r   Útwisted.python.compatr   r   r   ro   r´   rˆ   r}   re  rf  r�   r—   r”   ry   r¨   rÉ   ri   r½   rÐ   r¶   r¦   Ú
SSHChannelr¿   r¹   rÿ   r6  r  rU   ra   rB   r@   ú<module>r†     s2  ðð €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ð Ð à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø *Ð *Ð *Ð *Ð *Ð *Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ðR,ð R,ð R,ð R,ð R,�Lñ R,ô R,ð R,ðl €Ø€Ø€
Ø
€Ø€
Ø€ð9ð 9ð 9ðx
ð 
ð 
ðð ð ðGð Gð Gð*)ð )ð )ð!ð !ð !ðH.ð .ð .ð
0ð 0ð 0ð-ð -ð -ð
1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð2AEð AEð AEð AEð AE�JÔ,ñ AEô AEð AEðHETð ETð ETð ETð ET�Ô#ñ ETô ETð ETðP	ð 	ð 	ð 	ð 	 zÔ'Rñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	 *Ô"Hñ 	ô 	ð 	ðð ð ð/ð /ð /ðd ˆzÒÐØ€C�E„E€E€E€Eð ÐrB   