
    l9iƉ                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SKJr  S SKJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJrJrJrJrJrJ r J!r!  S SK"J#r#J$r$J%r%  S S	K&J'r'  S S
K(J)r)  S SK*J+r+J,r,J-r-J.r.J/r/  S SK0J1r1  S SK2J3r3  \(       a  S SK4J5r5  S SK6J7r7  S SK8J9r9  S SK:J;r;J<r<   " S S\SS9r= " S S5      r>S\\?\?4   S\4S jr@S\\\      S\\\\?\?4         4S jrA " S S\#5      rB " S S \#5      rCS!\ R                  S"\SS4S# jrE " S$ S%5      rF " S& S'\#5      rG " S( S)5      rH " S* S+\#5      rI " S, S-\#5      rJ " S. S/5      rKg)0    N)defaultdict)Path)SimpleNamespace)
TYPE_CHECKINGAnyCallable	CoroutineDictListOptional	TypedDictUnioncast)parse)ClientCertificateHeadersHeadersArray
RemoteAddrRequestSizesResourceTimingSecurityDetails)ChannelOwnerfrom_channelfrom_nullable_channel)Error)EventContextManagerImpl)URLMatchWebSocketRouteHandlerCallbackasync_readfilelocals_to_paramsurl_matches)escape_regex_flags)Waiter)BrowserContextAPIResponse)Frame)PageWorkerc                   j    \ rS rSr% \\   \S'   \\   \S'   \\\\4      \S'   \\\\	4      \S'   Sr
g)FallbackOverrideParametersH   urlmethodheaderspostData N)__name__
__module____qualname____firstlineno__r   str__annotations__r
   r   bytes__static_attributes__r1       S/home/james-whalen/.local/lib/python3.13/site-packages/playwright/_impl/_network.pyr+   r+   H   s=    	#SMd38n%%uS%Z())r:   r+   F)totalc                       \ rS rSrSS jrSrg)SerializedFallbackOverridesO   Nc                 <    S U l         S U l        S U l        S U l        g N)r-   r.   r/   post_data_bufferselfs    r;   __init__$SerializedFallbackOverrides.__init__P   s    "&%)1515r:   )r/   r.   rB   r-   returnN)r2   r3   r4   r5   rE   r9   r1   r:   r;   r>   r>   O   s    6r:   r>   r/   rH   c                 f    U R                  5        VVs/ s H  u  pUc  M
  XS.PM     snn$ s  snnf )N)namevalue)items)r/   rJ   rK   s      r;   serialize_headersrM   W   s9     #==?*KD 	'&*  s   	--clientCertificatesc                   #    U (       d  g / nU  GH  nSUS   0nUR                  S5      =n(       a  XCS'   UR                  S5      =n(       a'  [        R                  " U5      R                  5       US'   UR                  S5      =n(       a8  [        R                  " [	        U5      I S h  vN 5      R                  5       US'   UR                  S5      =n(       a'  [        R                  " U5      R                  5       US'   UR                  S5      =n(       a8  [        R                  " [	        U5      I S h  vN 5      R                  5       US'   UR                  S5      =n	(       a'  [        R                  " U	5      R                  5       US'   UR                  S5      =n
(       a8  [        R                  " [	        U
5      I S h  vN 5      R                  5       US'   UR                  U5        GM     U$  GNP N N67f)	Norigin
passphrasepfxpfxPathcertcertPathkeykeyPath)getbase64	b64encodedecoder   append)rN   outclientCertificate
out_recordrQ   rR   pfx_pathrT   	cert_pathrV   key_paths              r;   to_client_certificates_protocolrc   _   s     
C/'1

 +..|<<:<'1|$#''..3. & 0 0 5 < < >Ju(,,Y7787 & 0 0$X..!fh u %((0040!'!1!1$!7!>!>!@Jv)--j9999!'!1!1$Y//"fh v $''..3. & 0 0 5 < < >Ju(,,Y7787 & 0 0$X..!fh u 	

:1 02 J / 0 /s8   B)H+G;
,BH:G>
;BH	H 

2H>H Hc            
       j  ^  \ rS rSrS\S\S\S\SS4
