+
    id                      a  0 t $ R t^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIHt ^ RIHtHt ^ RIHtHt ^ RIHtHt ^ RIHtHt ^ RIHt ]'       d   ^ R	IHt ]P<                  ! ]4      t ]
PB                  ]
PD                  ,          ]
PF                  ,          ]
PH                  ,          ]
PJ                  ,          ]
PL                  ,          t'](! R4      t)](! ]*4      t+](! R
4      t,R R lt-R R lt.R R lt/]3R R llt0R R lt1R R lt2R9R R llt3R:R R llt4R;R R llt5R R lt6R9R R  llt7R! R" lt8R# R$ lt9R% R& lt:R' R( lt;R) R* lt<R+ R, lt=R- R. lt>R/ R0 lt? ! R1 R24      t@/ tAR3]BR4&   R5 R6 ltCR7 R8 ltDR# )<zthis module contains a set of functions to create astroid trees from scratch
(build_* functions) or from living object (object_build_* functions)
)annotationsN)Iterable)redirect_stderrredirect_stdout)TYPE_CHECKINGAny)basesnodes)_EMPTY_OBJECT_MARKERIS_PYPY)node_classesAstroidManager.c                    V ^8  d   QhRRRR/#    namestrreturnNone )formats   "6/usr/lib/python3/dist-packages/astroid/raw_building.py__annotate__r   /   s        3  4      c                4    W!n         V P                  V4       R # N)r   add_local_node)parentnoder   s   &&&r   _attach_local_noder    /   s    I
$r   c                    V ^8  d   QhRRRR/# )r   r   nodes.NodeNGr   r   r   )r   s   "r   r   r   4   s     	3 	3L 	3T 	3r   c                2   VP                   p\        VRR4      pV'       g   R# VP                   Uu. uF  qUP                  NK  	  pp\	        VP
                  \        4      '       d   VP
                  MRp\        WAWg4      pV.V P                  R&   R# u upi )zFAdd a __class__ member to the given func node, if we can determine it.__name__N	__class__)	r%   getattr	__bases__r$   
isinstance__doc__r   build_classinstance_attrs)	funcr   member
python_clscls_nameancestor	cls_basesdoc	ast_klasss	   &&&      r   _add_dunder_classr4   4   s    !!Jz:t4H3=3G3GH3Gx""3GIH *:+=+=s C C*

CHi=I(1{D$ Is   Bc                   V ^8  d   QhRR/# )r   r   znodes.EmptyNoder   )r   s   "r   r   r   @   s      ? r   c                <    \         P                  ! 4       pWn        V# r   )r	   	EmptyNodeobject)runtime_objectenodes   & r   build_dummyr;   @   s    OOE!LLr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   F   s     @ @# @t @r   c                2    \        V \        V4      V4       R# )z\create a dummy node and register it in the locals of the given
node with the specified name
N)r    r;   )r   r   r9   s   &&&r   attach_dummy_noder>   F   s     t[8$?r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   M   s     	C 	C# 	C 	Cr   c                    VR8X  d(   Vf$   \        V \        P                  ! V4      V4       R# WP                  9  d$   \        V \        P                  ! V4      V4       R# R# )z\create a Const node and register it in the locals of the given
node with the specified name
__hash__N)r    r	   const_factoryspecial_attributes)r   r   values   &&&r   attach_const_noderE   M   sO     zem4!4!4U!;TB	,,	,4!4!4U!;TB 
-r   c               $    V ^8  d   QhRRRRRR/# )r   modnamer   
membernamer   r   r   )r   s   "r   r   r   Y   s!     4 4c 4s 4t 4r   c                P    \         P                  ! WR3.4      p\        WV4       R# )zacreate a ImportFrom node and register it in the locals of the given
node with the specified name
N)r	   
ImportFromr    )r   rG   rH   	from_nodes   &&& r   attach_import_noderL   Y   s&       +=*>?It
3r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r2   
str | Noner   nodes.Moduler   )r   s   "r   r   r   a   s!      s  | r   c                    \         P                  ! V RRR7      pTP                  . V'       d   \         P                  ! VR7      MRR7       V# )z,create and initialize an astroid Module nodeF)pure_pythonpackagerD   N)bodydoc_node)r	   ModulepostinitConst)r   r2   r   s   && r   build_modulerY   a   s?    <<%?DMM+.3'D   Kr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r   r   r   r"   	basenameszIterable[str]r2   rN   r   nodes.ClassDefr   )r   s   "r   r   r   k   s:      
  
	
 r   c                   \         P                  ! V ^ ^ ^ ^ VR7      pTP                  V Uu. uF  p\         P                  ! V^ ^ VRRR7      NK!  	  up. RV'       d   \         P                  ! VR7      MRR7       V# u upi )z/Create and initialize an astroid ClassDef node.lineno
