a
    ze                     @   s"  g d Z ddlZddlZddlZddlmZ ddlm	Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ zddlmZ W n ey   Y n0 eje zddlm Z  W n ey   Y n0 dd Z!G dd dej"Z#G dd dej$Z%G dd dej&Z'G dd de(Z)G dd de*Z+zddlm+Z+ W n eyV   Y n0 zddlm,Z, W n ey   dd Z,Y n0 dddddd Z-d!d" Z.zdd#lm.Z. W n ey   Y n0 G d$d% d%e*Z/G d&d' d'ej0Z1G d(d) d)ej0Z2G d*d+ d+ejZ3G d,d- d-ej4Z5dS ).)	ChainMapCounterOrderedDictUserDictUserList
UserStringdefaultdictdeque
namedtuple    N)chain)repeat)starmap)	iskeyword)eq)
itemgetter)recursive_repr)proxy)r   )r   c                 C   sR   | t jv r:tt | }dd l}|jdtdd |t | < |S tdtd| d S )Nr
   zUsing or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working   )
stacklevelzmodule z has no attribute )	_collections_abc__all__getattrwarningswarnDeprecationWarningglobalsAttributeError__name__)nameobjr    r    */usr/lib/python3.9/collections/__init__.py__getattr__7   s    


r"   c                   @   s   e Zd Zdd ZdS )_OrderedDictKeysViewc                 c   s   t | jE d H  d S Nreversed_mappingselfr    r    r!   __reversed__M   s    z!_OrderedDictKeysView.__reversed__Nr   
__module____qualname__r*   r    r    r    r!   r#   K   s   r#   c                   @   s   e Zd Zdd ZdS )_OrderedDictItemsViewc                 c   s$   t | jD ]}|| j| fV  q
d S r$   r%   r)   keyr    r    r!   r*   R   s    z"_OrderedDictItemsView.__reversed__Nr+   r    r    r    r!   r.   P   s   r.   c                   @   s   e Zd Zdd ZdS )_OrderedDictValuesViewc                 c   s    t | jD ]}| j| V  q
d S r$   r%   r/   r    r    r!   r*   X   s    z#_OrderedDictValuesView.__reversed__Nr+   r    r    r    r!   r1   V   s   r1   c                   @   s   e Zd ZdZdS )_Link)prevnextr0   __weakref__N)r   r,   r-   	__slots__r    r    r    r!   r2   \   s   r2   c                   @   s   e Zd Zd0ddZejeefddZejfddZdd	 Z	d
d Z
dd Zd1ddZd2ddZdd Zejj ZZdd Zdd Zdd ZejjZe ZefddZd3ddZe d d! Zd"d# Zd$d% Zed4d&d'Z d(d) Z!d*d+ Z"d,d- Z#d.d/ Z$dS )5r   r    c                K   s^   z
| j  W n< tyF   t | _t| j | _ }| |_|_i | _Y n0 | j|fi | d S r$   )	_OrderedDict__rootr   r2   _OrderedDict__hardroot_proxyr3   r4   _OrderedDict__map_OrderedDict__update)r)   otherkwdsrootr    r    r!   __init__n   s    
zOrderedDict.__init__c           	      C   sZ   || vrJ|  | j |< }| j}|j}|||  |_|_|_||_|||_|| || d S r$   )r:   r7   r3   r4   r0   )	r)   r0   valueZdict_setitemr   ZLinklinkr>   lastr    r    r!   __setitem__{   s    
zOrderedDict.__setitem__c                 C   s>   || | | j |}|j}|j}||_||_d |_d |_d S r$   )r:   popr3   r4   )r)   r0   Zdict_delitemrA   	link_prev	link_nextr    r    r!   __delitem__   s    
zOrderedDict.__delitem__c                 c   s(   | j }|j}||ur$|jV  |j}qd S r$   )r7   r4   r0   r)   r>   Zcurrr    r    r!   __iter__   s
    zOrderedDict.__iter__c                 c   s(   | j }|j}||ur$|jV  |j}qd S r$   )r7   r3   r0   rH   r    r    r!   r*      s
    zOrderedDict.__reversed__c                 C   s*   | j }| |_|_| j  t|  d S r$   )r7   r3   r4   r:   cleardict)r)   r>   r    r    r!   rJ      s    
