python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
pythoninfo.cpython-311.pyc

eldZddlZddlZddlZddlZddlZdZGddZdddZdZ	ddd	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ d Z!d!Z"d"Z#d#Z$d$Z%d%Z&d&Z'd'Z(d(Z)d)Z*d*Z+d+Z,d,Z-d-Z.d.Z/d2d/Z0d0Z1e2d1kre1dSdS)3zK
Collect various information about Python to help debugging test failures.
Nc||dSt|}tjdd|}|S)Nz\s+ )strresubstrip)texts C/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/pythoninfo.pynormalize_textrs8|tt99D
6&#t$$D::<<c eZdZdZdZdZdS)
PythonInfoci|_dSN)infoselfs r
__init__zPythonInfo.__init__s
			rc||jvrtd|z|dSt|ts<t|tst	|}|}|sdS||j|<dS)Nzduplicate key: %r)r
ValueError
isinstanceintrr)rkeyvalues   r
addzPythonInfo.adds$)036777=F%%%	eS))
#E

KKMME
	#rcHd|jDS)zU
        Get information as a key:value dictionary where values are strings.
        c4i|]\}}|t|S)r).0rrs   r

<dictcomp>z(PythonInfo.get_infos.<locals>.<dictcomp>-s$DDDJCSZZDDDr)ritemsrs r
	get_infoszPythonInfo.get_infos)s%ED$)//2C2CDDDDrN)__name__
__module____qualname__rrr"rrr
rrsF$EEEEErr	formattercv|D]5}t||d}|||z}||||}|||6dSr)getattr)info_addobjname_fmt
attributesr'attrrnames        r
copy_attributesr00siT4((=$ IdE**Eurcd	t||}n#t$rYdSwxYw|||dSrr)AttributeError)r*r/mod	attr_namers     r
	copy_attrr6;sRY''HT5
!!c	t||}n#t$rYdSwxYw|}|||}|||dSrr2)r*r/r4	func_namer'funcrs       r
	call_funcr;CsrsI&&DFFE	%  HT5r7cd}t|td|t|dtdt|dtdt|dtdtj}t	td	r|d
tj}|d|dD]W}t
t|}|t
|d
d}|s.t
|dd}|r|d
|}|d|z|Xt	td}|rd}nd}|d|t	td}|rd}nd}|d|dS)N)_emscripten_info
_frameworkabiflagsapi_versionbuiltin_module_names	byteorderdont_write_bytecode
executableflags
float_infofloat_repr_style	hash_info
hexversionimplementationint_infomaxsize
maxunicodepathplatform
platlibdirprefixthread_infoversionversion_infowinverzsys.%szsys.androidapilevelgetandroidapilevelzsys.windowsversiongetwindowsversionzsys.getrecursionlimitgetrecursionlimitgetfilesystemencodeerrors/zsys.filesystem_encoding)stdinstdoutstderrencodingerrorszsys.%s.encodinggettotalrefcountz$Yes (sys.gettotalrefcount() present)z#No (sys.gettotalrefcount() missing)zbuild.Py_DEBUG
getobjectszYes (sys.getobjects() present)zNo (sys.getobjects() missing)zbuild.Py_TRACE_REFS)r0sysr;getfilesystemencodinghasattrrYr))	r*r-r^r/streamr_Py_DEBUGr	
Py_TRACE_REFSs	         r
collect_sysrhNsJ6Hc8Z888
h-s4HIII
h,c3FGGG
h/6IJJJ(**Hs/00I&hh(E(G(G(GHH
&111-
5
5d##>6:t44	400	4"*((FF3H"T)84444s.//H554H
t$$$C..M//.H
"D)))))rcddl}|}dtt|}|d||d||d|dd|z}|r|d	|	|}d
D]}||vr|d|d||dS#t$rYdSwxYw)
Nrrzplatform.architecturezplatform.python_implementationzplatform.platformT)aliasedz%s %szplatform.libc_ver)IDNAMEPRETTY_NAMEVARIANT
VARIANT_IDVERSIONVERSION_CODENAME
VERSION_IDz platform.freedesktop_os_release[])
rOarchitecturejoinfilterboolpython_implementationlibc_verrfreedesktop_os_releaseOSError)r*rOarchrx
os_releasers      r
collect_platformr}smOOO  ""D88F4&&''DH
$d+++H
-