col_offset
end_linenoend_col_offsetr   N)r   r_   r`   r   ra   rb   rS   r   rT   
decoratorsrU   )r	   ClassDefrW   NamerX   )r   r   r[   r2   r   bases   &&&&  r   r*   r*   k   s     >>D 	MM "

 " JJ# "

 +.3'D    K

s   %A=c               <    V ^8  d   QhRRRRRRRRRR	R
RRRRR	RR/	# )r   r   r   r   r"   argszlist[str] | Noneposonlyargsdefaultszlist[Any] | Noner2   rN   
kwonlyargskwonlydefaultsr   nodes.FunctionDefr   )r   s   "r   r   r      sm     e e
ee e "	e
 e 
e !e %e er   c                ~   \         P                  ! V ^ ^ V^ ^ R7      p\         P                  ! VRRR7      p	Ve-   V U
u. uF  p
\         P                  ! V
V	^ ^ RRR7      NK!  	  pp
MRpVf   RpM8. pV F0  p\         P                  ! V4      pWn        VP                  V4       K2  	  Vf   RpM9. pV F1  p\         P                  ! V4      pV	Vn        VP                  V4       K3  	  T	P                  TTT;'       g    R U
u. uF  p
\         P                  ! V
V	^ ^ RRR7      NK!  	  up
T. T;'       g    R U
u. uF  p
\         P                  ! V
V	^ ^ RRR7      NK!  	  up
. . R7       TP                  T	. V'       d   \         P                  ! VR7      MRR7       V'       d   \        V4       V# u up
i u up
i u up
i )	z1create and initialize an astroid FunctionDef node)r_   r`   r   rb   ra   N)r   varargkwarg)r   r   r_   r`   ra   rb   )ri   rk   rl   kw_defaultsr   rj   kwonlyargs_annotationsposonlyargs_annotationsrS   )ri   rT   rU   r   )
r	   FunctionDef	Arguments
AssignNamerB   r   appendrW   rX   register_arguments)r   r   ri   rj   rk   r2   rl   rm   r,   argsnodearg	argumentsdefault_nodesdefaultdefault_nodekwonlydefault_nodeskwonlydefaultkwonlydefault_nodes   &&&&&&&&          r   build_functionr      s    D d4tDH
  

  #  	 

	 	 G ..w7L"*  .   " +M!&!4!4]!C(0%&&'9: ,  "''R'

 ( # (

 ( #((b(

 ) # )

  " "9  < 	MM+.3'D  
 4 KS

N



s   %F0%F59%F:c               $    V ^8  d   QhRRRRRR/# )r   fromnamer   names	list[str]r   znodes.ImportFromr   )r   s   "r   r   r      s'     H H HI H:J Hr   c                Z    \         P                  ! Y Uu. uF  q"R3NK  	  up4      # u upi )z<create and initialize an astroid ImportFrom import statementN)r	   rJ   )r   r   r   s   && r   build_from_importr      s)    H&Fd|&FGG&Fs   (
c               $    V ^8  d   QhRRRRRR/# )r   r,   rn   ri   zlist | Noner   r   r   )r   s   "r   r   r      s"     / /. /k /T /r   c                .   Vf   V P                   P                  '       d1   V P                  V P                   P                  V P                   4       V P                   P                  '       d1   V P                  V P                   P                  V P                   4       V P                   P                   pVf   R# V FV  p\	        V\
        P                  4      '       d   V P                  VP                  V4       KA  \        WP                  4       KX  	  R# )zoadd given arguments to local

args is a list that may contains nested lists
(i.e. def func(a, (b, c, d)): ...)
N)
ri   rp   	set_localrq   r(   r	   rw   r   ry   elts)r,   ri   r{   s   && r   ry   ry      s     |99NN499++TYY799???NN499??DII6yy~~<c5++,,NN388S)tXX.	 r   c               $    V ^8  d   QhRRRRRR/# r   r   nodes.Module | nodes.ClassDefr-   typer   r\   r   )r   s   "r   r   r     s$     = =
'=15==r   c                l    VP                    Uu. uF  q"P                  NK  	  pp\        WV4      # u upi )z(create astroid for a living class object)r'   r$   _base_class_object_build)r   r-   rg   r[   s   &&  r   object_build_classr     s4     ,2+;+;<+;4+;I<#D)<< =s   1c                    V ^8  d   QhRRRR/# )r   r-   _FunctionTypesr   z<tuple[list[str], list[str], list[Any], list[str], list[Any]]r   )r   s   "r   r   r     s      C CCACr   c                   \         P                  ! V 4      p. p. p. p. p. pVP                  P                  4        EF  w  rxVP                  \         P
                  P                  8X  d   VP                  V4       EM1VP                  \         P
                  P                  8X  d   VP                  V4       MVP                  \         P
                  P                  8X  d   VP                  V4       MVP                  \         P
                  P                  8X  d   VP                  V4       MVP                  \         P
                  P                  8X  dX   VP                  V4       VP                  \         P
                  P                  Jd   VP                  VP                  4       EKs  VP                  \         P
                  P                  Jg   EK  VP                  VP                  4       EK  	  W$W5V3# )zbReturns args, posonlyargs, defaults, kwonlyargs.

:note: currently ignores the return annotation.
)inspect	signature
parametersitemskind	ParameterPOSITIONAL_ONLYrx   POSITIONAL_OR_KEYWORDVAR_POSITIONALVAR_KEYWORDKEYWORD_ONLYr~   empty)	r-   r   ri   rk   rj   rl   rm   
param_nameparams	   &        r   _get_args_info_from_callabler     se    !!&)IDHKJ "N&11779
::**:::z*ZZ7,,BBBKK
#ZZ7,,;;;KK
#ZZ7,,888KK
#ZZ7,,999j)}}G$5$5$;$;;%%emm4== 1 1 7 77OOEMM* :" hNBBr   c               $    V ^8  d   QhRRRRRR/# r   r   r   r-   r   r   rn   r   )r   s   "r   r   r   ;  s$      
'1?r   c                    \        V4      w  ppppp\        \        VRR4      T TTT\        VP                  \
        4      '       d   VP                  MRVVR7      # )z+create astroid for a living function objectr$   	<no-name>N)rl   rm   )r   r   r&   r(   r)   r   )r   r-   ri   rj   rk   rl   kwonly_defaultss   &&     r   object_build_functionr   ;  sf     	%V, 
K0$V^^S99t&	 	r   c               $    V ^8  d   QhRRRRRR/# r   r   )r   s   "r   r   r   S  s$     6 6
'61566r   c                    \        W. 4      # )z2create astroid for a living data descriptor object)r   )r   r-   s   &&r   object_build_datadescriptorr   S  s     $D"55r   c               $    V ^8  d   QhRRRRRR/# r   r   )r   s   "r   r   r   Z  s&     	 	
'		 	r   c                f    \        VRR4      p\        W VP                  R7      p\        W0V4       V# )z4create astroid for a living method descriptor objectr$   r   )r2   )r&   r   r)   r4   )r   r-   r   r,   s   &&  r   object_build_methoddescriptorr   Z  s1     6:{3D$&..9Dd&)Kr   c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   r-   r   r[   r   r   r\   r   )r   s   "r   r   r   f  s0     " "
'"" " 	"r   c                   \        VRR4      p\        VP                  \        4      '       d   VP                  MRp\	        W0W$4      p\        V\
        4      Vn         \        V\        4      '       d-   V! 4       p\        VR4      '       d   VP                  pM\        h\        h VP                  4        F=  w  r\        P                  ! 4       p
Wn        WZn        ^V
n        V
.VP$                  V&   K?  	  V#   \         d     T# i ; i)zZcreate astroid for a living class object, with a given set of base names
(e.g. ancestors)
r$   r   N__dict__)r&   r(   r)   r   r*   r   	_newstyle
issubclass	Exceptionhasattrr   	TypeErrorr   r	   r7   r8   r   r_   r+   )r   r-   r[   r   r2   klassmember_objectinstdict	item_nameobjvalnodes   &&&        r   r   r   f  s     6:{3D&v~~s;;&..CI3E .EO8
 fi(("HM}j11(11O	  'nn.NIoo'G N"NGN/6iE  + / L   Ls   AC: :D	D	c               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   r-   r   moduletypes.ModuleTyper   z#nodes.FunctionDef | nodes.EmptyNoder   )r   s   "r   r   r     s0      
'  )	r   c                     VP                   p\        VRR 4      pVf   \        W4      # V\        VRR 4      8X  d   \	        W4      # \        V4      #   \         d    R p LSi ; i)Nco_filename__file__)__code__AttributeErrorr&   r   r   r;   )r   r-   r   codefilenames   &&&  r   _build_from_functionr     sp    
 t]D1H,T::76:t44$T22v   s   A A"!A"c                    V ^8  d   QhRRRR/# )r   r-   r   r   boolr   )r   s   "r   r   r     s      S T r   c                >     \        W4      #   \         d     R# i ; i)zoRequired because unexpected RunTimeError can be raised.

See https://github.com/pylint-dev/astroid/issues/1958
F)r   r   )r   r-   s   &&r   _safe_has_attributer     s$    
s## s   
 c                  ^    ] tR tRt$ RtRtR]R&   R R ltRR	 R
 lltR R lt	R R lt
RtR# )InspectBuilderi  zclass for building nodes from living object

this is actually a really minimal representation, including only Module,
FunctionDef and ClassDef nodes and some others as guessed.
Fr   bootstrappedc                    V ^8  d   QhRRRR/# )r   manager_instancer   r   r   r   )r   s   "r   r   InspectBuilder.__annotate__  s     ' ' 'D 'r   c                	$    Wn         / V n        V  R # r   )_manager_done)selfr   s   &&r   __init__InspectBuilder.__init__  s    (SU
r   Nc               (    V ^8  d   QhRRRRRRRR/# )r   r   r   rG   rN   pathr   rO   r   )r   s   "r   r   r     s2         	
 
r   c                   Wn         Vf   VP                  p \        W!P                  4      pVf   V;Vn        Vn        M=\        P
                  P                  V4      .Vn        VP
                  ^ ,          Vn        W$n	        V P                  P                  V4       \        VR4      Vn        / V n        V P                  WA4       V#   \         d    \        T4      p Li ; i)zbuild astroid from a living module (i.e. using inspect)
this is used when there is no python source code available (either
because it's a built-in module or because the .py is not available)
__path__)_moduler$   rY   r)   r   r   fileosabspathr   r   cache_moduler   rR   r   object_build)r   r   rG   r   r   s   &&&& r   inspect_buildInspectBuilder.inspect_build  s     ?ooG	)8D <$((DI	./DI		!DI	""4(vz2
$'  	)(D	)s   C	 	C"!C"c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   ztypes.ModuleType | typer   r   r   )r   s   "r   r   r     s)     @ @1@8O@	@r   c                   W P                   9   d   R# WP                   V&   \        V4       EF  p\        ;'       d    VR8H  p \        P                  ! 4       ;_uu_ 4        \        P
                  ! R4       \        W#4      pRRR4       \        P                  ! X4      '       d   T'       g   TP                  p\        P                  ! T4      '       d   \        YT P                  4      pEM\        P                  ! T4      '       g	   T'       d)   T P!                  YT4      '       d   EK  \#        Y4      pEM\        P$                  ! T4      '       d   T P!                  YT4      '       d   EKF  YPP                   9   d8   T P                   T,          p\'        T\(        P*                  4      '       g   Q hEM9\-        Y4      pT P/                  Ye4       EM\        P0                  ! T4      '       d   \#        Y4      pM\        P2                  ! T4      '       d   \5        Y4      pM\'        T\7        \8        P:                  4      4      '       d6   Y1P<                  9   d   TR8X  d   Te   EKB  \(        P>                  ! T4      pMm\        P@                  ! T4      '       d   \        YT P                  4      pM:\C        TR4      '       d   \E        T4      pT P/                  Ye4       M\G        T4      pYaPH                  PK                  TR4      9  g   EK  TPM                  Yc4       EK  	  R#   + '       g   i     EL; i  \         d    \        Y4        EK/  i ; i)zmrecursive method which create a partial ast from real objects
(only function, class, and method are handled)
N__class_getitem__ignorerA   __all__r   )'r   dirr   warningscatch_warningssimplefilterr&   r   r>   r   ismethod__func__
isfunctionr   r   	isbuiltinimported_memberr   isclassr(   r	   re   r   r   ismethoddescriptorisdatadescriptorr   tupler   	CONST_CLSrC   rB   	isroutiner   rY   r;   localsgetr   )r   r   r   aliaspypy__class_getitem__r-   childs   &&&    r   r   InspectBuilder.object_build  sr    **

3XE %,$L$L9L0L!,,..))(3$S0F / ''0E!!&)),T4<<H""6**.C''e<<5dC((''e<<ZZ' JJv.E%eU^^<<<<.t<E%%e4++F33&CD&Q))&113DAFE,*@*@$ABB 333Z'FN++F3""6** -T4<<H$VY77&25&9!!%0 '2&&9KKOOE266##E1m n e /.. " !$.s0   M!"L-M-L>8M>MMMc                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r     s     9 9# 9$ 9r   c           
         \        VRR4      pVf'   VR9   d   \        P                  pM\	        WV4       R# VR8X  d   V P
                  P                  R8X  g   R# RR/P                  WD4      pWPP
                  P                  8w  Ed    \        \        P                  ! 4       4      ;_uu_ 4       p\        \        P                  ! 4       4      ;_uu_ 4       p\        \        P                  V,          V4       VP                  4       pV'       d.   \        P                  R	V\        P                  V,          V4       VP                  4       p	V	'       d.   \        P!                  R
V\        P                  V,          V	4       RRR4       RRR4       \#        WV4       R# R#   \         d    Rp ELi ; i  + '       g   i     L<; i  + '       g   i     LG; i  \$        \&        3 d    \	        YT4        R# i ; i)z1verify this is not an imported class or handle it
__module__NT_iobuiltinsFgtkgtk_gtkz,Captured stderr while getting %s from %s:
%sz,Captured stdout while getting %s from %s:
%s>   __new____subclasshook__)r&   r   r  r$   r>   r   r   r   ioStringIOr   sysmodulesgetvalueloggererrorinforL   KeyErrorr   )
r   r   r-   r   rG   	real_namestderrstdoutstderr_valuestdout_values
   &&&&      r   r   InspectBuilder.imported_member  s   
	flD9G ?66 #++!$f5
 eDLL$9$9Z$GI&**7<	---8#BKKM22f#BKKM22fCKK0$7#)??#4L#K KK0(	 $*??#4L#K KK0(	 3 3. #4$7e  	G	4 32 32( n- 6!$f5 	6sZ   F% &G 2'GA>F9	-F9	GG %F65F69G	GG	G H ?H )r   r   r   )NN)r$   r  __qualname____firstlineno__r)   r   __annotations__r   r   r   r   __static_attributes__r   r   r   r   r     s.     L$'
<@D9 9r   r   zdict[type, nodes.ClassDef]_CONST_PROXYc                   V ^8  d   QhRR/# )r   r   r\   r   )r   s   "r   r   r   Y  s     / /> /r   c                D    \         V P                  P                  ,          # r   )r  rD   r%   )consts   &r   _set_proxiedr"  Y  s    --..r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   ^  s     I I Ir   c            
     H   ^ RI Hp  \        V ! 4       4      pVP                  \        4      p\
        P                  P                  4        F  w  r4V\        J d   \        RV4      pMrV\        J d   \        RV4      pM[V\        J d   \        RV4      pMDVP                  VP                  4      ^ ,          p\        V\        P                   4      '       g   Q hV\"        \$        \&        \(        39   d	   WTn        K  V\,        V&   K  	  \/        \0        4      \        P2                  n        \        P                   ! \4        P6                  P                  ^ ^ ^ ^ VR7      pVP9                  VP:                  V4       \4        P6                  P<                  '       d0   \        P2                  ! \4        P6                  P<                  R7      MRpVP?                  . . RVR7       V\@        PB                  n        VPE                  \@        PB                  P*                  \4        P6                  4       \G        \4        R	4      '       Ed   \        P                   ! \4        PH                  P                  ^ ^ ^ ^ VR7      pVP9                  VP:                  V4       \4        PH                  P<                  '       d0   \        P2                  ! \4        PH                  P<                  R7      MRp	VP?                  . . RV	R7       V\@        PJ                  n        VPE                  \@        PJ                  P*                  \4        PH                  4       \G        \4        R
4      '       d   \        P                   ! \4        PL                  P                  ^ ^ ^ ^ VR7      p
\4        PL                  P<                  '       d0   \        P2                  ! \4        PL                  P<                  R7      MRpV
P?                  . . RVR7       V
\@        PL                  n        VPE                  \@        PL                  P*                  \4        PL                  4       \4        PN                  \4        P6                  \4        PP                  \        \        \4        PR                  \4        PT                  \4        PV                  \4        PX                  \4        PZ                  3
pV F  pVP                  V9  g   K  \        P                   ! VP                  ^ ^ ^ ^ VR7      p\        VP<                  \\        4      '       d   VP<                  MRpTP?                  . . RV'       d   \        P2                  ! V4      MRR7       VPE                  W4       WVP                  &   K  	  R\        n/        ^ RI0H1p V! 4        R# )z)astroid bootstrapping the builtins moduler   NoneTypeNotImplementedTypeEllipsisr^   rS   Nrc   AsyncGeneratorType	UnionTypeT)on_bootstrap)2astroid.managerr   r   r   r  r   r   r   	TYPE_NONEr*   TYPE_NOTIMPLEMENTEDTYPE_ELLIPSISr&   r$   r(   r	   re   dictlistsetr   _proxiedr  propertyr"  rX   typesGeneratorTyper   r   r)   rW   r   	Generatorr   r   r(  AsyncGeneratorr)  GetSetDescriptorTypeMemberDescriptorTypeFunctionType
MethodTypeBuiltinFunctionType
ModuleTypeTracebackTyper   r   %astroid.brain.brain_builtin_inferencer*  )r   builderastroid_builtinclsnode_clsproxy_GeneratorTypegenerator_doc_node_AsyncGeneratorTypeasync_generator_doc_node_UnionTypeTypeunion_type_doc_nodebuiltin_types_typer   r2   r*  s                    r   _astroid_bootstrappingrM  ^  sK   
 /^-.G++H5O%//557)
O<E'' 4oFEM!
O<E#++CLL9!<EeU^^44444sE** % %L 8  $L1EKK^^$$N n11>B &&& 	%--556 
 #	    .EOO1153F3FGu*++#nn$$--"
 	!!"5":":<OP ''/// KKe66>>? 	!
 	$$-	 	% 	
 )<%U11::E<T<TUuk""OO$$"
 &&& KKeoo556 	
 	(	 	  	
 $2 U__55uG 	""""!!M >>0NN &E $.emmS#A#A%--tCNN-0S)d	     ..3ENN+% ( #'N C Nr   r   )r   N)NNNNNN)E__conditional_annotations__r)   
__future__r   r  r   r  loggingr   r  r4  r   collections.abcr   
contextlibr   r   typingr   r   astroidr   r	   astroid.constr
   r   astroid.nodesr   r+  r   	getLoggerr$   r  r:  r;  r<  WrapperDescriptorTypeMethodDescriptorTypeClassMethodDescriptorTyper   r   r,  NotImplementedr-  r.  r    r4   r;   r>   rE   rL   rY   r*   r   r   ry   r   r   r   r   r   r   r   r   r   r  r  r"  rM  )rN  s   @r   <module>r\     s^  
 #   	  	 
   $ 7 %   7 &.			8	$ 
  !!"   	!
 %%&  J	>* S	 
	3 7K @	C4DePH
/.=CD06	"J(g gX ,.( -/
Ir   