
    ,i                       d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ ddl	mZ e G d	 d
             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Z G d dej$                        Ze G d d             Ze G d d             Z G d dej$                        Ze G d d             Ze G d d             Ze G d d              Ze G d! d"             Ze G d# d$             Z G d% d&ej$                        Z G d' d(ej$                        Ze G d) d*             Ze G d+ d,             Z G d- d.e       Z!e G d/ d0             Z" G d1 d2ej$                        Z#ddd3Z$ded4Z%ded5Z&ded6Z'	 	 	 	 dfd7Z(	 dg	 	 	 dhd8Z)	 	 	 	 did9Z*	 dg	 	 	 djd:Z+	 	 	 	 dkd;Z,	 	 	 	 	 	 	 	 	 	 dl	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dmd<Z-	 	 	 	 dnd=Z.ded>Z/	 	 	 	 dod?Z0ded@Z1	 	 	 	 dpdAZ2	 	 	 	 dqdBZ3	 dg	 	 	 	 	 drdCZ4	 	 ds	 	 	 	 	 dtdDZ5	 	 	 	 dudEZ6	 dg	 	 	 dvdFZ7	 	 	 	 	 	 	 dw	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dxdGZ8	 	 	 	 dydHZ9	 dg	 	 	 	 	 	 	 dzdIZ:	 	 	 	 	 	 d{dJZ;	 dg	 	 	 	 	 	 	 d|dKZ<	 	 	 	 	 	 d}dLZ=	 dg	 	 	 	 	 	 	 d~dMZ>	 	 	 	 	 	 ddNZ?dedOZ@	 	 	 	 ddPZA	 	 	 	 ddQZB	 	 	 	 ddRZC	 dg	 	 	 	 	 ddSZD	 	 	 d	 	 	 	 	 	 	 	 	 ddTZE	 dg	 	 	 ddUZF	 	 	 	 ddVZG	 	 	 	 	 	 ddWZH	 	 	 	 ddXZI	 dg	 	 	 ddYZJ	 	 	 	 ddZZK	 	 	 d	 	 	 	 	 	 	 	 	 dd[ZL	 	 	 	 dfd\ZM	 	 	 	 dd]ZNdd^ZO	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd_ZP	 	 	 	 dd`ZQ eda      e G db dc                    ZRy)    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)pagec                      e Zd ZU dZded<   dZded<   dZded<   dZded<   dZded<   dZ	ded<   dZ
ded	<   dZded
<   d Zed        Zy)SafeAreaInsetsNtyping.Optional[int]toptop_maxleftleft_maxbottom
bottom_maxright	right_maxc                   t               }| j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )	Nr   topMaxr   leftMaxr   	bottomMaxr   rightMax)	dictr   r   r   r   r   r   r   r   selfjsons     /var/www/system.tvplus.app.br/jogos/scrap/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v141/emulation.pyto_jsonzSafeAreaInsets.to_json+   s    v88((DK<<#!\\DN99 99DL==$"mmDO;;"![[DN??& $D::! JJDM>>%#~~D    c                L    | d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         	      S d 	      S )
Nr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   intclsr   s     r   	from_jsonzSafeAreaInsets.from_json?   s    $)TMDK t+3t+;CX'&,nT&\"$-6$->Si)D*2d*:3tH~&1<1Ds4,-$(/4#d7m$T/9T/Ac$z*+	
 		
 HL	
 		
r!   )__name__
__module____qualname__r   __annotations__r   r   r   r   r   r   r   r    classmethodr'    r!   r   r   r      s     !%C	$ %)G!( "&D
% &*H") $(F ' (,J$+ #'E& '+I#*( 

 

r!   r   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	ScreenOrientationz
    Screen orientation.
    strtype_r$   anglec                V    t               }| j                  |d<   | j                  |d<   |S )Ntyper2   )r   r1   r2   r   s     r   r    zScreenOrientation.to_jsonX   s(    vzzV

Wr!   c                F     | t        |d         t        |d               S )Nr4   r2   )r1   r2   r0   r$   r%   s     r   r'   zScreenOrientation.from_json^   s'    d6l#d7m$
 	
r!   Nr(   r)   r*   __doc__r+   r    r,   r'   r-   r!   r   r/   r/   M   s.     J J 
 
r!   r/   c                  B    e Zd ZU ded<   ded<   ded<   d Zed        Zy)	DisplayFeaturer0   orientationr$   offsetmask_lengthc                t    t               }| j                  |d<   | j                  |d<   | j                  |d<   |S )Nr;   r<   
maskLength)r   r;   r<   r=   r   s     r   r    zDisplayFeature.to_jsont   s;    v"..]X!--\r!   c                `     | t        |d         t        |d         t        |d               S )Nr;   r<   r?   )r;   r<   r=   r6   r%   s     r   r'   zDisplayFeature.from_json{   s5    D/0tH~&D./
 	
r!   Nr(   r)   r*   r+   r    r,   r'   r-   r!   r   r:   r:   f   s2      K
  
 
r!   r:   c                  .    e Zd ZU ded<   d Zed        Zy)DevicePosturer0   r1   c                8    t               }| j                  |d<   |S )Nr4   )r   r1   r   s     r   r    zDevicePosture.to_json   s    vzzVr!   c                ,     | t        |d               S )Nr4   )r1   r0   r%   s     r   r'   zDevicePosture.from_json   s    d6l#
 	
r!   NrA   r-   r!   r   rC   rC      s"     J
 
 
r!   rC   c                  8    e Zd ZU ded<   ded<   d Zed        Zy)MediaFeaturer0   namevaluec                V    t               }| j                  |d<   | j                  |d<   |S )NrI   rJ   )r   rI   rJ   r   s     r   r    zMediaFeature.to_json   s(    vyyV

Wr!   c                F     | t        |d         t        |d               S )NrI   rJ   )rI   rJ   rF   r%   s     r   r'   zMediaFeature.from_json   s'    T&\"d7m$
 	
r!   NrA   r-   r!   r   rH   rH      s%    
IJ 
 
