
    2Rjy                       d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZmZ d dlZddlmZ ddlmZmZmZmZmZmZ ddlmZmZ dd	lmZmZ dd
l m!Z! ddl"m#Z#m$Z$ ddl%m&Z& ddl'm(Z(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.  e/g d      Z0e	g e1f   Z2e	g df   Z3 edeejh                  ejj                  f         Z6 edee(e   e)e   f         Z7djq                  g d      Z9d!dZ:d"dZ; G d de+      Z< G d de.e6e7f         Z= G d de=ejh                  e(e   f   e      Z> G d d e=ejj                  e)e   f   e      Z?y)#    )annotationsN)AnyUnionMappingTypeVarCallable	Awaitablecastoverload)Selfoverride   )WorkloadIdentity)	NOT_GIVENOmitQueryHeadersTimeoutNotGiven)is_given
is_mapping)OpenAIAsyncOpenAI)
model_copy)SecurityOptionsFinalRequestOptions)	_Provider)StreamAsyncStream)OpenAIError)DEFAULT_MAX_RETRIES
BaseClient)z/completionsz/chat/completionsz/embeddingsz/audio/transcriptionsz/audio/translationsz/audio/speechz/images/generationsz/images/editszstr | Awaitable[str]_HttpxClientT)bound_DefaultStreamT )<zmissing API key>c                L    j                         t        fd| D              S )Nc              3  D   K   | ]  }|j                         k(    y wN)lower).0keyheaders     X/var/www/html/meridian/meridian-ai/venv/lib/python3.12/site-packages/openai/lib/azure.py	<genexpr>z_has_header.<locals>.<genexpr>1   s     8syy{f$8s    )r,   any)headersr/   s    `r0   _has_headerr4   /   s    \\^F8888    c                6    t        | d      xs t        | d      S )NAuthorizationapi-key)r4   )r3   s    r0   _has_auth_headerr9   4   s    w0SK4SSr5   c                        e Zd Zd fdZ xZS )MutuallyExclusiveAuthErrorc                $    t         |   d       y )NzThe `api_key`, `azure_ad_token` and `azure_ad_token_provider` arguments are mutually exclusive; Only one can be passed at a time)super__init__)self	__class__s    r0   r>   z#MutuallyExclusiveAuthError.__init__9   s     O	
r5   )returnNone)__name__
__module____qualname__r>   __classcell__r@   s   @r0   r;   r;   8   s    
 
r5   r;   c                  f     e Zd ZU ded<   ded<   edd	 	 	 	 	 d	 fd       Zed
 fd       Z xZS )BaseAzureClientzhttpx.URL | None_azure_endpoint
str | None_azure_deploymentr   retries_takenc                  |j                   t        v rit        |j                        rT|j                  j	                  d      }|7dt        | j                  j                        vrd| |j                    |_         t        | %  ||      S )Nmodelz/deploymentsz/deployments/rM   )
url_deployments_endpointsr   	json_datagetstrbase_urlpathr=   _build_request)r?   optionsrN   rP   r@   s       r0   rX   zBaseAzureClient._build_requestC   s|     ;;00Z@Q@Q5R%%))'2E ^3t}}?Q?Q;R%R -eWW[[MBw%g]%KKr5   c                h   | j                   r| j                  r|t        vrt        j                  |      }|j
                  r`| j                  j                  j                  d      dz   |j                  j                  d      z   }| j                  j                  |      S |S t        | -  |      S )zAdjust the URL if the client was configured with an Azure endpoint + deployment
        and the API feature being called is **not** a deployments-based endpoint
        (i.e. requires /deployments/deployment-name in the URL path).
           /s   /openai/raw_path)rL   rJ   rR   httpxURLis_relative_urlr]   rstriplstrip	copy_withr=   _prepare_url)r?   rQ   	merge_urlmerge_raw_pathr@   s       r0   rd   zBaseAzureClient._prepare_urlQ   s     !!d&:&:sJ`?`		#I((((1188>LyOaOaOhOhimOnn  ++55~5NNw#C((r5   )rY   r   rN   intrA   zhttpx.Request)rQ   rU   rA   z	httpx.URL)rC   rD   rE   __annotations__r   rX   rd   rF   rG   s   @r0   rI   rI   ?   s[    %%!!
 	L$L 	L
 