+
+
-
-///H
 


t

,
,...(++---4466H0$h///&4466
	

	&
	&C*$$H>>>>_
&
&
&
&
	&
	&



sC99
DDcJddl}|d|dS)Nrzlocale.getencoding)localegetencoding)r*rs  r
collect_localers0MMMH
!6#5#5#7#788888rc|dtd|dtddS)Nzbuiltins.float.float_formatfloatzbuiltins.float.double_formatdouble)r
__getformat__)r*s r
collect_builtinsrsJH
*E,?,?,H,HIIIH
+U-@-@-J-JKKKKKrcddl}t|drx		|d|jd}n#t$r}d|z}Yd}~nd}~wwxYw|d|dS#t
$r!}|jtjkrYd}~dSd}~wwxYwdS)Nr	getrandomzready (initialized)znot seeded yet (%s)zos.getrandom)osrdr
GRND_NONBLOCKBlockingIOErrorrzerrnoENOSYS)r*rstateexcs    r
collect_urandomrs
IIIr;
	
4Q 0111-"
4
4
4-3
4H^U+++++			yEL(()(((((	

s75A
AA	A	AA
B
)BB
cddl}d}d}t||d||dD]}t|d|z||d}t|d|d	|t|d
r2	|}|d|n#t
$rYnwxYwt
d}|jD]k\}}	|	}
|
|vs?|

d
s*|

dr$|
dr|d|z|	lt|dr;|d}|||dd|zdSdS)NrcZ|dvr&ttd|DS|S)N)supports_follow_symlinkssupports_fdsupports_effective_idsc3$K|]}|jVdSr)r#)rr:s  r
	<genexpr>z2collect_os.<locals>.format_attr.<locals>.<genexpr>s$>>dm>>>>>>r)rsortedr.rs  r
format_attrzcollect_os.<locals>.format_attrs>...v>>>>>>>???Lr)r/supports_bytes_environrrrzos.%sr&)	cpu_countgetcwdgetegidgeteuidgetgid
getloadavg	getresgid	getresuidgetuidprocess_cpu_countunamecRdtt|S)N, )rtmapr)groupss r

format_groupsz!collect_os.<locals>.format_groupssyyS&))***rzos.getgroups	getgroupsgetloginzos.login)DAPPDATAAR	ARCHFLAGSARFLAGSAUDIODEVBUILDPYTHONCCCFLAGSCOLUMNSCOMPUTERNAMECOMSPECCPPCPPFLAGSDISPLAYDISTUTILS_DEBUGDISTUTILS_USE_SDKDYLD_LIBRARY_PATHENSUREPIP_OPTIONSHISTORY_FILEHOME	HOMEDRIVEHOMEPATHIDLESTARTUPLANGLDFLAGSLDSHAREDLD_LIBRARY_PATHLINESMACOSX_DEPLOYMENT_TARGETMAILCAPS	MAKEFLAGSMIXERDEVMSSDKPATHPATHEXTPIP_CONFIG_FILEPLATPOSIXLY_CORRECT
PY_SAX_PARSERProgramFileszProgramFiles(x86)RUNNING_ON_VALGRIND
SDK_TOOLS_BINSERVER_SOFTWARESHELLSOURCE_DATE_EPOCH
SYSTEMROOTTEMPTERMTILE_LIBRARYTMPTMPDIRTRAVISTZUSERPROFILEVIRTUAL_ENVWAYLAND_DISPLAYWINDIR_PYTHON_HOSTRUNNER_PYTHON_HOST_PLATFORM_PYTHON_PROJECT_BASE_PYTHON_SYSCONFIGDATA_NAME__PYVENV_LAUNCHER__ASAN_OPTIONSLSAN_OPTIONSMSAN_OPTIONSTSAN_OPTIONS
UBSAN_OPTIONS)PYTHONLC_VS	COMNTOOLSzos.environ[%s]umaskzos.umaskz0o%03o)
rr0r;rdrrz	frozensetenvironr!upper
startswithendswithr)r*rrr-r:rloginENV_VARSr/rrmasks            r

