HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/PIL/__pycache__/PdfParser.cpython-310.pyc
o

wea��	@s�ddlZddlZddlZddlZddlZddlZddlZddlZdd�Zidd�dd�dd	�d
d�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�d d!�d"d#�d$d%�id&d'�d(d)�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d6d7�d8d9�d:d;�d<d=�d>d?�d@dA�dBdC�dDdE�dFdG��dHdIdJdKdLdMdNdO��Z	dPdQ�Z
GdRdS�dSe�ZdTdU�Z
GdVdW�dWe�dXdYdZg��ZGd[d\�d\e�ZGd]d^�d^�ZGd_d`�d`�ZGdadb�dbe�ZGdcdd�ddej�ZGdedf�df�ZGdgdh�dh�Zdidj�ZGdkdl�dl�ZdS)m�NcCstj|�d�S)N�	utf_16_be)�codecs�BOM_UTF16_BE�encode)�s�r�F/home/arjun/projects/env/lib/python3.10/site-packages/PIL/PdfParser.py�encode_text
�r	���u˘�uˇ�uˆ�u˙�u˝�u˛�u˚�u˜�u•�u†�u‡�u…�u—�u–�uƒ�u⁄�u‹�u›�u−�u‰�u„�u“�u”�u‘�u’�u‚�u™�ufi�ufl�uŁ�uŒ�uŠ�uŸuŽuıułuœušužu€)�������cCsD|dttj��tjkr|ttj�d��d�Sd�dd�|D��S)Nr�css �|]}t�|t|��VqdS�N)�PDFDocEncoding�get�chr)�.0�byterrr�	<genexpr>Bs�zdecode_text.<locals>.<genexpr>)�lenrr�decode�join)�brrr�decode_text>srAc@seZdZdZdS)�PdfFormatErrorz\An error that probably indicates a syntactic or semantic error in the
    PDF file structureN)�__name__�
__module__�__qualname__�__doc__rrrrrBEsrBcCs|st|��dSr6)rB)�	condition�
error_messagerrr�check_format_conditionLs�rIc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�IndirectReferencecC�d|S)Nz%s %s Rr��selfrrr�__str__T�zIndirectReference.__str__cCs|���d�S�N�us-ascii)rNrrLrrr�	__bytes__WszIndirectReference.__bytes__cCs$|j|juo|j|jko|j|jkSr6)�	__class__�	object_id�
generation�rM�otherrrr�__eq__Zs

�
�zIndirectReference.__eq__cCs
||kSr6rrVrrr�__ne__a�
zIndirectReference.__ne__cCst|j|jf�Sr6)�hashrTrUrLrrr�__hash__dr
zIndirectReference.__hash__N)rCrDrErNrRrXrYr\rrrrrJQsrJ�IndirectReferenceTuplerTrUc@�eZdZdd�ZdS)�IndirectObjectDefcCrK)Nz	%s %s objrrLrrrrNirOzIndirectObjectDef.__str__N)rCrDrErNrrrrr_h�r_c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�	XrefTablecCs i|_i|_ddi|_d|_dS)NriF)�existing_entries�new_entries�deleted_entries�reading_finishedrLrrr�__init__ns

zXrefTable.__init__cCs6|jr	||j|<n||j|<||jvr|j|=dSdSr6)rercrbrd�rM�key�valuerrr�__setitem__ts

�zXrefTable.__setitem__cCs*z|j|WSty|j|YSwr6)rc�KeyErrorrb�rMrhrrr�__getitem__|s
�zXrefTable.__getitem__cCs�||jvr|j|dd}|j|=||j|<dS||jvr.|j|dd}||j|<dS||jvr:|j|}dSdt|�d}t|��)N�z
object ID z+ cannot be deleted because it doesn't exist)rcrdrb�str�
IndexError)rMrhrU�msgrrr�__delitem__�s