r!   rH   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)VirtualTimePolicya?  
    advance: If the scheduler runs out of immediate work, the virtual time base may fast forward to
    allow the next delayed task (if any) to run; pause: The virtual time base may not advance;
    pauseIfNetworkFetchesPending: The virtual time base may not advance if there are any pending
    resource fetches.
    advancepausepauseIfNetworkFetchesPendingc                    | j                   S NrJ   r   s    r   r    zVirtualTimePolicy.to_json       zzr!   c                     | |      S rS   r-   r%   s     r   r'   zVirtualTimePolicy.from_json       4yr!   N)
r(   r)   r*   r8   ADVANCEPAUSE PAUSE_IF_NETWORK_FETCHES_PENDINGr    r,   r'   r-   r!   r   rN   rN      s2     GE'E$  r!   rN   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)UserAgentBrandVersionzh
    Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints
    r0   brandversionc                V    t               }| j                  |d<   | j                  |d<   |S )Nr^   r_   )r   r^   r_   r   s     r   r    zUserAgentBrandVersion.to_json   s(    v

W,,Yr!   c                F     | t        |d         t        |d               S )Nr^   r_   )r^   r_   rF   r%   s     r   r'   zUserAgentBrandVersion.from_json   s'    d7m$Y(
 	
r!   Nr7   r-   r!   r   r]   r]      s,     JL 
 
r!   r]   c                      e Zd ZU dZded<   ded<   ded<   ded<   ded<   d	Zd
ed<   d	Zd
ed<   d	Zded<   d	Zded<   d	Z	ded<   d	Z
ded<   d Zed        Zy	)UserAgentMetadataz
    Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints
    Missing optional values will be filled in by the target with what it would normally use.
    r0   platformplatform_versionarchitecturemodelboolmobileNz3typing.Optional[typing.List[UserAgentBrandVersion]]brandsfull_version_listtyping.Optional[str]full_versionbitnesstyping.Optional[bool]wow64z!typing.Optional[typing.List[str]]form_factorsc                   t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  |d<   | j                  +| j                  D cg c]  }|j                          c}|d<   | j                  +| j                  D cg c]  }|j                          c}|d<   | j                  | j                  |d<   | j                  | j                  |d	<   | j                  | j                  |d
<   | j                  | j                  D cg c]  }| c}|d<   |S c c}w c c}w c c}w )Nrd   platformVersionrf   rg   ri   rj   fullVersionListfullVersionrn   rp   formFactors)r   rd   re   rf   rg   ri   rj   r    rk   rm   rn   rp   rq   )r   r   is      r   r    zUserAgentMetadata.to_json   s-   v==Z"&"7"7#00^

WX;;"37;;?aaiik?DN!!-<@<R<R&Sqqyy{&SD"#("&"3"3D<<#"llDO::! JJDM(.2.?.?"@1"@D @&S #As   0E 'E/	E
c                    | t        |d         t        |d         t        |d         t        |d         t        |d         d|v r&|d   D cg c]  }t        j                  |       c}nd d|v r&|d   D cg c]  }t        j                  |       c}nd d|v rt        |d         nd d	|v rt        |d	         nd d
|v rt        |d
         nd d|v r!|d   D cg c]  }t        |       c}      S d       S c c}w c c}w c c}w )Nrd   rs   rf   rg   ri   rj   rt   ru   rn   rp   rv   )rd   re   rf   rg   ri   rj   rk   rm   rn   rp   rq   )r0   rh   r]   r'   )r&   r   rw   s      r   r'   zUserAgentMetadata.from_json  s-   j)* &7!89T.12d7m$X'S[_cScXO1)33A6Oimgx  }A  hA4PaKbca4>>qAc  GK5Bd5JT-01PT,5,=CY(4)0D$tG}%dBOSWBW$}*=>Q#a&>
 	
 ^b
 	
 Pc ?s   C?:DD	)r(   r)   r*   r8   r+   rj   rk   rm   rn   rp   rq   r    r,   r'   r-   r!   r   rc   rc      s     MJL CGF?F NRJQ)-L&-$(G!(#'E ' 7;L3:* 
 
r!   rc   c                  F    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 Zed        Zy)
SensorTypezz
    Used to specify sensor types to emulate.
    See https://w3c.github.io/sensors/#automation for more information.
    zabsolute-orientationaccelerometerzambient-lightgravity	gyroscopezlinear-accelerationmagnetometerzrelative-orientationc                    | j                   S rS   rT   rU   s    r   r    zSensorType.to_json'  rV   r!   c                     | |      S rS   r-   r%   s     r   r'   zSensorType.from_json*  rX   r!   N)r(   r)   r*   r8   ABSOLUTE_ORIENTATIONACCELEROMETERAMBIENT_LIGHTGRAVITY	GYROSCOPELINEAR_ACCELERATIONMAGNETOMETERRELATIVE_ORIENTATIONr    r,   r'   r-   r!   r   rz   rz     sM     2#M#MGI/!L1  r!   rz   c                  N    e Zd ZU dZded<   dZded<   dZded<   d Zed        Z	y)	SensorMetadataNro   	availabletyping.Optional[float]minimum_frequencymaximum_frequencyc                    t               }| j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )Nr   minimumFrequencymaximumFrequency)r   r   r   r   r   s     r   r    zSensorMetadata.to_json7  s`    v>>% $D!!-'+'='=D#$!!-'+'='=D#$r!   c                     | d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d               S d       S )Nr   r   r   )r   r   r   )rh   floatr%   s     r   r'   zSensorMetadata.from_jsonA  se    1<1Dd4,-$ASW[A[eD);$<=aeASW[A[eD);$<=
 	
 bf
 	
r!   )
r(   r)   r*   r   r+   r   r   r    r,   r'   r-   r!   r   r   r   /  s>    '+I$+04-404-4 
 
r!   r   c                  .    e Zd ZU ded<   d Zed        Zy)SensorReadingSingler   rJ   c                8    t               }| j                  |d<   |S )NrJ   )r   rJ   r   s     r   r    zSensorReadingSingle.to_jsonN  s    v