collect_osrs
IIIJHb':MMMM
6
6	(GdNB5555+++hK=QQQQr:(	(KKMME
HZ''''			
D	GGGHPz''))55e

X011

%%

+0..*E*E

H%,e444r7.xx{{
X_-----..s B
B
Bc	ddl}n#t$rYdSwxYwddl}|}	||}n#t
$rd}YnwxYw|d|z||nd|dSt
|drV||j|j	}d
tt|}|d|dSdS)Nrzpwd.getpwuid(%s)z
<KeyError>getgrouplistrzos.getgrouplist)
pwdImportErrorrrgetpwuidKeyErrorrdrpw_namepw_gidrtrr)r*rruidentryrs      r
collect_pwdr
bs%




III
))++CS!!
H

$'UU\;;;
}	r>"",==3sF++,,"F+++++,,s
AAAc	ddl}n#t$rYdSwxYwd}d}t||d||t|ds5t	|dd}d	|vr|d
d	dSd|vr|d
ddSdSdS)Nrc:t|trd|zS|S)Nz%#x)rrrs  r
rz%collect_readline.<locals>.format_attrs#eS!!	5= Lr)_READLINE_VERSION_READLINE_RUNTIME_VERSION_READLINE_LIBRARY_VERSIONzreadline.%sr&r__doc__zlibedit readlinezreadline.libraryzGNU readline)readlinerr0rdr))r*rrr-docs     r
collect_readliner}sJ
Hh
z)++++88999h	2..$$H');<<<<<
s
"
"H'88888
99
#
"
cddl}	|gd|j|jd}|d}|jrdSn#t
$rYdSwxYw|d}|d|dS)Nr)gdbz-nx	--versionTr\r]universal_newlinesgdb_version)
subprocessPopenPIPEcommunicate
returncoderz
splitlines)r*rprocrSs    r
collect_gdbr#s
 ; ; ;'1'137 99""$$Q'?	F	  ""1%GH]G$$$$$sAA
AAc	ddl}d}t||d|n#t$rYnwxYw	ddl}|}|dd}|d|dS#t$rYdSwxYw)Nr)
TK_VERSIONTCL_VERSIONz
tkinter.%sr
patchlevelztkinter.info_patchlevel)_tkinterr0rtkinterTclcall)r*r(r-r)tclr's      r
collect_tkinterr-sF3
(L*EEEE	



8kkmmXXfl33
*J77777



s
((A((
A65A6cdddl}|d|d}t||d|t|drgdD]f}	tjd5||}dddn#1swxYwY|d	|z|U#t$rYawxYwdSdS)
Nrz	time.time)altzonedaylighttimezonetznameztime.%sget_clock_info)clock	monotonicperf_counterprocess_timethread_timetimeT)recordztime.get_clock_info(%s))r9r0rdwarningscatch_warningsr3r)r*r9r-r4
clock_infos     r
collect_timer>sBKKKH[$))++&&&JHdIz:::t%&&H=
	H
	HE
H,D999<<!%!4!4U!;!;J<<<<<<<<<<<<<<<2U:JGGGG	



HH
	H
	Hs6B!B7BB	B
B	B
B+*B+cX	ddl}n#t$rYdSwxYwt|d|ddS)Nrzcurses.ncurses_versionncurses_version)cursesrr6)r*rAs  r
collect_cursesrBsR



h0&:KLLLLLrcz	ddl}n#t$rYdSwxYw|d|jdS)Nrzdatetime.datetime.now)datetimernow)r*rDs  r
collect_datetimerFs^
H
$h&7&;&;&=&=>>>>>rcddl}|d|dD]>}||}|dkr|s t|}|d|z|?|d}|od|v}|rd}nd	}|d
|dD]-}||}|rd}nd
}|d||.dS)Nrzsysconfig.is_python_build)ABIFLAGSANDROID_API_LEVELrCCSHAREDrCFLAGSFORSHAREDCONFIG_ARGS
HOSTRUNNER
HOST_GNU_TYPEMACHDEP	MULTIARCHOPT	PY_CFLAGSPY_CFLAGS_NODISTPY_CORE_LDFLAGS
PY_LDFLAGSPY_LDFLAGS_NODISTPY_STDMODULE_CFLAGSrfPy_ENABLE_SHAREDPy_NOGILrSOABIabs_builddir
abs_srcdirrQsrcdirrIz
sysconfig[%s]rRz-DNDEBUGz!ignore assertions (macro defined)z$build assertions (macro not defined)zbuild.NDEBUG)WITH_DOC_STRINGSWITH_DTRACEWITH_FREELISTS
WITH_PYMALLOC
WITH_VALGRINDYesNozbuild.)	sysconfigis_python_buildget_config_varr)r*rer/rrRNDEBUGr	s       r
collect_sysconfigris5H
()*C*C*E*EFFF"0"0:((..&&&u&u%%4'////((55I3J)3F
524H^D!!!((((..	DDD$$''''((rchddl}	ddl}n#t$rYdSwxYw	ddl}n#t$rd}YnwxYwd}d}t	||d||d||jfd|fd|ffD]\}}d	}t	||d
|d|dd
g}|Gt|dr7|
}	||	d|	df|D]0}	|j|}
n#t$rYwxYw|d|z|
1dS)Nrc:|drd|zS|S)NOP_z%#8xrrs  r
rz collect_ssl.<locals>.format_attr9s%??5!!	E>!Lr)OPENSSL_VERSIONOPENSSL_VERSION_INFOHAS_SNIOP_ALL
OP_NO_TLSv1_1zssl.%sr&
SSLContextdefault_https_contextstdlib_context)minimum_versionmaximum_versionprotocoloptionsverify_modezssl.z.%sOPENSSL_CONF
SSLKEYLOGFILEget_default_verify_pathszssl.environ[%s])rsslr_sslr0rsPROTOCOL_TLS_CLIENT_create_default_https_context_create_stdlib_contextrdr}extendrr)r*rrrrr-r/ctx	env_namespartsrs           r
collect_sslr.s
III



