grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026ó Çœg�(Qã ó •SrSSKrSSKrSSKrSSKrSSK7 SSKJrJrJ r J r J r J r J r Jr SSKJr /SQ\-rC\R"\R$\R&\\\4r\Sr\SrS r\S r\S r\S r\S r\Sr \Sr!\Sr"\Sr#\Sr$\Sr%\Sr&\Sr'\Sr(\Sr)\Sr*\Sr+\,"\-5r.\/"\5r0\Rb"5Hur2r3\2\.\3'\3\0\2'M \ Rb"5VVVs0sHupUHo"U_M M snnnr4Sr5SuSSSSSS.Sjjr6SuSSSSS.Sjjr7S S!S"S#S$S%S&S'S(S)S*. r8S+r9"S,S-5r:\:"5r;S.rS1r?S2r@SS3.S4jrA\R„"S5/S6QS/S7-S89rC\R„"S9/S:Q/S;QS89rDS<\DRZlS=\DR lS>\DRŠlS?\DRŒlS@\DRŽlSA\DR�lSB\DR’lSC\DR”lSD\DR–lSE\DR˜lSF\DRšlSG\DRœl\R„"SHSI5rO"SJSK\O5rPSLrQSMrRSNrSSOrT"SPSQ\D5rU"SRSS5rV"STSU5rWSSSSV.SWjrXSXrYSYrZSZr[S[r\S\r]S]r^SvS^jr_SwSSSSS.S_jjr`SSSSSS.S`jraSxSbjrbScrcSdrdSySSaSSSSSe.SfjjreSwSgjrfShrg\`rhSiriSj\iSk- -rjSlrkSmrlSnrmSornSpro"SqSr5rpSuSsjrq\rSt:Xa\q"5 ggs snnnf)zz0Disassembler of Python byte code into mnemonics.éN)Ú*)Ú__all__Ú _cache_formatÚ_inline_cache_entriesÚ_nb_opsÚ_intrinsic_1_descsÚ_intrinsic_2_descsÚ_specializationsÚ_specialized_opmap)Ú get_executor) Ú code_infoÚdisÚ disassembleÚdistbÚdiscoÚfindlinestartsÚ findlabelsÚ show_codeÚget_instructionsÚ InstructionÚBytecodeÚ CONVERT_VALUEÚSET_FUNCTION_ATTRIBUTE)ÚdefaultsÚ kwdefaultsÚ annotationsÚclosureÚENTER_EXECUTORÚ LOAD_CONSTÚ RETURN_CONSTÚ LOAD_GLOBALÚ BINARY_OPÚ JUMP_BACKWARDÚFOR_ITERÚSENDÚ LOAD_ATTRÚLOAD_SUPER_ATTRÚCALL_INTRINSIC_1ÚCALL_INTRINSIC_2ÚLOAD_FAST_LOAD_FASTÚSTORE_FAST_LOAD_FASTÚSTORE_FAST_STORE_FASTÚCACHEcóT•[XS5$![a Of=f[XS5$)zÆAttempts to compile the given source, first as an expression and then as a statement if the first approach fails. Utility function to accept strings in functions that otherwise expect code objects ÚevalÚexec)ÚcompileÚ SyntaxError)ÚsourceÚnames Ú*/opt/alt/python313/lib64/python3.13/dis.pyÚ _try_compiler6As3€ð Ü�v VÓ,Ð,øÜ ó Ù ð úä �6 Ó (Ð(s ‚ Ž šF©ÚfileÚdepthÚ show_cachesÚadaptiveÚ show_offsetsc ój•Uc [XUUS9 g[US5(a URn[US5(a URnOY[US5(a URnO;[US5(a UR nO[US5(a UR n[US5(ah[URR55nUH>upx[U[5(dM[S U-US 9 [X�X#XES 9 [US 9 M@ g[US 5(a [XX#XES 9 g[U[ ["45(a|[%U5n S['[)['U 555-n [+UU(a*['[)[-['U5S- S555OSU US9n [/U S9n [1X U S9 g[U[(5(a [3XX#XES 9 g[S[5U5R6-5e![an [S X‘S 9 Sn A GNSn A ff=f)aDisassemble classes, methods, functions, and other compiled objects. With no argument, disassemble the last traceback. Compiled objects currently include generator objects, async generator objects, and coroutine objects, all of which store their code object in a special attribute. N©r8r:r;r<Ú__func__Ú__code__Úgi_codeÚag_codeÚcr_codeÚ__dict__zDisassembly of %s:©r8r7zSorry:Úco_codeééé'r)r8Ú offset_widthÚ label_widthr:)Ú labels_map)Ú arg_resolverÚ formatterú(don't know how to disassemble %s objects)rÚhasattrr?r@rArBrCÚsortedrDÚitemsÚ isinstanceÚ _have_codeÚprintrÚ TypeErrorÚ_disassemble_recursiveÚbytesÚ bytearrayÚ_make_labels_mapÚlenÚstrÚ FormatterÚmaxÚ ArgResolverÚ_disassemble_bytesÚ_disassemble_strÚtypeÚ__name__)Úxr8r9r:r;r<rRr4Úx1ÚmsgrLrKrNrMs r5rrNsé€ð �yÜ �4¸8Ø'ò )àäˆq�*×ÑØ �J‰Jˆäˆq�*×ÑØ �J‰J‰Ü ��I× Ñ Ø �I‰I‰Ü ��I× Ñ Ø �I‰I‰Ü ��I× Ñ Ø �I‰Iˆäˆq�*×ÑÜ�q—z‘z×'Ñ'Ó)Ó*ˆÛ‰HˆDܘ"œj×)Ó)ÜÐ*¨TÑ1¸Ò=ð4ܘ¨UÐV^Òzô˜4Ô òô ��I× Ñ Ü˜q°5Ð\dó AÜ �AœœyÐ)× *Ñ *Ü% aÓ(ˆ Øœ#œc¤# j£/Ó2Ó3Ñ3ˆ Ü 4ÞNZ¬3¬s´3´s¸1³vÀ±zÀ4Ó3HÓ/IÔ+JÐ`aØ*5Ø*5ñ7ˆ ô#¨jÑ9ˆ ܘ1À9ÓMÜ �A”s× Ñ Ü˜¨UÐV^ÓzäÐBܘQ›×(Ñ(ñ)ó*ð *øô#!ó4ܘ( C×3Ð3ûð4úsÄ HÈ H2È H-È-H2r>c ót•Ucq[[S5(a[RRnO[RnUR(aURoR(aM[URRURXX4S9 g![ a [ S5Sef=f)z2Disassemble a traceback (default: last traceback).NÚlast_excz no last traceback to disassembler>) rPÚsysrhÚ __traceback__Úlast_tracebackÚAttributeErrorÚ RuntimeErrorÚtb_nextrÚtb_frameÚf_codeÚtb_lasti)Útbr8r:r;r<s r5rr„sŒ€à �zð MÜ”s˜J×'Ñ'Ü—\‘\×/Ñ/‘ä×'Ñ'‘ð�j�j˜rŸz™z˜"�j�j‰jÜ�— ‘ ×"Ñ" B§K¡K°dÐ^fóCøôó MÜÐAÓBÈÐ Lð Mús…/B µB  B7Ú OPTIMIZEDÚ NEWLOCALSÚVARARGSÚ VARKEYWORDSÚNESTEDÚ GENERATORÚNOFREEÚ COROUTINEÚITERABLE_COROUTINEÚASYNC_GENERATOR) érHrGééé é@é€éic ó•/n[S5HNnSU-nX-(dMUR[RU[ U555 X-nU(aMN O UR[ U55 SR U5$)z+Return pretty representation of code flags.r€r}ú, )ÚrangeÚappendÚCOMPILER_FLAG_NAMESÚgetÚhexÚjoin)ÚflagsÚnamesÚiÚflags r5Ú pretty_flagsr�¡ss€à €EÜ �2ŽYˆØ�!‰tˆØ �<‰<Ø �L‰LÔ,×0Ñ0°´s¸4³yÓAÔ BØ ‰MˆEß�5Ùñ ð � ‰ ”S˜“ZÔ Ø �9‰9�UÓ Ðócó•\rSrSrSrSrg)Ú_Unknowné¯có•g)Nz ©©Úselfs r5Ú__repr__Ú_Unknown.__repr__°s€Ør‘r–N)rcÚ __module__Ú __qualname__Ú__firstlineno__r™Ú__static_attributes__r–r‘r5r“r“¯s†õr‘r“cóÔ•[US5(a URn[US5(a URnOY[US5(a URnO;[US5(a URnO[US5(a UR n[ U[5(a [US5n[US5(aU$[S[U5R-5e) zDHelper to handle methods, compiled or raw code objects, and strings.r?r@rArBrCz rFrO) rPr?r@rArBrCrSr\r6rVrbrc©rds r5Ú_get_code_objectr¡¶s¿€ôˆq�*×ÑØ �J‰Jˆäˆq�*×ÑØ �J‰J‰Ü ��I× Ñ Ø �I‰I‰Ü ��I× Ñ Ø �I‰I‰Ü ��I× Ñ Ø �I‰Iˆä�!”S×ÑÜ ˜˜OÓ ,ˆäˆq�)×ÑØˆÜ Ð>ܘ“G×$Ñ$ñ%ó &ð&r‘cóL•[UnU[;a[[U$U$©N)Ú _all_opnameÚdeoptmapÚ _all_opmap)Úopr4s r5Ú_deoptopr¨Ís&€Ü �r‰?€DØ)-´Ó)9Œ:”h˜t‘nÑ %ÐA¸rÐAr‘cóò•U(aÍURn/nSn[S[U5S5H‰nX%X%S-pvU[:Xa4[ X5nU(a!UR5UR5pvSnURUR55 URUR55 M‹ U(dU$SRU5$UR$![ [ 4a SnN¤f=f)NFrrHr}Tr‘) Ú_co_code_adaptiver†r[rr Ú ValueErrorrmÚ get_opcodeÚ get_opargr‡Úto_bytesr‹rF) Úcor;ÚcodeÚresÚfoundrŽr§ÚargÚexs r5Ú_get_code_arrayrµÑsÔ€ÞØ×#Ñ#ˆØˆØˆÜ�qœ#˜d›) QÖ'ˆAØ‘g˜t a¡C™y�Ø”^Ó#ðÜ% bÓ,�BöØ Ÿm™m›o¨r¯|©|«~˜Ø �Eà �J‰J�r—{‘{“}Ô %Ø �J‰J�s—|‘|“~Ö &ñ(ö!ˆtÐ3 c§h¡h¨s£mÐ3à�z‰zÐøô#¤LÐ1óØ’BðúsÁ C!Ã!C6Ã5C6có*•[[U55$)z1Formatted details of methods, functions, or code.)Ú_format_code_infor¡r s r5r r ès€ä Ô-¨aÓ0Ó 1Ð1r‘cóN•/nURSUR-5 URSUR-5 URSUR-5 URSUR-5 URSUR -5 URSUR -5 URSUR-5 URS[UR5-5 UR(aAURS 5 [UR5HnURS U-5 M UR(aAURS 5 [UR5HnURS U-5 M UR(aAURS 5 [UR5HnURS U-5 M UR(aAURS5 [UR5HnURS U-5 M UR(aAURS5 [UR5HnURS U-5 M SR!U5$)NzName: %szFilename: %szArgument count: %szPositional-only arguments: %szKw-only arguments: %szNumber of locals: %szStack size: %szFlags: %sz Constants:z%4d: %rzNames:z%4d: %szVariable names:zFree variables:zCell variables:Ú )r‡Úco_nameÚ co_filenameÚ co_argcountÚco_posonlyargcountÚco_kwonlyargcountÚ co_nlocalsÚ co_stacksizer�Úco_flagsÚ co_constsÚ enumerateÚco_namesÚ co_varnamesÚ co_freevarsÚ co_cellvarsr‹)r¯ÚlinesÚi_cÚi_ns r5r·r·ìsà€Ø €EØ ‡L�LÐ(¨2¯:©:Ñ5Ô6Ø ‡L�LÐ(¨2¯>©>Ñ9Ô:Ø ‡L�LÐ(¨2¯>©>Ñ9Ô:Ø ‡L�LÐ0°2×3HÑ3HÑHÔIØ ‡L�LÐ(¨2×+?Ñ+?Ñ?Ô@Ø ‡L�LÐ(¨2¯=©=Ñ8Ô9Ø ‡L�LÐ(¨2¯?©?Ñ:Ô;Ø ‡L�LÐ(¬<¸¿ ¹ Ó+DÑDÔEØ ‡|‡|Ø � ‰ �\Ô"ܘRŸ\™\Ö*ˆCØ �L‰L˜ S™Ö )ñ+à ‡{‡{Ø � ‰ �XÔܘRŸ[™[Ö)ˆCØ �L‰L˜ S™Ö )ñ*à ‡~‡~Ø � ‰ Ð&Ô'ܘRŸ^™^Ö,ˆCØ �L‰L˜ S™Ö )ñ-à ‡~‡~Ø � ‰ Ð&Ô'ܘRŸ^™^Ö,ˆCØ �L‰L˜ S™Ö )ñ-à ‡~‡~Ø � ‰ Ð&Ô'ܘRŸ^™^Ö,ˆCØ �L‰L˜ S™Ö )ñ-à �9‰9�UÓ Ðr‘rEcó*•[[U5US9 g)zuPrint details of methods, functions, or code to *file*. If *file* is not provided, the output is printed on stdout. rEN)rUr )r¯r8s r5rr s€ô  Œ)�B‹-˜dÓ#r‘Ú Positions)ÚlinenoÚ end_linenoÚ col_offsetÚend_col_offsetrG)rÚ _Instruction) ÚopnameÚopcoder³ÚargvalÚargreprÚoffsetÚ start_offsetÚ starts_lineÚ line_numberÚlabelÚ positionsÚ cache_info)NNNz!Human readable name for operationzNumeric code for operationz6Numeric argument to operation (if any), otherwise Nonez4Resolved arg value (if known), otherwise same as argz0Human readable description of operation argumentz1Start index of operation within bytecode sequencez|Start index of operation within bytecode sequence, including extended args if present; otherwise equal to Instruction.offsetz9True if this opcode starts a source line, otherwise FalsezGsource line number associated with this opcode (if any), otherwise NonezFA label (int > 0) if this instruction is a jump target, otherwise NonezPdis.Positions object holding the span of source code covered by this instructionzGlist of (name, size, data), one for each cache entry of the instructionÚ_ExceptionTableEntryBasezstart end target depth lasticó•\rSrSrSrg)Ú_ExceptionTableEntryiDr–N)rcr›rœr�ržr–r‘r5rßrßDs†Úr‘rßéécó0•[R"US5$©Nr)rr‰©rÒs r5Ú_get_cache_sizeråJs€Ü × $Ò $ V¨QÓ /Ð/r‘cóÊ•[U5n[[U5nU[;a([ U5(aU*nUS-US--nUSU-- nU$U[ ;aUS-nU$SnU$)zcGets the bytecode offset of the jump target if this is a jump instruction. Otherwise return None. rHN)r¨rår¤ÚhasjrelÚ_is_backward_jumpÚhasjabs)r§r³rÖÚdeopÚcachesÚtargets r5Ú_get_jump_targetríMs�€ô �B‹<€DÜ œ[¨Ñ.Ó /€FØ ŒwƒÜ ˜T× "Ñ "Ø�$ˆCؘ!‘˜c !™eÑ#ˆØ�!�f‘*шð €Mð ”‹Ø�Q‘ˆð €MðˆØ €Mr‘cóŽ•\rSrSrSr\S5r\S5r\S5r\S5r \S5r \S5r \S 5r S r S rg ) ri_añDetails for a bytecode operation. Defined fields: opname - human readable name for operation opcode - numeric code for operation arg - numeric argument to operation (if any), otherwise None argval - resolved arg value (if known), otherwise same as arg argrepr - human readable description of operation argument offset - start index of operation within bytecode sequence start_offset - start index of operation within bytecode sequence including extended args if present; otherwise equal to Instruction.offset starts_line - True if this opcode starts a source line, otherwise False line_number - source line number associated with this opcode (if any), otherwise None label - A label if this instruction is a jump target, otherwise None positions - Optional dis.Positions object holding the span of source code covered by this instruction cache_info - information about the format and content of the instruction's cache entries (if any) có•UR$)zAlias for Instruction.arg.)r³r—s r5ÚopargÚInstruction.opargts €ð�x‰xˆr‘có,•[UR5$)ziNumeric code for the base operation if operation is specialized. Otherwise equal to Instruction.opcode. )r¨rÓr—s r5Ú baseopcodeÚInstruction.baseopcodeys€ô ˜Ÿ ™ Ó$Ð$r‘có(•[UR$)zpHuman readable name for the base operation if operation is specialized. Otherwise equal to Instruction.opname. )rÒrór—s r5Ú baseopnameÚInstruction.baseopname�s€ô �d—o‘oÑ&Ð&r‘có •URS-$)z9Start index of the cache entries following the operation.rH)rÖr—s r5Ú cache_offsetÚInstruction.cache_offset‰s€ð�{‰{˜Q‰Ðr‘cóZ•UR[[UR5S--$)z7End index of the cache entries following the operation.rH)rùrår¤rÓr—s r5Ú end_offsetÚInstruction.end_offsetŽs(€ð× Ñ ¤?´;¸t¿{¹{Ñ3KÓ#LÈQÑ#NÑNÐNr‘cóX•[URURUR5$)zWBytecode index of the jump target if this is a jump operation. Otherwise return None. )rírÓr³rÖr—s r5Ú jump_targetÚInstruction.jump_target“s€ô   § ¡ ¨T¯X©X°t·{±{ÓCÐCr‘có•URSL$)z1True if other code jumps to here, otherwise FalseN)rÚr—s r5Úis_jump_targetÚInstruction.is_jump_target›s€ð�z‰z Ð%Ð%r‘có‚•[R"5n[US9nURUS5 UR 5$)NrEF)ÚioÚStringIOr]Úprint_instructionÚgetvalue)r˜ÚoutputrNs r5Ú__str__ÚInstruction.__str__ s4€Ü—’“ˆÜ 6Ñ*ˆ Ø×#Ñ# D¨%Ô0Ø�‰Ó Ð r‘r–N)rcr›rœr�Ú__doc__Úpropertyrðrórörùrürÿrr ržr–r‘r5rr_sœ†ñð(ñóððñ%óð%ðñ'óð'ðñóððñOóðOðñDóðDðñ&óð&õ!r‘rcó8•\rSrSrSSjrS SjrSrSrSrg) r]i§Ncó@•XlX lX0lX@lX`lg)a-Create a Formatter *file* where to write the output *lineno_width* sets the width of the line number field (0 omits it) *offset_width* sets the width of the instruction offset field *label_width* sets the width of the label field *show_caches* is a boolean indicating whether to display cache lines N©r8Ú lineno_widthrJrKr:)r˜r8rrJrKÚ line_offsetr:s r5Ú__init__ÚFormatter.__init__©s!€ðŒ Ø(ÔØ(ÔØ&ÔØ&Õr‘có¨•URX5 UR(a°UR(ažURnURH�upEn[ U5HlnUS- nUS:Xa*US[ R U[R53nOSnUR[S[SSXƒUSSSUR5 S5 Mn Mƒ ggg)NrHrz: Úr-F) Úprint_instruction_liner:rÜrÖr†ÚintÚ from_bytesriÚ byteorderrr-rÛ) r˜ÚinstrÚmark_as_currentrÖr4ÚsizeÚdatarŽrÕs r5rÚFormatter.print_instructionºs¿€Ø ×#Ñ# EÔ;Ø × ×  × 0× 0Ø—\‘\ˆFØ$)×$4Ô$4Ñ �˜Dܘtž�Aؘa‘K�Fð˜A“vØ%) F¨"¬S¯^©^¸DÄ#Ç-Á-Ó-PÐ,QÐ"R™à"$˜Ø×/Ñ/Ü# G¬U°A°t¸WÈfØ$)¨4°°u·±óHàöó%ò%5ð!1Ð r‘có4•URnURnURnUS:„=(a" UR=(a URS:„nU(a[ UR S9 /nU(amUR(aHURbSOSnXƒ-nURc[O URn URX‰-5 OURSU-5 URb'SURS3n URU S U35 OURSU-5 US:”a+UR[UR5S U3S 35 U(aURS 5 OURS 5 URURR[55 URb§[UR5n [!S[#UR5[- 5n UR[UR5R%[&U - 55 UR((a!URS UR(-S-5 [ SR+U5R-5UR S9 g)z?Format instruction details for inclusion in disassembly output.rrENz%%%ddz%%%dsÚ ÚLÚ:Ú>z z-->z Ú(Ú))rrJrKrØrÖrUr8rÙÚ _NO_LINENOr‡rÚÚreprrÒÚljustÚ _OPNAME_WIDTHr³r^r[ÚrjustÚ _OPARG_WIDTHrÕr‹Úrstrip) r˜rrrrJrKÚnew_source_lineÚfieldsÚ lineno_fmtrÍÚlblr³Ú opname_excesss r5rÚ Formatter.print_instruction_lineÌs€à×(Ñ(ˆ Ø×(Ñ(ˆ Ø×&Ñ&ˆ à'¨!Ñ+÷,Ø ×,Ñ,÷,à Ÿ<™<¨!Ñ+ð ö Ü �t—y‘yÒ !àˆæ Ø× × Ø(-×(9Ñ(9Ñ(E™WÈ7� Ø'Ñ6� Ø',×'8Ñ'8Ñ'@�Àe×FWÑFW�Ø— ‘ ˜jÑ1Õ2à— ‘ ˜c LÑ0Ô1à �;‰;Ñ "Ø�e—k‘k�] !Ð$ˆCØ �M‰M˜S  ; - Ð0Õ 2à �M‰M˜#  Ñ+Ô ,à ˜!Ó Ø �M‰MœT %§,¡,Ó/°°,°Ð/?Ð@ÀÐCÔ Dæ Ø �M‰M˜%Õ à �M‰M˜%Ô à� ‰ �e—l‘l×(Ñ(¬Ó7Ô8à �9‰9Ñ Ü�u—y‘y“/ˆCô  ¤3 u§|¡|Ó#4´}Ñ#DÓEˆMØ �M‰Mœ$˜uŸy™y›/×/Ñ/´ ¸}Ñ0LÓMÔ Nà�}�}Ø— ‘ ˜c E§M¡MÑ1°CÑ7Ô8Ü ˆc�h‰h�vÓ×%Ñ%Ó'¨d¯i©iÓ8r‘c ó •URnU(ap[SUS9 UH_nUR(aSOSnURnURnUR n[SUSUSUSUR S U3 US9 Ma gg) NzExceptionTable:rEz lastirz Lz to Lz -> Lz [Ú])r8rUÚlastiÚ start_labelÚ end_labelÚ target_labelr9)r˜Úexception_entriesr8Úentryr6ÚstartÚendrìs r5Úprint_exception_tableÚFormatter.print_exception_tableÿs‚€Ø�y‰yˆÞ Ü Ð#¨$Ò /Û*�Ø$)§K§K™°R�Ø×)Ñ)�Ø—o‘o�Ø×+Ñ+�ܘ˜E˜7 %¨ u¨E°&°¸¸E¿K¹K¸=ÈÈ%ÈÐQÐX\Ô]ò +ð r‘)r8rKrrJr:)NrrrrF)F) rcr›rœr�rrrr>ržr–r‘r5r]r]§s†àNOØ27ô'ô"ò$19õf ^r‘r]có0•\rSrSrSSjrSrSrSrSrg) r_i NcóH•XlX lX0lU=(d 0Ulgr£©rÂr�Úvarname_from_opargrL)r˜rÂr�rCrLs r5rÚArgResolver.__init__ s€Ø"ŒØŒ Ø"4ÔØ$×*¨ˆ�r‘cóÄ•[U5nU[;aUS-$U[;a<[U5(aU*OUnUS-US--n[ [ U5nUSU-- nU$g©NrH)r¨rérçrèrår¤)r˜r§r³rÖrêÚ signed_argrÔrës r5Úoffset_from_jump_argÚ ArgResolver.offset_from_jump_argsl€Ü˜‹|ˆØ ”7‹?ؘ‘7ˆNØ ”W‹_Ü!2°4×!8Ñ!8˜#™¸cˆJؘa‘Z *¨Q¡,Ñ.ˆFÜ$¤[°Ñ%6Ó7ˆFØ �a˜&‘jÑ ˆF؈MØr‘có:•URRUS5$r£)rLr‰)r˜rÖs r5Úget_label_for_offsetÚ ArgResolver.get_label_for_offsets€Ø�‰×"Ñ" 6¨4Ó0Ð0r‘có^^•URcSOURRnSnSn[U5nTGbrTnU[;a[ UTUR 5upVXV4$U[ ;a®U[:Xa*[TS-U5upVTS-(a U(aUS3nXV4$U[:Xa*[TS-U5upVTS-(a U(aUS3nXV4$U[:Xa*[TS-U5upVTS-(a U(aUS3nXV4$[TU5upVXV4$U[;d U[;a,URUTU5nURU5nSU3nXV4$U[[ ["4;aFTS- n TS-n [X�R$5up¼[X R$5upÞU S -U-nX½4nXV4$U[&;d U[(;a[TUR$5upVXV4$U[*;a![,TS - nUnTS -(aS US 3nXV4$U[.:XaS[0[2[44TnSTnXV4$U[6:Xa+S R9U4Sj[;[<555nXV4$U[>:Xa[@TupöXV4$U[B:Xa [DTnXV4$U[F:Xa [HTnXV4$)NrrHr}z + NULLz + NULL|selfrGzto Lér…rárzbool(r&)rr\r(Úasciic3óJ># •UHupTSU--(dMUv• M g7f)r}Nr–)Ú.0rŽÚsr³s €r5Ú Ú1ArgResolver.get_argval_argrepr..Ts'øé€ð$5Ò2P©$¨!Ø'*¨a°©d¥|÷%&¡AÒ2Pùsƒ#š #)%r�Ú __getitem__r¨ÚhasconstÚ_get_const_inforÂÚhasnamer!Ú_get_name_infor&r'ÚhasjumpÚhasexcrHrKr*r+r,rCÚhaslocalÚhasfreeÚ hascompareÚcmp_oprr\r(rOrr‹rÃÚFUNCTION_ATTR_FLAGSr"rr(rr)r )r˜r§r³rÖÚget_namerÔrÕrêr1Úarg1Úarg2Úval1Úargrepr1Úval2Úargrepr2Ú_s ` r5Úget_argval_argreprÚArgResolver.get_argval_argrepr!sø€ØŸ:™:Ñ-‘4°4·:±:×3IÑ3IˆØˆØˆÜ˜‹|ˆØ Š?ð ˆFØ”xÓÜ"1°$¸¸T¿^¹^Ó"L‘�ð^ˆÐð]œ“Øœ;Ó&Ü&4°S¸!±V¸XÓ&F‘O�FؘaŸ¦WØ%, I¨WÐ"5˜ðTˆÐðSœYÓ&Ü&4°S¸!±V¸XÓ&F‘O�FؘaŸ¦WØ%, I¨\Ð":˜ðLˆÐðKœ_Ó,Ü&4°S¸!±V¸XÓ&F‘O�FؘaŸ¦WØ%, I¨\Ð":˜ðDˆÐôA'5°S¸(Ó&C‘O�F˜Gð@ˆÐð?œ“ D¬F£NØ×2Ñ2°2°s¸FÓC�Ø×/Ñ/°Ó7�à   ˜,�ð6ˆÐð5Ô-Ô/CÔEZÐ[Ó[ؘa‘x�ؘR‘x�Ü!/°×6MÑ6MÓ!N‘�Ü!/°×6MÑ6MÓ!N‘�Ø" T™/¨HÑ4�ؘ�ð(ˆÐð'œÓ! T¬W£_Ü"0°°d×6MÑ6MÓ"N‘�ð$ˆÐð#œÓ#Ü  q¡Ñ)�Ø �ؘ—8Ø % g Y¨aÐ0�GðˆÐðœÓ&ؤ¤T¬5Ð1°#Ñ6�Ø6°sÑ;�ðˆÐðÔ/Ó/ØŸ)™)ô$5´)ÔØ0<ñ  >ð>r‘có •[nUbX!nU$)zÑHelper to get the value of the const in a hasconst op. Returns the dereferenced constant if this is possible. Otherwise (if it is a LOAD_CONST and co_consts is not provided) returns the dis.UNKNOWN sentinel. ©ÚUNKNOWN)r§r³rÂrÔs r5Ú_get_const_valuerx|s€ô€FØÑØ‘ˆØ €Mr‘cóL•[XU5nU[La [U5OSnX44$)zçHelper to get optional details about const references Returns the dereferenced constant and its repr if the value can be calculated. Otherwise returns the sentinel value dis.UNKNOWN for the value and an empty string for its repr. r)rxrwr()r§r³rÂrÔrÕs r5rWrWŠs*€ô˜b yÓ 1€FØ$¬GÒ3Œd�6Œl¸€GØ ˆ?Ðr‘c ó0•Ub U"U40UD6nX34$[S4$)zêHelper to get optional details about named references Returns the dereferenced name as both value and repr if the name list is defined. Otherwise returns the sentinel value dis.UNKNOWN for the value and an empty string for its repr. rrv)Ú name_indexraÚ extrainforÔs r5rYrY–s+€ðÑÙ˜*Ñ2¨ Ñ2ˆØˆ~Ð䘈{Ðr‘có€•[U5nUS-nUS-(a#US-n[U5nX!S--nUS-(aM#U$)Né?r�é)Únext)ÚiteratorÚbÚvals r5Ú _parse_varintr„¤sJ€Ü ˆX‹€AØ ˆb‰&€CØ ˆB�$Ø �‰ ˆÜ �‹NˆØ �‰t‰ ˆð ˆB�$‰$ð €Jr‘c ó,•[UR5n/n[U5S-n[U5S-nX4-n[U5S-n[U5nUS- n[US-5n UR [ X5XhU 55 Mj![ a Us$f=f)NrHr})ÚiterÚco_exceptiontabler„Úboolr‡rßÚ StopIteration) r°r�Úentriesr<Úlengthr=rìÚdlr9r6s r5Ú_parse_exception_tabler�­s¤€Ü�D×*Ñ*Ó+€HØ€Gð ØÜ! (Ó+¨AÑ-ˆEÜ" 8Ó,¨QÑ.ˆFØ‘.ˆCÜ" 8Ó,¨QÑ.ˆFܘxÓ(ˆBؘ!‘GˆEܘ˜A™“JˆEØ �N‰NÔ/°¸FÈ5ÓQÔ Rñøô óØŠðús™A+B BÂBcó•[US;$)N)r#ÚJUMP_BACKWARD_NO_INTERRUPTrä)r§s r5rèrè½s€Ü �"‰:ð8ñ 8ð8r‘c#óÎ# •U=(d UnU=(d [S5nSnSnSn[U5GH,upšp¼UbX‘;nU(aXnUbXr-nOSn[[US56n [ U 5nX n U(aUR X¼U 5unnO U [ U 5nn[[U5n[U5Hn[US5 M U(aO/n[[UR5H*unnX S-U S-SU--nURUUU45 M, OSnU(aURU 5OSn[[U X¼UUXšXhUU U5 v• GM/ g7f)z‰Iterate over the instructions in a bytecode string. Generates a sequence of Instruction namedtuples giving the details of each opcode. r–FNrH)r†Ú_unpack_opargsrÌr€r¨rir(rår¤r†rrÒrRr‡rKr)r°rnrrorprMrØÚlocal_line_numberrÙrÖr×r§r³rÛrêrÔrÕrërhrÜr4rrrÚs r5rtrtÁs{é€ð"×) T€MØ×+¤4¨£8€Là€KØÐØ€KÜ)7¸ ×)FÑ%ˆ˜bØ Ñ !Ø Ñ.ˆKÞØ$.Ñ$6Ð!Ø Ñ,Ø/Ñ=‘ à"� Üœt L°"Ó5Ð6ˆ ܘ‹|ˆØ ‰\ˆæ Ø*×=Ñ=¸bÀvÓN‰OˆF‘Gà!¤4¨£9�GˆFä ¤¨TÑ!2Ó3ˆä�v–ˆAÜ �˜rÖ "ñö ؈JÜ+¬F°4©LÑ9×?Ñ?ÖA‘ ��dØ Q™J¨°© °Q¸±XÑ(=Ð>�Ø×!Ñ! 4¨¨tÐ"4Ö5òBðˆJæ=I� ×1Ñ1°&Ô9ÈtˆÜœ+ b™/¨2°F¸GØ ° Ø ¨Jó8õ 8òA*Gùs‚E#E%c óü•[[U55n[U5n[URUS9nS[ [ [ U555-n [U[U5U(a4[ [ [[ UR5S- S555OSU US9n [URURURUS9n [[X5XXpR!5URXºS9 g ) zDisassemble a code object.)r:rGrHrIrrrB)r:rorprMrNN)rqrr�rZrFr[r\r]Ú_get_lineno_widthr^r_rÂrÄrsr`rµro) r¯r6r8r:r;r<rnr:rLrKrNrMs r5rr÷sÓ€ô”n RÓ(Ó)€JÜ.¨rÓ2ÐÜ! "§*¡*Ð@QÑR€JØ”cœ#œc *›oÓ.Ó/Ñ/€KܘtÜ'8¸Ó'DÞS_¤s¬3¬s´3°r·z±z³?ÀQÑ3FÈÓ/MÓ+NÔ'OÐefØ&1Ø&1ñ 3€Iô ¨¯©Ø%'§[¡[Ø24×2HÑ2HØ*4ñ6€Lô” rÓ4°eØ):ÏÉÓIZØ%'§Z¡Z¸lóar‘c óЕ[XX4US9 UbUS:”aRUbUS- nURH9n[US5(dM[US9 [SU<S3US9 [ XaX#XES9 M; gg) Nr>rr}rFrEzDisassembly of r#r7)rrÂrPrUrW)r¯r8r9r:r;r<rds r5rWrW sn€Ü�¨;ÐXdÒeØ �}˜ › Ø Ñ Ø˜A‘IˆEØ—”ˆAÜ�q˜)×$Ó$ܘ4Ò Ý«aÐ1¸Ò=Ü&بØ%ôò ð"r‘r–có•[[U55n[U5nUH;upEn nURU5 URU5 URU5 M= [U5n[ [U55VV s0sH up‰X˜S-_M n nn UH<n X«R U lX«RU lX«RU l M> U $s sn nf)Nr}) ÚsetrÚaddrQrÃr<r7r=r8rìr9) rpr:Ú jump_targetsÚlabelsr<r=rìrhrŽrÖrLÚes r5rZrZsŀܔz -Ó0Ó1€LÜ �Ó €FÛ$5Ñ ˆ�F˜A˜qØ� ‰ �5ÔØ� ‰ �3ŒØ� ‰ �6Öñ%6ô�F‹^€FÜ1:¼6À&»>Ô1JÔKÒ1J¡+ 1�&˜A™#’+Ñ1J€JÑKÛ ˆØ"§7¡7Ñ+ˆŒ Ø §¡Ñ'ˆŒ Ø#§H¡HÑ-ˆŽñð Ðùó LsÂCz --có•Ucg[[SUR55SS9nUS:Xag[S[[ U555nU[[ 5:a#SUR5;a[[ 5nU$)Nréÿÿÿÿ)Údefaulté)r^ÚfilterÚvaluesr[r\r')rnÚ maxlinenors r5r”r”+sq€ØÑØÜ”F˜4 ×!2Ñ!2Ó!4Ó5¸rÑB€IØ�BƒàÜ�qœ#œc )›nÓ-Ó.€LØ”cœ*“oÓ%¨$°*×2CÑ2CÓ2EÓ*EÜœ:“ˆ Ø Ðr‘)rr:rorprMrNc ó2•[XUUUUS9n [X”X�S9 g)Nrm)r6)rtÚprint_instructions) r°r6rnrr:rorprMrNÚinstrss r5r`r`8s)€ô% TØ7BØ8DØ9FØ8Dñ F€Fô �v°)ÓIr‘c óþ•UHfnURUs=:*=(a8 URS[[[UR55--:*Os nUR XE5 Mh UR U5 grF)rÖrår¤r¨rÓrr>)r¥r:rNr6rÚis_current_instrs r5r¤r¤Ism€Ûˆà Ÿ<™<¨5÷WóWØ�|‰|˜a¤/´+¼hÀuÇ|Á|Ó>TÑ2UÓ"VÑVÑVôWÐà×#Ñ# EÖ<ñ ð ×#Ñ#Ð$5Õ6r‘c ó0•[[US540UD6 g)zN)rWr6)r3Úkwargss r5raraRs€äœ<¨°Ó8ÑC¸FÓCr‘r€rHr}c#ó|# •SnSnSn[S[U5S5H˜nU(aUS-nMXn[U5n[[U5nU[ ;a2XS-U-nU[ :XaUS-OSnU[:¼a US[--nOSnSnU[ :Xa US- nXDXW4v• M‰XBS-- nXHXW4v• SnMš g7f)NrrHr}r~)r†r[r¨rår¤ÚhasargÚ EXTENDED_ARGÚ _INT_OVERFLOW) r°Ú extended_argÚextended_args_offsetrërŽr§rêr³r×s r5r‘r‘^sâ逨€LØÐØ €FÜ �1”c˜$“i Ö #ˆæ Ø �a‰KˆFÙ Ø ‰WˆÜ˜‹|ˆÜ ¤¨TÑ!2Ó3ˆØ ”6‹>ؘ‘s‘)˜lÑ*ˆCØ)-´Ó)=˜C 1šHÀ1ˆLðœ}Ó,Ø ¤MÑ 1Ñ1� øàˆC؈LØ ”<Ó Ø  AÑ %Рؘ�/Ô !à°AÑ5Ñ5ˆLØ BÐ,Ò ,Ø#$Ò ò3$ùs‚B:B<có�•/n[U5H4up#pEUcM [XEU5nUcMXa;dM#URU5 M6 U$)zXDetect all offsets in a byte code which are jump targets. Return the list of offsets. )r‘rír‡)r°ršrÖrhr§r³rÚs r5rr}sO€ð €FÜ,¨TÖ2ш�2Ø ‹?Ü$ R¨fÓ5ˆE؉}ÙØÕ"Ø— ‘ ˜eÖ$ñ 3ð €Mr‘c#ó^# •SnUR5Hup#nXALdM UnX$4v• M g7f)z³Find the offsets in a byte code which are start of lines in the source. Generate pairs (offset, lineno) lineno will be an integer or None the offset does not have a source line. FN)Úco_lines)r°Úlastliner<r=Úlines r5rr�s9é€ð€HØ ŸM™MžOш�DØ Ô ØˆHØ�+Ô ñ,ð ùs‚-¡ -c #óÐ# •[SnURnURn[UR5VVVs/sHu pEnU[ :wdMXV4PM nnnn[ U5HqunupYXQ:XdMUS:¼dMXxS- n XxS- n U S[;dM4U S[;dMC[U SU SU5n [U SU SU5n X9XÍ4v• Ms gs snnnf7f)z®Find import statements in the code Generate triplets (name, level, fromlist) where name is the imported module and level, fromlist are the corresponding args to __import__. Ú IMPORT_NAMErHr}rN) ÚopmaprÂrÄr‘rFr¬rÃrVrx)r¯r¶Úconstsr�rhr§r³ÚopargsrŽrðÚfrom_opÚlevel_opÚlevelÚfromlists r5Ú _find_importsr¾›sçé€ô˜ Ñ&€Kà �\‰\€FØ �K‰K€EÜ-;¸B¿J¹JÔ-Gõ)Ò-G™M˜A˜q cØœ<Ñ'óˆr‹iÑ-G€Fò)ä# FÖ+‰ˆ‰;ˆBØ Õ   a¥Ø˜q™S‘kˆGØ ™c‘{ˆHؘ‘ œhÕ&¨8°A©;¼(Õ+BÜ(¨°!©°h¸q±kÀ6ÓJ�Ü+¨G°A©J¸À¹ ÀFÓK�Ø‘| UÐ5Ô5ò,ùô)ùs.‚;C&½CÁCÁC&Á8C&ÂC& C&Â,:C&c#ó¢# •[S[S1nURn[UR5Hu p4nXA;dMX%v• M g7f)zTFind names of variables which are written in the code Generate sequence of strings Ú STORE_NAMEÚ STORE_GLOBALN)r·rÄr‘rF)r¯Ú STORE_OPSr�rhr§r³s r5Ú_find_store_namesrñsOé€ô ˆlÑÜ ˆnÑð€Ið �K‰K€EÜ'¨¯ © Ö3‰ ˆˆ1�#Ø �?Ø‘*Ô ò4ùs ‚>AÁ Acó`•\rSrSrSrSSSSSS.SjrSrSr\SSS .S j5r S r S r S r g)riÁzøThe bytecode operations of a piece of code Instantiate this with a function, method, other compiled object, string of code, or a code object (as returned by compile()). Iterating over this yields the bytecode operations as Instruction instances. NF)rkÚcurrent_offsetr:r;r<có •[U5=UlnUcURUlSUlOX lX'R- Ul[ [ U55UlXlX0l [U5Ul X@l XPl X`lgrã)r¡ÚcodeobjrrrkÚ _line_offsetrqrÚ _linestartsÚ_original_objectrÅr�r:r:r;r<)r˜rdrkrÅr:r;r<r¯s r5rÚBytecode.__init__És€€Ü,¨QÓ/Ð/ˆŒ �rØ Ñ Ø ×/Ñ/ˆDŒOØ !ˆDÕ à(ŒOØ *×->Ñ->Ñ >ˆDÔ Ü¤¨rÓ 2Ó3ˆÔØ !ÔØ,ÔÜ!7¸Ó!;ˆÔØ&ÔØ Œ Ø(Õr‘c ó6•URnURn[X R5n[ UR UR URUS9n[[XR5URURUR5UUS9$)NrBrm)rÇrFrZr:r_rÂrÄrsrtrµr;rÉrÈro)r˜r¯rprLrMs r5Ú__iter__ÚBytecode.__iter__Ùs…€Ø �\‰\ˆØŸ ™ ˆ Ü% m×5KÑ5KÓLˆ Ü"¨R¯\©\Ø)+¯©Ø68×6LÑ6LØ.8ñ:ˆ ô'¤°r¿=¹=Ó'IØ26×2BÑ2BØ37×3DÑ3DØ46·O±OÓ4EØ5BØ4@ñ Bð Br‘cób•SRURRUR5$)Nz{}({!r}))ÚformatÚ __class__rcrÊr—s r5r™ÚBytecode.__repr__ès*€Ø× Ñ  §¡×!8Ñ!8Ø!%×!6Ñ!6ó8ð 8r‘)r:r;có®•UR(aURnUR(aMU"URRURX#S9$)z.Construct a Bytecode from the given traceback )rÅr:r;)rnrorprq)Úclsrrr:r;s r5Úfrom_tracebackÚBytecode.from_tracebackìsA€ð�j�jØ—‘ˆBð�j�j‰jáØ �K‰K× Ñ ¨r¯{©{È ñ ð r‘có,•[UR5$)z3Return formatted information about the code object.)r·rÇr—s r5ÚinfoÚ Bytecode.infoõs€ä  §¡Ó.Ð.r‘c óB•URnURb URnOSn[R"5n[ XR 5nUR (a*[[[[U5S- S555OSn[URUR5nS[[[U555-n[U[UR5UUUR UR"S9n[%UR&UR(UR*US9n [-UURUR UURUR/5URU US 9 UR15sSSS5 $!,(df  g=f) z3Return a formatted view of the bytecode operations.Nr�rHrIrrG)r8rrJrKrr:rB)rnrr6r:rorprMrN)rÇrÅrrrµr;r<r[r\r^rZrFr:r]r”rÉrÈr:r_rÂrÄrsr`ror) r˜r¯rÖr r°rJrLrKrNrMs r5rÚ Bytecode.disùsH€à �\‰\ˆØ × Ñ Ñ *Ø×(Ñ(‰FàˆFÜ �[Š[Œ]˜fÜ" 2§}¡}Ó5ˆDØAE×AR×ARœ3œs¤3¤s¨4£y°1¡}°dÓ#;Ó<Ô=ÐXYˆLô*¨"¯*©*°d×6LÑ6LÓMˆJØœc¤#¤c¨*£oÓ"6Ó7Ñ7ˆKÜ! vÜ/@À×AQÑAQÓ/RØ/;Ø.9Ø.2×.?Ñ.?Ø.2×.>Ñ.>ñ @ˆIô'°·±Ø-/¯[©[Ø:<×:PÑ:PØ2<ñ>ˆLô ˜tØ*.×*:Ñ*:Ø+/×+<Ñ+<Ø%+Ø15×1GÑ1GØ,.¯O©OÓ,=Ø-/¯Z©ZØ,8Ø)2ò 4ð—?‘?Ó$÷7�]�]ús ¾EFÆ F) rÈrÉrÊr;rÇrÅr:rkr:r<) rcr›rœr�r rrÍr™Ú classmethodrÕrØrržr–r‘r5rrÁsI†ñð)-¸TÈuÐ_dÐsxõ)ò Bò8ðØ/4¸uô óð ò/õ"%r‘rcó•SSKnUR5nURSSSSS9 URSSSS S9 URS S S S 9 URUS9nURS :Xa+Sn[ R RR5nO;URn[URS5nUR5nSSS5 [WUS5n[X`RURS9 g!,(df  N:=f)Nrz-Cz --show-cachesÚ store_truezshow inline caches)ÚactionÚhelpz-Oz--show-offsetszshow instruction offsetsÚinfileÚ?Ú-)Únargsrž)ÚargszÚrbr0)r:r<)ÚargparseÚArgumentParserÚ add_argumentÚ parse_argsráriÚstdinÚbufferÚreadÚopenr1rr:r<)rårçÚparserr4r3rár°s r5Úmainrðsó€Ûà × $Ñ $Ó &€FØ ×ј˜o°lØ1ðñ3à ×јÐ.°|Ø7ðñ9à ×ј¨°SÐÑ9Ø × Ñ  $Ð Ð '€DØ ‡{�{�cÓØˆÜ—‘×!Ñ!×&Ñ&Ó(‰à�{‰{ˆÜ �$—+‘+˜tÔ $¨Ø—[‘[“]ˆF÷%ä �6˜4 Ó (€D܈×*Ñ*¸×9JÑ9JÓK÷%Õ $ús Â6C;Ã; D Ú__main__r£)NrNNN)r�)r–)r�N)sr riÚtypesÚ collectionsrrÓrÚ _opcodes_allrrrrr r r Ú_opcoder Ú MethodTypeÚ FunctionTypeÚCodeTyperÜÚ staticmethodrbrTr·rrr`rrr r!r"r#r$r%r&r'r(r)r*r+r,r-ÚlistrÒr¤rqr¦rRr4r§r¥r6rrrˆr�r“rwr¡r¨rµr r·rÚ namedtuplerÌrÑr³rÔrÕrÖr×rØrÙrÚrÛrÜrÝrßr*r,rårírr]r_rrxrWrYr„r�rèrtrrWrZr'r”r`r¤rarÚ _INT_BITSr­r‘rrr¾rÃrrðrc)ÚbaseÚfamilyÚ specializeds000r5ÚrsŽðÙ6ã Û ÛÛ ä÷ ÷ ó õ!ò :àò< ò ò òòò 8ðPTØ=Aô38ðla d¸ÈØ"öað((,°4ÀUÐUZÐinõ ô ð€ ò ðJØ&'¸2Ø$(¸Ø$(°DöJô"7òDð €ð € à�i !‘mÑ$€ ò%ò>ò  ò6ò, ÷ Z%ñZ%ôzLð( ˆzÓÙ…Fðùôk sÄM