B
    18\              ,   @   s  d dl Z d dlZyd dlT W n. ek
rJ Z zede W ddZ[X Y nX 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(d)d*d+d,d-d.d/g,Zd0Zd1 ZZ	d2 Z
Zd3Zd4Zejd5kre	 ZZeZne ZZeZe	ZeZeZeZG d6d deZG d7d dZG d8d deZG d9d: d:eZG d;d deZG d<d= d=eZG d>d deZG d?d deZG d@d dZ G dAd dZ!d[dEdZ"d\dFdZ#dGd Z$dHd Z%dId  Z&dJd! Z'dKd" Z(dLd# Z)d]dMd&Z*d^dNd'Z+dOdP Z,dQdR Z-y4e.dCZ/e.dSZ0e.dTZ1e.dUZ2e.dVZ3e.dWZ4W n. e5k
r\   dZ/dZ0dZ1dZ2dZ3dZ4Y nX d Z6e6rpd dl7Z7e8dXkre#ej9dYdZe_9e#ej:dZdYe_:dS )_    N)*z%Failed to load the builtin codecs: %sregisterlookupopenEncodedFileBOMBOM_BEBOM_LEBOM32_BEBOM32_LEBOM64_BEBOM64_LEBOM_UTF8	BOM_UTF16BOM_UTF16_LEBOM_UTF16_BE	BOM_UTF32BOM_UTF32_LEBOM_UTF32_BE	CodecInfoCodecIncrementalEncoderIncrementalDecoderStreamReaderStreamWriterStreamReaderWriterStreamRecoder
getencoder
getdecodergetincrementalencodergetincrementaldecoder	getreader	getwriterencodedecode
iterencode
iterdecodestrict_errorsignore_errorsreplace_errorsxmlcharrefreplace_errorsbackslashreplace_errorsnamereplace_errorsZregister_errorlookup_errors   ﻿s   s   s     s     littlec               @   s(   e Zd ZdZdddddZdd ZdS )	r   TN)_is_text_encodingc      
      C   sP   t | ||||f}	||	_||	_||	_||	_||	_||	_||	_|d k	rL||	_	|	S )N)
tuple__new__namer#   r$   incrementalencoderincrementaldecoderstreamwriterstreamreaderr/   )
clsr#   r$   r6   r5   r3   r4   r2   r/   self r9   J/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/codecs.pyr1   ^   s    zCodecInfo.__new__c             C   s   d| j j| j j| jt| f S )Nz%<%s.%s object for encoding %s at %#x>)	__class__
__module____qualname__r2   id)r8   r9   r9   r:   __repr__m   s    zCodecInfo.__repr__)NNNNN)__name__r<   r=   r/   r1   r?   r9   r9   r9   r:   r   S   s
   	 c               @   s    e Zd ZdddZdddZdS )	r   strictc             C   s   t d S )N)NotImplementedError)r8   inputerrorsr9   r9   r:   r#      s    zCodec.encodec             C   s   t d S )N)rB   )r8   rC   rD   r9   r9   r:   r$      s    zCodec.decodeN)rA   )rA   )r@   r<   r=   r#   r$   r9   r9   r9   r:   r   r   s   
c               @   s8   e Zd ZdddZdddZdd Zd	d
 Zdd ZdS )r   rA   c             C   s   || _ d| _d S )N )rD   buffer)r8   rD   r9   r9   r:   __init__   s    zIncrementalEncoder.__init__Fc             C   s   t d S )N)rB   )r8   rC   finalr9   r9   r:   r#      s    zIncrementalEncoder.encodec             C   s   d S )Nr9   )r8   r9   r9   r:   reset   s    zIncrementalEncoder.resetc             C   s   dS )Nr   r9   )r8   r9   r9   r:   getstate   s    zIncrementalEncoder.getstatec             C   s   d S )Nr9   )r8   stater9   r9   r:   setstate   s    zIncrementalEncoder.setstateN)rA   )F)r@   r<   r=   rG   r#   rI   rJ   rL   r9   r9   r9   r:   r      s
   

