hyb
2025-12-30 399ffc4d9829f70529d3b096fe4228f7496cc566
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
Ë
Añúheãó`—dZddlZddlZddlZddlZddlZddlmZddlZddl    Zddl
Zddl m Z ddl mZddlmZddlmZmZddlmZddlmZd    d
lmZmZd    d lmZd    d lmZd dlmZddl Z!ddl"Z!ddl!m#Z#ddl m$Z$ddl"m%Z&ddl'm(Z(ejRjT›dejRjV›Z,d„Z-Gd„d«Z.Gd„de.e«Z/Gd„de&«Z%Gd„de«Z0d)d„Z1d)d„Z2d)d „Z3ejhZ4ejjZ5d)d!„Z6d)d"„Z7d*d#e8ddfd$„Z9d)d%„Z:d+d&„Z;Gd'„d(e«Z<y),zUsetuptools.command.egg_info
 
Create a distribution's .egg-info directory and contentséN)ÚCallable)ÚCommand)Ú    bdist_egg)ÚsdistÚ walk_revctrl)Ú edit_config)Úglobé)Ú _entry_pointsÚ_normalization)Úmetadata)ÚSetuptoolsDeprecationWarningé)Ú _requirestxt)Úlog)ÚDistutilsInternalError)ÚFileList)Ú convert_pathú.có¬—d}|jtjj«}t    j
tj«}d|›d}t |«D]6\}}|t|«dz
k(}|dk(r|r|dz }n |d|›d|›d    z }Œ2d
}t|«}    ||    krê||}
|
d k(r    ||d zz }nÌ|
d k(r||z }nÁ|
d k(r¤|dz} | |    kr || dk(r| dz} | |    kr || dk(r| dz} | |    kr|| dk7r| dz} | |    kr    || dk7rŒ| |    k\r|t    j
|
«z }nU||dz| } d} | d
dk(rd} | dd} | t    j
| «z } |d | ›dz }| }n|t    j
|
«z }|dz }||    krŒê|rŒ2||z }Œ9|dz }t    j|tjtjz¬«S)zö
    Translate a file path glob like '*.txt' in to a regular expression.
    This differs from fnmatch.translate which allows wildcards to match
    directory separators. It also knows about '**/' which matches any number of
    directories.
    Úz[^ú]rú**z.*z(?:ú+z)*rÚ*ú?ú[ú!ú^Nz\Z)Úflags) ÚsplitÚosÚpathÚsepÚreÚescapeÚ    enumerateÚlenÚcompileÚ    MULTILINEÚDOTALL)r    ÚpatÚchunksr$Ú
valid_charÚcÚchunkÚ
last_chunkÚiÚ    chunk_lenÚcharÚinner_iÚinnerÚ
char_classs              úNH:\Change_password\venv_build\Lib\site-packages\setuptools/command/egg_info.pyÚtranslate_patternr9&s?€ð €CðˆTZ‰ZœŸ™Ÿ ™ Ó $€Fä
)‰)”B—F‘FÓ
€CؐcU˜!€Jä˜fÓ%ó>‰ˆˆ5Øœ#˜f›+¨™/Ñ)ˆ
ð DŠ=Ùàt‘ ‘ð˜˜Z˜L¨¨#¨¨bÐ1Ñ1Ø ð ˆÜ˜“Jˆ    Ø)Šmؘ‘8ˆDؐsŠ{àz CÑ'Ñ'‘ؘ’àzÑ!‘ؘ’à˜a™%à˜YÒ&¨5°©>¸SÒ+@Ø%¨™kGؘYÒ&¨5°©>¸SÒ+@Ø%¨™kGð     Ò)¨e°G©nÀÒ.CØ%¨™kGð     Ò)¨e°G©nÀÓ.Cð˜iÒ'ðœ2Ÿ9™9 T›?Ñ*‘Cð" ! a¡%¨'Ð2EØ!#Jð˜Q‘x 3’Ø%(˜
Ø % a b     ˜à¤"§)¡)¨EÓ"2Ñ2JؘQ˜z˜l¨!Ð,Ñ,Cð ‘Aà”r—y‘y “Ñ&Ø ‰FˆAðU)‹móZØ 3‰JŠCð}>ð@ˆ5L€CÜ :‰:c¤§¡´·    ±    Ñ!9Ô :Ð:ócóh—eZdZdZdZed„«Zd„Zd„Zde    de
fd„Z de    fd„Z de    fd    „Z ee «Zy)
Ú
InfoCommonNcó\—tj|jj««S©N)r Ú    safe_nameÚ distributionÚget_name©Úselfs r8ÚnamezInfoCommon.name}s"€ä×'Ñ'¨×(9Ñ(9×(BÑ(BÓ(DÓEÐEr:có~—|j|jj««}tj|«Sr>)Ú
_maybe_tagr@Ú get_versionr Ú safe_version)rCÚtaggeds  r8Útagged_versionzInfoCommon.tagged_versions0€Ø—‘ ×!2Ñ!2×!>Ñ!>Ó!@ÓAˆÜ×*Ñ*¨6Ó2Ð2r:có^—|jr|j|«r|S||jzS)z
        egg_info may be called more than once for a distribution,
        in which case the version string already contains all tags.
        )ÚvtagsÚ_already_tagged©rCÚversions  r8rFzInfoCommon._maybe_tag…s5€ðzŠz˜d×2Ñ2°7Ô;ð ð    
ð˜4Ÿ:™:Ñ%ð    
r:rOÚreturncóz—|j|j«xs|j|j««Sr>)ÚendswithrLÚ
_safe_tagsrNs  r8rMzInfoCommon._already_taggeds0€ð×Ñ §
¡
Ó+ÒR¨w×/?Ñ/?ÀÇÁÓ@QÓ/RÐRr:cóò—    tjd|j›«ddS#tjj
$r2tj |jjdd««cYSwxYw)NÚ0rú r)r rHrLÚ    packagingrOÚInvalidVersionr?ÚreplacerBs r8rSzInfoCommon._safe_tags•sj€ð    JÜ!×.Ñ.°°4·:±:°,Ð/?Ó@ÀÀÐDÐ DøÜ× Ñ ×/Ñ/ò    JÜ!×+Ñ+¨D¯J©J×,>Ñ,>¸sÀCÓ,HÓIÒ Ið    Jús‚$'§A A6Á5A6cóˆ—d}|jr||jz }|jr|tjd«z }|S)Nrz%Y%m%d)Ú    tag_buildÚtag_dateÚtimeÚstrftimerNs  r8ÚtagszInfoCommon.tagss;€ØˆØ >Š>Ø t—~‘~Ñ %ˆGØ =Š=Ø ”t—}‘} XÓ.Ñ .ˆG؈r:)Ú__name__Ú
__module__Ú __qualname__r[r\ÚpropertyrDrJrFÚstrÚboolrMrSr_rL©r:r8r<r<yse„Ø€IØ€Hà ñFóðFò3ò    
ðS sðS¨tóSð
J˜CóJðcóñ T‹NEr:r<có°—eZdZdZgd¢ZdgZddiZd„Zedd„«Z    e    jd    „«Z    dd
„Z dd „Z e dfd „Zdd eddfd„Zdd„Zdd„Zdd„Zdd„Zy)Úegg_infoz+create a distribution's .egg-info directory))z    egg-base=ÚezLdirectory containing .egg-info directories [default: top of the source tree])útag-dateÚdz0Add date stamp (e.g. 20050528) to version number)z
tag-build=Úbz-Specify explicit tag to add to version number)úno-dateÚDz"Don't include date stamp [default]rjrmcóJ—d|_d|_d|_d|_d|_y)NF)Úegg_baseÚegg_namerhÚ egg_versionÚignore_egg_info_in_manifestrBs r8Úinitialize_optionszegg_info.initialize_options¼s'€ØˆŒ ؈Œ ؈Œ ØˆÔØ+0ˆÕ(r:rPNcó—yr>rfrBs r8Útag_svn_revisionzegg_info.tag_svn_revisionÆó€à r:có—yr>rf)rCÚvalues  r8rvzegg_info.tag_svn_revisionÊrwr:cóf—t|j«d¬«}t|t|¬««y)z³
        Materialize the value of date into the
        build tag. Install build keys in a deterministic order
        to avoid arbitrary reordering on subsequent builds.
        r)r[r\)rhN)Údictr_r)rCÚfilenamerhs   r8Úsave_version_infozegg_info.save_version_infoÐs%€ô $§)¡)£+¸Ô:ˆÜHœd¨HÔ5Õ6r:cóú—|j|_|j«|_tj
j |j«}    t|tj
j «}|rdnd}tjj||j|jfz«|j€?|jj }|xsij#dt$j&«|_|j)d«t+j,|j«dz|_|jt$j&k7r9t$j0j3|j|j.«|_|j|jj4_y#t$r?}tjjd|j›d|j›«|‚d}~wwxYw)Nz%s==%sz%s===%sz-Invalid distribution name or version syntax: ú-rrpú    .egg-info)rDrqrJrrrWrOÚVersionÚ
isinstanceÚ requirementsÚ RequirementÚ
ValueErrorÚ    distutilsÚerrorsÚDistutilsOptionErrorrpr@Ú package_dirÚgetr"ÚcurdirÚensure_dirnamer Úfilename_componentrhr#Újoinr )rCÚparsed_versionÚ
is_versionÚspecriÚdirss      r8Úfinalize_optionszegg_info.finalize_optionsÛs€€ð
Ÿ    ™    ˆŒ Ø×.Ñ.Ó0ˆÔÜ"×*Ñ*×2Ñ2°4×3CÑ3CÓDˆð    Ü# N´I×4EÑ4E×4MÑ4MÓNˆJÙ)‘8¨yˆDÜ × "Ñ "× .Ñ .¨t°t·}±}Àd×FVÑFVÐ6WÑ/WÔ Xð =‰=Ð  Ø×$Ñ$×0Ñ0ˆDØ!šZ R×,Ñ,¨R´·±Ó;ˆDŒMà ×јJÔ'Ü&×9Ñ9¸$¿-¹-ÓHÈ;ÑVˆŒ Ø =‰=œBŸI™IÒ %ÜŸG™GŸL™L¨¯©¸¿ ¹ ÓFˆDŒMð
.2×-=Ñ-=ˆ×Ñ×"Ñ"Õ*øô#ò    Ü×"Ñ"×7Ñ7Ø?ÀÇ Á ¸ÈaÐPT×P`ÑP`ÐOaÐbóàð ûð    úsÁA"F2Æ2    G:Æ;:G5Ç5G:cóF—t|j|j||«S)ú0Compute filename of the output egg. Private API.)Ú _egg_basenamerqrr)rCÚ
py_versionÚplatforms   r8Ú_get_egg_basenamezegg_info._get_egg_basenameûs€ä˜TŸ]™]¨D×,<Ñ,<¸jÈ(ÓSÐSr:Úforcecóʗ|r|j|||«ytjj|«r.|€|st    j
d||«y|j |«yy)a¹Write `data` to `filename` or delete if empty
 
        If `data` is non-empty, this routine is the same as ``write_file()``.
        If `data` is empty but not ``None``, this is the same as calling
        ``delete_file(filename)`.  If `data` is ``None``, then this is a no-op
        unless `filename` exists, in which case a warning is issued about the
        orphaned file (if `force` is false), or deleted (if `force` is true).
        Nz$%s not set in setup(), but %s exists)Ú