JHc8Z;OOOO
s~~c&=>>?	 #"C"C"E"EF	355778EE	c


	#'7d'7'7'7DDDD1IGD*DEE--//%(E!H-...22	Jt$EE			H	"T)5111122s*
"11
D
DDc	ddl}n#t$rYdSwxYw	|}|d|dS#ttf$rt
jdkrYdSwxYw)Nrzsocket.hostnamewasi)socketrgethostnamerzr3rbrO)r*rhostnames   r
collect_socketrcs



.%%''	"H-----
^$<6!!"!!s
;"A! A!c\	ddl}n#t$rYdSwxYwd}t||d|dS)Nr)sqlite_versionz
sqlite3.%s)sqlite3rr0)r*rr-s   r
collect_sqliterssU%JHg|Z@@@@@rc\	ddl}n#t$rYdSwxYwd}t||d|dS)Nr)ZLIB_VERSIONZLIB_RUNTIME_VERSIONzzlib.%s)zlibrr0)r*rr-s   r
collect_zlibr}sU:JHdIz:::::rc`	ddlm}n#t$rYdSwxYwd}t||d|dS)Nr)expat)
EXPAT_VERSIONzexpat.%s)xml.parsersrrr0)r*rr-s   r

collect_expatrs_%%%%%%%$JHeZ<<<<<	
c\	ddl}n#t$rYdSwxYwd}t||d|dS)Nr)__libmpdec_version__z_decimal.%s)_decimalrr0)r*rr-s   r
collect_decimalrsU+JHh
zBBBBBrch	ddl}n#t$rYdSwxYwdD]}t|d|||dS)Nr)LONG_MAXPY_SSIZE_T_MAXPy_C_RECURSION_LIMIT
SIZEOF_TIME_TSIZEOF_WCHAR_Tz
_testcapi.)	_testcapirr6)r*rr/s   r
collect_testcapirsyBB	(///DAAAABBrc	ddl}n#t$rYdSwxYwt|d|ddD]}t|d|||dS)Nrzpymem.allocatorpymem_getallocatorsname)SIZEOF_PYGC_HEADSIZEOF_PYOBJECTz_testinternalcapi.)_testinternalcapirr;r6)r*rr/s   r
collect_testinternalcapirs     h)+<>WXXXRR	(7779JDQQQQ	RRrc	ddl}n#t$rYdSwxYwdt|D}|D]6}t||}||}|d|z|7t|d|ddS)Nrc<g|]}|d|S)RLIMIT_rm)rr.s  r

<listcomp>z$collect_resource.<locals>.<listcomp>s)
K
K
Kt	0J0J
Kd
K
K
Krzresource.%szresource.pagesizegetpagesize)resourcerdirr)	getrlimitr;)r*rlimitsr/rrs      r
collect_resourcersL
Ks8}}
K
K
KF..h%%""3''%u----
h+X}EEEEErcddl}	ddlm}n#t|jf$rYdSwxYwdt|D}t
||d|dS)Nr)test_socketc<g|]}|d|S)HAVE_rm)rr/s  r
rz'collect_test_socket.<locals>.<listcomp>s8///4__W--/$///rztest_socket.%s)unittesttestrrSkipTestrr0)r*rrr-s    r
collect_test_socketrsOOO$$$$$$$*+//3{#3#3///JHk+;ZHHHHHs
""ch	ddlm}n#t$rYdSwxYwd}t||d|t	|d|dt	|d|d|d	|d
|d|d

|d|d
dS)Nr)support)	
MS_WINDOWShas_fork_supporthas_socket_supporthas_strftime_extensionshas_subprocess_support
is_android
is_emscripten	is_jythonis_wasiz
support.%szsupport._is_gui_available_is_gui_availablezsupport.python_is_optimizedpython_is_optimizedz%support.check_sanitizer(address=True)T)addressz$support.check_sanitizer(memory=True))memoryz support.check_sanitizer(ub=True))ub)rrrr0r;check_sanitizer)r*rr-s   r
collect_supportrs       
JHg|Z@@@
h3W>QRRR
h5w@UVVVH
4

$
$T
$
2
2444H
3

$
$D
$
1
1333H
/

$
$
$
-
-/////rc	ddlm}n#t$rYdSwxYwdD])}t||}|d||*dS)Nr)	os_helper)can_symlink	can_xattr	can_chmodcan_dac_overridezsupport_os_helper.)test.supportrrr))r*rr/r:s    r
collect_support_os_helperrs*******66y$'',d,,ddff555566rc	ddlm}n#t$rYdSwxYwd}t||d|dD])}t	||}|d||*dS)Nr)
socket_helper)IPV6_ENABLEDhas_gethostnamezsupport_socket_helper.%s)
tcp_blackholezsupport_socket_helper.)rrrr0r))r*rr-r/r:s     r
collect_support_socket_helperrs.......JHm-GTTT::}d++0$00$$&&9999	::rc`	ddlm}n#t$rYdSwxYwd}t||d|dS)Nr)threading_helper)can_start_threadzsupport_threading_helper.%s)rrrr0)r*rr-s   r
 collect_support_threading_helperrsc1111111JH.0MzZZZZZrcddl}ddl}|d}|sdS	ddl}||}n$#t