zOrderedDict.clearTc                 C   sj   | st d| j}|r0|j}|j}||_||_n|j}|j}||_||_|j}| j|= t| |}||fS )Nzdictionary is empty)KeyErrorr7   r3   r4   r0   r:   rK   rD   )r)   rB   r>   rA   rE   rF   r0   r@   r    r    r!   popitem   s     zOrderedDict.popitemc           	      C   st   | j | }|j}|j}|j}||_||_| j}|rR|j}||_||_||_||_n|j}||_||_||_||_d S r$   )r:   r3   r4   r7   )	r)   r0   rB   rA   rE   rF   Z	soft_linkr>   firstr    r    r!   move_to_end   s$    
zOrderedDict.move_to_endc                 C   sV   t j}t| d }|| j}||| jd 7 }||| j| 7 }||| j| 7 }|S )N   r   )_sys	getsizeoflen__dict__r:   r8   r7   )r)   Zsizeofnsizer    r    r!   
__sizeof__   s    
zOrderedDict.__sizeof__c                 C   s   t | S r$   )r#   r(   r    r    r!   keys   s    zOrderedDict.keysc                 C   s   t | S r$   )r.   r(   r    r    r!   items   s    zOrderedDict.itemsc                 C   s   t | S r$   )r1   r(   r    r    r!   values   s    zOrderedDict.valuesc                 C   s0   || v r| | }| |= |S || j u r,t||S r$   )_OrderedDict__markerrL   )r)   r0   defaultresultr    r    r!   rD      s    
zOrderedDict.popNc                 C   s   || v r| | S || |< |S r$   r    r)   r0   r\   r    r    r!   
setdefault  s    zOrderedDict.setdefaultc                 C   s*   | sd| j jf S d| j jt|  f S )Nz%s()z%s(%r))	__class__r   listrY   r(   r    r    r!   __repr__  s    zOrderedDict.__repr__c                 C   sD   t |  }t t D ]}||d  q| jd|p4d d t|  fS )Nr    )varscopyr   rD   r`   iterrY   )r)   	inst_dictkr    r    r!   
__reduce__  s    zOrderedDict.__reduce__c                 C   s
   |  | S r$   r`   r(   r    r    r!   rd      s    zOrderedDict.copyc                 C   s   |  }|D ]}|||< q
|S r$   r    )clsiterabler@   r)   r0   r    r    r!   fromkeys$  s    
zOrderedDict.fromkeysc                 C   s2   t |tr&t| |o$ttt| |S t| |S r$   )
isinstancer   rK   __eq__allmap_eqr)   r<   r    r    r!   rn   -  s    
zOrderedDict.__eq__c                 C   s   |  | | S r$   )updaterr   r    r    r!   __ior__6  s    
zOrderedDict.__ior__c                 C   s&   t |tstS | | }|| |S r$   rm   rK   NotImplementedr`   rs   r)   r<   newr    r    r!   __or__:  s
    


zOrderedDict.__or__c                 C   s&   t |tstS | |}||  |S r$   ru   rw   r    r    r!   __ror__A  s
    


zOrderedDict.__ror__)r    )T)T)N)N)%r   r,   r-   r?   rK   rC   r9   r2   rG   rI   r*   rJ   rM   rO   rW   r   MutableMappingrs   r;   rX   rY   rZ   __ne__objectr[   rD   r_   _recursive_reprrb   rh   rd   classmethodrl   rn   rt   ry   rz   r    r    r    r!   r   _   s8   

		

	


	r   )r   )_tuplegetterc                 C   s   t t| |dS )N)doc)property_itemgetter)indexr   r    r    r!   <lambda>W      r   F)renamedefaultsmodulec                   s  t trdd ttttt| } |rt }t	D ]B\}}|
 rrt|sr|dsr||v rd| |< || qH| g D ]D}t|turtd|
 std|t|rtd|qt }D ]F}|dr
|s
td|||v r"td||| qi }|d ur|t|}t|tkr^td	tttttt|}tttjtd
}	dkr|	d7 }	dd
dd D  d tjtttttf\ i d|  d}
d|	 d|	 d}t||
}d|_d|  d|	 d|_|d urB||_tfdd}d|  d|j_fdd}d|  d|_fdd } fd!d"}fd#d$}||j||||fD ]}|  d%|j |_q|  d|	 dd&|||||||d'
}t	D ](\}}td(| }t||||< qt| tf|}|d u rvzt dj!"d)d*}W n t#tfyt   Y n0 |d ur||_$|S )+N, _z*Type names and field names must be stringsz6Type names and field names must be valid identifiers: z0Type names and field names cannot be a keyword: z-Field names cannot start with an underscore: z"Encountered duplicate field name: z(Got more default values than field names, rP   (c                 s   s   | ]}| d V  qdS )z=%rNr    ).0r   r    r    r!   	<genexpr>  r   znamedtuple.<locals>.<genexpr>)namedtuple_)
_tuple_new__builtins__r   zlambda _cls, z: _tuple_new(_cls, (z))__new__zCreate new instance of c                    s2   | |} |kr.t d dt| |S )Nz	Expected z arguments, got )	TypeErrorrS   )rj   rk   r]   )_len
num_fields	tuple_newr    r!   _make  s    
znamedtuple.<locals>._makezMake a new z# object from a sequence or iterablec                   s.   |   |j| }|r*tdt||S )NzGot unexpected field names: )r   rD   
ValueErrorra   )r)   r=   r]   )_mapfield_namesr    r!   _replace  s    znamedtuple.<locals>._replacezReturn a new z2 object replacing specified fields with new valuesc                    s   | j j |   S r$   )r`   r   r(   )repr_fmtr    r!   rb     s    znamedtuple.<locals>.__repr__c                    s    | j | S r$   )_fieldsr(   )_dict_zipr    r!   _asdict  s    znamedtuple.<locals>._asdictc                    s    | S r$   r    r(   )_tupler    r!   __getnewargs__  s    z"namedtuple.<locals>.__getnewargs__.r    )
__doc__r6   r   _field_defaultsr   r   r   rb   r   r   zAlias for field number r   __main__)%rm   strreplacesplitra   rp   rQ   internset	enumerateisidentifier
_iskeyword
startswithaddtyper   r   tuplerS   rK   r&   zipjoinr   evalr   r   __defaults__r   __func__r-   r   	_getframe	f_globalsgetr   r,   )typenamer   r   r   r   seenr   r   field_defaultsarg_list	namespacecoder   r   r   rb   r   r   methodclass_namespacer   r]   r    )	r   r   r   r   r   r   r   r   r   r!   r	   Y  s    










