Ë
    š„j7  ã                  óx  — U d dl mZ d dlZd dlZd dlZd dlZd dlZddlm	Z	 ddl
mZ ddlmZmZmZmZ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 m!Z! e€ e"d«      ‚ e# e$e% ejL                  dejN                  «      dd «      «      Z(e(dk7  r)de(cxk  rdk  sn ejN                  › d�e_)         e"d«      ‚d dl*Zd dl+m,Z,m-Z-  G d„ dej\                  «      Z/ G d„ de«      Z0 edddd«       edddd«       edddd«       edd dd«       edd!dd«       edd"dd«       edd#dd«       ed$ddd«       ed$d dd«      d%œ	 edd&dd«       edd'd(d)«       edd*d(d)«       ed+d,d(d)«       ed+d-d.d-«       ed+d/d(d0«       ed+d1d(d«      d2œ edd3d(d)«       edd4d(d)«      d5œ ed+d6d(d7«       ed+d6d.d6«      d8œ edd9d(d)«       edd9dd)«       edd:d(d7«       ed;d:d(d)«      d<œd= ed;d>d(d)«      i ed?d@d(d)«       ed+dAd(d7«       ed+dAd.dA«       eddBd(d7«      dCœ ed+dDd(dE«       ed+dDd.dD«      dFœ eddGd(dE«       ed+dHd(dE«      dIœ eddJd(dE«       eddKd(dE«       ed;dLd(dE«       ed;dMd(dE«      dNœdOœ
Z1dPe2dQ<   dRdSdTdUdVdWdXœZ3 edd:d(d7«       eddBd(d7«      hZ4e G dY„ dZee	«      «       Z5 ee5«      d[„ «       Z6y)\é    )ÚannotationsNé   )ÚInstanceStoreMixiné   )Úselect_proxy)ÚFeaturesÚRequestÚResponseÚregister_preferenceÚregister_rh)ÚCertificateVerifyErrorÚ	HTTPErrorÚIncompleteReadÚ
ProxyErrorÚSSLErrorÚTransportError)ÚImpersonateRequestHandlerÚImpersonateTarget)Ú	curl_cffiÚcertifi)Úint_or_noneÚversion_tuplezcurl_cffi is not installedz[^\d]+é   )r   é   é
   ©r   r   )r   é   z (unsupported)zFOnly curl_cffi versions 0.5.10 and 0.10.x through 0.15.x are supported)Ú	CurlECodeÚCurlOptc                  ó4   ‡ — e Zd Zdd„Zd„ Zdd„Zˆ fd„Zˆ xZS )ÚCurlCFFIResponseReaderc                óX   — || _         |j                  «       | _        d| _        d| _        y )Nó    r   )Ú	_responseÚiter_contentÚ	_iteratorÚ_bufferÚ