$r|}YnwxYw|d	|||j|j	d}n#t$rYdSwxYw|d}|jrdS|
d}t|}|d|dS)NrrrTrz
CC.version)rrergshlexsplitrappendrrSTDOUTrzrr r!r)	r*rrerrargsr"r\r	s	         r

collect_ccr#sP		!	!$	'	'B
{{2xxzzKK	'1'1'837 99		




"Fq!D$DH\4     s!=AA7#B
B)(B)c		ddlm}n#t$rYdSwxYw|ddt	t
|dS)Nr)
_GDBM_VERSIONzgdbm.GDBM_VERSION.)_gdbmrrrtrr)r*rs  r
collect_gdbmrFso'''''''
H
 #((3sM+B+B"C"CDDDDDrc		ddlm}n#t$rYdSwxYw|}t|D]A}||}t|D]'}||d|dt	||(BdS)Nr)get_configs[rr)rrrrrepr)r*rall_configsconfig_typeconfigrs      r
collect_get_configrOs1111111+--Kk**GG[)&>>	G	GCHccc2D4E4EFFFF	GGGrc2ddl}t||dddS)Nrz
subprocess.%s)_USE_POSIX_SPAWN)rr0)r*rs  r
collect_subprocessr]s)Hj/;PQQQQQrc 	ddl}n#t$rYdSwxYwt|dsdS|d}|j}	|j}||_d|_t|}n#t$rd}YnwxYw|d|	ddl
}|tj
}|d|n#ttf$rYnwxYwddl}	|gd|j|jd	d
}	|	\}
}|	jrd}
|
D]}|}|d
r6|d
}|r|d|a|dr5|d}|r|d|n#t.$rYnwxYw	|dgd
|j|jd
}	|	d}
|	jrd}
|
}
|
d}|r|d|dSdS#t.$rYdSwxYw)NrWinDLLntdllrz<function not available>zwindows.RtlAreLongPathsEnabledzwindows.dll_path)wmicrgetzCaption,Versionz/valueoemT)r\r]r^r	rzCaption=zwindows.version_captionzVersion=zwindows.versionver)shellr\r]r	zwindows.ver)ctypesrrdrc_ubyteRtlAreLongPathsEnabledrestypeargtypesrvr3_winapiGetModuleFileNamerb	dllhandlerrrrr r!rrremoveprefixrz)
r*rrBOOLEANrresr
dll_pathrr"outputr]lines
             r