c               @   s@   e Zd ZdddZdd ZdddZd	d
 Zdd Zdd ZdS )BufferedIncrementalEncoderrA   c             C   s   t | | d| _d S )NrE   )r   rG   rF   )r8   rD   r9   r9   r:   rG      s    z#BufferedIncrementalEncoder.__init__c             C   s   t d S )N)rB   )r8   rC   rD   rH   r9   r9   r:   _buffer_encode   s    z)BufferedIncrementalEncoder._buffer_encodeFc             C   s0   | j | }| || j|\}}||d  | _ |S )N)rF   rN   rD   )r8   rC   rH   dataresultconsumedr9   r9   r:   r#      s    
z!BufferedIncrementalEncoder.encodec             C   s   t |  d| _d S )NrE   )r   rI   rF   )r8   r9   r9   r:   rI      s    
z BufferedIncrementalEncoder.resetc             C   s
   | j pdS )Nr   )rF   )r8   r9   r9   r:   rJ      s    z#BufferedIncrementalEncoder.getstatec             C   s   |pd| _ d S )NrE   )rF   )r8   rK   r9   r9   r:   rL      s    z#BufferedIncrementalEncoder.setstateN)rA   )F)	r@   r<   r=   rG   rN   r#   rI   rJ   rL   r9   r9   r9   r:   rM      s   

rM   c               @   s8   e Zd ZdddZdddZdd Zd	d
 Zdd ZdS )r   rA   c             C   s
   || _ d S )N)rD   )r8   rD   r9   r9   r:   rG     s    zIncrementalDecoder.__init__Fc             C   s   t d S )N)rB   )r8   rC   rH   r9   r9   r:   r$     s    zIncrementalDecoder.decodec             C   s   d S )Nr9   )r8   r9   r9   r:   rI     s    zIncrementalDecoder.resetc             C   s   dS )N)    r   r9   )r8   r9   r9   r:   rJ     s    zIncrementalDecoder.getstatec             C   s   d S )Nr9   )r8   rK   r9   r9   r:   rL   '  s    zIncrementalDecoder.setstateN)rA   )F)r@   r<   r=   rG   r$   rI   rJ   rL   r9   r9   r9   r:   r      s
   


c               @   s@   e Zd ZdddZdd ZdddZd	d
 Zdd Zdd ZdS )BufferedIncrementalDecoderrA   c             C   s   t | | d| _d S )NrR   )r   rG   rF   )r8   rD   r9   r9   r:   rG   5  s    z#BufferedIncrementalDecoder.__init__c             C   s   t d S )N)rB   )r8   rC   rD   rH   r9   r9   r:   _buffer_decode:  s    z)BufferedIncrementalDecoder._buffer_decodeFc             C   s0   | j | }| || j|\}}||d  | _ |S )N)rF   rT   rD   )r8   rC   rH   rO   rP   rQ   r9   r9   r:   r$   ?  s    
z!BufferedIncrementalDecoder.decodec             C   s   t |  d| _d S )NrR   )r   rI   rF   )r8   r9   r9   r:   rI   G  s    
z BufferedIncrementalDecoder.resetc             C   s
   | j dfS )Nr   )rF   )r8   r9   r9   r:   rJ   K  s    z#BufferedIncrementalDecoder.getstatec             C   s   |d | _ d S )Nr   )rF   )r8   rK   r9   r9   r:   rL   O  s    z#BufferedIncrementalDecoder.setstateN)rA   )F)	r@   r<   r=   rG   rT   r$   rI   rJ   rL   r9   r9   r9   r:   rS   /  s   