bytes_read)ÚselfÚresponses     úR/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/networking/_curlcffi.pyÚ__init__zCurlCFFIResponseReader.__init__-   s'   € Ø!ˆŒØ!×.Ñ.Ó0ˆŒØˆŒØˆ�r#   c                 ó   — y)NT© )r)   s    r+   ÚreadablezCurlCFFIResponseReader.readable3   s   € Ør#   c                ól  — d}	 | j                   r•|�t        | j                  «      |k  r{t        | j                   d «      }|€d | _         n[| xj                  |z  c_        | xj                  t        |«      z  c_        | j                   r|€Œbt        | j                  «      |k  rŒ{|€t        | j                  «      }| j                  d | }| j                  |d  | _        | j                   s| j                  s| j                  «        d}||r| j                  «        S S # |r| j                  «        w w xY w)NTF)r&   Úlenr'   Únextr(   Úclose)r)   ÚsizeÚexception_raisedÚchunkÚdatas        r+   ÚreadzCurlCFFIResponseReader.read6   s   € ØÐð	Ø—.’. d l´c¸$¿,¹,Ó6GÈ$Ò6NÜ˜TŸ^™^¨TÓ2�Ø�=Ø%)�D”NØØ—’ Ñ%•Ø—’¤3 u£:Ñ-•ð —.’. d¡l´c¸$¿,¹,Ó6GÈ$Ó6Nð ˆ|Ü˜4Ÿ<™<Ó(�Ø—<‘<  Ð&ˆDØŸ<™<¨¨Ð.ˆDŒLð —>’>¨$¯,ª,Ø—
‘
”Ø$ÐØáØ—
‘
•ð  øÑØ—
‘
•ð  ús   „BD ÂD Â%A%D ÄD3c                ó|   •— | j                   s!| j                  j                  «        d| _        t        ‰| �	  «        y )Nr#   )Úclosedr$   r3   r'   Úsuper)r)   Ú	__class__s    €r+   r3   zCurlCFFIResponseReader.closeP   s*   ø€ Ø�{Š{Ø�N‰N× Ñ Ô"ØˆDŒLÜ‰‰�r#   ©r*   zcurl_cffi.requests.Response©N)Ú__name__Ú
__module__Ú__qualname__r,   r/   r8   r3   Ú__classcell__©r<   s   @r+   r!   r!   ,   s   ø„ óòó÷4ð r#   r!   c                  ó4   ‡ — e Zd ZU ded<   dˆ fd„Zdd„Zˆ xZS )ÚCurlCFFIResponseAdapterr!   Úfpc                ó�   •— t         ‰| �  t        |«      |j                  |j                  |j
                  |j                  ¬«       y )N)rF   ÚheadersÚurlÚstatusÚreason)r;   r,   r!   rH   rI   Ústatus_coderK   )r)   r*   r<   s     €r+   r,   z CurlCFFIResponseAdapter.__init__Z   s=   ø€ Ü‰ÑÜ% hÓ/Ø×$Ñ$Ø—‘Ø×'Ñ'Ø—?‘?ð 	õ 	$r#   c                ó0  — 	 | j                   j                  |«      }| j                   j                  r| j                  «        |S # t        j
                  j                  j                  $ r©}|j                  t        j                  k(  rz|j                  xr. t        |j                  j                  j                  d«      «      }t        | j                   j                   |�|| j                   j                   z
  nd |¬«      |‚t#        |¬«      |‚d }~ww xY w)NzContent-Length)ÚpartialÚexpectedÚcause©rP   )rF   r8   r:   r3   r   ÚrequestsÚerrorsÚRequestsErrorÚcoder   ÚPARTIAL_FILEr*   r   rH   Úgetr   r(   r   )r)   ÚamtÚresÚeÚcontent_lengths        r+   r8   zCurlCFFIResponseAdapter.readb   sÚ   € ð	1Ø—'‘'—,‘,˜sÓ#ˆCØ�w‰w�~Š~Ø—