�zXrefTable.__delitem__cCs||jvp	||jvSr6)rbrcrlrrr�__contains__��zXrefTable.__contains__cCs.tt|j���t|j���Bt|j���B�Sr6)r=�setrb�keysrcrdrLrrr�__len__�s���zXrefTable.__len__cCs*t|j���t|j���t|j���BSr6)rurbrvrdrcrLrrrrv�s�zXrefTable.keysc	CsFtt|j���t|j���B�}tt|j����}|��}|�d�|r�d}t|�D]\}}|dus8|d|kr;|}q*|d|�}||d�}n|}d}|�d|dt|�f�|D]B}	|	|jvrn|�d|j|	�q\|�	d�}
t
|	|
kd|	�d|
���z|d}Wnty�d}Ynw|�d||j|	f�q\|s$|S)	Nsxref
rns%d %d
rs%010d %05d n 
z*expected the next deleted object ID to be z, instead found s%010d %05d f 
)�sortedrurcrvrd�tell�write�	enumerater=�poprIrp)rM�frv�deleted_keys�	startxref�prev�indexrh�contiguous_keysrT�this_deleted_object_id�next_in_linked_listrrrrz�sJ 


������ zXrefTable.writeN)rCrDrErfrjrmrrrsrwrvrzrrrrramsrac@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zedd��Z	e
ed
d��dd�dD�Zdd�Z
dS)�PdfNamecCs:t|t�r|j|_dSt|t�r||_dS|�d�|_dSrP)�
isinstancer��name�bytesr)rMr�rrrrf�s



zPdfName.__init__cCs|j�d�SrP)r�r>rLrrr�name_as_str�szPdfName.name_as_strcCs t|t�o
|j|jkp||jkSr6)r�r�r�rVrrrrX�s��zPdfName.__eq__cCs
t|j�Sr6)r[r�rLrrrr\�rZzPdfName.__hash__cCsdt|j��d�S)NzPdfName(�))�reprr�rLrrr�__repr__�szPdfName.__repr__cCs|t�|��Sr6)�	PdfParser�interpret_name)�cls�datarrr�from_pdf_stream�szPdfName.from_pdf_stream�!�cCsh|]}t|��qSr)�ord)r:�crrr�	<setcomp>�szPdfName.<setcomp>z#%/()<>[]{}cCs@td�}|jD]}||jvr|�|�q|�d|�qt|�S)N�/s#%02X)�	bytearrayr��
allowed_chars�append�extendr�)rM�resultr@rrrrR�s