r	   c                 C   s&   | j }|D ]}||dd | |< q
d S Nr
   rP   )r   )mappingrk   Zmapping_getelemr    r    r!   _count_elements  s    r   )r   c                       s   e Zd Zd. fdd	Zdd Zd/ddZdd	 Zed0d
dZd1 fdd	Z	d2ddZ
dd Zdd Z fddZdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Z  ZS )3r   Nc                   s    t    | j|fi | d S r$   )superr?   rs   )r)   rk   r=   ri   r    r!   r?   E  s    
zCounter.__init__c                 C   s   dS Nr
   r    r/   r    r    r!   __missing__S  s    zCounter.__missing__c                 C   s6   |d u rt |  tdddS tj||  tddS )NrP   T)r0   reverser0   )sortedrY   r   _heapqnlargestr)   rU   r    r    r!   most_commonX  s    	zCounter.most_commonc                 C   s   t tt|  S r$   )_chainfrom_iterable_starmap_repeatrY   r(   r    r    r!   elementse  s    zCounter.elementsc                 C   s   t dd S )Nz@Counter.fromkeys() is undefined.  Use Counter(iterable) instead.)NotImplementedError)rj   rk   vr    r    r!   rl   }  s    	zCounter.fromkeysc                   sn   |d ur\t |tjrR| rD| j}| D ]\}}|||d | |< q&q\t | n
t| | |rj| | d S r   )rm   r   Mappingr   rY   r   rs   r   r)   rk   r=   self_getr   countri   r    r!   rs     s    
zCounter.updatec                K   sn   |d ur\| j }t|tjr@| D ]\}}||d| | |< q"n|D ]}||dd | |< qD|rj| | d S r   )r   rm   r   r   rY   subtractr   r    r    r!   r     s    zCounter.subtractc                 C   s
   |  | S r$   ri   r(   r    r    r!   rd     s    zCounter.copyc                 C   s   | j t| ffS r$   )r`   rK   r(   r    r    r!   rh     s    zCounter.__reduce__c                    s   || v rt  | d S r$   )r   rG   )r)   r   ri   r    r!   rG     s    zCounter.__delitem__c                 C   sR   | s| j j dS zt|  }W n ty<   t| }Y n0 | j j d|dS )Nz()r   r   )r`   r   rK   r   r   )r)   dr    r    r!   rb     s    zCounter.__repr__c                 C   sp   t |tstS t }|  D ]$\}}|||  }|dkr|||< q| D ] \}}|| vrJ|dkrJ|||< qJ|S r   rm   r   rv   rY   r)   r<   r]   r   r   newcountr    r    r!   __add__  s    


zCounter.__add__c                 C   st   t |tstS t }|  D ]$\}}|||  }|dkr|||< q| D ]$\}}|| vrJ|dk rJd| ||< qJ|S r   r   r   r    r    r!   __sub__   s    