Wr!   c                ,     | t        |d               S )NrJ   rT   r   r%   s     r   r'   zSensorReadingSingle.from_jsonS  s    W&
 	
r!   NrA   r-   r!   r   r   r   J  s     L
 
 
r!   r   c                  B    e Zd ZU ded<   ded<   ded<   d Zed        Zy)SensorReadingXYZr   xyzc                t    t               }| j                  |d<   | j                  |d<   | j                  |d<   |S )Nr   r   r   )r   r   r   r   r   s     r   r    zSensorReadingXYZ.to_jsonb  s5    vFFS	FFS	FFS	r!   c                `     | t        |d         t        |d         t        |d               S )Nr   r   r   )r   r   r   r   r%   s     r   r'   zSensorReadingXYZ.from_jsoni  s3    DIDIDI
 	
r!   NrA   r-   r!   r   r   r   Z  s*    HHH 
 
r!   r   c                  L    e Zd ZU ded<   ded<   ded<   ded<   d Zed        Zy)	SensorReadingQuaternionr   r   r   r   wc                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   |S )Nr   r   r   r   )r   r   r   r   r   r   s     r   r    zSensorReadingQuaternion.to_json|  sB    vFFS	FFS	FFS	FFS	r!   c           	     z     | t        |d         t        |d         t        |d         t        |d               S )Nr   r   r   r   )r   r   r   r   r   r%   s     r   r'   z!SensorReadingQuaternion.from_json  s?    DIDIDIDI	
 	
r!   NrA   r-   r!   r   r   r   r  s/    HHHH 
 
r!   r   c                  N    e Zd ZU dZded<   dZded<   dZded<   d Zed	        Z	y)
SensorReadingNz$typing.Optional[SensorReadingSingle]singlez!typing.Optional[SensorReadingXYZ]xyzz(typing.Optional[SensorReadingQuaternion]
quaternionc                   t               }| j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   |S )Nr   r   r   )r   r   r    r   r   r   s     r   r    zSensorReading.to_json  so    v;;"![[002DN88((**,DK??&!%!8!8!:Dr!   c                     | d|v rt         j                  |d         nd d|v rt        j                  |d         nd d|v rt        j                  |d               S d       S )Nr   r   r   )r   r   r   )r   r'   r   r   r%   s     r   r'   zSensorReading.from_json  su    DLPTDT&00h@Z^;@D= **4;7dP\`dPd.88l9KL
 	
 ko
 	
r!   )
r(   r)   r*   r   r+   r   r   r    r,   r'   r-   r!   r   r   r     s<    37F07-1C	*1;?J8? 
 
r!   r   c                  &    e Zd ZdZd Zed        Zy)PressureSourcecpuc                    | j                   S rS   rT   rU   s    r   r    zPressureSource.to_json  rV   r!   c                     | |      S rS   r-   r%   s     r   r'   zPressureSource.from_json  rX   r!   N)r(   r)   r*   CPUr    r,   r'   r-   r!   r   r   r     s     
C  r!   r   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)PressureStatenominalfairseriouscriticalc                    | j                   S rS   rT   rU   s    r   r    zPressureState.to_json  rV   r!   c                     | |      S rS   r-   r%   s     r   r'   zPressureState.from_json  rX   r!   N)
r(   r)   r*   NOMINALFAIRSERIOUSCRITICALr    r,   r'   r-   r!   r   r   r     s/    GDGH  r!   r   c                  2    e Zd ZU dZded<   d Zed        Zy)PressureMetadataNro   r   c                P    t               }| j                  | j                  |d<   |S )Nr   )r   r   r   s     r   r    zPressureMetadata.to_json  s&    v>>% $Dr!   c                B     | d|v rt        |d               S d       S )Nr   )r   rh   r%   s     r   r'   zPressureMetadata.from_json  s0    1<1Dd4,-
 	
JN
 	
r!   )r(   r)   r*   r   r+   r    r,   r'   r-   r!   r   r   r     s&    '+I$+ 
 
r!   r   c                  \    e Zd ZU dZded<   dZded<   dZded<   dZded<   d Ze	d        Z
y)	WorkAreaInsetsNr   r   r   r   r   c                    t               }| j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )Nr   r   r   r   )r   r   r   r   r   r   s     r   r    zWorkAreaInsets.to_json  sj    v88((DK99 99DL;;"![[DN::! JJDMr!   c           	          | d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d               S d       S )Nr   r   r   r   )r   r   r   r   r#   r%   s     r   r'   zWorkAreaInsets.from_json  sn    $)TMDK t&,nT&\"$*2d*:3tH~&(/4#d7m$	
 	
 >B	
 	
r!   )r(   r)   r*   r   r+   r   r   r   r    r,   r'   r-   r!   r   r   r     sO     !%C	$ "&D
% $(F ' #'E&
 
 
r!   r   c                  8     e Zd ZddZedd       Z fdZ xZS )ScreenIdc                    | S rS   r-   rU   s    r   r    zScreenId.to_json  s    r!   c                     | |      S rS   r-   r%   s     r   r'   zScreenId.from_json  rX   r!   c                >    dj                  t        | 	               S )NzScreenId({}))formatsuper__repr__)r   	__class__s    r   r   zScreenId.__repr__  s    $$UW%5%788r!   )returnr0   )r   r0   r   r   )r(   r)   r*   r    r,   r'   r   __classcell__)r   s   @r   r   r     s&      9 9r!   r   c                      e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d Zed        Zy)
ScreenInfoz
    Screen information similar to the one returned by window.getScreenDetails() method,
    see https://w3c.github.io/window-management/#screendetailed.
    r$   r   r   widthheight
avail_left	avail_topavail_widthavail_heightr   device_pixel_ratior/   r;   color_depthrh   is_extendedis_internal
is_primaryr0   labelr   id_c                2   t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j                  |d	<   | j                  j                         |d
<   | j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j                   |d<   | j"                  j                         |d<   |S )Nr   r   r   r   	availLeftavailTop
availWidthavailHeightdevicePixelRatior;   
colorDepth
isExtended
isInternal	isPrimaryr   id)r   r   r   r   r   r   r   r   r   r   r;   r    r   r   r   r   r   r   r   s     r   r    zScreenInfo.to_json9  s	   vyyVhhU

WX OO[>>Z!--\"//]#'#:#: "..668]!--\!--\!--\ OO[

WXX%%'T
r!   c           	         | di dt        |d         dt        |d         dt        |d         dt        |d         dt        |d         dt        |d         d	t        |d
         dt        |d         dt        |d         dt        j                  |d         dt        |d         dt	        |d         dt	        |d         dt	        |d         dt        |d         dt        j                  |d         S )Nr   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'   rh   r0   r   r%   s     r   r'   zScreenInfo.from_jsonM  sR    
T&\"
DK 
 d7m$
 tH~&	

 4,-
 $z*+
 D./
 T-01
  %T*<%=>
 *33D4GH
 D./
 T,/0
 T,/0
 D-.
 d7m$
  ""4:.!
 	
r!   Nr7   r-   r!   r   r   r     s    
 I 
H J K O N    #"     J 
M( 
 
r!   r   c                  .    e Zd ZdZdZdZd Zed        Zy)DisabledImageTypez3
    Enum of image types that can be disabled.
    avifwebpc                    | j                   S rS   rT   rU   s    r   r    zDisabledImageType.to_jsonj  rV   r!   c                     | |      S rS   r-   r%   s     r   r'   zDisabledImageType.from_jsonm  rX   r!   N)	r(   r)   r*   r8   AVIFWEBPr    r,   r'   r-   r!   r   r   r   c  s,     DD  r!   r   c               #  6   K   ddi} | }t        |d         S w)z^
    Tells whether emulation is supported.

    :returns: True if emulation is supported.
    methodzEmulation.canEmulateresultr   cmd_dictr   s     r   can_emulater   r  s-      	(H >DXs   c               #     K   ddi} | }yw)z/
    Clears the overridden device metrics.
    r   z$Emulation.clearDeviceMetricsOverrideNr-   r   s     r   clear_device_metrics_overrider     s     
 	8H >D   
c               #     K   ddi} | }yw)z?
    Clears the overridden Geolocation Position and Error.
    r   z"Emulation.clearGeolocationOverrideNr-   r   s     r   clear_geolocation_overrider     s     
 	6H >Dr   c               #     K   ddi} | }yw)z[
    Requests that page scale factor is reset to initial values.

    **EXPERIMENTAL**
    r   zEmulation.resetPageScaleFactorNr-   r   s     r   reset_page_scale_factorr    s      	2H >Dr   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Enables or disables simulating a focused and active page.

    **EXPERIMENTAL**

    :param enabled: Whether to enable to disable focus emulation.
    enabledz"Emulation.setFocusEmulationEnabledr   paramsNr   r  r  r   r   s       r   set_focus_emulation_enabledr    s/      &FF96H >D   c              #  @   K   t               }| | |d<   d|d}|}yw)z
    Automatically render all web contents using a dark theme.

    **EXPERIMENTAL**

    :param enabled: *(Optional)* Whether to enable or disable automatic dark mode. If not specified, any existing override will be cleared.
    Nr  z!Emulation.setAutoDarkModeOverrider  r  r  s       r   set_auto_dark_mode_overrider    s5      &F#y5H >D   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Enables CPU throttling to emulate slow CPUs.

    :param rate: Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc).
    ratezEmulation.setCPUThrottlingRater  Nr  )r  r  r   r   s       r   set_cpu_throttling_rater    s.      &FF6N2H >Dr	  c              #  \   K   t               }| | j                         |d<   d|d}|}yw)a  
    Sets or clears an override of the default background color of the frame. This override is used
    if the content does not specify one.

    :param color: *(Optional)* RGBA of the default background color. If not specified, any existing override will be cleared.
    Ncolorz+Emulation.setDefaultBackgroundColorOverrider  r   r    )r  r  r   r   s       r   %set_default_background_color_overrider    s:      &F--/w?H >Ds   *,c              #  X   K   t               }| j                         |d<   d|d}|}yw)z
    Overrides the values for env(safe-area-inset-*) and env(safe-area-max-inset-*). Unset values will cause the
    respective variables to be undefined, even if previously overridden.

    **EXPERIMENTAL**

    :param insets:
    insetsz#Emulation.setSafeAreaInsetsOverrider  Nr  )r  r  r   r   s       r   set_safe_area_insets_overrider    s6      &F~~'F87H >D   (*c              #  V  K   t               }| |d<   ||d<   ||d<   ||d<   |||d<   |||d<   |||d<   |||d	<   |||d
<   |	|	|d<   |
|
j                         |d<   ||j                         |d<   ||j                         |d<   ||j                         |d<   d|d}|}yw)aW  
    Overrides the values of device screen dimensions (window.screen.width, window.screen.height,
    window.innerWidth, window.innerHeight, and "device-width"/"device-height"-related CSS media
    query results).

    :param width: Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.
    :param height: Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.
    :param device_scale_factor: Overriding device scale factor value. 0 disables the override.
    :param mobile: Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.
    :param scale: **(EXPERIMENTAL)** *(Optional)* Scale to apply to resulting view image.
    :param screen_width: **(EXPERIMENTAL)** *(Optional)* Overriding screen width value in pixels (minimum 0, maximum 10000000).
    :param screen_height: **(EXPERIMENTAL)** *(Optional)* Overriding screen height value in pixels (minimum 0, maximum 10000000).
    :param position_x: **(EXPERIMENTAL)** *(Optional)* Overriding view X position on screen in pixels (minimum 0, maximum 10000000).
    :param position_y: **(EXPERIMENTAL)** *(Optional)* Overriding view Y position on screen in pixels (minimum 0, maximum 10000000).
    :param dont_set_visible_size: **(EXPERIMENTAL)** *(Optional)* Do not set visible view size, rely upon explicit setVisibleSize call.
    :param screen_orientation: *(Optional)* Screen orientation override.
    :param viewport: **(EXPERIMENTAL)** *(Optional)* If set, the visible area of the page will be overridden to this viewport. This viewport change is not observed by the page, e.g. viewport-relative elements do not change positions.
    :param display_feature: **(EXPERIMENTAL)** *(Optional)* If set, the display feature of a multi-segment screen. If not set, multi-segment support is turned-off. Deprecated, use Emulation.setDisplayFeaturesOverride.
    :param device_posture: **(EXPERIMENTAL)** *(Optional)* If set, the posture of a foldable device. If not set the posture is set to continuous. Deprecated, use Emulation.setDevicePostureOverride.
    r   r   deviceScaleFactorri   NscalescreenWidthscreenHeight	positionX	positionYdontSetVisibleSizescreenOrientationviewportdisplayFeaturedevicePosturez"Emulation.setDeviceMetricsOverrider  r  )r   r   device_scale_factorri   r  screen_widthscreen_height
position_x
position_ydont_set_visible_sizescreen_orientationr!  display_featuredevice_posturer  r   r   s                    r   set_device_metrics_overrider-    s    H &FF7OF8"5FF8w ,} !.~({({('<#$%&8&@&@&B"#%--/z"#2#:#:#< !"0"8"8":6H >Ds   B'B)c              #  X   K   t               }| j                         |d<   d|d}|}yw)z
    Start reporting the given posture value to the Device Posture API.
    This override can also be set in setDeviceMetricsOverride().

    **EXPERIMENTAL**

    :param posture:
    posturez"Emulation.setDevicePostureOverrider  Nr  )r/  r  r   r   s       r   set_device_posture_overrider0  B  s6      &F)F96H >Dr  c               #     K   ddi} | }yw)z
    Clears a device posture override set with either setDeviceMetricsOverride()
    or setDevicePostureOverride() and starts using posture information from the
    platform again.
    Does nothing if no override is set.

    **EXPERIMENTAL**
    r   z$Emulation.clearDevicePostureOverrideNr-   r   s     r   clear_device_posture_overrider2  V  s      	8H >Dr   c              #  ~   K   t               }| D cg c]  }|j                          c}|d<   d|d}|}yc c}w w)z
    Start using the given display features to pupulate the Viewport Segments API.
    This override can also be set in setDeviceMetricsOverride().

    **EXPERIMENTAL**

    :param features:
    featuresz$Emulation.setDisplayFeaturesOverrider  Nr  )r4  r  rw   r   r   s        r   set_display_features_overrider5  e  sE      &F/78!!))+8F:8H >D 9   =8=c               #     K   ddi} | }yw)z
    Clears the display features override set with either setDeviceMetricsOverride()
    or setDisplayFeaturesOverride() and starts using display features from the
    platform again.
    Does nothing if no override is set.

    **EXPERIMENTAL**
    r   z&Emulation.clearDisplayFeaturesOverrideNr-   r   s     r   clear_display_features_overrider8  y  s      	:H >Dr   c              #  <   K   t               }| |d<   d|d}|}yw)z\


    **EXPERIMENTAL**

    :param hidden: Whether scrollbars should be always hidden.
    hiddenzEmulation.setScrollbarsHiddenr  Nr  )r:  r  r   r   s       r   set_scrollbars_hiddenr;    s/      &FF81H >Dr	  c              #  <   K   t               }| |d<   d|d}|}yw)zc


    **EXPERIMENTAL**

    :param disabled: Whether document.coookie API should be disabled.
    disabledz#Emulation.setDocumentCookieDisabledr  Nr  )r=  r  r   r   s       r   set_document_cookie_disabledr>    s/      &F!F:7H >Dr	  c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)z


    **EXPERIMENTAL**

    :param enabled: Whether touch emulation based on mouse input should be enabled.
    :param configuration: *(Optional)* Touch/gesture events configuration. Default: current platform.
    r  Nconfigurationz$Emulation.setEmitTouchEventsForMouser  r  )r  r@  r  r   r   s        r   set_emit_touch_events_for_mouserA    s?      &FF9 "/8H >D   !#c              #     K   t               }| | |d<   |!|D cg c]  }|j                          c}|d<   d|d}|}yc c}w w)z
    Emulates the given media type or media feature for CSS media queries.

    :param media: *(Optional)* Media type to emulate. Empty string disables the override.
    :param features: *(Optional)* Media features to emulate.
    Nmediar4  zEmulation.setEmulatedMediar  r  )rD  r4  r  rw   r   r   s         r   set_emulated_mediarE    sZ      &Fw3;<aaiik<z.H >D =s   AAAc              #  <   K   t               }| |d<   d|d}|}yw)z
    Emulates the given vision deficiency.

    :param type_: Vision deficiency to emulate. Order: best-effort emulations come first, followed by any physiologically accurate emulations for medically recognized color vision deficiencies.
    r4   z%Emulation.setEmulatedVisionDeficiencyr  Nr  r1   r  r   r   s       r   set_emulated_vision_deficiencyrH    s.      &FF6N9H >Dr	  c              #  @   K   t               }| | |d<   d|d}|}yw)zK
    Emulates the given OS text scale.

    :param scale: *(Optional)*
    Nr  z Emulation.setEmulatedOSTextScaler  r  )r  r  r   r   s       r   set_emulated_os_text_scalerJ    s4      &Fw4H >Dr  c              #     K   t               }| | |d<   |||d<   |||d<   |||d<   |||d<   |||d<   |||d<   d	|d
}|}	yw)a  
    Overrides the Geolocation Position or Error. Omitting latitude, longitude or
    accuracy emulates position unavailable.

    :param latitude: *(Optional)* Mock latitude
    :param longitude: *(Optional)* Mock longitude
    :param accuracy: *(Optional)* Mock accuracy
    :param altitude: *(Optional)* Mock altitude
    :param altitude_accuracy: *(Optional)* Mock altitudeAccuracy
    :param heading: *(Optional)* Mock heading
    :param speed: *(Optional)* Mock speed
    Nlatitude	longitudeaccuracyaltitudealtitudeAccuracyheadingspeedz Emulation.setGeolocationOverrider  r  )
rL  rM  rN  rO  altitude_accuracyrQ  rR  r  r   r   s
             r   set_geolocation_overriderT    s     * &F%z'{%z%z$%6!"#yw4H >Ds   AAc              #  r   K   t               }| j                         |d<   d|d}|}t        |d         S w)z>


    **EXPERIMENTAL**

    :param type_:
    :returns: 
    r4   z(Emulation.getOverriddenSensorInformationr  requestedSamplingFrequencyr   r    r   rG  s       r   !get_overridden_sensor_informationrX  )  sE      &F]]_F6N<H >D2344s   57c              #     K   t               }| |d<   |j                         |d<   ||j                         |d<   d|d}|}yw)a  
    Overrides a platform sensor of a given type. If ``enabled`` is true, calls to
    Sensor.start() will use a virtual sensor as backend rather than fetching
    data from a real hardware sensor. Otherwise, existing virtual
    sensor-backend Sensor objects will fire an error event and new calls to
    Sensor.start() will attempt to use a real sensor instead.

    **EXPERIMENTAL**

    :param enabled:
    :param type_:
    :param metadata: *(Optional)*
    r  r4   Nmetadataz"Emulation.setSensorOverrideEnabledr  r  )r  r1   rZ  r  r   r   s         r   set_sensor_override_enabledr[  >  sW     $ &FF9]]_F6N%--/z6H >D   AAc              #  ~   K   t               }| j                         |d<   |j                         |d<   d|d}|}yw)z
    Updates the sensor readings reported by a sensor type previously overridden
    by setSensorOverrideEnabled.

    **EXPERIMENTAL**

    :param type_:
    :param reading:
    r4   readingz#Emulation.setSensorOverrideReadingsr  Nr  )r1   r^  r  r   r   s        r   set_sensor_override_readingsr_  \  sE      &F]]_F6N)F97H >D   ;=c              #     K   t               }| |d<   |j                         |d<   ||j                         |d<   d|d}|}yw)aa  
    Overrides a pressure source of a given type, as used by the Compute
    Pressure API, so that updates to PressureObserver.observe() are provided
    via setPressureStateOverride instead of being retrieved from
    platform-provided telemetry data.

    **EXPERIMENTAL**

    :param enabled:
    :param source:
    :param metadata: *(Optional)*
    r  sourceNrZ  z*Emulation.setPressureSourceOverrideEnabledr  r  )r  rb  rZ  r  r   r   s         r   $set_pressure_source_override_enabledrc  s  sY     " &FF9~~'F8%--/z>H >Dr\  c              #  ~   K   t               }| j                         |d<   |j                         |d<   d|d}|}yw)aV  
    TODO: OBSOLETE: To remove when setPressureDataOverride is merged.
    Provides a given pressure state that will be processed and eventually be
    delivered to PressureObserver users. ``source`` must have been previously
    overridden by setPressureSourceOverrideEnabled.

    **EXPERIMENTAL**

    :param source:
    :param state:
    rb  statez"Emulation.setPressureStateOverrider  Nr  )rb  re  r  r   r   s        r   set_pressure_state_overriderf    sE      &F~~'F8mmoF7O6H >Dr`  c              #     K   t               }| j                         |d<   |j                         |d<   |||d<   d|d}|}yw)aF  
    Provides a given pressure data set that will be processed and eventually be
    delivered to PressureObserver users. ``source`` must have been previously
    overridden by setPressureSourceOverrideEnabled.

    **EXPERIMENTAL**

    :param source:
    :param state:
    :param own_contribution_estimate: *(Optional)*
    rb  re  NownContributionEstimatez!Emulation.setPressureDataOverrider  r  )rb  re  own_contribution_estimater  r   r   s         r   set_pressure_data_overriderj    sV       &F~~'F8mmoF7O ,,E()5H >Dr\  c              #  F   K   t               }| |d<   ||d<   d|d}|}yw)z
    Overrides the Idle state.

    :param is_user_active: Mock isUserActive
    :param is_screen_unlocked: Mock isScreenUnlocked
    isUserActiveisScreenUnlockedzEmulation.setIdleOverrider  Nr  )is_user_activeis_screen_unlockedr  r   r   s        r   set_idle_overriderp    s:      &F+F>!3F-H >D   !c               #     K   ddi} | }yw)z&
    Clears Idle state overrides.
    r   zEmulation.clearIdleOverrideNr-   r   s     r   clear_idle_overriders    s     
 	/H >Dr   c              #  <   K   t               }| |d<   d|d}|}yw)z
    Overrides value returned by the javascript navigator object.

    **EXPERIMENTAL**

    :param platform: The platform navigator.platform should return.
    rd   zEmulation.setNavigatorOverridesr  Nr  )rd   r  r   r   s       r   set_navigator_overridesru    s/      &F!F:3H >Dr	  c              #  <   K   t               }| |d<   d|d}|}yw)zu
    Sets a specified page scale factor.

    **EXPERIMENTAL**

    :param page_scale_factor: Page scale factor.
    pageScaleFactorzEmulation.setPageScaleFactorr  Nr  )page_scale_factorr  r   r   s       r   set_page_scale_factorry    s0      &F 1F0H >Dr	  c              #  <   K   t               }| |d<   d|d}|}yw)z|
    Switches script execution in the page.

    :param value: Whether script execution should be disabled in the page.
    rJ   z$Emulation.setScriptExecutionDisabledr  Nr  )rJ   r  r   r   s       r   set_script_execution_disabledr{  	  s.      &FF7O8H >Dr	  c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)z
    Enables touch on platforms which do not support them.

    :param enabled: Whether the touch event emulation should be enabled.
    :param max_touch_points: *(Optional)* Maximum touch points supported. Defaults to one.
    r  NmaxTouchPointsz"Emulation.setTouchEmulationEnabledr  r  )r  max_touch_pointsr  r   r   s        r   set_touch_emulation_enabledr    s@      &FF9##3 6H >DrB  c              #     K   t               }| j                         |d<   |||d<   |||d<   ||j                         |d<   d|d}|}t        |d         S w)a#  
    Turns on virtual time for all frames (replacing real-time with a synthetic time source) and sets
    the current virtual time policy.  Note this supersedes any previous time budget.

    **EXPERIMENTAL**

    :param policy:
    :param budget: *(Optional)* If set, after this many virtual milliseconds have elapsed virtual time will be paused and a virtualTimeBudgetExpired event is sent.
    :param max_virtual_time_task_starvation_count: *(Optional)* If set this specifies the maximum number of tasks that can be run before virtual is forced forwards to prevent deadlock.
    :param initial_virtual_time: *(Optional)* If set, base::Time::Now will be overridden to initially return this value.
    :returns: Absolute timestamp at which virtual time was first enabled (up time in milliseconds).
    policybudget!maxVirtualTimeTaskStarvationCountinitialVirtualTimezEmulation.setVirtualTimePolicyr  virtualTimeTicksBaserW  )r  r  &max_virtual_time_task_starvation_countinitial_virtual_timer  r   r   s          r   set_virtual_time_policyr  /  s     $ &F~~'F8!x-96\23'';'C'C'E#$2H >D,-..s   AAc              #  @   K   t               }| | |d<   d|d}|}yw)z
    Overrides default host system locale with the specified one.

    **EXPERIMENTAL**

    :param locale: *(Optional)* ICU style C locale (e.g. "en_US"). If not specified or empty, disables the override and restores default host system locale.
    NlocalezEmulation.setLocaleOverrider  r  )r  r  r   r   s       r   set_locale_overrider  Q  s5      &F!x/H >Dr  c              #  <   K   t               }| |d<   d|d}|}yw)ag  
    Overrides default host system timezone with the specified one.

    :param timezone_id: The timezone identifier. List of supported timezones: https://source.chromium.org/chromium/chromium/deps/icu.git/+/faee8bc70570192d82d2978a71e2a615788597d1:source/data/misc/metaZones.txt If empty, disables the override and restores default host system timezone.
    
