
    ht                        d dl mZ d dlZd dlZd dlmZ  G d dej                        Z G d dej                        Z G d d	ej                        Z G d
 dej                        Z	 G d dej                        Z G d dej                        Z G d dej                        Z G d de      Z G d de      Z G d de      Z G d dej"                        Z G d dej&                        Z G d dej(                        Z G d dej*                        Z G d  d!ej,                        Z G d" d#e      Z G d$ d%ej0                        Z G d& d'e      Zeeee	eeeeeeeeeeeeeeegZ G d( d)e      Z G d* d+ej                        Z G d, d-ej(                        Z G d. d/e      Z G d0 d1e      Z  G d2 d3e      Z!y)4    )OptionalN)LiteLLMCommonStringsc            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	AuthenticationErrorresponselitellm_debug_infomax_retriesnum_retriesc                 P   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |xs6 t        j                  | j                   t        j                  dd            | _        t        | 5  | j                  | j                  d        y )Ni  zlitellm.AuthenticationError: {}GEThttps://litellm.aimethodurlstatus_coderequestr   bodyr   formatmessagellm_providermodelr   r	   r
   httpxResponseRequestr   super__init__	selfr   r   r   r   r   r	   r
   	__class__s	           N/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/exceptions.pyr   zAuthenticationError.__init__   s     8??H(
"4&&  
ENN((MM"6%
 	LL4==t 	 	
    c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S Nz LiteLLM Retried: z timesz, LiteLLM Max Retries: r   r
   r	   r!   _messages     r#   __str__zAuthenticationError.__str__0   V    <<,T-=-=,>fEEH1$2B2B1CDDHr$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   __repr__zAuthenticationError.__repr__8   r+   r$   NNNN__name__
__module____qualname__r   r   r   strintr   r*   r-   __classcell__r"   s   @r#   r   r      ]     .2,0%)%)

 5>>*
 %SM
 c]
 c]
6r$   r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	NotFoundErrorr   r   r	   r
   c                 P   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |xs6 t        j                  | j                   t        j                  dd            | _        t        | 5  | j                  | j                  d        y )Ni  zlitellm.NotFoundError: {}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
   r"   s	           r#   r   zNotFoundError.__init__C   s     299'B
("4&&  
ENN((MM"6%
 	LL4==t 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zNotFoundError.__str__^   r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zNotFoundError.__repr__f   r+   r$   r.   r/   r6   s   @r#   r9   r9   B   r7   r$   r9   c                   ~     e Zd Z	 	 	 	 	 d	deej
                     dee   dee   dee   dee   f
 fdZ	d Z
d Z xZS )
BadRequestErrorr   r   r	   r
   r   c	                 *   d| _         dj                  |      | _        || _        || _        || _        t        j                  | j                   t        j                  dd            }|| _	        || _
        t        	| 1  | j                  ||       y )N  zlitellm.BadRequestError: {}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   r"   s
            r#   r   zBadRequestError.__init__p   s     4;;GD
("4>>((MM"6
 '&LL8$ 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zBadRequestError.__str__   r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zBadRequestError.__repr__   r+   r$   NNNNN)r0   r1   r2   r   r   r   r3   r4   dictr   r*   r-   r5   r6   s   @r#   r?   r?   o   sn     .2,0%)%)#

 5>>*
 %SM
 c]
 c]
 tn
8r$   r?   c            
       j     e Zd Z	 	 	 ddej                  dee   dee   dee   f fdZd Z	d Z
 xZS )	UnprocessableEntityErrorr   r   r	   r
   c                     d| _         dj                  |      | _        || _        || _        || _        || _        || _        t        | %  | j                  |d        y )Ni  z$litellm.UnprocessableEntityError: {}r   )
r   r   r   r   r   r   r	   r
   r   r   r;   s	           r#   r   z!UnprocessableEntityError.__init__   sc     =DDWM
