+
    öÙ†j‚  ã                   óŒ  € R t ^ RIt^ RIt^ RIt^ RIt ^ RIt]! 4       tR t	 ! R R]P                  4      t ! R R]P                  4      t]P                  ! ]RJ R4       ! R R	]4      4       t]P                  ! ]RJ R4       ! R
 R]4      4       t]P                  ! ]RJ R4       ! R R]4      4       tR#   ] d    Rt Lªi ; i)zGbytecode_helper - support tools for testing correct bytecode generationNc              #   óæ   "  € T;'       g    \        R4      pV  FQ  pV\        VR4      3x € VP                  ;'       g    R F$  w  r4p\        V4       F  p\        VR4       K  	  K&  	  KS  	  R # 5i)N© )ÚiterÚnextÚ
cache_infoÚrange)ÚinstrsÚco_positionsÚinstrÚ_ÚsizeÚis   &&    Ú3/usr/lib/python3.14/test/support/bytecode_helper.pyÚinstructions_with_positionsr      sk   é € ð
  ×+Ð+¤4¨£8€LÛˆØ”T˜,¨Ó+Ð+Ò+Ø ×+Ñ+×1Ð1¨rÒ1‰JˆA�QÜ˜4–[�Ü�\ 2Ö&ó !ó 2ó ùs   ‚=A1Á 1A1c                   óB   a € ] tR t^t o RtR t]3R lt]3R ltRt	V t
R# )ÚBytecodeTestCasez1Custom assertion methods for inspecting bytecode.c                óz   € \         P                  ! 4       p\        P                  ! WR 7       VP                  4       # ))Úfile)ÚioÚStringIOÚdisÚgetvalue)ÚselfÚcoÚss   && r   Úget_disassembly_as_stringÚ*BytecodeTestCase.get_disassembly_as_string   s%   € Ü�KŠK‹MˆÜ�Š�ÕØ�z‰z‹|Ðó    c                óh  € V P                  V\        P                  4       \        P                  ! V4       F5  pVP                  V8X  g   K  V\
        J g   VP                  V8X  g   K3  Vu # 	  V P                  V4      pV\
        J d   V: RV: 2pMRpWbW53,          pV P                  V4       R# )zAReturns instr if opname is found, otherwise throws AssertionErrorz not found in bytecode:
z!(%s,%r) not found in bytecode:
%sN)	ÚassertInr   ÚopmapÚget_instructionsÚopnameÚ_UNSPECIFIEDÚargvalr   Úfail©r   Úxr"   r$   r
   ÚdisassemblyÚmsgs   &&&&   r   ÚassertInBytecodeÚ!BytecodeTestCase.assertInBytecode"   sŽ   € à�‰�fœcŸi™iÔ(Ü×)Ò)¨!Ö,ˆEØ�|‰|˜vÖ%Øœ\Ó)¨U¯\©\¸VÖ-CØ ’Lñ -ð ×4Ñ4°QÓ7ˆØ”\Ó!Û5;º[ÐI‰Cà6ˆCØ Ð5Õ5ˆCØ�	‰	�#Žr   c                ót  € V P                  V\        P                  4       \        P                  ! V4       F}  pVP                  V8X  g   K  V P                  V4      pV\        J d   V: RV: 2pV P                  V4       KM  VP                  V8X  g   K`  RpWbW53,          pV P                  V4       K  	  R# )z(Throws AssertionError if opname is foundz occurs in bytecode:
