python (3.11.7)

(root)/
lib/
python3.11/
distutils/
__pycache__/
msvc9compiler.cpython-311.opt-1.pyc

evdZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
ddlmZm
Z
ddlmZddlmZddlZejZejZejZejZejejejejfZej dko
ej!dkZ"e"rd	Z#d
Z$dZ%ndZ#d
Z$dZ%dddZ&GddZ'GddZ(dZ)dZ*dZ+dZ,ddZ-e)Z.e.dkrede.zGddeZ/dS) adistutils.msvc9compiler

Contains MSVCCompiler, an implementation of the abstract CCompiler class
for the Microsoft Visual Studio 2008.

The module is compatible with VS 2005 and VS 2008. You can find legacy support
for older versions of VS in distutils.msvccompiler.
N)DistutilsExecErrorDistutilsPlatformErrorCompileErrorLibError	LinkError)	CCompilergen_lib_options)log)get_platformwin32lz1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64rz	win-amd64ceZdZdZdZeeZdZeeZdZeeZdZe	eZdS)Regz2Helper class to read values from the registry
    ctD](}|||}|r||vr
||cS)t|N)HKEYSread_valuesKeyError)clspathkeybaseds     K/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/distutils/msvc9compiler.py	get_valuez
Reg.get_value?sN		Dd++A
SAXXv


smmc	t||}n#t$rYdSwxYwg}d}		t||}n#t$rYnwxYw|||dz
}=|S)zReturn list of registry keys.NrT)RegOpenKeyExRegError
RegEnumKeyappend)rrrhandleLiks       r	read_keysz
Reg.read_keysGs	!$,,FF			44	
	
vq))




HHQKKK
FA
	s