write_filer"r#ÚexistsrÚwarnÚ delete_file)rCÚwhatr|Údataršs     r8Úwrite_or_delete_filezegg_info.write_or_delete_fileÿsU€ñ Ø O‰O˜D (¨DÕ 1Ü W‰W^‰^˜HÔ %؈|¡EÜ—‘Ð?ÀÀxÔPØà× Ñ  Õ*ð &r:cóȗtjd||«|jd«}|js.t    |d«}|j |«|j «yy)zªWrite `data` to `filename` (if not a dry run) after announcing it
 
        `what` is used in a log message to identify what is being written
        to the file.
        zwriting %s to %súutf-8ÚwbN)rÚinfoÚencodeÚdry_runÚopenÚwriteÚclose)rCr r|r¡Úfs     r8rœzegg_info.write_filesO€ô      ‰Ð# T¨8Ô4؏{‰{˜7Ó#ˆØ|Š|ܐX˜tÓ$ˆAØ G‰GDŒMØ G‰GIðr:cót—tjd|«|jstj|«yy)z8Delete `filename` (if not a dry run) after announcing itz deleting %sN)rr¦r¨r"Úunlink)rCr|s  r8rŸzegg_info.delete_files(€ä ‰ Ô)؏|Š|Ü I‰IhÕ ðr:c    óÊ—ttjd¬««}|j|j«    t j |jd«|D]X}|j«}|||jt