("4&&LL8$ 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   z UnprocessableEntityError.__str__   r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   z!UnprocessableEntityError.__repr__   r+   r$   NNNr0   r1   r2   r   r   r   r3   r4   r   r*   r-   r5   r6   s   @r#   rG   rG      U     -1%)%)

 ..
 %SM
 c]
 c]
*r$   rG   c                   j     e Zd Z	 	 	 	 	 d	dee   dee   dee   dee   dee   f
 fdZd Zd Z	 xZ
S )
Timeoutr   r	   r
   headersexception_status_codec	                     t        j                  dd      }	t        
|   |	       |xs d| _        dj                  |      | _        || _        || _        || _	        || _
        || _        || _        y )NPOSThttps://api.openai.com/v1r   )r   i  zlitellm.Timeout: {})r   r   r   r   r   r   r   r   r   r   r	   r
   rP   )r!   r   r   r   r   r	   r
   rP   rQ   r   r"   s             r#   r   zTimeout.__init__   s     --+
 	 	 	
 17C,33G<
("4&&r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zTimeout.__str__   r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zTimeout.__repr__   r+   r$   rD   )r0   r1   r2   r   r3   r4   rE   r   r*   r-   r5   r6   s   @r#   rO   rO      si     -1%)%)"&/3
 %SM c] c] $  (}8r$   rO   c            
       j     e Zd Z	 	 	 ddej                  dee   dee   dee   f fdZd Z	d Z
 xZS )	PermissionDeniedErrorr   r   r	   r
   c                     d| _         dj                  |      | _        || _        || _        || _        || _        || _        t        | %  | j                  |d        y )Ni  z!litellm.PermissionDeniedError: {}r   )
r   r   r   r   r   r   r	   r
   r   r   r    s	           r#   r   zPermissionDeniedError.__init__   sc     :AA'J(
"4&&LL8$ 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zPermissionDeniedError.__str__  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zPermissionDeniedError.__repr__  r+   r$   rK   rL   r6   s   @r#   rX   rX      rM   r$   rX   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	RateLimitErrorr   r   r	   r
   c                 t   d| _         dj                  |      | _        || _        || _        || _        || _        || _        |t        |dd       nd }t        j                  d|t        j                  dd            | _        t        	| 9  | j                  | j                  d        d	| _        d
| _        y )Ni  zlitellm.RateLimitError: {}rP   rS   $ https://cloud.google.com/vertex-ai/r   )r   rP   r   r   429throttling_error)r   r   r   r   r   r   r	   r
   getattrr   r   r   r   r   r   codetype)
r!   r   r   r   r   r   r	   r
   _response_headersr"   s
            r#   r   zRateLimitError.__init__  s     3::7C(
"4&&2:2FGHi.D 	 %MM:
 	LL4==t 	 	
 	&	r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zRateLimitError.__str__<  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zRateLimitError.__repr__D  r+   r$   r.   r/   r6   s   @r#   r]   r]     s^     .2,0%)%) '
 5>>* ' %SM ' c] ' c] 'Dr$   r]   c                   Z     e Zd Z	 	 ddeej
                     dee   f fdZd Zd Z	 xZ
S )ContextWindowExceededErrorr   r   c                 \   d| _         || _        || _        || _        t	        j
                  dd      }t	        j                  d|      | _        t        | %  || j                  | j                  | j                  | j                         dj                  | j                        | _        y )NrA   rS   rT   r   r   r   r   r   r   r   z&litellm.ContextWindowExceededError: {})r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r   r   r   r   r"   s          r#   r   z#ContextWindowExceededError.__init__O  s     
("4--v3NO3H****]]#66 	 	
 @FFt||Tr$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   z"ContextWindowExceededError.__str__h  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   z#ContextWindowExceededError.__repr__p  r+   r$   NNr0   r1   r2   r   r   r   r3   r   r*   r-   r5   r6   s   @r#   ri   ri   N  s>     .2,0U
 5>>*U %SMU2r$   ri   c                   >     e Zd Z	 ddedee   f fdZd Zd Z xZ	S )RejectedRequestErrorrequest_datar   c                 L   d| _         dj                  |      | _        || _        || _        || _        || _        t        j                  dd      }t        j                  d|      }t        | -  | j                  | j                  | j                  || j
                         y )NrA   z litellm.RejectedRequestError: {}rS   rT   r   r   rk   )r   r   r   r   r   r   rs   r   r   r   r   r   )	r!   r   r   r   rs   r   r   r   r"   s	           r#   r   zRejectedRequestError.__init__{  s     9@@I