‘
”ØˆJøÜ×!Ñ!×(Ñ(×6Ñ6ò 	1Ø�v‰vœ×/Ñ/Ò/Ø!"§¡Ò!e´¸A¿J¹J×<NÑ<N×<RÑ<RÐScÓ<dÓ0e�Ü$Ø ŸG™G×.Ñ.ØDRÐD^˜^¨d¯g©g×.@Ñ.@Ò@ÐdhØôð #$ð$ô ! qÔ)¨qÐ0ûð	1ús   ‚AA Á'DÁ,B$DÄDr=   r>   )r?   r@   rA   Ú__annotations__r,   r8   rB   rC   s   @r+   rE   rE   W   s   ø… ØÓõ$÷1r#   rE   ÚchromeÚ99ÚwindowsÚ10ÚandroidÚ12Ú100Ú101Ú104Ú107Ú110Úedge)	Úchrome99Úchrome99_androidÚ	chrome100Ú	chrome101Ú	chrome104Ú	chrome107Ú	chrome110Úedge99Úedge101Ú116Ú119ÚmacosÚ14Ú120Úsafariz17.0z17.2Úiosz15.3Ú11z15.5)Ú	chrome116Ú	chrome119Ú	chrome120Ú	safari170Úsafari172_iosÚ	safari153Ú	safari155Ú123Ú124)Ú	chrome123Ú	chrome124z18.0Ú15)Ú	safari180Úsafari180_iosÚ131Ú133Úfirefox)Ú	chrome131Úchrome131_androidÚ
chrome133aÚ
firefox133Ú
firefox135Ú135Útorz14.5z18.4Ú136)Útor145Ú	safari184Úsafari184_iosÚ	chrome136z26.0Ú26)Ú	safari260Úsafari260_iosÚ142z26.0.1)Ú	chrome142Ú
safari2601Ú145Ú146Ú144Ú147)Ú	chrome145Ú	chrome146Ú
firefox144Ú
firefox147)
)r   r   )r   é   )r   é   )r   é   ©r   é	   r   ©r   é   )r   é   )r   é   )r   é   z3dict[tuple[int, ...], dict[str, ImpersonateTarget]]ÚBROWSER_TARGETSÚ
safari15_3Ú
safari15_5Ú
safari17_0Úsafari17_2_iosÚ
safari18_0Úsafari18_0_ios)r   r€   r}   r~   r†   r‡   c                  ó  ‡— e Zd ZdZdZej                  ej                  fZdZ	 e
 eej                  j                  d„ ej!                  «       D «       «      d„ d¬«      «      j!                  «       D � �����ci c]a  \  }}|t"        dk\  r|nOt"        d	k\  rt$        j'                  ||«      n0t(        j*                  j,                  t$        j'                  ||«         “Œc c}}}}}} Zdd
„Zˆfd„Zdˆfd„Zdd„ZˆxZS c c}}}}}} w )Ú
CurlCFFIRHr   )ÚhttpÚhttps)r¸   r¹   Úsocks4Úsocks4aÚsocks5Úsocks5hc              #  óT   K  — | ]   \  }}t         |k\  r|j                  «       –— Œ" y ­wr>   )Úcurl_cffi_versionÚitems)Ú.0ÚversionÚtargetss      r+   ú	<genexpr>zCurlCFFIRH.<genexpr>Ò   s,   è ø€ ò H
á �˜Ü  GÒ+ð �M‰M�OñH
ùs   ‚&(c                óÆ   — | d   t         v| d   j                  dvdj                  | d   j                  «      t	        | d   j
                  xs d«      | d   j                  fS )Nr   )rx   ra   )r‘   rh   rŠ   rw   r]   Ú0)Ú_DEPRIORITIZED_TARGETSÚosÚindexÚclientr   rÂ   )Úxs    r+   ú<lambda>zCurlCFFIRH.<lambda>Ö   s]   € àˆa‰DÔ.Ð.àˆa‰D�G‰GÐ-Ð-à:×@Ñ@ÀÀ1ÁÇÁÓMä˜!˜A™$Ÿ,™,Ò-¨#Ó.àˆa‰D�G‰Gð