zPdfName.__bytes__N)rCrDrErfr�rXr\r��classmethodr�ru�ranger�rRrrrrr��s
r�c@r^)�PdfArraycCsdd�dd�|D��dS)Ns[ � css�|]}t|�VqdSr6)�pdf_repr)r:�xrrrr<���z%PdfArray.__bytes__.<locals>.<genexpr>s ])r?rLrrrrR��zPdfArray.__bytes__N)rCrDrErRrrrrr��r`r�c@s$eZdZdd�Zdd�Zdd�ZdS)�PdfDictcCs.|dkrtj�|||�dS|||�d�<dS)Nr�rQ)�collections�UserDict�__setattr__rrgrrrr��szPdfDict.__setattr__c
Csz	||�d�}Wnty}zt|�|�d}~wwt|t�r$t|�}|�d�r�|�d�r4|dd�}d}t|�dkrZ|d}t	|dd��d	}t|�d
krZ|t	|dd
��7}ddt|�d�}t
�|dt|�d�|�}|d
vr�|d	9}|dkr�|d9}t
�t
�|�|�}|S)NrQ�DatezD:��Z����<��z%Y%m%d%H%M%S)�+�-r����)rrk�AttributeErrorr�r�rA�endswith�
startswithr=�int�time�strptime�gmtime�calendar�timegm)rMrhri�e�relationship�offset�formatrrr�__getattr__�s2
��


zPdfDict.__getattr__cCsntd�}|��D]%\}}|durqt|�}|�d�|�tt|���|�d�|�|�q|�d�t|�S)N�<<�
r�s
>>)r��itemsr�r�r�r�)rM�outrhrirrrrRs


zPdfDict.__bytes__N)rCrDrEr�r�rRrrrrr��sr�c@�eZdZdd�Zdd�ZdS)�	PdfBinarycCs
||_dSr6)r�)rMr�rrrrf&rZzPdfBinary.__init__cCsdd�dd�|jD��S)Ns<%s>�css�|]}d|VqdS)s%02XNr�r:r@rrrr<*r�z&PdfBinary.__bytes__.<locals>.<genexpr>)r?r�rLrrrrR)szPdfBinary.__bytes__N)rCrDrErfrRrrrrr�%sr�c@r�)�	PdfStreamcCs||_||_dSr6)�
dictionary�buf)rMr�r�rrrrf.s
zPdfStream.__init__cCs�z|jj}Wnty|jYSw|dkr5z|jj}Wn
ty*|jj}Ynwtj|jt|�d�Sdt	|jj��d�}t
|��)NsFlateDecode)�bufsizezstream filter z unknown/unsupported)r��Filterr�r��DL�Length�zlib�
decompressr�r��NotImplementedError)rM�filter�expected_lengthrqrrrr>2s
��zPdfStream.decodeN)rCrDrErfr>rrrrr�-sr�cCs|durdS|durdS|durdSt|ttttf�rt|�St|ttf�r-t|��	d�St|t
j�r@dt
�d|��	d�d	St|t
�rKtt|��St|t�rVtt|��St|t�ratt|��St|t�r~|�d
d�}|�dd
�}|�d	d�}d|d	St|�S)NTstrueFsfalsesnullrQs(D:z
%Y%m%d%H%M%SZ�)�\s\\�(�\(s\))r�r�r�r�r�r�r��floatrorr��struct_time�strftime�dict�listr�r	�replace)r�rrrr�Bs0



r�c@seZdZdZdrdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdsdd�Zdd�Zdd �Zd!d"�Zed#d$��Zd%d&�Zdsd'd(�Zd)Zd*Zd+Zd,Zed-Zed.Zd/Zd0ZeeeZe �!ed1ed2ed3ed4ed5ed6e j"�Z#e �!ed1ed7ed3ed4ed5ee j"�Z$d8d9�Z%d:d;�Z&e �!e�Z'e �!ed<ed=�Z(e �!ed>�Z)e �!ed?e�Z*e+d@dA��Z,e �!dB�Z-e+dtdDdE��Z.e �!edFed=�Z/e �!edGed=�Z0e �!edHed=�Z1e �!edIed=�Z2e �!edJed=�Z3e �!edK�Z4e �!edL�Z5e �!edMedN�Z6e �!edO�Z7e �!edPedPedQed=�Z8e �!edPedPedRed=�Z9e �!edSed=�Z:e �!dTedUedV�Z;e �!edW�Z<e �!edXed=�Z=e+dudZd[��Z>e �!d\�Z?id]d^�d_d`�dadb�dcdd�dedf�dTdT�d=d=�dgdg�e@d]�d^�e@d_�d`�e@da�db�e@dc�dd�e@de�df�e@dT�dT�e@d=�d=�e@dg�dg�ZAe+dhdi��ZBe �!edje�ZCe �!ed4ed4ee�ZDe �!dk�ZEdldm�ZFdvdndo�ZGdsdpdq�ZHdS)wr�z|Based on
    https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf
    Supports PDF up to 1.4
    Nr�rbcCs|r
|r
d}t|��||_||_||_||_d|_d|_|dur/|dur/t||�|_}d|_|durI|�|�|_}d|_|sIt	|d�rI|j
|_i|_|rS|��n*d|_
|_t�|_d|_t�|_d|_i|_g|_g|_d|_d|_i|_t�|_d|j_|r�|��dSdS)Nz4specify buf or f or filename, but not both buf and fFTr�r)�RuntimeError�filenamer�r}�start_offset�should_close_buf�should_close_file�open�get_buf_from_file�hasattrr��cached_objects�
read_pdf_info�file_size_total�file_size_thisr��root�root_ref�info�info_ref�page_tree_root�pages�
orig_pages�	pages_ref�last_xref_section_offset�trailer_dictra�
xref_tablere�seek_end)rMr�r}r�r��moderqrrrrfesH
�zPdfParser.__init__cCs|Sr6rrLrrr�	__enter__�szPdfParser.__enter__cCs|��dS)NF)�close)rM�exc_type�	exc_value�	tracebackrrr�__exit__�szPdfParser.__exit__cCs|��|��dSr6)�	close_bufr�rLrrr�
start_writing�szPdfParser.start_writingcCs,z|j��Wn	tyYnwd|_dSr6)r�r�r�rLrrrr�s�
zPdfParser.close_bufcCs:|jr|��|jdur|jr|j��d|_dSdSdSr6)r�rr}r�r�rLrrrr��s

�zPdfParser.closecCs|j�dtj�dS)Nr)r}�seek�os�SEEK_ENDrLrrrr��rtzPdfParser.seek_endcCs|j�d�dS)Ns	%PDF-1.4
)r}rzrLrrr�write_header�r
zPdfParser.write_headercCs|j�d|�d����dS)Nz% �
)r}rzr)rMrrrr�
write_comment�r�zPdfParser.write_commentcCsl|��|�|j���|_|�d�|_|��|j|jtd�|jd�|j|jtd�t	|j
�|j
d�|jS)Nr�Catalog)�Type�Pages�Pages)r
�Count�Kids)�del_root�next_object_idr}ryr�r��
rewrite_pages�	write_objr�r=r�rLrrr�
write_catalog�s�zPdfParser.write_catalogc
Cs�g}t|j�D]N\}}|j|}|j|j=|�|td��||jvr$qi}|��D]
\}}|||�	�<q*|j
|d<|jdi|��}t|j�D]
\}	}
|
|krT||j|	<qGq|D]}|rt|j|}|j|jvrl|j|j=|�dd�}|s\qXg|_dS)NsParent�Parentr6)
r{r�r�r�rTr�r�r�r�r�r��
write_pager8)
rM�pages_tree_nodes_to_delete�i�page_ref�	page_info�stringified_page_inforhri�new_page_ref�j�cur_page_ref�pages_tree_node_ref�pages_tree_noderrrr�s4




��

��
zPdfParser.rewrite_pagescCs�|r	|��||_|jr|�d|j�|_|j�|j�}t|j�}|j|d�}|j	dur0|j	|d<|jr8|j|d<||_	|j�dt
t|��d|�dS)N)�Root�Size�Prev�Infostrailer
s
startxref
%d
%%%%EOF)rr�r�rr�r�rzr}r=r�r�r�)rM�new_root_ref�
start_xref�num_entriesr�rrr�write_xref_and_trailer�s(




���z PdfParser.write_xref_and_trailercOsRt|t�r
|j|}d|vrtd�|d<d|vr|j|d<|j|g|�Ri|��S)Nr
�Pager)r�r�r�r�r�r)rM�ref�objs�dict_objrrrr�s


zPdfParser.write_pagecOs�|j}|dur|�|���}n|��|jf|j|j<|�tt|���|�	dd�}|dur3t
|�|d<|r<|�t|��|D]	}|�t|��q>|dur[|�d�|�|�|�d�|�d�|S)N�streamr�sstream
s
endstream
sendobj
)r}rryrUr�rTrzr�r_r|r=r�)rMr)r*r+r}r,�objrrrr�s$



zPdfParser.write_objcCs.|jdurdS|j|jj=|j|jdj=dS)Nr)r�r�rTr�rLrrrr
s
zPdfParser.del_rootcCsRt|d�r	|��St|d�r|��Sztj|��dtjd�WSty(YdSw)N�	getbuffer�getvaluer)�accessr�)r�r.r/�mmap�fileno�ACCESS_READ�
ValueError)r}rrrr�s

�zPdfParser.get_buf_from_filecCs�t|j�|_|j|j|_|��|jd|_|j�dd�|_	t
|�|j��|_|j	dur2t
�|_
n	t
|�|j	��|_
td|jvd�t|jddkd�td|jvd�tt|jdt�d	�|jd|_|�|j�|_|�|j�|_|jdd�|_dS)
Nr r#�Typez/Type missing in Rootr	z/Type in Root is not /Catalogrz/Pages missing in Rootz+/Pages in Root is not an indirect reference)r=r�r�r�r��read_trailerr�r�r8r�r��
read_indirectr�r�rIr�rJr�r��linearize_page_treer�r�rLrrrr�s,

��zPdfParser.read_pdf_infocCsVztt|j���dd�}Wntytdd�}Ynw|dur)|df|j|j<|S)Nrnr)rJ�maxr�rvr4rT)rMr��	referencerrrr8s�zPdfParser.next_object_ids[][()<>{}/%]s$[][()<>{}/%\000\011\012\014\015\040]s[\000\011\012\014\015\040]s#[\000\011\012\014\015\0400-9a-fA-F]�*�+s[\000\011\014\040]*s[\r\n]+strailers<<(.*>>)s	startxrefs([0-9]+)s%%EOF�$s	<<(.*?>>)cCs�t|j�d}||jkr|j}|j�|j|�}t|d�|}|r0|}|j�|j|��d�}|s |s4|}|�d�}t|�d��|_	|�
|�|_t�|_
|j|j	d�d|jvra|�|jd�dSdS)N�@ztrailer end not found�rnr���xref_section_offsetr")r=r�r��re_trailer_end�searchrI�start�groupr�r��interpret_trailerr�rar��read_xref_table�read_prev_trailer)rM�search_start_offset�m�
last_match�trailer_datarrrr6js(

�

�zPdfParser.read_trailercCsz|j|d�}|j�|j||d��}t|d�|�d�}tt|�d��|kd�|�|�}d|vr;|�|d�dSdS)Nr@r>zprevious trailer not foundrnr�zGxref section offset in previous trailer doesn't match what was expectedr")	rG�re_trailer_prevrCr�rIrEr�rFrH)rMrA�trailer_offsetrJrLr�rrrrHs�

�
�zPdfParser.read_prev_trailers/([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=r�r�s>>cCs�i}d}	|j�||�}|s+|j�||�}t|o|��t|�kdt||d���n|�|�d��}|�	||���\}}|||<qtd|voMt
|dt�d�td|vo[t
|dt�d�|S)	NrTz+name not found in trailer, remaining data: rnr!z&/Size not in trailer or not an integerr z1/Root not in trailer or not an indirect reference)
�re_name�match�re_dict_endrI�endr=r�r�rE�	get_valuer�r�rJ)r�rL�trailerr�rJrhrirrrrF�s4���
��zPdfParser.interpret_trailers([^#]*)(#([0-9a-fA-F]{2}))?FcCsjd}|j�|�D]!}|�d�r"||�d�t�|�d��d��7}q||�d�7}q|r1|�d�St|�S)Nr��rnrQzutf-8)�re_hashes_in_name�finditerrEr��fromhexr>r�)r��raw�as_textr�rJrrrr��s
&
zPdfParser.interpret_namesnull(?=strue(?=sfalse(?=s([-+]?[0-9]+)(?=s)([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=s\[�]s<(s*)>r�s
([-+]?[0-9]+)sR(?=sobj(?=s	endobj(?=r�s	%[^\r\n]*s)*sstream\r?\nsendstream(?=r�c
Cs�|dkrdS|j�||�}|r|��}|j�||�}|rttt|�d��dkd�tt|�d��dkd�t|dupI|tt|�d��t|�d���kd�|j||��|dd�\}}|durb|dfS|j	�||�}t|d	�||��fSt|d
�|j
�||�}|r�tt|�d��dkd�tt|�d��dkd�tt|�d��t|�d���|��fS|j�||�}|�rc|��}i}|j�||�}|s�|j|||dd�\}}|dur�|dfS|j|||dd�\}	}|	||<|dur�|dfS|j�||�}|r�|��}|j
�||�}|�r[zt|d
�}
Wntttf�y/}z
d|�d
d�}t|�|�d}~ww||��|��|
�}
|j�||��|
�}t|d�|��}tt|�|
�}||fSt|�}||fS|j�||�}|�r�|��}g}|j�||�}|�s�|j|||dd�\}	}|�|	�|du�r�|dfS|j�||�}|�r}||��fS|j�||�}|�r�d|��fS|j�||�}|�r�d|��fS|j�||�}|�r�d|��fS|j�||�}|�r�t|�|�d���|��fS|j�||�}|�rt|�d��|��fS|j �||�}|�rt!|�d��|��fS|j"�||�}|�rKt#dd�|�d�D��}t$|�ddk�r?|�t%d��t#�&|�'d��|��fS|j(�||�}|�r]|�)||���Sdt*|||d��}t|��)Nr)NNrnz<indirect object definition: object ID must be greater than 0r�z;indirect object definition: generation must be non-negativez2indirect object definition different than expected)�max_nestingz(indirect object definition end not foundz$indirect object definition not foundz;indirect object reference: object ID must be greater than 0z:indirect object reference: generation must be non-negativesLengthz)bad or missing Length in stream dict (%r)zstream end not foundTFcss�|]	}|dvr|VqdS)s0123456789abcdefABCDEFNrr�rrrr<`s��z&PdfParser.get_value.<locals>.<genexpr>�0rQzunrecognized object: � )+�
re_commentrPrR�re_indirect_def_startrIr�rErJrS�re_indirect_def_end�re_indirect_reference�
re_dict_startrQ�re_stream_start�	TypeErrorrkr4r8rB�
re_stream_endr�r��re_array_start�re_array_endr��re_null�re_true�re_falserOr�r��re_int�re_realr��
re_string_hexr�r=r�rXr>�
re_string_lit�get_literal_stringr�)r�r�r��expect_indirectr\rJ�objectr�rhri�
stream_lenr�rq�stream_data�
hex_stringrrrrS�s�����
���&�	�
��
�

��zPdfParser.get_valuesF(\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))�nr��r�
�t�	�b��f�r�cCsd}t�}|j�||�D]u}|�|||����|�d�r,|�|j|�d�d�nQ|�d�rA|�t|�d�dd�d��n<|�d�rGn6|�d�rR|�d�n+|�d�ra|�d	�|d7}n|�d
�r}|dkrtt	|�|�
�fS|�d�|d8}|�
�}qd}t|��)
Nrrnr��rU�r��r��r�zunfinished literal string)r��re_lit_str_tokenrWr�rDrE�
escaped_charsr�r�r�rRrB)r�r�r��
nesting_depthr�rJrqrrrrp�s.

 







zPdfParser.get_literal_stringsxrefs+([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)cCs�d}|j�|j||j�}t|d�|��}	|j�|j|�}|s)t|d�	|Sd}|��}t|�d��}t|�d��}t	|||�D]6}|j
�|j|�}t|d�|��}|�d�d	k}|szt|�d��}	t|�d��|	f}
||jvrz|
|j|<qDq)
NFzxref section start not foundTzxref subsection start not foundrnr�zxref entry not foundrUr})�re_xref_section_startrPr�r�rIrR�re_xref_subsection_startr�rEr��
re_xref_entryr�)rMrA�subsection_foundrJr��first_object�num_objectsr�is_freerU�	new_entryrrrrG�s<�
��


��zPdfParser.read_xref_tablec
Cst|j|d\}}t||dkd|d�d|d�d|�d|���|j|j||jt|�|d�d}||j|<|S)Nrrnzexpected to find generation z for object ID z) in xref table, instead found generation z at offset )rqr\)r�rIrSr�r�rJr�)rMr)r\r�rUrirrrr7�s&
�����
zPdfParser.read_indirectcCsj|dur|j}t|ddkd�g}|dD]}|�|�}|ddkr)|�|�q|�|j|d��q|S)Nr5rz%/Type of page tree node is not /PagessKidsr()�node)r�rIr7r�r�r8)rMr�r��kid�
kid_objectrrrr8�s�
zPdfParser.linearize_page_tree)NNNrr�r6)F)Nr�)r�)IrCrDrErFrfr�rrrr�r�rrrrr'rrr�staticmethodr�r�r�	delimiter�delimiter_or_ws�
whitespace�whitespace_or_hex�whitespace_optional�whitespace_mandatory�whitespace_optional_no_nl�newline_only�newline�re�compile�DOTALLrBrMr6rH�re_whitespace_optionalrOrcrQr�rFrVr�rirjrkrlrmrgrhrnrorbr`rar_rdrfrSr�r�r�rpr�r�r�rGr7r8rrrrr�_s�
&
	


��������	�
�����������	�
��
����

��������������
��������
���z���������	�
���
����
������

r�)r�rr�r1rr�r�r�r	r7rAr�rBrI�
namedtuplerJr_rar�r�r�r�r�r�r�r�r�rrrr�<module>s���������	�
���
������������������� �!�"�#�-
�\'0