L L ) )r5   rI   c                      e Zd Zedddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zedddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zeddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zdddddddddddddeedddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd
Zedddeddddddddededddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       ZeZ	ddZ
edd       Zedd       Zedd       ZddZ xZS )AzureOpenAINFT)azure_deploymentapi_versionapi_keyadmin_api_keyazure_ad_tokenazure_ad_token_providerorganizationwebhook_secretwebsocket_base_urltimeoutmax_retriesdefault_headersdefault_queryhttp_client_strict_response_validation_enforce_credentialsc                    y r+    )r?   azure_endpointrk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                     r0   r>   zAzureOpenAI.__init__e       * r5   c                    y r+   r|   )r?   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                    r0   r>   zAzureOpenAI.__init__|       ( r5   )rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   c                    y r+   r|   )r?   rV   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                    r0   r>   zAzureOpenAI.__init__   r   r5   )rl   r}   rk   rm   rn   workload_identityro   rp   rq   projectrr   rs   rV   rt   ru   rv   rw   rx   ry   rz   c                  |t         j                  j                  d      }|t         j                  j                  d      }|r|||t        d      |t         j                  j                  d      }|t	        d      |d|i}ni |d|i}|\|t         j                  j                  d      }|t	        d	      ||j                  d
       d| }n"|j                  d
       d}n|t	        d      |t        }t        | !  |||	|
||||||||||       || _	        || _
        || _        |r|nd| _        |rt        j                  |      | _        yd| _        y)aa  Construct a new synchronous azure openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `AZURE_OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
        - `api_version` from `OPENAI_API_VERSION`
        - `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

        Args:
            azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

            azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

            azure_deployment: A model deployment, if given with `azure_endpoint`, sets the base client URL to include `/deployments/{azure_deployment}`.
                Not supported with Assistants APIs.
        NAZURE_OPENAI_API_KEYAZURE_OPENAI_AD_TOKENMissing credentials. Please pass one of `api_key`, `azure_ad_token`, `azure_ad_token_provider`, or the `AZURE_OPENAI_API_KEY` or `AZURE_OPENAI_AD_TOKEN` environment variables.OPENAI_API_VERSION_Must provide either the `api_version` argument or the `OPENAI_API_VERSION` environment variableapi-versionAZURE_OPENAI_ENDPOINTuMust provide one of the `base_url` or `azure_endpoint` arguments, or the `AZURE_OPENAI_ENDPOINT` environment variable//openai/deployments//openai2base_url and azure_endpoint are mutually exclusiverm   rn   rq   r   rr   rV   rt   ru   rv   rw   rx   rs   ry   rz   osenvironrT   r    