jj|j|j««ŒZt
jj|jd«}t
jj|«r|j!|«|j#«y#t$r5}d|j›d}tjj|«|‚d}~wwxYw)Nzegg_info.writers)Úgroupz'Cannot update time stamp of directory 'ú'znative_libs.txt)Úlistr Ú entry_pointsÚmkpathrhr"ÚutimeÚOSErrorr†r‡ÚDistutilsFileErrorÚloadrDr#rŽrrŸÚ find_sources)rCÚwritersriÚmsgÚepÚwriterÚnls       r8Úrunz egg_info.run$s €ô”x×,Ñ,Ð3EÔFÓGˆà  ‰ D—M‘MÔ"ð    BÜ H‰HT—]‘] DÔ )ðò    HˆBØ—W‘W“YˆFÙ 4˜Ÿ™¤"§'¡'§,¡,¨t¯}©}¸b¿g¹gÓ"FÕ Gð    Hô
W‰W\‰\˜$Ÿ-™-Ð):Ó ;ˆÜ 7‰7>‰>˜"Ô Ø × Ñ ˜RÔ  à ×ÑÕøôò    BØ;¸D¿M¹M¸?È!ÐLˆCÜ×"Ñ"×5Ñ5°cÓ:ÀÐ Aûð    Bús¼ D$Ä$    E"Ä-0EÅE"cóô—tjj|jd«}t    |j
«}|j |_||_|j«|j|_
y)z"Generate SOURCES.txt manifest filez SOURCES.txtN) r"r#rŽrhÚmanifest_makerr@rsÚignore_egg_info_dirÚmanifestr¿Úfilelist)rCÚmanifest_filenameÚmms   r8r¹zegg_info.find_sources:sT€äŸG™GŸL™L¨¯©¸ ÓFÐÜ ˜D×-Ñ-Ó .ˆØ!%×!AÑ!AˆÔØ'ˆŒ Ø
‰ŒØŸ ™ ˆ r:©rPN©F)r`rarbÚ descriptionÚ user_optionsÚboolean_optionsÚ negative_optrtrcrvÚsetterr}r“ÚPY_MAJORr™rer¢rœrŸr¿r¹rfr:r8rhrh¨s–„Ø?€Kò
€Lð"l€Oà:ð€Lò1ðò óð ð×Ññ óð ó
    7ó>ð@,4¸dóTñ+Àð+ÐQUó+ó$ ó ó ô,$r:rhc󆇗eZdZ    ddeddfˆfd„ Zdd„Zd„Zd„Zd„Zd    „Z    d
„Z
d „Z d „Z d „Z d„Zdd„Zdd„Zd„Zd„ZˆxZS)rNrÂrPcó4•—t‰|||«||_yr>)ÚsuperÚ__init__rÂ)rCržÚ debug_printrÂÚ    __class__s    €r8rÒzFileList.__init__Gsø€ô    ‰Ñ˜˜{Ô+Ø#6ˆÕ r:c    óˆ—|j|«\}}}}|j|j|j|jt j |j|«t j |j|«|j|jdœ}dddddddd    dœ}    ||}|jd «}
|d vr|g}|
r|fnd} ||} |jdj|g|
r|gngz|z««|D]"} || «rŒ t!j"| | g| ¢­ŽŒ$y#t$rd
|›d |›}    t|    «d‚wxYw)N)ÚincludeÚexcludezglobal-includezglobal-excludezrecursive-includezrecursive-excludeÚgraftÚprunez%warning: no files found matching '%s'z9warning: no previously-included files found matching '%s'z>warning: no files found matching '%s' anywhere in distributionzRwarning: no previously-included files matching '%s' found anywhere in distributionz:warning: no files found matching '%s' under directory '%s'zNwarning: no previously-included files matching '%s' found under directory '%s'z+warning: no directories found matching '%s'z6no previously-included directories found matching '%s'z$Invalid MANIFEST.in: unknown action z in z
recursive->rØrÙrfrV)Ú_parse_template_linerÖr×Úglobal_includeÚglobal_excludeÚ    functoolsÚpartialÚrecursive_includeÚrecursive_excluderØrÙÚKeyErrorrÚ
startswithrÓrŽrrž)rCÚlineÚactionÚpatternsÚdirÚ dir_patternÚ
action_mapÚlog_mapÚprocess_actionr»Úaction_is_recursiveÚextra_log_argsÚlog_tmplÚpatterns              r8Úprocess_template_linezFileList.process_template_lineMs‰€ð 04×/HÑ/HÈÓ/NÑ,ˆ˜3  ð—|‘|Ø—|‘|Ø"×1Ñ1Ø"×1Ñ1Ü!*×!2Ñ!2Ø×&Ñ&Øó"ô"+×!2Ñ!2Ø×&Ñ&Øó"ð—Z‘ZØ—Z‘Zñ+
ˆ
ð"?ØSàPð6ðMð2ðCØMñ%
ˆð*    8Ø'¨Ñ/ˆNð%×/Ñ/° Ó=ÐØ Ð'Ñ 'Ø#}ˆHÙ#6˜#™¸BˆØ˜6‘?ˆà ×ÑØ H‰HؐÑ%8˜S™E¸bÑAÀHÑLó ô    
ð
 ò    =ˆGÙ! 'Õ*Ü—‘˜ 7Ð<¨^Ô<ñ    =øô'ò    8Ø8¸¸
À$ÀtÀhÐOˆCÜ(¨Ó-°4Ð 7ð    8ús Â&D#Ä#Ecóæ—d}tt|j«dz
dd«D]H}||j|«sŒ|jd|j|z«|j|=d}ŒJ|S)z†
        Remove all files from the file list that match the predicate.
        Return True if any matching files were removed
        Fréÿÿÿÿz
 removing T)Úranger(ÚfilesrÓ)rCÚ    predicateÚfoundr2s    r8Ú _remove_fileszFileList._remove_files“sp€ð
ˆÜ”s˜4Ÿ:™:“¨Ñ*¨B°Ó3ò    ˆAÙ˜Ÿ™ A™Õ'Ø× Ñ  °·
±
¸1± Ñ!=Ô>Ø—J‘J˜qMؑ𠠠     ð
ˆ r:có´—t|«Dcgc]$}tjj|«rŒ#|‘Œ&}}|j    |«t |«Scc}w)z#Include files that match 'pattern'.)r    r"r#ÚisdirÚextendre)rCrîr¬rõs    r8rÖzFileList.include sD€ä  ›MÖBq´·±·±¸qÕ1A’ÐBˆÐBØ  ‰ EÔܐE‹{ÐùòCs
Ž$A³AcóN—t|«}|j|j«S)z#Exclude files that match 'pattern'.)r9röÚmatch©rCrîrûs   r8r×zFileList.exclude¦s!€ä! 'Ó*ˆØ×!Ñ! %§+¡+Ó.Ð.r:cóú—tjj|d|«}t|d¬«Dcgc]$}tjj    |«rŒ#|‘Œ&}}|j |«t |«Scc}w)zN
        Include all files anywhere in 'dir/' that match the pattern.
        rT)Ú    recursive)r"r#rŽr    rørùre)rCrærîÚ full_patternr¬rõs      r8rßzFileList.recursive_include«s`€ô—w‘w—|‘| C¨¨wÓ7ˆ Ü  ¸Ô>ÖWqÄbÇgÁgÇmÁmÐTUÕFV’ÐWˆÐWØ  ‰ EÔܐE‹{ÐùòXs ±$A8ÁA8cóŒ—ttjj|d|««}|j    |j