z(%s,%r) occurs in bytecode:
%sN)	r   r   r    r!   r"   r   r#   r%   r$   r&   s   &&&&   r   ÚassertNotInBytecodeÚ$BytecodeTestCase.assertNotInBytecode1   s‹   € à�‰�fœcŸi™iÔ(Ü×)Ò)¨!Ö,ˆEØ�|‰|˜vÖ%Ø"×<Ñ<¸QÓ?�Øœ\Ó)Û:@Â+ÐN�CØ—I‘I˜c–NØ—\‘\ VÖ+Ø;�CØ¨Ð =Õ=�CØ—I‘I˜c–Nó -r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r#   r*   r-   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s'   ø‡ € Ù;òð
 2>ô ð 5A÷ #ò #r   r   c                   óú   a € ] tR t^?t o ]! ]P                  4      t]! ]P                  ]P                  ,           ]P                  ,           4      t]P                  ]4      t ! R R4      tR tR tR tR tRtV tR# )	ÚCompilationStepTestCasec                   ó   € ] tR t^EtRtR# )ÚCompilationStepTestCase.Labelr   N)r/   r0   r1   r2   r4   r   r   r   ÚLabelr;   E   s   † Ûr   r<   c                óX  € V P                  V\        4       VP                  4       pV P                  V4      P                  4       pV P	                  \        V4      \        V4      4       \        W24       F¬  w  rE\        V\        4      '       d   V P	                  WT4       K.  V P                  V\        4       V P                  V\        4       \        \        V4       Uu. uF  qf^,          R8w  g   K  V^ ,          NK  	  up4      pV P	                  VRV VRV 4       K®  	  R# u upi )é   Néÿÿÿÿ)ÚassertIsInstanceÚlistr!   Úseq_from_instsÚassertEqualÚlenÚzipÚ