("4(--v3NO>>c7CLL****#66 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zRejectedRequestError.__str__  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zRejectedRequestError.__repr__  r+   r$   N)
r0   r1   r2   rE   r   r3   r   r*   r-   r5   r6   s   @r#   rr   rr   z  s/     -1

 
 %SM
0r$   rr   c                   Z     e Zd Z	 	 ddeej
                     dee   f fdZd Zd Z	 xZ
S )ContentPolicyViolationErrorr   r   c                 \   d| _         dj                  |      | _        || _        || _        || _        t        j                  dd      }t        j                  d|      | _	        t        | -  | j                  | j                  | j                  | j                  | j
                         y )NrA   z'litellm.ContentPolicyViolationError: {}rS   rT   r   r   rk   )r   r   r   r   r   r   r   r   r   r   r   r   rl   s          r#   r   z$ContentPolicyViolationError.__init__  s     @GGP
("4--v3NO3HLL****]]#66 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   z#ContentPolicyViolationError.__str__  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   z$ContentPolicyViolationError.__repr__  r+   r$   ro   rp   r6   s   @r#   ry   ry     s;     .2,0

 5>>*
 %SM
.r$   ry   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	ServiceUnavailableErrorr   r   r	   r
   c                 H   d| _         dj                  |      | _        || _        || _        || _        || _        || _        t        j                  | j                   t        j                  dd            | _        t        | 5  | j                  | j                  d        y )Ni  z#litellm.ServiceUnavailableError: {}rS   r_   r   r   r   r   r    s	           r#   r   z ServiceUnavailableError.__init__  s     <CCGL(
"4&&((MM:
 	LL4==t 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zServiceUnavailableError.__str__  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   z ServiceUnavailableError.__repr__  r+   r$   r.   r/   r6   s   @r#   r~   r~     ]     .2,0%)%)

 5>>*
 %SM
 c]
 c]
8r$   r~   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	InternalServerErrorr   r   r	   r
   c                 H   d| _         dj                  |      | _        || _        || _        || _        || _        || _        t        j                  | j                   t        j                  dd            | _        t        | 5  | j                  | j                  d        y )N  zlitellm.InternalServerError: {}rS   r_   r   r   r   r   r    s	           r#   r   zInternalServerError.__init__  s     8??H(
"4&&((MM:
 	LL4==t 	 	
r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zInternalServerError.__str__  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zInternalServerError.__repr__!  r+   r$   r.   r/   r6   s   @r#   r   r     r   r$   r   c                   v     e Zd Z	 	 	 	 d	dedeej                     dee   dee   dee   f
 fdZd Z	d Z
 xZS )
APIErrorr   r   r   r	   r
   c	                     || _         dj                  |      | _        || _        || _        || _        || _        || _        |t        j                  dd      }t        	| -  | j                  |d        y )Nzlitellm.APIError: {}rS   rT   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"   s
            r#   r   zAPIError.__init__,  st     '-44W=(
"4&&?mm67RSGwTBr$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zAPIError.__str__B  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zAPIError.__repr__J  r+   r$   r.   )r0   r1   r2   r4   r   r   r   r3   r   r*   r-   r5   r6   s   @r#   r   r   +  sk     ,0,0%)%)CC %--(C %SMC c]C c]C,r$   r   c            
       r     e Zd Z	 	 	 	 ddeej
                     dee   dee   dee   f fdZd Z	d Z
 xZS )	APIConnectionErrorr   r   r	   r
   c                    dj                  |      | _        || _        || _        d| _        || _        t        j                  dd      | _        || _	        || _
        t        | 1  | j                  | j                         y )Nzlitellm.APIConnectionError: {}r   rS   rT   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"   s	           r#   r   zAPIConnectionError.__init__U  ss     8>>wG(