«S)zM
        Exclude any file anywhere in 'dir/' that match the pattern.
        r©r9r"r#rŽrörû)rCrærîrûs    r8ràzFileList.recursive_exclude´s4€ô"¤"§'¡'§,¡,¨s°D¸'Ó"BÓCˆØ×!Ñ! %§+¡+Ó.Ð.r:có—t|«Dcgc](}tjj|«D]}|‘ŒŒ*}}}|j    |«t |«Scc}}w)zInclude all files from 'dir/'.)r    r†rÄÚfindallrùre)rCræÚ    match_dirÚitemrõs     r8rØzFileList.graft»sh€ô" #›Y÷
àÜ!×*Ñ*×2Ñ2°9Ó=ò
ðò ð
Ø ð
ˆñ
ð
      ‰ EÔܐE‹{Ðùó 
s-AcóŠ—ttjj|d««}|j    |j
«S)zFilter out files from 'dir/'.rr)rCrærûs   r8rÙzFileList.pruneÅs0€ä!¤"§'¡'§,¡,¨s°DÓ"9Ó:ˆØ×!Ñ! %§+¡+Ó.Ð.r:có$—|j€|j«ttjj d|««}|jDcgc]}|j |«sŒ|‘Œ}}|j|«t|«Scc}w)z“
        Include all files anywhere in the current directory that match the
        pattern. This is very inefficient on large file trees.
        r)    Úallfilesrr9r"r#rŽrûrùre)rCrîrûr¬rõs     r8rÛzFileList.global_includeÊsl€ð
