§
    öÛg¥I  ã                   óÄ  — d dl Z d dlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZ dZd	Zd
Zd                     e¦  «        Zd„ d„  edd¦  «        D ¦   «         D ¦   «         Zd„  edd¦  «        D ¦   «         ZdZdZdZdZdZdZdZdZ G d„ dej        ¦  «        Z G d„ de j         ¦  «        Z!ddlm"Z"  G d„ de j         ¦  «        Z#e$d k    r e j%        ¦   «          dS dS )!é    N)Úisliceé   )Úcopyman)Úpg_tmp)ÚNoticeÚNotifyÚErrorÚcat_messages)Ú
exceptionsa¹  
CREATE TEMP TABLE emptysource ();
-- 10
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
INSERT INTO emptysource DEFAULT VALUES;
zCREATE TEMP TABLE empty ();i'  z}
CREATE TEMP TABLE source (i int, t text);
INSERT INTO source
	SELECT i, i::text AS t
	FROM generate_series(1, {0}) AS g(i);
c                 óB   — g | ]}d                       ||f¦  «        dz   ‘ŒS )ó   	ó   
)Újoin©Ú.0Úxs     úR/granary/edev/quantum/lib/python3.11/site-packages/postgresql/test/test_copyman.pyú
<listcomp>r   %   s=   € ð ð ð àð ‡‚ˆQ�ˆFÑÔ�eÑðð ð ó    c              #   óZ   K  — | ]&}t          |¦  «                             d ¦  «        V — Œ'dS )ÚasciiN)ÚstrÚencode)r   Úis     r   ú	<genexpr>r   '   sE   è è € ð ð Ø…#€a�&„&‡-‚-�ÑÔðð ð ð ð ð r   é   i'  c                 ó0   — g | ]}|t          |¦  «        f‘ŒS © )r   r   s     r   r   r   +   s/   € ð ð ð Ø€!…Sˆ�V„V€ðð ð r   z-CREATE TEMP TABLE destination (i int, t text)zCOPY source TO STDOUTzCOPY destination FROM STDINz!COPY source TO STDOUT WITH BINARYz'COPY destination FROM STDIN WITH BINARYz SELECT COUNT(*) FROM destinationz(SELECT * FROM destination ORDER BY i ASCz#SELECT * FROM source ORDER BY i ASCc                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚInjectorc                 óH   •—  t          ¦   «         j        |i |¤Ž || _        d S ©N)ÚsuperÚ__init__Ú_appended_messages)ÚselfÚappended_messagesÚargsÚkwÚ	__class__s       €r   r$   zInjector.__init__<   s-   ø€ Ø…%�'„'Ô�DÐ˜BÐÐÐØ-€$ÔÐÐr   c                 ó<  •— | j         j        j        }|j        }|                     ¦   «         }|                     ¦   «          |                     t          | j        ¦  «        ¦  «         |                     |¦  «         t          ¦   «          
                    ¦   «         S r"   )Ú	statementÚdatabaseÚpqÚmessage_bufferÚgetvalueÚtruncateÚwriter
   r%   r#   Ú
confiscate)r&   r.   ÚmbÚbr*   s       €r   r3   zInjector.confiscate@   st   ø€ Ø„~ÔÔ!€"Ø	Ô€"Ø‡k‚k�m„m€!Ø‡+‚+�-„-€-Ø‡(‚(�<˜Ô/Ñ0Ô0Ñ1Ô1Ð1Ø‡(‚(ˆ1�+„+€+Ý	‰Œ×	Ò	Ñ	Ô	Ðr   )Ú__name__Ú
__module__Ú__qualname__r$   r3   Ú__classcell__)r*   s   @r   r    r    ;   sQ   ø€ € € € € ð.ð .ð .ð .ð .ðð ð ð ð ð ð ð ð r   r    c                   óÚ  — e Zd Zd„ Zed„ ¦   «         Zed„ ¦   «         Zd„ Zed„ ¦   «         Zed„ ¦   «         Z	dd
„Z
ed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )Útest_copymanc                 ó  — t          j        ¦   «         }t          j        ¦   «         }t          j        ||¦  «                             ¦   «          |                      |j        d¦  «         |                      |j        d¦  «         d S ©Nr   )r   ÚNullProducerÚNullReceiverÚCopyManagerÚrunÚassertEqualÚtotal_messagesÚtotal_bytes)r&   ÚspÚsrs      r   ÚtestNullztest_copyman.testNullJ   st   € åÔÑÔ€"ÝÔÑÔ€"Ý	Ô�b˜"ÑÔ×!Ò!Ñ#Ô#Ð#Ø×Ò�2Ô$ aÑ(Ô(Ð(Ø×Ò�2”> 1Ñ%Ô%Ð%Ð%Ð%r   c                 ó.  — t          t          ¦  «         t          j        ¦   «         }t          j        t          t          ¦  «        ¦  «        }t          j        ||¦  «                             ¦   «          |  	                    |j
        d¦  «         |  	                    |j        d¦  «         |  	                    t          t          ¦  «                             ¦   «         d¦  «         |  	                     t          t          ¦  «        ¦   «         g ¦  «         d S r=   )ÚsqlexecÚstddstr   r>   ÚStatementReceiverÚprepareÚdstsqlr@   rA   rB   rC   rD   ÚdstcountÚfirstÚgrabdst)r&   ÚnprF   s      r   ÚtestNullProducerztest_copyman.testNullProducerR   sØ   € å	�&�/„/€/ÝÔÑÔ€"ÝÔ ¥­¡¤Ñ1Ô1€"Ý	Ô�b˜"ÑÔ×!Ò!Ñ#Ô#Ð#Ø×Ò�2Ô$ aÑ(Ô(Ð(Ø×Ò�2”> 1Ñ%Ô%Ð%Ø×Ò•7�8Ñ$Ô$×*Ò*Ñ,Ô,¨aÑ0Ô0Ð0Ø×ÒÐ#•7�7Ñ#Ô#Ñ%Ô% rÑ*Ô*Ð*Ð*Ð*r   c                 óˆ  — t          t          ¦  «         t          j        t	          t
          ¦  «        d¬¦  «        }t          j        ¦   «         }t          j        ||¦  «        5 }|D ]}Œ	 d d d ¦  «         n# 1 swxY w Y   |                      |j	        t          ¦  «         |                      |j        dk    d¦  «         d S )Né€   ©Úbuffer_sizer   T)rI   Ú	stdsourcer   ÚStatementProducerrL   Úsrcsqlr?   r@   rB   rC   ÚstdrowcountrD   )r&   rE   rF   Úcopyr   s        r   ÚtestNullReceiverztest_copyman.testNullReceiver]   só   € å	�)ÑÔÐÝÔ ¥­¡¤ÀÐDÑDÔD€"ÝÔÑÔ€"ÝÔ˜2˜rÑ"Ô"ð 	 dØð 	ð 	€qØð	ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×Ò�2Ô$¥kÑ2Ô2Ð2Ø×Ò�2”> AÒ% tÑ,Ô,Ð,Ð,Ð,s   Á%A8Á8A<Á?A<c                 ód  ‡	— t          t          ¦  «        Š	t          j        ˆ	fd„t	          t          t          ¦  «        dz  ¦  «        D ¦   «         ¦  «        }g }t          j        |j        ¦  «        }d}d}t          j        ||¦  «        5 }|D ]\  }}||z  }||z  }Œ	 d d d ¦  «         n# 1 swxY w Y   |  	                    t          |¦  «         |  	                    ||j        ¦  «         |  	                    t          |¦  «        t          ¦  «         |  	                    |t          ¦  «         d S )Nc                 óJ   •— g | ]}t          t          ‰d ¦  «        ¦  «        ‘Œ S )é   )Úlistr   )r   r   Útmps     €r   r   z3test_copyman.testIteratorToCall.<locals>.<listcomp>k   s6   ø€ ð !ð !ð !Ø…4�ˆs�B‰ŒÑÔð!ð !ð !r   r_   r   )ÚiterÚstditerr   ÚIteratorProducerÚrangeÚlenÚCallReceiverÚextendr@   rB   rZ   rD   )