!!;
AAc,	t||}n#t$rYdSwxYwi}d}		t||\}}}n#t$rYnIwxYw|}|||||<|dz
}k|S)z`Return dict of registry keys and values.

        All names are converted to lowercase.
        NrTr )r!r"RegEnumValuelowerconvert_mbcs)	rrrr%rr'namevaluetypes	         rrzReg.read_valuesYs
	!$,,FF			44	
	
$0$;$;!eTT



::<<D(+(8(8(?(?Act$$%
FA	s
!!?
AAcft|dd}|	|d}n#t$rYnwxYw|S)Ndecodembcs)getattrUnicodeError)sdecs  rr-zReg.convert_mbcsosQa4((?
CKK



s!
..N)
__name__
__module____qualname____doc__rclassmethodr)rr-staticmethodrrrr;sI&&I I&&I(+k**K <--LLLrrc&eZdZdZdZdZdZdS)
MacroExpanderc\i|_t|z|_||dSr)macrosVS_BASEvsbaseload_macros)selfversions  r__init__zMacroExpander.__init__{s/'!!!!!rcRt|||jd|z<dS)Nz$(%s))rrrB)rFmacrorrs    r	set_macrozMacroExpander.set_macros&'*}}T3'?'?GeO$$$rc|d|jdzd|d|jdzd|dtd	|dkr|d	td
ntd
n#t$rt	dwxYw|dkr:|d
|jd|dt
ddSd}tD]d}	t||}n#t$rY wxYwt|d}t||d|}|d|jd<edS)NVCInstallDirz	\Setup\VC
productdirVSInstallDirz	\Setup\VSFrameworkDirinstallroot @FrameworkSDKDirzsdkinstallrootv2.0aPython was built with Visual Studio 2008;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2008 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.g"@FrameworkVersionzclr version
WindowsSdkDircurrentinstallfolderz.Software\Microsoft\NET Framework Setup\Productr\rGz$(FrameworkVersion))
rKrDNET_BASErrWINSDK_BASErr!r"r#rrrB)rFrGprhrrs       rrEzMacroExpander.load_macross~t{\'A<PPP~t{\'A<PPP~x???	M#~~0(3555534445	M	M	M(
LMM
M	Mc>>NN-t{MJJJNN?K9OPPPPPAA
B
B$T1--AAH A&&MM$AAAss(;<<56y\122
B
Bs2BB)8D		
DDcp|jD]\}}|||}|Sr)rBitemsreplace)rFr6r(vs    rsubzMacroExpander.subs;K%%''	 	 DAq		!QAArN)r8r9r:rHrKrEr`r>rrr@r@ysV"""
@@@BBB>rr@cvd}tj|}|dkrdS|t|z}tj|ddd\}}t|dddz
}|dkr|dz
}t|d	d
dz}|dkrd}|dkr||zSdS)
zReturn the version of MSVC that was used to build Python.

    For Python 2.3 and up, the version number is included in
    sys.version.  For earlier versions, assume the compiler is MSVC 6.
    zMSC v.N r 
g$@r)sysrGfindlensplitint)prefixr'r6restmajorVersionminorVersions      rget_build_versionrrsF  ABwwq	CKKAk!""o##C++GAtq"v;;?Lrq1v;;%Lqql**4rcg}|D]:}tj|}||vr||;|S)znReturn a list of normalized paths with duplicates removed.

    The current order of paths is maintained.
    )osrnormpathr$)paths
reduced_pathsrZnps    rnormalize_and_reduce_pathsrysSM
%%
W

a
 
 
]""  $$$rc|tj}g}|D]}||vr||tj|}|S)z8Remove duplicate values of an environment variable.
    )rlrtpathsepr$join)variableoldListnewListr'newVariables     rremoveDuplicatesrsbnnRZ((GG
GNN1*//'**Krct|z}	td|zd}n&#t$rt	jdd}YnwxYw|rtj|sd|z}tj	
|d}|rtj|rtj|tjtjd}tj
|}tj|st	jd|zdSnt	jd|z|st	jd	dStj|d
}tj|r|St	jddS)zFind the vcvarsall.bat file

    At first it tries to find the productdir of VS 2008 in the registry. If
    that fails it falls back to the VS90COMNTOOLS env var.
    z%s\Setup\VCrNz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz
vcvarsall.batUnable to find vcvarsall.bat)rCrrrr
debugrtrisdirenvirongetr|pardirabspathisfile)rGrDrNtoolskeytoolsdir	vcvarsalls      rfind_vcvarsallrsw
F]]>F#:#/11

	9:::


ERW]]:66E%/:>>(D11	E

h//	Eh	29dKKJ44J7==,,
	7*DEEEt

I88CDDD	'(((tZ99I	w~~i  I,---4s+ A
Act|}hd}i}|tdtjd||t	jd|d|dtjtj}	|\}}|d	kr"t|	d
|	d
}|
dD]}t|}d|vr!|
}|
dd
\}	}
|	}	|	|vr;|
t jr
|
dd}
t%|
||	<	|j|jn7#|j|jwxYwt-|t-|kr;t/t1t3||S)zDLaunch vcvarsall.bat and read the settings from its environment
    >librincludelibpathNrz'Calling 'vcvarsall.bat %s' (version=%s)"z" z & set)stdoutstderrrr3
=r rb)rrr
r
subprocessPopenPIPEcommunicatewaitr2rlrr-stripr,endswithrtr{rrcloserrk
ValueErrorstrlistkeys)rGarchrinterestingresultpopenrrlinerr/s           rquery_vcvarsallrs(w''I777K
F$%CDDDI7wGGG			444@$.O$.O
5
5
5E**,,::<<1(v)>)>???v&&LL&&
	6
	6D##D))D$::<<DC++JC))++Ck!!>>"*--'!#2#JE.u55s
	6	
	

6{{c+&&&&T&++--0011222Ms
0DG4G5rRz(VC %0.1f is not supported by this moduleceZdZdZdZiZdgZgdZdgZdgZ	eezeze	zZ
dZdZd	Z
d
ZdxZZdZddZddZ		d dZ		d!dZ			d"dZ										d#dZdZdZdZdZdZdZd$dZdZdS)%MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++,
       as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exerctj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF)	rrHVERSION_MSVCCompiler__version_MSVCCompiler__root_MSVCCompiler__paths	plat_name_MSVCCompiler__archinitialized)rFverbosedry_runforces    rrHzMSVCCompiler.__init__HsJD'7E::: 8 rNc|t}d}||vrtd|dtjvrHdtjvr:|dr%d|_d|_d|_d|_d	|_	nj|tks|d
krt|}n*ttdzt|z}tt|}|d
tj|_|d
tjd
<|dtjd<t!|jdkrtd|jz|d|_|d|_|d|_|d|_|d	|_		tjd
dD]}|j|n#t&$rYnwxYwt)|j|_d|jtjd<d|_|jdkrgd|_gd|_ngd|_gd|_gd|_|jdkr	gd|_dg|_d|_dS)Nrz--plat-name must be one of DISTUTILS_USE_SDKMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exer_rrrrzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.;r
)/nologo/Ox/MD/W3/DNDEBUG)r/Od/MDdr/Z7/D_DEBUG)rrrr/GS-r)rrrrrrr)/DLLrz/INCREMENTAL:NO)rrz/INCREMENTAL:noz/DEBUGrT)rrrtrfind_execclinkerrrcmcPLAT_TO_VCVARSrrrlr{rrk_MSVCCompiler__productr$rryr|preprocess_optionsrcompile_optionscompile_options_debugldflags_sharedrldflags_shared_debugldflags_staticr)rFrok_plats	plat_specvc_envrZs      r
initializezMSVCCompiler.initializeSs$I'H$$((*2(*566
6"*,,BJ1F1F4==YaKbKb1FDG$DK DHDGDGGLNN**i7.B.B*95		+<>>:S@*956	%Wi88F!&>//
;;DL &u
BJu$*9$5BJy!4<  A%%,.J.()))
mmH--DG--
33DK}}Y//DHmmH--DGmmH--DG
	Z'--c22
'
'##A&&&&
'			D	1$,?? XXdl33
6"&;%$1$1$1D *=*=*=D&&$1$1$1D *=*=*=D&EDD>Q)))D%!*ls*AH--
H:9H:c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt
d|z|rtj|}||jvr<|	tj
|||jz||jvr=|	tj
|||jz8|	tj
|||j
zu|S)Nrr zDon't know how to compile %s)rtrsplitext
splitdriveisabssrc_extensionsrbasename_rc_extensionsr$r|
res_extension_mc_extensions
obj_extension)rFsource_filenames	strip_dir
output_dir	obj_namessrc_namerexts        robject_filenameszMSVCCompiler.object_filenamessBz	(	L	LH'**H55KT37%%d++A.D

d++,,-D$---#$BX$MNNN
/w''..d)))  "',,
04t7I0I#K#KLLLL+++  "',,
04t7I0I#K#KLLLL  "',,
04t7I0I#K#KLLLLrc	|js||||||||}	|	\}}
}}}|pg}
|
d|r|
|jn|
|j|
D];}	||\}}n#t$rYwxYw|rtj	
|}||jvrd|z}n||jvrd|z}n||j
vrQ|}d|z}	||jg|z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj	|}tj	|}	||jgd|d|gz|gztj	tj	|\}}tj	||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d	|d
|z}	||jg|
z|z||gz|z#t $r}t#|d}~wwxYw|
S)Nz/cz/Tcz/Tpz/foz-hz-rrzDon't know how to compile z to z/Fo)rr_setup_compiler$extendrrrrtrr
_c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr|r)rFsourcesrrBinclude_dirsr
extra_preargsextra_postargsdependscompile_infoobjectspp_optsbuildcompile_optsobjsrcr	input_opt
output_optmsgh_dirrc_dirrrrc_files                         rcompilezMSVCCompiler.compiles	OO**:v|+2G^MM:F7%$*T"""	6 :;;;; 4555?	(?	(C
 :SS




+gooc**d(((!CK		,,,!CK		+++	"S[
,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,--,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy %} -07y 9::::*,,,&s+++,#l&)cc33$0111J
(

DG9|3g=%z23)*++++&
(
(
("3'''
(s[B  
B-,B-&D))
E3EEB.I
I!
II!)J,,
K
6KK
c|js||||\}}|||}|||rN|d|zgz}|r		||jg|zdS#t$r}t|d}~wwxYwtj
d|dS)N)r/OUT:skipping %s (up-to-date))rr_fix_object_argslibrary_filename
_need_linkrrrrr
r)	rFroutput_libnamerrtarget_langoutput_filenamelib_argsrs	         rcreate_static_libzMSVCCompiler.create_static_libs	OO $ 5 5gz J J*//;E0GG??7O44		C'O";!<<H