€ r#   T)ÚkeyÚreverserª   r¨   c                óB   — t         j                  j                  |¬«      S )N)Úcookies)r   rR   ÚSession)r)   Ú	cookiejars     r+   Ú_create_instancezCurlCFFIRH._create_instanceä   s   € Ü×!Ñ!×)Ñ)°)Ð)Ó<Ð<r#   c                ó´   •— t         ‰| �  |«       |j                  dd «       |j                  dd «       |j                  dd «       |j                  dd «       y )NÚimpersonaterÒ   ÚtimeoutÚ
legacy_ssl)r;   Ú_check_extensionsÚpop)r)   Ú
extensionsr<   s     €r+   rØ   zCurlCFFIRH._check_extensionsç   sJ   ø€ Ü‰Ñ! *Ô-Ø�‰�} dÔ+Ø�‰�{ DÔ)Ø�‰�y $Ô'ð 	�‰�| TÕ*r#   c                ó¾   •— | j                  |«      }	 t        ‰| �	  |«      }||j
                  d<   |S # t        $ r}||j                  j
                  d<   ‚ d }~ww xY w)NrÕ   )Ú_get_request_targetr;   Úsendr   r*   rÚ   )r)   ÚrequestÚtargetr*   rZ   r<   s        €r+   rÝ   zCurlCFFIRH.sendð   sf   ø€ Ø×)Ñ)¨'Ó2ˆð	Ü‘w‘| GÓ,ˆHð .4ˆ×Ñ˜MÑ*Øˆøô	 ò 	Ø39ˆA�J‰J×!Ñ! -Ñ0Øûð	ús   ”4 ´	A½AÁAc                óN
  — d}| j                  d|j                  vr| j                  |«      nd ¬«      }| j                  r*|j                  j                  t        j                  d«       | j                  |«      }d|v r?|j                  j                  t        j                  |d   «       |j                  dd «       t        |j                  |¬«      }|�r6|j                  j                  t        j                  |«       t        j                  j!                  |j                  «      j"                  j%                  «       }|dk7  r*|j                  j                  t        j&                  d«       |j                  j                  t        j(                  t+        j,                  «       «       | j.                  sT|j                  j                  t        j0                  d«       |j                  j                  t        j2                  d«       | j5                  |«      }| j6                  rÅ|j                  j                  t        j8                  | j6                  d	   «       | j6                  j;                  d