U 4S jjrS\4S	 jrS
\	SS4S jr
\S\4S j5       r\S\4S j5       r\S\S   4S j5       r\S\4S j5       rS\4S jr\S\\   4S j5       r\S\\   4S j5       r\S\\   4S j5       rS\S   4S jr\S(S j5       rS\4S jr\S\S    4S j5       r\S\S    4S j5       r\S\\   4S j5       r\S\4S j5       r S\!SS4S jr"\S\#4S j5       r$S\#4S  jr%S\&4S! jr'S"\S\\   4S# jr(S)S$ jr)S\*RV                  4S% jr,S*S& jr-S'r.U =r/$ )+Request   parenttypeguidinitializerrH   Nc           
      J  > [         TU ]  XX45        [        UR                  S5      5      U l        S U l        U R                  (       a  X R                  l        S U l        SSSSSSSSSS.	U l        [        U R                  S   5      U l
        S U l        [        5       U l        g )NredirectedFromr   )		startTimedomainLookupStartdomainLookupEndconnectStartsecureConnectionStart
connectEndrequestStartresponseStartresponseEndr/   )superrE   r   rX   _redirected_from_redirected_to_failure_text_timing
RawHeaders_initializer_provisional_headers_all_headers_futurer>   _fallback_overridesrD   rg   rh   ri   rj   	__class__s        r;   rE   Request.__init__   s     	t95JOO,-6
 48  37!!0,0!#!%'
(
 %/t/@/@/K$L!IM ') 	 r:   c                 @    SU R                   < SU R                  < S3$ )Nz<Request url=z method=>)r-   r.   rC   s    r;   __repr__Request.__repr__   s    txxl(4;;/CCr:   	overridesc                    UR                  SU R                  R                  5      U R                  l        UR                  SU R                  R                  5      U R                  l        UR                  SU R                  R                  5      U R                  l        UR                  S5      n[        U[        5      (       a   UR                  5       U R                  l        g [        U[        5      (       a  X R                  l        g Ub4  [        R                  " U5      R                  5       U R                  l        g g )Nr-   r.   r/   r0   )rX   r   r-   r.   r/   
isinstancer6   encoderB   r8   jsondumps)rD   r   	post_datas      r;   _apply_fallback_overrides!Request._apply_fallback_overrides   s    '0}}4++//(
  $ +4--d..55+
  ' ,5==t//77,
  ( MM*-	i%%8A8H8H8JD$$5	5))8A$$5"8<

98M8T8T8VD$$5 #r:   c                 v    [        [        U R                  R                  =(       d    U R                  S   5      $ Nr-   )r   r6   r   r-   r}   rC   s    r;   r-   Request.url   s+    C1155Q9J9J59QRRr:   c                      U R                   S   $ )NresourceTyper}   rC   s    r;   resource_typeRequest.resource_type   s      00r:   r)   c                 l    [        [        S   [        U R                  R	                  S5      5      5      $ )Nr)   serviceWorker)r   r   r   r}   rX   rC   s    r;   service_workerRequest.service_worker   s0    X!$"3"3"7"7"HI
 	
r:   c                 v    [        [        U R                  R                  =(       d    U R                  S   5      $ )Nr.   )r   r6   r   r.   r}   rC   s    r;   r.   Request.method   s+    C1188WD<M<Mh<WXXr:   c                    #    U R                  5       I S h  vN nU(       d  [        S5      eUR                  R                  SS 5      I S h  vN $  N: N7f)Nz(Unable to fetch sizes for failed requestsizes)responser   _channelsend)rD   r   s     r;   r   Request.sizes   sP     (BCC&&++
 
 	
 )