$

DH:011111%
$
$
$smm#
$
I0/BBBBBs/B
B-B((B-c"|js||||\}}||||}|\}}}|r%|dt|zt
||||}| tj	||}|
||r6|tjkr"|	r|j
dd}n!|jdd}n|	r|j
}n|j}g}|pgD]}|d|z||z|z|zd|zgz}tj|d}|tjtj|\}}tj	|||}|d|z|||||
r|
|dd<|r|||tj|	||jg|zn!#t2$r}t5|d}~wwxYw|||}|K|\}}d|d|}	|d	d
d||gdS#t2$r}t5|d}~wwxYwdSt9jd|dS)
Nz5I don't know what to do with 'runtime_library_dirs': r z/EXPORT:r	rz/IMPLIB:z-outputresource:rzmt.exez-nologoz	-manifestr
)rrr
_fix_lib_argswarnrr	rtrr|r
r
EXECUTABLErrr$rrrrmanifest_setup_ldargsrmkpathrrrrmanifest_get_embed_infor
r)rFtarget_descrrr	librarieslibrary_dirsruntime_library_dirsexport_symbolsrrr
build_tempr
fixed_argslib_optsldflagsexport_optssymld_argsdll_namedll_extimplib_filermfinfo
mffilenamemfidout_args                            rlinkzMSVCCompiler.link5s	OO $ 5 5gz J J*''	<(<>>
:D7L"6	5IIN2334
5
5
5#4#/1E#,..! gll:GGO??7O44=	Ci2226"7;GG"1!""5GG2"7GG"1GK&,"
5
5"":#34444)K7")O";!<=G44J)&(g&6&6G$$_55'7'7#7 gll))(3355
[ 8999&&
GLLL
,+
/~...KK88999
%

DK=723333%
%
%
%nn$
%11+wGGF!#) 
DD5D__ddK)JJ)[ *G 566666))))#C..()
"!
I0/BBBBBs0I44
J>J