«      }| j6                  j;                  d«      }	|r*|j                  j                  t        j<                  |«       |	r*|j                  j                  t        j>                  |	«       | jA                  |«      }
|j                  j                  t        jB                  d«       |j                  j                  t        jD                  tG        jH                  |
«      «       	 |jK                  |jL                  |j                  ||jN                  | j.                  d|
|
f| jP                  j;                  | jS                  |«      «      | jT                  d¬«
      }tw        |«      }d|jx                  cxk  rdk  sn t{        ||¬«      ‚|S # tV        jX                  jZ                  j\                  $ rì}|j^                  t`        jb                  k(  rte        |¬«      |‚|j^                  t`        jf                  k(  rti        |¬«      |‚|j^                  t`        jj                  k(  rd}|jl                  }na|j^                  t`        j                  k(  s*|j^                  t`        jn                  k(  rdtq        |«      v rts        |¬«      |‚tu        |¬«      |‚Y d }~�Œ?d }~ww xY w)NFÚcookie)rÒ   r   Úno)Úproxiesr¸   r   Úclient_certificateÚclient_certificate_keyÚclient_certificate_passwordr   T)
ÚmethodrI   rH   r7   ÚverifyÚmax_redirectsrÖ   rÕ   Ú	interfaceÚstreamrQ   ÚCONNECTéÈ   i,  )Úredirect_loop)>Ú_get_instancerH   Ú_get_cookiejarÚverboseÚcurlÚsetoptr   ÚVERBOSEÚ_get_proxiesÚNOPROXYrÙ   r   rI   ÚPROXYÚurllibÚparseÚurlparseÚschemeÚlowerÚHTTPPROXYTUNNELÚPROXY_CAINFOr   Úwhererè   ÚPROXY_SSL_VERIFYPEERÚPROXY_SSL_VERIFYHOSTÚ_get_impersonate_headersÚ_client_certÚSSLCERTrW   ÚSSLKEYÚ	KEYPASSWDÚ_calculate_timeoutÚLOW_SPEED_LIMITÚLOW_SPEED_TIMEÚmathÚceilrÞ   rç   r7   Ú!_SUPPORTED_IMPERSONATE_TARGET_MAPrÜ   Úsource_addressr   rR   rS   rT   rU   r   ÚPEER_FAILED_VERIFICATIONr   ÚSSL_CONNECT_ERRORr   ÚTOO_MANY_REDIRECTSr*   Ú
RECV_ERRORÚstrr   r   rE   rJ   r   )r)   rÞ   Úmax_redirects_exceededÚsessionrã   Úproxyrû   rH   rå   ræ   rÖ   Úcurl_responserZ   r*   s                 r+   Ú_sendzCurlCFFIRH._sendú   sÚ  € Ø!&ÐØ.2×.@Ñ.@Ø6>ÀgÇoÁoÑ6U�d×)Ñ)¨'Ô2Ð[_ð /Aó /aˆð �<Š<Ø�L‰L×Ñ¤§¡°Ô3à×#Ñ# GÓ,ˆØ�7‰?Ø�L‰L×Ñ¤§¡°¸±Ô?Ø�K‰K˜˜dÔ#ô ˜WŸ[™[°'Ô:ˆÚØ�L‰L×Ñ¤§¡¨uÔ5Ü—\‘\×*Ñ*¨7¯;©;Ó7×>Ñ>×DÑDÓFˆFØ˜Òð —‘×#Ñ#¤G×$;Ñ$;¸QÔ?ð �L‰L×Ñ¤× 4Ñ 4´g·m±m³oÔFà—;’;Ø—‘×#Ñ#¤G×$@Ñ$@À!ÔDØ—‘×#Ñ#¤G×$@Ñ$@À!ÔDà×/Ñ/°Ó8ˆà×ÒØ�L‰L×Ñ¤§¡°×1BÑ1BÐCWÑ1XÔYØ%)×%6Ñ%6×%:Ñ%:Ð;SÓ%TÐ"Ø*.×*;Ñ*;×*?Ñ*?Ð@]Ó*^Ð'Ù%Ø—‘×#Ñ#¤G§N¡NÐ4JÔKÙ*Ø—‘×#Ñ#¤G×$5Ñ$5Ð7RÔSà×)Ñ)¨'Ó2ˆð 	�‰×ÑœG×3Ñ3°QÔ7Ø�‰×ÑœG×2Ñ2´D·I±I¸gÓ4FÔGð	5Ø#ŸO™OØ—~‘~Ø—K‘KØØ—\‘\Ø—{‘{ØØ  'Ð*Ø ×BÑB×FÑFØ×,Ñ,¨WÓ5ó7à×-Ñ-Øð ,ó ˆMô@ +¨=Ó9ˆà�h—o‘oÔ+¨Ô+Ü˜HÐ4JÔKÐKàˆøô1 ×!Ñ!×(Ñ(×6Ñ6ò 	5Ø�v‰vœ×;Ñ;Ò;Ü,°1Ô5¸1Ð<à—‘œ9×6Ñ6Ò6Ü QÔ'¨QÐ.à—‘œ9×7Ñ7Ò7Ø)-Ð&Ø !§
¡
‘ð —‘œ)Ÿ/™/Ò)Ø—F‘Fœi×2Ñ2Ò2°yÄCÈÃFÑ7Jä  qÔ)¨qÐ0ä$¨1Ô-°1Ð4õ ûð	5ús   Í)A7P Ð'T$Ð8C!TÔT$r>   )rÞ   r	   Úreturnr
   )rÞ   r	   )r?   r@   rA   ÚRH_NAMEÚ_SUPPORTED_URL_SCHEMESr   ÚNO_PROXYÚ	ALL_PROXYÚ_SUPPORTED_FEATURESÚ_SUPPORTED_PROXY_SCHEMESÚdictÚsortedÚ	itertoolsÚchainÚfrom_iterabler¯   rÀ   r¿   Ú_TARGETS_COMPAT_LOOKUPrW   r   rR   ÚBrowserTyper  rÓ   rØ   rÝ   r  rB   )rÁ   Únamerß   r¿   r$  r   r<   s   000000@r+   r·   r·   Ç   s   ø„ à€GØ.ÐØ#×,Ñ,¨h×.@Ñ.@ÐAÐØZÐñ #¡6¨)¯/©/×*GÑ*Gñ H