ValueErrorra   API_KEY_SENTINELr=   r>   _api_version_azure_ad_token_azure_ad_token_providerrL   r^   r_   rJ   )r?   rl   r}   rk   rm   rn   r   ro   rp   rq   r   rr   rs   rV   rt   ru   rv   rw   rx   ry   rz   r@   s                        r0   r>   zAzureOpenAI.__init__      Z ?jjnn%;<G!ZZ^^,CDNGO8NSjSr B  **..)=>Kq   *K8MI}Im[IM%!#0G!H%  L   +,33C899MN^M_`,33C89A) !UVV?&G'%)#+'#1(C!5 	 	
  (-(?%5C!1<Juyy8PTr5   rm   rn   r   providerrq   r   rr   rs   rl   ro   rp   rV   rt   rx   ru   rv   set_default_headersrw   set_default_queryrz   _extra_kwargsc                   t        |t              st        d      t        |   |||||||||||||||||	xs | j
                  |
xs | j                  |xs | j                  d|      S )~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        zFConfigure `provider` on `OpenAI`, not on `AzureOpenAI.with_options()`.rl   ro   rp   rm   rn   r   rq   r   rr   rs   rV   rt   rx   ru   rv   r   rw   r   rz   r   
isinstancer   r    r=   copyr   r   r   r?   rm   rn   r   r   rq   r   rr   rs   rl   ro   rp   rV   rt   rx   ru   rv   r   rw   r   rz   r   r@   s                         r0   r   zAzureOpenAI.copy  s    : (H-fggw|'/%)1##+ 3'/!5*?d.?.?"0"HD4H4H+B+cdFcFc  	#  
 	
r5   c                    | j                   | j                   S | j                  }|) |       }|rt        |t              st	        d|       |S y NzOExpected `azure_ad_token_provider` argument to return a string but it returned )r   r   r   rU   r   r?   r   tokens      r0   _get_azure_ad_tokenzAzureOpenAI._get_azure_ad_tokenS  sa    +'''00JE
5# 6 efkelm  Lr5   c                    | j                   dd| j                    iS | j                  r!| j                  t        k7  rd| j                  iS i S Nr7   Bearer r8   r   rm   r   r?   securitys     r0   _auth_headerszAzureOpenAI._auth_headersb  N    +#wt/C/C.D%EFF<<DLL,<<t||,,	r5   c                F    t        |      st        |      ry t        d      Nz"Could not resolve authentication method. Expected either api_key, azure_ad_token or azure_ad_token_provider to be set. Or for one of the `Authorization` or `api-key` headers to be explicitly supplied or omitted"r9   	TypeErrorr?   r3   custom_headerss      r0   _validate_headerszAzureOpenAI._validate_headersl  (    G$(8(H c
 	
r5   c                   t        |j                        ri |j                  ni }t        |      }||_        | j                         }|t	        |d      sd| |d<   |S | j
                  r0| j
                  t        k7  rt	        |d      s| j
                  |d<   |S t        |      st        | j                        r	 |S t        d      Nr7   r   r8   zUnable to handle auth
r   r3   r   r   r4   rm   r   r9   rv   r   r?   rY   r3   ro   s       r0   _prepare_optionszAzureOpenAI._prepare_optionsu  s    @H@Y)<GOO)<_aW%!113%w8-4^4D+E(  \\dll.>>w	2%)\\	"  g&*:4;O;O*P
  455r5   c                   i }i || j                   | j                  xs |d}| j                  r| j                  dk7  rd| j                  i}n| j                         }|rdd| i}| j                  Pt        j                  | j                        }|j                  j                  d      dz   }|j                  |      }n#| j                  d	      }|j                  d
      }|j                  i |      }	|	|fS N)r   
deploymentz<missing API key>r8   r7   r   r[   s	   /realtimer\   z	/realtimewss)scheme)paramsr   rL   rm   r   rs   r^   r_   r]   ra   rc   rd   
r?   rP   extra_queryauth_headersqueryr   rV   rf   realtime_urlrQ   s
             r0   _configure_realtimezAzureOpenAI._configure_realtime  s
   

,,009E

 <<DLL,??%t||4L,,.E /75'1BC"".yy!8!89H%..55d;lJN#--~-FL((5H#--U-;L$$IuI$6L  r5   )$r}   rU   rk   rK   rl   rK   rm   str | Callable[[], str] | Nonern   rK   ro   rK   rp   AzureADTokenProvider | Nonerq   rK   rr   rK   rs   str | httpx.URL | Nonert   !float | Timeout | None | NotGivenru   rg   rv   Mapping[str, str] | Nonerw   Mapping[str, object] | Nonerx   httpx.Client | Nonery   boolrz   r   rA   rB   )"rk   rK   rl   rK   rm   r   rn   rK   ro   rK   rp   r   rq   rK   rr   rK   rs   r   rt   r   ru   rg   rv   r   rw   r   rx   r   ry   r   rz   r   rA   rB   )"rV   rU   rl   rK   rm   r   rn   rK   ro   rK   rp   r   rq   rK   rr   rK   rs   r   rt   r   ru   rg   rv   r   rw   r   rx   r   ry   r   rz   r   rA   rB   )*rl   rK   r}   rK   rk   rK   rm   r   rn   rK   r   WorkloadIdentity | Nonero   rK   rp   r   rq   rK   r   rK   rr   rK   rs   r   rV   rK   rt   r   ru   rg   rv   r   rw   r   rx   r   ry   r   rz   r   rA   rB   ),rm   r   rn   rK   r   r   r   _Provider | None | NotGivenrq   rK   r   rK   rr   rK   rs   r   rl   rK   ro   rK   rp   r   rV   r   rt   r   rx   r   ru   int | NotGivenrv   r   r   r   rw   r   r   r   rz   bool | Noner   Mapping[str, Any]rA   r   rA   rK   r   r   rA   zdict[str, str]r3   r   r   r   rA   rB   rY   r   rA   r   rP   rU   r   r   rA   z tuple[httpx.URL, dict[str, str]]rC   rD   rE   r   r   r!   r>   r   r   with_optionsr   r   r   r   r   rF   rG   s   @r0   rj   rj   d   s   
 (,"&26$(%)?C#'%)595>.4859+/,1%)'  %	
   0 " # "= ! # 3 3  2  3!" )#$ &*%& #'( 
) ,  (,"&26$(%)?C#'%)595>.4859+/,1%)% %  	
 0 " # "= ! # 3 3  2 3  )!" &*#$ #%& 
' * 
 #'26$(%)?C#'%)595>.4859+/,1%)%   	
 0 " # "= ! # 3 3  2 3  )!" &*#$ #%& 
' 0 #'%)'+26$(59%)?C#'"%)59#5>.4859+/,1%)/nU  nU #	nU
 %nU 0nU "nU 3nU #nU "=nU !nU nU #nU 3nU  !nU" 3#nU$ %nU& 2'nU( 3)nU* )+nU, &*-nU. #/nU0 
1nU`  37$(5909#'"%)59"&%)?C+/5>+/&/488<599=,0+-/6
 06
 "	6

 36
 .6
 !6
 6
 #6
 36
  6
 #6
 "=6
 )6
 36
  )!6
" $#6
$ 2%6
& 6'6
( 3)6
* 7+6
, *-6
. )/6
0 
16
 6
p L   
 
  *!r5   rj   c                      e Zd Zeddddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zeddddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zedddddddddeedddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Zdddddddddddddeedddddd		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd
Zedddeddddddddededddddi d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd       ZeZ	ddZ
edd       Zedd       Zedd       ZddZ xZS )AsyncAzureOpenAINFT)rk   rl   rm   rn   ro   rp   rq   r   rr   rs   rt   ru   rv   rw   rx   ry   rz   c                    y r+   r|   )r?   r}   rk   rl   rm   rn   ro   rp   rq   r   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                      r0   r>   zAsyncAzureOpenAI.__init__  s    , r5   c                    y r+   r|   )r?   rk   rl   rm   rn   ro   rp   rq   r   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                     r0   r>   zAsyncAzureOpenAI.__init__  r~   r5   )rl   rm   rn   ro   rp   rq   r   rr   rs   rt   ru   rv   rw   rx   ry   rz   c                    y r+   r|   )r?   rV   rl   rm   rn   ro   rp   rq   r   rr   rs   rt   ru   rv   rw   rx   ry   rz   s                     r0   r>   zAsyncAzureOpenAI.__init__  r~   r5   )r}   rk   rl   rm   rn   r   ro   rp   rq   r   rr   rV   rs   rt   ru   rv   rw   rx   ry   rz   c                  |t         j                  j                  d      }|t         j                  j                  d      }|r|||t        d      |t         j                  j                  d      }|t	        d      |d|i}ni |d|i}|\|t         j                  j                  d      }|t	        d	      ||j                  d
       d| }n"|j                  d
       d}n|t	        d      |t        }t        | !  |||	|
||||||||||       || _	        || _
        || _        |r|nd| _        |rt        j                  |      | _        yd| _        y)ab  Construct a new asynchronous azure openai client instance.

        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `AZURE_OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        - `azure_ad_token` from `AZURE_OPENAI_AD_TOKEN`
        - `api_version` from `OPENAI_API_VERSION`
        - `azure_endpoint` from `AZURE_OPENAI_ENDPOINT`

        Args:
            azure_endpoint: Your Azure endpoint, including the resource, e.g. `https://example-resource.azure.openai.com/`

            azure_ad_token: Your Azure Active Directory token, https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id

            azure_ad_token_provider: A function that returns an Azure Active Directory token, will be invoked on every request.

            azure_deployment: A model deployment, if given with `azure_endpoint`, sets the base client URL to include `/deployments/{azure_deployment}`.
                Not supported with Assistants APIs.
        Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   )r?   r}   rk   rl   rm   rn   r   ro   rp   rq   r   rr   rV   rs   rt   ru   rv   rw   rx   ry   rz   r@   s                        r0   r>   zAsyncAzureOpenAI.__init__  r   r5   r   c                   t        |t              st        d      t        |   |||||||||||||||||	xs | j
                  |
xs | j                  |xs | j                  d|      S )r   zPConfigure `provider` on `AsyncOpenAI`, not on `AsyncAzureOpenAI.with_options()`.r   r   r   r   s                         r0   r   zAsyncAzureOpenAI.copy\  s    : (H-pqqw|'/%)1##+ 3'/!5*?d.?.?"0"HD4H4H+B+cdFcFc  	#  
 	
r5   c                  K   | j                   | j                   S | j                  }|_ |       }t        j                  |      r
| d {   }|rt	        t        t        |      t              st        d|       t        |      S y 7 >wr   )	r   r   inspectisawaitabler   r
   r   rU   r   r   s      r0   r   z$AsyncAzureOpenAI._get_azure_ad_token  s     +'''00JE""5)#