r&   rE   ÚdestrF   Úrecomputed_bytesÚrecomputed_messagesr[   ÚmsgÚbytesra   s
            @r   ÚtestIteratorToCallztest_copyman.testIteratorToCallh   s~  ø€ Ý�W‰Œ€#åÔð !ð !ð !ð !Ý"'­­G©¬¸Ñ(:Ñ";Ô";ð!ñ !ô !ñ ô €"ð 
€$ÝÔ˜DœKÑ(Ô(€"ØÐØÐÝÔ˜2˜rÑ"Ô"ð  dØð ð �z€sˆEØ˜3ÑÐØ˜ÑÐÐððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×Ò•;Ð 3Ñ4Ô4Ð4Ø×ÒÐ# R¤^Ñ4Ô4Ð4Ø×Ò•3�t‘9”9�kÑ*Ô*Ð*Ø×Ò�4�Ñ!Ô!Ð!Ð!Ð!s   ÂB,Â,B0Â3B0c                 ó¶  — t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          t          ¦  «        d¬¦  «        }t          j	        |                     t          ¦  «        ¦  «        }t          j        ||¦  «        5 }|D ]}Œ	 d d d ¦  «         n# 1 swxY w Y   |                      |                     t          ¦  «                             ¦   «         t          ¦  «         |                       |                     t           ¦  «        ¦   «          t          t"          ¦  «        ¦   «         ¦  «         d S )Ni   rU   )rI   rW   ÚnewÚexecuterJ   r   rX   rL   rY   rK   rM   r@   rB   rN   rO   rZ   rP   Úgrabsrc©r&   ÚdstrE   rF   r[   r   s         r   ÚtestDirectStatementsz!test_copyman.testDirectStatements{   sP  € å	�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝÔ ¥­¡¤ÀÐDÑDÔD€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"ÝÔ˜2˜rÑ"Ô"ð 	 dØð 	ð 	€qØð	ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×Ò�3—;’;�xÑ(Ô(×.Ò.Ñ0Ô0µ+Ñ>Ô>Ð>Ø×ÒÐ'�3—;’;�wÑ'Ô'Ñ)Ô)Ð+;­7µ7Ñ+;Ô+;Ñ+=Ô+=Ñ>Ô>Ð>Ð>Ð>s   Â&B9Â9B=Ã B=c                 óŠ  — t          t          ¦  «         t          j        t          g¦  «        }t          j        t          t          ¦  «        ¦  «        }d}d}t          j        ||¦  «        5 }|D ]\  }}||z  }||z  }Œ	 d d d ¦  «         n# 1 swxY w Y   |  	                    t          |¦  «         |  	                    ||j        ¦  «         |  	                    t          t          ¦  «                             ¦   «         t          ¦  «         |  	                     t          t          ¦  «        ¦   «         t          ¦  «         d S r=   )rI   rJ   r   rd   rc   rK   rL   rM   r@   rB   rZ   rD   rN   rO   rP   Ústditer_tuples)r&   rE   rF   rj   rk   r[   rl   rm   s           r   ÚtestIteratorProducerz!test_copyman.testIteratorProducerˆ   s`  € å	�&�/„/€/ÝÔ¥ 	Ñ*Ô*€"ÝÔ ¥­¡¤Ñ1Ô1€"ØÐØÐÝÔ˜2˜rÑ"Ô"ð  dØð ð �z€sˆEØ˜3ÑÐØ˜ÑÐÐððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×Ò•;Ð 3Ñ4Ô4Ð4Ø×ÒÐ# R¤^Ñ4Ô4Ð4Ø×Ò•7�8Ñ$Ô$×*Ò*Ñ,Ô,­kÑ:Ô:Ð:Ø×ÒÐ#•7�7Ñ#Ô#Ñ%Ô%¥~Ñ6Ô6Ð6Ð6Ð6s   Á.BÂBÂBé   Fé�   c                 óÎ  — |rt           }t          }d}nt          }t          }d}t	          t
          ¦  «         d„ t          |¦  «        D ¦   «         }g }|D ]V}	|	                     t          ¦  «         | 	                    t          j        |	                     |¦  «        ¦  «        ¦  «         ŒWt          j        t          |¦  «        |¬¦  «        }