"4}}F8ST&&t||Dr$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   zAPIConnectionError.__str__i  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   zAPIConnectionError.__repr__q  r+   r$   r.   )r0   r1   r2   r   r   r   r3   r4   r   r*   r-   r5   r6   s   @r#   r   r   T  sb     ,0,0%)%)E
 %--(E %SME c]E c]E(r$   r   c                   R     e Zd Z	 	 	 ddee   dee   dee   f fdZd Zd Z xZ	S )APIResponseValidationErrorr   r	   r
   c                     dj                  |      | _        || _        || _        t	        j
                  dd      }t	        j                  d|      }|| _        || _        || _	        t        	| -  |d |       y )Nz&litellm.APIResponseValidationError: {}rS   rT   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   r"   s
            r#   r   z#APIResponseValidationError.__init__|  st     @FFwO(
--v3NO>>c7C"4&&(wGr$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r*   z"APIResponseValidationError.__str__  r+   r$   c                     | j                   }| j                  r|d| j                   dz  }| j                  r|d| j                   z  }|S r&   r'   r(   s     r#   r-   z#APIResponseValidationError.__repr__  r+   r$   rK   )
r0   r1   r2   r   r3   r4   r   r*   r-   r5   r6   s   @r#   r   r   {  sK     -1%)%)H
 %SMH c]H c]H&r$   r   c            
       4     e Zd Zdededededdf
 fdZ xZS )JSONSchemaValidationErrorr   r   raw_responseschemareturnNc                     || _         || _        || _        dj                  |||      }|| _        t
        |   |||       y )Nzlitellm.JSONSchemaValidationError: model={}, returned an invalid response={}, for schema={}.
Access raw response with `e.raw_response`)r   r   r   )r   r   r   r   r   r   r   )r!   r   r   r   r   r   r"   s         r#   r   z"JSONSchemaValidationError.__init__  sX     )
 \  c  c<
 ugLQr$   )r0   r1   r2   r3   r   r5   r6   s   @r#   r   r     s<    
R
R(+
R;>
RHK
R	
R 
Rr$   r   c                         e Zd Zd fd	Z xZS )OpenAIErrorc                 0    t         |           d| _        y )Nopenai)r   r   r   )r!   original_exceptionr"   s     r#   r   zOpenAIError.__init__  s    $r$   rw   r0   r1   r2   r   r5   r6   s   @r#   r   r     s    % %r$   r   c                   x    e Zd Z	 	 	 	 	 	 	 d
dee   dee   dedeej                     dee   dee   dee   fd	Zy)UnsupportedParamsErrorNr   r   r   r   r   r	   r
   c	                     d| _         dj                  |      | _        || _        || _        || _        |xs6 t        j                  | j                   t        j                  dd            }|| _	        || _
        y )NrA   z"litellm.UnsupportedParamsError: {}r   r   r   r   )r   r   r   r   r   r   r   r   r   r	   r
   )	r!   r   r   r   r   r   r   r	   r
   s	            r#   r   zUnsupportedParamsError.__init__  sw     ;BB7K
("4 
u~~((MM"6 
 '&r$   )NNrA   NNNN)	r0   r1   r2   r   r3   r4   r   r   r    r$   r#   r   r     s     '+#-1,0%)%)' sm' }	'
 ' 5>>*' %SM' c]' c]'r$   r   c                   6     e Zd Z	 ddededee   f fdZ xZS )BudgetExceededErrorcurrent_cost
max_budgetr   c                 f    || _         || _        |xs d| d| }|| _        t        |   |       y )Nz(Budget has been exceeded! Current cost: z, Max budget: )r   r   r   r   r   )r!   r   r   r   r"   s       r#   r   zBudgetExceededError.__init__  sJ     )$ c9,~V`Uab 	 !r$   rw   )r0   r1   r2   floatr   r3   r   r5   r6   s   @r#   r   r     s,    OS
"!
"/4
"?G}
" 
"r$   r   c                        e Zd Z fdZ xZS )InvalidRequestErrorc                     d| _         || _        || _        || _        t	        j
                  dt	        j                  dd            | _        t        | %  | j                  | j                  d        y )NrA   r   r   r   r   )r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r!   r   r   r   r"   s       r#   r   zInvalidRequestError.__init__  si    
