ó
    0hîhh  ã                   ó:  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
Jr  S SKJrJr  S SKJr  \R"                  S:H  rSrSr\4S	 jrS
 rS r " S S\R0                  5      r " S S\R0                  5      r\S:X  a  \R8                  " 5         gg)é    )ÚabcN)Úsupport)Úimport_helperÚsuppress_immortalization)Úassert_python_okÚbig)ÚbÚBÚhÚHÚiÚIÚlÚLÚqÚQÚnÚN)Ú Ú@Ú=Ú<Ú>Ú!c              #   ó^   #   • [          H  nU  H  nUS;  a  US;   a  M  X4v •  M     M!     g 7f)N©r   r   )r   r   )Úinteger_codes)Ú
byteordersÚcodeÚ	byteorders      Ú9/opt/python-3.13.8/usr/lib/python3.13/test/test_struct.pyÚiter_integer_formatsr"      s3   é € ßˆÛ#ˆIØ Ó*¨t°zÓ/AÙØ/Ô!ó $ò ùs   ‚+-c                 ó   • U S S S2   $ )Néÿÿÿÿ© )Úss    r!   Ústring_reverser'      s   € Ø‰TˆrˆT‰7€Nó    c                 ó2   • [         (       a  U $ [        U 5      $ ©N)ÚISBIGENDIANr'   )Úvalues    r!   Úbigendian_to_nativer-      s   € ß‚{Øˆä˜eÓ$Ð$r(   c                   óf  • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS r\R0                  S 5       rS rS rS rS rS rS r\ " 5       S 5       r!\R0                  S 5       r"S r#\R0                  S 5       r$\R0                  S  5       r%S! r&S" r'S#r(g$)%Ú
StructTesté$   c                 óf   • U R                  [        R                  " SS5      S   S:H  [        5        g )Nz=ié   r   )ÚassertEqualÚstructÚpackr+   ©Úselfs    r!   Útest_isbigendianÚStructTest.test_isbigendian%   s'   € Ø×Ñœ&Ÿ+š+ d¨AÓ.¨qÑ1°QÑ6¼ÕEr(   c                 óV  • U R                  [        R                  [        R                  S5        [        R                  " S5      nU R	                  US-  [        R                  " S5      5        SnSn[        R                  " U5      n[        R                  " U5      nU R	                  US-  U5        U R                  [        R                  [        R
                  SS5        U R                  [        R                  [        R
                  SSSS5        U R                  [        [        R                  4[        R
                  SS5        U R                  [        [        R                  4[        R
                  SS5        U R                  [        R                  [        R                  S	S
5        [        R
                  " SSS5      nU R                  [        R                  [        R                  SU5        U R                  [        R                  [        R                  SU5        g )NÚZr   é   Úiiizcbxxxxxxhhhhiillffd?z3c3b18x12h6i6l6f3d3?ÚfooÚPÚds   flapÚiir2   é   )ÚassertRaisesr4   ÚerrorÚcalcsizer3   r5   Ú	TypeErrorÚunpack)r7   ÚszÚfmtÚfmt3Úsz3r&   s         r!   Útest_consistenceÚStructTest.test_consistence(   se  € Ø×Ñœ&Ÿ,™,¬¯©¸Ô=ä_Š_˜SÓ!ˆØ×Ñ˜˜a™¤§¢°Ó!7Ô8à$ˆØ%ˆÜ_Š_˜SÓ!ˆÜoŠo˜dÓ#ˆØ×Ñ˜˜a™ Ô%à×Ñœ&Ÿ,™,¬¯©°U¸AÔ>Ø×Ñœ&Ÿ,™,¬¯©°S¸!¸QÀÔBØ×Ñœ9¤f§l¡lÐ3´V·[±[À#ÀuÔMØ×Ñœ9¤f§l¡lÐ3´V·[±[À#ÀuÔMØ×Ñœ&Ÿ,™,¬¯©°s¸GÔDÜKŠK˜˜a Ó#ˆØ×Ñœ&Ÿ,™,¬¯©°u¸aÔ@Ø×Ñœ&Ÿ,™,¬¯©°s¸AÕ>r(   c                 ó:  • SnSnSnSnSnSnSnSnS GH  n	S	 Hú  n
Xš-   n
[         R                  " X¡X#XEXgU5	      n[         R                  " X«5      u  pÍpïnnnnU R                  XÁ5        U R                  XÒ5        U R                  Xã5        U R                  Xô5        U R                  UU5        U R                  [	        S
U-  5      [	        S
U-  5      5        U R                  [	        S
U-  5      [	        S
U-  5      5        U R                  UU5        Mü     GM     g )Nó   ar2   éÿ   iÿÿ  i   goƒÀÊ!	@T)r   r   r   r   r   r   )z	xcbhilfd?z	xcBHILfd?éd   )r4   r5   rG   r3   Úint)r7   Úcr	   r   r   r   Úfr@   ÚtÚprefixÚformatr&   ÚcpÚbpÚhpÚipÚlpÚfpÚdpÚtps                       r!   Útest_transitivenessÚStructTest.test_transitiveness=   s  € ØˆØˆØˆØˆØˆØˆØˆØˆä3ˆFÛ4Ø™Ü—K’K ¨1°°q¸QÓ?Ü17·²¸vÓ1IÑ.˜  B¨¨BØ× Ñ  Ô'Ø× Ñ  Ô'Ø× Ñ  Ô'Ø× Ñ  Ô'Ø× Ñ   QÔ'Ø× Ñ ¤ S¨2¡X£´°C¸!±G³Ô=Ø× Ñ ¤ S¨2¡X£´°C¸!±G³Ô=Ø× Ñ   QÖ'ô 5ò 4r(   c                 óT  • / SPSPSPSPSPSPSPSPS	PS
PSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPSPS PS!PS"PS#PS$PS%PS&PS'PS(PS)/ S*S*S+4PS,PnU HÇ  u  p#pEnS-U-   U4S.U-   U4S/U-   U4S0U-   [         =(       a    U=(       d    U44 HŒ  u  px[        R                  " Xs5      n	U R                  X˜5        U R                  [        R                  " U5      [        U	5      5        [        R                  " Xy5      S1   n
X£:w  d  M{  U R                  U5        MŽ     MÉ     g )2N)rS   rO   rO   rO   r   )ÚxcrO   ó    ard   r   )ÚcxrO   ó   a rf   r   )r&   rO   rO   rO   r   )Ú0só
   helloworldr(   r(   r2   )Ú1srh   ó   hrj   r2   )Ú9srh   ó	   helloworlrl   r2   )Ú10srh   rh   rh   r   )Ú11srh   ó   helloworld ro   r2   )Ú20srh   ó   helloworld          rq   r2   )Ú0prh   r(   r(   r2   )Ú1prh   ó    rt   r2   )Ú2prh   ó   hrv   r2   )Ú10prh   ó
   	helloworlrx   r2   )Ú11prh   ó   
helloworldrz   r   )Ú12prh   ó   
helloworld r|   r2   )Ú20prh   ó   
helloworld         r~   r2   )r	   é   ó   r€   r   )r	   iùÿÿÿó   ùr   r   )r
   r   r€   r€   r   )r
   éù   r   r   r   )r   é¼  ó   ¼ó   ¼r   )r   iDýÿÿó   ýDó   Dýr   )r   rƒ   r„   r…   r   )r   iDý  r†   r‡   r   )r   é€,ó   ,€ó   €,r   )r   é€âÓûó   ûÓâ€ó   €âÓûr   )r   rˆ   r‰   rŠ   r   )r   ì   €b§w rŒ   r   r   )r   rˆ   r‰   rŠ   r   )r   r‹   rŒ   r   r   )r   rˆ   r‰   rŠ   r   )r   rŽ   rŒ   r   r   )rT   ç       @s   @   s      @r   )r@   r   s   @       s          @r   )rT   ç       Às   À   s      Àr   )r@   r   s   À       s          Àr   )Ú?r   rt   rt   r   )r‘   r<   ó   r’   r2   )r‘   Tr’   r’   r   r‘   rt   r2   )r‘   )r2   r’   r’   r2   r   r   r   r   r   )r+   r4   r5   r3   rE   ÚlenrG   Ú
assertTrue)r7   ÚtestsrI   Úargr   ÚlilÚasyÚxfmtÚexpÚresÚrevs              r!   Útest_new_featuresÚStructTest.test_new_featuresU   s’  € ð-
Ø&ð-
à+ð-
ð ,ð-
ð 'ð	-
ð
 /ð-