d}d}t          j        |
g|¢R Ž 5 }|D ]\  }}||z  }||z  }Œ	 d d d ¦  «         n# 1 swxY w Y    t          t          ¦  «        ¦   «         }|D ]}}	|                      |	                     t"          ¦  «                             ¦   «         t&          ¦  «         |                       |	                     t(          ¦  «        ¦   «         |¦  «         Œ~|                      t&          |z   |¦  «         |                      ||
j        ¦  «         d S )Nr   r   c                 ó*   — g | ]}t          ¦   «         ‘ŒS r   )rp   r   s     r   r   z6test_copyman.multiple_destinations.<locals>.<listcomp>£   s   € Ð
'Ð
'Ð
'�Q�3‰5Œ5Ð
'Ð
'Ð
'r   rU   )Úbinary_srcsqlÚbinary_dstsqlrY   rM   rI   rW   re   rq   rJ   Úappendr   rK   rL   rX   r@   rr   rB   rN   rO   rZ   rP   rD   )r&   ÚcountÚbinaryrV   Úsrcrt   Úcount_offsetÚdestsÚ	receiversr   rE   rj   rk   r[   rl   rm   Úsrc_snaps                    r   Úmultiple_destinationsz"test_copyman.multiple_destinations˜   s#  € Øð Ý	€3Ý	€3à€<€<å	€3Ý	€3Ø€<Ý	�)ÑÔÐØ
'Ð
'�% ™,œ,Ð
'Ñ
'Ô
'€%Ø€)Øð ?ð ?€aØ‡9‚9�VÑÔÐØ×Ò•GÔ-¨a¯iªi¸©n¬nÑ=Ô=Ñ>Ô>Ð>Ð>ÝÔ ¥¨¡¤¸[ÐIÑIÔI€"ØÐØÐÝÔ˜2Ð* 	Ð*Ð*Ð*ð ¨dØð ð �z€sˆEØ˜3ÑÐØ˜ÑÐÐððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �W•WÑÔÑÔ€(Øð 4ð 4€aØ×Ò�A—I’I�hÑ'Ô'×-Ò-Ñ/Ô/µÑ=Ô=Ð=Ø×ÒÐ&�A—I’I�gÑ&Ô&Ñ(Ô(¨(Ñ3Ô3Ð3Ð3Ø×Ò•; Ñ-Ð/BÑCÔCÐCØ×ÒÐ# R¤^Ñ4Ô4Ð4Ð4Ð4s   Ã%DÄD	ÄD	c                 ó.   — |                       ¦   «          d S r"   ©r‡   ©r&   s    r   ÚtestMultipleStatementsz#test_copyman.testMultipleStatements¶   s   € à×ÒÑÔÐÐÐr   c                 ó2   — |                       d¬¦  «         d S )NT)r�   r‰   rŠ   s    r   ÚtestMultipleStatementsBinaryz)test_copyman.testMultipleStatementsBinaryº   s   € à×Ò dÐÑ+Ô+Ð+Ð+Ð+r   c                 ó2   — |                       d¬¦  «         d S )Né   rU   r‰   rŠ   s    r   Ú!testMultipleStatementsSmallBufferz.test_copyman.testMultipleStatementsSmallBuffer¾   s   € à×Ò¨2ÐÑ.Ô.Ð.Ð.Ð.r   c                 óÆ  ‡— t          d¦  «        t          d¦  «        g}t          t          ¦  «         t          ¦   «         }|                     t
          ¦  «         g Šˆfd„}t          t          ¦  «        }||_        t          ||d¬¦  «        }t          j        |                     t          ¦  «        ¦  «        }d}t          j        ||¦  «        5 }|D ]	}	‰r|dz  }Œ
	 d d d ¦  «         n# 1 swxY w Y   |                      |dk    ¦  «         |                      |                     t           ¦  «                             ¦   «         t$          ¦  «         |                       |                     t&          ¦  «        ¦   «          t          t(          ¦  «        ¦   «         ¦  «         ‰d d…         \  }
}|                      |
j        d	¦  «         |                      |j        d
¦  «         |                      |j        d         d¦  «         |                      |
j        d¦  «         |                      |j        d¦  «         |                      |
j        d         d¦  «         d S )N))ó   Ss   NOTICE)ó   Cs   00000)ó   Ms   It's a beautiful day.))r’   s   WARNING)r“   s   01X1X1)r”   s   FAILURE IS CERTAINc                 ó2   •— ‰                      | ¦  «         dS )NT)r   )rl   Ú	rmessagess    €r   Úhookz&test_copyman.testNotices.<locals>.hook×   s   ø€ Ø×Ò�CÑÔÐà
ˆ$r   é…   rU   r   r   r   Ú00000Ú01X1X1ÚseverityÚWARNINGzIt's a beautiful day.zFAILURE IS CERTAINÚNOTICE)r   rI   rW   rp   rq   rJ   rL   rY   Úmsghookr    r   rK   rM   r@   Ú
assertTruerB   rN   rO   rZ   rP   rr   ÚcodeÚdetailsÚmessage)r&   Únoticesrt   r—   ÚstmtrE   rF   Úseen_in_loopr[   r   ÚnoticeÚwarningr–   s               @r   ÚtestNoticesztest_copyman.testNoticesÂ   sˆ  ø€ õ
 
ð ñ ô õ
 
ð ñ ô ð€'õ 
�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐà€)ðð ð ð ð õ 
•‰Œ€$Ø€$„,Ý�˜¨SÐ1Ñ1Ô1€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"Ø€,ÝÔ˜2˜rÑ"Ô"ð  dØð ð €qØð à�QÑ€\øððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 ‡/‚/�, Ò"Ñ#Ô#Ð#Ø×Ò�3—;’;�xÑ(Ô(×.Ò.Ñ0Ô0µ+Ñ>Ô>Ð>Ø×ÒÐ'�3—;’;�wÑ'Ô'Ñ)Ô)Ð+;­7µ7Ñ+;Ô+;Ñ+=Ô+=Ñ>Ô>Ð>ð ˜b˜q˜b”M�/€&ˆ'Ø×Ò�6”; Ñ(Ô(Ð(Ø×Ò�7”< Ñ*Ô*Ð*Ø×Ò�7”? :Ô.°	Ñ:Ô:Ð:Ø×Ò�6”>Ð#:Ñ;Ô;Ð;Ø×Ò�7”?Ð$8Ñ9Ô9Ð9Ø×Ò�6”> *Ô-¨xÑ8Ô8Ð8Ð8Ð8s   ÃC-Ã-C1Ã4C1c                 ó|  — t          ddd¦  «        g}t          t          ¦  «         t          ¦   «         }|                     t
          ¦  «         t          |t          t          ¦  «        d¬¦  «        }t          j
        |                     t          ¦  «        ¦  «        }d}g }t          j        ||¦  «        5 }|D ],}|t          t                               d¦  «        ¦  «        z  }Œ-	 d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         |                      |dgt%          |¦  «        z  ¦  «         d S )NéÒ  s   channels   payloadé    rU   r   )ÚchannelÚpayloadrª   )r   rI   rW   rp   rq   rJ   r    rL   rY   r   rK   rM   r@   r`   ÚdbÚiternotifiesrŸ   rB   rf   )	r&   Únotifyrt   rE   rF   r¥   Úrr[   r   s	            r   ÚtestAsyncNotifyztest_copyman.testAsyncNotifyò   sY  € õ �4˜ ZÑ0Ô0Ð1€&Ý	�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝ��¥™œ°rÐ:Ñ:Ô:€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"Ø€,Ø€!ÝÔ˜2˜rÑ"Ô"ð " dØð "ð "€qØ��b�oŠo˜aÑ Ô Ñ	!Ô	!Ñ!€A€Að"ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð ‡/‚/�!ÑÔÐà×Ò�1Ð3Ð4µS¸±V´VÑ;Ñ<Ô<Ð<Ð<Ð<s   Â80C5Ã5C9Ã<C9c                 óâ  — t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          t          ¦  «        d¬¦  «        }t          j	        |                     t          ¦  «        ¦  «        }	 t          j        ||¦  «        5 }|D ]} d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         d S # t
          j        $ r Y d S w xY w)Nr«   rU   zdid not raise CopyFail)rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   r@   ÚfailÚCopyFailrs   s         r   ÚtestUnfinishedCopyztest_copyman.testUnfinishedCopy  s  € å	�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝÔ ¥­¡¤ÀÐCÑCÔC€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"ðÝÔ˜B Ñ#Ô#ð  tØð ð ˆØ
ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡9‚9Ð%Ñ&Ô&Ð&Ð&Ð&øÝ	Ô	ð ð ð Ø€4€4ðøøøs6   ÂC Â'B9Â-C Â9B=Â=C Ã B=ÃC ÃC.Ã-C.c                 ó^  — t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          t          ¦  «        d¬¦  «        }t          j	        |                     t          ¦  «        ¦  «        }d} G d„ dt          ¦  «        }	 t          j        ||¦  «        5 }|D ]} |¦   «         ‚	 d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         nD# t
          j        $ r2}|                      t!          |j        |¦  «        ¦  «         Y d }~nd }~ww xY w|                      t          d¦  «                             ¦   «         d¦  «         |                      |                     d¦  «                             ¦   «         d¦  «         d S )	NrT   rU   r   c                   ó   — e Zd ZdS )ú/test_copyman.testRaiseInCopy.<locals>.ThisErrorN©r6   r7   r8   r   r   r   Ú	ThisErrorr¹     ó   € € € € € Ø€4r   r»   údidn't raise CopyFailúselect 1r   )rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   Ú	Exceptionr@   r´   rµ   rŸ   Ú
isinstanceÚ__context__rB   rO   )	r&   rt   rE   rF   r   r»   r[   r   Úcfs	            r   ÚtestRaiseInCopyztest_copyman.testRaiseInCopy  sæ  € å	�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝÔ ¥­¡¤ÀÐDÑDÔD€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"Ø€!ðð ð ð ð •)ñ ô ð ð&ÝÔ˜B Ñ#Ô#ð  tØð ð ˆð
 ˆ9‰;Œ;Ðððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡9‚9Ð$Ñ%Ô%Ð%Ð%øõ	 
Ô	ð :ð :ð :à‡?‚?•:˜bœn¨iÑ8Ô8Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9øøøøð:øøøð ×Ò•7˜:Ñ&Ô&×,Ò,Ñ.Ô.°Ñ2Ô2Ð2Ø×Ò�3—;’;˜zÑ*Ô*×0Ò0Ñ2Ô2°AÑ6Ô6Ð6Ð6Ð6s<   Â'C9 Â<CÃC9 ÃCÃC9 ÃCÃ C9 Ã9D:Ä(D5Ä5D:c                 ó^  — t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          t          ¦  «        d¬¦  «        }t          j	        |                     t          ¦  «        ¦  «        }d} G d„ dt          ¦  «        }	 t          j        ||¦  «        5 } |¦   «         ‚# 1 swxY w Y   	 |                      d¦  «         d S # t
          j        $ r3}|                      t!          |j        |¦  «        ¦  «         Y d }~d S d }~ww xY w)NrT   rU   r   c                   ó   — e Zd ZdS )ú6test_copyman.testRaiseInCopyOnEnter.<locals>.ThatErrorNrº   r   r   r   Ú	ThatErrorrÆ   8  r¼   r   rÇ   r½   )rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   r¿   r@   r´   rµ   rŸ   rÀ   rÁ   )r&   rt   rE   rF   r   rÇ   r[   rÂ   s           r   ÚtestRaiseInCopyOnEnterz#test_copyman.testRaiseInCopyOnEnter0  sX  € å	�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝÔ ¥­¡¤ÀÐDÑDÔD€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"Ø€!ðð ð ð ð •)ñ ô ð ð&ÝÔ˜B Ñ#Ô#ð  tØ
ˆ)‰+Œ+Ððð ð ð øøøð ð ð ð ð ð ‡9‚9Ð$Ñ%Ô%Ð%Ð%Ð%øõ	 
Ô	ð :ð :ð :à‡?‚?•:˜bœn¨iÑ8Ô8Ñ9Ô9Ð9Ð9Ð9Ð9Ð9Ð9Ð9øøøøð:øøøs6   Â'C* Â<CÃCÃC* ÃCÃC* Ã*D,Ã9(D'Ä'D,c                 óh  — t          t          ¦  «         t          ¦   «         }t          ¦   «         }|                     t          ¦  «         |                     t          ¦  «         t          j        t          t          ¦  «        d¬¦  «        }t          j	        |                     t          ¦  «        ¦  «        }t          j	        |                     t          ¦  «        ¦  «        }d}t          j        |||¦  «        5 }	 	 |D ]$}|s d}|j        j                             ¦   «          Œ%n'# t
          j        $ r}	||	j        vr‚ Y d }	~	nd }	~	ww xY wŒP	 d d d ¦  «         n# 1 swxY w Y   |                      |¦  «         |                      t&          |j        d¦  «         |                      |                     t*          ¦  «                             ¦   «         t.          ¦  «         |                       |                     t0          ¦  «        ¦   «          t          t2          ¦  «        ¦   «         ¦  «         d S )NrT   rU   FTr¾   )rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   r@   r.   ÚsocketÚcloseÚReceiverFaultÚfaultsrŸ   ÚassertRaisesr¿   rB   rN   rO   rZ   rP   rr   )
r&   rt   Údst2rE   Úsr1Úsr2Údoner[   r   rÂ   s
             r   ÚtestCopyWithFailurez test_copyman.testCopyWithFailureC  s2  € å	�)ÑÔÐÝ‰Œ€#Ý	‰Œ€$Ø‡+‚+�fÑÔÐØ‡,‚,�vÑÔÐÝÔ ¥­¡¤ÀÐDÑDÔD€"ÝÔ! #§+¢+­fÑ"5Ô"5Ñ6Ô6€#ÝÔ! $§,¢,­vÑ"6Ô"6Ñ7Ô7€#Ø	€$ÝÔ˜2˜s CÑ(Ô(ð ¨Dðð
Øð ð ˆØð Ø€tØ„w„~×ÒÑÔÐøð øÝÔ ð ð ð Ø�2”9ÐÐØð 	ÐÐÐÐøøøøðøøøðð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡/‚/�$ÑÔÐØ×Ò•I˜tœ|¨ZÑ8Ô8Ð8Ø×Ò�3—;’;�xÑ(Ô(×.Ò.Ñ0Ô0µ+Ñ>Ô>Ð>Ø×ÒÐ'�3—;’;�wÑ'Ô'Ñ)Ô)Ð+;­7µ7Ñ+;Ô+;Ñ+=Ô+=Ñ>Ô>Ð>Ð>Ð>s<   Ã=EÄ 'D(Ä'EÄ(EÄ7
EÅEÅEÅEÅE Å#E c                 óJ  — t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          d¦  «        d¬¦  «        }t          j        |                     d¦  «        ¦  «        }d}d}t          j	        ||¦  «        5 }|D ]}|\  }}	||z  }||	z  }Œ	 d d d ¦  «         n# 1 swxY w Y   |  
                    |d¦  «         |  
                    t          d¦  «                             ¦   «         d¦  «         |  
                    |                     d¦  «                             ¦   «         d¦  «         |  
                    |                     ¦   «         d¦  «         |  
                    |                     ¦   «         d¦  «         d S )	NzCOPY emptysource TO STDOUTé   rU   zCOPY empty FROM STDINr   é
   z SELECT COUNT(*) FROM emptysourcezSELECT COUNT(*) FROM empty)rI   Úemptysourcerp   rq   Úemptydstr   rX   rL   rK   r@   rB   rO   r€   )
r&   rt   rE   rF   Úmr5   r[   r   ÚnmsgÚnbytess
             r   ÚtestEmptyRowsztest_copyman.testEmptyRows`  s»  € å	�+ÑÔÐÝ‰Œ€#Ø‡+‚+�hÑÔÐÝÔ ¥Ð)EÑ!FÔ!FÐVYÐZÑZÔZ€"ÝÔ  §¢Ð-DÑ!EÔ!EÑFÔF€"Ø€!Ø€!ÝÔ˜2˜rÑ"Ô"ð  dØð ð €qØ�L€Dˆ&Øˆ�I€AØˆ�K€A€Aððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
 ×Ò�1�bÑÔÐØ×Ò•7Ð=Ñ>Ô>×DÒDÑFÔFÈÑKÔKÐKØ×Ò�3—;’;Ð;Ñ<Ô<×BÒBÑDÔDÀbÑIÔIÐIØ×Ò�2—8’8‘:”:˜rÑ"Ô"Ð"Ø×Ò�2—8’8‘:”:˜rÑ"Ô"Ð"Ð"Ð"s   Â CÃCÃ	Cc                 ó  — ddl m}  |¦   «         }t          j        t	          d¦  «        t          j        |j        ¦  «        ¦  «         |                     d¦  «         |                      | 	                    ¦   «         d¦  «         d S )Nr   ©ÚBytesIOzCOPY (SELECT 1) TO STDOUTs   1
