
    \j.                     l    d dl Z d dlmZmZ ddlmZmZ ej                   ed      z
  Z G d de      Zy)    N)datetime	timedelta   )BaseProviderElementsTypeg      ?c                   T   e Zd ZU dZdZee   ed<   dZee   ed<   dZ	ee   ed<   dZ
ee   ed	<   d
Zee   ed<   dZee   ed<   dZee   ed<   defdZdefdZdefdZ	 	 	 	 d#dededededef
dZdefdZdefdZdefdZdefdZdefdZdefdZdefdZdefd Zdefd!Zy")$Providerz0Implement default user agent provider for Faker.)chromefirefoxinternet_exploreroperasafariuser_agents)z
Windows 95z
Windows 98zWindows 98; Win 9x 4.90z
Windows CEzWindows NT 4.0zWindows NT 5.0zWindows NT 5.01zWindows NT 5.1zWindows NT 5.2zWindows NT 6.0zWindows NT 6.1zWindows NT 6.2zWindows NT 10.0zWindows NT 11.0windows_platform_tokens)i686x86_64linux_processors)IntelPPCzU; IntelzU; PPCmac_processors)Bz1.0z1.1z1.5z1.6z2.0z2.0.1z2.1z2.22.2.1z2.2.2z2.2.3z2.3z2.3.1z2.3.2z2.3.3z2.3.4z2.3.5z2.3.6z2.3.7z3.0z3.1z3.2z3.2.13.2.2z3.2.3z3.2.4z3.2.5z3.2.6z4.0z4.0.1z4.0.2z4.0.3z4.0.4z4.1z4.1.1z4.1.2z4.24.2.1z4.2.2z4.3z4.3.1z4.4z4.4.1z4.4.2z4.4.3z4.4.4z5.0z5.0.1z5.0.2z5.15.1.1z6.0z6.0.1z7.0z7.1z7.1.17.1.2z8.0.0z8.1.09101112z12.11314android_versions)iPhoneiPadapple_devices)#z1.1.5r   z3.1.3r   r   z4.3.5r   z6.1.6r   z8.4.1z9.3.5z9.3.6z10.3.3z10.3.4z11.4.1z12.4.4z12.4.8z12.5.7z13.5.1z13.7z14.2z14.2.1z14.8.1z15.8.2z16.7.6z16.7.7z17.1z17.1.1z17.1.2z17.2z17.2.1z17.3z17.3.1z17.4z17.4.1ios_versionsreturnc                 8    | j                  | j                        S )z<Generate a MacOS processor token used in user agent strings.)random_elementr   selfs    M/root/env/lib/python3.12/site-packages/faker/providers/user_agent/__init__.pymac_processorzProvider.mac_processor   s    ""4#6#677    c                 8    | j                  | j                        S )z<Generate a Linux processor token used in user agent strings.r)   r   r*   s    r,   linux_processorzProvider.linux_processor   s    ""4#8#899r.   c                 Z    | j                  | j                        } t        | |             S )z0Generate a random web browser user agent string.)r)   r   getattr)r+   names     r,   
user_agentzProvider.user_agent   s*    ''(8(89"wtT"$$r.   version_from
version_to
build_frombuild_toc                 \   | j                   j                  j                  dd       d| j                   j                  j                  dd       }| j                  | j	                  d      t
        j                        }d}d}|j                  | j                         || j                   j                  j                  ||      | j                   j                  j                  ||      |      |j                  | j                         || j                   j                  j                  ||      | j                   j                  j                  ||      |      |j                  | j                         || j                   j                  j                  ||      | j                   j                  j                  ||      |      |j                  d	| j                          || j                   j                  j                  ||      | j                   j                  j                  ||      |      |j                  | j                         || j                   j                  j                  ||      | j                   j                  j                  ||      |      f}	d
| j                  |	      z   S )z0Generate a Chrome web browser user agent string.    .r   r   ##?###zG({0}) AppleWebKit/{1} (KHTML, like Gecko) Chrome/{2}.0.{3}.0 Safari/{4}zQ({0}) AppleWebKit/{1} (KHTML, like Gecko) CriOS/{2}.0.{3}.0 Mobile/{4} Safari/{1}zLinux; Mozilla/5.0 )	generatorrandomrandintlexifynumerifystringascii_uppercaseformatlinux_platform_tokenwindows_platform_tokenmac_platform_tokenandroid_platform_tokenios_platform_tokenr)   )
r+   r6   r7   r8   r9   safbldtmplt	tmplt_ios	platformss
             r,   r
   zProvider.chrome   s;    nn++33C=>a@U@U@]@]^_ab@c?de;;t}}X68N8NO^l	LL))+%%--lJG%%--j(C LL++-%%--lJG%%--j(C LL'')%%--lJG%%--j(C LL$55789%%--lJG%%--j(C '')%%--lJG%%--j(C;$(
	L  3 3I >>>r.   c                    d| j                   j                  t        ddd      t               d| j                   j                  j                  dd       dd| j                   j                  t        ddd      t               d	| j                   j                  j                  dd
       d| j                   j                  t        ddd      t               df}d}d}d}d}d}| j                   j                  j                  dd       d| j                   j                  j                  dd       }| j                  | j                  d      t        j                        }| j                  | j                  d      t        j                        }	|j                  | j                         | j                   j                         j                  dd      | j                   j                  j                  dd      | j                   j                  j                  |            |j                  | j!                         | j                   j                  j                  dd      | j                   j                  j                  |            |j                  | j#                         | j                   j                  j                  dd      | j                   j                  j                  |            |j                  | j%                         | j                   j                  j                  dd            |j                  | j'                         || j                   j                  j                  dd      |	|      f}
d| j)                  |
      z   S ) z9Generate a Mozilla Firefox web browser user agent string.zGecko/i     z	 Firefox/      z.0i  z Firefox/3.6.   z Firefox/3.8z({0}; {1}; rv:1.9.{2}.20) {3}z({0}; rv:1.9.{1}.20) {2}z1({0}; Mobile; rv:{1}.0) Gecko/{1}.0 Firefox/{1}.0zO({0}) AppleWebKit/{1} (KHTML, like Gecko) FxiOS/{2}.{3}.0 Mobile/{4} Safari/{1}r;   r<   r=   r   r   r>   z#?####_-         D   	      r?   )r@   date_time_betweenr   _DT_ALMOST_MAXrA   rB   rC   rD   rE   rF   ascii_lowercaserG   rI   localereplacechoicerH   rJ   rK   rL   r)   )r+   ver	tmplt_win	tmplt_lin	tmplt_mac	tmplt_andrP   rM   rN   bld2rQ   s              r,   r   zProvider.firefox   s    99(4A:NP^_` a>>0088B?@D 99(4A:NP^_` a#~~44<<QCDF T^^55htQ6JN[\\hi
"
 9	3	3	L	j	nn++33C=>a@U@U@]@]^_ab@c?de;;t}}X68N8NOKKh 79O9OP++-%%'//S9%%--a3%%,,S1	 ))+%%--a3%%,,S1
 '')%%--a3%%,,S1
 T88:DNN<Q<Q<Y<YZ[]_<`a'')%%--a4%(
	6  3 3I >>>r.   c                    | j                   j                  j                  dd       d| j                   j                  j                  dd       d| j                   j                  j                  dd       }| j                   j                  j                  d      sO| j                   j                  j                  dd       d| j                   j                  j                  d	d       nN| j                   j                  j                  dd       d
| j                   j                  j                  dd       }d}d}d}| j                   j	                         j                  dd      }|j                  | j                         |||      |j                  | j                         | j                   j                  j                  dd      ||||      |j                  | j                   j                  j                  dd      | j                   j                  j                  d	d      ||| j                   j                  j                  dd      | j                   j                  j                  dd      |      f}d| j                  |      z   S )z0Generate a Safari web browser user agent string.r;   i  r=   rS   2   rZ   rT   rY   r   z.0.zL(Windows; U; {0}) AppleWebKit/{1} (KHTML, like Gecko) Version/{2} Safari/{3}zN({0} rv:{1}.0; {2}) AppleWebKit/{3} (KHTML, like Gecko) Version/{4} Safari/{5}z(iPod; U; CPU iPhone OS {0}_{1} like Mac OS X; {2}) AppleWebKit/{3} (KHTML, like Gecko) Version/{4}.0.5 Mobile/8B{5} Safari/6{6}rW   rX   r   r[      o   w   r?   )
r@   rA   rB   getrandbitsrb   rc   rG   rI   rJ   r)   )r+   rM   re   rf   rh   
tmplt_ipodrb   rQ   s           r,   r   zProvider.safari  s?    ~~$$,,S#67q~~$$,,Q34A~~$$,,Q235 	 >>((44Q7 ~~$$,,Q231T^^5J5J5R5RSTVW5X4YZNN))11!Q78DNN<Q<Q<Y<YZ[]^<_;`a 	 h	i	( 	
 nn++-55c3?T88:CcJ'')%%--a3 %%--a3%%--a3%%--a3%%--c37(
	*  3 3I >>>r.   c                 4   | j                   j                  j                  d      r| j                         n| j	                         }| j                   j                         j                  dd      }d| d| d| j                   j                  j                  dd       d	| j                   j                  j                  d
d       d	}d| j                   j                  j                  dd       d| j                   j                  j                  d
d       d| S )z0Generate an Opera web browser user agent string.rS   rW   rX   (z; z) Presto/2.9.      z	 Version/
      z.00zOpera/   r]   r=   c   )r@   rA   rp   rH   rI   rb   rc   rB   )r+   tokenrb   platforms       r,   r   zProvider.opera=  s    ,0>>+@+@+L+LQ+OD%%'UYUpUpUr 	 nn++-55c3?wbdnn.C.C.K.KCQT.U-V W~~,,44R<=SB 	 --55a;<Adnn>S>S>[>[\^`b>c=ddefneoppr.   c                    d| j                   j                  j                  dd       d| j                          d| j                   j                  j                  dd       d| j                   j                  j                  dd	       d
	S )z-Generate an IE web browser user agent string.zMozilla/5.0 (compatible; MSIE rY   r]   z.0; z
; Trident/rm   r=   r   rS   ))r@   rA   rB   rI   r*   s    r,   r   zProvider.internet_explorerI  s     -T^^-B-B-J-J1a-P,QQU**,- .~~,,44Q:;1T^^=R=R=Z=Z[\^_=`<aabd	
r.   c                 8    | j                  | j                        S )z=Generate a Windows platform token used in user agent strings.)r)   r   r*   s    r,   rI   zProvider.windows_platform_tokenQ  s    ""4#?#?@@r.   c                 >    d| j                  | j                         S )z;Generate a Linux platform token used in user agent strings.zX11; Linux r0   r*   s    r,   rH   zProvider.linux_platform_tokenU  s!    T001F1FGHIIr.   c           	          d| j                  | j                         d| j                  j                  j	                  dd       d| j                  j                  j	                  dd       S )z;Generate a MacOS platform token used in user agent strings.zMacintosh; z Mac OS X 10_rY   rw   rW   r   r]   )r)   r   r@   rA   rB   r*   s    r,   rJ   zProvider.mac_platform_tokenY  sg     $--d.A.ABC=~~$$,,Q34Adnn6K6K6S6STUWX6Y5Z\	
r.   c                 >    d| j                  | j                         S )z>Generate an Android platform token used in user agent strings.zAndroid )r)   r"   r*   s    r,   rK   zProvider.android_platform_token`  s!    $--d.C.CDEFFr.   c                     | j                  | j                        }| j                  | j                        }| d| d|j                  dd       dS )z:Generate an iOS platform token used in user agent strings.z; CPU z OS r=   rW   z like Mac OS X)r)   r%   r&   rc   )r+   apple_deviceios_versions      r,   rL   zProvider.ios_platform_tokend  sX     //0B0BC..t/@/@Avl^8K<O<OPSUX<Y;ZZhiir.   N)   ?   i   i  )__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   r"   r%   r&   r-   r1   r5   intr
   r   r   r   r   rI   rH   rJ   rK   rL    r.   r,   r	   r	   
   si   :&Kc" 2\#. " +=l3'<(NNL%NC+l3' CJ (:M<$9$'L,s# $L8s 8: :%C % 2?2? 2? 	2?
 2? 
2?h0? 0?d+? +?Z
qs 
q
3 
A AJc J
C 
G GjC jr.   r	   )	rE   r   r    r   r   maxr`   r	   r   r.   r,   <module>r      s0     ( )	#.^j| ^jr.   