zCounter.__sub__c                 C   s|   t |tstS t }|  D ]0\}}|| }||k r8|n|}|dkr|||< q| D ] \}}|| vrV|dkrV|||< qV|S r   r   r)   r<   r]   r   r   other_countr   r    r    r!   ry     s    


zCounter.__or__c                 C   sR   t |tstS t }|  D ]0\}}|| }||k r8|n|}|dkr|||< q|S r   r   r   r    r    r!   __and__'  s    

zCounter.__and__c                 C   s,   t  }|  D ]\}}|dkr|||< q|S r   r   rY   r)   r]   r   r   r    r    r!   __pos__8  s
    
zCounter.__pos__c                 C   s0   t  }|  D ]\}}|dk rd| ||< q|S r   r   r   r    r    r!   __neg__@  s
    zCounter.__neg__c                 C   s&   dd |   D }|D ]
}| |= q| S )Nc                 S   s   g | ]\}}|d ks|qS )r
   r    )r   r   r   r    r    r!   
<listcomp>M  r   z*Counter._keep_positive.<locals>.<listcomp>)rY   )r)   nonpositiver   r    r    r!   _keep_positiveK  s    zCounter._keep_positivec                 C   s*   |  D ]\}}| |  |7  < q|  S r$   rY   r   r)   r<   r   r   r    r    r!   __iadd__R  s    	zCounter.__iadd__c                 C   s*   |  D ]\}}| |  |8  < q|  S r$   r   r   r    r    r!   __isub___  s    	zCounter.__isub__c                 C   s2   |  D ] \}}| | }||kr|| |< q|  S r$   r   )r)   r<   r   r   r   r    r    r!   rt   l  s
    	
zCounter.__ior__c                 C   s2   |   D ] \}}|| }||k r|| |< q|  S r$   r   )r)   r<   r   r   r   r    r    r!   __iand__{  s
    	
zCounter.__iand__)N)N)N)N)N)r   r,   r-   r?   r   r   r   r   rl   rs   r   rd   rh   rG   rb   r   r   ry   r   r   r   r   r   r   rt   r   __classcell__r    r    ri   r!   r     s.   3
"
r   c                   @   s   e Zd Zdd Zdd Zdd Zd,dd	Zd
d Zdd Zdd Z	dd Z
e dd Zedd Zdd ZeZd-ddZedd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ ZdS ).r   c                 G   s   t |pi g| _d S r$   )ra   maps)r)   r   r    r    r!   r?     s    zChainMap.__init__c                 C   s   t |d S r$   )rL   r/   r    r    r!   r     s    zChainMap.__missing__c              	   C   s8   | j D ]&}z|| W   S  ty*   Y q0 q| |S r$   )r   rL   r   )r)   r0   r   r    r    r!   __getitem__  s    
zChainMap.__getitem__Nc                 C   s   || v r| | S |S r$   r    r^   r    r    r!   r     s    zChainMap.getc                 C   s   t t j| j S r$   )rS   r   unionr   r(   r    r    r!   __len__  s    zChainMap.__len__c                 C   s,   i }t | jD ]}|t| qt|S r$   )r&   r   rs   rK   rl   re   )r)   r   r   r    r    r!   rI     s    zChainMap.__iter__c                    s   t  fdd| jD S )Nc                 3   s   | ]} |v V  qd S r$   r    )r   mr   r    r!   r     r   z(ChainMap.__contains__.<locals>.<genexpr>anyr   r/   r    r   r!   __contains__  s    zChainMap.__contains__c                 C   s
   t | jS r$   r   r(   r    r    r!   __bool__  s    zChainMap.__bool__c                 C   s"   | j j ddtt| j dS )Nr   r   r   )r`   r   r   rp   reprr   r(   r    r    r!   rb     s    zChainMap.__repr__c                 G   s   | t j|g|R  S r$   )rK   rl   )rj   rk   argsr    r    r!   rl     s    zChainMap.fromkeysc                 C   s&   | j | jd  g| jdd  R  S r   )r`   r   rd   r(   r    r    r!   rd     s    zChainMap.copyc                 C   s    |d u ri }| j |g| jR  S r$   r`   r   )r)   r   r    r    r!   	new_child  s    zChainMap.new_childc                 C   s   | j | jdd   S )NrP   r  r(   r    r    r!   parents  s    zChainMap.parentsc                 C   s   || j d |< d S r   )r   )r)   r0   r@   r    r    r!   rC     s    zChainMap.__setitem__c                 C   s6   z| j d |= W n  ty0   td|Y n0 d S Nr
   z$Key not found in the first mapping: )r   rL   r/   r    r    r!   rG     s    zChainMap.__delitem__c                 C   s0   z| j d  W S  ty*   tdY n0 d S )Nr
   z#No keys found in the first mapping.)r   rM   rL   r(   r    r    r!   rM     s    zChainMap.popitemc                 G   s@   z| j d j|g|R  W S  ty:   td|Y n0 d S r  )r   rD   rL   )r)   r0   r   r    r    r!   rD     s    zChainMap.popc                 C   s   | j d   d S r   )r   rJ   r(   r    r    r!   rJ     s    zChainMap.clearc                 C   s   | j d | | S r   )r   rs   rr   r    r    r!   rt     s    zChainMap.__ior__c                 C   s,   t |tjstS |  }|jd | |S r   )rm   r   r   rv   rd   r   rs   )r)   r<   r   r    r    r!   ry     s
    zChainMap.__or__c                 C   s<   t |tjstS t|}t| jD ]}|| q"| |S r$   )	rm   r   r   rv   rK   r&   r   rs   r`   )r)   r<   r   childr    r    r!   rz     s    zChainMap.__ror__)N)N)r   r,   r-   r?   r   r   r   r   rI   r   r   r~   rb   r   rl   rd   __copy__r  r   r  rC   rG   rM   rD   rJ   rt   ry   rz   r    r    r    r!   r     s2   