rS   c               @   sT   e Zd ZdddZdd Zdd Zdd	 ZdddZefddZ	dd Z
dd ZdS )r   rA   c             C   s   || _ || _d S )N)streamrD   )r8   rU   rD   r9   r9   r:   rG   \  s    zStreamWriter.__init__c             C   s"   |  || j\}}| j| d S )N)r#   rD   rU   write)r8   objectrO   rQ   r9   r9   r:   rV   u  s    zStreamWriter.writec             C   s   |  d| d S )NrE   )rV   join)r8   listr9   r9   r:   
writelines|  s    zStreamWriter.writelinesc             C   s   d S )Nr9   )r8   r9   r9   r:   rI     s    
zStreamWriter.resetr   c             C   s*   | j || |dkr&|dkr&|   d S )Nr   )rU   seekrI   )r8   offsetwhencer9   r9   r:   r[     s    zStreamWriter.seekc             C   s   || j |S )N)rU   )r8   r2   getattrr9   r9   r:   __getattr__  s    zStreamWriter.__getattr__c             C   s   | S )Nr9   )r8   r9   r9   r:   	__enter__  s    zStreamWriter.__enter__c             C   s   | j   d S )N)rU   close)r8   typevaluetbr9   r9   r:   __exit__  s    zStreamWriter.__exit__N)rA   )r   )r@   r<   r=   rG   rV   rZ   rI   r[   r^   r_   r`   re   r9   r9   r9   r:   r   Z  s   

c               @   s   e Zd ZeZdddZd ddZd!dd	Zd"ddZd#ddZ	dd Z
d$ddZdd Zdd ZefddZdd Zdd Zd
S )%r   rA   c             C   s.   || _ || _d| _|  | _| j| _d | _d S )NrR   )rU   rD   
bytebuffercharbuffertype_empty_charbuffer
charbuffer
linebuffer)r8   rU   rD   r9   r9   r:   rG     s    
zStreamReader.__init__c             C   s   t d S )N)rB   )r8   rC   rD   r9   r9   r:   r$     s    zStreamReader.decodeFc          
   C   sL  | j r| j| j | _d | _ |dk r(|}x|dkrBt| j|krBP |dk rV| j }n| j|}| j| }|srP y| || j	\}}W n` t
k
r } zB|r| |d |j | j	\}}|jdd}	t|	dkr؂ n W d d }~X Y nX ||d  | _|  j|7  _|s*P q*W |dk r*| j}
| j| _n| jd | }
| j|d  | _|
S )Nr   T)keepends   )rj   rh   rX   ri   lenrU   readrf   r$   rD   UnicodeDecodeErrorstart
splitlines)r8   sizechars	firstlineZnewdatarO   ZnewcharsZdecodedbytesexclinesrP   r9   r9   r:   ro     sD    


zStreamReader.readNTc       	      C   s  | j rP| j d }| j d= t| j dkr8| j d | _d | _ |sL|jddd }|S |pVd}| j}xn| j|dd}|rt|tr|dst|t	r|d	r|| jddd
7 }||7 }|jdd}|rt|dkr:|d }|d= t|dkr|d  | j7  < || _ d | _n|d | j | _|s8|jddd }P |d }|d jddd }||kr| j
|dd  | j | _|r|}n|}P |r|d k	r|r|s|jddd }P |dk rb|d9 }qbW |S )Nr   rm   F)rl   H   T)ru      )rs   rt   rk   i@     )rj   rn   ri   rr   rh   ro   
isinstancestrendswithbytesrX   )	r8   rs   rl   lineZreadsizerO   rw   Zline0withendZline0withoutendr9   r9   r:   readline  s^    


zStreamReader.readlinec             C   s   |   }||S )N)ro   rr   )r8   sizehintrl   rO   r9   r9   r:   	readlines^  s    zStreamReader.readlinesc             C   s   d| _ | j| _d | _d S )NrR   )rf   rh   ri   rj   )r8   r9   r9   r:   rI   m  s    	zStreamReader.resetr   c             C   s   | j || |   d S )N)rU   r[   rI   )r8   r\   r]   r9   r9   r:   r[   z  s    zStreamReader.seekc             C   s   |   }|r|S td S )N)r   StopIteration)r8   r   r9   r9   r:   __next__  s    zStreamReader.__next__c             C   s   | S )Nr9   )r8   r9   r9   r:   __iter__  s    zStreamReader.__iter__c             C   s   || j |S )N)rU   )r8   r2   r^   r9   r9   r:   r_     s    zStreamReader.__getattr__c             C   s   | S )Nr9   )r8   r9   r9   r:   r`     s    zStreamReader.__enter__c             C   s   | j   d S )N)rU   ra   )r8   rb   rc   rd   r9   r9   r:   re     s    zStreamReader.__exit__)rA   )rA   )rk   rk   F)NT)NT)r   )r@   r<   r=   r}   rg   rG   r$   ro   r   r   rI   r[   r   r   r^   r_   r`   re   r9   r9   r9   r:   r     s   