=‰=Ð  Ø L‰LŒNÜ!¤"§'¡'§,¡,¨t°WÓ"=Ó>ˆØ ŸM™MÖ<q¨U¯[©[¸­^’Ð<ˆÐ<Ø  ‰ EÔܐE‹{Ðùò=s ÁB Á+B cóŠ—ttjjd|««}|j    |j
«S)zD
        Exclude all files anywhere that match the pattern.
        rrrüs   r8rÜzFileList.global_excludeÖs2€ô"¤"§'¡'§,¡,¨t°WÓ"=Ó>ˆØ×!Ñ! %§+¡+Ó.Ð.r:có —|jd«r|dd}t|«}|j|«r|jj    |«yy)Nú rñ)rRrÚ
_safe_pathróÚappend)rCrr#s   r8r zFileList.appendÝsF€Ø =‰=˜Ô ؘ˜9ˆDܘDÓ!ˆà ?‰?˜4Ô  Ø J‰J× Ñ ˜dÕ #ð !r:cób—|jjt|j|««yr>)rórùÚfilterr )rCÚpathss  r8rùzFileList.extendås€Ø 
‰
×Ñœ& §¡°%Ó8Õ9r:có`—tt|j|j««|_y)zÜ
        Replace self.files with only safe paths
 
        Because some owners of FileList manipulate the underlying
        ``files`` attribute directly, this method must be called to
        repair those paths.
        N)r²rr rórBs r8Ú_repairzFileList._repairès€ôœ& §¡°$·*±*Ó=Ó>ˆ
r:cóì—d}tj|«}|€tjd|›d«ytj|d«}|€tj||d«y    d|vxsd|v}|j
r|ryt jj|«st jj|«ryy#t$r,tj||tj««YywxYw)    Nz!'%s' not %s encodable -- skippingr±z$' in unexpected encoding -- skippingFr¤r€s    .egg-infoT) Ú unicode_utilsÚfilesys_decoderržÚ
try_encoderÂr"r#rÚUnicodeEncodeErrorÚsysÚgetfilesystemencoding)rCr#Úenc_warnÚu_pathÚ    utf8_pathÚ is_egg_infos      r8r zFileList._safe_pathòsà€Ø6ˆô×-Ñ-¨dÓ3ˆØ ˆ>Ü H‰Hq˜˜ÐBÐCÔ DØô"×,Ñ,¨V°WÓ=ˆ    Ø Ð Ü H‰HX˜t WÔ -Øð
    Bà%¨Ð/ÒL°<À9Ð3LˆKØ×'Ò'©KØäw‰w~‰~˜fÔ%¬¯©¯©¸    Ô)BØð*Cøô"ò    BÜ H‰HX˜t¤S×%>Ñ%>Ó%@Ö Að    BúsÁ%B>Á>>B>Â>2C3Ã2C3)NNFrÇ)r`rarbrerÒrïrörÖr×rßràrØrÙrÛrÜr rùrr Ú __classcell__)rÔs@r8rrDshø„ðHMñ7Ø@Dð7à     õ7ó D=òL òò /ò