r   c                   @   s   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZedddZdS ) r   Nc                K   s*   i | _ |d ur| | |r&| | d S r$   )datars   )r)   rK   kwargsr    r    r!   r?     s
    
zUserDict.__init__c                 C   s
   t | jS r$   rS   r  r(   r    r    r!   r     s    zUserDict.__len__c                 C   s:   || j v r| j | S t| jdr.| j| |S t|d S )Nr   )r  hasattrr`   r   rL   r/   r    r    r!   r     s
    

zUserDict.__getitem__c                 C   s   || j |< d S r$   r  )r)   r0   itemr    r    r!   rC   $  s    zUserDict.__setitem__c                 C   s   | j |= d S r$   r  r/   r    r    r!   rG   '  s    zUserDict.__delitem__c                 C   s
   t | jS r$   )re   r  r(   r    r    r!   rI   *  s    zUserDict.__iter__c                 C   s
   || j v S r$   r  r/   r    r    r!   r   .  s    zUserDict.__contains__c                 C   s
   t | jS r$   r   r  r(   r    r    r!   rb   2  s    zUserDict.__repr__c                 C   s:   t |tr| | j|jB S t |tr6| | j|B S tS r$   rm   r   r`   r  rK   rv   rr   r    r    r!   ry   5  s
    

zUserDict.__or__c                 C   s:   t |tr| |j| jB S t |tr6| || jB S tS r$   r  rr   r    r    r!   rz   <  s
    

zUserDict.__ror__c                 C   s.   t |tr|  j|jO  _n|  j|O  _| S r$   )rm   r   r  rr   r    r    r!   rt   C  s    
zUserDict.__ior__c                 C   s4   | j | j }|j| j | jd  |jd< |S Nr  )r`   r   rT   rs   rd   r)   instr    r    r!   r  J  s    zUserDict.__copy__c                 C   sX   | j tu rt| j S dd l}| j}zi | _|| }W || _n|| _0 ||  |S r   )r`   r   r  rd   rs   )r)   rd   r  cr    r    r!   rd   Q  s    