©
Úiorß   r   ÚtransferrL   rg   Ú
writelinesÚseekrB   Úread©r&   rß   r5   s      r   ÚtestCopyOneztest_copyman.testCopyOnet  s…   € àÐÐÐÐÐØ€g�i„i€!Ý	ÔÝ
Ð&Ñ'Ô'Ý
Ô˜œÑ%Ô%ñô ð ð ‡&‚&ˆ�)„)€)Ø×Ò�1—6’6‘8”8˜VÑ$Ô$Ð$Ð$Ð$r   c                 ó  — ddl m}  |¦   «         }t          j        t	          d¦  «        t          j        |j        ¦  «        ¦  «         |                     d¦  «         |                      | 	                    ¦   «         d¦  «         d S )Nr   rÞ   z!COPY (SELECT 1 LIMIT 0) TO STDOUTr   rà   ræ   s      r   ÚtestCopyNoneztest_copyman.testCopyNone  s…   € àÐÐÐÐÐØ€g�i„i€!Ý	ÔÝ
Ð.Ñ/Ô/Ý
Ô˜œÑ%Ô%ñô ð ð ‡&‚&ˆ�)„)€)Ø×Ò�1—6’6‘8”8˜SÑ!Ô!Ð!Ð!Ð!r   c                 óH  — t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          t          ¦  «        ¦  «        }t          j	        |                     t          ¦  «        ¦  «        }d}	 t          j        ||¦  «        5 }|sy	 |D ]:}|s!d}|j        j                             ¦   «          Œ%|                      d¦  «         Œ;n8# t
          j        $ r&}|                      ||j        v ¦  «         Y d }~nd }~ww xY w|¯yd d d ¦  «         n# 1 swxY w Y   |                      d¦  «         n=# t
          j        $ r+ |                      t)          |j        ¦  «         ¦  «         Y nw xY w|                      |¦  «         d S )NFTzfailed to detect dead socketzdid not raise expected error)rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   r@   r.   rÊ   rË   r´   rÌ   rŸ   rÍ   rµ   Úboolr…   )r&   rt   rE   rÐ   rÒ   r[   r   rÂ   s           r   ÚtestNoReceiversztest_copyman.testNoReceiversŠ  sö  € å	�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝÔ ¥­¡¤Ñ1Ô1€"ÝÔ! #§+¢+­fÑ"5Ô"5Ñ6Ô6€#Ø	€$ð-ÝÔ˜B Ñ$Ô$ð 
(¨Øð 	(ð(Øð 2ð 2ˆ!Øð 2ØˆØŒŒ×ÒÑÔÐÐà�	Š	Ð0Ñ1Ô1Ð1Ð1ð2øõ Ô!ð (ð (ð (Ø
‡o‚o�c˜RœYÐ&Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'øøøøð(øøøð ð 	(ð
(ð 
(ð 
(ñ 
(ô 
(ð 
(ð 
(ð 
(ð 
(ð 
(ð 
(øøøð 
(ð 
(ð 
(ð 
(ð  ‡9‚9Ð+Ñ,Ô,Ð,Ð,øõ	 
Ô	ð -ð -ð -Ø‡?‚?•t˜DœNÑ+Ô+Ð+Ñ,Ô,Ð,Ð,Ð,ð-øøøð ‡/‚/�$ÑÔÐÐÐs`   ÂE Â'D/Â+=C)Ã(D/Ã)DÃ8DÄD/ÄDÄD/Ä#E Ä/D3Ä3E Ä6D3Ä7E Å7F
Æ	F
c                 ó–  ‡‡‡— t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          t          ¦  «        d¬¦  «        }t          j	        |                     t          ¦  «        ¦  «        Š‰j        Š G d„ dt          ¦  «        Šˆˆˆfd„}|‰_        d}d}d}t          j        |‰¦  «        5 }|j        rÒ	 |D ]\  }}	||z  }||	z  }Œn¾# t
          j        $ r¥}
t!          |
j        ‰         ‰¦  «        r€|du r|                      d	¦  «         d}|                      t)          |j        ¦  «        d¦  «         |                     ‰¦  «         |                      t)          |j        ¦  «        d
¦  «         Y d }
~
nd }
~
ww xY w|j        °Òd d d ¦  «         n# 1 swxY w Y   |                      |d¦  «         |                      t          d¦  «                             ¦   «         d
¦  «         |                      |                     d¦  «                             ¦   «         d
¦  «         |                      t.          |¦  «         |                      ||j        ¦  «         |                      |                     t2          ¦  «                             ¦   «         t.          ¦  «         d S )NéÉ   rU   c                   ó   — e Zd ZdS )ú9test_copyman.testReconciliation.<locals>.RecoverableErrorNrº   r   r   r   ÚRecoverableErrorrð   ±  r¼   r   rñ   c                  ó&   •— ‰‰_          ‰¦   «         ‚r"   )Úsend)r(   rñ   Úoriginal_callrF   s    €€€r   Úfailed_writez5test_copyman.testReconciliation.<locals>.failed_write³  s   ø€ Ø€2„7Ø	Ð	Ñ	Ô	Ðr   Fr   Túfailed_write was called twice?r   r¾   )rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   ró   r¿   r@   r…   rÌ   rÀ   rÍ   r´   rB   rf   Ú	reconcilerO   rZ   rD   rN   )r&   rt   rE   rõ   rÒ   rk   rj   r[   rÚ   rÛ   rÂ   rñ   rô   rF   s              @@@r   ÚtestReconciliationztest_copyman.testReconciliation§  s  øøø€ õ 
�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝÔ ¥­¡¤ÀÐDÑDÔD€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"à”'€-ðð ð ð ð �ñ ô ð ðð ð ð ð ð ð ð €"„'à	€$ØÐØÐÝÔ˜2˜rÑ"Ô"ð / dØ	Œð /ð/Øð ð ‰ˆˆvØ˜TÑ!ÐØ˜&Ñ ÐÐð øÝÔ ð /ð /ð /Ý�2”9˜R”=Ð"2Ñ3Ô3ð /Ø	�ˆˆØ‡y‚yÐ1Ñ2Ô2Ð2Ø€dØ
×Ò•s˜4œ>Ñ*Ô*¨AÑ.Ô.Ð.Ø
‡n‚n�RÑÔÐØ
×Ò•s˜4œ>Ñ*Ô*¨AÑ.Ô.Ð.øøøøøøøøøð/øøøð 
Œð /ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð$ ×Ò�4˜ÑÔÐð ×Ò•7˜:Ñ&Ô&×,Ò,Ñ.Ô.°Ñ2Ô2Ð2Ø×Ò�3—;’;˜zÑ*Ô*×0Ò0Ñ2Ô2°AÑ6Ô6Ð6à×Ò•;Ð 3Ñ4Ô4Ð4Ø×ÒÐ# R¤^Ñ4Ô4Ð4Ø×Ò�3—;’;�xÑ(Ô(×.Ò.Ñ0Ô0µ+Ñ>Ô>Ð>Ð>Ð>s=   ÃF=Ã C3Ã2F=Ã3F'ÄBF"ÆF=Æ"F'Æ'
F=Æ=GÇGc                 óþ  ‡— t          t          ¦  «         t          ¦   «         }t          ¦   «         }|                     t          ¦  «         |                     t          ¦  «         t          j        t          t          ¦  «        d¬¦  «        }t          j	        |                     t          ¦  «        ¦  «        }t          j	        |                     t          ¦  «        ¦  «        } G d„ dt          ¦  «        Šˆfd„}||_        d}d}d}	t          j        |||¦  «        5 }
|
j        rÆ	 |
D ]\  }}||z  }|	|z  }	Œn²# t
          j        $ r™}|                      t#          |j        |         ‰¦  «        ¦  «         |du r|                      d	¦  «         d}|                      t+          |
j        ¦  «        d
¦  «         |j        j                             ¦   «          Y d }~nd }~ww xY w|
j        °Æd d d ¦  «         n# 1 swxY w Y   |                      |d¦  «         |                      t          |j        d¦  «         |                      t          d¦  «                             ¦   «         d
¦  «         |                      |                     d¦  «                             ¦   «         d
¦  «         |                      t6          |¦  «         |                      |	|j        ¦  «         |                      |                     t:          ¦  «                             ¦   «         t6          ¦  «         |                      |                     ¦   «         t6          ¦  «         |                      |                     ¦   «         d¦  «         d S )Nrî   rU   c                   ó   — e Zd ZdS )ú4test_copyman.testDroppedConnection.<locals>.TheCauseNrº   r   r   r   ÚTheCauserû   ã  r¼   r   rü   c                  ó   •—  ‰¦   «         ‚r"   r   )r(   rü   s    €r   rõ   z8test_copyman.testDroppedConnection.<locals>.failed_writeå  s   ø€ Ø	ˆ‰ŒÐr   Fr   Trö   r   zSELECT 1r¾   ÚCOPY) rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   r¿   ró   r@   r…   rÌ   rŸ   rÀ   rÍ   r´   rB   rf   r.   rÊ   rË   rÎ   rO   rZ   rD   rN   r€   Úcommand)r&   rt   rÏ   rE   rÐ   rÑ   rõ   rÒ   rk   rj   r[   rÚ   rÛ   rÂ   rü   s                 @r   ÚtestDroppedConnectionz"test_copyman.testDroppedConnection×  s‚  ø€ õ 
�)ÑÔÐÝ‰Œ€#Ý	‰Œ€$Ø‡,‚,�vÑÔÐØ‡+‚+�fÑÔÐÝÔ ¥­¡¤ÀÐDÑDÔD€"ÝÔ! #§+¢+­fÑ"5Ô"5Ñ6Ô6€#ÝÔ! $§,¢,­vÑ"6Ô"6Ñ7Ô7€#ðð ð ð ð •ñ ô ð ðð ð ð ð à€#„(à	€$ØÐØÐÝÔ˜2˜s CÑ(Ô(ð ¨DØ	Œð ðØð ð ‰ˆˆvØ˜TÑ!ÐØ˜&Ñ ÐÐð øÝÔ ð ð ð Ø	‡_‚_•Z ¤	¨#¤°Ñ9Ô9Ñ:Ô:Ð:Ø�ˆˆØ
‡i‚iÐ0Ñ1Ô1Ð1Ø€TØ	×Ò•c˜$œ.Ñ)Ô)¨1Ñ-Ô-Ð-Ø	„W„^×ÒÑÔÐÐÐÐÐÐøøøøðøøøð 
Œð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð$ ×Ò�4˜ÑÔÐð ×Ò•I˜tœ|¨ZÑ8Ô8Ð8ð ×Ò•7˜:Ñ&Ô&×,Ò,Ñ.Ô.°Ñ2Ô2Ð2Ø×Ò�3—;’;˜zÑ*Ô*×0Ò0Ñ2Ô2°AÑ6Ô6Ð6à×Ò•;Ð 3Ñ4Ô4Ð4Ø×ÒÐ# R¤^Ñ4Ô4Ð4Ø×Ò�3—;’;�xÑ(Ô(×.Ò.Ñ0Ô0µ+Ñ>Ô>Ð>Ø×Ò�2—8’8‘:”:�{Ñ+Ô+Ð+Ø×Ò�2—:’:‘<”< Ñ(Ô(Ð(Ð(Ð(s=   Ä!G;Ä*D=Ä<G;Ä=G%ÅBG ÇG;Ç G%Ç%
G;Ç;G?ÈG?c                 ó,  — t          t          ¦  «         t          ¦   «         }|                     t          ¦  «         t          j        t          t          ¦  «        ¦  «        }t          j	        |                     t          ¦  «        ¦  «        }d}	 t          j        ||¦  «        5 }	 |D ])}|s%d}t          j        j                             ¦   «          Œ*n8# t
          j        $ r&}|                      |j        d u¦  «         Y d }~nd }~ww xY wd d d ¦  «         n# 1 swxY w Y   |                      d¦  «         nc# t
          j        $ rQ}|                      d¦  «         |                      t+          |j        t.          j        ¦  «        ¦  «         Y d }~nd }~ww xY w|                      |¦  «         |                      t4          t           d¦  «         |                      |                     t8          ¦  «                             ¦   «         d¦  «         d S )NFTz&expected CopyManager to raise CopyFailr¾   r   )rI   rW   rp   rq   rJ   r   rX   rL   rY   rK   rM   r@   r®   r.   rÊ   rË   ÚProducerFaultrŸ   rÁ   r´   rµ   rÀ   Úproducer_faultÚpg_excÚConnectionFailureErrorrÎ   r¿   rB   rN   rO   )	r&   rt   rE   rF   rÒ   r[   r   ÚpfrÂ   s	            r   ÚtestProducerFailurez test_copyman.testProducerFailure  s7  € å	�)ÑÔÐÝ‰Œ€#Ø‡+‚+�fÑÔÐÝÔ ¥­¡¤Ñ1Ô1€"ÝÔ  §¢­VÑ!4Ô!4Ñ5Ô5€"Ø	€$ðQÝÔ˜B Ñ#Ô#ð 1 tð1Øð ð ˆØð Ø€tÝ	„u„|×ÒÑÔÐøðøõ Ô ð 1ð 1ð 1Ø	‡_‚_�R”^¨4Ð/Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0øøøøð1øøøð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð ‡9‚9Ð5Ñ6Ô6Ð6Ð6øÝ	Ô	ð Qð Qð Qà‡?‚?�4ÑÔÐØ‡?‚?•:˜bÔ/µÔ1NÑOÔOÑPÔPÐPÐPÐPÐPÐPÐPøøøøðQøøøð ‡/‚/�$ÑÔÐØ×Ò•I�w¨
Ñ3Ô3Ð3Ø×Ò�3—;’;�xÑ(Ô(×.Ò.Ñ0Ô0°!Ñ4Ô4Ð4Ð4Ð4sg   ÂD; Â'DÂ),CÃDÃDÃ%DÄDÄDÄDÄD; ÄDÄD; Ä!DÄ"D; Ä;FÅ
AFÆFN)ry   Frz   )r6   r7   r8   rG   r   rR   r\   rn   ru   rx   r‡   r‹   r�   r�   r¨   r²   r¶   rÃ   rÈ   rÓ   rÜ   rç   ré   rì   rø   r   r  r   r   r   r;   r;   I   se  € € € € € ð&ð &ð &ð 	ð+ð +ñ 	„&ð+ð 	ð-ð -ñ 	„&ð-ð"ð "ð "ð& 	ð
?ð 
?ñ 	„&ð
?ð 	ð7ð 7ñ 	„&ð7ð5ð 5ð 5ð 5ð< 	ðð ñ 	„&ðð 	ð,ð ,ñ 	„&ð,ð 	ð/ð /ñ 	„&ð/ð 	ð-9ð -9ñ 	„&ð-9ð^ 	ð=ð =ñ 	„&ð=ð& 	ðð ñ 	„&ðð 	ð7ð 7ñ 	„&ð7ð4 	ð&ð &ñ 	„&ð&ð$ 	ð?ð ?ñ 	„&ð?ð8 	ð#ð #ñ 	„&ð#ð& 	ð%ð %ñ 	„&ð%ð 	ð"ð "ñ 	„&ð"ð 	ðð ñ 	„&ðð8 	ð-?ð -?ñ 	„&ð-?ð^ 	ð3)ð 3)ñ 	„&ð3)ðj 	ð5ð 5ñ 	„&ð5ð 5ð 5r   r;   )Ú	WireStatec                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Útest_WireStatec                 ó4  — t          ¦   «         }|                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d ¦  «         d S )Ns   d   r   r   r   ©r  ÚupdateÚ
memoryviewrB   Úremaining_bytesÚsize_fragmentÚ
final_view©r&   ÚWSÚmessagess      r   Ú
testNormalztest_WireState.testNormal*  s‹   € Ý�[„[€"Ø�YŠY•zÐ"6Ñ7Ô7Ñ8Ô8€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% qÑ)Ô)Ð)Ø×Ò�2Ô# SÑ)Ô)Ð)Ø×Ò�2”= $Ñ'Ô'Ð'Ð'Ð'r   c                 óF  — t          ¦   «         }|                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d ¦  «         |                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d ¦  «         d S )Ns   d   r   r   r   ó   xr  r  s      r   ÚtestIncompleteztest_WireState.testIncomplete2  s  € Ý�[„[€"Ø�YŠY•zÐ"6Ñ7Ô7Ñ8Ô8€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% qÑ)Ô)Ð)Ø×Ò�2Ô# SÑ)Ô)Ð)Ø×Ò�2”= $Ñ'Ô'Ð'Ø�YŠY•z $Ñ'Ô'Ñ(Ô(€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% qÑ)Ô)Ð)Ø×Ò�2Ô# SÑ)Ô)Ð)Ø×Ò�2”= $Ñ'Ô'Ð'Ð'Ð'r   c                 óŠ  — t          ¦   «         }|                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d ¦  «         |                     d¦  «        }|                      |d¦  «         d S )Nó   dr   éÿÿÿÿr   s      r   r  r  s      r   ÚtestIncompleteHeader_0sizez)test_WireState.testIncompleteHeader_0size?  s²   € Ý�[„[€"Ø�YŠY•z $Ñ'Ô'Ñ(Ô(€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% rÑ*Ô*Ð*Ø×Ò�2Ô# SÑ)Ô)Ð)Ø×Ò�2”= $Ñ'Ô'Ð'Ø�YŠYÐ*Ñ+Ô+€(Ø×Ò�8˜QÑÔÐÐÐr   c                 óÚ  — t          ¦   «         }|                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         |                      |j        d ¦  «         |                      |j        d¦  «         |                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         d S )Ns   d r   ó    r  s     r   )r  r  r  rB   r  r  r  r  s      r   ÚtestIncompleteHeader_1sizez)test_WireState.testIncompleteHeader_1sizeI  sÒ   € Ý�[„[€"Ø�YŠY•z (Ñ+Ô+Ñ,Ô,€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô# WÑ-Ô-Ð-Ø×Ò�2”= $Ñ'Ô'Ð'Ø×Ò�2Ô% rÑ*Ô*Ð*Ø�YŠY•z /Ñ2Ô2Ñ3Ô3€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% qÑ)Ô)Ð)Ð)Ð)r   c                 óÀ  — t          ¦   «         }|                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d ¦  «         |                     d¦  «        }|                      |d¦  «         |                      |j        d¦  «         d S )Ns   d  r   r  s     s    r   r  r  s      r   ÚtestIncompleteHeader_2sizez)test_WireState.testIncompleteHeader_2sizeT  sÊ   € Ý�[„[€"Ø�YŠY•z ,Ñ/Ô/Ñ0Ô0€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% rÑ*Ô*Ð*Ø×Ò�2Ô# [Ñ1Ô1Ð1Ø×Ò�2”= $Ñ'Ô'Ð'Ø�YŠY�{Ñ#Ô#€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% qÑ)Ô)Ð)Ð)Ð)r   c                 óÚ  — t          ¦   «         }|                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d ¦  «         |                     t          d¦  «        ¦  «        }|                      |d¦  «         |                      |j        d¦  «         d S )Ns   d   r   r  s      ó   r   r  r  s      r   ÚtestIncompleteHeader_3sizez)test_WireState.testIncompleteHeader_3size_  sÓ   € Ý�[„[€"Ø�YŠY•zÐ"2Ñ3Ô3Ñ4Ô4€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% rÑ*Ô*Ð*Ø×Ò�2Ô# _Ñ5Ô5Ð5Ø×Ò�2”= $Ñ'Ô'Ð'Ø�YŠY•z 'Ñ*Ô*Ñ+Ô+€(Ø×Ò�8˜QÑÔÐØ×Ò�2Ô% qÑ)Ô)Ð)Ð)Ð)r   N)	r6   r7   r8   r  r  r  r  r!  r$  r   r   r   r
  r
  )  sn   € € € € € ð(ð (ð (ð(ð (ð (ð ð  ð  ð	*ð 	*ð 	*ð	*ð 	*ð 	*ð	*ð 	*ð 	*ð 	*ð 	*r   r
  Ú__main__)&ÚunittestÚ	itertoolsr   Ú r   Útemporalr   Úprotocol.element3r   r   r	   r
   r   r  r×   rØ   rZ   ÚformatrW   re   rc   rw   rJ   rY   rM   r}   r~   rN   rP   rr   rX   r    ÚTestCaser;   r  r
  r6   Úmainr   r   r   ú<module>r.     s  ðð €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ #Ð #Ð #Ð #Ð #Ð #ð€ð )€ð €ð÷
 ‚Fˆ;ÑÔð 
ðð ðð Ø"' %¨¨5¡/¤/ðñ ô ðñ ô €ðð Ø�e˜A˜u‘o”oðñ ô €ð 
9€Ø	 €Ø	&€Ø3€Ø9€Ø-€Ø
4€Ø
/€ð
ð ð ð ð ˆwÔ(ñ ô ð ð\5ð \5ð \5ð \5ð \5�8Ô$ñ \5ô \5ð \5ð|  Ð Ð Ð Ð Ð ð?*ð ?*ð ?*ð ?*ð ?*�XÔ&ñ ?*ô ?*ð ?*ðB ˆzÒÐØ€„�„€€€ð Ðr   