timezoneIdzEmulation.setTimezoneOverrider  Nr  )timezone_idr  r   r   s       r   set_timezone_overrider  e  s/      &F&F<1H >Dr	  c              #  F   K   t               }| |d<   ||d<   d|d}|}yw)a<  
    Resizes the frame/viewport of the page. Note that this does not affect the frame's container
    (e.g. browser window). Can be used to produce screenshots of the specified size. Not supported
    on Android.

    **EXPERIMENTAL**

    :param width: Frame width (DIP).
    :param height: Frame height (DIP).
    r   r   zEmulation.setVisibleSizer  Nr  )r   r   r  r   r   s        r   set_visible_sizer  v  s8      &FF7OF8,H >Drq  c              #  ~   K   t               }| D cg c]  }|j                          c}|d<   d|d}|}yc c}w w)zM


    **EXPERIMENTAL**

    :param image_types: Image types to disable.
    
imageTypeszEmulation.setDisabledImageTypesr  Nr  )image_typesr  rw   r   r   s        r   set_disabled_image_typesr    sE      &F1<=AAIIK=F<3H >D >r6  c              #  @   K   t               }| | |d<   d|d}|}yw)z
    Override the value of navigator.connection.saveData

    **EXPERIMENTAL**

    :param data_saver_enabled: *(Optional)* Override value. Omitting the parameter disables the override.
    NdataSaverEnabledzEmulation.setDataSaverOverrider  r  )data_saver_enabledr  r   r   s       r   set_data_saver_overrider    s6      &F%%7!"2H >Dr  c              #  <   K   t               }| |d<   d|d}|}yw)z]


    **EXPERIMENTAL**

    :param hardware_concurrency: Hardware concurrency to report
    hardwareConcurrencyz(Emulation.setHardwareConcurrencyOverrider  Nr  )hardware_concurrencyr  r   r   s       r   !set_hardware_concurrency_overrider    s0      &F$8F !<H >Dr	  c              #     K   t               }| |d<   |||d<   |||d<   ||j                         |d<   d|d}|}yw)a  
    Allows overriding user agent with the given string.
    ``userAgentMetadata`` must be set for Client Hint headers to be sent.

    :param user_agent: User agent to use.
    :param accept_language: *(Optional)* Browser language to emulate.
    :param platform: *(Optional)* The platform navigator.platform should return.
    :param user_agent_metadata: **(EXPERIMENTAL)** *(Optional)* To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData
    	userAgentNacceptLanguagerd   userAgentMetadatazEmulation.setUserAgentOverrider  r  )