zUserDict.copyc                 C   s   |  }|D ]}|||< q
|S r$   r    )rj   rk   r@   r   r0   r    r    r!   rl   ^  s    
zUserDict.fromkeys)N)N)r   r,   r-   r?   r   r   rC   rG   rI   r   rb   ry   rz   rt   r  rd   r   rl   r    r    r    r!   r     s   
r   c                   @   s  e Zd Zd?ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# ZeZd$d% Zd&d' Zd(d) Zd*d+ Zd@d-d.Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!dS )Ar   Nc                 C   sb   g | _ |d ur^t|t| j kr0|| j d d < n.t|trT|j d d  | j d d < n
t|| _ d S r$   )r  r   rm   r   ra   )r)   initlistr    r    r!   r?   m  s    
zUserList.__init__c                 C   s
   t | jS r$   r  r(   r    r    r!   rb   x  s    zUserList.__repr__c                 C   s   | j | |k S r$   r  _UserList__castrr   r    r    r!   __lt__{  s    zUserList.__lt__c                 C   s   | j | |kS r$   r  rr   r    r    r!   __le__~  s    zUserList.__le__c                 C   s   | j | |kS r$   r  rr   r    r    r!   rn     s    zUserList.__eq__c                 C   s   | j | |kS r$   r  rr   r    r    r!   __gt__  s    zUserList.__gt__c                 C   s   | j | |kS r$   r  rr   r    r    r!   __ge__  s    zUserList.__ge__c                 C   s   t |tr|jS |S r$   )rm   r   r  rr   r    r    r!   __cast  s    zUserList.__castc                 C   s
   || j v S r$   r  r)   r  r    r    r!   r     s    zUserList.__contains__c                 C   s
   t | jS r$   r	  r(   r    r    r!   r     s    zUserList.__len__c                 C   s(   t |tr| | j| S | j| S d S r$   )rm   slicer`   r  r)   ir    r    r!   r     s    
zUserList.__getitem__c                 C   s   || j |< d S r$   r  r)   r  r  r    r    r!   rC     s    zUserList.__setitem__c                 C   s   | j |= d S r$   r  r  r    r    r!   rG     s    zUserList.__delitem__c                 C   sP   t |tr| | j|j S t |t| jr<| | j| S | | jt| S r$   rm   r   r`   r  r   ra   rr   r    r    r!   r     s
    
zUserList.__add__c                 C   sP   t |tr| |j| j S t |t| jr<| || j S | t|| j S r$   r   rr   r    r    r!   __radd__  s
    
zUserList.__radd__c                 C   sR   t |tr|  j|j7  _n2t |t| jr<|  j|7  _n|  jt|7  _| S r$   )rm   r   r  r   ra   rr   r    r    r!   r     s    
zUserList.__iadd__c                 C   s   |  | j| S r$   r`   r  r   r    r    r!   __mul__  s    zUserList.__mul__c                 C   s   |  j |9  _ | S r$   r  r   r    r    r!   __imul__  s    zUserList.__imul__c                 C   s8   | j | j }|j| j | jd d d  |jd< |S r  )r`   r   rT   rs   r  r    r    r!   r    s    zUserList.__copy__c                 C   s   | j | d S r$   )r  appendr  r    r    r!   r%    s    zUserList.appendc                 C   s   | j || d S r$   )r  insertr  r    r    r!   r&    s    zUserList.insertc                 C   s   | j |S r$   )r  rD   r  r    r    r!   rD     s    zUserList.popc                 C   s   | j | d S r$   )r  remover  r    r    r!   r(    s    zUserList.removec                 C   s   | j   d S r$   )r  rJ   r(   r    r    r!   rJ     s    zUserList.clearc                 C   s
   |  | S r$   ri   r(   r    r    r!   rd     s    zUserList.copyc                 C   s   | j |S r$   )r  r   r  r    r    r!   r     s    zUserList.countc                 G   s   | j j|g|R  S r$   r  r   )r)   r  r   r    r    r!   r     s    zUserList.indexc                 C   s   | j   d S r$   )r  r   r(   r    r    r!   r     s    zUserList.reversec                O   s   | j j|i | d S r$   )r  sortr)   r   r=   r    r    r!   r*    s    zUserList.sortc                 C   s*   t |tr| j|j n| j| d S r$   )rm   r   r  extendrr   r    r    r!   r,    s    
zUserList.extend)N)r'  )"r   r,   r-   r?   rb   r  r  rn   r  r  r  r   r   r   rC   rG   r   r!  r   r#  __rmul__r$  r  r%  r&  rD   r(  rJ   rd   r   r   r   r*  r,  r    r    r    r!   r   j  s>   
	
r   c                   @   sx  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& ZeZd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1ejfd2d3Zd4d5 Zd6d7 Z dd:d;Z!d1ejfd<d=Z"dd?d@Z#d1ejfdAdBZ$dCdD Z%dEdF Z&d1ejfdGdHZ'dIdJ Z(dKdL Z)dMdN Z*dOdP Z+dQdR Z,dSdT Z-dUdV Z.dWdX Z/dYdZ Z0d[d\ Z1d]d^ Z2d_d` Z3dadb Z4dcdd Z5dedf Z6ddhdiZ7e8j9Z9djdk Z:ddmdnZ;d1ejfdodpZ<d1ejfdqdrZ=dsdt Z>dudv Z?ddwdxZ@ddydzZAdd{d|ZBdd~dZCd1ejfddZDdddZEdd ZFdd ZGdd ZHdd ZIdd ZJdgS )r   c                 C   s<   t |tr|| _n&t |tr.|jd d  | _n
t|| _d S r$   )rm   r   r  r   r)   seqr    r    r!   r?     s
    