isinstanceÚintÚtupleÚmaxÚ	enumerate)r   Ú
actual_seqÚexpectedÚactualÚactÚexpÚpÚidxs   &&&     r   ÚassertInstructionsMatchÚ/CompilationStepTestCase.assertInstructionsMatchH   só   € ð
 	×Ñ˜h¬Ô-Ø×,Ñ,Ó.ˆØ×&Ñ& xÓ0×AÑAÓCˆØ×Ñœ˜V›¤c¨(£mÔ4ô ˜FÖ-‰HˆCÜ˜#œs×#Ò#Ø× Ñ  Ô*ÙØ×!Ñ! #¤uÔ-Ø×!Ñ! #¤uÔ-Ü¤Y¨s¤^ÓB¡^ ¸µt¸r±z”t�q˜—t�t¡^ÑBÓCˆCØ×Ñ˜S  #˜Y¨¨D¨S¨	Ö2ó .ùò Cs   Ã!D'
Ã5D'
c                óà   € ^ p. pV Fc  p\        W@P                  \        34      '       g   Q h\        W@P                  4      '       d	   W$n        KI  V^,          pVP	                  V4       Ke  	  V# ©é    )rF   r<   rH   ÚvalueÚappend)r   ÚinstsrQ   ÚresÚitems   &&   r   ÚresolveAndRemoveLabelsÚ.CompilationStepTestCase.resolveAndRemoveLabels\   s`   € ØˆØˆÛˆDÜ˜d§Z¡Z´Ð$7×8Ò8Ð8Ð8Ü˜$§
¡
×+Ò+Ø –
à�q•�Ø—
‘
˜4Ö ñ ð ˆ
r   c                ó˜  € V Uu0 uF"  p\        W P                  4      '       g   K   VkK$  	  pp\        V4       F  w  rEWEn        K  	  \        P
                  ! 4       pV Fá  p\        W P                  4      '       d   VP                  VP                  4       K;  V^ ,          p\        V\        4      '       d   \        P                  V,          pVR,          vr‰\        W€P                  4      '       d   VP                  pV	R.^\        V	4      ,
          ,          ,           p	VP                  ! Yx;'       g    ^ .V	O5!   Kã  	  V# u upi )rV   :r>   NNr?   )rF   r<   rJ   rW   Ú_testinternalcapiÚnew_instruction_sequenceÚ	use_labelÚstrÚopcoder    rD   Úaddop)
r   rY   r[   Úlabelsr   ÚlblÚseqÚopÚargÚlocs
   &&        r   rB   Ú&CompilationStepTestCase.seq_from_instsi   sö   € Ù#(ÓI¡5˜4¬J°t¿Z¹Z×,H—$�$¡5ˆÐIÜ Ö'‰FˆAØŽIñ (ô  ×8Ò8Ó:ˆÛˆDÜ˜$§
¡
×+Ò+Ø—‘˜dŸj™jÖ)à˜!•W�Ü˜b¤#×&Ò&ÜŸ™ bÕ)�BØ  �H�	�Ü˜c§:¡:×.Ò.ØŸ)™)�CØ˜R˜D A¬¨C«¥LÕ1Õ1�Ø—	’	˜"Ÿh˜h QÐ-¨Ö-ñ ð ˆ
ùò# Js
   …E§Ec           	     óÀ  € V F×  p\        W P                  4      '       d   K   Vvr4p\        V\        4      '       d   \        P                  V,          pV P                  V\        P                  9   VR JR\        P                  V,          : RV: 24       T P                  \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      4       KÙ  	  R # )Nzopcode.opname[op]=z arg=c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5i©N)rF   rG   )Ú.0Úls   & r   Ú	<genexpr>Ú=CompilationStepTestCase.check_instructions.<locals>.<genexpr>‡   s   é € Ð@¹C°q¤
¨1¬c× 2Ð 2»Cùs   ‚FT)
rF   r<   rb   rc   r    rC   Úhasargr"   Ú
assertTrueÚall)r   rY   Úinstrh   ri   rj   s   &&    r   Úcheck_instructionsÚ*CompilationStepTestCase.check_instructions}   s¥   € ÛˆDÜ˜$§
¡
×+Ò+ÙØ ˆMˆB�cÜ˜"œc×"Ò"Ü—\‘\ "Õ%�Ø×Ñ˜R¤6§=¡=Ñ0Ø ¨˜_Ø 2¤§¡¨bÕ 1Ñ3°6°S±FÐ;ô=ð �O‰OŸC›CÑ@¹CÓ@ŸCŸCšCÑ@¹CÓ@Ó@ÖAó r   r   N)r/   r0   r1   r2   Úsetr   rs   ÚHAS_ARGÚhasjrelÚhasjabsÚhasexcÚ
HAS_TARGETÚunionÚHAS_ARG_OR_TARGETr<   rR   r\   rB   rw   r4   r5   r6   s   @r   r9   r9   ?   sf   ø‡ € á�#—*‘*‹o€GÙ�S—[‘[ 3§;¡;Õ.°·±Õ;Ó<€JØŸ™ jÓ1Ð÷ñ ò3ò(ò÷(
Bð 
Br   r9   zrequires _testinternalcapic                   ó&   a € ] tR t^Št o R tRtV tR# )ÚCodegenTestCasec                ó:   € \         P                  ! VR ^ 4      w  r#V# )z
my_file.py)r_   Úcompiler_codegen)r   ÚastrY   r   s   &&  r   Úgenerate_codeÚCodegenTestCase.generate_code�   s   € Ü$×5Ò5°c¸<ÈÓK‰ˆØˆr   r   N)r/   r0   r1   r2   r†   r4   r5   r6   s   @r   r‚   r‚   Š   s   ø‡ € ÷ð r   r‚   c                   ó*   a € ] tR t^’t o RR ltRtV tR# )ÚCfgOptimizationTestCasec                ó6   € \         P                  ! WV4      pWB3# rn   )r_   Úoptimize_cfg)r   rg   ÚconstsÚnlocalsrY   s   &&&& r   Úget_optimizedÚ%CfgOptimizationTestCase.get_optimized•   s   € Ü!×.Ò.¨s¸GÓDˆØˆ}Ðr   r   NrU   )r/   r0   r1   r2   rŽ   r4   r5   r6   s   @r   r‰   r‰   ’   s   ø‡ € ÷ò r   r‰   c                   ó&   a € ] tR t^™t o R tRtV tR# )ÚAssemblerTestCasec                ó4   € \         P                  ! WV4      pV# rn   )r_   Úassemble_code_object)r   ÚfilenamerY   Úmetadatar   s   &&&& r   Úget_code_objectÚ!AssemblerTestCase.get_code_objectœ   s   € Ü×3Ò3°HÀXÓNˆØˆ	r   r   N)r/   r0   r1   r2   r–   r4   r5   r6   s   @r   r‘   r‘   ™   s   ø‡ € ÷ð r   r‘   )r3   Úunittestr   r   rc   r_   ÚImportErrorÚobjectr#   r   ÚTestCaser   r9   ÚskipIfr‚   r‰   r‘   r   r   r   Ú<module>r�      sù   ðÙ Mã Û 
Û 	Û ðÛñ ‹x€ò
'ô##�x×(Ñ(ô ##ôJHB˜h×/Ñ/ô HBðV 
‡‚Ð" dÐ*Ð,HÓIôÐ-ó ó Jðð 
‡‚Ð" dÐ*Ð,HÓIôÐ5ó ó Jðð 
‡‚Ð" dÐ*Ð,HÓIôÐ/ó ó Jòøðc ô ØÒðús   ”B7 Â7	CÃC