Ë c‡½j ãó>—dZddlZddlmZddlmZddl­ ddlmZgd¢Z ejjd «d d d gZ ejjd «dddgZd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy#e $rd„ZYŒ|wxYw)z dyld emulation éN)Úframework_info)Ú dylib_info)Ú*)Ú _dyld_shared_cache_contains_pathcó—t‚©N)ÚNotImplementedError)Úargss ú-/usr/lib64/python3.12/ctypes/macholib/dyld.pyrr s€Ü!Ð!ó)Ú dyld_findÚframework_findrrz~/Library/Frameworksz/Library/Frameworksz/Network/Library/Frameworksz/System/Library/Frameworksz~/libz/usr/local/libz/libz/usr/libcór—|€tj}|j|«}|€gS|jd«S)NÚ:)ÚosÚenvironÚgetÚsplit)ÚenvÚvarÚrvals r Údyld_envr$s5€Ø €{Ü�j‰jˆØ �7‰7�3‹<€DØ €|؈ Ø �:‰:�c‹?Ðr cóH—|€tj}|jd«S)NÚDYLD_IMAGE_SUFFIX)rrr©rs r Údyld_image_suffixr,s €Ø €{Ü�j‰jˆØ �7‰7Ð&Ó 'Ð'r có—t|d«S)NÚDYLD_FRAMEWORK_PATH©rrs r Údyld_framework_pathr 1s€Ü �CÐ.Ó /Ð/r có—t|d«S)NÚDYLD_LIBRARY_PATHrrs r Údyld_library_pathr#4s€Ü �CÐ,Ó -Ð-r có—t|d«S)NÚDYLD_FALLBACK_FRAMEWORK_PATHrrs r Údyld_fallback_framework_pathr&7s€Ü �CÐ7Ó 8Ð8r có—t|d«S)NÚDYLD_FALLBACK_LIBRARY_PATHrrs r Údyld_fallback_library_pathr):s€Ü �CÐ5Ó 6Ð6r có:—t|«}|€|S||fd„}|«S)z>For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsc3ó‚K—|D]6}|jd«r|dtd« |zdz–—n||z–—|–—Œ8y­w)Nz.dylib)ÚendswithÚlen)ÚiteratorÚsuffixÚpaths r Ú_injectz)dyld_image_suffix_search.._injectBsHèø€ÛˆDØ�}‰}˜XÔ&ؘ?œS ›]˜NÐ+¨fÑ4°xÑ?Ó?à˜V‘mÒ#Ø‹Jñ ùs‚=?)r)r.rr/r1s r Údyld_image_suffix_searchr2=s*€ä ˜sÓ #€FØ €~؈Ø!¨&óñ ‹9Ðr c#ó.K—t|«}|�5t|«D]'}tjj ||d«–—Œ)t |«D]A}tjj |tjj |««–—ŒCy­w©NÚname)rr rr0Újoinr#Úbasename)r5rÚ frameworkr0s r Údyld_override_searchr9Ksvèø€ô ˜tÓ$€IàÐÜ'¨Ö,ˆDÜ—'‘'—,‘,˜t Y¨vÑ%6Ó7Ó 7ð-ô " #Ö&ˆÜ�g‰g�l‰l˜4¤§¡×!1Ñ!1°$Ó!7Ó8Ó8ñ'ùs‚BBc#ó’K—|jd«r2|�/tjj||t d«d«–—yyy­w)Nz@executable_path/)Ú startswithrr0r6r-)r5Úexecutable_paths r Údyld_executable_path_searchr=\sFèø€ð ‡�Ð*Ô+°Ð0KÜ�g‰g�l‰l˜?¨D´Ð5HÓ1IÐ1JÐ,KÓLÓLð1LÐ+ùs‚AAc#ó@K—|–—t|«}|�7t|«}|D]'}tjj ||d«–—Œ)t |«}|D]A}tjj |tjj |««–—ŒC|�2s0tD]'}tjj ||d«–—Œ)|sKtD]A}tjj |tjj |««–—ŒCyy­wr4) rr&rr0r6r)r7ÚDEFAULT_FRAMEWORK_FALLBACKÚDEFAULT_LIBRARY_FALLBACK)r5rr8Úfallback_framework_pathr0Úfallback_library_paths r Údyld_default_searchrCcsìèø€Ø ‚Jä˜tÓ$€IàÐÜ">¸sÓ"CÐÛ+ˆDÜ—'‘'—,‘,˜t Y¨vÑ%6Ó7Ó 7ð,ô7°sÓ;ÐÛ%ˆÜ�g‰g�l‰l˜4¤§¡×!1Ñ!1°$Ó!7Ó8Ó8ð&ðÐÑ%<ß.ˆDÜ—'‘'—,‘,˜t Y¨vÑ%6Ó7Ó 7ð/ñ !ß,ˆDÜ—'‘'—,‘,˜t¤R§W¡W×%5Ñ%5°dÓ%;Ó<Ó <ñ-ð !ùs‚DDc ó—ttt||«t||«t ||««|«D]5}t j j|«r|cS t|«r|cSŒ7td|›d�«‚#t$rYŒRwxYw)z: Find a library or framework using dyld semantics zdylib z could not be found) r2Úchainr9r=rCrr0Úisfilerr Ú ValueError)r5r<rr0s r r r ys�€ô)¬Ü$ T¨3Ó/Ü+¨D°/ÓBÜ# D¨#Ó.ó*ðö ˆô �7‰7�>‰>˜$Ô ØŠKð Ü/°Ô5Ø’ ð6ðõ ²dÐ<Ó =Ð=øô#ò Ù ð úsÁ A=Á= B ÂB cón—d} t|||¬«S#t$r }|}Yd}~nd}~wwxYw|jd«}|dk(rt|«}|dz }tj j |tj j|d|««} t|||¬«d}S#t$r|‚wxYw#d}wxYw)z· Find a framework using dyld semantics in a very loose manner. Will take input such as: Python Python.framework Python.framework/Versions/Current N)r<rz .frameworkéÿÿÿÿ)r rGÚrfindr-rr0r6r7)Úfnr<rÚerrorÚeÚ fmwk_indexs r rr�sº€ð €Eðܘ¨_À#ÔFÐFøÜ òØ�ûðúà—‘˜,Ó'€JØ�RÒܘ“Wˆ Ø ˆlÑˆÜ �‰�‰�bœ"Ÿ'™'×*Ñ*¨2¨k¨z¨?Ó;Ó <€Bðܘ¨_À#ÔFð‰øô ò؈ ðûð‰ús(„ ’ '›"¢' B!Â! B-Â-B0Â0B4r)NN)Ú__doc__rÚctypes.macholib.frameworkrÚctypes.macholib.dylibrÚ itertoolsÚ_ctypesrÚ ImportErrorÚ__all__r0Ú expanduserr?r@rrr r#r&r)r2r9r=rCr r©r r ÚrXsÆðñó Ý4Ý,Üð"Ý8ò  €ð‡G�G×ÑÐ-Ó.ØØ!Ø ð Ðð‡G�G×Ñ�wÓØØ Øð Ðòó(ó 0ó.ó9ó7ó ó9ó"Mó=ó,>ô(øðEò"ô"ð"ús™BÂBÂB