zUserString.__init__c                 C   s
   t | jS r$   )r   r  r(   r    r    r!   __str__  s    zUserString.__str__c                 C   s
   t | jS r$   r  r(   r    r    r!   rb     s    zUserString.__repr__c                 C   s
   t | jS r$   )intr  r(   r    r    r!   __int__  s    zUserString.__int__c                 C   s
   t | jS r$   )floatr  r(   r    r    r!   	__float__  s    zUserString.__float__c                 C   s
   t | jS r$   )complexr  r(   r    r    r!   __complex__  s    zUserString.__complex__c                 C   s
   t | jS r$   )hashr  r(   r    r    r!   __hash__  s    zUserString.__hash__c                 C   s   | j d d  fS r$   r  r(   r    r    r!   r     s    zUserString.__getnewargs__c                 C   s    t |tr| j|jkS | j|kS r$   rm   r   r  r)   stringr    r    r!   rn     s    
zUserString.__eq__c                 C   s    t |tr| j|jk S | j|k S r$   r9  r:  r    r    r!   r    s    
zUserString.__lt__c                 C   s    t |tr| j|jkS | j|kS r$   r9  r:  r    r    r!   r    s    
zUserString.__le__c                 C   s    t |tr| j|jkS | j|kS r$   r9  r:  r    r    r!   r    s    
zUserString.__gt__c                 C   s    t |tr| j|jkS | j|kS r$   r9  r:  r    r    r!   r  "  s    
zUserString.__ge__c                 C   s   t |tr|j}|| jv S r$   r9  )r)   charr    r    r!   r   '  s    
zUserString.__contains__c                 C   s
   t | jS r$   r	  r(   r    r    r!   r   ,  s    zUserString.__len__c                 C   s   |  | j| S r$   r"  )r)   r   r    r    r!   r   /  s    zUserString.__getitem__c                 C   sJ   t |tr| | j|j S t |tr6| | j| S | | jt| S r$   )rm   r   r`   r  r   rr   r    r    r!   r   2  s
    

zUserString.__add__c                 C   s.   t |tr| || j S | t|| j S r$   )rm   r   r`   r  rr   r    r    r!   r!  9  s    
zUserString.__radd__c                 C   s   |  | j| S r$   r"  r   r    r    r!   r#  >  s    zUserString.__mul__c                 C   s   |  | j| S r$   r"  r)   r   r    r    r!   __mod__C  s    zUserString.__mod__c                 C   s   |  t||  S r$   )r`   r   )r)   templater    r    r!   __rmod__F  s    zUserString.__rmod__c                 C   s   |  | j S r$   )r`   r  
capitalizer(   r    r    r!   rA  J  s    zUserString.capitalizec                 C   s   |  | j S r$   )r`   r  casefoldr(   r    r    r!   rB  M  s    zUserString.casefoldc                 G   s   |  | jj|g|R  S r$   )r`   r  centerr)   widthr   r    r    r!   rC  P  s    zUserString.centerr
   c                 C   s    t |tr|j}| j|||S r$   )rm   r   r  r   r)   substartendr    r    r!   r   S  s    
zUserString.countc                C   s"   t |tr|j}| | j|S r$   )rm   r   r  r`   removeprefix)r)   prefixr    r    r!   rJ  X  s    
zUserString.removeprefixc                C   s"   t |tr|j}| | j|S r$   )rm   r   r  r`   removesuffix)r)   suffixr    r    r!   rL  ]  s    
zUserString.removesuffixutf-8strictc                 C   s.   |d u rdn|}|d u rdn|}| j ||S )NrN  rO  )r  encode)r)   encodingerrorsr    r    r!   rP  b  s    zUserString.encodec                 C   s   | j |||S r$   )r  endswith)r)   rM  rH  rI  r    r    r!   rS  g  s    zUserString.endswith   c                 C   s   |  | j|S r$   )r`   r  
expandtabs)r)   tabsizer    r    r!   rU  j  s    zUserString.expandtabsc                 C   s    t |tr|j}| j|||S r$   )rm   r   r  findrF  r    r    r!   rW  m  s    
zUserString.findc                O   s   | j j|i |S r$   )r  formatr+  r    r    r!   rX  r  s    zUserString.formatc                 C   s   | j |S r$   )r  
format_map)r)   r   r    r    r!   rY  u  s    zUserString.format_mapc                 C   s   | j |||S r$   r)  rF  r    r    r!   r   x  s    zUserString.indexc                 C   s
   | j  S r$   )r  isalphar(   r    r    r!   rZ  {  s    zUserString.isalphac                 C   s
   | j  S r$   )r  isalnumr(   r    r    r!   r[  ~  s    zUserString.isalnumc                 C   s
   | j  S r$   )r  isasciir(   r    r    r!   r\    s    zUserString.isasciic                 C   s
   | j  S r$   )r  	isdecimalr(   r    r    r!   r]    s    zUserString.isdecimalc                 C   s
   | j  S r$   )r  isdigitr(   r    r    r!   r^    s    zUserString.isdigitc                 C   s
   | j  S r$   )r  r   r(   r    r    r!   r     s    zUserString.isidentifierc                 C   s
   | j  S r$   )r  islowerr(   r    r    r!   r_    s    zUserString.islowerc                 C   s
   | j  S r$   )r  	isnumericr(   r    r    r!   r`    s    zUserString.isnumericc                 C   s
   | j  S r$   )r  isprintabler(   r    r    r!   ra    s    zUserString.isprintablec                 C   s
   | j  S r$   )r  isspacer(   r    r    r!   rb    s    zUserString.isspacec                 C   s
   | j  S r$   )r  istitler(   r    r    r!   rc    s    zUserString.istitlec                 C   s
   | j  S r$   )r  isupperr(   r    r    r!   rd    s    zUserString.isupperc                 C   s   | j |S r$   )r  r   r.  r    r    r!   r     s    zUserString.joinc                 G   s   |  | jj|g|R  S r$   )r`   r  ljustrD  r    r    r!   re    s    zUserString.ljustc                 C   s   |  | j S r$   )r`   r  lowerr(   r    r    r!   rf    s    zUserString.lowerNc                 C   s   |  | j|S r$   )r`   r  lstripr)   charsr    r    r!   rg    s    zUserString.lstripc                 C   s   | j |S r$   )r  	partitionr)   sepr    r    r!   rj    s    zUserString.partitionr'  c                 C   s6   t |tr|j}t |tr |j}| | j|||S r$   )rm   r   r  r`   r   )r)   oldrx   maxsplitr    r    r!   r     s
    