s!   AA5AAAAc                     U R                   R                  nU(       a  UR                  5       $ U R                  R	                  S5      nUb$  [
        R                  " U5      R                  5       $ g Nr0   )r   rB   r[   r}   rX   rY   	b64decode)rD   database64_post_datas      r;   r   Request.post_data   s]    ''88;;= ,,00<'##$45<<>>r:   c                     U R                   nU(       d  g U R                  S   nSU;   a  [        [        R                  " U5      5      $  [
        R                  " U5      $ ! [         a    [        SU 35      ef = f)Ncontent-typez!application/x-www-form-urlencodedz&POST data is not a valid JSON object: )	r   r/   dictr   	parse_qslr   loads	Exceptionr   )rD   r   content_types      r;   post_data_jsonRequest.post_data_json   st    NN	||N3.,>	233	N::i(( 	N@LMM	Ns   
A   A9c                     U R                   R                  (       a  U R                   R                  $ U R                  R                  S5      (       a#  [        R
                  " U R                  S   5      $ g r   )r   rB   r}   rX   rY   r   rC   s    r;   rB   Request.post_data_buffer   sY    ##44++<<<  ,,##D$5$5j$ABBr:   Responsec                 h   #    [        U R                  R                  SS 5      I S h  vN 5      $  N7f)Nr   )r   r   r   rC   s    r;   r   Request.response   s4     $--$$ 
 	
s   %20	2c                     U R                   R                  S5      (       d  [        S5      e[        S[	        U R                   S   5      5      nUR
                  (       d  [        SR                  / SQ5      5      eU$ )Nframez8Service Worker requests do not have an associated frame.r'   
)zGFrame for this navigation request is not available, because the requestzIwas issued before the frame is created. You can check whether the requestz@is a navigation request by calling isNavigationRequest() method.)r}   rX   r   r   r   _pagejoinrD   r   s     r;   r   Request.frame   sm      $$W--RSSWl4+<+<W+EFG{{		  r:   c                      U R                   S   $ )NisNavigationRequestr   rC   s    r;   is_navigation_requestRequest.is_navigation_request  s      !677r:   c                     U R                   $ rA   )rx   rC   s    r;   redirected_fromRequest.redirected_from
  s    $$$r:   c                     U R                   $ rA   )ry   rC   s    r;   redirected_toRequest.redirected_to  s    """r:   c                     U R                   $ rA   )rz   rC   s    r;   failureRequest.failure  s    !!!r:   c                     U R                   $ rA   r{   rC   s    r;   timingRequest.timing  s    ||r:   response_end_timingc                 d    XR                   S'   U R                   S   S:X  a  XR                   S'   g g )Nrv   ru   rm   r   )rD   r   s     r;   _set_response_end_timing Request._set_response_end_timing  s0    &9]#<<(B.,?LL) /r:   c                     U R                   R                  nU(       a#  [        R                  U5      R                  5       $ U R                  R                  5       $ rA   )r   r/   r|   _from_headers_dict_lossyr~   )rD   overrides     r;   r/   Request.headers  sE    ++3366x@HHJJ((0022r:   c                 Z   #    U R                  5       I S h  vN R                  5       $  N7frA   _actual_headersr/   rC   s    r;   all_headersRequest.all_headers&  #     **,,5577,   +)+c                 Z   #    U R                  5       I S h  vN R                  5       $  N7frA   r   headers_arrayrC   s    r;   r   Request.headers_array)  #     **,,;;==,r   rJ   c                 \   #    U R                  5       I S h  vN R                  U5      $  N7frA   r   rX   rD   rJ   s     r;   header_valueRequest.header_value,  %     **,,11$77,   ,*,c                   #    U R                   R                  nU(       a  [        [        U5      5      $ U R                  (       da  [
        R                  " 5       U l        U R                  R                  SS SS9I S h  vN nU R                  R                  [        U5      5        U R                  I S h  vN $  N< N7f)NrawRequestHeadersT)is_internal)
r   r/   r|   rM   r   asyncioFuturer   r   
set_result)rD   r   r/   s      r;   r   Request._actual_headers/  s     ++33/9::'''.~~'7D$ MM..#Tt /  G $$//
70CD----	 .s$   A;B>=B:>7B>5B<6B><B>c                    [        [        S   [        U R                  R	                  S5      5      5      nU(       d  [
        R                  " 5       $ UR                  nU(       d  [
        R                  " 5       $ UR                  $ )Nr'   r   )	r   r   r   r}   rX   r   r   r   _closed_or_crashed_future)rD   r   pages      r;   _target_closed_futureRequest._target_closed_future;  sd    W4T5F5F5J5J75ST
 >>##{{>>##---r:   c                     [        U R                  R                  S5      5      nU(       d  g [        SU5      R                  $ )Nr   r'   )r   r}   rX   r   r   r   s     r;   
_safe_pageRequest._safe_pageF  s6    %d&7&7&;&;G&DEGU#)))r:   )r   rz   r   r~   rx   ry   r{   rH   r'   rH   r|   )rH   zOptional[Page])0r2   r3   r4   r5   r   r6   r
   rE   r   r+   r   propertyr-   r   r   r   r.   r   r   r   r   r   r8   rB   r   r   boolr   r   r   r   r   r   floatr   r   r/   r   r   r   r   r   r   r   r   r   r9   __classcell__r   s   @r;   re   re      sc   
"
*-
58
GK
	
8D# DW3M WRV W$ SS S S 1s 1 1 
 2 
 
 Y Y Y
\ 
 8C=   
N 
N 
N (5/  
 4 
   8t 8 %)!4 % % #x	2 # # "# " "   @E @d @
 3 3 387 8>\ >8s 8x} 8
.	.w~~ 	.* *r:   re   c                   t  ^  \ rS rSrS\S\S\S\SS4
U 4S jjrS,S	 jrS
\	SS4S jr
S-S jrS\4S jr\S\4S j5       rS.S\SS4S jjr       S/S\S\\\4   S\\\4   S\S\\\4   S\SSSS4S jjr       S/S\S\\\4   S\\\4   S\S\\\4   S\SSSS4S jjrS\SS4S jr       S/S\S\S\\\4   S\\\\4   S \S!\S"\SS4S# jjr    S0S\S\S\\\4   S\\\\4   SS4
S$ jjr    S0S\S\S\\\4   S\\\\4   SS4
S% jjrS1S&\	SS4S' jjrS\SS4S( jrS)\ SS4S* jr!S+r"U =r#$ )2RouteiM  rg   rh   ri   rj   rH   Nc                 d   > [         TU ]  XX45        S U l        [        SS 5      U l        SU l        g )Nr$   F)rw   rE   _handling_futurer   _context
_did_throwr   s        r;   rE   Route.__init__N  s2     	t9BF*./?*Fr:   c                 N    [         R                  " 5       U l        U R                  $ rA   )r   r   r  rC   s    r;   _start_handlingRoute._start_handlingV  s     ' 0$$$r:   donec                 ^    U R                   nU(       d   eS U l         UR                  U5        g rA   )r  r   )rD   r  chains      r;   _report_handledRoute._report_handledZ  s*    %%u $r:   c                 <    U R                   (       d  [        S5      eg )NzRoute is already handled!)r  r   rC   s    r;   _check_not_handledRoute._check_not_handled`  s    $$344 %r:   c                 "    SU R                    S3$ )Nz<Route request=r   )requestrC   s    r;   r   Route.__repr__d  s     a00r:   c                 2    [        U R                  S   5      $ )Nr  )r   r}   rC   s    r;   r  Route.requestg  s    D--i899r:   	errorCodec                 P   ^ ^#    T R                  UU 4S j5      I S h  vN   g  N7f)Nc                  `   > TR                  TR                  R                  SS ST 05      5      $ )Nabortr  _race_with_page_closer   r   )r  rD   s   r;   <lambda>Route.abort.<locals>.<lambda>m  s2    D..""#Yr:   _handle_route)rD   r  s   ``r;   r  Route.abortk  s#       

 
	
 
	
   &$&statusr/   bodyr   pathcontentTyper   r&   c           
      h   ^ ^^^^^^^#    T R                  UUUUUUU U4S j5      I S h  vN   g  N7f)Nc            	      2   > TR                  TTT TTTT5      $ rA   )_inner_fulfill)r&  r(  r/   r   r'  r   rD   r%  s   r;   r  Route.fulfill.<locals>.<lambda>  s    D''tT;r:   r!  )rD   r%  r/   r&  r   r'  r(  r   s   ````````r;   fulfillRoute.fulfillx  s*         
 	
 	
s    202c                   #    [        [        5       5      nUb$  Ub  [        S5      e[        R                  " U5      nU(       a  US	 UR                  S5      (       a  US   OUR                  US'   UR                  S5      (       a  US   OUR                  US'   SSKJ	n	  Uc^  Uc[  [        Xy5      (       aK  UR                  R                  U R                  L a  UR                  US'   OUR                  5       I S h  vN nSn
[        U[        5      (       a#  X8S'   S	US
'   [!        UR#                  5       5      n
O[        U[$        5      (       a8  [&        R(                  " U5      R+                  5       US'   SUS
'   [!        U5      n
OZU(       aS  US	 [-        U5      R/                  5       n[&        R(                  " U5      R+                  5       US'   SUS
'   [!        U5      n
UR                  S0 5      R1                  5        VVs0 s H  u  pUR3                  5       [        U5      _M!     nnnUR                  S5      (       a	  US   US'   OKU(       a  SUS'   O>U(       a7  [4        R6                  " [        [-        U5      5      5      S   =(       d    SUS'   U
(       a  SU;  a  [        U
5      US'   [9        U5      US'   U R;                  U R<                  R?                  SS U5      5      I S h  vN   g  GNs  snnf  N7f)Nz*Can specify either body or json parametersr   r%  r/   r   r%   fetchResponseUidr&  FisBase64Tr'  r(  r   zapplication/jsonzapplication/octet-streamzcontent-lengthr-  ) r    localsr   
json_utilsr   rX   r%  r/   playwright._impl._fetchr&   r   _request_connection
_fetch_uidr&  r6   lenr   r8   rY   rZ   r[   r   
read_bytesrL   lower	mimetypes
guess_typerM   r  r   r   )rD   r%  r/   r&  r   r'  r(  r   paramsr&   lengthfile_contentkvs                 r;   r+  Route._inner_fulfill  s     "&(+HII##D)Dz"$*JJx$8$8x hoo 8 &,ZZ	%:%:y!@P@P 9 <|H1R1R$$00D4D4DD191D1DF-.!)0DdC  !6N!&F:'Fe$$#--d3::<F6N!%F:YFv:002L#--l;BBDF6N!%F:&F17Ir1J1P1P1RS1R1779c!f$1RS::m$$&,]&;GN#&8GN#$$Sd_5a8V<V N# &g5(+FG$%-g6y((););ItV)TUUU? 1$ T 	Vs2   C;L=K7>DL&K:,CL1L 2L:Lcallbackc                    #    U R                  5          U" 5       I S h  vN   U R                  S5        g  N! [         a  nSU l        UeS nAff = f7fNT)r  r  r   r  )rD   rC  es      r;   r"  Route._handle_route  sO     !	*  &  	"DOG	s1   A
7 57 A7 
A	A

AAr-   r.   r0   maxRedirects
maxRetriestimeoutc           
      z   ^ ^^^^^^^#    T R                   R                  UUUUUU UU4S j5      I S h  vN $  N7f)Nc                  l   > TR                   R                  R                  TR                  TTT TTTTS9$ )N)rH  rI  rJ  )r  r  _inner_fetch)r/   rH  rI  r.   r0   rD   rJ  r-   s   r;   r  Route.fetch.<locals>.<lambda>  s;    DMM))66)% 7 	r:   )r6  wrap_api_call)rD   r-   r.   r/   r0   rH  rI  rJ  s   ````````r;   fetchRoute.fetch  s5      %%33	 	
 
 	
 
s   *;9;c                    #    [        [        [        [        5       5      5      nU R	                  5         U R
                  R                  U5        U R                  S5        g 7fNF)r   r+   r    r2  r  r  r   r  )rD   r-   r.   r/   r0   r   s         r;   fallbackRoute.fallback  sH      35Efh5OP	!..y9U#s   AA!c                    ^ ^#    [        [        [        [        5       5      5      mSUU 4S jjnT R	                  U5      I S h  vN $  N7f)Nc                  z   >#    TR                   R                  T 5        TR                  S5      I S h  vN   g  N7frS  )r  r   _inner_continue)r   rD   s   r;   _innerRoute.continue_.<locals>._inner  s,     LL229=&&u---s   0;9;rG   )r   r+   r    r2  r"  )rD   r-   r.   r/   r0   rY  r   s   `     @r;   	continue_Route.continue_  s@      35Efh5OP		. 	. ''////s   ?A
AA
is_fallbackc                   #    U R                   R                  nU R                  U R                  R	                  SS UR
                  UR                  UR                  (       a  [        UR                  5      OS UR                  b.  [        R                  " UR                  5      R                  5       OS US.5      5      I S h  vN   g  N7f)Ncontinue)r-   r.   r/   r0   
isFallback)r  r   r  r   r   r-   r.   r/   rM   rB   rY   rZ   r[   )rD   r]  optionss      r;   rX  Route._inner_continue  s     ,,22((MM";;%nn>Eoo)'//:SW #33? (()A)ABIIK!"-
 	
 	
s   CCC	Cc                 P   ^ ^#    T R                  U U4S j5      I S h  vN   g  N7f)Nc                  `   > T R                  T R                  R                  SS ST05      5      $ )NredirectNavigationRequestr-   r  rD   r-   s   r;   r  6Route._redirected_navigation_request.<locals>.<lambda>  s+    D..""#>uclSr:   r!  rf  s   ``r;   _redirected_navigation_request$Route._redirected_navigation_request  s#       
 	
 	
r$  futurec                 V  #    [         R                  " U5      n[        US[        [         R                  " U R
                  5      S[        R                  " S5      5      5        U R                  R                  5       n[         R                  " X#/[         R                  S9I S h  vN   UR                  5       (       a3  UR                  5       (       a  [        [        UR                  5       5      eUR                  5       (       a  [         R                   " USS9I S h  vN   g g  N N7f)N__pw_stack__r   return_whenT)return_exceptions)r   create_tasksetattrgetattrcurrent_task_loopinspectstackr  r   waitFIRST_COMPLETEDr  	exceptionr   BaseExceptiongather)rD   rj  futtarget_closed_futures       r;   r  Route._race_with_page_close   s     !!&)G((4ngmmTUFVW	

  $||AACll'//
 	
 	
 88::#--//}cmmo66$$&&..=== '	
 >s%   B"D)$D%%A9D)D'D)'D))r  r  r  )rH   zasyncio.Future[bool]rG   rA   )NNNNNNN)NNNN)F)$r2   r3   r4   r5   r   r6   r
   rE   r
  r   r  r  r   r   re   r  r  intr   r8   r   r   r-  r+  r   r"  r   rP  rT  r[  rX  rh  r	   r  r9   r   r  s   @r;   r  r  M  s    " *- 58 GK 	 %D T 51# 1 : : :
S 
D 
 "&"&!%"&

 c3h
 CJ	

 
 CI
 
  
 

$ "&"&!%"&>V>V c3h>V CJ	>V
 >V CI>V >V  >V 
>V@H   "&+/ 

 
 c3h	

 S%(
 
 
 
 

2 "&+/
$
$ 
$ c3h	
$
 S%(
$ 

$ "&+/00 0 c3h	0
 S%(0 
0
 
$ 
,
 
 
>) > > >r:   r  loopcoroc                 B   ^ SU4S jjnU R                  U" 5       5        g )Nc                  H   >#     T I S h  vN   g  N! [          a     g f = f7frA   )r   )r  s   r;   _ignore_exception<_create_task_and_ignore_exception.<locals>._ignore_exception6  s#     	JJ 		s(   "  " 
""rG   )rp  )r  r  r  s    ` r;   !_create_task_and_ignore_exceptionr  3  s     	&()r:   c                       \ rS rSrSS jrS\\\\4   /\	4   SS4S jr
S\\\   \\   /\	4   SS4S jrSS jr\S\4S	 j5       rSS
\S\SS4S jjrS\\\4   SS4S jrSrg)ServerWebSocketRoutei?  c                     Xl         g rA   _ws)rD   wss     r;   rE   ServerWebSocketRoute.__init__@  s    r:   handlerrH   Nc                 $    XR                   l        g rA   )r  _on_server_messagerD   r  s     r;   
on_messageServerWebSocketRoute.on_messageC  s    &-#r:   c                 $    XR                   l        g rA   )r  _on_server_closer  s     r;   on_closeServerWebSocketRoute.on_closeF  s    $+!r:   c                     [        S5      e)Nz>connectToServer must be called on the page-side WebSocketRoute)NotImplementedErrorrC   s    r;   connect_to_server&ServerWebSocketRoute.connect_to_serverI  s    !L
 	
r:   c                 4    U R                   R                  S   $ r   )r  r}   rC   s    r;   r-   ServerWebSocketRoute.urlN  s    xx$$U++r:   codereasonc                     [        U R                  R                  U R                  R                  R	                  SS UUSS.5      5        g )NcloseServerTr  r  wasClean)r  r  rt  r   r   rD   r  r  s      r;   closeServerWebSocketRoute.closeR  sA    )HHNNHH"" $ $	
r:   messagec           
         [        U[        5      (       aI  [        U R                  R                  U R                  R
                  R                  SS USS.5      5        g [        U R                  R                  U R                  R
                  R                  SS [        R                  " U5      R                  5       SS.5      5        g )NsendToServerFr  r1  T)
r   r6   r  r  rt  r   r   rY   rZ   r[   rD   r  s     r;   r   ServerWebSocketRoute.send`  s    gs##-!!&&"Dg5*Q .!!&&" & 0 0 9 @ @ BPTUr:   r  )r  WebSocketRouterG   NN)r2   r3   r4   r5   rE   r   r   r6   r8   r   r  r   r  r  r  r   r-   r  r   r9   r1   r:   r;   r  r  ?  s    .(E#u*,=+>+C"D . .,(3-#)G)L M ,RV ,

 ,S , ,
# 
c 
T 
E#u*- $ r:   r  c            
       >  ^  \ rS rSrS\S\S\S\SS4
U 4S jjrS	\SS4S
 jrS	\SS4S jr	S	\SS4S jr
S	\SS4S jr\S\4S j5       rSS\S\SS4S jjrSS jrS\\\4   SS4S jrS\\\\4   /\4   SS4S jrS\\\   \\   /\4   SS4S jrSS jrSrU =r$ )r  is  rg   rh   ri   rj   rH   Nc                   > [         TU ]  XX45        S U l        S U l        S U l        S U l        [        U 5      U l        SU l        U R                  R                  SU R                  5        U R                  R                  SU R                  5        U R                  R                  SU R                  5        U R                  R                  SU R                  5        g )NFmessageFromPagemessageFromServer	closePager  )rw   rE   _on_page_message_on_page_closer  r  r  _server
_connectedr   on_channel_message_from_page_channel_message_from_server_channel_close_page_channel_close_serverr   s        r;   rE   WebSocketRoute.__init__t  s     	t9NR 	 QU  	 ,D1*D,K,KL,d.O.OPd&>&>?(B(BCr:   eventc                    U R                   (       a8  U R                  US   (       a  [        R                  " US   5      OUS   5        g U R                  (       a2  [	        U R
                  U R                  R                  SS U5      5        g g )Nr1  r  r  )r  rY   r   r  r  rt  r   r   rD   r  s     r;   r  )WebSocketRoute._channel_message_from_page  sp      !!$   y!129%
 __-

DMM..~tUK r:   c                     U R                   (       a8  U R                  US   (       a  [        R                  " US   5      OUS   5        g [        U R                  U R
                  R                  SS U5      5        g )Nr1  r  
sendToPage)r  rY   r   r  rt  r   r   r  s     r;   r  +WebSocketRoute._channel_message_from_server  sd    ""##$   y!129% .

DMM..|T5Ir:   c                     U R                   (       a  U R                  US   US   5        g [        U R                  U R                  R	                  SS U5      5        g )Nr  r  r  )r  r  rt  r   r   r  s     r;   r  "WebSocketRoute._channel_close_page  sG    fuX?-

DMM..}dEJr:   c                     U R                   (       a  U R                  US   US   5        g [        U R                  U R                  R	                  SS U5      5        g )Nr  r  r  )r  r  rt  r   r   r  s     r;   r  $WebSocketRoute._channel_close_server  sG      !!%-xA-

DMM..{D%Hr:   c                      U R                   S   $ r   r   rC   s    r;   r-   WebSocketRoute.url        ''r:   r  r  c                    #     U R                   R                  SS XSS.5      I S h  vN   g  N! [         a     g f = f7f)Nr  Tr  )r   r   r   r  s      r;   r  WebSocketRoute.close  sF     	--$$TDPT#U    		s(   ?#/ -/ ?/ 
<?<?c                     U R                   (       a  [        S5      eSU l         [        R                  " U R                  R                  SS 5      5        [        SU R                  5      $ )NzAlready connected to the serverTconnectr  )r  r   r   rp  r   r   r   r  rC   s    r;   r   WebSocketRoute.connect_to_server  sV    ??9::MM	
 $dll33r:   r  c           
      D   [        U[        5      (       a5  [        U R                  U R                  R                  SS USS.5      5        g [        U R                  U R                  R                  SS [        R                  " U5      R                  5       SS.5      5        g )Nr  Fr  T)	r   r6   r  rt  r   r   rY   rZ   r[   r  s     r;   r   WebSocketRoute.send  s    gs##-

"" $G(O .

"" #)#3#3G#<#C#C#E$(
r:   r  c                     Xl         g rA   )r  r  s     r;   r  WebSocketRoute.on_message  s     'r:   c                     Xl         g rA   )r  r  s     r;   r  WebSocketRoute.on_close  s    %r:   c                    #    U R                   (       a  g  U R                  R                  SS 5      I S h  vN   g  N! [         a     g f = f7f)NensureOpened)r  r   r   r   rC   s    r;   _after_handleWebSocketRoute._after_handle  sI     ??	--$$    		s1   A= ;= A= 
A
A	A

A)r  r  r  r  r  r  r  )rH   r  rG   )r2   r3   r4   r5   r   r6   r
   rE   r  r  r  r  r   r-   r  r  r  r   r8   r   r   r   r  r   r  r  r9   r   r  s   @r;   r  r  s  s6   D"D*-D58DGKD	D(
 
 

$ 
4 
 $ 4 D  (S ( ( C 4 
4E#u*- $ *((E#u*,=+>+C"D ( (&(3-#)G)L M &RV &
 
r:   r  c                   t    \ rS rSrS\\   S\S\4S jr\	S\
S    S\
\   4S j5       rS	\S\4S
 jrSS jrSrg)WebSocketRouteHandleri  base_urlr-   r  c                 (    Xl         X l        X0l        g rA   )	_base_urlr-   r  )rD   r  r-   r  s       r;   rE   WebSocketRouteHandler.__init__  s     "r:   handlersrH   c                    / nSnU  H  n[        UR                  [        5      (       a  UR                  SUR                  05        MA  [        UR                  [        R
                  5      (       a=  UR                  UR                  R                  [        UR                  5      S.5        M  SnM     U(       a  SS0/$ U$ )NFglob)regexSource
regexFlagsTz**/*)r   r-   r6   r\   rePatternpatternr"   )r  patternsall_urlsr  s       r;   prepare_interception_patterns3WebSocketRouteHandler.prepare_interception_patterns  s     G'++s++ 56GKK44'.{{':':&8&E     V$%%r:   ws_urlc                 D    [        U R                  XR                  S5      $ rE  )r!   r  r-   )rD   r  s     r;   matchesWebSocketRouteHandler.matches  s    4>>688TBBr:   Nc                    #    U R                  U5      n[        R                  " U5      (       a
  UI S h  vN   UR                  5       I S h  vN   g  N N7frA   )r  r   iscoroutiner  )rD   websocket_routecoro_or_futures      r;   handleWebSocketRouteHandler.handle  sG     o6~..   ++--- !-s!   2AAAAAA)r  r  r-   )r  r  rH   N)r2   r3   r4   r5   r   r6   r   r   rE   staticmethodr   r   r  r   r  r  r9   r1   r:   r;   r  r    sp    3-  /	 ./	d ,Cc Cd C.r:   r  c            
         ^  \ rS rSrS\S\S\S\SS4
U 4S jjrS\4S	 jr\	S\4S
 j5       r
\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       r\	S\4S j5       rS\4S jrS\4S jrS\S\\   4S jrS\S\\   4S jrSS jrS\\   4S jrS\\   4S jrS S jrS\ 4S jr!S\4S jr"S\#4S jr$\	S\%4S j5       r&\	S!S j5       r'Sr(U =r)$ )"r   i  rg   rh   ri   rj   rH   Nc                   > [         TU ]  XX45        [        U R                  S   5      U l        U R                  S   nUS   U R                  R
                  S'   US   U R                  R
                  S'   US   U R                  R
                  S'   US   U R                  R
                  S'   US   U R                  R
                  S'   US   U R                  R
                  S'   US	   U R                  R
                  S	'   US
   U R                  R
                  S
'   [        [        [        U R                  S   5      5      U l	        S U l
        [        R                  " 5       U l        g )Nr  r   rn   ro   rp   rq   rr   rs   rt   ru   r/   )rw   rE   r   r}   r5  r{   r|   r   r   r~   _raw_headers_futurer   r   _finished_future)rD   rg   rh   ri   rj   r   r   s         r;   rE   Response.__init__  sF    	t9!-d.?.?	.J!K""8,-3K-@k*5;<O5P1239:K3L/006~0Fn-9?@W9X56.4\.Bl+06~0Fn-171Ho.$.t00;<%
! JN 6=nn6Fr:   c                 >    SU R                   < SU R                   S3$ )Nz<Response url=z	 request=r   )r-   r  rC   s    r;   r   Response.__repr__1  s    |9T\\N!DDr:   c                      U R                   S   $ r   r   rC   s    r;   r-   Response.url4  r  r:   c                     U R                   S   S:H  =(       d+    U R                   S   S:  =(       a    U R                   S   S:*  $ )Nr%  r      i+  r   rC   s    r;   okResponse.ok8  sJ       *a/ 
h'3.U43D3DX3NRU3U	
r:   c                      U R                   S   $ )Nr%  r   rC   s    r;   r%  Response.status?  s      **r:   c                      U R                   S   $ )N
statusTextr   rC   s    r;   status_textResponse.status_textC  s      ..r:   c                 6    U R                   R                  5       $ rA   )r~   r/   rC   s    r;   r/   Response.headersG  s    ((0022r:   c                      U R                   S   $ )NfromServiceWorkerr   rC   s    r;   from_service_workerResponse.from_service_workerK  s      !455r:   c                 Z   #    U R                  5       I S h  vN R                  5       $  N7frA   r   rC   s    r;   r   Response.all_headersO  r   r   c                 Z   #    U R                  5       I S h  vN R                  5       $  N7frA   r   rC   s    r;   r   Response.headers_arrayR  r   r   rJ   c                 \   #    U R                  5       I S h  vN R                  U5      $  N7frA   r   r   s     r;   r   Response.header_valueU  r   r   c                 \   #    U R                  5       I S h  vN R                  U5      $  N7frA   )r   get_allr   s     r;   header_valuesResponse.header_valuesX  s%     **,,55d;;,r   c                 <  #    U R                   (       dp  [        R                  " 5       U l         [        [        U R
                  R                  SS 5      I S h  vN 5      nU R                   R                  [        U5      5        U R                   I S h  vN $  N@ N7f)NrawResponseHeaders)	r  r   r   r   r   r   r   r   r|   )rD   r/   s     r;   r   Response._actual_headers[  s{     '''.~~'7D$mm((( G $$//
70CD---- .s$   ABB
;BBBBc                 V   #    U R                   R                  SS 5      I S h  vN $  N7f)N
serverAddrr   r   rC   s    r;   server_addrResponse.server_addrh  s,     ]]''
 
 	
 
    )')c                 V   #    U R                   R                  SS 5      I S h  vN $  N7f)NsecurityDetailsr   rC   s    r;   security_detailsResponse.security_detailsn  s,     ]]''
 
 	
 
r#  c                 v  ^ #    SU 4S jjn[         R                  " U" 5       5      n[         R                  " [        [        [
        [         R                  [         R                  4      T R                  U/5      [         R                  S9I S h  vN   UR                  5       (       a  UI S h  vN   g g  N% N7f)Nc                  j   >#    T R                   R                  5       I S h  vN   [        S5      e N7f)NzTarget closed)r5  r   r   rC   s   r;   on_finished&Response.finished.<locals>.on_finishedu  s,     --55777(( 8s   313rm  rG   )r   rp  rw  r   r   r   Taskr   r  rx  r  )rD   r*  on_finished_tasks   `  r;   finishedResponse.finishedt  s     	) #..{}=llU7<<789&&(89  //
 	
 	
   """"" #	
 #s$   BB9B5B9.B7/B97B9c                    #    U R                   R                  SS 5      I S h  vN n[        R                  " U5      $  N7f)Nr&  )r   r   rY   r   )rD   binarys     r;   r&  Response.body  s<     }}))
 
 ''	
s    ?=?c                 ^   #    U R                  5       I S h  vN nUR                  5       $  N7frA   )r&  r[   )rD   contents     r;   textResponse.text  s%     		#~~ $s   -+-c                 f   #    [         R                  " U R                  5       I S h  vN 5      $  N7frA   )r   r   r5  rC   s    r;   r   Response.json  s      zz		+,,+s   $1/	1c                     U R                   $ rA   )r5  rC   s    r;   r  Response.request  s    }}r:   c                 .    U R                   R                  $ rA   )r5  r   rC   s    r;   r   Response.frame  s    }}"""r:   )r  r~   r  r5  r   rG   r   )*r2   r3   r4   r5   r   r6   r
   rE   r   r   r-   r   r  r  r%  r	  r   r/   r  r   r   r   r   r   r   r  r   r   r!  r   r&  r.  r8   r&  r5  r   r   re   r  r   r9   r   r  s   @r;   r   r     s   G"G*-G58GGKG	G(E# E (S ( ( 
D 
 
 + + + /S / / 3 3 3 6T 6 687 8>\ >8s 8x} 8< <S	 <.
8J#7 

(A 
# (E ( C  -C -    # #r:   r   c            
          ^  \ rS rSr\" SSSSS9rS\S\S	\S
\SS4
U 4S jjr	S\4S jr
\S\4S j5       r  SS\S\S\S\4S jjr SS\S\S\S\4S jjrS\S\SS4S jrS\S\SS4S jrS\4S jrSS jrSrU =r$ )	WebSocketi  r  framereceived	framesentsocketerror)CloseFrameReceived	FrameSentr   rg   rh   ri   rj   rH   Nc                 X  >^  [         TT ]  XX45        ST l        [        SU5      T l        T R
                  R                  SU 4S j5        T R
                  R                  SU 4S j5        T R
                  R                  SU 4S j5        T R
                  R                  S	U 4S
 j5        g )NFr(   	frameSentc                 4   > TR                  U S   U S   5      $ Nopcoder   )_on_frame_sentr=  rD   s    r;   r  $WebSocket.__init__.<locals>.<lambda>  s    4..vh/?Pr:   frameReceivedc                 4   > TR                  U S   U S   5      $ rH  )_on_frame_receivedrK  s    r;   r  rL    s    4226(3CVF^Tr:   socketErrorc                 ^   > TR                  [        R                  R                  U S   5      $ )Nerror)emitr>  Eventsr   rK  s    r;   r  rL    s     499Y%5%5%;%;VG_Mr:   r  c                 $   > TR                  5       $ rA   )	_on_closerK  s    r;   r  rL    s    1Ar:   )rw   rE   
_is_closedr   r   r   r  r   s   `    r;   rE   WebSocket.__init__  s     	t9&&)
P	
 	T	
 	M	
 	"ABr:   c                 $    SU R                   < S3$ )Nz<WebSocket url=r   )r-   rC   s    r;   r   WebSocket.__repr__  s     A..r:   c                      U R                   S   $ r   r   rC   s    r;   r-   WebSocket.url  r  r:   r  	predicaterJ  c                   ^  Uc2  [        [        T R                  5      R                  R	                  5       n[        T SU S35      nUR                  [        [        U5      SU SU S35        U[        R                  R                  :w  a4  UR                  T [        R                  R                  [        S5      5        U[        R                  R                  :w  a4  UR                  T [        R                  R                  [        S5      5        UR                  T R                  SU 4S	 j5        UR                  T X5        [        UR!                  5       5      $ )
Nzweb_socket.expect_event()zTimeout z%ms exceeded while waiting for event ""zSocket closedzSocket errorr  c                  8   > T R                   R                  5       $ rA   )r   _close_error_with_reasonrC   s   r;   r  (WebSocket.expect_event.<locals>.<lambda>  s    )L)L)Nr:   )r   r   _parent_timeout_settingsrJ  r#   reject_on_timeoutr   r>  rT  rB  reject_on_eventr   r   wait_for_eventr   result)rD   r  r]  rJ  waiters   `    r;   expect_eventWebSocket.expect_event  s    ?3-??GGIG 8qAB   wiDUG1M	
 I$$***""4)9)9)?)?AWXI$$***""4)9)9)?)?~AVWJJ!N	
 	dE5&v}}77r:   c                    #    U R                  XU5       IS h  vN n S S S 5      IS h  vN   WI S h  vN $  N N! , IS h  vN  (       d  f       N%= f N"7frA   )rk  )rD   r  r]  rJ  