ò/òò/ò
 
ò/ó$ó:ò?öBr:rcój—eZdZdZdd„Zdd„Zdd„Zd„Zdd„Zdd„Z    e
d    „«Z dd
„Z dd „Z d „Zd „Zy)rÁz MANIFEST.inNcóJ—d|_d|_d|_d|_d|_y)NTF)Ú use_defaultsrÙÚ manifest_onlyÚforce_manifestrÂrBs r8rtz!manifest_maker.initialize_optionss)€Ø ˆÔ؈Œ
Ø!ˆÔØ"ˆÔØ#(ˆÕ r:có—yr>rfrBs r8r“zmanifest_maker.finalize_optionss€Ø r:có&—t|j¬«|_tjj |j «s|j«|j«tjj |j«r|j«|j«|j«|j«|jj«|jj«|j«y)N)rÂ)rrÂrÄr"r#rrÃÚwrite_manifestÚ add_defaultsÚtemplateÚ read_templateÚadd_license_filesÚ_add_referenced_filesÚprune_file_listÚsortÚremove_duplicatesrBs r8r¿zmanifest_maker.runs°€Ü °T×5MÑ5MÔNˆŒ ܏w‰w~‰~˜dŸm™mÔ,Ø × Ñ Ô !Ø ×ÑÔÜ 7‰7>‰>˜$Ÿ-™-Ô (Ø × Ñ Ô  Ø ×ÑÔ Ø ×"Ñ"Ô$Ø ×ÑÔØ  ‰ ×ÑÔØ  ‰ ×'Ñ'Ô)Ø ×ÑÕr:cól—tj|«}|jtjd«S)Nú/)rrrYr"r$)rCr#s  r8Ú_manifest_normalizez"manifest_maker._manifest_normalize)s'€Ü×+Ñ+¨DÓ1ˆØ|‰|œBŸF™F CÓ(Ð(r:có —|jj«|jjDcgc]}|j|«‘Œ}}d|j›d}|j t |j|f|«ycc}w)zo
        Write the file list in 'self.filelist' to the manifest file
        named by 'self.manifest'.
        zwriting manifest file 'r±N)rÄrrór1rÃÚexecuterœ)rCr¬rór»s    r8r&zmanifest_maker.write_manifest-so€ð
      ‰ ×ÑÔð7;·m±m×6IÑ6IÖJ°×)Ñ)¨!Õ,ÐJˆÐJØ'¨¯ ©  °aÐ8ˆØ  ‰ ”Z $§-¡-°Ð!7¸Õ=ùòKs³BcóT—|j|«stj||«yyr>)Ú_should_suppress_warningrrž)rCr»s  r8ržzmanifest_maker.warn9s#€Ø×,Ñ,¨SÔ1Ü J‰Jt˜SÕ !ð2r:có.—tjd|«S)z;
        suppress missing-file warnings from sdist
        zstandard file .*not found)r%rû)r»s r8r5z'manifest_maker._should_suppress_warning=s€ô