à$3×$9Ñ$9Ó$;ôH
ó +
ñ
ð ô$ó ÷  ™%›'÷))ó )ñ
 ˆd�Fð	 	Ü%¨Ò0‰DÜ;LÐPVÒ;VÔ'×+Ñ+¨D°$Ô7Ü×#Ñ#×/Ñ/Ô0F×0JÑ0JÈ4ÐQUÓ0VÑWñ	X÷)Ð%ó.=ô+õ÷[ù÷[)s   Á9A&C>r·   c                 ó   — y)Niœÿÿÿr.   )ÚrhrÞ   s     r+   Úcurl_cffi_preferencer)  X  s   € àr#   )7Ú
__future__r   Úior!  r
  ÚreÚurllib.parserø   Ú_helperr   Úutils.networkingr   Úcommonr   r	   r
   r   r   Ú
exceptionsr   r   r   r   r   r   rÕ   r   r   Údependenciesr   r   Úutilsr   r   ÚImportErrorÚtupleÚmapÚintÚsplitÚ__version__r¿   Ú_yt_dlp__versionÚcurl_cffi.requestsÚcurl_cffi.constr   r   ÚIOBaser!   rE   r¯   r\   r$  rÇ   r·   r)  r.   r#   r+   ú<module>r>     sº  ðÞ "ã 	Û Û Û 	Û å 'Ý +÷õ ÷÷ ÷ Fß -ß .àÐÙ
Ð2Ó
3Ð3ñ ™#˜c 8 2§8¡8¨I°y×7LÑ7LÓ#MÈbÈqÐ#QÓRÓSÐ à˜
Ò"¨7Ð6GÔ+QÈ'Ô+QØ$-×$9Ñ$9Ð#:¸.Ð!I€IÔÙ
Ð^Ó
_Ð_ã ß .ô(˜RŸY™Yô (ôV1˜hô 1ñ> & h°°iÀÓFÙ-¨h¸¸iÈÓNÙ& x°¸	À4ÓHÙ& x°¸	À4ÓHÙ& x°¸	À4ÓHÙ& x°¸	À4ÓHÙ& x°¸	À4ÓHÙ# F¨D°)¸TÓBÙ$ V¨U°I¸tÓDñ
ñ ' x°¸	À4ÓHÙ& x°¸ÀÓFÙ& x°¸ÀÓFÙ& x°¸À$ÓGÙ*¨8°V¸UÀFÓKñ ' x°¸À$ÓGÙ& x°¸À$ÓGñ
ñ ' x°¸ÀÓFÙ& x°¸ÀÓFññ
 ' x°¸À$ÓGÙ*¨8°V¸UÀFÓKññ
 ' x°¸ÀÓFÙ.¨x¸À	È4ÓPÙ'¨°%¸À$ÓGÙ'¨	°5¸'À4ÓHñ	ð 	Ñ'¨	°5¸'À4ÓHðñ $ E¨6°7¸DÓAÙ& x°¸À$ÓGÙ*¨8°V¸UÀFÓKÙ& x°¸ÀÓFñ	ñ ' x°¸À$ÓGÙ*¨8°V¸UÀFÓKññ
 ' x°¸ÀÓFÙ'¨°(¸GÀTÓJññ
 ' x°¸ÀÓFÙ& x°¸ÀÓFñ (¨	°5¸'À4ÓHÙ'¨	°5¸'À4ÓHññm>H€ÐDó >ðF ØØØ%ØØ%ñÐ ñ �h  w°Ó5Ù�h  w°Ó5ðÐ ð ôMÐ*Ð,>ó Mó ðMñ` �ZÓ ñó !ñr#   