ð 1ð-
ð Að-
ð Dð-
ð Hð-
ð Vð-
ð /ð-
ð 7ð-
ð 9ð-
ð Jð-
ð Lð-
ð  Pð!-
ð" \ð#-
ð$ &ð%-
ð& +ð'-
ð( &ð)-
ð* ,ð+-
ð, 4ð--
ð. /ð/-
ð0 4ð1-
ð2 6ð3-
ð4 Cð5-
ð6 Jð7-
ð8 Cð9-
ð: Uð;-
ð< Cð=-
ð> Jð?-
ð@ CðA-
ðB UðC-
ðD >ðE-
ðF<ðG-
ðJ EðK-
ðL@ðM-
ðP &ðQ-
ðR &ðS-
ðT )ðU-
ðV "e˜U AÐ&ðW-
ðX )ðY-
ˆó^ (-Ñ#ˆCc Ø!$ S¡¨# °°S±¸#°ÀÀSÁÈ#ÀØ!$ S¡¬+×*=¸#×*DÀÐ Eó G‘ä—k’k $Ó,Ø× Ñ  Ô*Ø× Ñ ¤§¢°Ó!6¼¸C»ÔAÜ—m’m DÓ.¨qÑ1Ø•:Ø—O‘O CÖ(ó Gò (-r(   c                 óÌ  • SSSSSSSSSSS.
n[        S5       H3  u  p#X2-   n[        R                  " U5      nU R                  XQU   5        M5     SnU HS  nS HJ  n[        R                  " X7S	   -   5      n[        R                  " X7S   -   5      n	U R                  X‰5        ML     MU     U R                  [        R                  " S
5      S5        U R	                  S[        R                  " S5      5        U R	                  S[        R                  " S5      5        U R	                  [        R                  " S5      [        R                  " S5      5        U R	                  [        R                  " S5      [        R                  " S5      5        U R	                  S[        R                  " S5      5        U R	                  [        R                  " S5      [        R                  " S5      5        U R                  [        R                  " S5      [        R                  " S5      5        U R                  [        R                  " S5      [        R                  " S5      5        g )Nr2   rB   é   é   )
r	   r
   r   r   r   r   r   r   r   r   ©r   r   r   r   )ÚbBÚhHÚiIÚlLÚnNÚqQr   r   r	   r   r   r   r   r   r?   )r"   r4   rE   r3   ÚassertLessEqualÚassertGreaterEqual)
r7   Úexpected_sizer   r    rW   ÚsizeÚnative_pairsÚformat_pairÚsigned_sizeÚunsigned_sizes
             r!   Útest_calcsizeÚStructTest.test_calcsize‘   sÂ  € à˜Ø˜Ø˜Ø˜Ø˜ñˆô  4Ð4HÖI‰OˆDØ‘^ˆFÜ—?’? 6Ó*ˆDØ×Ñ˜T°Ñ#6Ö7ñ  Jð :ˆÛ'ˆKÛ$	Ü$Ÿošo¨iÀa¹.Ñ.HÓIÜ &§¢°	È¹NÑ0JÓ KØ× Ñ  Ö<ó %ñ (ð 	×ÑœŸš¨Ó-¨qÔ1Ø×Ñ˜Q¤§¢°Ó 4Ô5Ø×Ñ˜Q¤§¢°Ó 4Ô5Ø×ÑœVŸ_š_¨SÓ1´6·?²?À3Ó3GÔHØ×ÑœVŸ_š_¨SÓ1´6·?²?À3Ó3GÔHØ×Ñ˜Q¤§¢°Ó 4Ô5Ø×ÑœVŸ_š_¨SÓ1´6·?²?À3Ó3GÔHØ×Ñ¤§¢°Ó 4´f·o²oÀcÓ6JÔKØ×Ñ¤§¢°Ó 4´f·o²oÀcÓ6JÕKr(   c                 ó¬   ^^^• SS K m " UUU4S jS[        R                  5      m[        5        H!  u  pX!-   mT" T5      nUR	                  5         M#     g )Nr   c                   ó†   >^ • \ rS rSrUU 4S jr\R                  \R                   YR                  4S jr	U4S jr
SrU =r$ )Ú+StructTest.test_integers.<locals>.IntTesteré·   c                 ó\  >• [         TU ]  SS9  Xl        US   U l        US S U l        U R                  [
        ;  a  [        SU R                  -  5      e[        R                  " U5      U l	        U R                  S-  U l
        U R                  [        S5      ;   a:  SU l        SU R                  S	-
  -  * U l        SU R                  S	-
  -  S	-
  U l        g U R                  [        S
5      ;   a&  SU l        SU l        SU R                  -  S	-
  U l        g [        SU R                  -  5      e)NÚtest_one)Ú
methodNamer$   z"unrecognized packing byteorder: %sr¡   ÚbhilqnTrB   r2   ÚBHILQNFr   zunrecognized format code: %s)ÚsuperÚ__init__rW   r   r    r   Ú
ValueErrorr4   rE   ÚbytesizeÚbitsizeÚtupleÚsignedÚ	min_valueÚ	max_value)r7   rW   Ú	IntTesterÚ	__class__s     €€r!   r½   Ú4StructTest.test_integers.<locals>.IntTester.__init__¸   s  ø€ Üi Ñ/¸:Ð/ÑFØ$”Ø" 2™J”	Ø!'¨¨ ”Ø—~‘~¬Ó3Ü$Ð%IØ%)§^¡^ñ&4ó 5ð 5ä &§¢°Ó 7”Ø#Ÿ}™}¨qÑ0”Ø—9‘9¤ h£Ó/Ø"&D”KØ'(¨4¯<©<¸©>Ñ':Ð%;D”NØ%&¨¯©°a©Ñ%8¸1Ñ%<D•NØ—Y‘Y¤%¨£/Ó1Ø"'D”KØ%&D”NØ%&¨¯©¡_°qÑ%8D•Nä$Ð%CØ%)§Y¡Yñ&/ó 0ð 0r(   c                 óX  • U R                   nU R                  Us=::  a  U R                  ::  GaP  O  GOLUnU R                  (       a  US:  a  USU R                  -  -  nU R                  US5        SU-  n[        U5      S-  (       a  SU-   nUR                  S5      nU" U5      nSU R                  [        U5      -
  -  U-   nU R                  S:X  d  U R                  S;   a  [        (       d  [        U5      nU R                  [        U5      U R                  5        U" XQ5      nU R                  Xv5        U" XW5      S   nU R                  X5        U R                  [        R                  [         4X5S	U-   5        g U R                  ["        [$        [        R                  4X%U5        g )
Nr   r2   z%xÚ0Úasciirt   r   )r   r   r   r’   )rW   rÃ   rÄ   rÂ   rÀ   rª   r“   Úencoder¿   r    r+   r'   r3   rC   r4   rD   rF   ÚOverflowErrorr¾   )	r7   Úxr5   rG   Ú	unhexlifyrW   ÚexpectedÚgotÚ	retrieveds	            r!   r¸   Ú4StructTest.test_integers.<locals>.IntTester.test_oneÎ   sl  € ð Ÿ™Ø—>‘> QÕ8¨$¯.©.×8Ð8Ø HØ—{—{ q¨1£uØ  A¨¯©Ñ$5Ñ5˜Ø×+Ñ+¨H°aÔ8Ø# h™HÜ˜8“} q×(Ø#&¨¡>˜Ø'Ÿ™¨wÓ7HÙ(¨Ó2HØ '¨4¯=©=¼3¸x»=Ñ+HÑ IØ (ñ!)HàŸ™¨#Ó-ØŸ™¨.Ó8ÇÂÜ#1°(Ó#;˜Ø×$Ñ$¤S¨£]°D·M±MÔBñ ˜v›/CØ×$Ñ$ SÔ3ñ !' vÓ 3°AÑ 6IØ×$Ñ$ QÔ2ð ×%Ñ%¤v§|¡|´YÐ&?ÀØAHÈ3ÁõPð ×%Ñ%¤}´jÄ&Ç,Á,Ð&OØ&*°Aõ7r(   c                 ój  >• SSK Jn  / n[        U R                  S-   5       H  nUR	                  SU-  5        M     [        U R                  5       H@  nSn[        U R
                  5       H  nUS-  U" S5      -  nM     UR	                  U5        MB     UR                  SS[        R                  S	-  /5        U H-  nU* U4 H!  nS
 H  nXX-   n	U R                  U	5        M     M#     M/      " S S5      n
 " S S[        5      n " S S[        5      nU R                  [        [        R                  4[        R                  U R                   S5        U R                  [        [        R                  4[        R                  U R                   U5        U R                  [        [        R                  4[        R                  U R                   S5        U R                  [        [        R                  4[        R                  U R                   U
" 5       5        U R                  [        [        R                  4[        R                  U R                   U" 5       5        U" S5      U" S5      U" S5      U" S5      U" S5      U" S5      4 H  n [        R                  " TU5        M     U" S5      U" S5      U" S 5      U" SS05      U" / SQ5      4 HC  nU R                  [        [        R                  4[        R                  U R                   U5        ME     g !   U R#                  S5         M¦  = f)Nr   )Ú	randranger<   r2   r¡   é   i,  i`®
 r    )r$   r   r2   c                   ó   • \ rS rSrS rSrg)ÚAStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnInti  c                 ó   • g©Né*   r%   r6   s    r!   Ú__int__ÚIStructTest.test_integers.<locals>.IntTester.run.<locals>.NotAnInt.__int__  ó   € Ø!r(   r%   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rÛ   Ú__static_attributes__r%   r(   r!   ÚNotAnIntr×     s   † õ"r(   rã   c                   ó    • \ rS rSrS rS rSrg)ÚBStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexablei  c                 ó   • Xl         g r*   ©Ú_value)r7   r,   s     r!   r½   ÚKStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__init__  s   € Ø&+r(   c                 ó   • U R                   $ r*   rç   r6   s    r!   Ú	__index__ÚLStructTest.test_integers.<locals>.IntTester.run.<locals>.Indexable.__index__  s   € Ø#Ÿ{™{Ð*r(   rç   N)rÞ   rß   rà   rá   r½   rë   râ   r%   r(   r!   Ú	Indexablerå     s   † ò,õ+r(   rí   c                   ó    • \ rS rSrS rS rSrg)ÚAStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndexi!  c                 ó   • [         er*   )rF   r6   s    r!   rë   ÚKStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__index__"  s   € Ü'˜r(   c                 ó   • grÙ   r%   r6   s    r!   rÛ   ÚIStructTest.test_integers.<locals>.IntTester.run.<locals>.BadIndex.__int__%  rÝ   r(   r%   N)rÞ   rß   rà   rá   rë   rÛ   râ   r%   r(   r!   ÚBadIndexrï   !  s   † ò(õ"r(   rô   za stringy      @      E@é
   é   rÚ   rQ   é   z:integer code pack failed on object with '__index__' methodrO   r	   Úa)r2   rB   r<   )ÚrandomrÔ   ÚrangerÀ   Úappendr¿   ÚextendÚsysÚmaxsizer¸   ÚobjectrC   rF   r4   rD   r5   rW   Úfail)r7   rÔ   Úvaluesrš   r   ÚvalÚjÚbaseÚincrrÍ   rã   rí   rô   ÚobjrW   s                 €r!   ÚrunÚ/StructTest.test_integers.<locals>.IntTester.runô   s“  ø€ Ý,ð Ü  §¡°Ñ!1Ö2CØ—M‘M ! s¡(Ö+ñ 3ô ˜tŸ|™|Ö,AØCÜ" 4§=¡=Ö1˜Ø" a™x©9°S«>Ñ9šñ 2à—M‘M #Ö&ñ	 -ð —‘˜s F¬C¯K©K¸©MÐ:Ô;ó #DØ $˜u d›{˜Û$,˜DØ #¡
˜AØ ŸM™M¨!Ö,ó %-ó  +ñ #÷"ñ "ô+¤ô +ô"œvô "ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ø",ô.ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ø"+ô-ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ø"'ô)ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ù"*£*ô.ð ×!Ñ!¤9¬f¯l©lÐ";Ü"(§+¡+¨t¯{©{Ù"*£*ô.ñ
 & a›L©)°B«-¹À2»Ù% b›M©9°S«>¹9ÀS»>óKCð=ÜŸš F¨CÖ0ñKñ & d›O©Y°s«^¹YÀt»_Ù% s¨A hÓ/±º9Ó1EóGCà×%Ñ%¤y´&·,±,Ð&?Ü&,§k¡k°4·;±;Ø&)ö+òGøð=ØŸ	™	ð #<÷ =ús   ÊLÌL2)rÀ   r    r¿   r   rW   rÄ   rÃ   rÂ   )rÞ   rß   rà   rá   r½   r4   r5   rG   rÎ   r¸   r  râ   Ú__classcell__)rÆ   rÅ   ÚbinasciirW   s   @€€€r!   rÅ   rµ   ·   s3   ù† ö0ð, (.§{¡{Ø)/¯©Ù,4×,>Ñ,>ô$7÷LR+ó R+r(   rÅ   )r
  ÚunittestÚTestCaser"   r  )r7   r   r    rU   rÅ   r
  rW   s       @@@r!   Útest_integersÚStructTest.test_integers³   sL   ú€ ã÷O	+ñ O	+œ×)Ñ)ô O	+ôb  4Ö5‰OˆDØ‘^ˆFÙ˜&Ó!ˆAØE‰EŽGò  6r(   c                 óÌ   ^ • U 4S jnS HW  nS HN  nX2-   nU" [         R                  U5        U" [         R                  US5        U" [         R                  US5        MP     MY     g )Nc                 óÒ   >• TR                  [        R                  5       nU " U0 UD6  S S S 5        TR                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nzbad char in struct format)rC   r4   rD   ÚassertInÚstrÚ	exception)ÚfuncÚargsÚkwargsÚcmr7   s       €r!   ÚassertStructErrorÚ2StructTest.test_nN_code.<locals>.assertStructErrorO  sJ   ø€ Ø×"Ñ"¤6§<¡<Ô0°BÙdÐ%˜fÒ%÷ 1àM‰MÐ5´s¸2¿<¹<Ó7HÕI÷ 1Õ0ús   ¡	AÁ
A&r§   r¢   r   r(   )r4   rE   r5   rG   )r7   r  r   r    rW   s   `    r!   Útest_nN_codeÚStructTest.test_nN_codeM  sT   ø€ õ	Jó ˆDÛ1	Ø"™Ù!¤&§/¡/°6Ô:Ù!¤&§+¡+¨v°qÔ9Ù!¤&§-¡-°¸Ö=ó	 2ò r(   c                 ó¼   • S HV  u  pp4[         R                  " X5      nU R                  XS5        [         R                  " X5      u  nU R                  XT5        MX     g )N)	)rr   ó   abcr(   r(   )Úpr  rt   r(   )rs   r  rt   r(   )ru   r  s   arO   )Ú3pr  s   abs   ab)Ú4pr  s   abcr  )Ú5pr  s   abc r  )Ú6pr  s   abc  r  )Ú1000psè  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsè  ÿxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsÿ   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r4   r5   r3   rG   )r7   r   ÚinputrÏ   ÚexpectedbackrÐ   s         r!   Útest_p_codeÚStructTest.test_p_codeZ  sQ   € ó	4DÑ/ˆD˜ô —+’+˜dÓ*ˆCØ×Ñ˜SÔ+Ü—]’] 4Ó-‰FˆSØ×Ñ˜SÖ/ò	4Dr(   c                 óâ  • [        SS5       HÅ  nSnXS-  -
  U:w  a  US-  nXS-  -
  U:w  a  M  X-
  n[        R                  " SU5      n[        R                  " SU5      S   nU R	                  X5        [        R                  " SU5      nU R	                  U[        U5      5        [        R                  " SU5      S   nU R	                  X5        MÇ     Sn[        R                  " US	5      n[        R                  " SU5      n[        R                  " SU5      S   nU R	                  Xu5        S
n[        R                  " US5      nU R                  [        [        R                  SU5        g )Nr2   é!   g      à?r   z<fr   z>fiÿÿÿ éh   iÿÿÿég   )
rú   r4   r5   rG   r3   r'   ÚmathÚldexprC   rÌ   )r7   r  ÚdeltaÚsmallerÚpackedÚunpackedÚ	bigpackedr   s           r!   Útest_705836ÚStructTest.test_705836k  s?  € ô ˜!˜R–LˆDàˆEØ ™Ñ$¨Ó,Ø˜‘ð  ™Ñ$¨Õ,à‘lˆGä—[’[  wÓ/ˆFÜ—}’} T¨6Ó2°1Ñ5ˆHð ×Ñ˜TÔ,ÜŸš D¨'Ó2ˆIØ×Ñ˜Y¬°vÓ(>Ô?Ü—}’} T¨9Ó5°aÑ8ˆHØ×Ñ˜TÖ,ñ !ð$ ˆÜjŠj˜˜hÓ'ˆÜ—’˜T 3Ó'ˆÜ—=’=  vÓ.¨qÑ1ˆØ×Ñ˜Ô'ð ˆÜjŠj˜˜hÓ'ˆØ×Ñœ-¬¯©°d¸CÕ@r(   c                 ó²  • [        5        Hi  u  pX!-   nU R                  [        R                  [        R                  US5        U R                  [        R                  [        R                  US5        Mk     U R                  [        R                  [        R                  SS5        U R                  [        R                  [        R                  SS5        g )Nç      ð?g      ø?r?   )r"   rC   r4   rD   r5   )r7   r   r    rW   s       r!   Útest_1530559ÚStructTest.test_1530559Œ  s‹   € Ü3Ö5‰OˆDØÑ%ˆFØ×ÑœfŸl™l¬F¯K©K¸ÀÔEØ×ÑœfŸl™l¬F¯K©K¸ÀÖEñ  6ð 	×Ñœ&Ÿ,™,¬¯©°S¸#Ô>Ø×Ñœ&Ÿ,™,¬¯©°S¸#Õ>r(   c           	      ó¼  • SnSn[         R                  " U5      n[        [        4 Hó  nU" U5      nU R	                  UR                  U5      S5        U R	                  UR                  US5      S5        U R	                  UR                  US5      S5        [        S5       H*  nU R	                  UR                  XV5      XVUS-    45        M,     [        S[        U5      S	-   5       H.  nU R                  [         R                  UR
                  XV5        M0     Mõ     [        [        4 GH  nU" U5      nU R	                  [         R
                  " X%5      S5        U R	                  [         R
                  " X%S5      S5        U R	                  [         R
                  " X%S5      S5        [        S5       H0  nU R	                  [         R
                  " X%U5      XVUS-    45        M2     [        S[        U5      S	-   5       H3  nU R                  [         R                  [         R
                  X%U5        M5     GM     U R	                  UR                  USS
9S5        g )Ns	   abcd01234Ú4s)s   abcdrB   )s   cd01r    )s   0123é   r2   )ÚbufferÚoffset)
r4   ÚStructÚbytesÚ	bytearrayr3   Úunpack_fromrú   r“   rC   rD   )r7   Útest_stringrI   r&   ÚclsÚdatar   s          r!   Útest_unpack_fromÚStructTest.test_unpack_from”  sè  € Ø"ˆØˆÜMŠM˜#ÓˆÜœ9Ó%ˆCÙ{Ó#ˆDØ×Ñ˜QŸ]™]¨4Ó0°*Ô=Ø×Ñ˜QŸ]™]¨4°Ó3°ZÔ@Ø×Ñ˜QŸ]™]¨4°Ó3°ZÔ@Ü˜1–XØ× Ñ  §¡¨tÓ!7¸$ÀÀ1Á¸+¸ÖHñ ä˜1œc +Ó.°Ñ2Ö3Ø×!Ñ!¤&§,¡,°·±¸tÖGó 4ñ &ô œ9Ô%ˆCÙ{Ó#ˆDØ×ÑœV×/Ò/°Ó:¸JÔGØ×ÑœV×/Ò/°¸1Ó=¸zÔJØ×ÑœV×/Ò/°¸1Ó=¸zÔJÜ˜1–XØ× Ñ ¤×!3Ò!3°C¸qÓ!AÀDÈ1ÈQÉ3ÀKÀ>ÖRñ ä˜1œc +Ó.°Ñ2Ö3Ø×!Ñ!¤&§,¡,´×0BÑ0BÀCÈqÖQô 4ñ &ð 	×Ñ˜Ÿ™¨kÀ!˜ÐDØ#õ	%r(   c                 óä  • Sn[         R                   " SS5      nSn[        R                  " U5      nUR                  USU5        UR	                  5       S [        U5       nU R                  XQ5        UR                  USU5        UR	                  5       S [        U5      S-    nU R                  XQS S U-   5        [         R                   " SS5      nU R                  [        [        R                  4UR                  USU5        U R                  [        [        R                  4UR                  USU5        UnU R                  [        [        R                  4[        R                  S	US 5        g )
Nó   Reykjavik rocks, eow!r	   ód                                                                                                       Ú21sr   rõ   ó
             rB   r(   )Úarrayr4   r>  Ú	pack_intoÚtobytesr“   r3   rC   r¾   rD   rF   )r7   rB  Úwritable_bufrI   r&   Úfrom_bufÚ	small_bufÚsbs           r!   Útest_pack_intoÚStructTest.test_pack_into¯  s>  € Ø.ˆÜ—{’{ 3¨Ó1ˆØˆÜMŠM˜#Óˆð 	
‰L ! [Ô1Ø×'Ñ'Ó)Ð*;¬3¨{Ó+;Ð<ˆØ×Ñ˜Ô/ð 	
‰L " kÔ2Ø×'Ñ'Ó)Ð*>¬3¨{Ó+;¸BÑ+>Ð?ˆØ×Ñ˜¨s°Ð#3°kÑ#AÔBô —K’K  WÓ-ˆ	Ø×Ñœ:¤v§|¡|Ð4°a·k±kÀ9ÈaØ%ô	'à×Ñœ:¤v§|¡|Ð4°a·k±kÀ9ÈaØ%ô	'ð ˆØ×Ñœ9¤f§l¡lÐ3´V×5EÑ5EÀsÈBØõ	 r(   c                 ó  ^• Sn[         R                   " SS5      nSmU4S jnU" USU5        UR                  5       S [        U5       nU R                  XA5        U" USU5        UR                  5       S [        U5      S-    nU R                  XAS S U-   5        [         R                   " SS5      nU R	                  [
        [        R                  4X5SU5        U R	                  [
        [        R                  4X5S	U5        g )
NrH  r	   rI  rJ  c                  ó2   >• [         R                  " T/U Q76 $ r*   )r4   rM  )r  rI   s    €r!   Ú<lambda>Ú.StructTest.test_pack_into_fn.<locals>.<lambda>Ï  s   ø€ ¤&×"2Ò"2°3Ð">¸Ó">r(   r   rõ   rK  rB   )rL  rN  r“   r3   rC   r¾   r4   rD   )r7   rB  rO  rM  rP  rQ  rI   s         @r!   Útest_pack_into_fnÚStructTest.test_pack_into_fnË  só   ø€ Ø.ˆÜ—{’{ 3¨Ó1ˆØˆÜ>ˆ	ñ 	,  ;Ô/Ø×'Ñ'Ó)Ð*;¬3¨{Ó+;Ð<ˆØ×Ñ˜Ô/ñ 	,  KÔ0Ø×'Ñ'Ó)Ð*>¬3¨{Ó+;¸BÑ+>Ð?ˆØ×Ñ˜¨s°Ð#3°kÑ#AÔBô —K’K  WÓ-ˆ	Ø×Ñœ:¤v§|¡|Ð4°iÈAØ%ô	'à×Ñœ:¤v§|¡|Ð4°iÈAØ%õ	'r(   c                 ó²   • [         R                   " SS5      n[        S5      nX4 H.  n[        R                  " SU5      u  nU R	                  US5        M0     g )Nr
   s   4Vxz>IixV4)rL  Ú
memoryviewr4   rG   r3   )r7   Údata1Údata2rD  r,   s        r!   Útest_unpack_with_bufferÚ"StructTest.test_unpack_with_bufferâ  sL   € ä—’˜CÐ!4Ó5ˆÜÐ.Ó/ˆØ“NˆDÜ—]’] 4¨Ó.‰FˆEØ×Ñ˜U JÖ/ò #r(   c                 ó(  •  " S S[         5      n[        S5      S-    GH±  nS/ / SS4nS/S	S
SSS4nUS[        U5      -  -   n[        R                  " U/UQ76 n[        R
                  " XV5      nUS[        U5      -  -   n[        R                  " U/UQ76 n	[        R
                  " X‰5      n
U R                  [        U5      [        U
5      5        U R                  [        U5      [        U5      5        U H  nU R                  U5        M     U
 H  nU R                  U5        M     [        R                  " US-   S5      nU R                  [        U5      [        R                  " US-   5      5        [        U5      S:w  a  U R                  USU-  S9   [        R                  " US-   U" 5       5        U R                  SUS-   -  5        GM´     S H§  nU R                  [        R
                  " SU5      S   5        U R                  [        R
                  " SU5      S   5        U R                  [        R
                  " SU5      S   5        U R                  [        R
                  " SU5      S   5        M©     g ! [         a     GMr  f = f)Nc                   ó   • \ rS rSrS rSrg)Ú+StructTest.test_bool.<locals>.ExplodingBoolië  c                 ó   • [         er*   )ÚOSErrorr6   s    r!   Ú__bool__Ú4StructTest.test_bool.<locals>.ExplodingBool.__bool__ì  s   € Ür(   r%   N)rÞ   rß   rà   rá   rf  râ   r%   r(   r!   ÚExplodingBoolrc  ë  s   † õr(   rh  z<>!=)r   r%   r   r   r2   Útesté   r$   l        g  àÿÿÿßAr‘   z encoded bool is not one byte: %r)Úmsgz2Expected OSError: struct.pack(%r, ExplodingBool()))r’   ó   ó   ÿó   ó   ðz>?z<?z=?z@?)rÿ   rÁ   r“   r4   r5   rG   r3   ÚassertFalser”   rE   r   re  )r7   rh  rV   ÚfalseÚtrueÚfalseFormatÚpackedFalseÚunpackedFalseÚ
trueFormatÚ
packedTrueÚunpackedTruerU   r0  rS   s                 r!   Ú	test_boolÚStructTest.test_boolê  s9  € ô	œFô 	ô ˜F“m EÕ)ˆFØ˜˜B  AÐ%ˆEØ3˜  2 |°\ÐAˆDà  3¬¨U«Ñ#3Ñ3ˆKÜ Ÿ+š+ kÐ:°EÒ:ˆKÜ"ŸMšM¨+ÓCˆMà #¬¨D«	¡/Ñ1ˆJÜŸš ZÐ7°$Ò7ˆJÜ!Ÿ=š=¨Ó@ˆLà×ÑœS ›Y¬¨LÓ(9Ô:Ø×ÑœS ›Z¬¨]Ó);Ô<ã"Ø× Ñ  Ö#ñ #ã!Ø—‘ Ö"ñ "ô —[’[ ¨¡¨QÓ/ˆFà×ÑœS ›[¬&¯/ª/¸&À¹*Ó*EÔFä6‹{˜aÓØ× Ñ  Ð-OØ.4ñ.5Ð ñ 6ð?Ü—’˜F S™L©-«/Ô:ð —	‘	ð -Ø06¸±ñ>÷ ?ñC *óH ?ˆAØO‰OœFŸMšM¨$°Ó2°1Ñ5Ô6ØO‰OœFŸMšM¨$°Ó2°1Ñ5Ô6ØO‰OœFŸMšM¨$°Ó2°1Ñ5Ô6ØO‰OœFŸMšM¨$°Ó2°1Ñ5Ö6ò	 ?øô ó Ûðús   ÆJÊ
JÊJc                 ól  • SR                  [        R                  S-   5      nU R                  [        R
                  [        R                  U5        SR                  [        R                  S-  [        R                  S-  5      nU R                  [        R
                  [        R                  U5        g )Nz{}br2   z{}b{}HrB   )rW   rý   rþ   rC   r4   rD   rE   )r7   Ú	hugecountÚ
hugecount2s      r!   Útest_count_overflowÚStructTest.test_count_overflow  sl   € Ø—L‘L¤§¡¨Q¡Ó/ˆ	Ø×Ñœ&Ÿ,™,¬¯©¸ÔCà—_‘_¤S§[¡[°!¡^´S·[±[À!±^ÓDˆ
Ø×Ñœ&Ÿ,™,¬¯©¸ÕDr(   c                 óÀ  • [         R                   " SS5      nU R                  [        R                  [        R                  S5        U R                  [        R                  [        R
                  SS5        U R                  [        R                  [        R                  SUS5        U R                  [        R                  [        R                  SUS5        U R                  [        R                  [        R                  SS5        U R                  [        R                  [        R
                  SS5        U R                  [        R                  [        R                  SUSS5        U R                  [        R                  [        R                  SUS5        U R                  [        R                  [        R                  S	S
5        U R                  [        R                  [        R
                  S	S5        U R                  [        R                  [        R                  S	USS
5        U R                  [        R                  [        R                  S	US5        g )Nr	   rI  Ú12345r(   r   Úc12345rÍ   ó   xÚ14s42zspam and eggss   spam and eggs)rL  rC   r4   rD   r5   rG   rM  rA  )r7   Ústores     r!   Útest_trailing_counterÚ StructTest.test_trailing_counter  sŽ  € Ü—’˜C Ó*ˆð 	×Ñœ&Ÿ,™,¬¯©°WÔ=Ø×Ñœ&Ÿ,™,¬¯©°wÀÔDØ×Ñœ&Ÿ,™,¬×(8Ñ(8¸'À5È!ÔLØ×Ñœ&Ÿ,™,¬×(:Ñ(:¸GÀUÈAÔNð 	×Ñœ&Ÿ,™,¬¯©°X¸sÔCØ×Ñœ&Ÿ,™,¬¯©°xÀÔFØ×Ñœ&Ÿ,™,¬×(8Ñ(8¸(ÀEÈ1Øô	 à×Ñœ&Ÿ,™,¬×(:Ñ(:¸HÀeØô	ð 	×Ñœ&Ÿ,™,¬¯©°W¸oÔNØ×Ñœ&Ÿ,™,¬¯©°wØ*ô	,à×Ñœ&Ÿ,™,¬×(8Ñ(8¸'À5È!Ø)ô	+à×Ñœ&Ÿ,™,¬×(:Ñ(:¸GÀUÈAÕNr(   c                 óR   • [         R                  " S5      nUR                  S5        g )Nr   rA   )r4   r>  r½   ©r7   r&   s     r!   Útest_Struct_reinitializationÚ'StructTest.test_Struct_reinitialization8  s   € ô MŠM˜#ÓˆØ	
‰
4Õr(   c                 óÆ   • [         R                  " S5      nU[        R                  " S5      US-   -  -  n[         R                  " U [        R
                  " U5      U5        g )NÚ2n3PÚP3n0Pr2   )r   Úcalcobjsizer4   rE   Úcheck_sizeofr>  )r7   Ú
format_strÚnumber_of_codesÚ	totalsizes       r!   r  ÚStructTest.check_sizeof?  sJ   € ä×'Ò'¨Ó/ˆ	à”V—_’_ WÓ-°À1Ñ1DÑEÑEˆ	Ü×Ò˜T¤6§=¢=°Ó#<¸iÕHr(   c                 óª  • [          H  nU R                  US5        M     U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS	5        U R                  S
S5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS	5        g )Nr2   Ú	BHILfdspPé	   ÁÒ  BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBiÒ  ÚfdrB   Úxxxxxxxxxxxxxxr   Ú100HÚ187sr}   rg   rr   Ú0c)r   r  )r7   r   s     r!   Útest__sizeof__ÚStructTest.test__sizeof__F  s½   € ç!ˆDØ×Ñ˜d AÖ&ñ "à×Ñ˜+ qÔ)Ø×Ñ˜* dÔ+Ø×Ñ˜$ Ô"Ø×ÑÐ*¨AÔ.Ø×Ñ˜& !Ô$Ø×Ñ˜& !Ô$Ø×Ñ˜% Ô#Ø×Ñ˜$ Ô"Ø×Ñ˜$ Ô"Ø×Ñ˜$ Õ"r(   c                 óz  • SnU R                  [        R                  U5         [        R                  " S[	        S5      SS5        S S S 5        SnU R                  [        R                  U5         [        R
                  " S[	        S5      S5        S S S 5        g ! , (       d  f       N[= f! , (       d  f       g = f)Nzkpack_into requires a buffer of at least 6 bytes for packing 1 bytes at offset 5 \(actual buffer size is 1\)r	   r2   rj  zounpack_from requires a buffer of at least 6 bytes for unpacking 1 bytes at offset 5 \(actual buffer size is 1\))ÚassertRaisesRegexr4   rD   rM  r@  rA  ©r7   Úregex1Úregex2s      r!   Útest_boundary_error_messageÚ&StructTest.test_boundary_error_messageU  s   € ð+ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ò˜S¤)¨A£,°°1Ô5÷ :ð+ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ò˜s¤I¨a£L°!Ô4÷ :Ð9÷ :Õ9ú÷ :Õ9ús   £#BÁ0"B,Â
B)Â,
B:c                 ó®  • [        S5      nU R                  [        R                  S5         [        R                  " SUSS5        S S S 5        U R                  [        R                  S5         [        R                  " SUSS5        S S S 5        U R                  [        R                  S	5         [        R
                  " SUS5        S S S 5        U R                  [        R                  S5         [        R
                  " SUS5        S S S 5        g ! , (       d  f       NÓ= f! , (       d  f       N¢= f! , (       d  f       Nr= f! , (       d  f       g = f)
Nrõ   z%no space to pack 4 bytes at offset -2ú<Iéþÿÿÿé{   z*offset -11 out of range for 10-byte bufferz<Biõÿÿÿz.not enough data to unpack 4 bytes at offset -2)r@  r¡  r4   rD   rM  rA  )r7   Ú	byte_lists     r!   Ú0test_boundary_error_message_with_negative_offsetÚ;StructTest.test_boundary_error_message_with_negative_offsetf  s  € Ü˜b“Mˆ	Ø×#Ñ#Ü—‘Ø8õ:ô ×Ò˜T 9¨b°#Ô6÷:ð
 ×#Ñ#Ü—‘Ø<õ>ô ×Ò˜T 9¨c°3Ô7÷>ð
 ×#Ñ#Ü—‘ØAõCô ×Ò˜t Y°Ô3÷Cð
 ×#Ñ#Ü—‘Ø<õ>ô ×Ò˜t Y°Ô4÷>ð >÷:õ :ú÷
>õ >ú÷
Cõ Cú÷
>õ >ús/   ¬DÁ.D$Â0D5Ã1EÄ
D!Ä$
D2Ä5
EÅ
Ec                 ó¦  • S[        [        R                  S-   5      -   S-   [        [        R                  5      -   S-   nU R                  [        R
                  U5         [        R                  " S[        S5      [        R                  S5        S S S 5        S[        [        R                  S-   5      -   S	-   [        [        R                  5      -   S-   nU R                  [        R
                  U5         [        R                  " S[        S5      [        R                  5        S S S 5        g ! , (       d  f       N¦= f! , (       d  f       g = f)
Nz(pack_into requires a buffer of at least r    z% bytes for packing 4 bytes at offset z \(actual buffer size is 10\)r¨  rõ   r2   z*unpack_from requires a buffer of at least z' bytes for unpacking 4 bytes at offset )	r  rý   rþ   r¡  r4   rD   rM  r@  rA  r¢  s      r!   Ú-test_boundary_error_message_with_large_offsetÚ8StructTest.test_boundary_error_message_with_large_offset|  sÿ   € ð 8¼#¼c¿k¹kÈA¹oÓ:NÑNØ4ñ5Ü7:¼3¿;¹;Ó7GñHà,ñ-ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ò˜T¤9¨R£=´#·+±+¸qÔA÷ :ð :¼CÄÇÁÈaÁÓ<PÑPØ6ñ7Ü9<¼S¿[¹[Ó9IñJà,ñ-ð 	ð
 ×#Ñ#¤F§L¡L°&Õ9Ü×Ò˜t¤Y¨r£]´C·K±KÔ@÷ :Ð9÷ :Õ9ú÷ :Õ9ús   Á 1D1Ã80EÄ1
D?Å
Ec                 óÞ   • U R                  [        5         [        R                  " SS5        S S S 5        U R	                  [        R                  " SS5      S5        g ! , (       d  f       N6= f)Nr	   r   rO   )éa   )rC   rF   r4   rG   r3   r6   s    r!   Útest_issue29802ÚStructTest.test_issue29802Ž  sK   € ð ×ÑœyÕ)ÜMŠM˜#˜qÔ!÷ *ð 	×ÑœŸš s¨DÓ1°:Õ>÷ *Õ)ús   –AÁ
A,c                 ó  • [         R                  " S5      nU R                  UR                  S5        [         R                  " UR                  R	                  5       5      nU R                  UR                  UR                  5        g )Nú=i2H)r4   r>  r3   rW   rË   )r7   r&   Ús2s      r!   Útest_format_attrÚStructTest.test_format_attr—  sW   € ÜMŠM˜&Ó!ˆØ×Ñ˜Ÿ™ 6Ô*ô ]Š]˜1Ÿ8™8Ÿ?™?Ó,Ó-ˆØ×Ñ˜Ÿ™ A§H¡HÕ-r(   c                 óÒ   • Sn[        SU5      u  p#nU R                  US5        U R                  UR                  5       S5        U R                  SU5        U R                  SU5        g )Nzùif 1:
            import struct

            class C:
                def __init__(self):
                    self.pack = struct.pack
                def __del__(self):
                    self.pack('I', -42)

            struct.x = C()
            z-cr   r(   s   Exception ignored in:s	   C.__del__)r   r3   Úrstripr  )r7   r   ÚrcÚstdoutÚstderrs        r!   Ú)test_struct_cleans_up_at_runtime_shutdownÚ4StructTest.test_struct_cleans_up_at_runtime_shutdownŸ  s_   € ð
ˆô .¨d°DÓ9ÑˆFØ×Ñ˜˜QÔØ×Ñ˜Ÿ™›¨#Ô.Ø‰Ð.°Ô7Ø‰l FÕ+r(   c                 óØ   • [         R                  " S5      n[        R                  " U5      nUR	                  S5        A[
        R                  " 5         U R                  U" 5       S5        g )NÚ_structr	   z(_struct module was not garbage collected)r   Úimport_fresh_moduleÚweakrefÚrefrE   ÚgcÚcollectÚassertIsNone)r7   Ú_struct_moduleÚ
module_refs      r!   Ú'test__struct_reference_cycle_cleaned_upÚ2StructTest.test__struct_reference_cycle_cleaned_up±  sU   € ô '×:Ò:¸9ÓEˆÜ—[’[ Ó0ˆ
Ø×Ñ Ô$Øô 	
Š
ŒØ×ÑÙ‹LÐDõ	Fr(   c                 ó8  • [         R                  n[        [         R                  " SS5      5      nX4 H@  nU R	                  US9   U R                  [        5         SUl        S S S 5        S S S 5        MB     g ! , (       d  f       N= f! , (       d  f       Me  = f)Nr	   rƒ  )rC  r2   )r4   r>  ÚtypeÚiter_unpackÚsubTestrC   rF   rÍ   )r7   r>  Úunpack_iteratorrC  s       r!   Útest__struct_types_immutableÚ'StructTest.test__struct_types_immutableÁ  sq   € ô —‘ˆÜœv×1Ò1°#°tÓ<Ó=ˆØÓ,ˆCØ—‘ #Ò&Ø×&Ñ&¤yÕ1ØC”E÷ 2÷ 'Ñ&ò -ç1Õ1ú÷ 'Ö&ús$   ÁB
ÁA9Á$B
Á9
BÂB
Â

B	c                 ó¸   • S HB  nU R                  [        R                  S5         [        R                  " U5        S S S 5        MD     g ! , (       d  f       MV  = f)N)Ú z2 irt   zembedded null character)r¡  r4   rD   rE   r‰  s     r!   Útest_issue35714ÚStructTest.test_issue35714Í  sI   € ã$ˆAØ×'Ñ'¬¯©Ø(AõCä—’ Ô"÷Cñ Cò %÷Cö Cús   ¦A
Á

A	c                 óœ   ^ • U 4S jnS H'  nS H  nU" X#S5        M     S H  nU" X#S5        M     M)     SnU" SUS5        S	nU" SUS5        g )
Nc                 óæ  >• X-   n[         R                  " U5      nU(       a  SUS-  -  S-
  nSnOSUS-  S-
  -  S-
  nSUS-  S-
  -  * nSU SU SU 3n[        S5      US-
  US-   [        S	5      4 HZ  nT
R                  X8S
9   T
R	                  [         R
                  U5         [         R                  " X85        S S S 5        S S S 5        M\     SnSn	T
R                  X9S
9   T
R	                  [         R
                  U5         [         R                  " X95        S S S 5        S S S 5        g ! , (       d  f       Nv= f! , (       d  f       MÚ  = f! , (       d  f       N:= f! , (       d  f       g = f)NrB   r¡   r2   r   Ú'z' format requires z <= number <= gšd~ÅQÊgšd~ÅQJ)r‘  Únumberz#required argument is not an integerr   )r4   rE   rR   rÐ  r¡  rD   r5   )rV   Úint_typeÚis_unsignedÚfmt_strr¬   Úmax_Úmin_Ú	error_msgrÛ  Ú
not_numberr7   s             €r!   Útest_error_msgÚ2StructTest.test_issue98248.<locals>.test_error_msgÖ  sJ  ø€ ØÑ'ˆGÜ—?’? 7Ó+ˆDÞØ˜T A™X‘¨Ñ*Ø‘à˜T A™X¨™\Ñ*¨QÑ.Ø˜d Q™h¨™lÑ+Ð+Ø˜H˜:Ð%7¸°v¸^ÈDÈ6ÐRˆIÜ˜u›: t¨a¡x°¸±¼3¸t»9ÓEØ—\‘\¨W\ÒDØ×/Ñ/´·±¸iÕHÜŸš GÔ4÷ I÷ EÑDñ Fð >ˆIØˆJØ—‘¨ÒDØ×+Ñ+¬F¯L©L¸)ÕDÜ—K’K Ô4÷ E÷ EÐD÷	 IÕHú÷ EÖDú÷ EÕDú÷ EÕDúsH   Â!D?Â'D.Â>D?Ã%!E"ÄEÄE"Ä.
D<Ä8D?Ä?
E	Å
E	ÅE"Å"
E0ú@=<>ÚBHILQTÚbhilqFr   r   r   r%   )r7   rã  rV   rÜ  s   `   r!   Útest_issue98248ÚStructTest.test_issue98248Ô  s`   ø€ õ	5ó( ˆFÛ#Ù˜v°Ö6ñ $ã#Ù˜v°Ö7ó $ñ ð ˆÙs˜H dÔ+àˆÙs˜H eÕ,r(   c                 ó‚   ^ ^•  " S S5      mUU 4S jnS H  nS H  nU" X#-   5        M     M     U" S5        U" S5        g )Nc                   ó   • \ rS rSrS rSrg)Ú:StructTest.test_issue98248_error_propagation.<locals>.Div0iø  c                 ó   • SS-    g )Nr2   r   r%   r6   s    r!   rë   ÚDStructTest.test_issue98248_error_propagation.<locals>.Div0.__index__ù  s	   € ØA“r(   r%   N)rÞ   rß   rà   rá   rë   râ   r%   r(   r!   ÚDiv0rì  ø  s   † õr(   rï  c                 óð   >• TR                  U SS9   TR                  [        5         [        R                  " U T" 5       5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NÚZeroDivisionError)r‘  r  )rÐ  rC   rñ  r4   r5   )rÞ  rï  r7   s    €€r!   Útest_error_propagationÚLStructTest.test_issue98248_error_propagation.<locals>.test_error_propagationü  sR   ø€ Ø—‘¨Ð<OÒPØ×&Ñ&Ô'8Õ9Ü—K’K ©«Ô0÷ :÷ QÐPß9Õ9ú÷ QÕPús"   ’A'¨AÁA'Á
A$	Á A'Á'
A5rå  Ú
BHILQbhilqr   r   r%   )r7   rò  rV   rÜ  rï  s   `   @r!   Ú!test_issue98248_error_propagationÚ,StructTest.test_issue98248_error_propagationö  sE   ù€ ÷	ñ 	ö	1ó
 ˆFÛ(Ù& vÑ'8Ö9ó )ñ ñ 	˜sÔ#Ù˜sÕ#r(   c                 ó†   •  " S S[         R                  5      nU" 5       nU R                  UR                  S5      S5        g )Nc                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )Ú?StructTest.test_struct_subclass_instantiation.<locals>.MyStructi
  c                 ó$   >• [         TU ]  S5        g )Nz>h)r¼   r½   )r7   rÆ   s    €r!   r½   ÚHStructTest.test_struct_subclass_instantiation.<locals>.MyStruct.__init__  s   ø€ Ü‘Ñ  Õ&r(   r%   )rÞ   rß   rà   rá   r½   râ   r	  )rÆ   s   @r!   ÚMyStructrù  
  s   ø† ÷'ó 'r(   rü  i90  s   09)r4   r>  r3   r5   )r7   rü  Ú	my_structs      r!   Ú"test_struct_subclass_instantiationÚ-StructTest.test_struct_subclass_instantiation  s4   € ô	'”v—}‘}ô 	'ñ “Jˆ	Ø×Ñ˜Ÿ™¨Ó.°Õ<r(   c                 ó„   • [         R                  " S5      nU R                  [        U5      SUR                  < S35        g )Nr¶  zStruct(Ú))r4   r>  r3   ÚreprrW   r‰  s     r!   Ú	test_reprÚStructTest.test_repr  s1   € ÜMŠM˜&Ó!ˆØ×Ñœ˜a› G¨A¯H©H©<°qÐ"9Õ:r(   r%   N))rÞ   rß   rà   rá   r8   rL   r`   r   r±   r  r  r&  r3  r7  rE  rS  rY  r_  ry  r~  r†  rŠ  r  r   Úcpython_onlyrž  r¥  r¬  r¯  r³  r¸  r¿  r   rË  rÒ  rÖ  rè  rõ  rþ  r  râ   r%   r(   r!   r/   r/   $   s  † òFò?ò*(ò0:)òx LòDXòt>ò0ò"AòB?ò%ò6 ò8'ò.0ò,7ò\EòOò2òIð ×Ññ#ó ð#ò5ò"5ò,Aò$?ò.ò,ñ$ ÓñFó  ðFð ×Ññó ðò#ð ×Ññ-ó ð-ðB ×Ññ$ó ð$ò"=õ;r(   r/   c                   óB   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)ÚUnpackIteratorTesti  z<
Tests for iterative unpacking (struct.Struct.iter_unpack).
c                 ó  ^ • U 4S jn[         R                  " S5      nUR                  S5      nU" U5        UR                  S5      nU" U5        T R                  [         R                  5         UR                  S5        S S S 5        T R                  [         R                  5         UR                  S5        S S S 5        [         R                  " S5      nT R                  [         R                  5         UR                  S5        S S S 5        T R                  [         R                  5         UR                  S5        S S S 5        g ! , (       d  f       NÐ= f! , (       d  f       N¨= f! , (       d  f       Nj= f! , (       d  f       g = f)	Nc                 ó†   >• TR                  U [        R                  5        TR                  U [        R                  5        g r*   )ÚassertIsInstancer   ÚIteratorÚIterable)Úitr7   s    €r!   Ú_check_iteratorÚ:UnpackIteratorTest.test_construct.<locals>._check_iterator  s+   ø€ Ø×!Ñ! "¤c§l¡lÔ3Ø×!Ñ! "¤c§l¡lÕ3r(   ú>ibcpr(   s   1234567s   123456s   12345678r   s   12)r4   r>  rÏ  rC   rD   )r7   r  r&   r  s   `   r!   Útest_constructÚ!UnpackIteratorTest.test_construct  s  ø€ õ	4ô MŠM˜'Ó"ˆØ]‰]˜3ÓˆÙ˜ÔØ]‰]˜:Ó&ˆÙ˜Ôà×ÑœvŸ|™|Õ,ØM‰M˜)Ô$÷ -à×ÑœvŸ|™|Õ,ØM‰M˜+Ô&÷ -ô MŠM˜#ÓˆØ×ÑœvŸ|™|Õ,ØM‰M˜#Ô÷ -à×ÑœvŸ|™|Õ,ØM‰M˜%Ô ÷ -Ð,÷ -Õ,úç,Õ,ú÷ -Õ,úç,Õ,ús0   Á/EÂ(EÃ7E-Ä0E>Å
EÅ
E*Å-
E;Å>
Fc                 óŒ   • [        [        R                  " S5      R                  S5      5      nU R	                  [
        U5        g )Nr  r(   )rÎ  r4   r>  rÏ  rC   rF   )r7   Úiter_unpack_types     r!   Útest_uninstantiableÚ&UnpackIteratorTest.test_uninstantiable/  s2   € Ü¤§¢¨gÓ 6× BÑ BÀ3Ó GÓHÐØ×Ñœ)Ð%5Õ6r(   c                 óŠ  • [         R                  " S5      n[        [        SS5      5      nUR	                  U5      nU R                  [        U5      S5        U R                  [        U5      S5        U R                  [        U5      S5        U R                  [        [        U5        U R                  [        [        U5        g )Nú>IBr2   é   ©irj  ©i	rõ   )ié   )	r4   r>  r?  rú   rÏ  r3   ÚnextrC   ÚStopIteration©r7   r&   r	   r  s       r!   Útest_iterateÚUnpackIteratorTest.test_iterate3  s   € ÜMŠM˜%Ó ˆÜ”%˜˜2“,ÓˆØ]‰]˜1ÓˆØ×Ñœ˜b› ?Ô3Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ-¬¨rÔ2Ø×Ñœ-¬¨rÕ2r(   c                 óf  • [         R                  " S5      n[        [        SS5      5      nUR	                  [        U5      5      nU R                  [        U5      S5        U R                  [        U5      S5        U R                  [        [        U5        U R                  [        [        U5        g ©Nr  r2   é   r  r  )
r4   r>  r?  rú   rÏ  r\  r3   r  rC   r  r  s       r!   Útest_arbitrary_bufferÚ(UnpackIteratorTest.test_arbitrary_buffer=  s   € ÜMŠM˜%Ó ˆÜ”%˜˜2“,ÓˆØ]‰]œ: a›=Ó)ˆØ×Ñœ˜b› ?Ô3Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ-¬¨rÔ2Ø×Ñœ-¬¨rÕ2r(   c                 ó  • [         R                  n[        R                  " S5      n[	        [        SS5      5      nUR                  U5      nU R                  U" U5      S5        [        U5        U R                  U" U5      S5        [        U5        U R                  U" U5      S5        [        U5        U R                  U" U5      S5        U R                  [        [        U5        U R                  U" U5      S5        g )Nr  r2   r  r<   rB   r   )ÚoperatorÚlength_hintr4   r>  r?  rú   rÏ  r3   r  rC   r  )r7   Úlhr&   r	   r  s        r!   Útest_length_hintÚ#UnpackIteratorTest.test_length_hintF  sÄ   € Ü×!Ñ!ˆÜMŠM˜%Ó ˆÜ”%˜˜2“,ÓˆØ]‰]˜1ÓˆØ×Ñ™˜B› Ô#ÜˆRŒØ×Ñ™˜B› Ô#ÜˆRŒØ×Ñ™˜B› Ô#ÜˆRŒØ×Ñ™˜B› Ô#Ø×Ñœ-¬¨rÔ2Ø×Ñ™˜B› Õ#r(   c           	      ó0  • [         R                  " S[        [        SS5      5      5      nU R	                  [        U5      S5        U R	                  [        U5      S5        U R                  [        [
        U5        U R                  [        [
        U5        g r#  )r4   rÏ  r?  rú   r3   r  rC   r  )r7   r  s     r!   Útest_module_funcÚ#UnpackIteratorTest.test_module_funcU  sl   € ä×Ò ¤u¬U°1°b«\Ó':Ó;ˆØ×Ñœ˜b› ?Ô3Ø×Ñœ˜b›Ð#3Ô4Ø×Ñœ-¬¨rÔ2Ø×Ñœ-¬¨rÕ2r(   c                 óz  • SSSSSSSS[        S	5      4S
[        S5      4S/
nU GHi  u  p#US S S2   nU R                  U[        R                  " SU5      S   5        U R                  U[        R                  " SU5      5        U R                  U[        R                  " SU5      S   5        U R                  U[        R                  " SU5      5        [
        R                  S:X  aT  U R                  U[        R                  " SU5      S   5        U R                  U[        R                  " SU5      5        GM  U R                  U[        R                  " SU5      S   5        U R                  U[        R                  " SU5      5        GMl     / SQnU H…  u  pgU R                  [        R                  " [        R                  " SU5      S   5      5        U R                  [        R                  " [        R                  " SUS S S2   5      S   5      5        M‡     [        R                  " S[        R                  5      nU R                  US   S-  S5        [        R                  " S[        R                  * 5      nU R                  US   S-  S5        / SQn	U	 H,  u  pgnU R                  U[        R                  " Xc5      5        M.     / SQn
U
 H*  u  pcU R                  [        [        R                  Xc5        M,     S/nU H,  u  pgnU R                  U[        R                  " Xc5      5        M.     g )N)s    <r6  )s    Àr   )s   ÿ{g     üï@)s    ç      ?)s    g      p>)ó     g        )s    €g       €s    |z+infs    üz-inf)s   U5g     TÕ?r$   ú<er   ú>eÚlittleÚe))r3  s   ü)r3  s    þ)r3  s   ÿÿ)r3  s   |)r3  s    ~)r3  s   ÿr2   é~   ))r4  s    g     `>)r4  r2  g      `>)r4  r2  g      P>)r4  ó   ÿg     ø?)r4  r8  güÿÿÿÿû?)r4  ó    g     ü?)r4  r9  r1  )r4  s   <g    ð?)r4  ó   < g     ð?)r4  r:  g     ð?)r4  ó   {ÿiàÿ  )r4  r;  iïÿ  )r4  s   €g     `¾)r4  ó   € g      `¾)r4  r<  g      P¾)r4  s   ¼g    ð¿)r4  ó   ¼ g     ð¿)r4  r=  g     ð¿)r4  s   ûÿi ÿÿ))r4  ç     þï@)r4  ç      ð@)r4  çœu ˆ<ä7~)r4  ç     þïÀ)r4  ç      ðÀ)r4  çœu ˆ<ä7þ)r3  r>  )r3  r?  )r3  r@  )r3  rA  )r3  rB  )r3  rC  )r4  s   gÿg  ÿÿÿýŸ@)Úfloatr3   r4   rG   r5   rý   r    r”   r,  ÚisnanÚnanrC   rÌ   )r7   Ú&format_bits_float__cleanRoundtrip_listÚle_bitsrT   Úbe_bitsÚformat_bits__nan_listÚ
formatcodeÚbitsr0  Ú format_bits_float__rounding_listÚ%format_bits_float__roundingError_listÚ+format_bits_float__doubleRoundingError_lists               r!   Útest_half_floatÚ"UnpackIteratorTest.test_half_float]  s³  € ð ØØ"Ø!Ø!ØØØœ% ›-Ð(Øœ% ›-Ð(Ø)ð2
Ð.ô A‰JˆGØ™d ˜d‘mˆGØ×Ñ˜Q¤§¢¨d°GÓ <¸QÑ ?Ô@Ø×Ñ˜W¤f§k¢k°$¸Ó&:Ô;Ø×Ñ˜Q¤§¢¨d°GÓ <¸QÑ ?Ô@Ø×Ñ˜W¤f§k¢k°$¸Ó&:Ô;Ü}‰} Ó(Ø× Ñ  ¤F§M¢M°#°wÓ$?ÀÑ$BÔCØ× Ñ  ¬&¯+ª+°c¸1Ó*=×>à× Ñ  ¤F§M¢M°#°wÓ$?ÀÑ$BÔCØ× Ñ  ¬&¯+ª+°c¸1Ó*=×>ñ Aò!
Ðó !6ÑˆJØO‰OœDŸJšJ¤v§}¢}°T¸4Ó'@ÀÑ'CÓDÔEØO‰OœDŸJšJ¤v§}¢}°T¸4ÁÀ"À¹:Ó'FÀqÑ'IÓJÖKñ !6ô —’˜T¤4§8¡8Ó,ˆØ×Ñ˜ ™ TÑ)¨4Ô0Ü—’˜T¤D§H¡H 9Ó-ˆØ×Ñ˜ ™ TÑ)¨4Ô0ò,
Ð(ó, $DÑˆJ˜aØ×Ñ˜T¤6§;¢;¨zÓ#=Ö>ñ $Dò1
Ð-ó  C‰MˆJØ×Ñœm¬V¯[©[¸*ÖHñ Cð
 7ð7
Ð3ó $OÑˆJ˜aØ×Ñ˜T¤6§;¢;¨zÓ#=Ö>ò $Or(   r%   N)rÞ   rß   rà   rá   Ú__doc__r  r  r   r%  r+  r.  rP  râ   r%   r(   r!   r  r    s+   † ñò!ò*7ò3ò3ò$ò3õf?r(   r  Ú__main__)Úcollectionsr   rL  rÆ  r,  r(  r  r4   rý   rÄ  ri  r   Útest.supportr   r   Útest.support.script_helperr   r    r+   r   r   r"   r'   r-   r  r/   r  rÞ   Úmainr%   r(   r!   Ú<module>rX     s•   ðÝ Û Û 	Û Û Û Û Û 
Û å ß @Ý 7àm‰m˜uÑ$€àJ€Ø(€
à$.ô "òò%ôo;×"Ñ"ô o;ôbn?˜×*Ñ*ô n?ðb ˆzÓØ‡M‚M…Oð r(   