P
K

c               @   s   e Zd ZdZd ddZd!ddZd"d	d
Zd#ddZdd Zdd Z	dd Z
dd Zdd Zd$ddZefddZdd Zdd ZdS )%r   unknownrA   c             C   s(   || _ |||| _|||| _|| _d S )N)rU   readerwriterrD   )r8   rU   ReaderWriterrD   r9   r9   r:   rG     s    zStreamReaderWriter.__init__rk   c             C   s   | j |S )N)r   ro   )r8   rs   r9   r9   r:   ro     s    zStreamReaderWriter.readNc             C   s   | j |S )N)r   r   )r8   rs   r9   r9   r:   r     s    zStreamReaderWriter.readlinec             C   s   | j |S )N)r   r   )r8   r   r9   r9   r:   r     s    zStreamReaderWriter.readlinesc             C   s
   t | jS )N)nextr   )r8   r9   r9   r:   r     s    zStreamReaderWriter.__next__c             C   s   | S )Nr9   )r8   r9   r9   r:   r     s    zStreamReaderWriter.__iter__c             C   s   | j |S )N)r   rV   )r8   rO   r9   r9   r:   rV     s    zStreamReaderWriter.writec             C   s   | j |S )N)r   rZ   )r8   rY   r9   r9   r:   rZ     s    zStreamReaderWriter.writelinesc             C   s   | j   | j  d S )N)r   rI   r   )r8   r9   r9   r:   rI     s    
zStreamReaderWriter.resetr   c             C   s6   | j || | j  |dkr2|dkr2| j  d S )Nr   )rU   r[   r   rI   r   )r8   r\   r]   r9   r9   r:   r[     s    
zStreamReaderWriter.seekc             C   s   || j |S )N)rU   )r8   r2   r^   r9   r9   r:   r_     s    zStreamReaderWriter.__getattr__c             C   s   | S )Nr9   )r8   r9   r9   r:   r`     s    zStreamReaderWriter.__enter__c             C   s   | j   d S )N)rU   ra   )r8   rb   rc   rd   r9   r9   r:   re     s    zStreamReaderWriter.__exit__)rA   )rk   )N)N)r   )r@   r<   r=   encodingrG   ro   r   r   r   r   rV   rZ   rI   r[   r^   r_   r`   re   r9   r9   r9   r:   r     s   




c               @   s   e Zd ZdZdZdddZdddZdd	d
Zd ddZdd Z	dd Z
dd Zdd Zdd ZefddZdd Zdd ZdS )!r   r   rA   c             C   s4   || _ || _|| _|||| _|||| _|| _d S )N)rU   r#   r$   r   r   rD   )r8   rU   r#   r$   r   r   rD   r9   r9   r:   rG     s    zStreamRecoder.__init__rk   c             C   s"   | j |}| || j\}}|S )N)r   ro   r#   rD   )r8   rs   rO   bytesencodedr9   r9   r:   ro   #  s    zStreamRecoder.readNc             C   s6   |d kr| j  }n| j |}| || j\}}|S )N)r   r   r#   rD   )r8   rs   rO   r   r9   r9   r:   r   )  s
    zStreamRecoder.readlinec             C   s(   | j  }| || j\}}|jddS )NT)rl   )r   ro   r#   rD   rr   )r8   r   rO   r   r9   r9   r:   r   2  s    