(MM"6
 	LL4==t 	 	
r$   r   r6   s   @r#   r   r     s    
 
r$   r   c                   j     e Zd Z	 	 	 	 ddedeej                     dee   dee   dee   f
 fdZ xZ	S )MockExceptionr   r   r   r	   r
   c	                     || _         dj                  |      | _        || _        || _        || _        || _        || _        |t        j                  dd      }t        	| -  | j                  |d        y )Nzlitellm.MockException: {}rS   rT   r   r   r   r   s
            r#   r   zMockException.__init__  st     '299'B(
"4&&?mm67RSGwTBr$   r.   )
r0   r1   r2   r4   r   r   r   r3   r   r5   r6   s   @r#   r   r     sg     ,0,0%)%)CC %--(C %SMC c]C c]C Cr$   r   c                   6     e Zd Zddedee   f fdZd Z xZS )LiteLLMUnknownProviderr   custom_llm_providerc                     t         j                  j                  j                  ||      | _        t
        |   | j                  ||d        y )N)r   r   )r   r   r   )r   llm_provider_not_providedvaluer   r   r   r   )r!   r   r   r"   s      r#   r   zLiteLLMUnknownProvider.__init__   sP    +EEKKRR-@ S 
 	LL4GRV 	 	
r$   c                     | j                   S rw   )r   )r!   s    r#   r*   zLiteLLMUnknownProvider.__str__(  s    ||r$   rw   )r0   r1   r2   r3   r   r   r*   r5   r6   s   @r#   r   r     s    
c 
 
r$   r   c                   0     e Zd Zddee   def fdZ xZS )GuardrailRaisedExceptionguardrail_namer   c                 `    || _         d| d| | _        t        |   | j                         y )Nz*Guardrail raised an exception, Guardrail: z, Message: )r   r   r   r   )r!   r   r   r"   s      r#   r   z!GuardrailRaisedException.__init__-  s4    ,CNCSS^_f^gh&r$   )N )r0   r1   r2   r   r3   r   r5   r6   s   @r#   r   r   ,  s    'x} 'c ' 'r$   r   c                   2     e Zd Z	 ddedee   f fdZ xZS )BlockedPiiEntityErrorentity_typer   c                 p    || _         || _        d| d| d| _        t        |   | j                         y)zJ
        Raised when a blocked entity is detected by a guardrail.
        zBlocked entity detected: z by Guardrail: z8. This entity is not allowed to be used in this request.N)r   r   r   r   r   )r!   r   r   r"   s      r#   r   zBlockedPiiEntityError.__init__4  sE     ',2;-~N^  _W  X&r$   rw   )r0   r1   r2   r3   r   r   r5   r6   s   @r#   r   r   3  s(     )-'' !' 'r$   r   )"typingr   r   r   litellm.types.utilsr   r   r9   r?   rG   APITimeoutErrorrO   rX   r]   ri   rr   ry   APIStatusErrorr~   r   r   r   r   r   r   r   LITELLM_EXCEPTION_TYPES	Exceptionr   r   r   r   r   r   r   r$   r#   <module>r      s      4*&44 *\*F(( *Z+f,, +\$v>> $N+f$$ +\$F88 $N1V** 1j( (X'? 'T'/ 'T+f33 +\+&44 +^%v %R#22 #N"!B!B "JR : R%&$$ %'_ '8 ' .") "
&00 
"CFOO C2
_ 
'y ''I 'r$   