event_infos        r;   rh  WebSocket.wait_for_event  sD      $$Uw??: @? @???sF   A9A=A;	AAAAAAAArI  r   c                     US:X  a?  U R                  [        R                  R                  [        R
                  " U5      5        g US:X  a+  U R                  [        R                  R                  U5        g g N      )rS  r>  rT  rD  rY   r   rD   rI  r   s      r;   rJ  WebSocket._on_frame_sent  sT    Q;IIi&&00&2B2B42HIq[IIi&&00$7 r:   c                     US:X  a?  U R                  [        R                  R                  [        R
                  " U5      5        g US:X  a+  U R                  [        R                  R                  U5        g g rq  )rS  r>  rT  rC  rY   r   rt  s      r;   rO  WebSocket._on_frame_received  sT    Q;IIi&&44f6F6Ft6LMq[IIi&&44d; r:   c                     U R                   $ rA   )rW  rC   s    r;   	is_closedWebSocket.is_closed  s    r:   c                 f    SU l         U R                  [        R                  R                  U 5        g rE  )rW  rS  r>  rT  rB  rC   s    r;   rV  WebSocket._on_close  s#    		)""(($/r:   )rW  r   r  rG   )r2   r3   r4   r5   r   rT  r   r6   r
   rE   r   r   r-   r   r   r   rk  r   rh  r  rJ  rO  r   ry  rV  r9   r   r  s   @r;   r>  r>    s   %	FC"C*-C58CGKC	C(/# / (S ( ( #	88 8 	8
 
!80 HL  %- ?D 	 8S 8 8 8< <C <D <4 0 0r:   r>  c                       \ rS rSrS\SS4S jr\S\\\4   SS 4S j5       r	S\S\
\   4S jrS\S\\   4S	 jrS\\\4   4S
 jrS\4S jrSrg)r|   i  r/   rH   Nc                     Xl         [        [        5      U l        U H)  nSU R                  US   R	                  5          US   '   M+     g )NTrJ   rK   )_headers_arrayr   r   _headers_mapr:  )rD   r/   headers      r;   rE   RawHeaders.__init__  sE    %8CD8IFIMDfVn2245fWoF r:   c                 *    [        [        U 5      5      $ rA   )r|   rM   )r/   s    r;   r   #RawHeaders._from_headers_dict_lossy  s    +G455r:   rJ   c                     U R                  U5      nU(       d  g UR                  5       S:X  a  SOSnUR                  U5      $ )Nz
set-cookier   z, )r  r:  r   )rD   rJ   values	separators       r;   rX   RawHeaders.get  s9    d# JJLL8Dd	~~f%%r:   c                 j    [        U R                  UR                  5          R                  5       5      $ rA   )listr  r:  keysr   s     r;   r  RawHeaders.get_all  s'    D%%djjl388:;;r:   c                     0 nU R                   R                  5        H$  n[        [        U R	                  U5      5      X'   M&     U$ rA   )r  r  r   r6   rX   )rD   ri  rJ   s      r;   r/   RawHeaders.headers  s;    %%**,DTXXd^4FL -r:   c                     U R                   $ rA   )r  rC   s    r;   r   RawHeaders.headers_array  s    """r:   )r  r  )r2   r3   r4   r5   r   rE   r  r
   r6   r   r   rX   r   r  r/   r   r9   r1   r:   r;   r|   r|     s    N N N 6$sCx. 6\ 6 6& & &<C <DI <c3h #| #r:   r|   )Lr   rY   ru  r   r3  r;  r  collectionsr   pathlibr   typesr   typingr   r   r   r	   r
   r   r   r   r   r   urllibr    playwright._impl._api_structuresr   r   r   r   r   r   r   playwright._impl._connectionr   r   r   playwright._impl._errorsr   'playwright._impl._event_context_managerr   playwright._impl._helperr   r   r   r    r!   playwright._impl._str_utilsr"   playwright._impl._waiterr#   !playwright._impl._browser_contextr$   r4  r&   playwright._impl._framer'   playwright._impl._pager(   r)   r+   r>   r6   rM   rc   re   r  AbstractEventLoopr  r  r  r  r   r>  r|   r1   r:   r;   <module>r     so         	 #  !      
 + K  ; +@3-3*% *6 6tCH~ ,  &7!89d4S>"#DI*l I*Xc>L c>L	*

#
#	*+4	*		*1 1hz\ zz). ).X|#| |#~R0 R0j# #r:   