
    <h4X                       S SK Jr  S SKrS SKrS SKrSSKJr  SSKJr  SSKJ	r	  SSKJ
r
Jr  SSKJr  SS	KJr  SS
KJrJr  SSKJrJrJrJr  SSKJrJrJrJrJrJrJrJrJ r J!r!J"r"  SSK#J$r$  SSK%J&r&J'r'  \RP                  (       aN  S SK)J*r*J+r+  SSK,J-r-  SSKJ.r.J/r/  SSKJ0r0  SSK1J2r2   " S S\+5      r3 " S S\+5      r4 " S S\+5      r5 " S S\+5      r6 " S S\5      r7g)    )annotationsN   )mesonlib)dependencies)build)mlogcoredata)MachineChoice)	OptionKey)OverrideProgramExternalProgram)ENV_KWENV_METHOD_KWENV_SEPARATOR_KWenv_convertor_with_method)MesonInterpreterObject
FeatureNewFeatureDeprecatedtyped_pos_argsnoArgsFlattening	noPosargsnoKwargstyped_kwargs	KwargInfoInterpreterExceptionInterpreterObject   )MesonVersionString)	NATIVE_KWNoneType)Literal	TypedDict)Compiler)TYPE_kwargsTYPE_var)ExecutableSerialisation)Interpreterc                  *    \ rS rSr% S\S'   S\S'   Srg)FuncOverrideDependency!   mesonlib.MachineChoicenativeT.Optional[bool]static N__name__
__module____qualname____firstlineno____annotations____static_attributes__r/       ځ/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/interpreter/mesonmain.pyr)   r)   !   s    &&  r7   r)   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	AddInstallScriptKW&   boolskip_if_destdirstrinstall_tagdry_runr/   Nr0   r/   r7   r8   r:   r:   &   s    r7   r:   c                       \ rS rSr% S\S'   Srg)NativeKW,   r+   r,   r/   Nr0   r/   r7   r8   rB   rB   ,   s    &&r7   rB   c                  *    \ rS rSr% S\S'   S\S'   Srg)AddDevenvKW0   z#Literal['set', 'prepend', 'append']methodr>   	separatorr/   Nr0   r/   r7   r8   rE   rE   0   s    33r7   rE   c                    ^  \ rS rSrSuU 4S jjr        SvS jr      SwS jr\" S\\	R                  \R                  \4\\	R                  \R                  \R                  \R                   \4S9\" S\" S\SS	S
9\" S\\4SS9\" S\SSS
95      \R,                  " S5            SxS j5       5       5       r\" S\\	R                  \4\\	R                  \4S9\\R,                  " S5            SyS j5       5       5       r\" S\\	R                  \4\\	R                  \4S9\\" SS5      \R,                  " S5            SyS j5       5       5       5       r\\\R,                  " S5      SzS j5       5       5       r\\\R,                  " S5      SzS j5       5       5       r\\\R,                  " S5      SzS j5       5       5       r\\\ " SS S!5      \R,                  " S"5      SzS# j5       5       5       5       r!\\\ " S$S S%5      \R,                  " S&5      SzS' j5       5       5       5       r"\\\" S(S 5      \R,                  " S)5      SzS* j5       5       5       5       r#\\\" S+S 5      \R,                  " S,5      SzS- j5       5       5       5       r$\\\" S.S/5      \R,                  " S05      SzS1 j5       5       5       5       r%\\\" S2S/5      \R,                  " S35      SzS4 j5       5       5       5       r&\\\ " S5S6S75      \R,                  " S85      S{S9 j5       5       5       5       r'\\\" S:S65      \R,                  " S;5      S{S< j5       5       5       5       r(S|S= jr)\\\R,                  " S>5      S{S? j5       5       5       r*\" S@\5      \" S@\+5      \R,                  " SA5      S}SB j5       5       5       r,\\\R,                  " SC5      S{SD j5       5       5       r-\\\R,                  " SE5      S{SF j5       5       5       r.\" SG\5      \\R,                  " SH5      S~SI j5       5       5       r/\" SJSK5      \" SJ\\	R                  \\R                  45      \\R,                  " SL5      SSM j5       5       5       5       r0\" SN\+\" SO\\4SS95      \" SN\\1Rd                  5      \" SNSP5      \R,                  " SQ5      SSR j5       5       5       5       r3 S     SSS jjr4\\\R,                  " ST5      SzSU j5       5       5       r5\" SVSW5      \\\R,                  " SX5      SSY j5       5       5       5       r6\" SZS5      \\\R,                  " S[5      SS\ j5       5       5       5       r7\\\R,                  " S]5      SS^ j5       5       5       r8\\\R,                  " S_5      SzS` j5       5       5       r9SSa jr:\;\ " SbS/Sc5      \" Sb\\</Sd9\\R,                  " Se5      SSf j5       5       5       5       5       r=\;\" SgSP5      \" Sg\\</Sd9\" Sg\+5      \R,                  " Sh5      SSi j5       5       5       5       5       r>\" SjS/5      \" Sj\5      \" Sj\+5      \R,                  " Sk5      SSl j5       5       5       5       r?\" SmS/5      \" Sn\@\AR                  " SoS95      \" Sm\\C\D\	R                  45      \R,                  " Sm5          SSp j5       5       5       5       rF\\\" SqS5      \R,                  " Sr5      SzSs j5       5       5       5       rGStrHU =rI$ )	MesonMain5   c                L   > [         TU ]  UR                  S9  Xl        X l        g )N
subproject)super__init__rN   r   interpreter)selfr   rQ   	__class__s      r8   rP   MesonMain.__init__6   s$    K$:$:;
&r7   c                h   / n[        U[        R                  [        45      (       a@  [        R
                  " SU 3SU R                  U R                  S9  UR                  U5        Oz[        U[        R                  5      (       a.  [        R
                  " SU 3SU R                  U R                  S9  U R                  R                  U/5      nUR                  U5        UR                  U5        U R                  R                  R                  USS9nU R                  R                  Ul        U$ )Nz?Passing executable/found program object to script parameter of 0.55.0locationz+Passing file object to script parameter of 0.57.0T)verbose)
isinstancer   
Executabler   r   
single_userN   current_nodeappendr   FilerQ   find_program_implextendbackendget_executable_serialisation)rR   nameprogargslargsfoundess          r8   _find_source_scriptMesonMain._find_source_script;   s    JLdU--?@@!!$cdhci"j"*DOOdFWFWYLL$..%%(STXSY&Z&.$J[J[]$$66v>ELLT%%BB5RVBW((33	r7   c           
        / nSnU GH  n[        U[        5      (       a  UR                  U5        M,  [        U[        R                  5      (       aB  SnUR                  UR                  U R                  R                  R                  5      5        M  [        U[        R                  [        R                  [        R                  45      (       a  SnUR                  UR                  5        Vs/ s H1  n[        R                   R#                  UR%                  5       U5      PM3     sn5        [        U[        R                  5      (       a  SUR&                  l        GM\  SUl        GMf  UR                  UR*                  5        SnGM     U(       a9  [,        R.                  " SU S3SU R                  R0                  U R2                  S9  U$ s  snf )NFTz	Calling "zP" with File, CustomTarget, Index of CustomTarget, Executable, or ExternalProgramrV   rW   )r[   r>   r_   r   r`   rel_to_builddirrQ   environment
source_dirr   BuildTargetCustomTargetCustomTargetIndexrb   get_outputsospathjoin
get_subdirtargetbuild_by_defaultcommandr   r]   rN   r^   )rR   re   rg   script_argsnewaos          r8   _process_script_argsMesonMain._process_script_argsP   sc    A!S!!""1%Ax}}--""1#4#4T5E5E5Q5Q5\5\#]^A 1 153E3EuG^G^_``""Q]]_#]_BGGLL$C_#]^ a!8!89904AHH-)-A&""199-) , !!D6 "1 1$**55@Q@QS ' $^s   18G
zmeson.add_install_script)varargsr=   FrY   )defaultsincer?   z0.60.0)r   r@   z1.1.0add_install_scriptc                    U R                  SUS   5      nU R                  SUS   U5      nUS   Ul        US   Ul        US   Ul        U R
                  R                  R                  U5        g )Nr   r   r   r=   r?   r@   )r   rk   r=   tagr@   r   install_scriptsr_   rR   rg   kwargsr|   scripts        r8   add_install_script_method#MesonMain.add_install_script_methodu   sr    " //0Dd1gN))*>QU!'(9!:M*
	*

""))&1r7   zmeson.add_postconf_scriptadd_postconf_scriptc                    U R                  SUS   5      nU R                  SUS   U5      nU R                  R                  R	                  U5        g )Nr   r   r   )r   rk   r   postconf_scriptsr_   r   s        r8   add_postconf_script_method$MesonMain.add_postconf_script_method   sL     //0EtAwO))*?a+V

##**62r7   zmeson.add_dist_scriptz0.48.0add_dist_scriptc                   US   (       a5  [         R                  " SSU R                  R                  U R                  S9  U R                  R                  S:w  a5  [         R                  " SSU R                  R                  U R                  S9  U R                  SUS   5      nU R                  SUS	   U5      nU R                  R                  R                  U5        g )
Nr   z1Calling "add_dist_script" with multiple argumentsz0.49.0rW    z)Calling "add_dist_script" in a subproject0.58.0r   r   )
r   r]   rQ   rN   r^   r   rk   r   dist_scriptsr_   r   s        r8   add_dist_script_method MesonMain.add_dist_script_method   s     7!!"U"*D,<,<,G,GRVRcRce&&",!!"M"*D,<,<,G,GRVRcRce//0A47K))*;T!WkR

&&v.r7   current_source_dirc                    U R                   R                  R                  nU R                   R                  nUS:X  a  U$ [        R
                  R                  X45      $ Nr   )rQ   ro   rp   subdirru   rv   rw   rR   rg   r   srcsubs        r8   current_source_dir_method#MesonMain.current_source_dir_method   sK     **55%%"9Jww||C%%r7   current_build_dirc                    U R                   R                  R                  nU R                   R                  nUS:X  a  U$ [        R
                  R                  X45      $ r   )rQ   ro   	build_dirr   ru   rv   rw   r   s        r8   current_build_dir_method"MesonMain.current_build_dir_method   sK     **44%%"9Jww||C%%r7   rc   c                B    U R                   R                  R                  $ N)rQ   rc   re   rR   rg   r   s      r8   backend_methodMesonMain.backend_method   s     '',,,r7   zmeson.source_rootz0.56.0zFuse meson.project_source_root() or meson.global_source_root() instead.source_rootc                B    U R                   R                  R                  $ r   rQ   ro   rp   r   s      r8   source_root_methodMesonMain.source_root_method       
 ++666r7   zmeson.build_rootzDuse meson.project_build_root() or meson.global_build_root() instead.
build_rootc                B    U R                   R                  R                  $ r   rQ   ro   r   r   s      r8   build_root_methodMesonMain.build_root_method       
 ++555r7   zmeson.project_source_rootproject_source_rootc                    U R                   R                  R                  nU R                   R                  nUS:X  a  U$ [        R
                  R                  X45      $ r   )rQ   ro   rp   root_subdirru   rv   rw   r   s        r8   project_source_root_method$MesonMain.project_source_root_method   sK    
 **55**"9Jww||C%%r7   zmeson.project_build_rootproject_build_rootc                    U R                   R                  R                  nU R                   R                  nUS:X  a  U$ [        R
                  R                  X45      $ r   )rQ   ro   r   r   ru   rv   rw   r   s        r8   project_build_root_method#MesonMain.project_build_root_method   sK    
 **44**"9Jww||C%%r7   zmeson.global_source_rootr   global_source_rootc                B    U R                   R                  R                  $ r   r   r   s      r8   global_source_root_method#MesonMain.global_source_root_method   r   r7   zmeson.global_build_rootglobal_build_rootc                B    U R                   R                  R                  $ r   r   r   s      r8   global_build_root_method"MesonMain.global_build_root_method   r   r7   zmeson.has_exe_wrapperrV   z(use meson.can_run_host_binaries instead.has_exe_wrapperc                "    U R                  5       $ r   _can_run_host_binaries_implr   s      r8   has_exe_wrapper_method MesonMain.has_exe_wrapper_method       
 //11r7   zmeson.can_run_host_binariescan_run_host_binariesc                "    U R                  5       $ r   r   r   s      r8   can_run_host_binaries_method&MesonMain.can_run_host_binaries_method  r   r7   c                    U R                   R                  R                  5       =(       aM    U R                   R                  R                  5       =(       a"    U R                   R                  R                  S L (       + $ r   )r   ro   is_cross_buildneed_exe_wrapperexe_wrapper)rR   s    r8   r   %MesonMain._can_run_host_binaries_impl  sZ    JJ""113 7JJ""3357JJ""..$6
 	
r7   r   c                J    U R                   R                  R                  5       $ r   )r   ro   r   r   s      r8   is_cross_build_methodMesonMain.is_cross_build_method  s     zz%%4466r7   zmeson.get_compilerget_compilerc                    US   nUS   nU R                   R                  R                  U   n XS   $ ! [         a!    [	        SU SUR                  5        S35      ef = f)Nr   r,   z'Tried to access compiler for language "z", not specified for z	 machine.)rQ   r	   	compilersKeyErrorr   get_lower_case_name)rR   rg   r   cnamefor_machineclists         r8   get_compiler_methodMesonMain.get_compiler_method  s     QX&  ))33K@	[< 	[&)PQVPWWlmx  nM  nM  nO  mP  PY  (Z  [  [	[s	   3 +Ais_unityc                    U R                   R                  R                  R                  R	                  [        S5      5      nUS:H  =(       d&    US:H  =(       a    U R                   R                  5       $ )Nunityonsubprojects)rQ   ro   r	   optstoreget_value_forr   is_subproject)rR   rg   r   optvals       r8   is_unity_methodMesonMain.is_unity_method'  sZ     !!--66??MMiX_N`a~_&M"9"^d>N>N>\>\>^_r7   r   c                6    U R                   R                  5       $ r   )rQ   r   r   s      r8   is_subproject_methodMesonMain.is_subproject_method.  s     --//r7   z!meson.install_dependency_manifestinstall_dependency_manifestc                ,    US   U R                   l        g )Nr   )r   dep_manifest_namer   s      r8   "install_dependency_manifest_method,MesonMain.install_dependency_manifest_method4  s     (,Aw

$r7   zmeson.override_find_programz0.46.0override_find_programc                T   Uu  p4[        U[        R                  5      (       a  UR                  U R                  R
                  R                  U R                  R
                  R                  5      n[        R                  R                  U5      (       d  [        SU S35      e[        X0R                  R                  U/S9nOI[        U[        R                  5      (       a*  [        R                   " X@R                  R                  5      nU R                  R#                  X45        g )NzTried to override z! with a file that does not exist.)r{   )r[   r   r`   absolute_pathrQ   ro   rp   r   ru   rv   existsr   r   project_versionr   r\   OverrideExecutableadd_find_program_override)rR   rg   r   re   exeabspaths         r8   override_find_program_method&MesonMain.override_find_program_method:  s    
 	c8==))''(8(8(D(D(O(O(,(8(8(D(D(N(NPG77>>'***-?vEf+ghh!$(8(8(H(HSZR[\CU--..**30@0@0P0PQC224=r7   zmeson.override_dependencyr.   z0.54.0override_dependencyc                V   Uu  p4U(       d  [        S5      e[        R                  " U5      nX4l        [        SU R                  R
                  S9nU R                  R                  R                  R                  U5      n[        U[        5      (       d   S5       eUS   nUcd  U R                  X4US S9  US:X  a  U R                  X4USS9  g US:X  a  U R                  X4US	S9  g U R                  X4USS9  U R                  X4US	S9  g U R                  X4US SS
9  U R                  X4X'S9  g )Nz3First argument must be a string and cannot be emptydefault_libraryrM   zfor mypyr.   )r.   TsharedF)r.   
permissive)r   copyre   r   rQ   rN   r	   r   r   r[   r>   _override_dependency_impl)rR   rg   r   re   depoptkeyr  r.   s           r8   override_dependency_method$MesonMain.override_dependency_methodJ  s8    	&'\]] iin,9I9I9T9TU**33<<JJ6R/3//;;/!> **4fT*J(*..t&.N H,..t&.O..t&.N..t&.O **4fTVZ*[**4f*Lr7   c                F   [         R                  " SUR                  5       5      nUc  US	 OXFS'   [        R                  " X5      nUS   nU R
                  R                  U   R                  U5      n	U	(       ac  U(       a  g Sn
[        R                  " U	R                  R                  U	R                  R                  5      n[        U
R                  X5      5      e[
        R                  " X R                   R"                  5      U R
                  R                  U   U'   g )NzT.Dict[str, T.Any]r.   r,   zUTried to override dependency {!r} which has already been resolved or overridden at {})Tcastr
  r   get_dep_identifierr   dependency_overridesgetr   get_error_location_stringnodefilenamelinenor   formatDependencyOverriderQ   r^   )rR   re   r  r   r.   r	  nkwargs
identifierr   overridemrX   s               r8   r  #MesonMain._override_dependency_impl|  s     &&-v{{}=>! &H!44TC
X&::22;?CCJOgA55hmm6L6LhmmNbNbcH&qxx'?@@$$S*:*:*G*GH 	

''4Z@r7   r   c                p    U R                   R                  U R                  R                     R                  $ r   )r   dep_manifestrQ   active_projectnameversionr   s      r8   project_version_method MesonMain.project_version_method  s+     zz&&t'7'7'J'JKSSSr7   zmeson.project_license()z0.45.0project_licensec                p    U R                   R                  U R                  R                     R                  $ r   )r   r"  rQ   r#  licenser   s      r8   project_license_method MesonMain.project_license_method  s+    
 zz&&t'7'7'J'JKSSSr7   zmeson.project_license_files()project_license_filesc                    U R                   R                  U R                  R                     R                   Vs/ s H  o3S   PM	     sn$ s  snf )Nr   )r   r"  rQ   r#  license_files)rR   rg   r   ls       r8   project_license_files_method&MesonMain.project_license_files_method  sA    
 #jj55d6F6F6Y6YZhhih!hiiis   Ar$  c                T    [        U R                  R                  R                  5      $ r   )r   rQ   r	   r$  r   s      r8   version_methodMesonMain.version_method  s!     "$"2"2";";"C"CDDr7   project_namec                .    U R                   R                  $ r   )rQ   r#  r   s      r8   project_name_methodMesonMain.project_name_method  s     222r7   c                     U R                   R                  R                  U   U   $ ! [         a'    Ub  Us $ [	        SUR                  5        SU 35      ef = f)zGShared implementation for get_cross_property and get_external_property.zUnknown property for z
 machine: )rQ   ro   
propertiesr   r   r   )rR   propnamefallbackmachines       r8   __get_external_property_impl&MesonMain.__get_external_property_impl  sl    	t##//::7CHMM 	t#&)>w?Z?Z?\>]]ghpgq'rss	ts   %( A Azmeson.get_cross_propertyz)Use meson.get_external_property() instead)optargsget_cross_propertyc                J    Uu  p4U R                  X4[        R                  5      $ r   )&_MesonMain__get_external_property_implr
   HOSTrR   rg   r   r;  r<  s        r8   get_cross_property_method#MesonMain.get_cross_property_method  s%     "00]EWEWXXr7   zmeson.get_external_propertyget_external_propertyc                4    Uu  p4U R                  X4US   5      $ )Nr,   )rC  rE  s        r8   get_external_property_method&MesonMain.get_external_property_method  s$     "00VHEUVVr7   zmeson.has_external_propertyhas_external_propertyc                \    US   nX0R                   R                  R                  US      ;   $ )Nr   r,   )rQ   ro   r:  )rR   rg   r   	prop_names       r8   has_external_property_method&MesonMain.has_external_property_method  s2    
 G	,,88CCF8DTUUUr7   
add_devenvro   z0.62.0c                *   US   n[         R                  " U5      nU(       a  [        R                  " SU 35      e[	        X2S   US   5      n[        U[        R                  5      (       d   eU R                  R                  R                  U5        g )Nr   z"add_devenv": rG   rH   )
r   	validatorr   InvalidArgumentsr   r[   r   EnvironmentVariablesdevenvr_   )rR   rg   r   envmsg	converteds         r8   add_devenv_methodMesonMain.add_devenv_method  s     1gs#((>#)?@@-c(3CVKEXY	)X%B%BCCCC

  +r7   zmeson.build_optionsbuild_optionsc                b    U R                   R                  nUc  g[        R                  " U5      $ r   )rQ   user_defined_optionsr	   format_cmd_line_options)rR   rg   r   optionss       r8   build_options_methodMesonMain.build_options_method  s.    
 ""77?//88r7   )r   rQ   )r   z'build.Build'rQ   z'Interpreter')re   r>   rf   z>T.Union[str, mesonlib.File, build.Executable, ExternalProgram]rg   T.List[str]returnz'ExecutableSerialisation')re   r>   rg   zxT.Sequence[T.Union[str, mesonlib.File, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, ExternalProgram]]rd  rc  )rg   zT.Tuple[T.Union[str, mesonlib.File, build.Executable, ExternalProgram], T.List[T.Union[str, mesonlib.File, build.BuildTarget, build.CustomTarget, build.CustomTargetIndex, ExternalProgram]]]r   z'AddInstallScriptKW'rd  None)rg   zkT.Tuple[T.Union[str, mesonlib.File, ExternalProgram], T.List[T.Union[str, mesonlib.File, ExternalProgram]]]r   'TYPE_kwargs'rd  re  )rg   T.List['TYPE_var']r   rf  rd  r>   )rg   rg  r   rf  rd  r<   )rd  r<   )rg   T.Tuple[str]r   
'NativeKW'rd  z
'Compiler')rg   rh  r   rf  rd  re  )rg   zGT.Tuple[str, T.Union[mesonlib.File, ExternalProgram, build.Executable]]r   rf  rd  re  )rg   z%T.Tuple[str, dependencies.Dependency]r   'FuncOverrideDependency'rd  re  )F)re   r>   r  zdependencies.Dependencyr   rj  r.   r-   r	  r<   rd  re  )rg   rg  r   rf  rd  rc  )rg   zT.List[TYPE_var]r   r$   rd  zT.List[mesonlib.File])rg   rg  r   rf  rd  r   )r;  r>   r<  zT.Optional[object]r=  r
   rd  object)rg    T.Tuple[str, T.Optional[object]]r   rf  rd  rk  )rg   rl  r   ri  rd  rk  )rg   rh  r   ri  rd  r<   )rg   z@T.Tuple[T.Union[str, list, dict, mesonlib.EnvironmentVariables]]r   z'AddDevenvKW'rd  re  )Jr1   r2   r3   r4   rP   rk   r   r   r>   r   r`   r   r\   r   rq   rr   rs   r   r   r<   r    r   rG   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   
Dependencyr  r  r%  r*  r0  r3  r7  rC  r   rk  rF  rJ  rO  r   r   evolvelistdictrU  rZ  ra  r6   __classcell__)rS   s   @r8   rJ   rJ   5   s	   '
#a";*##$#
 #J "	hmmU--?hmmU%6%68J8JELcLcetu
 "#T5I-#xA)T5@	 23
2P
2 )	
2 .2	
2 4
2 #	hmm_-hmm_5
 343P3 "	3 '+	3 5 3 	hmm_-hmm_5
 '2/0/P/ "	/ '+	/ 1 3 / 23& 4  & 12& 3  & i(- )  - *H6~m,7 - @  7 )85{|l+6 , }  6 +X634& 5 7  & *H523& 4 6  & *H5237 4 6  7 )84126 3 5  6 .:de/02 1 f  2 -x8562 7 9  2
 ./7 0  7 (#.&	2n-[ . 3 /[ j)` *  ` o.0 /  0 7=;</ =  >/ -x813Y^YiYi8jk56
> 7  l 9
> #(T8,H=
 /l6M6MN+X634(M 5 7 O(MV PUI*:IHLIY]I* /0T 1  T )84/0T 1   5T /956j 7   :j i(E )  E n-3 .  3t 18=hi.fXF23Y 4  G j 
Y -x813I/;56W 7 < J 9 
W -x8137/;56V 7 < 8 9V h'-0@0G0Gh0WXL3dH4Q4Q"RSl+,"/,48, , T Y (, %w/o.9 / 0  9r7   rJ   )8
__future__r   r
  ru   typingr  r   r   r   r   r   r	   r
   r`  r   programsr   r   interpreter.type_checkingr   r   r   r   interpreterbaser   r   r   r   r   r   r   r   r   r   r   
primitivesr   type_checkingr   r    TYPE_CHECKINGtyping_extensionsr!   r"   r   r#   r$   r%   r&   rQ   r'   r)   r:   rB   rE   rJ   r/   r7   r8   <module>r{     s    #  	      $  7 j ja a a a + .??4$72(! !
Y '9 'i 
u9& u9r7   