collect_windowsrbsb



68$$MM'""EnG-!&!=*1&*,'))++,,)))()
H
-s333
,,S];;#X....(



6 R R R'1'1).%)	 ++
))++?	F%%''		6		6D::<<Dz**
6((44::<<>H6===,,
6((44::<<6H.555		6



*t'1'1%) ++!!##A&?	F  ""1%	*H]D)))))	*	*sV
A44BB/CCCAG&&
G32G37AI??
J
J
c@	ddl}n#t$rd}YnwxYw|t|d|d	tdd5}|}dddn#1swxYwY|r|d|dSdS#t$rYdSwxYw)Nrzfips.openssl_fips_mode
get_fips_modez/proc/sys/crypto/fips_enabledzutf-8)r^zfips.linux_crypto_fips_enabled)_hashlibrr;openrrstriprz)r*rfprs    r
collect_fipsrs&(4hPPP

1G
D
D
D	*;;==''))D	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	=H5t<<<<<	=	=



s@B'A2&B2A66B9A6:B
BBcJddl}|d|dS)Nrztempfile.gettempdir)tempfile
gettempdir)r*rs  r
collect_tempfilers0OOOH
"H$7$7$9$9:::::rc	ddlm}n#t$rYdSwxYw|dd|dS)Nr)utilszlibregrtests.build_infor)test.libregrtestr rrtget_build_info)r*r s  r
collect_libregrtest_utilsr#sq*******
H
&1E1E1G1G(H(HIIIIIrcLd}|j}gttttt
ttttttttttt t"t$t&t(t*t,t.t0t2t4t6t8t:t<t>t@tBtDtFtHRD]}	||#tJ$rd}tMd|j'ztPj)tUj+tPj)tMtPj)tPj),YwxYw|S)NFTzERROR: %s() failedfile)-rrrrrBrFrrrr#rrrrr}r
rrrrrrrhrirrrr>r-rrr#rrrrr	Exceptionprintr#rbr]	traceback	print_excflush)rerrorr*collect_funcs    r
collect_infor.sHExH+		+	
+	+	+	+	+	+	+	+	+	+ 	!+"	#+$	%+&	'+(	)+*	++,	-+.	/+0	1+2	3+4	5+6	7+8	9+:	!;+<	=+>	?+@	A+B	C+D	E+F	"G+L	M+N	O+P	"Q+R	&S+T	)U++44X	L""""			E&,*?@z
#
#
#
#SZ0000sz""""J
	LsDBF! F!cPd}t|tdt|zt|}t|}|D]/\}}|dd}t|d|0dS)NzPython debug information=
rz: )r(lenr"rr!replace)rr&titleinfosrrs      r
	dump_infor6	s&E	%LLL	#E


	GGGNNE5;;==!!E''
U

dC((
###uu%&&&&''rct}t|}t||r?ttdtjt	jddSdS)Nz"Collection failed: exit with errorr%r)rr.r6r(rbr]exit)rr,s  r
mainr9se<<DE
dOOO

2DDDDr__main__r)3rrrrbr)r;rrr0r6r;rhr}rrrrr
rr#r-r>rBrFrirrrrrrrrrrrrrrrrrrrrrr#r.r6r9r#rrr
<module>r;s{
				



EEEEEEEE:GK<@A*A*A*H"&"&"&J999LLL
&J.J.J.Z,,,6999:%%%(888&HHH6MMM???=(=(=(@222222j
.
.
. AAA;;;===CCC
B
B
B RRRFFF
I
I
I///<
6
6
6 :::&	[	[	[ ! ! !FEEEGGGRRR
E*E*E*P


&;;;JJJ:::z
'
'
'
'zDFFFFFr