x‰xÐ4°cÓ:Ð:r:cóv—tj|«|jj|j«|jj|j
«t t««}|r|jj|«n9tjj|j
«r|j«tjjd«r|jjd«|jd«}|jj|j«y)Nzsetup.pyrh)rr'rÄr r(rÃr²rrùr"r#rÚ read_manifestÚget_finalized_commandrØrh)rCÚrcfilesÚei_cmds   r8r'zmanifest_maker.add_defaultsDsǀÜ ×ј4Ô Ø  ‰ ×јTŸ]™]Ô+Ø  ‰ ×јTŸ]™]Ô+Ü”|“~Ó&ˆÙ Ø M‰M×  Ñ   Õ )Ü W‰W^‰^˜DŸM™MÔ *Ø × Ñ Ô  ä 7‰7>‰>˜*Ô %ð M‰M×  Ñ   Ô ,à×+Ñ+¨JÓ7ˆØ  ‰ ×јFŸO™OÕ,r:có¼—|jjjxsg}|D]}tjd|«Œ|j
j |«y)Nzadding license file '%s')r@r Ú license_filesrr¦rÄrù)rCr=Úlfs   r8r*z manifest_maker.add_license_filesVsN€Ø×)Ñ)×2Ñ2×@Ñ@ÒFÀBˆ Øò    5ˆBÜ H‰HÐ/°Õ 4ð    5à  ‰ ×ј]Õ+r:có¢—t|jdg«}|D]}tjd|«Œ|jj |«y)zGAdd files referenced by the config (e.g. `file:` directive) to filelistÚ_referenced_filesz%adding file referenced by config '%s'N)Úgetattrr@rÚdebugrÄrù)rCÚ
referencedÚrfs   r8r+z$manifest_maker._add_referenced_files\sI€ä˜T×.Ñ.Ð0CÀRÓHˆ
àò    CˆBÜ I‰IÐ=¸rÕ Bð    Cà  ‰ ×јZÕ(r:cóŠ—t|d«r|j«Stjddd¬«|j    «S)a0
        The parent class implementation of this method
        (``sdist``) will try to include data files, which
        might cause recursion problems when
        ``include_package_data=True``.
 
        Therefore, avoid triggering any attempt of
        analyzing/building the manifest again.
        Úget_data_files_without_manifestz@`build_py` command does not inherit from setuptools' `build_py`.z±
            Custom 'build_py' does not implement 'get_data_files_without_manifest'.
            Please extend command classes from setuptools instead of distutils.
            z!https://peps.python.org/pep-0632/)Úsee_url)ÚhasattrrFrÚemitÚget_data_files)rCÚbuild_pys  r8Ú_safe_data_fileszmanifest_maker._safe_data_filesdsJ€ô 8Ð>Ô ?Ø×;Ñ;Ó=Ð =ä$×)Ñ)Ø Nð ð8õ     