zUserString.replacec                 C   s    t |tr|j}| j|||S r$   )rm   r   r  rfindrF  r    r    r!   ro    s    
zUserString.rfindc                 C   s   | j |||S r$   )r  rindexrF  r    r    r!   rp    s    zUserString.rindexc                 G   s   |  | jj|g|R  S r$   )r`   r  rjustrD  r    r    r!   rq    s    zUserString.rjustc                 C   s   | j |S r$   )r  
rpartitionrk  r    r    r!   rr    s    zUserString.rpartitionc                 C   s   |  | j|S r$   )r`   r  rstriprh  r    r    r!   rs    s    zUserString.rstripc                 C   s   | j ||S r$   )r  r   r)   rl  rn  r    r    r!   r     s    zUserString.splitc                 C   s   | j ||S r$   )r  rsplitrt  r    r    r!   ru    s    zUserString.rsplitFc                 C   s   | j |S r$   )r  
splitlines)r)   keependsr    r    r!   rv    s    zUserString.splitlinesc                 C   s   | j |||S r$   )r  r   )r)   rK  rH  rI  r    r    r!   r     s    zUserString.startswithc                 C   s   |  | j|S r$   )r`   r  striprh  r    r    r!   rx    s    zUserString.stripc                 C   s   |  | j S r$   )r`   r  swapcaser(   r    r    r!   ry    s    zUserString.swapcasec                 C   s   |  | j S r$   )r`   r  titler(   r    r    r!   rz    s    zUserString.titlec                 G   s   |  | jj| S r$   )r`   r  	translater=  r    r    r!   r{    s    zUserString.translatec                 C   s   |  | j S r$   )r`   r  upperr(   r    r    r!   r|    s    zUserString.upperc                 C   s   |  | j|S r$   )r`   r  zfill)r)   rE  r    r    r!   r}    s    zUserString.zfill)rN  rO  )rT  )N)r'  )N)Nr'  )Nr'  )F)N)Kr   r,   r-   r?   r0  rb   r2  r4  r6  r8  r   rn   r  r  r  r  r   r   r   r   r!  r#  r-  r>  r@  rA  rB  rC  rQ   maxsizer   rJ  rL  rP  rS  rU  rW  rX  rY  r   rZ  r[  r\  r]  r^  r   r_  r`  ra  rb  rc  rd  r   re  rf  rg  r   	maketransrj  r   ro  rp  rq  rr  rs  r   ru  rv  r   rx  ry  rz  r{  r|  r}  r    r    r    r!   r     s   








r   )6r   r   heapqr   sysrQ   	itertoolsr   r   r   r   r   r   keywordr   r   operatorr   rq   r   r   reprlibr   r~   _weakrefr   r9   _collectionsr   ImportErrorMutableSequenceregisterr   r"   KeysViewr#   	ItemsViewr.   
ValuesViewr1   r}   r2   rK   r   r   r	   r   r   r{   r   r   r   Sequencer   r    r    r    r!   <module>   sh    k /     Z 