<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
a
    XC?h4                     @   s   d dl Z d dlZd dlZd dlZg dZdZdZdZejZ	e
ZdZdd ZG d	d
 d
Zdde	edfddZdde	eedfddZdddddZedkree  dS )    N)Timertimeitrepeatdefault_timerz<timeit-src>i@B    z
def inner(_it, _timer{init}):
    {setup}
    _t0 = _timer()
    for _i in _it:
        {stmt}
    _t1 = _timer()
    return _t1 - _t0
c                 C   s   |  ddd|  S )N
 )replace)srcindent r   +/opt/alt/python39/lib64/python3.9/timeit.pyreindentO   s    r   c                   @   sL   e Zd ZddedfddZdddZefddZeefd	d
Z	dddZ
dS )r   passNc                 C   s   || _ i }|d u rt n|}d}t|trJt|td |d }t|d}n*t|rl||d< |d7 }d}d}ntdt|trt|| td t|d	}n&t|r||d
< |d7 }d}ntdt	j
|||d}	|	| _t|	td}
t|
|| |d | _d S )N execr      _setupz, _setup=_setupz_setup()z&setup is neither a string nor callable   Z_stmtz, _stmt=_stmtz_stmt()z%stmt is neither a string nor callable)stmtsetupinitinner)timer_globals
isinstancestrcompiledummy_src_namer   callable
ValueErrortemplateformatr
   r   r   )selfr   r   r   globalsZlocal_nsZ	global_nsr   Z
stmtprefixr
   coder   r   r   __init__e   s6    

zTimer.__init__c                 C   sJ   dd l }dd l}| jd ur:t| jd | jdtf|jt< |j|d d S )Nr   r   file)	linecache	tracebackr
   lensplitr   cache	print_exc)r#   r(   r)   r*   r   r   r   r.      s    


zTimer.print_excc                 C   sN   t d |}t }t  z| || j}W |rJt  n|rHt  0 |S N)	itertoolsr   gcZ	isenabledZdisabler   r   Zenable)r#   numberitZgcoldZtimingr   r   r   r      s    


zTimer.timeitc                 C   s*   g }t |D ]}| |}|| q|S r/   )ranger   append)r#   r   r2   ritr   r   r   r      s
    
zTimer.repeatc                 C   sP   d}dD ]8}|| }|  |}|r,||| |dkr||f  S q|d9 }qd S )N   )r9      r   g?
   )r   )r#   callbackr7   jr2   
time_takenr   r   r   	autorange   s    


zTimer.autorange)N)N)__name__
__module____qualname__r   r&   r.   default_numberr   default_repeatr   r?   r   r   r   r   r   S   s   
#
r   r   c                 C   s   t | ||||S r/   )r   r   )r   r   r   r2   r$   r   r   r   r      s    r   c                 C   s   t | |||||S r/   )r   r   )r   r   r   r   r2   r$   r   r   r   r      s    r   )_wrap_timerc             
      s  | d u rt jdd  } dd l}z|| dg d\}} W n8 |jyp } zt| td W Y d }~dS d }~0 0 t}d| pd}d g }t}d}	d d	d
dddd|D ]\}
}|
dv rt| |
dv r|	| |
dv r|v r|ntdt j
d  dS |
dv r$t|}|dkr$d}|
dv r4tj}|
dv rT|	rLd7 |	d7 }	|
dv rttdd  dS qd|p~d}dd l}t jd|j |d ur||}t|||} dkrd }|	rևfdd}z||\ }W n   |  Y dS 0 |	rt  z|| }W n   |  Y dS 0 fdd}|	rhtddt||  t   fd d!|D }t|}td"  dkrd#nd$|||f  t|}t|}||d% krdd l}|d&||||f td$d d S )'Nr9   r   zn:u:s:r:tcpvh)	znumber=zsetup=zrepeat=timeZclockZprocessverbosezunit=helpz#use -h/--help for command line helpr:   r   r   g&.>gư>gMbP?g      ?)ZnsecZusecZmsecZsec   )z-nz--number)z-sz--setup)z-uz--unitz:Unrecognized unit. Please select nsec, usec, msec, or sec.r'   )z-rz--repeat)z-pz	--process)z-vz	--verbose)z-hz--helpr   )endc                    s.   d}| dk}t |j| |rdnd| d d S )Nz%{num} loop{s} -> {secs:.{prec}g} secsr9   sr   )ZnumrK   ZsecsZprec)printr"   )r2   r>   msgZplural)	precisionr   r   r<   ?  s
    zmain.<locals>.callbackc                    s`   }|d ur| }n8dd   D }|jdd |D ]\}}| |kr8 qNq8d | | |f S )Nc                 S   s   g | ]\}}||fqS r   r   ).0unitscaler   r   r   
<listcomp>Y      z-main.<locals>.format_time.<locals>.<listcomp>T)reversez%.*g %s)itemssort)dtrP   rQ   Zscales)rN   	time_unitunitsr   r   format_timeS  s    
zmain.<locals>.format_timezraw times: %sz, c                    s   g | ]}|  qS r   r   )rO   rW   )r2   r   r   rR   d  rS   zmain.<locals>.<listcomp>z"%d loop%s, best of %d: %s per looprK   r   r   ztThe test results are likely unreliable. The worst time (%s) was more than four times slower than the best time (%s).)sysargvgetopterrorrL   r   joinrD   intr5   stderrrF   process_time__doc__ospathinsertcurdirr   r?   r.   r   mapminmaxwarningswarn_explicitUserWarning)argsrE   r]   Zoptserrr   r   r   r   rG   oard   r8   r<   _Zraw_timingsrZ   ZtimingsZbestZworstrk   r   )r2   rN   rX   rY   r   main   s    







rs   __main__)N)r1   r[   rF   r0   __all__r   rC   rD   perf_counterr   r$   r   r!   r   r   r   r   rs   r@   exitr   r   r   r   <module>4   s.   
 

 