user_agentaccept_languagerd   user_agent_metadatar  r   r   s          r   set_user_agent_overrider    sj      &F$F;"#2 %z&&9&A&A&C"#2H >Ds   =?c              #  <   K   t               }| |d<   d|d}|}yw)z
    Allows overriding the automation flag.

    **EXPERIMENTAL**

    :param enabled: Whether the override should be enabled.
    r  zEmulation.setAutomationOverrider  Nr  r  s       r   set_automation_overrider    s/      &FF93H >Dr	  c              #  <   K   t               }| |d<   d|d}|}yw)af  
    Allows overriding the difference between the small and large viewport sizes, which determine the
    value of the ``svh`` and ``lvh`` unit, respectively. Only supported for top-level frames.

    **EXPERIMENTAL**

    :param difference: This will cause an element of size 100svh to be ```difference``` pixels smaller than an element of size 100lvh.
    
differencez2Emulation.setSmallViewportHeightDifferenceOverrider  Nr  )r  r  r   r   s       r   -set_small_viewport_height_difference_overrider    s/      &F%F<FH >Dr	  c               #  p   K   ddi} | }|d   D cg c]  }t         j                  |       c}S c c}w w)zV
    Returns device's screen configuration.

    **EXPERIMENTAL**

    :returns: 
    r   zEmulation.getScreenInfosscreenInfos)r   r'   )r   r   rw   s      r   get_screen_infosr    sB      	,H >D-1--@AJ  #AAAs   616c
              #     K   t               }
