JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr a0biUJS/rSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSK J r SSK J r SSK JrJrJr SSKrSSKrSSKrSSKrSSKrSSKJr SSKJrJr SS KJr SS KJr S S K J!r!J"r" S S K#J$r$ S SK%J&r&J'r' S SK(J)r)J*r* S SK+J,r, S SK-J.r. S SK-J/r/ S SK-J0r0 S SK-J1r2 S SK3J4r4 S SK5J6r6J7r7 S SK8J9r9 S SK:J;r; S SKr> \?\@4rASrBSrCSrDSrESrFSrGS rHS!rIS"rJS#rKS$rLS%rMS&rNS'rO\;"\RR5rR"S(S\R5rQ"S)S*\>5rSg)+ DistributionN)suppress)iglob)Path)ListOptionalSet)DEBUG)DistutilsOptionErrorDistutilsSetupError)translate_longopt) strtobool) partitionunique_everseen) OrderedSet) InvalidMarkerMarker)InvalidSpecifier SpecifierSet)Version) _entry_points)_normalization)_reqs)command)metadata)setupcfg pyprojecttoml)ConfigDiscovery) get_unpatched)InformationOnlySetuptoolsDeprecationWarningc[R"USSS9nUR(aeg![[[ [ 4an[U<SU<S35UeSnAff=f)N)valuenamegroupz/ must be importable 'module:attrs' string (got ))r EntryPointextras TypeError ValueErrorAttributeErrorAssertionErrorr )distattrr$epes ڈ/builddir/build/BUILDROOT/alt-python313-setuptools-69.0.2-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/setuptools/dist.pycheck_importabler3-sZ  u4t D99}9 z>> B!FJE R  s),AAAc[U[[45(deSRU5U:wdeg![[ [ [4an[U<SU<S35UeSnAff=f)z"Verify that value is a string listz must be a list of strings (got r'N) isinstancelisttuplejoinr*r+r,r-r r.r/r$r1s r2assert_string_listr;7sg %$////wwu~&&& z>> B!7;U C  s47A*A%%A*c.Un[XU5 UHnURU5(d[SSU--5eURS5upVnU(a&XS;a![R R SUU5 [R"SSSS9 M g ) z(Verify that namespace packages are validz1Distribution contains no modules or packages for znamespace package %r.z^WARNING: %r is declared as a package namespace, but %r is not: please correct this in setup.pyz/The namespace_packages parameter is deprecated.z 2! &   s25A AAcURS5up#n[U5 [ [ R "U55 g![a SUSU<S3n[U5Sef=f)N:zInvalid environment marker: z (r')r _check_markerrr r7rparse)extrareqsr%rHmarkermsgs r2rOrOnsg,Dv1f T  1,VHBuiqA!#&D01s A!A"cJU(dg[U5nUR5 gN)revaluate)rXms r2rTrTxs vAJJLrKcV[U5U:waSn[URXS95eg)z)Verify that value is True, False, 0, or 1z0{attr!r} must be a boolean value (got {value!r}))r/r$N)boolr format)r.r/r$tmpls r2 assert_boolrbs. E{eA!$++4+"EFFrKc^U(d[RUS35 g[US35e)Nz is ignored.z is invalid.)DistDeprecationWarningrDr r.r/r$s r2invalid_unless_falserfs/ ##tfL$9: l3 44rKc[[R"U55 [U[[ 45(a [ S5eg![ [4a nSn[URXS95UeSnAff=f)z9Verify that install_requires is a valid requirements listzUnordered types are not allowedzm{attr!r} must be a string or list of strings containing valid project/version requirement specifiers; {error}r/errorN) r7rrUr6dictsetr*r+r r`r.r/r$riras r2check_requirementsrmsw R U[[  edC[ ) )=> > * z "R O "$++4+"EFEQ RsAAA8A33A8c[U5 g![[4a nSn[UR XS95UeSnAff=f)z.Verify that value is a valid version specifierzF{attr!r} must be a string containing valid version specifiers; {error}rhN)rrr,r r`rls r2check_specifierrosIRU n -R W "$++4+"EFEQ Rs >9>cn[R"U5 g![an[U5UeSnAff=f)z)Verify that entry_points map is parseableN)rload Exceptionr r:s r2check_entry_pointsrss2,5! ,!!$!+,s 4 /4cD[U[5(d [S5eg)Nztest_suite must be a string)r6strr res r2check_test_suitervs eS ! !!"?@@ "rKc*[U[5(d[SRU55eUR 5HPup4[U[ 5(d[SRX55e[ USRU5U5 MR g)z@Verify that value is a dictionary of package names to glob listszT{!r} must be a dictionary mapping package names to lists of string wildcard patternsz,keys of {!r} dict must be strings (got {!r})zvalues of {!r} dictN)r6rjr r`rPrur;)r.r/r$kvs r2check_package_datarzs eT " "! ''-vd|   !S!!%>EEdN  4!6!=!=d!CQG rKcUHAn[R"SU5(aM![RR SU5 MC g)Nz \w+(\.\w+)*z[WARNING: %r not a valid package name; please use only .-separated package names in setup.py)rematchrArBrC)r.r/r$pkgnames r2check_packagesrs7xx00 MM  8 rKcP^\rSrSrSrS\\SS\\S.rSr Sr S.S jr S r S r \S 5rS rSrSr\S5rS.SjrSrSrSrS.SjrSrS/SjrSrSr\S5rSrSrSr Sr!Sr"S r#S!r$S"r%S#r&S$r'S%r(S&r)S'r*S(r+S)r,S*r-S+r.U4S,jr/S-r0U=r1$)0ra Distribution with support for tests and package data This is an enhanced version of 'distutils.dist.Distribution' that effectively adds the following new optional keyword arguments to 'setup()': 'install_requires' -- a string or sequence of strings specifying project versions that the distribution requires when installed, in the format used by 'pkg_resources.require()'. They will be installed automatically when the package is installed. If you wish to use packages that are not available in PyPI, or want to give your users an alternate download location, you can add a 'find_links' option to the '[easy_install]' section of your project's 'setup.cfg' file, and then setuptools will scan the listed web pages for links that satisfy the requirements. 'extras_require' -- a dictionary mapping names of optional "extras" to the additional requirement(s) that using those extras incurs. For example, this:: extras_require = dict(reST = ["docutils>=0.3", "reSTedit"]) indicates that the distribution can optionally provide an extra capability called "reST", but it can only be used if docutils and reSTedit are installed. If the user installs your package using EasyInstall and requests one of your extras, the corresponding additional requirements will be installed if needed. 'test_suite' -- the name of a test suite to run for the 'test' command. If the user runs 'python setup.py test', the package will be installed, and the named test suite will be run. The format is the same as would be used on a 'unittest.py' command line. That is, it is the dotted name of an object to import and call to generate a test suite. 'package_data' -- a dictionary mapping package names to lists of filenames or globs to use to find data files contained in the named packages. If the dictionary has filenames or globs listed under '""' (the empty string), those names will be searched for in every package, in addition to any names for the specific package. Data files found using these names/globs will be installed along with the package, in the same location as the package. Note that globs are allowed to reference the contents of non-package subdirectories, as long as you use '/' as a path separator. (Globs are automatically converted to platform-specific paths at runtime.) In addition to these new keywords, this class also has several new methods for manipulating the distribution's contents. For example, the 'include()' and 'exclude()' methods can be thought of as in-place add and subtract commands that add or remove packages, modules, extensions, and so on from the distribution. cgr[rrKr2Distribution.srKcgr[rrrKr2rrsrKcgr[rrrKr2rr srK)long_description_content_type project_urlsprovides_extras license_file license_filesinstall_requiresextras_requireNcU(a SU;dSU;ag[R"[US55R5n[ [ R 5 [ R"U5nUbCURS5(d-[R"[US55Ul X0l SSS5 g!,(df  g=f)Nr%versionzPKG-INFO) r safe_namerulowerrrPackageNotFoundError distribution read_text safe_version_version _patched_dist)selfattrsr%r.s r2patch_missing_pkg_info#Distribution.patch_missing_pkg_infos e+y/E ''E&M(:;AAC h33 4((.Dz(B(B . ; ;Ci@P?? ',{{}O}tq8Ndad} Ot0 ,/5+D1 ##E* $ 7 7 8M8M N  !Ps 2 FFcS1n[UR5Vs1sHn[URUS5cMUiM! nnX- nU(aSU3n[U5egs snf)Nr%z&Required package metadata is missing: )rrgetattrr )rrequiredkeyprovidedmissingrYs r2_validate_metadataDistribution._validate_metadata=sr8DMM* *t}}c40 *  % :7)DC%c* *  s AAc URR5H=up#[UR5R X!R X#"555 M? g)z Fill-in missing metadata fields not supported by distutils. Some fields may have been set by other tools (e.g. pbr). Those fields (vars(self.metadata)) take precedence to supplied attrs. N)rrPrrrget)rroptiondefaults r2r#Distribution._set_metadata_defaultsJsD $CCIIKOF   * *699VWY3O P LrKcSSKJn [U[R5(a [ U5nO[X5(dUcU$[ [ U55nX:wa[R"SUSUS35 U$U$)Nr)sicz Normalizing 'z' to '') r5rr6numbersNumberrurr!rD)rr normalizeds r2rDistribution._normalize_versionTsp gw~~ . .'lG  % %N)*   =  |1!M N rKc[USS5(aURURlUR5 URURlUR URlUR (adUR R 5HEnURS5SnU(dM URRRU5 MG gg)zh Set `metadata.python_requires` and fix environment markers in `install_requires` and `extras_require`. python_requiresNrSr) rrr_normalize_requiresrrkeyssplitradd)rrVs r2rDistribution._finalize_requiresds 4*D 1 1,0,@,@DMM )   ")-)>)> &'+':': $   ,,113 C(+5MM1155e< 4 rKc[USS5=(d /n[USS5=(d 0n[[[[R "U555UlUR5VVs0sH<up4U[[[[R "U=(d /555_M> snnUlgs snnf)zAMake sure requirement-related attributes exist and are normalizedrNr) rr7maprurrUrrPr)rrrrxrys r2r Distribution._normalize_requiresws"4);TBHb '7>D" $Sekk:J.K%L M@N@T@T@V @VAtCU[[b123 3@V  s2AB?c URRnU(aUO/nURRnU(aX2;aURU5 UcUcSn[ [ UR U555URlg)z>> list(Distribution._expand_patterns(['LICENSE'])) ['LICENSE'] >>> list(Distribution._expand_patterns(['setup.cfg', 'LIC*'])) ['setup.cfg', 'LICENSE'] c3# UHan[[U55HEnURS5(aM[RR U5(dMAUv MG Mc g7f)~N)sortedrendswithospathisfile).0patternrs r2 0Distribution._expand_patterns..sR #uW~.==% +-''..*> D. #s2A+"A+ A+r)rs r2rDistribution._expand_patternss #  rKc pSSKJn [R[R:Xa/O/SQn[ U5nUcUR 5n[(aURS5 U"5n[Ul UHn[USS9n[(a)URSR"S 0[5D65 URU5 SSS5 UR5HsnUR!U5nUR#U5n UHHn U S :XdX;aMUR%Xz5n UR'X5n UR)X5n X[4X'MJ Mu UR+5 M S UR,;agUR,S R/5Hbun upUR0R%U 5n U (a[3U 5(+n OU S ;a [3U 5n [5X =(d U U 5 Md g!,(df  GN?=f![6an[9U5UeSnAff=f) z Adapted from distutils.dist.Distribution.parse_config_files, this method provides the same functionality in subtly-improved ways. r) ConfigParser) z install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootNz"Distribution.parse_config_files():utf-8encodingz reading {filename}__name__global)verbosedry_runr) configparserrsysr base_prefix frozensetfind_config_filesr announceru optionxformopenr`locals read_filesectionsoptionsget_option_dictrwarn_dash_deprecationmake_option_lowercasercommand_optionsrP negative_optrsetattrr+r )r filenamesrignore_optionsparserfilenamereadersectionropt_dictoptvalsrcaliasr1s r2_parse_config_files Distribution._parse_config_filess . zzS__,  (#>2  ..0I 5 MM> ? !Hh1V5MM"8"?"?"K&("KL  (2"??, ..1//8"Cj(C,A  **W2C44SBC44SBC%-OHM# - OO )", 4// /  $33H=CCEOC#%%))#.E#C.(..n 5lsC0 F721H 5*1-14 5s% AH.H H  H5$ H00H5cXUS;aU$URSS5n[[R"[R R UR555nURS5(d US:waX$;aU$SU;a [R"SSU<SU<S 3S S S 9 U$) N)zoptions.extras_requirezoptions.data_files-_rrzInvalid dash-separated optionsz) Usage of dash-separated zZ will not be supported in future versions. Please use the underscore name z instead. !userguide/declarative_config.htmli r>due_date) replacer7rMchainrAr__all___setuptools_commands startswithr"rD)rr r underscore_optcommandss r2r"Distribution.warn_dash_deprecations   JS#. OO!!))))+  ""9--:%'! ! #: ( - -0)),0::H9KL=& rKc[R"S5RR$![Ra /s$f=f)N setuptools)rrrnamesr)rs r2r!Distribution._setuptools_commandss> ((6CCII I,, I s),AAc US:wdUR5(aU$UR5n[R"SSU<SU<SU<S3SSS 9 U$) NrzInvalid uppercase configurationz$ Usage of uppercase key z in zL will not be supported in future versions. Please use lowercase z instead. rrr)islowerrr"rD)rr r  lowercase_opts r2r"Distribution.make_option_lowercasesk j CKKMMJ $)) -$$'7$wk:33@2CD  9" rKc .UR5nUcURU5n[(aURSU-5 UR 5HunupV[(aURSU<SU<SU<S35 UR Vs/sHn[ U5PM nnURn [U[5n XI;a&U (a[XU[U5(+5 MXH;aU (a[X[U55 M[X5(a[XU5 M[SU<SU<S U<S 35e gs snf![a /nNf=f![a 0n Nf=f![an [U 5U eSn A ff=f) a Set the options for 'command_obj' from 'option_dict'. Basically this means copying elements of a dictionary ('option_dict') to attributes of an instance ('command'). 'command_obj' must be a Command instance. If 'option_dict' is not supplied, uses the standard option dictionary for this command (from 'self.command_options'). (Adopted from distutils.dist.Distribution._set_command_options) Nz# setting options for '%s' command:z z = z (from r'z error in z : command 'z' has no such option 'r)get_command_namerr rrPboolean_optionsr r,rr6rurrrr r+) r command_obj option_dict command_namersourcer$o bool_optsneg_opt is_stringr1s r2_set_command_options!Distribution._set_command_options-si#335  ..|N:NO(YK51AB[11K7.!<9+(;X!   "    5*1-14 5s`EE)E, E'99E94!E9E95E9E E$#E$' E65E69 F FFc/n[UR=(d [RS5nUb,[ SU5n[ US5n[ US5nX4$UR 5(aU/nX4$)z/Add default file and split between INI and TOMLzpyproject.tomlc2[U5RS:H$)Nz.toml)rsuffix)fs r2r8Distribution._get_project_config_files..`sQ'(ArKrr)rrrcurdirrr7exists)rr tomlfilesstandard_project_metadatapartss r2_get_project_config_files&Distribution._get_project_config_files[s| $()C"))EU$V!  A9MEU1XIU1XI##' - - / /23I##rKcURU5up4URUS9 [R"XRUS9 UHn[ R "XU5 M UR5 UR5 g)zHParses configuration files from various levels and loads configuration. )r)ignore_option_errorsN) rCrrparse_configurationrrapply_configurationrr)rrrFinifilesr@r s r2parse_config_filesDistribution.parse_config_filesgsy#<R S" ! $$&rKcSSKJn U"X5$)zResolve pre-setup requirementsr)_fetch_build_eggs) installerrM)rrequiresrMs r2fetch_build_eggsDistribution.fetch_build_eggsxs0 00rKcSnSn[R"US9n[R"URU5n[ SU5n[ XRS9H nU"U5 M g)z Allow plugins to apply arbitrary operations to the distribution. Each hook may optionally define a 'order' to influence the order of execution. Smaller numbers go first and the default is 0. z(setuptools.finalize_distribution_optionsc[USS5$)Norderr)r)hooks r2by_order/Distribution.finalize_options..by_orders4!, ,rKrc"UR5$r[)rq)r1s r2r/Distribution.finalize_options..s qvvxrK)rN)rrrM filterfalse_removedrr)rr&rVdefinedfilteredloadedr0s r2finalize_optionsDistribution.finalize_options~sY; -''e4((@'2.B tH/rKc&S1nURU;$)z When removing an entry point, if metadata is loaded from an older version of Setuptools, that removed entry point will attempt to be loaded and will fail. See #2765 for more details. 2to3_doctests)r%)r0removeds r2r[Distribution._removeds  ww'!!rKc[R"SS9H?n[XRS5nUcMUR 5"XRU5 MA g)Nrr)rrrr%rq)rr0r$s r2_finalize_setup_keywords%Distribution._finalize_setup_keywordssC''.HIBD''40E  $/JrKcSSKJn [RR [R S5n[RR U5(d[R"U5 URU5 [RR US5n[US5nURS5 URS5 URS5 SSS5 U$U$!,(df  U$=f) Nr)windows_supportz.eggsz README.txtwzcThis directory contains eggs that were downloaded by setuptools to build, test, and run plug-ins. zAThis directory caches those eggs to prevent repeated downloads. z/However, it is safe to delete this directory. ) r5rirrr9r>r?mkdir hide_filerwrite)rri egg_cache_dirreadme_txt_filenamer<s r2get_egg_cache_dirDistribution.get_egg_cache_dirs% RYY8 ww~~m,, HH] #  % %m 4"$'',,}l"K )3/1J.KL0}0/s ,4C,, C;cSSKJn U"X5$)z Fetch an egg needed for buildingr)fetch_build_egg)rNrs)rreqrss r2rsDistribution.fetch_build_eggs.t))rKcXR;aURU$[R"SUS9nUH$nUR5=URU'nUs $ [R X5$)z(Pluggable version of get_command_class()distutils.commands)r&r%)cmdclassrrrqrget_command_class)rrepsr0rxs r2ryDistribution.get_command_classsi mm #==) )##*>WMB02 9DMM' "XO!224A ArKc[R"SS9HGnURUR;dMUR 5nX RUR'MI [ R U5$Nrwr)rrr%rxrqrprint_commandsrr0rxs r2r~Distribution.print_commandssW''.BCBwwdmm+779)1 bgg&D++D11rKc[R"SS9HGnURUR;dMUR 5nX RUR'MI [ R U5$r})rrr%rxrqrget_command_listrs r2rDistribution.get_command_listsW''.BCBwwdmm+779)1 bgg&D--d33rKc UR5H7up#[USU-S5nU(a U"U5 M&URX#5 M9 g)aAdd items to distribution that are named in keyword arguments For example, 'dist.include(py_modules=["x"])' would add 'x' to the distribution's 'py_modules' attribute, if it was not already there. Currently, this method only supports inclusion for attributes that are lists or tuples. If you need to add support for adding to other attributes in this or a subclass, you can add an '_include_X' method, where 'X' is the name of the attribute. The method will be called with the value passed to 'include()'. So, 'dist.include(foo={"bar":"baz"})' will try to call 'dist._include_foo({"bar":"baz"})', which can then handle whatever special inclusion logic is needed. _include_N)rPr _include_misc)rrrxryincludes r2rDistribution.includes@KKMDAdK!OT:G ""1( "rKcDUS-nUR(aAURVs/sH$o3U:wdM URU5(aM"UPM& snUlUR(aAURVs/sH$o3U:wdM URU5(aM"UPM& snUlUR(aWURVs/sH9nURU:wdMURRU5(aM7UPM; snUlggs snfs snfs snf)z9Remove packages, modules, and extensions in named packager=N)packagesr  py_modules ext_modulesr%rpackagepfxps r2exclude_packageDistribution.exclude_packagesm ====(aLcAR=DM ????*a7l1<->s-C) D     s4 DD D7 DDD D!DDcvUS-nUR5H nX1:XdURU5(dM g g)zBEJ  X$%C ?:c8#<#<%MM  D# K#$U9J# K L  X%&H4&OPVW W X!Ls# B, B) 9B)  B&B!!B&cl[U[5(d[U<SU<S35e[X5nUc [ XU5 g[U[5(d[US-5eUVs/sH oUU;dM UPM nn[ XX6-5 g![an[SU-5UeSnAff=fs snf)zAHandle 'include()' for list/tuple attrs without a special handlerz: setting must be a list (r'rNrr)rr%r$rr1rnews r2rDistribution._include_miscs%**%4QV&WX X X$%C ; D &C**%MM %*=ED_4EC= D * X%&H4&OPVW W X>s# B, B19B1 B.B))B.c UR5H7up#[USU-S5nU(a U"U5 M&URX#5 M9 g)aRemove items from distribution that are named in keyword arguments For example, 'dist.exclude(py_modules=["x"])' would remove 'x' from the distribution's 'py_modules' attribute. Excluding packages uses the 'exclude_package()' method, so all of the package's contained packages, modules, and extensions are also excluded. Currently, this method only supports exclusion from attributes that are lists or tuples. If you need to add support for excluding from other attributes in this or a subclass, you can add an '_exclude_X' method, where 'X' is the name of the attribute. The method will be called with the value passed to 'exclude()'. So, 'dist.exclude(foo={"bar":"baz"})' will try to call 'dist._exclude_foo({"bar":"baz"})', which can then handle whatever special exclusion logic is needed. _exclude_N)rPrr)rrrxryexcludes r2rDistribution.exclude1s@ KKMDAdK!OT:G ""1( "rKc[U[5(d[SU<S35e[[ UR U55 g)Nz+packages: setting must be a list or tuple (r')r6rr r7rr)rrs r2_exclude_packagesDistribution._exclude_packagesHs9(H--%DLN  S%%x 01rKcURRUlURRUlUSnURS5nX4;a-XCupVXC SSKnUR US5USS&USnX4;aM-[ RXU5nURU5n [U SS5(aSU4URU5S'Ub/$U$)NraliasesTrcommand_consumes_arguments command lineargs) __class__global_optionsrrshlexrr_parse_command_optsryr) rrrrrrrrnargs cmd_classs r2r Distribution._parse_command_optsOs"nn;; NN77q'&&y1  )JC {{5$/D!H1gG  11$E**73 9:D A A5CU4KD  )& 1   rKc 0nURR5Hup#UR5HunupVUS:waMURSS5nUS:XavURU5nURR 5nUR [US055 UR5HupX:XdM U nSn O [S5eUS:XaSnXaRU05U'M M U$) a@Return a '{cmd: {opt:val}}' map of all command-line options Option names are all long, but do not include the leading '--', and contain dashes rather than underscores. If the option doesn't take an argument (e.g. '--quiet'), the 'val' is 'None'. Note that options provided by config files are intentionally excluded. rrrrrNzShouldn't be able to get herer) rrPrget_command_objrcopyupdaterr-r) rdcmdoptsr rrcmdobjr5negposs r2get_cmdline_options Distribution.get_cmdline_optionsjs --335IC#'::<Zc.(kk#s+!8!11#6F"//446GNN76>2#FG$+MMO:"%C"&C! %4 --LMMAXC-0 S"%c*+$060rKc#N# UR=(d SHnUv M UR=(d SHnUv M UR=(d SHHn[U[5(aUupEO UR nUR S5(aUSSnUv MJ g7f)z@Yield all packages, modules, and extension names in distributionrmoduleNi)rrrr6r8r%r)rpkgrextr% buildinfos r2r$Distribution.iter_distribution_namess==&B&CI'oo++FL,##)r)C#u%%"%ixx}}X&&CRyJ*sB#B%cDSSKnUR(a[RX5$[ UR [ R5(d[RX5$UR RR5S;a[RX5$UR RnUR RSS9 [RX5UR RUS9 $!UR RUS9 f=f)zIf there were any non-global "display-only" options (--help-commands or the metadata display options) on the command line, display the requested info and return true; else return false. rN)rutf8rr) r help_commandsrhandle_display_optionsr6stdoutio TextIOWrapperrr reconfigure)r option_orderrrs r2r#Distribution.handle_display_optionss     77K K#**b&6&677 77K K ::   $ $ &*; ; 77K K::&& 0 6 77K JJ " "H " 5CJJ " "H " 5s DDcD>UR5 [TU] U5 gr[)rsuper run_command)rrrs r2rDistribution.run_commands  G$rK)rrrrrrrrrrrrrrrr[)NF)2r __module__ __qualname____firstlineno____doc__rjrr7rrrrrr staticmethodrrrrrrrrrr7rCrJrPr_r[rfrprsryr~rrrr?rrrrrrrrr__static_attributes__ __classcell__)rs@r2rrs"1h*6%$% '#M *"> +Q  =&  &    M5^ D$,5\ $'"1 $ " "0 ** B24),*M"+&).26$L$68%%rKc\rSrSrSrSrg)rdiznClass for warning about deprecations in dist in setuptools. Not ignored by default, unlike DeprecationWarning.rN)rrrrrrrrKr2rdrdsFrKrd)TrrrMrrr|r contextlibrglobrpathlibrtypingrrr distutils.cmdrAdistutils.commanddistutils.coredistutils.dist distutils.logdistutils.debugr distutils.errorsr r distutils.fancy_getoptr distutils.utilrextern.more_itertoolsrrextern.ordered_setrextern.packaging.markersrrextern.packaging.specifiersrrextern.packaging.versionrr5rrrrr _importlibrconfigrr discoveryrmonkeyr warningsr!r"r8r7rr3r;rJrQrOrTrbrfrmrorsrvrzrcorerrrdrrKr2rs    &&!F4$=*;G- +&!C $;  : G5 RR,A Hinn99: s %=s %lF9FrK