Ë ø“Ï÷oUüFãó®—ddlmZddlZddlZddlmZddlmZmZerddl m Z dd„Z dd„Z dd„Z dd „Zdd „Zdd „Zdd „Zdd „Zdd„Zdd„Zdd„Zddd„Zy)é)Ú annotationsN)Úurlsafe_b64encode)Ú TYPE_CHECKINGÚIterable)ÚZipInfocó¦— tj||«y#t$r.tj||«tj |«YywxYw©N)ÚosÚreplaceÚOSErrorÚshutilÚcopy2Úremove)ÚsrcÚdsts ú=/usr/lib/python3.12/site-packages/hatchling/builders/utils.pyÚ replace_filer s=€ðÜ � ‰ �3˜Õøä òÜ� ‰ �S˜#ÔÜ � ‰ �#Žðús‚™4AÁAc#óþK—t«}tj|d¬«D]U\}}}tj|«}|j|j f}||vr|dd…=Œ>|j |«|||f–—ŒWy­w)NT)Ú followlinks)Úsetr ÚwalkÚstatÚst_devÚst_inoÚadd)ÚpathÚseenÚrootÚdirsÚfilesrÚ identifiers rÚ safe_walkr"ssèø€Ü ‹5€DÜŸW™W T°t×<шˆd�EÜ�w‰w�t‹}ˆØ—[‘[ $§+¡+Ð-ˆ Ø ˜Ñ Ø’Q�Ø à �‰�ÔØ�D˜%ÐÓñ=ùs‚A;A=có4—tttd««S)N)éé)ÚmapÚstrÚsorted©órÚget_known_python_major_versionsr+"s€Ü Œs”F˜6“NÓ #Ð#r*cóR—tjj||«}|dk(ry|S)NÚ.Ú)r rÚrelpath)rÚstartÚ relative_paths rÚget_relative_pathr2&s)€Ü—G‘G—O‘O D¨%Ó0€Mð˜ÒØà Ðr*cóz—tjj|«jtj«Sr )r rÚnormpathÚstripÚsep©rs rÚnormalize_relative_pathr80s&€Ü �7‰7× Ñ ˜DÓ !× 'Ñ '¬¯©Ó /Ð/r*có:—t|«tjzSr )r8r r6r7s rÚnormalize_relative_directoryr:4s€Ü " 4Ó (¬2¯6©6Ñ 1Ð1r*cóÌ—i}|j«D]«\}}tjjtjj |««}tjj |«s=tjj tjj||««}t|«||<Œ­tt|j«d„¬««S)NcóX—|djtj«|d|dfS)Nér)Úcountr r6)Úitems rÚz)normalize_inclusion_map..Es$€˜d 1™gŸm™m¬B¯F©FÓ3°T¸!±W¸dÀ1¹gÑFr*)Úkey) Úitemsr rÚ expanduserr4ÚisabsÚabspathÚjoinr8Údictr()Ú inclusion_maprÚnormalized_inclusion_mapÚ raw_sourcer1Úsources rÚnormalize_inclusion_maprL8sª€Ø!Ðà%2×%8Ñ%8Ö%:Ñ!ˆ �MÜ—‘×#Ñ#¤B§G¡G×$4Ñ$4°ZÓ$@ÓAˆÜ�w‰w�}‰}˜VÔ$Ü—W‘W—_‘_¤R§W¡W§\¡\°$¸Ó%?Ó@ˆFä+BÀ=Ó+QÐ  Ò(ð &;ô ÜØ $× *Ñ *Ó ,ÙFô ó ðr*cól—tjdk7r |jtjd«S|S)NÚ/)r r6r r7s rÚnormalize_archive_pathrOJs'€Ü ‡v�v�‚}Ø�|‰|œBŸF™F CÓ(Ð(à €Kr*cóT—t|«jd«jd«S)NÚasciiÚ=)rÚdecodeÚrstrip)Údigests rÚformat_file_hashrVQs#€ä ˜VÓ $× +Ñ +¨GÓ 4× ;Ñ ;¸CÓ @Ð@r*cóT—ttjjdd««S)zË Returns an `int` derived from the `SOURCE_DATE_EPOCH` environment variable; see https://reproducible-builds.org/specs/source-date-epoch/. The default value will always be: `1580601600` ÚSOURCE_DATE_EPOCHÚ 1580601600)Úintr ÚenvironÚgetr)r*rÚget_reproducible_timestampr]Vs€ô Œr�z‰z�~‰~Ð1°<Ó@Ó AÐAr*có*—|dzdz}|dzr|dz}|S)a­ https://github.com/takluyver/flit/blob/6a2a8c6462e49f584941c667b70a6f48a7b3f9ab/flit_core/flit_core/common.py#L257 Normalize the permission bits in the st_mode field from stat to 644/755. Popular VCSs only track whether a file is executable or not. The exact permissions can vary on systems with different umasks. Normalizing to 644 (non executable) or 755 (executable) makes builds more reproducible. é¤i¤ÿÿÿé@éIr))Úst_modeÚnew_modes rÚnormalize_file_permissionsrd`s(€ð˜%‘ 6Ñ)€HØ�‚Ø�EÑˆØ €Or*có—|dz|_y)z[ https://github.com/takluyver/flit/commit/3889583719888aef9f28baaa010e698cb7884904 éN)Ú external_attr)Úzip_infoÚmodes rÚset_zip_info_moderjqs€ð" R™Z€HÕr*)rr'rr'ÚreturnÚNone)rr'rkz*Iterable[tuple[str, list[str], list[str]]])rkr&)rr'r0r'rkr')rr'rkr')rHúdict[str, str]rr'rkrm)rUÚbytesrkr')rkrZ)rbrZrkrZ)r_)rhrrirZrkrl)Ú __future__rr r Úbase64rÚtypingrrÚzipfilerrr"r+r2r8r:rLrOrVr]rdrjr)r*rÚrssXðÝ"ã Û Ý$ß*áÝóó  ó$óó0ó2óó$óAó Bóõ"(r*