| |
d<   ||
d<   ||
d<   ||
d<   ||j                         |
d<   |||
d<   |||
d<   |||
d<   |||
d	<   |	|	|
d
<   d|
d}|}t        j                  |d         S w)a  
    Add a new screen to the device. Only supported in headless mode.

    **EXPERIMENTAL**

    :param left: Offset of the left edge of the screen in pixels.
    :param top: Offset of the top edge of the screen in pixels.
    :param width: The width of the screen in pixels.
    :param height: The height of the screen in pixels.
    :param work_area_insets: *(Optional)* Specifies the screen's work area. Default is entire screen.
    :param device_pixel_ratio: *(Optional)* Specifies the screen's device pixel ratio. Default is 1.
    :param rotation: *(Optional)* Specifies the screen's rotation angle. Available values are 0, 90, 180 and 270. Default is 0.
    :param color_depth: *(Optional)* Specifies the screen's color depth in bits. Default is 24.
    :param label: *(Optional)* Specifies the descriptive label for the screen. Default is none.
    :param is_internal: *(Optional)* Indicates whether the screen is internal to the device or external, attached to the device. Default is false.
    :returns: 
    r   r   r   r   workAreaInsetsr   rotationr   r   r   zEmulation.addScreenr  
screenInfo)r   r    r   r'   )r   r   r   r   work_area_insetsr   r  r   r   r   r  r   r   s                r   
add_screenr    s     : &FF6NF5MF7OF8##3#;#;#= %%7!"%z*|w*|'H >D\ 233s   A8A:c              #  X   K   t               }| j                         |d<   d|d}|}yw)zv
    Remove screen from the device. Only supported in headless mode.

    **EXPERIMENTAL**

    :param screen_id:
    screenIdzEmulation.removeScreenr  Nr  )	screen_idr  r   r   s       r   remove_screenr  R  s8      &F"**,F:*H >Dr  z"Emulation.virtualTimeBudgetExpiredc                  "    e Zd ZdZedd       Zy)VirtualTimeBudgetExpiredz~
    **EXPERIMENTAL**

    Notification sent after the virtual time budget for the current VirtualTimePolicy has run out.
    c                     |        S rS   r-   r%   s     r   r'   z"VirtualTimeBudgetExpired.from_jsono  s     
 	