zStreamRecoder.readlinesc             C   s    t | j}| || j\}}|S )N)r   r   r#   rD   )r8   rO   r   r9   r9   r:   r   8  s    
zStreamRecoder.__next__c             C   s   | S )Nr9   )r8   r9   r9   r:   r   ?  s    zStreamRecoder.__iter__c             C   s   |  || j\}}| j|S )N)r$   rD   r   rV   )r8   rO   bytesdecodedr9   r9   r:   rV   B  s    zStreamRecoder.writec             C   s(   d |}| || j\}}| j|S )NrE   )rX   r$   rD   r   rV   )r8   rY   rO   r   r9   r9   r:   rZ   G  s    
zStreamRecoder.writelinesc             C   s   | j   | j  d S )N)r   rI   r   )r8   r9   r9   r:   rI   M  s    
zStreamRecoder.resetc             C   s   || j |S )N)rU   )r8   r2   r^   r9   r9   r:   r_   R  s    zStreamRecoder.__getattr__c             C   s   | S )Nr9   )r8   r9   r9   r:   r`   Y  s    zStreamRecoder.__enter__c             C   s   | j   d S )N)rU   ra   )r8   rb   rc   rd   r9   r9   r:   re   \  s    zStreamRecoder.__exit__)rA   )rk   )N)N)r@   r<   r=   data_encodingfile_encodingrG   ro   r   r   r   r   rV   rZ   rI   r^   r_   r`   re   r9   r9   r9   r:   r     s   


	
rrA   rm   c             C   sV   |d k	rd|kr|d }t | ||}|d kr2|S t|}t||j|j|}||_|S )Nb)builtinsr   r   r   r6   r5   r   )filenamemoder   rD   Z	bufferingfileZinfoZsrwr9   r9   r:   r   a  s    c             C   sF   |d kr|}t |}t |}t| |j|j|j|j|}||_||_|S )N)r   r   r#   r$   r6   r5   r   r   )r   r   r   rD   Z	data_infoZ	file_infoZsrr9   r9   r:   r     s    c             C   s
   t | jS )N)r   r#   )r   r9   r9   r:   r     s    c             C   s
   t | jS )N)r   r$   )r   r9   r9   r:   r     s    c             C   s   t | j}|d krt| |S )N)r   r3   LookupError)r   encoderr9   r9   r:   r     s    	
c             C   s   t | j}|d krt| |S )N)r   r4   r   )r   decoderr9   r9   r:   r      s    	
c             C   s
   t | jS )N)r   r6   )r   r9   r9   r:   r!     s    c             C   s
   t | jS )N)r   r5   )r   r9   r9   r:   r"     s    c             k   sL   t ||f|}x | D ]}||}|r|V  qW |dd}|rH|V  d S )NrE   T)r   r#   )iteratorr   rD   kwargsr   rC   outputr9   r9   r:   r%     s    	


c             k   sL   t ||f|}x | D ]}||}|r|V  qW |dd}|rH|V  d S )NrR   T)r    r$   )r   r   rD   r   r   rC   r   r9   r9   r:   r&     s    	


c             C   s   dd | D S )Nc             S   s   i | ]
}||qS r9   r9   ).0ir9   r9   r:   
<dictcomp>#  s    z&make_identity_dict.<locals>.<dictcomp>r9   )Zrngr9   r9   r:   make_identity_dict  s    r   c             C   s8   i }x.|   D ]"\}}||kr(|||< qd ||< qW |S )N)items)Zdecoding_mapmkvr9   r9   r:   make_encoding_map%  s    
r   ignorereplacexmlcharrefreplacebackslashreplacenamereplace__main__zlatin-1zutf-8)r   NrA   rm   )NrA   )rA   )rA   );r   sysZ_codecsImportErrorZwhySystemError__all__r   r	   r   r   r   r   r   	byteorderr   r   r   r   r
   r   r   r0   r   r   rW   r   rM   r   rS   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_false	encodingsr@   ZstdoutZstdinr9   r9   r9   r:   <module>
   s   

B("1+I zWn
*
&