J;K
K5!K00K5ctj|tj|dz}|d|zdS)Nz	.manifest/MANIFESTFILE:)rtrr|rr$)rFrrr%
temp_manifests     rrz"MSVCCompiler.manifest_setup_ldargssV  11K?AA
	'-788888rc|D]5}|dr|ddd}n6dS|tjkrd}nd}||}|dS||fS)Nr/:r rg)
startswithrlrr_remove_visual_c_ref)rFrr%argr0r+s      rrz$MSVCCompiler.manifest_get_embed_infos
		C~~.//
 #		#q 1 1! 4


4)...DDD 55mDDM 4d""rcz	t|}	|}|n#|wxYwtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dSt|d}	||||S#|wxYw#t$rYdSwxYw)NzU<assemblyIdentity.*?name=("|')Microsoft\.VC\d{2}\.CRT("|').*?(/>|</assemblyIdentity>)rz*<dependentAssembly>\s*</dependentAssembly>zI<assemblyIdentity.*?name=(?:"|')(.+?)(?:"|').*?(?:/>|</assemblyIdentity>)w)
openreadrrerDOTALLr`searchwriteOSError)rF
manifest_file
manifest_fmanifest_bufpatterns     rr4z!MSVCCompiler._remove_visual_c_refsR$	m,,J
#)00  """"
  """"jD	G6'2|<<LCG6'2|<<Lj568iAAGy,//7tmS11J
#  ...$  """"
  """"			DD	sDD,;D,ABD,D,(D>D,D))D,,
D:9D:cd|zS)Nz	/LIBPATH:r>rFdirs  rlibrary_dir_optionzMSVCCompiler.library_dir_options
S  rc td)Nz<don't know how to set runtime library search path for MSVC++)rrDs  rruntime_library_dir_optionz'MSVCCompiler.runtime_library_dir_options$LNN	Nrc,||Sr)r)rFrs  rlibrary_optionzMSVCCompiler.library_options$$S)))rc|r|dz|g}n|g}|D]_}|D]Z}tj|||}tj|r|ccS[`dS)N_d)rtrr|rexists)rFdirsrr	try_namesrEr.libfiles        rfind_library_filezMSVCCompiler.find_library_files	tS)III		C!
#
#',,sD,A,A4,H,HII7>>'**#"NNNNN#
#4rc|jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)aReturn path to an MSVC executable program.

        Tries to find the program in several places: first, one of the
        MSVC program search paths from the registry; next, the directories
        in the PATH environment variable.  If any of those work, return an
        absolute path that is known to exist.  If none of them work, just
        return the original program name, 'exe'.
        Pathr)rrtrr|rrrrl)rFexerZfns    rrzMSVCCompiler.find_exes		Abgooa00#66Bw~~b!!
			
F#))#..		Abgooa0055Bw~~b!!
			

r)rrrr)rr)NNNrNNN)NrN)
NNNNNrNNNN)r) r8r9r:r;
compiler_typeexecutablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format
exe_extensionrHrrrrr-rrr4rFrHrJrQrr>rrrr*s66MKFM---OWNWN$o5$%'56NMM!!,22)M	!	!	!	!Q Q Q Q n$%$&@HIAERRRRp&* !&*CCCC:"&  ]C]C]C]C~
9
9
9###0%%%V!!!NNN***$rr)r
)0r;rtrrir:distutils.errorsrrrrrdistutils.ccompilerrr		distutilsr
distutils.utilrwinreg	OpenKeyExr!EnumKeyr#	EnumValuer+errorr"
HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTrplatformmaxsizeNATIVE_WIN64rCrYrXrrr@rrryrrrrrr>rr<module>rmsk
			



				??????????????::::::::''''''




^
<				!		"		!	#
'?CK%,?
3CGJK>HH6G>K2H
<.<.<.<.<.<.<.<.|,,,,,,,,\2			!!!F&&&&R



S==
 
 !Kg!U
V
VVjjjjj9jjjjjr