
    iw2                        S SK r S SKJr  S SKJr  S SKJrJrJr  SSK	J
r
Jr  SSKJr  \S   rS	rS
rSrSrSrSrSrSrSrS	S
SSSSSSSS.	rS r " S S\\5      r\ " S S5      5       r " S S\SS9r\R<                  \R>                  \R@                  \RB                  S.r"0 SS_SS_SS _S!S"_S#S$_S%S&_S'S(_S)S*_S+S,_S-S._S/S0_S1S2_S3S4_S5S6_S7S8_S9S:_S;S<_0 S=S>_S?S@_SASB_SCSD_SESF_SGSH_SISJ_SKSL_SMSN_SOSP_SQSR_SSST_SUSV_SWSX_SYSZ_S[S\_S]S^_ES_S`SaSb.Er#0 S Sc_SdSe_SSf_SgSh_SiSj_SkSl_SmSn_SoSp_SqSr_SsSt_SSu_SvSw_SxSy_SzS{_S|S}_S~S_SS_0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_ESSSSSSSSSSSSSS.Er$SSSSSSSSSSS.
r%S\&S\'4S jr(g)    N)	dataclass)Enum)LiteralOptional	TypedDict   )CurlOptCurlSslVersion)CurlCffiWarning)2edge99edge101chrome99	chrome100	chrome101	chrome104	chrome107	chrome110	chrome116	chrome119	chrome120	chrome123	chrome124	chrome131
chrome133a	chrome136	chrome142chrome99_androidchrome131_android	safari153	safari155	safari170safari172_ios	safari180safari180_ios	safari184safari184_ios	safari260
safari2601safari260_ios
firefox133
firefox135
firefox144tor145chromeedgesafari
safari_iossafari_betasafari_ios_betachrome_androidfirefox
safari15_3
safari15_5
safari17_0safari17_2_ios
safari18_0safari18_0_ios
safari18_4safari18_4_iosr   r   r(   r)   r   r,   r-   )	r.   r/   r0   r1   r2   r3   r4   r5   torc                     U S:X  a  [         $ U S:X  a  [        $ U S:X  a  [        $ U S:X  a  [        $ U S:X  a  [        $ U S:X  a  [
        $ U S:X  a  [        $ U S:X  a  [        $ U S	:X  a  [        $ U $ )
Nr.   r/   r0   r1   r2   r3   r4   r5   r>   )	DEFAULT_CHROMEDEFAULT_EDGEDEFAULT_SAFARIDEFAULT_SAFARI_IOSDEFAULT_SAFARI_BETADEFAULT_SAFARI_IOS_BETADEFAULT_CHROME_ANDROIDDEFAULT_FIREFOXDEFAULT_TOR)items    K/app/mltbenv/lib/python3.13/site-packages/curl_cffi/requests/impersonate.pynormalize_browser_typerK   f   s    x					!!		""	"	"&&	!	!%%			    c                       \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,g+),BrowserType}   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'   r)   r(   r*   r+   r,   r-   r6   r7   r8   r9   r:   r;    N)-__name__
__module____qualname____firstlineno__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'   r)   r(   r*   r+   r,   r-   r6   r7   r8   r9   r:   r;   __static_attributes__rP   rL   rJ   rN   rN   }   s    FGHIIIIIIIIIIIJII)+III#MI#MI#MI#MJJJJF JJJ%NJ%NrL   rN   c                       \ rS rSr% \R
                  r\\S'   Sr	\
\S'   Sr\
\S'   Sr\S   \S'   S	r\\\      \S
'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Sr\
\S'   Srg	)ExtraFingerprints   tls_min_versionF
tls_greasetls_permute_extensionsbrotlizlibr\   tls_cert_compressionNtls_signature_algorithms tls_delegated_credentialr   tls_record_size_limit   http2_stream_weight   http2_stream_exclusivehttp2_no_priorityrP   )rQ   rR   rS   rT   r
   TLSv1_2rY   int__annotations__rZ   boolr[   r_   r   r`   r   liststrrb   rc   re   rg   rh   rU   rP   rL   rJ   rW   rW      s    )11OS1J#(D(6>'"23>48htCy18$&c&!"3""""#C##t#rL   rW   c                       \ rS rSr% \\S'   \\S'   \\S'   \S   \S'   \\	\
      \S'   \
\S'   \\S	'   \\S
'   \\S'   \\S'   Srg)ExtraFpDict   rY   rZ   r[   r]   r_   r`   rb   rc   re   rg   rh   rP   N)rQ   rR   rS   rT   rj   rk   rl   r   r   rm   rn   rU   rP   rL   rJ   rp   rp      sM      !"233&tCy11!!rL   rp   F)total)i  i  i  i  
   TLS_RSA_WITH_3DES_EDE_CBC_SHA/   TLS_RSA_WITH_AES_128_CBC_SHA3    TLS_DHE_RSA_WITH_AES_128_CBC_SHA5   TLS_RSA_WITH_AES_256_CBC_SHA9    TLS_DHE_RSA_WITH_AES_256_CBC_SHA<   TLS_RSA_WITH_AES_128_CBC_SHA256=   TLS_RSA_WITH_AES_256_CBC_SHA256g   #TLS_DHE_RSA_WITH_AES_128_CBC_SHA256k   #TLS_DHE_RSA_WITH_AES_256_CBC_SHA256   TLS_PSK_WITH_AES_128_CBC_SHA   TLS_PSK_WITH_AES_256_CBC_SHA   TLS_RSA_WITH_AES_128_GCM_SHA256   TLS_RSA_WITH_AES_256_GCM_SHA384   #TLS_DHE_RSA_WITH_AES_128_GCM_SHA256   #TLS_DHE_RSA_WITH_AES_256_GCM_SHA384i  TLS_AES_128_GCM_SHA256i  TLS_AES_256_GCM_SHA384i  TLS_CHACHA20_POLY1305_SHA256i  %TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHAi	  $TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHAi
  $TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHAi  #TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHAi  "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHAi  "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHAi#  'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256i$  'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384i'  %TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256i(  %TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384i+  'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256i,  'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384i/  %TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256i0  %TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384i5  "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHAi6  "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA+TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256-TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256+TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256)i  i  i  server_namerf   max_fragment_lengthclient_certificate_url   trusted_ca_keys   truncated_hmac   status_request   user_mapping   client_authz   server_authz	   	cert_typesupported_groups   ec_point_formats   srp   signature_algorithms   use_srtp   	heartbeat   &application_layer_protocol_negotiation   status_request_v2   signed_certificate_timestamp   client_certificate_type   server_certificate_type   padding   encrypt_then_mac   extended_master_secret   token_binding   cached_info   tls_lts   compress_certificate   record_size_limit   pwd_protect   	pwd_clear   password_salt    ticket_pinning!   tls_cert_with_extern_psk"   delegated_credential#   session_ticket$   TLMSP%   TLMSP_proxying&   TLMSP_delegate'   supported_ekt_ciphers)   pre_shared_key*   
early_data+   supported_versions,   cookie-   psk_key_exchange_modescertificate_authorities0   oid_filters1   post_handshake_auth2   signature_algorithms_cert	key_share4   transparency_infoconnection_idexternal_id_hashexternal_session_idquic_transport_parametersticket_requestdnssec_chain%sequence_number_encryption_algorithmsrrcapplication_settingszapplication_settings newech_outer_extensionsencrypted_client_hellorenegotiation_info)6   7   8   r{   :   ;   r}   r   iD  D  i     i  zP-192zP-224zP-256zP-384zP-521X25519	ffdhe2048	ffdhe3072X25519MLKEM768X25519Kyber768Draft00)
r   r   r   r   r   r   rd   i  i  ic  extension_idenablec                    US:X  aI  U(       a!  U R                  [        R                  S5        g U R                  [        R                  S5        g US:X  ac  U(       a;  [        R                  " S[
        SS9  U R                  [        R                  S5        g U R                  [        R                  S5        g US	:X  aI  U(       a!  U R                  [        R                  S5        g U R                  [        R                  S
5        g US:X  a  U(       aA  U R                  [        R                  S5        U R                  [        R                  S5        g U R                  [        R                  S
5        U R                  [        R                  S
5        g US
:X  a  [        S5      eUS:X  aI  U(       a!  U R                  [        R                  S5        g U R                  [        R                  S
5        g US:X  a)  U(       a!  U R                  [        R                  S5        g g US:X  a)  U(       a!  U R                  [        R                  S5        g g US:X  aI  U(       a!  U R                  [        R                  S5        g U R                  [        R                  S
5        g US:X  a  g US;   a  g [        SU S35      e)Nr  greasera   r   zTCert compression setting to brotli, you had better specify which to use: zlib/brotlirf   )
stacklevelr\   r  r   r  z>It's unlikely that the server_name(0) extension being changed.r   r   r   r   r   )r   r   zThis extension(z6) can not be toggled for now, it may be updated later.)setoptr	   ECHwarningswarnr   SSL_CERT_COMPRESSIONSSL_ENABLE_ALPSTLS_USE_NEW_ALPS_CODEPOINTNotImplementedErrorSSL_ENABLE_ALPNTLS_STATUS_REQUESTTLS_SIGNED_CERT_TIMESTAMPSSSL_ENABLE_TICKET)curlr   r!  s      rJ   toggle_extensionr2  v  s   uKKX.KKR(		MMC	 KK44h?KK44b9		KK//3KK//3		KK//3KK::A>KK//3KK::A>		!L
 	
 
	KK//3KK//3		KK22A6  
	KK::A>  
	KK1115KK1115				!!l^ , 
 	
rL   ))r'  dataclassesr   enumr   typingr   r   r   constr	   r
   utilsr   BrowserTypeLiteralr@   rA   rB   rC   rD   rE   rF   rG   rH   REAL_TARGET_MAPrK   rn   rN   rW   rp   TLSv1_0TLSv1_1ri   TLSv1_3TLS_VERSION_MAPTLS_CIPHER_NAME_MAPTLS_EXTENSION_NAME_MAPTLS_EC_CURVES_MAPrj   rl   r2  rP   rL   rJ   <module>rA     s    !  / / + #6B J $ " ) ,  !&)
.*&#t *&Z 
$ 
$ 
$
)5 
  """"""""	&
+&
*& .& *	&
 .& -& -& 1& 1& *& *& -& -& 1& 1&  $!&" $#&$ *%&& 3'&( 2)&* 2+&, 1-&. 0/&0 01&2 53&4 55&6 37&8 39&: 5;&< 5=&> 3?&@ 3A&B 0C&D 0E&F :;9K& Vi}ii i 	i
 i i ~i ~i ~i {i i i i i 
i  !i" 0#i$ %i& &'i( !)i* !+i, 	-i. /i0  1i2 3i4 5i6 	7i8 9i: ;i< =i> ?i@ AiB CiD "EiF GiH IiJ KiL MiN OiP QiT UiV WiX YiZ [i\  ]i` !aib cid eif #gih iij kin 	#/!%D "#  Oi Z 			
" C
 C
d C
rL   