r!   N)r   r   r   r  )r(   r)   r*   r8   r,   r'   r-   r!   r   r  r  e  s     
 
r!   r  )r   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, bool])r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r  rh   r   r  rS   )r  ro   r   r  )r  r   r   r  )r  ztyping.Optional[dom.RGBA]r   r  )r  r   r   r  )
NNNNNNNNNN)r   r$   r   r$   r$  r   ri   rh   r  r   r%  r   r&  r   r'  r   r(  r   r)  ro   r*  z"typing.Optional[ScreenOrientation]r!  ztyping.Optional[page.Viewport]r+  ztyping.Optional[DisplayFeature]r,  ztyping.Optional[DevicePosture]r   r  )r/  rC   r   r  )r4  ztyping.List[DisplayFeature]r   r  )r:  rh   r   r  )r=  rh   r   r  )r  rh   r@  rl   r   r  )NN)rD  rl   r4  z*typing.Optional[typing.List[MediaFeature]]r   r  )r1   r0   r   r  )r  r   r   r  )NNNNNNN)rL  r   rM  r   rN  r   rO  r   rS  r   rQ  r   rR  r   r   r  )r1   rz   r   1typing.Generator[T_JSON_DICT, T_JSON_DICT, float])r  rh   r1   rz   rZ  ztyping.Optional[SensorMetadata]r   r  )r1   rz   r^  r   r   r  )r  rh   rb  r   rZ  z!typing.Optional[PressureMetadata]r   r  )rb  r   re  r   r   r  )rb  r   re  r   ri  r   r   r  )rn  rh   ro  rh   r   r  )rd   r0   r   r  )rx  r   r   r  )rJ   rh   r   r  )r  rh   r~  r   r   r  )NNN)
r  rN   r  r   r  r   r  z'typing.Optional[network.TimeSinceEpoch]r   r  )r  rl   r   r  )r  r0   r   r  )r   r$   r   r$   r   r  )r  ztyping.List[DisabledImageType]r   r  )r  ro   r   r  )r  r$   r   r  )
r  r0   r  rl   rd   rl   r  z"typing.Optional[UserAgentMetadata]r   r  )r  r$   r   r  )r   zCtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[ScreenInfo]])NNNNNN)r   r$   r   r$   r   r$   r   r$   r  ztyping.Optional[WorkAreaInsets]r   r   r  r   r   r   r   rl   r   ro   r   z6typing.Generator[T_JSON_DICT, T_JSON_DICT, ScreenInfo])r  r   r   r  )S
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r
   r   r/   r:   rC   rH   EnumrN   r]   rc   rz   r   r   r   r   r   r   r   r   r   r0   r   r   r   r   r   r   r  r  r  r  r  r  r-  r0  r2  r5  r8  r;  r>  rA  rE  rH  rJ  rT  rX  r[  r_  rc  rf  rj  rp  rs  ru  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-   r!   r   <module>r     s   # * !      8
 8
 8
v 
 
 
0 
 
 
: 
 
 
  
 
 
&		 & 
 
 
, B
 B
 B
J , 
 
 
4 
 
 
 
 
 
. 
 
 
6 
 
 
4TYY DII  
 
 
   
  
  
F	9s 	9 \
 \
 \
~		 
 		7( *.&	7(	7$ ,0(	7&	72 )--1.2+/+/7;AE37;?9=AAA #A 	A
 &A +A ,A )A )A  5A ?A 1A 9A 7A 
8AH	7(-	7(	7&	7* /3+ 
80 '+?C#< 
8,	7$ )-%	7& ,0,0+/+/48*.(,((()( )( )	(
 2( (( &( 
8(V55	850 59 2 
8	< 
84 7; 4 
8	: 
88 =A $: 
8	8  
8(	7& 	7&	7& 26. 
8. *.GKHL	/!/&/ 1E/ F	/
 
9/F (,$	7(	7" 
803	7( 591	7(!	7* 15)-BF	- ' @	
 
8<	7&	7(B( =A59)-,0&*-1343434 34 	34
 :34 334 '34 *34 $34 +34 
>34l	7& 12

 
  3
r!   