4U+;S A efkelm  u: $s   AB
B	?Bc                    | j                   dd| j                    iS | j                  r!| j                  t        k7  rd| j                  iS i S r   r   r   s     r0   r   zAsyncAzureOpenAI._auth_headers  r   r5   c                F    t        |      st        |      ry t        d      r   r   r   s      r0   r   z"AsyncAzureOpenAI._validate_headers  r   r5   c                  K   t        |j                        ri |j                  ni }t        |      }||_        | j                          d {   }|t	        |d      sd| |d<   |S | j
                  r0| j
                  t        k7  rt	        |d      s| j
                  |d<   |S t        |      st        | j                        r	 |S t        d      7 wr   r   r   s       r0   r   z!AsyncAzureOpenAI._prepare_options  s     @H@Y)<GOO)<_aW%!#7799%w8-4^4D+E(  \\dll.>>w	2%)\\	"  g&*:4;O;O*P
  455 :s   ACCBCc                  K   i }i || j                   | j                  xs |d}| j                  r| j                  dk7  rd| j                  i}n!| j                          d {   }|rdd| i}| j                  Pt        j                  | j                        }|j                  j                  d      dz   }|j                  |      }n#| j                  d	      }|j                  d
      }|j                  i |      }	|	|fS 7 wr   r   r   s
             r0   r   z$AsyncAzureOpenAI._configure_realtime  s    

,,009E

 <<DLL,??%t||4L2244E /75'1BC"".yy!8!89H%..55d;lJN#--~-FL((5H#--U-;L$$IuI$6L   5s   A!D
#D$B%D
)&r}   rU   rk   rK   rl   rK   rm   )str | Callable[[], Awaitable[str]] | Nonern   rK   ro   rK   rp    AsyncAzureADTokenProvider | Nonerq   rK   r   rK   rr   rK   rs   r   rt   r   ru   rg   rv   r   rw   r   rx   httpx.AsyncClient | Nonery   r   rz   r   rA   rB   )$rk   rK   rl   rK   rm   r   rn   rK   ro   rK   rp   r   rq   rK   r   rK   rr   rK   rs   r   rt   r   ru   rg   rv   r   rw   r   rx   r   ry   r   rz   r   rA   rB   )$rV   rU   rl   rK   rm   r   rn   rK   ro   rK   rp   r   rq   rK   r   rK   rr   rK   rs   r   rt   r   ru   rg   rv   r   rw   r   rx   r   ry   r   rz   r   rA   rB   )*r}   rK   rk   rK   rl   rK   rm   r   rn   rK   r   r   ro   rK   rp   r   rq   rK   r   rK   rr   rK   rV   rK   rs   r   rt   r   ru   rg   rv   r   rw   r   rx   r   ry   r   rz   r   rA   rB   ),rm   r   rn   rK   r   r   r   r   rq   rK   r   rK   rr   rK   rs   r   rl   rK   ro   rK   rp   r   rV   r   rt   r   rx   r   ru   r   rv   r   r   r   rw   r   r   r   rz   r   r   r   rA   r   r   r   r   r   r   r   rG   s   @r0   r   r     s   
 (,"&=A$(%)DH#'"%)595>.485904,1%))  %	
   ; " # "B !  # 3 3   2!" 3#$ .%& &*'( #)* 
+ .  (,"&=A$(%)DH#'"%)595>.485904,1%)' %  	
 ; " # "B !  # 3 3  2  3!" .#$ &*%& #'( 
) , 
 #'=A$(%)DH#'"%)595>.485904,1%)'   	
 ; " # "B !  # 3 3  2  3!" .#$ &*%& #'( 
) 2 &*'+"&=A$(59%)DH#'"%)#595>.485904,1%)/nU #nU %	nU
  nU ;nU "nU 3nU #nU "BnU !nU nU #nU nU  3!nU" 3#nU$ %nU& 2'nU( 3)nU* .+nU, &*-nU. #/nU0 
1nU`  >B$(5909#'"%)59"&%)DH+/5>04&/488<599=,0+-/6
 ;6
 "	6

 36
 .6
 !6
 6
 #6
 36
  6
 #6
 "B6
 )6
 36
  .!6
" $#6
$ 2%6
& 6'6
( 3)6
* 7+6
, *-6
. )/6
0 
16
 6
p L"   
 
  *!r5   r   )r3   r   r/   rU   rA   r   )r3   r   rA   r   )@
__future__r   r   r   typingr   r   r   r   r   r	   r
   r   typing_extensionsr   r   r^   authr   _typesr   r   r   r   r   r   _utilsr   r   _clientr   r   _compatr   _modelsr   r   	_providerr   
_streamingr   r   _exceptionsr    _base_clientr!   r"   setrR   rU   AzureADTokenProviderAsyncAzureADTokenProviderClientAsyncClientr#   r%   joinr   r4   r9   r;   rI   rj   r   r|   r5   r0   <module>r     s9   " 	  T T T ,  # G G ) )   : ! , % :	   C( $R)?%?@ uU\\5CTCT5T/UV+5kRUFV9V3WX 7789 9
T
 
")j!?@ ")J~!/%,,s";<f ~!B
C!u'8'8+c:J'JK[ C!r5   