ð×&Ñ&Ó(Ð(r:rÇ)r`rarbr(rtr“r¿r1r&ržÚ staticmethodr5r'r*r+rLrfr:r8rÁrÁsM„Ø€Hó)ó ó ò)ó
>ó"ðñ;óð;ó -ó$,ò )ó)r:rÁrPcó¬—dj|«}|jd«}t|d«5}|j|«ddd«y#1swYyxYw)z{Create a file with the specified name and write 'contents' (a
    sequence of strings without line terminators) to it.
    ú
r¤r¥N)rŽr§r©rª)r|Úcontentsr¬s   r8rœrœ}sO€ðy‰y˜Ó"€Hð‰˜wÓ'€Hä     ˆh˜Ó    ð Ø    ‰Ô÷÷ñús ¯A
AcóÜ—tjd|«|js¶|jj}|j
|j c|_}|j|jc|_}    |j|j«||c|_|_t|jdd«}tj|j|«yy#||c|_|_wxYw)Nz
writing %sÚzip_safe)rr¦r¨r@r rrrOrqrDÚwrite_pkg_inforhrArÚwrite_safety_flag)ÚcmdÚbasenamer|r ÚoldverÚoldnameÚsafes       r8rSrSŠsÀ܇HHˆ\˜8Ô$Ø ;Š;Ø×#Ñ#×,Ñ,ˆØ#&§?¡?°H×4DÑ4DРˆÔ˜&Ø!$§¡¨x¯}©}ЈŒ wð    >Ø #ˆH× #Ñ # C§L¡LÔ 1à.5°vÐ +ˆHŒM˜8Ô+äs×'Ñ'¨°TÓ:ˆä×#Ñ# C§L¡L°$Õ7ð øð/6°vÐ +ˆHŒM˜8Õ+ús Á6CÃC+có—y)aj
    Unused: left to avoid errors when updating (from source) from <= 67.8.
    Old installations have a .dist-info directory with the entry-point
    ``depends.txt = setuptools.command.egg_info:warn_depends_obsolete``.
    This may trigger errors when running the first egg_info in build_meta.
    TODO: Remove this function in a version sufficiently > 68.
    Nrf©rUrVr|s   r8Úwarn_depends_obsoleter\›sr:c    ó—tj|jj«Dcgc]}|j    dd«d‘Œc}«}|j d|dj t|««dz«ycc}w)Nrrrztop-level namesrO)r{Úfromkeysr@Úiter_distribution_namesr!rœrŽÚsorted)rUrVr|ÚkÚpkgss     r8Úwrite_toplevel_namesrcªsk€Ü =‰=Ø$'×$4Ñ$4×$LÑ$LÓ$NöØ ˆ‰Q‹˜Óòó €Dð‡NNÐ$ h°·    ±    ¼&À»,Ó0GÈ$Ñ0NÕOùòs¬A>có —t|||d«y)NT)Ú    write_argr[s   r8Ú overwrite_argrf±s€Ü ˆc8˜X tÕ,r:ršcóʗtjj|«d}t|j|d«}|dj |«dz}|j ||||«y)NrrO)r"r#ÚsplitextrAr@rŽr¢)rUrVr|ršÚargnamerys      r8rereµs\€Üg‰g×јxÓ(¨Ñ+€GÜ C×$Ñ$ g¨tÓ 4€EØ ÐØ—    ‘    ˜%Ó  4Ñ'ˆØ×јW h°°uÕ=r:có¨—tj|jj«}tj|«}|j d||d«y)Nz entry pointsT)r r¸r@r³Úrenderr¢)rUrVr|ÚepsÚdefns     r8Ú write_entriesrn½sB€Ü
˜S×-Ñ-×:Ñ:Ó
;€CÜ × Ñ  Ó $€DØ×ј^¨X°t¸TÕBr:có’—tj|«}tj|«}|›d|›d|xst›}|r|d|›z }|S)r•rz-py)r rrÎ)rqrrr—r˜rDrOÚeggs       r8r–r–ÃsV€ä × ,Ñ ,¨XÓ 6€DÜ×/Ñ/° Ó<€GØ ˆF!G9˜C 
Ò 6¬hÐ7Ð
8€CÙØ 8*ˆ~ÑˆØ €Jr:có—eZdZdZy)ÚEggInfoDeprecationWarningz?Deprecated behavior warning for EggInfo, bypassing suppression.N)r`rarbÚ__doc__rfr:r8rrrrÍs„ÚIr:rrrÇrÈ)NN)=rsrÝr"r%rr]Úcollections.abcrrWÚpackaging.requirementsÚpackaging.versionÚsetuptools.unicode_utilsrÚ
setuptoolsrÚsetuptools.commandrÚsetuptools.command.sdistrrÚsetuptools.command.setoptrÚsetuptools.globr    rr r Ú
_importlibr ÚwarningsrrÚdistutils.errorsr†Údistutils.filelistrrrÚ    _FileListÚdistutils.utilrÚ version_infoÚmajorÚminorrÎr9r<rhrÁrœrSr\Úwrite_requirementsÚwrite_setup_requirementsrcrfrerernr–rrrfr:r8ú<module>rˆs%ðñ<óÛ    Û    Û
Û Ý$ãÛÛå0ÝÝ(ß8Ý1Ý ç,Ý!Ý3ÝãÛÝÝ3Ý4Ý'à×Ñ×$Ñ$Ð % Q s×'7Ñ'7×'=Ñ'=Ð&>Ð ?€òP;÷f,ñ,ô^Y$ˆz˜7ôY$ôxGBˆyôGBôTl)Uôl)ó^
ó8ó"ð"×4Ñ4ÐØ'×@Ñ@ÐóPó-ñ>¨dð>¸tó>óCó ôJР<õJr: