o
    j                     @   s  d Z ddlZddlZddlZddlZddlZddlZddddddd	d
d
dddg dddddddg ddd
ddddddd	d
d
dddg dddddddg ddd
ddd d!d"dd#d
d$d%dd&g d'dddddd(g d)dd
d*d+d,d-d.dd	d
d$d/dd0g ddddddd1g d2dd
d3dddddd	d
d
dd4d5g ddddddd6g d7dd
d8d9d:d;d<dd	d=d=d>dd?g d@ddddddg ddd
gZdAdBdAdCZG dDdE dEZ	dS )Fz Amazon FWCIM metadata generator.    NZwin_intel_uhd620z1920-1080-1040-24-*-*-*i  i8  i  )widthheightZavailHeightg      ?   zxPDF Viewer Chrome PDF Viewer Chromium PDF Viewer Microsoft Edge PDF Viewer WebKit built-in PDF ||1920-1080-1040-24-*-*-*zGoogle Inc. (Intel)zAANGLE (Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0, D3D11))ANGLE_instanced_arraysEXT_blend_minmaxEXT_color_buffer_half_floatEXT_depth_clampEXT_float_blendEXT_frag_depthEXT_shader_texture_lodEXT_sRGBEXT_texture_compression_bptcEXT_texture_compression_rgtcEXT_texture_filter_anisotropicKHR_parallel_shader_compileOES_element_index_uintOES_fbo_render_mipmapOES_standard_derivativesOES_texture_floatOES_texture_float_linearOES_texture_half_floatOES_texture_half_float_linearOES_vertex_array_objectWEBGL_color_buffer_floatWEBGL_compressed_texture_s3tc"WEBGL_compressed_texture_s3tc_srgbWEBGL_debug_renderer_infoWEBGL_debug_shadersWEBGL_depth_textureWEBGL_draw_buffersWEBGL_lose_contextWEBGL_multi_draw)vendormodel
extensionsz-1.4214488238747245z0.8178819121159085z-0.5753861119575491)tansincosi5U(   i6  /   M   ;   &   0       r+   -   '   *   +   1      r+   "      r+      !   r4   (   r7      #      r0      $   r:      r0      r:   r<   r,   r4   r4   r-   r3   r-   %   r6   r:      r7      .      r;   r?   )      rB   r4   r>      rD   r6   r<   rA      rH   r:   r5   rF   r9   rD      r3      r>   r3      rA   rB   r3   r3   r6      rA   r3   rB   r<   rD   r6   rF   rJ   r?   rL   r9   r/   r7   r-   r3   7   r4      3   rD   6   <   i  rB   r>   rD   rH   rD   rJ   rL   rL   r>   rL      rJ   r6   r<   r8   r9   rF   r;   rG   rJ   r>   r<   rI   r>   L   rA   r9   rL   rR   r:   rF   r3   r:   r-   rN   r:   r>   rL   r@   r>   r5   r>   r3   r>   rL   rL   rI   rH   rI   r<   >   r;   r-   rI   rG   rI   rG   rB   rI   rL   r:   rR   rK   rN   rG   r6   rJ   rA   r6   rL   r3   r@   r3   r<   rL   r6   r;   r<   rR   rK   r-   r9   rF   rA   rN   r3   
   r5   r-   r;   r;      rF   r?   rI   r>   rB   rD   r4   r:   r:   rO   2   r8   r=   r6   rA   r<   rR   r2   r5   rB   rD   r5   r3   rE   r0   r6   r6   rJ   r-   rM   r6   r8   r+   r,   r1   r7   rJ   rA   r1   r1   r4   r@   rC   rP   r5   r,   r:   r+   r/   r:   r,   r(   rM   r=   rQ   G   ,   I   U   i  i4  )hashhistogramBins)
id
screenInfoscreendprdeviceMemoryZhardwareConcurrencypluginsgpumathcanvasZwin_nvidia_gtx1650zGoogle Inc. (NVIDIA)zGANGLE (NVIDIA, NVIDIA GeForce GTX 1650 Direct3D11 vs_5_0 ps_5_0, D3D11))r   r   r   r   ZEXT_disjoint_timer_queryr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   iM(   i(7  rY   P   rM   r8   r.   r:   r=   r,   r@   r8   r.   r(   r;   r=   r-   r7   r=   rR   r5   r=   r+   r:   rB   r7   r-   r8   r5   r4   r@   rB   rY   rG   r7   r5   rC   r=   r-   r4   rL   r4   r:   rR   r7   rL   r5   r>   rY   r6   rR   rG   r/   rI   r9   r=   rB   rN   r>   rR   r3   rL   rK   rF   r7   r7   rH   rB   r>   rJ   rL   rA   rB   r<   rV   rL   r9   r<   rL   rR   rA   rL   rL   r>   r3   r6   rD   rI   rI   rG   rA   rB   r@   r:   r;   r<   5   r=   rG   rh   r>   8   :   i  r>   rB   r6   rK   r6   rI   r3   rA   rD   rA   r;   rI   rR   r3   r0   rN   rI   rR   rN   rI   rD   r3   rJ   rB   N   rJ   rB   rA   r;   r7   rI   rL   r@   r;   r9   r7   rD   rA   r/   rB   r7   rB   r<   rB   r3   rA   rJ   rK   rJ   r3   @   rR   r4   rF   rN   rF   rN   r9   rJ   rA   r@   r6   rH   rG   rN   rD   rA   rJ   rR   rA   r<   r:   r<   r3   r3   rD   r-   r3   r;   rV   r4   rN   rI   rJ   r9   rL   r?   r<   r4   rR   r-   	   rI   rU   rJ   rB   r>   r>   r=   r7   r@   r2   4   r+   r+   rD   rL   r3   r;   r(   r7   r9   r6   r<   r<   r/   rY   rD   rR   rI   r4   rh   rR   r+   r8   rC   r.   r5   rA   rJ   r.   rE   r=   r:   r,   rn   r7   rC   r@   r=   rE   r7   rW   r.   9   r4   rT   E   rC   rX   W   i  i]4  Zwin_intel_iris_xez1536-864-824-24-*-*-*i   i`  i8  g      ?r?   zvPDF Viewer Chrome PDF Viewer Chromium PDF Viewer Microsoft Edge PDF Viewer WebKit built-in PDF ||1536-864-824-24-*-*-*zDANGLE (Intel(R) Iris(R) Xe Graphics Direct3D11 vs_5_0 ps_5_0, D3D11))r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZWEBGL_compressed_texture_astcZWEBGL_compressed_texture_etcr   r   r   r   r   r   r    r!   i%R8(   i 7  r2   K   =   r=   rW   r;   r8   r1   rE   r8   r.   r(   r<   r=   r=   r<   r8   rD   r:   r-   r0   r5   rB   r7   r-   r8   r5   r4   r@   rB   rY   rU   r@   r3   rW   r-   r=   r;   r<   r;   r/   rD   r@   rJ   r:   r9   r,   r>   r-   rU   r1   rH   r>   r-   rD   r?   r6   rD   r5   rJ   rF   rK   r@   r<   rI   rN   r6   rF   r<   rI   rD   rL   rH   rJ   r>   rL   r<   rD   r3   rJ   r<   r9   r5   r>   rR   rH   rA   rU   r3   rN   rE   r5   r4   rL   ro   r-   r9   r2   r6   rn   rT   i  r9   rD   r>   rF   r>   rA   rA   r3   rB   r3   r6   rA   rD   r5   r+   rB   rH   r-   r?   rA   rB   r5   rF   rD   J   rL   rN   r3   r6   r@   rH   r<   r7   r4   rG   r@   rB   r3   r:   rD   r<   rD   rL   rD   rA   r3   rF   rF   rF   r5   rQ   r-   r;   rJ   r?   rJ   r?   r>   rF   r3   r7   r;   rV   r9   r?   rR   rI   rL   rD   r3   rL   r/   rL   r5   rA   rR   rR   r5   r6   rH   r;   rB   rH   rL   rG   r<   r   r7   r;   r-   rR   rK   rH   rG   rF   rD   r9   r6   r-   r@   r7   rh   r,   r0   r4   rR   rJ   r5   r6   rO   r<   r>   r>   r7   rL   r1   r8   rR   rD   rA   r;   ro   rD   r0   r=   rW   rE   r:   rI   rL   rE   r.   r-   r/   rY   ri   r<   rW   r7   r8   r@   r@   rC   r2   rh   r+   rj   rZ   r0   rr   S   i  i4  Zwin_nvidia_rtx3060z2560-1440-1400-24-*-*-*i 
  i  ix  zxPDF Viewer Chrome PDF Viewer Chromium PDF Viewer Microsoft Edge PDF Viewer WebKit built-in PDF ||2560-1440-1400-24-*-*-*zGANGLE (NVIDIA, NVIDIA GeForce RTX 3060 Direct3D11 vs_5_0 ps_5_0, D3D11)i[u(   i6  rW   rt   rT   r:   rO   r<   rE   r0   r0   r/   rC   rC   r;   r:   r@   rR   rE   rA   r=   r5   r1   r;   rJ   r-   r7   r/   r-   r7   r+   rI   r.   rm   r+   r6   rO   r5   r@   r<   r;   r<   r8   rA   r+   rB   r=   rF   r2   rJ   r7   rm   rY   rG   rA   r5   rL   rV   r3   rA   r-   rB   r9   r?   r+   rR   rB   rH   r3   rN   r;   r9   rL   rD   rN   rB   rA   rD   r;   rA   rR   rB   r;   rF   r-   rJ   r<   rG   rD   rm   rR   rH   r0   r;   r:   rD   rj   r5   rI   r,   r3   rO   ?   i  rF   rL   rJ   r9   rJ   rD   r>   rR   rI   rR   rL   rD   rA   r-   r@   rJ   rG   r7   rV   rD   rI   r-   rN   rL   rZ   r6   rH   rR   rL   r+   rG   r;   r-   r:   rK   r+   rI   rR   r4   rL   rR   rL   rD   rL   r>   rR   rN   r9   rN   r-   r*   r7   r<   r>   rV   r>   rV   rA   rN   rR   r-   r5   rU   rI   rV   r<   r9   r6   rA   rR   rD   r8   rD   r-   r>   r<   r3   r-   rL   rN   r<   rJ   rG   r6   rK   r;      r4   r<   r7   r3   rG   rG   rH   rN   rL   rF   r3   r5   r+   r-   rP   r(   r1   r7   r<   rB   r-   rL   rn   rR   rA   rJ   r4   rD   rY   r/   r<   rA   rD   r<   rj   rA   r1   r:   rO   r8   r=   r9   r6   r8   rC   r5   r8   r1   ro   rR   rO   r-   rE   r=   r+   r.   rW   rn   r/   ro   rt   rE   rS   R   i  i4  Zwin_amd_radeonzGoogle Inc. (AMD)zDANGLE (AMD, AMD Radeon(TM) Graphics Direct3D11 vs_5_0 ps_5_0, D3D11)iM%(   i
7  r.   O   ro   r8   rC   r4   r@   r(   r+   rE   rY   r,   rR   r@   r7   r-   r@   r3   r-   r:   r/   r4   rI   r4   r5   rE   r;   r:   r=   rJ   r1   rK   r4   r;   r(   r:   r7   r7   r6   r7   r=   r3   r4   rD   r-   rJ   r.   rL   r<   rK   r8   r9   rI   r:   rJ   rH   rA   r3   rR   rD   rG   rN   r4   r-   rN   rI   rA   rB   r6   r>   rJ   rR   r?   rD   rI   rR   r6   r3   rD   rD   r6   rJ   rR   rL   rL   r9   rB   rK   rD   rI   r+   r4   r5   rR   rP   r:   rH   rn   rA   rM   r*     rJ   rJ   rL   rG   rL   rB   r6   rD   rA   rD   r<   rB   r3   rR   rE   rF   r9   r<   rH   rB   rA   rR   rB   rJ   r)   r>   rI   rD   r<   r4   r9   r6   r=   r5   rF   r4   rA   rD   r+   rJ   r-   rJ   rR   rJ   r6   rD   rB   rG   rB   rR   rv   r<   r7   r9   rH   r9   rH   rI   rB   rD   r=   r3   rG   rH   rH   rL   r>   r>   r3   rD   rR   r=   rR   rR   r6   rL   r5   rR   r<   r?   r7   rF   r9   r>   rF   r6   rV   r;   r7   r<   r5   rU   r9   rV   rB   rJ   rJ   rA   r:   r4   r=   rW   rO   r/   r@   rL   rD   rR   r<   r,   r-   rI   rL   r;   rR   r8   r1   rL   r3   rB   r7   rP   r3   r/   r/   r(   rY   r-   r>   r>   rY   r0   r:   r=   r(   rh   r-   r(   r=   r@   r8   r4   r2   rC   ri   r:   rs   F   r.   H   V   i  i4  Zwin_intel_hd400z1366-768-728-24-*-*-*iV  i   i     zvPDF Viewer Chrome PDF Viewer Chromium PDF Viewer Microsoft Edge PDF Viewer WebKit built-in PDF ||1366-768-728-24-*-*-*z@ANGLE (Intel(R) HD Graphics 400 Direct3D11 vs_5_0 ps_5_0, D3D11))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    )z
amazon.comz	amazon.cazamazon.com.mxc                   @   s  e Zd ZdZg dZdZdZdZdZi dddd	d
d	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	dd	d	d	dZ	dZ
dZ									dKdedededed ed!ed"ed#ed$ed%ed&ed'dfd(d)Zed*d+ Zd'efd,d-Zd'efd.d/Zd0ed'efd1d2Zd'efd3d4Zd'efd5d6Zd'efd7d8ZdLd:d;Zed<ed'efd=d>ZedMdAdBZd'efdCdDZdEedFed'efdGdHZdEed'efdIdJZdS )NFwcimAmazonSxgitarioZECdITeCs)iapl   4.3 l   :k i$4l   yn< rm   rU   el   scriptr   hZbattZperfautotzfp2Zlsubidbrowsercapabilitiesrd   dntre   ttsinputrf   )captchainputpowN location	userAgentreferrerdynamicUrlsinlineHashes
canvasHashcanvasEmailHash
emailValuecustomerNamelsUbidtimezonereturnc                 C   s   || _ || _|| _|pg | _|pg | _|| _|| _|| _|	| _t	t

 d | _|d ur.|n| || _tjr<tj| _n
tt| _| jt_|
rM|
| _d S tjrVtj| _d S |  | _| jt_d S )Ni  )_FwcimAmazonSxgitario__location _FwcimAmazonSxgitario__userAgent_FwcimAmazonSxgitario__referrer"_FwcimAmazonSxgitario__dynamicUrls#_FwcimAmazonSxgitario__inlineHashes!_FwcimAmazonSxgitario__canvasHash&_FwcimAmazonSxgitario__canvasEmailHash!_FwcimAmazonSxgitario__emailValue#_FwcimAmazonSxgitario__customerNameinttime&_FwcimAmazonSxgitario__start_timestamp&_FwcimAmazonSxgitario__detect_timezone_FwcimAmazonSxgitario__timezoner   _session_profile_FwcimAmazonSxgitario__profilerandomchoiceHARDWARE_PROFILES_FwcimAmazonSxgitario__lsUbid_session_lsubid&_FwcimAmazonSxgitario__generate_lsubid)selfr   r   r   r   r   r   r   r   r   r   r    r   8/Users/user/Downloads/amz/amazon/metadataGenSxgitario.py__init__+  s*   




zFwcimAmazonSxgitario.__init__c                 C   s   d| _ d| _dS )zAReset session state (call between accounts to get a new profile).N)r   r   )clsr   r   r   reset_sessionT  s   
z"FwcimAmazonSxgitario.reset_sessionc           	   
   C   s   z9|   }tj|dd}tt|dd@ d}| d| }| || j}| 	|}| j
 d| }d|d	W S  tyR } zd
t|dW  Y d }~S d }~ww )N),:)
separatorsutf-8    08X#r   T)status	metadata1F)r   description)(_FwcimAmazonSxgitario__build_fingerprintjsondumpsformatzlibcrc32encode$_FwcimAmazonSxgitario__xxtea_encrypt#_FwcimAmazonSxgitario__KEY_MATERIAL$_FwcimAmazonSxgitario__base64_encode%_FwcimAmazonSxgitario__KEY_IDENTIFIER	Exceptionstr)	r   fingerprintZjson_strcrcpayloadZ	encryptedZb64mderrorr   r   r   generateMetadataZ  s   
z%FwcimAmazonSxgitario.generateMetadatac                 C   s  | j }|  }tdd | D }tdd | D }tdd}|| }|}g }g }	| D ]}
||
d  |	|
d  q1dd	 || j d  D }d
d	 |	| j d  D }g }| D ]	}
||
d  qbt	|D ]}tdd}tdd}|
| d|  qpt dk r|
d || j d  }g }| D ]	}
||
d  qdd	 |D }td|tdd }|dd	 t	|D  t|t| }tdd | D }|| tdd }| j| }|  }tdtd|ddtdd }|  }|d }|d }|}i d |d!| jd"|d|td#d | D dtd$d | D ||||g d%d&| j| j|t| jt| jd'd(d)tdd*id+d,| |id-d.g g g d/id.d0g iid1d2|d3| jd4d d|d5|d|d6| jd7| jd8| jd9| jd:ddddddddd;d<d<d=d:d<d<d>tg d?d@|dA  d |dB  dC}||dD< ||dE< ||dF< d<ddG|dH< dEdIdJii|dK< g |dL< dM|dN< |S )ONc                 s       | ]}|d  V  qdS )clicksNr   .0fr   r   r   	<genexpr>n      z;FwcimAmazonSxgitario.__build_fingerprint.<locals>.<genexpr>c                 s   r   )
keyPressesNr   r   r   r   r   r   o  r   r      keyPressTimeIntervals	keyCyclesc              	   S   "   g | ]}t d |tdd qS )r   r   maxr   randintr   vr   r   r   
<listcomp>{     " z<FwcimAmazonSxgitario.__build_fingerprint.<locals>.<listcomp>c              	   S   r   r   irU   r   r   r   r   r   r   |  r   mouseClickPositionsi  iX     iD  r   g333333?z0,0mouseCyclesc              	   S   r   r   r   r   r   r   r   r     r   r   c                 S   s   g | ]}t d dqS )rW   ,  )r   r   )r   _r   r   r   r     s    c                 s       | ]	}| d dV  qdS )totalFocusTimer   Ngetr   r   r   r   r         i  i     r8   r   r;   r_   rc   metricsstartinteractionc                 s   r   )cutsr   Nr   r   r   r   r   r     r   c                 s   r   )pastesr   Nr   r   r   r   r   r     r   )r   touchesr   r   copiesr   r   r   r   r   touchCyclesscripts)r   r   elapsedZdynamicUrlCountZinlineHashesCounthistorylengthr   performanceZtimingZ
automationZ
properties)documentwindowZ	navigatorr  )wdZphantomendZtimeZoneZflashVersionZdupedPluginsr   r   r   r   F)Z
textShadowZWebkitTextStrokeZ	boxShadowZborderRadiusZborderImageZopacity	transform
transitionTZ	supported)audioZgeolocationZlocalStoragetouchvideoZ	webWorker)r   r      )cssjsr   rd   re   )Z	webDriverr   rd   r   re   ZtimeToSubmitformrf   )ZisCompatibleZpageHasCaptchatokenmethodpostautherrorsz4.0.0version)r   !_FwcimAmazonSxgitario__build_formsumvaluesr   r   extend(_FwcimAmazonSxgitario__MAX_KEY_INTERVALS%_FwcimAmazonSxgitario__MAX_KEY_CYCLESrangeappend*_FwcimAmazonSxgitario__MAX_CLICK_POSITIONSr   r   $_FwcimAmazonSxgitario__build_metricsminr   #_FwcimAmazonSxgitario__build_canvasr   r   len/_FwcimAmazonSxgitario__build_performance_timingr   r   r   r   r   r   copy)r   pr  Zform_clicksZform_keypressesZextra_clicksZtotal_clicksZtotal_keypressesZall_key_intervalsZall_key_cyclesfieldZglobal_key_intervalsZglobal_key_cyclesZall_click_positionsr   xyZall_mouse_cyclesZcycles_for_extraZinteraction_totalZtotal_focus_timeZtime_to_submitr  r   Zscript_elapsedrf   Zscreen_infoZplugins_strZduped_plugins_strr   r   r   r   Z__build_fingerprintj  s   

$
 !"#$%&'

8z(FwcimAmazonSxgitario.__build_fingerprintend_timestampc                 C   s  | j 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dd }|tdd }|tdd }|td	d }|tdd }||kr|tdd }t||tdd }i d|d|d|dd	dd	d|d|d|d |d!|d"|	d#|
d$|d%|d&|d'|d(|||||d)S )*N	  i  rU   rL   rW   d   r   r   r      rg   r   rH   r.   i  i  rB   rQ   r  r      r;   x   ZnavigationStartZunloadEventStartZunloadEventEndZredirectStartZredirectEndZ
fetchStartZdomainLookupStartZdomainLookupEndZconnectStartZ
connectEndZsecureConnectionStartZrequestStartZresponseStartZresponseEndZ
domLoadingZdomInteractiveZdomContentLoadedEventStart)ZdomContentLoadedEventEndZdomCompleteZloadEventStartZloadEventEnd)r   r   r   r   )r   r)  Z	nav_startZfetch_offsetZfetch_startZ	dns_startZdns_endZconnect_startZconnect_endZsecure_startZrequest_startZresponse_startZresponse_endZdom_loadingZunload_startZ
unload_endZdom_interactiveZdom_content_startZdom_content_endZdom_completeZload_event_startZload_event_endr   r   r   Z__build_performance_timing  s~   	
z/FwcimAmazonSxgitario.__build_performance_timingc           
   
   C   sH  | j }| jd ur| jn|d d }| jd ur| j}n!| jr9d| d| j  }t|d}|dkr8|d8 }nd}t	d	| d| j
 }|d d
 d d  }g }t|D ]:\}}	|dksg|t|d krs||	|dd  qW|	dkr||	|dd  qW|td|	|dd  qW|d  dt| 7  < |||dS )Nrf   r\   zcanvas_email:r   r   l        l        r   zbins:r]   r   i8   r+  r~   r   r   i  )r\   Z	emailHashr]   )r   r   r   r   upperr   r   r   r   Randomr   	enumerater"  r  r   r   r  )
r   r%  Zcanvas_hashZ
email_hashseedZbin_rngZ	base_binsZbinsir   r   r   r   Z__build_canvas  s2   
z#FwcimAmazonSxgitario.__build_canvasc                 C   s|   | j  }i }| D ]0\}}|dv r|||< qt }|dk r%d||< q|dk r.d||< q|dk r7d||< qd||< q|S )	N>   r   r   333333?r   g333333?r   gffffff?r  r   )REAL_METRICS_BASEr$  itemsr   )r   baseZjitteredkeyvaluerr   r   r   Z__build_metrics6  s   




z$FwcimAmazonSxgitario.__build_metricsc           
      C   s^  t dd}t dd}| j||dddd}t dd	|d
< t g d|d< t g d|d< | jrCtt| jdd@ d|d< d|d< d|d< t dd}t dd}| ||dd}| j	rrtt| j	dd@ d|d< d|d< d|d< t dd}| t dd|dd}d|d< d|d< | dt dddd}	d|	d< d|	d< ||||	dS )zBuild form fields matching real register page structure.
        Distributions calibrated against decoded real metadata1 samples.r  r   rU   i8  r-   T)prefilled_editi  ihB  r   )r   r   r   r   )r   r   r   r   r   r   r   checksumFZautocompleteZ	prefilledr      r   r>   r   r<   )emailap_customer_namepasswordap_password_check)
r   r   '_FwcimAmazonSxgitario__build_form_fieldr   r   r   r   r   r   r   )
r   Zemail_clicksZemail_keypressesr@  Zname_clicksZname_keypressesrA  Zpassword_keypressesrB  rC  r   r   r   Z__build_formI  s:     z!FwcimAmazonSxgitario.__build_formFc                 C   s  t td|d | j}t || j}g }|r6t|D ]}	ttddtddtddg}
||
 qn5t|D ]0}	|	dkrR| j	d	d
d}
tdt dt
|
}
n| j	ddd}
tdt dt
|
}
|t
|
 q:g }|rt|D ]}	ttddtddtddg}
||
 qsn5t|D ]0}	|	dkr| j	ddd}
tdt dt
|
}
n| j	ddd}
tdt d	t
|
}
|t
|
 qg }t|D ]1}ttd|d d}td|d }t d k rt|dnt|d}||d!d"|d! qg }t|D ]0}t d#k r|tdd$ qt d%k r)|td&d' q|tdd q|dkrHt|t| tdd }n|dkrXt|tdd( }nd}|d|ddd||||g |||d)S )*Nr   r   r   rQ   r+  i  r-  i     g      @)alphabetar.  rz   i         @r3   i  r/  i  i  r*  r,  g      @   i  Z   rM   r8   rB   ir~   r6  gr   g{Gz?i  g333333?r   rW   i  )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r  r  r  r   r   r   r  *_FwcimAmazonSxgitario__log_logistic_sampler   rounduniformr  )r   r   Z
keypressesr   r   r=  Znum_intervalsZ
num_cyclesZkey_intervalsr5  rawZ
key_cyclesZmouse_positionsr   r'  Zy_rawr(  Zmouse_cyclesZ
focus_timer   r   r   Z__build_form_fieldq  s   





 

z'FwcimAmazonSxgitario.__build_form_fieldurlc                 C   s2   t t dd dD ]\}}|| v r|  S q
dS )z{Extract timezone from Amazon domain in URL.
        Checks longest domains first to avoid amazon.com matching amazon.com.brc                 S   s   t | d  S )Nr   )r"  )r'  r   r   r   <lambda>  s    z8FwcimAmazonSxgitario.__detect_timezone.<locals>.<lambda>)r:  r   )sortedDOMAIN_TIMEZONEr8  )rQ  domainr   r   r   r   Z__detect_timezone  s
   z&FwcimAmazonSxgitario.__detect_timezone   rI  c                 C   s0   t   }tdtd|}| |d|  d|   S )zLog-logistic distribution (validated for keystroke dynamics).
        alpha = scale (median), beta = shape (higher = less variance).
        Source: PMC8606350 'On the shape of timings distributions in keystroke dynamics'g{Gzt?gףp=
?r   )r   r   r   )rF  rG  ur   r   r   Z__log_logistic_sample  s   z*FwcimAmazonSxgitario.__log_logistic_samplec                 C   sV   dt dd }t dd }t dd }tt  }| d| d| d| S )NXrU   c   i@B i -r   )r   r   r   r   )r   Zpart1Zpart2Zpart3Zpart4r   r   r   Z__generate_lsubid  s
   z&FwcimAmazonSxgitario.__generate_lsubiddatar:  c                 C   s  t |dkrdS tt |d }g }t|D ](}d}tdD ]}|d | }|t |k r9|t|| |d > O }q|| qt |}dd|  }	d}
||d  }t|	D ]J}|
| j d@ }
|
d	? d
@ }t|D ]6}||d |  }|d? |d	> A |d
? |d> A  |
|A ||d
@ |A  |A  A }|| | d@ ||< || }qiqVg }|D ]}tdD ]}|t||d ? d@  qqd|S )Nr   r   r~   r   r   rn   r   r   r  r   r?     )	r"  re   ceilr  ordr  "_FwcimAmazonSxgitario__XXTEA_DELTAchrjoin)r   r[  r:  nr   r5  wordjidxroundstotalzr   er%  r(  mxresultr   r   r   Z__xxtea_encrypt  s>   <

z$FwcimAmazonSxgitario.__xxtea_encryptc                 C   s   dd l }||ddS )Nr   zlatin-1r   )base64	b64encoder   decode)r   r[  rl  r   r   r   Z__base64_encode   s   z$FwcimAmazonSxgitario.__base64_encode)	r   NNNNr   r   NN)F)rV  rI  ) __name__
__module____qualname__r   r   r_  r  r  r  r7  r   r   r   listr   r   classmethodr   dictr   r   r#  r!  r  r  rD  staticmethodr   rM  r   r   r   r   r   r   r   r     s    	

)
v5!
(S"r   )
__doc__r   r   r   r   re   hashlibr   rT  r   r   r   r   r   <module>   s    0

-

-

.

-

-

   