Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
_reader.cpython-313.pyc367 linesDownload Raw Back to __pycache__
1�

2s�j�����SSKrSSKrSSKrSSKJr SSKJrJr SSKJ	r	 SSK3Jr SSKJ
r
JrJrJrJrJr \R&S:�aSSKJr OSSKJr S	S4KJrJr S	SKJrJr S	SKJrJrJrJ r J!r!J"r"J#r#J$r$J%r% S	S
K&J'r( S	SK)J*r*J+r+J,r,J-r-J.r.J/r/ S	SK0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;J<r<J=r=J>r> S	SK?J@r@ \
(aS	SKAJBrB "SS\5rCg)�N)�Iterable)�BytesIO�UnsupportedOperation)�Path)�
TracebackType)�
TYPE_CHECKING�Any�Callable�Optional�Union�cast)��)�Self�)�PdfDocCommon�convert_to_int)�5Encryption�PasswordType)	�WHITESPACES_AS_BYTES�StrByteType�6StreamType�logger_warning�read_non_whitespace�read_previous_line�read_until_whitespace�skip_over_comment�skip_over_whitespace)�TrailerKeys)�EmptyFileError�FileNotDecryptedError�LimitReachedError�PdfReadError�PdfStreamError�WrongPasswordError)�ArrayObject�
ContentStream�DecodedStreamObject�DictionaryObject�EncodedStreamObject�IndirectObject�7NameObject�8NullObject�NumberObject�	PdfObject�StreamObject�TextStringObject�is_null_or_none�read_object)�XmpInformation)�9PageObjectc��\rSrSrSrSJSS.S\\\4S\S\S\	\104S	\\S11S412Sjjjr
S\\\4S13S4SjrS\\\	\144S15S4S
jrS16\4SjrS\\\S\\S\\S17S4SjrSKSjr\S18\4Sj5r\S19\\4Sj5r\S20\\4Sj5r\S21\	4Sj5r\S22\\4Sj5rS\S\\ \!4S23\\4Sjr"S\!S24\\\#\	44Sjr$S\\\!4S25\\#4Sjr%S\&S26\'\\44Sjr(S\S\S27\\#4S jr)S\S\S!\\#S28\\#4S"jr*S\!S!\#S29\#4S#jr+S\&S30S4S$jr,S\&S31S4S%jr-S\&S32S4S&jr.S\&S33\4S'jr/S\&S34S4S(jr0S\&S)\\S*\S35S4S+jr1S,\S36S4S-jr2S\&S37\\4S.jr3S\&S)\S38\\4S/jr4S0\5\S1\5\S2\6S39\5\4S3jr7S\&S40\\6\8\944S4jr:\;S\&S)\S41\4S5j5r<\=S6\42S43\>\'\\\44S7j5r?\=S6\44S45\>\4S8j5r@S\&S46S4S9jrAS:\5\S;\B\/\\\'\S<444S=\B\\\\'\S<44/\4S47S4S>jrCS?\5\S48\>\'\\44S@jrDS\\	\494S50\E4SAjrF\S51\4SBj5rGSC\	S52\\4SDjrHSC\	S53\\4SEjrISLSF\S\>\	4SG\S\>\	4S54\J\	\K44SHjjrLSIrMg)M�	PdfReader�_a855Initialize a PdfReader object.56 57This operation can take some time, as the PDF stream's cross-reference58tables are read into memory.59 60Args:61    stream: A File object or an object that supports the standard read62        and seek methods similar to a File object. Could also be a63        string representing a path to a PDF file.64    strict: Determines whether user should be warned of all65        problems and also causes some correctable problems to be fatal.66        Defaults to ``False``.67    password: Decrypt PDF file at initialization. If the68        password is None, the file will not be decrypted.69        Defaults to ``None``.70    root_object_recovery_limit: The maximum number of objects to query71        for recovering the Root object in non-strict mode. To disable72        this security measure, pass ``None``.73 74Ni')�root_object_recovery_limit�stream�strict�passwordr9�returnc���X lSUl0UlSUlSUl0Ul0Ul0Ul[5Ul	[U[5(aUO[RUlSUlSUlUR#U5 [%5UlSUlSUlUR,(aUR/U5 gUb[1S5eg)NrFzNot an encrypted file)r;�flattened_pages�resolved_objects�75_startxref�76xref_index�xref�xref_free_entry�xref_objStmr)�trailer�77isinstance�int�sys�maxsize�_root_object_recovery_limit�_page_id2num�_validated_root�_initialize_stream�set�_known_objects�_override_encryption�_encryption�is_encrypted�_handle_encryptionr#)�selfr:r;r<r9s     �SD:\code\apps\devtools\python\user_packages\Python313\site-packages\pypdf/_reader.py�__init__�PdfReader.__init__vs�����;?���MO��� ������/1��	�:<���79���'�)���+5�5O�QT�*U�*U�&�[^�[f�[f�	
�(�787;���;?�������'�47�E���$)��!�15�������#�#�H�-�
�
!��6�7�7�"�c�d�[US5(a SUR;a[S[5 SUl[U[[45(a5[US5n[UR55nSSS5 SUlURU5 Xlg!,(df   N-=f)N�mode�bzQPdfReader stream/file object is not in binary mode. It may not be read correctly.F�rbT)�hasattrr[r�__name__�_stream_openedrG�strr�openr�readr:)rUr:�fhs   rVrN�PdfReader._initialize_stream�s����6�6�"�"�s�&�+�+�'=��0��
�79$����f�s�D�k�*�*��f�d�#�r� �����+��$�"&�D���	�	�&����	$�#�s� B!�!80B/c���SUlURR[R5nU(aUSR5ROSn[[UR[RR55n[R"XC5UlUbUOSnURRU5[R:XaUb[!S5eSUlg)NTrrYzWrong passwordF)rQrF�get�TK�ID�81get_object�original_bytesr
r)�ENCRYPTrrcrR�verifyr�
NOT_DECRYPTEDr%)rUr<�id_entry�	id1_entry�
encrypt_entry�pwds      rVrT�PdfReader._handle_encryption�s���$(��!��<�<�#�#�B�E�E�*��?G�H�Q�K�*�*�,�;�;�S�	��-�t�|�|�B�J�J�/G�/R�/R�/T�U�
�%�?�?�=�D���#�.�h�C�����#�#�C�(�L�,F�,F�F��$�%�%5�6�6�$)��!rYc��U$�N��rUs rV�	__enter__�PdfReader.__enter__�s���rY�exc_type�exc_val�exc_tbc�$�UR5 gru)�close)rUrzr{r|s    rV�__exit__�PdfReader.__exit__�s
��	
�82�83�rYc��UR(aURR5 /Ul0Ul[5Ul0Ul0Ul0Ul	g)z8Close the stream if opened in __init__ and clear memory.N)84r`r:r~r?r@r)rFrCrDrErws rVr~�PdfReader.close�sL������K�K����!��� "���'�)�����	�!�����rYc�H�UR(aUR$URR[R5n[U5(a[
S[5 O�[[[[U5R55RS5S:Xa2[[[[U5R55UlO[
S[5 URc�[
S[5 [[URRSS55n[U5H�nX0R:�a[S	5eURUS85-5n[#U[5(dMIURS5S:XdM`X@l[
SUR$<3[5  O URc�[U5(d�S[[[[U5R55;aj[
S
[[U5R$<S3[5 [[[[U5R55UlUR$['S5eUR$![ a SnGN3f=f)z7Provide access to "/Root". Standardized with PdfWriter.z"Cannot find "/Root" key in trailer�/Typez/CatalogzInvalid Root object in trailerNz$Searching object with "/Catalog" key�/Sizerz+Maximum Root object recovery limit reached.rzRoot found at z/PageszPossible root found at z, but missing /Catalog keyzCannot find Root object in pdf)rMrFrgrh�ROOTr2rr_r
r)r/rjrH�rangerKr"�	ExceptionrG�indirect_referencer#)rU�root�number_of_objects�i�objs     rV�root_object�PdfReader.root_object�s������'�'�'��|�|������(���4� � ��?��J��!�4�	�4�#8�#C�#C�#E�F�J�J�7�S��
�$(� �$�y�$�"7�"B�"B�"D�$�D� �
�;�X�F����'��A�8�L� $�S�$�,�,�*:�*:�7�A�*F� G���,�-���8�8�8�+�,Y�Z�Z���/�/�!�a�%�0�C��c�#3�4�4�����9I�Z�9W�+.�(�"�^�C�4J�4J�3M�#N�PX�Y��.����'�"�4�(�(�X��>N�PT�U^�`d�Pe�Pp�Pp�Pr�9s�-s��-�d�9�d�.C�.V�.V�-Y�Ys�t���(,�$�d�9�d�&;�&F�&F�&H�(��$�86�#�#�#�#�#C�D�D��#�#�#��#!���C��s�J�J!� J!c���URR[RS5n[	U5(agUcS5eUR5n[
U[5(d[S5eU$)z{87Provide access to "/Info". Standardized with PdfWriter.88 89Returns:90    /Info Dictionary; None if the entry does not exist91 92N�mypyzHTrailer not found or does not point to a document information dictionary)	rFrgrh�INFOr2rjrGr)r#)rU�infos  rV�_info�PdfReader._infosn���|�|�������.���4� � ����'��'����� ���$� 0�1�1��Z��
��rYc���URR[RS5n[	U5(agUcS5e[[UR55$)zr93Provide access to "/ID". Standardized with PdfWriter.94 95Returns:96    /ID array; None if the entry does not exist97 98Nr�)rFrgrhrir2r
r&rj)rU�ids  rV�_ID�
PdfReader._IDsN���\�\�
�
�b�e�e�T�
*���2�����~�%�v�%�~��K�����1�1rYc��URR5nURRSS5 URRS5R	SS5nURRUS5 U$)z�99The first 8 bytes of the file.100 101This is typically something like ``'%PDF-1.6'`` and can be used to102detect if the file is actually a PDF file and which version it is.103r�zutf-8�backslashreplace)r:�tell�seekrc�decode)rU�loc�pdf_file_versions   rV�104pdf_header�PdfReader.pdf_header'sg���k�k��� ��������A���;�;�+�+�A�.�5�5�g�?Q�R��������a� ��rYc��SUl[[URR5SUl$!SUlf=f)z(XMP (Extensible Metadata Platform) data.TF)rQr
r4r��xmp_metadatarws rVr��PdfReader.xmp_metadata7s6��	.�(,�D�%����(8�(8�(E�(E�F�(-�D�%���D�%�s�*4�	=r�c��URcD[UR5VVs0sHup#URRU_M snnUl[U5(ag[
U[[45(dS5e[
U[5(aUnOURnURcS5eURRUS5$s snnf)z�105Retrieve the page number from an indirect reference.106 107Args:108    indirect_reference: The indirect reference to locate.109 110Returns:111    Page number or None.112 113Nr�z
hint for mypy)114rL�	enumerate�pagesr��idnumr2rGrHr+rg)rUr�r��xr�s     rV�_get_page_number_by_indirect�&PdfReader._get_page_number_by_indirect@s������$�:C�D�J�J�:O�!�:O�$�!��$�$�*�*�A�-�:O�!�D���-�.�.���,�s�N�.C�D�D�L�f�L�D��(�#�.�.�&�E�&�,�,�E�� � �,�=�o�=�,�� � �$�$�U�D�1�1��!s�#Cc� �URURup#[USU5R5n[	[115US5S:Xde[
UR55n[US5n[US5nUR5RS-nURS5 Xh:�aCUR(a[SUSUS	US11635e[SUSUS	USUS1173	[S9 Un/n	[!U5H�n118[#U5 URS
S5 [$R&"U5n[#U5 URS
S5 [$R&"U5n[#U5 URS
S5 U	R)[U5[U545 M� [+5n
Sn[-U	5H�ununnUR/SU5nUbUUR:XaUn
SnM4URUU-S5 [#U5 URS
S5 [1XP5nURR7US5unnUU:XaUR9SUU5 UUR:XdM�Un
SnM� U(dUR(a[5S5eU
$![2aLn[SUSUSU3[5 UR(a[5SU35e[+5nSnAN�SnAff=f)Nrr��/ObjStm�/Nz/Firstrz	Value /N z for object z exceeds maximum allowed value �.z. Limiting to ��src�����rFTzInvalid stream (index z) within object z 0: zCannot read object stream: �NNz%This is a fatal error in strict mode.)rEr�r+rjr
rar�get_datarH�	getbuffer�nbytesr�r;r"rr_r�rr.�read_from_stream�appendr-r��cache_get_indirect_objectr3r$r#rg�cache_indirect_object)rUr��stmnum�_idx�obj_stm�stream_data�n�first_offset�max_n�	obj_index�_i�objnum�offset�119target_obj�foundr��obj_num�120obj_offset�cachedr��exc�authoritative_stms                      rV�_get_object_from_stream�!PdfReader._get_object_from_stream\s��121�'�'�(:�(@�(@�A���'5�f�a��'F�'Q�'Q�'S���C���)�*�i�7�7�7��g�.�.�0�1�����
����7�8�,�-��122�%�%�'�.�.�!�3��������9��{�{�'�)�A�3�l�6�(�Ji�jo�ip�pq�(r�s�s���A�3�l�6�(�2Q�RW�QX�Xf�gl�fm�mn�o��
��A�,.�	���(�B���,����R��#�!�2�2�;�?�F���,����R��#�!�2�2�;�?�F���,����R��#����c�&�k�3�v�;�7�8��2<��123���(1�)�(<�$�A�$����3�3�A�w�?�F��!��0�6�6�6�!'�J� �E�����\�J�6��:�
 ��,����R��#�
#�!�+�4��$'+�&6�&6�&:�&:�7�L�&Q�#��t� �F�*��*�*�1�g�s�;��,�2�2�2� �124���Q)=�T�����7��
����;"�
#��,�Q�C�/?��i�t�C�5�*���125�;�;�&�5�c�U�;���!�l���
#�s�5J7�7126L
�AL�L
c���[U[5(a
[USU5nURURUR1275nUbU$URS:Xa-UR128UR;aURU5nGO�URUR;Ga�UR129URUR;Ga�URRUR05RUR130S5(a131[5$URURUR132nURRUS5 URUR5upEXAR133:wdXQR:wa[S5eXAR134:waOUR8(a>UR:(a,[S
UR135SURSUSUS3	5eOLXAR136:wa=UR:(a,[S
UR137SURSUSUS3	5eUR:(aXQR:XdeUR138UR4n	X�R<;a[?SU<S35eUR<RAU	5 [CURU5nUR<REU	5 URF(d�URHbsURHRK5(d[MS5e[O[PU5nURHRSX!R139URUR:S9nGO�[#URS5(a$[%URR'55nOmURR)5nURRSS5 URR+S5nURRUS5 [,R."SUR140SURS3R15U5nUGb�[3SUR141SURS3[45 URUR;a0URUR'UR7S5S-URURUR142'URRURUS5S-5 [WUR5 URRSS5 [CURU5nURF(d�URHbsURHRK5(d[MS5e[O[PU5nURHRSX!R143URUR:S9nOG[3SUR144SURS3[45 UR:(a[S5eURS:XaUR145UR;d'URYURUR146U5 U$![ Ga� [#URS5(a$[%URR'55nOmURR)5nURRSS5 URR+S5nURRUS5 [,R."SUR147SURS3R15U5nUb�[3S	UR148S149URS3[45 UR7S5S-URURUR150'URRUR7S5S-5 URUR5upEGN�SnSnGN�f=f)NrFz&Not matching, we parse the file for itr�r�z\sz\s+z\s+objz151Object ID �,z
 ref repairedrzExpected object ID (� z) does not match actual (z); xref table not zero-indexed.z).z&Detected loop with self reference for r�zFile has not been decrypted)r;zObject z foundz
 not defined.zCould not find object.)-rGrHr+r��152generationr�rEr�rCrDrgr-r:r��read_object_headerr#r�r^�bytesr�r�rc�re�search�encoderr_�startrBr;rPr"�addr3�removerQrR�is_decryptedr!r
r/�decrypt_object�endrr�)153rUr��retvalr�r�r��buf�p�m�current_objects154          rVrj�PdfReader.get_object�sB���(�#�.�.�!/�0B�A�t�!L���/�/��)�)�+=�+C�+C�155�����M��)�)�Q�.�"�(�(�D�,<�,<�<��1�1�2D�E�F��)�)�T�Y�Y�6�"�(�(�D�I�I�6H�6S�6S�,T�T��#�#�'�'�(:�(E�(E�r�J�N�N�"�(�(�%���"�|�#��I�I�0�;�;�<�=O�=U�=U�V�E��K�K���U�A�&�
$�$(�$;�$;�D�K�K�$H�!���5�5�5�!�%B�%B�B�&�'O�P�P�C�8�0�0�0�T�_�_��;�;�&�.�/A�/G�/G�.H��J\�Jg�Jg�Ih�i2�27���*��F7�7�����2�2�2�t�{�{�"�*�+=�+C�+C�*D�A�FX�Fc�Fc�Ed�e.�.3�W�A�j�\��E����{�{�!�%B�%B�B�B�B�0�6�6�8J�8U�8U�V�N��!4�!4�4�'�*P�Qc�Pf�fg�(h�i�i����#�#�N�3� ����d�3�F����&�&�~�6��,�,��1A�1A�1M��'�'�4�4�6�6�/�0M�N�N��i��0���)�)�8�8��4�4�6H�6S�6S��;�;�9����156�t�{�{�K�0�0��D�K�K�1�1�3�4���K�K�$�$�&����� � ��A�&��k�k�&�&�r�*����� � ��A�&��	�	��(�.�.�/�s�3E�3P�3P�2Q�QW�X�_�_�a���A��}���0�6�6�7�q�9K�9V�9V�8W�W]�^���&�0�0��	�	�A�?A�D�I�I�0�;�;�<��G�G�A�J��N��	�	�,�7�7�8�9K�9Q�9Q�R���� � ����q��A��.�$�T�[�[�1���� � ��Q�'�$�T�[�[�$�7���0�0�T�5E�5E�5Q��+�+�8�8�:�:�3�4Q�R�R�!�)�V�4�F�!�-�-�<�<�� 8� 8�:L�:W�:W�#�{�{�=��F��157��0�6�6�7�q�9K�9V�9V�8W�Wd�e����;�;�&�'?�@�@�
�)�)�Q�.�"�(�(�D�,<�,<�<��&�&�"�-�-�/A�/G�/G��
��
��m�
$��4�;�;��4�4����� 5� 5� 7�8�C����(�(�*�A��K�K�$�$�Q��*��+�+�*�*�2�.�C��K�K�$�$�Q��*��I�I��,�2�2�3�3�7I�7T�7T�6U�U[�\�c�c�e�����=�"�$�%7�%=�%=�$>�a�@R�@]�@]�?^�^k�l� �������a���I�I�0�;�;�<�*�0�0���K�K�$�$�Q�W�W�Q�Z�!�^�4�(,�(?�(?����(L�%�E�:��E�!#�J�1
$�s� AZ/�/F'a!�a!� a!c���[U5 [U5nURSS5 [U5nU[U5-nURSS5 [U5nU[U5-nURSS5 UR	S5n[U5 URSS5 U(a'UR(a[SUSU3[5 [U5[U54$)Nr�rrz.Superfluous whitespace found in object header r�)158rrr�rrcrr;rr_rH)rUr:�extrar�r��_objs      rVr��PdfReader.read_object_headerRs���159	�&�!�$�V�,�����B���%�f�-��
�%�f�-�-�����B���*�6�2�160�
�%�f�-�-�����B����{�{�1�~���F�#����B����T�[�[��@���q���U��
��5�z�3�z�?�*�*rYr�r�c�n�URRX45$![a [S5ef=f)Nz Maximum recursion depth reached.)r@rg�RecursionErrorr#)rUr�r�s   rVr��#PdfReader.cache_get_indirect_objectms?��	C��(�(�,�,�j�-@�A�A���	C��A�B�B�	C�s��4r�c���X4UR;a4SUSU3nUR(a[U5e[U[5 X0RX4'Ub[X!U5UlU$)NzOverwriting cache for r�)r@r;r#rr_r+r�)rUr�r�r��msgs     rVr��PdfReader.cache_indirect_objectusm��
��$�"7�"7�7�*�:�,�a��w�?�C��{�{�"�3�'�'��3��)�58���z�1�2��?�%3�E�t�%L�C�"��161rYc���URU:wa[S5eURUR4UR;a[S5eX RURUR4'XlU$)Nz,Cannot update PdfReader with external objectzCannot find referenced object)�pdf�162ValueErrorr�r�r@r�)rUr�r�s   rV�_replace_object�PdfReader._replace_object�st���!�!�T�)��K�L�L��)�)�+=�+C�+C�D�D�La�La�a��<�=�=�[^���1�<�<�>P�>V�>V�W�X�!3���163rYc�(�URU5 URU5 URU5nX lUR	X5nUS:wa7UR164(aU(a[
S5e[SUS3[5 URXU5 UR(a�UR165(d�UR5nURR5H�upVUS:XaM
[UR55nUHqnUR!XhS5 UR#U5up�X�UR-166:XdM?URUUURUU	'URUU	Ms M� UR!US5 UR167(d�UR5nURR5HUupVUS:XaM
[)UR55nUH)nUR!XhS5 UR#U5 M+ MW UR!US5 g	g	![$a UR'U5  GM{f=f![$a" [SUSUSXhS3[5 Xh	M�f=f)168zf169Read and process the PDF stream, extracting necessary data.170 171Args:172    stream: The PDF file stream.173 174rzBroken xref tablezincorrect startxref pointer(�)���zIgnoring wrong pointing object r�z	 (offset N)�_basic_validation�_find_eof_marker�_find_startxref_posrA�_get_xref_issuesr;r#rr_�_read_xref_tables_and_trailersrBr�rC�items�sorted�keysr�r�r��_rebuild_xref_table�list)rUr:�	startxref�
xref_issue_nrr��gen�175xref_entry�xref_kr��pid�_pgen�idss            rVrc�PdfReader.read�sF��	
���v�&����f�%��,�,�V�4�	�#���-�-�f�@�
��A���{�{�}�"�#6�7�7��9�-���J�H�U�	
�+�+�F�}�M��?�?�4�;�;��+�+�-�C�#'�9�9�?�?�#4����%�<����O�O�%���!�B��K�K�176���2��%)�%<�%<�V�%D�177���4�?�?�2�2�.2�i�i��n�R�.@��	�	�#��s�+� �I�I�c�N�2�.�!�
$5�&
�K�K��Q���{�{��+�+�-�C�#'�9�9�?�?�#4����%�<���:�?�?�,�-���B��K�K�178���2�+��/�/��7��	$5�
�K�K��Q��!��&���0�0��8����,&�+�&�=�b�T��3�%�y�Q[�Q_�P`�`a�b�$��'�N�+�s$�&I�I%�I"�!I"�%(J�Jc��URS[R5 URS5nUS:Xa[
S5eUS:waCUR(a[SURS5S	35e[S179U<3[5 URS[R5 g![a [S5ef=f)z)Ensure the stream is valid and not empty.r�zcannot read headerrYzCannot read an empty files%PDF-zPDF starts with '�utf8z', but '%PDF-' expectedzinvalid pdf header: N)
r��os�SEEK_SETrc�UnicodeDecodeErrorrr r;r#r�rr_�SEEK_END)rUr:�header_bytes   rVr��PdfReader._basic_validation�s������A�r�{�{�#�	=� �+�+�a�.�K��#�� �!<�=�=��(�"��{�{�"�'��(:�(:�6�(B�'C�D+�+���
�1�+��A�8�L����A�r�{�{�#��"�	=�&�';�<�<�	=�s�B.�.Cc�^�SnSmSnTRS5(d�TS:wa4U(a-[U4SjS55(a[S[5 gSnS	T;a[S180[5 UR	5U:a,UR181(a[
S5e[S[5 [U5mTRS5(dM�gg)
z�182Jump to the %%EOF marker.183 184According to the specs, the %%EOF marker should be at the very end of185the file. Hence for standard-compliant PDF documents this function will186read only the last part (DEFAULT_BUFFER_SIZE).187r�rYTs%%EOFc3�b># �UH$nTR5RU5v� M& g7fru)�strip�endswith)�.0�tr�lines  �rV�	<genexpr>�-PdfReader._find_eof_marker.<locals>.<genexpr>�s)�����8V�"�D�J�J�L�)�)�"�-�-�8V�s�,/)s%%EOs%%Es%%�%zEOF marker seems truncatedF�	startxrefzpCAUTION: startxref found while searching for %%EOF. The file might be truncated and some data might not be read.zEOF marker not foundN)�188startswith�anyrr_r�r;r#r)rUr:�HEADER_SIZE�firstrs    @rVr��PdfReader._find_eof_marker�s�����������/�/�(�+�+��s�{�u���8V����189#�#?��J�����t�#��S���190�{�{�}�{�*��;�;�&�'=�>�>��5�x�@�%�f�-�D�)�/�/�(�+�+rYc�J�[U5n[U5n[U5nURS5(d[S5eU$![aQ URS5(d[S5e[USSR55n[
S[5 U$f=f)zk191Find startxref entry - the location of the xref table.192 193Args:194    stream:195 196Returns:197    The bytes offset198 199rzstartxref not found�	Nz startxref on same line as offset)rrHrr#r�rrr_)rUr:rrs    rVr��PdfReader._find_startxref_poss���"�&�)��	:��D�	�I�&�f�-�D��?�?�<�0�0�"�#8�9�9�1�����	I��?�?�<�0�0�"�#8�9�9��D���H�N�N�,�-�I��=�x�H�200��	I�s�A�AB"�!B"c��URS5nUS:wa[S5e[U5 URSS5 Sn[	[201[
X55nU(a-US:wa'X@lUR(a[S[5 S	n[U5 URSS5 [	[202[
X55n[U[2035(d2[S204[5 URU5 UR5 g[U5 URSS5 SnXe:Ga;URS5nU(d[S5eUSS
;a.URSS5 URS5nUSS
;aM.USS;aURSS5 USSRS5up�USSn205[U5[U	5p�X�R0;a0UR0U'0UR2U'X@R0U;aOCW206S:XaX�R0UU'U207S:HUR2UU'U208S:HUR2SU'US-
nUS-
nXe:aGM;[U5 URSS5 URS5S:XaQURSS5 [5U5 [U5 URSS5 URS5S:XaMQURSS5 URS5nUS:waURSS5 OgGM�![a� [US5(a[!UR#55n
ODUR%5nURSS5 URS5n
URU5 [&R("US3R+5U
5nUc[SUS3[5 SnSnSn209GN[SUS3[5 [UR-S55nUR/5nGNZf=f![a GN�f=f![a GN�f=f) Nrsrefzxref table read errorr�rTrzFXref table not zero-indexed. ID numbers for objects will be corrected.Fz,Invalid/Truncated xref table. Rebuilding it.�z$Unexpected empty line in Xref table.�
210i����s0123456789t�� ��r�z\s+(\d+)\s+objzentry z( in Xref table invalid; object not foundr��fz' in Xref table invalid but object found�nr��traileri����)rcr#rr�r
rHr3rBr;rr_rGr�splitr�r^r�r�r�r�r�r��groupr�rCrDr)rUr:�ref�211first_time�num�size�cntr�offset_b�generation_b�entry_type_br�r�r�r��f�trailer_tags                 rV�_read_standard_xref_table�#PdfReader._read_standard_xref_tables���k�k�!�n���&�=��6�7�7��F�#����B����212���s�K��5�6�C��c�Q�h�"%���;�;�"�`� ���J���'��K�K��A����[��6�7�D��d�C�(�(��B����(�(��0����
����'��K�K��A���C��*��{�{�2����&�'M�N�N��1�g��,��K�K���+�!�;�;�r�?�D��1�g��,���8�~�-��K�K��A�&�+�-1�#�2�Y�_�_�T�-B�*�H�#'��2�;�L�),�X���L�8I�J�6�Y�Y�.�,.�D�I�I�j�)�79�D�(�(��4��)�)�J�/�/�213�#�t�+�5;�	�	�*�-�c�2��@L�PT�@T��,�,�Z�8��=��;G�4�;O��,�,�U�3�C�8��q����q���Y�*�Z
 ��'��K�K��A���+�+�a�.�D�(����B��"�!�&�)�#�F�+����B��"�	�+�+�a�.�D�(�214
�K�K��A�� �+�+�a�.�K��j�(����B��"��o��n!�+��v�{�3�3�#�F�$4�$4�$6�7��"�K�K�M�����A�q�)�$�k�k�"�o�����A���	�	�c�U�.�"9�"@�"@�"B�C�H�A��y�&�$�S�E�)Q�R�$��&+�215�!#��'+��&�$�S�E�)P�Q�$��&)������_�216�!"�����1+��P%�����%����s=�*0L2�2P8�Q	�2B>P5�3>P5�4P5�8217Q�Q�	218Q�Qrrc�R�0Ul0Ul0Ul[5Ul[5nUGbX$;a[
SUS3[5 gURU5 URUS5 URS5nUS;aURS5nUS:XaURU5nO~U(aURU5 gUR5(a>URU5nUR)U5 S219U;a[+[,US2205nOgUR/X5nUbGMgg![a SnNf=f![aTn[ R"UR;a"[
SUR$3[5 SnAg['S	U<35eSnAff=f)z?Read the cross-reference tables and trailers in the PDF stream.Nz'Circular xref chain detected at offset z221, stoppingrrr)�xz!Previous trailer cannot be read: zTrailer cannot be read: �/Prev)rCrDrEr)rFrOrr_r�r�rc�222_read_xrefrr��isdigit�_read_pdf15_xref_streamrhr��argsr#�_process_xref_streamr
rH�_read_xref_other_error)rUr:rr�visited_xref_offsetsr��223xrefstream�es        rVr��(PdfReader._read_xref_tables_and_trailers�s�����	�!������'�)���),����#��0��=�i�[�224�S���� �$�$�Y�/��K�K�	�1�%����A��A��G�|��K�K��N���D�y� �O�O�F�3�	��&��,�,�V�4�������I�!%�!=�!=�f�!E�J��)�)�*�5��j�(� $�S�*�W�*=� >�I�� �7�7��J�	�M�#��(!�&�$%�M�&��225!�I��w�w�$�,�,�.�&�?����x�H�(���&�)A�!��'G�H�H��
I�s0�8D6� E�6E�E�226F&�;F!�F!�!F&rJc�>�[R[R[R[R[R2274nUHBnX1;dM228X0R;dMURU5UR[U5'MD SU;a�URR5nURR[[US5S-S5 URUR5 URRUS5 gg)z#Process and handle the xref stream.�/XRefStmrrN)rhr�rlr�ri�SIZErF�raw_getr,r:r�r�r
rHrE)rUrJ�trailer_keys�keyr�s     rVrG�PdfReader._process_xref_stream�s����w�w��229�230�B�G�G�R�U�U�B�G�G�C���C�� �S���%<�0:�0B�0B�3�0G����Z��_�-� ���#���� � �"�A��K�K���T�#�z�*�'=�>��B�A�F��(�(����5��K�K���Q��"�	$rYc��URU5 URS5S:XagURSS5 [U5 URSS5 [	[231[[4[X55nUR5H$up4X0R;dMX@RU'M& SU;aZUR5nUR[	[US5S-S5 URU5 URUS5 SU;a[	[US5$g![a [SUSS3[ 5 NOf=f)	NrrYr�rNrzXRef object at z, can not be read, some object may be missingrB)r>rcr�rr
�dictrar	r3r�rFr�rHrEr�rr_)rUr:�new_trailerrR�valuer�s      rVrC�PdfReader._read_xref�s.���&�&�v�.��;�;�q�>�S� �����B����F�#����B����4��S��>�;�v�+D�E��%�+�+�-�J�C��,�,�&�$)���S�!�.���$����
�A��K�K��S�+�j�"9�:�Q�>��B�
��,�,�V�4�
�K�K��1���k�!���[��1�2�2����
��%�k�*�&=�%>�>j�k���
�s�2D/�/!E�Ec�`�US:Xa-UR(a[S5e[S[5 gUR	SS5 URS5nUR
S5nUS:wa232US	U-233-nU$UR	US5 [S2345H/nURS5R5(dM)X%-
nUs $ SUR;a4UR(d#[S[5 URU5 g[S5e![a [S
5ef=f)Nrz6/Prev=0 in the trailer (try opening with strict=False)zA/Prev=0 in the trailer - assuming there is no previous xref tablei����rr(�xrefr��235�z/Rootz"Invalid parent xref., rebuild xrefzCannot rebuild xrefz/Could not find xref table at specified location)r;r#rr_r�rc�findr�rDrFrr�)rUr:r�tmp�xref_loc�looks      rVrH� PdfReader._read_xref_other_error�s����>��{�{�"�L���
�S��
��	���C����k�k�"�o���8�8�G�$���r�>���h��&�I������I�q�!��"�I�D��{�{�1�~�%�%�'�'��!�	� � �	��d�l�l�"�4�;�;��?��J�
:��(�(��0���L�M�M���
:�"�#8�9�9�
:�s�:D�D-�index_pairs�entry_sizes�xref_streamc��^�[[U4Sj[[[	T5S5555S5n[	UR55U-S-n/nSn[
U5H�up�[U	5n236US-S:XaVXz-U:�aJUR(a[SXz-SUS35e[SXW-2375n[S	U238S239US3[S9 Un240Xz-
nURU2415 M� U$)
Nc3�@># �UHn[TU5v� M g7fru)rH)rr�rcs  �rVr�DPdfReader._sanitize_pdf15_xref_stream_index_pairs.<locals>.<genexpr>"s����!_�?^�!�#�k�!�n�"5�"5�?^�s�rrr�zTotal XRef entries z exceed maximum allowed value r�zClamping XRef count from z to z to fit stream size.r�)
�max�sumr��min�lenr�r�rHr;r"rr_r�)rUrbrcrd�min_entry_bytes�max_entries�result�total�index�242pair_value�pair_value_int�new_vs  `         rV�'_sanitize_pdf15_xref_stream_index_pairs�1PdfReader._sanitize_pdf15_xref_stream_index_pairss	����c�!_�u�S��[�IY�[\�E]�?^�!_�_�ab�c���+�.�.�0�1�_�D�q�H������!*�;�!7��E� ��_�N��q�y�A�~��)�K�7��{�{�/�1�%�2H�1I�Ig�hs�gt�tu�v��� ��;�#6�7�E�"�3�N�3C�4��w�Nb�c�$��&+�N��'���M�M�.�)�)"8�,�
rYc�R^^^	�URSS5 TRU5up#[[[	UT55n[[243US5S:wa[
SUS<35eTRX2U5 SU;a[
SU<S35eURS	S244US/5n[[[URS55m[T5S:�deTR(a[T5S:�a[
S
T35eTRUTUS9n[UR55m	S[S[ [["[S444UU	4SjjnS[S[ [["[S44S[$4U4SjjnTR'XVU5 U$)z-Read the cross-reference stream for PDF 1.5+.r�rr�z/XRefzUnexpected type r�zSize missing from XRef stream �!z/Indexrz/WrzToo many entry sizes: )rbrcrdr�r=.c�l>�TUS:�a#TRTU5n[UTU5$US:Xagg)Nrr)rcr)r��drcr�s  ��rV�	get_entry�4PdfReader._read_pdf15_xref_stream.<locals>.get_entry]sE����1�~��!��$�$�[��^�4��%�a��Q��8�8��A�v��rYr6r�c�n>�UTRRU/5;=(d UTR;$ru)rCrgrE)r6r�rUs  �rV�used_before�6PdfReader._read_pdf15_xref_stream.<locals>.used_beforejs-����$�)�)�-�-�245�B�7�7�R�3�$�BR�BR�;R�RrY)r�r�r
r'r3rar#r�rgrrHrlr;rurr�r�tuple�bool�_read_xref_subsections)246rUr:�stream_idnum�stream_generationrdrbr{r~rcr�s247`       @@rVrE�!PdfReader._read_pdf15_xref_streamAs����	���B���*.�*A�*A�&�*I�'���=�+�f�d�*C�D����[��)�*�g�5��!1�+�g�2F�1I�J�K�K��"�"�#4�K�P��+�%��!?���a�P�Q�Q�!�o�o�h��K��4H�0I�J���4��9�k�o�o�d�&;�<���;��1�$�$�$��;�;�3�{�+�a�/��!7��}�E�F�F��B�B�#��+�C�248���k�2�2�4�5��	��	��s�E�#�s�(�O�';�!<�	�	�	S�S�	S�e�C��s�C�x��4H�.I�	S�d�	S�249	
�#�#�K�K�H��rYc�h�US:XagURUS-250S5 URS5nUS:XaURS5nUS;agURS5nUS:waPSnUS;a URS5nUS:Xag	US;aM X RS	5-
nUR5S251:wagg)z�252Return an int which indicates an issue. 0 means there is no issue.253 254Args:255    stream:256    startxref:257 258Returns:259    0 means no issue, other values represent specific issues.260 261r�r�js
262 	rZrYs0123456789 	rhsobjr)r�rc�lower)r:rrs   rVr��PdfReader._get_xref_issuesrs�����>�����I��M�1�%��{�{�1�~���4�<��;�;�q�>�D��z�!���{�{�1�~���7�?��D��*�*��{�{�1�~���3�;���*�*�
�K�K��N�"�D��z�z�|�v�%��rY�datac#�# �Sn[S5n[S5nURSU5nUS:XagUS-263nUS:�a%X[;aUS-nUS:�aX[;aMUS-nUS:�a0X1Us=::aU::a!O OUS-nUS:�aX1Us=::aU::aMO US-nUS:�a%X[;aUS-nUS:�aX[;aMUS-nUS:�a0X1Us=::aU::a!O OUS-nUS:�aX1Us=::aU::aMO US-n	X�:a%Xv:a [XU5n264[XU5nX�U	4v� US-
nGM&7f)Nr�0�9s objr�rr�)�ordr]rrH)�clsr�rq�ord_0�ord_9�index_before_space�generation_end�generation_start�265object_end�object_start�
object_number�generation_numbers            rV�_find_pdf_objects�PdfReader._find_pdf_objects�s�������C����C�����I�I�g�u�-�E���{��!&����%��)�d�.F�J^�.^�"�a�'�"�%��)�d�.F�J^�.^�0�!�3�N�$��)�e�<N�7O�.X�SX�.X�"�a�'�"�%��)�e�<N�7O�.X�SX�.X�1�A�5��%��)�d�.F�J^�.^�"�a�'�"�%��)�d�.F�J^�.^�,�a�/�J�$��)�e�<N�7O�.X�SX�.X�"�a�'�"�%��)�e�<N�7O�.X�SX�.X�-��1�L��(�-=�-N� #�D�j�$A� B�
�$'��n�(M�$N�!�#��D�D��Q�J�E�E�s�A!E�%7E�0E�7E�	9Ec#��# �Sn[U5nURSU5nUS:XagUS-nXC:a$X[;aUS-
nXC:aX[;aMUS-U:aXUS-S:XaUv� US-
nMf7f)Nrr1r�r0rrhs<<)rlr]r)r�r�rq�data_length�index_after_trailers     rV�_find_pdf_trailers�PdfReader._find_pdf_trailers�s�������$�i����I�I�j�%�0�E���{��"'�!�)��&�3��8Q�Ui�8i�#�q�(�#�&�3��8Q�Ui�8i�#�Q�&��4��Re�fg�Rg�9h�lq�9q�)�)��Q�J�E��s�AA7�A7c�@�0UlURSS5 URS5nURU5H5up4nX@R;a0URU'XPRUU'M7 [	S[2665 URGHlnURUGHTnURURUUS5 UR
U5n[[[X55nURSS5S:waMi[UR55nSn	[U5n267U268R5(dOk[U2695n[!U5 URSS5 [U5n270U271R5(dO"[U2725nX<4UR"U'U	S-
n	M�X�RS5:wa/[	S	U	S273USUSURS5S
3	[2745 GMTGMW GMo URSS5 UR'U5Hdn
URU
S5 [[([*[*4[X55nUR-5HunnUUR.U'M Mf g![$a GM�f=f)Nrr�zparsing for Object Streamsr��r�rr�zfound z objects within Object(r�z275) whereas z	 expected)rCr�rcr�rr_r�r
r0r3rgrr�rrDrHrrEr�r�rUr	r�rF)rUr:r�r�r�r��_r��
object_stream�actual_count�current�inner_object_number�inner_generation_number�positionrVrRrWs                 rVr�PdfReader._rebuild_xref_table�sg����	����A�q���k�k�"�o��>B�>T�>T�U`�>a�:�M�l� �	�	�1�/1��	�	�+�,�:F�I�I�'�(��7�?b�276	�3�X�>�!%����!%���+<�!=�
����D�I�I�&7�8��G��K���/�/��7�A��|�[��-F�G�C��w�w�w��+�y�8� �$+�C�L�L�N�$;�M�#$�L��"7�
�"F��&���0�0�!�.1�'�l�+�,�]�;�%�*�*�2�q�1�"7�
�"F��&���0�0�!�25�g�,�/�AN�@h��(�(�)<�=�$��)���$�w�w�t�}�4�&�$�\�N�2I�-��XY�Zk�Yl�m(�(+����
��i�A�$��5�/">�"+�B	���A�q���/�/��<�H��K�K��!�$��t�C��H�~�{�6�/H�I�K�)�/�/�1�277��U�$)����S�!�2�	=��	!����s�AJ�
C(J�278J�J�	idx_pairsr{.r~c���URU5H�upE[XDU-5H�nU"S5nUS:XaU"S5nU"S5n	M#US:XaPU"S5n279U"S5nX�R;a0URU'U"Xk5(dX�RUU'MwMyUS:Xa3U"S5nU"S5n
SnU"Xk5(dX�4URU'M�M�UR(dM�[SU35e M� g)z-Read and process the subsections of the xref.rrrhzUnknown xref type: N)�_pairsr�rCrEr;r#)rUr�r{r~r�r7r6�	xref_type�next_free_object�next_generation�byte_offsetr��280objstr_num�	obstr_idxs              rVr�� PdfReader._read_xref_subsectionss��� �;�;�y�1�K�E��U�D�L�1��%�a�L�	���>�'0��|�$�&/��l�O��!�^�"+�A�,�K�!*�1��J�!���2�02��	�	�*�-�&�s�7�7�5@�	�	�*�-�c�2�8��!�^�!*�1��J� )�!��I�!"�J�&�s�7�7�1;�0G��(�(��-�8��[�[�[�&�)<�Y�K�'H�I�I�12�2rY�arrayc#�# �SnUS-[U5:a'XXS-4v� US-
nUS-[U5:aM&gg7f)z Iterate over pairs in the array.rrrhN)rl)rUr�r�s   rVr��PdfReader._pairs*sH���
���!�e�c�%�j� ��(�E�a�%�L�(�(�
��F�A��!�e�c�%�j� �s�9?�?c�p�UR(d[S5eURRU5$)an281When using an encrypted / secured PDF file with the PDF Standard282encryption handler, this function will allow the file to be decrypted.283It checks the given password against the document's user password and284owner password, and then stores the resulting decryption key if either285password is correct.286 287It does not matter which password was matched. Both passwords provide288the correct decryption key that will allow the document to be used with289this library.290 291Args:292    password: The password to match.293 294Returns:295    An indicator if the document was decrypted and whether it was the296    owner password or the user password.297 298zNot encrypted file)rRr#rm)rUr<s  rV�decrypt�PdfReader.decrypt1s0��(����3�4�4����&�&�x�0�0rYc�<�[RUR;$)z�299Read-only boolean property showing whether this PDF file is encrypted.300 301Note that this property, if true, will remain true even after the302:meth:`decrypt()<pypdf.PdfReader.decrypt>` method is called.303)rhrlrFrws rVrS�PdfReader.is_encryptedJs���z�z�T�\�\�)�)rY�namec��URnSU;d[US[5(dg[[U[	S55nSU;ag[5n[U5U[	S5'U[	S5U[	S5'UR
S[SUR55S-U5 [5nURUR5 XS[	S5'[[US5HOnUR5nS	U;a[S304URS3[5 URU[	S	5'MQ U$)z�305Add a top level form that groups all form fields below it.306 307Args:308    name: text string of the "/T" Attribute of the created object309 310Returns:311    The created object. ``None`` means no object was created.312 313�	/AcroFormN�/Fields�/Tz/Kidsrc3�:# �UHupUS:XdM
Uv� M g7f)rNrv)r�gr�s   rVr�-PdfReader.add_form_topname.<locals>.<genexpr>os���@� 5�f�q��a���� 5�s��	rz/ParentzTop Level Form Field z have a non-expected parent)r�rGr)r
r,r1r�rir@r&r�r�rjrr_)rUr��catalog�acroform�interim�arr�or�s        rV�add_form_topname�PdfReader.add_form_topnameTsE���"�"���g�%�Z��K� �"2�.314�.315���(�'�*�[�2I�*J�K���H�$��"�$��$4�T�$:��316�4� �!�'/�317�9�0E�'F��318�7�#�$��"�"�
��@�� 5� 5�@�@�1�D��	319�320�m���321�322�7�-�-�.�*-��I�&�'��k�7�7�#3�4�A��,�,�.�C��C���+�C�,B�,B�+C�C^�_���*1�)C�)C�C�323�9�%�&�5��rYc324�F�URnSU;d[US[5(dg[[U[	S55nSU;ag[[[[325U[	S55SR
55n[U5U[	S5'U$)z�326Rename top level form field that all form fields below it.327 328Args:329    name: text string of the "/T" field of the created object330 331Returns:332    The modified object. ``None`` means no object was modified.333 334r�Nr�rr�)r�rGr)r
r,r&rjr1)rUr�r�r�r�s     rV�rename_form_topname�PdfReader.rename_form_topnames����"�"���g�%�Z��K� �"2�.335�.336���(�'�*�[�2I�*J�K���H�$������h�z�)�'<�=�>�q�A�L�L�N�337��%5�T�$:��338�4� �!��rY�include�excludec�H�URRS5 URR5nSU0nUb+UR5VVs0sHupVXQ;dMXV_M nnnUb+UR5VVs0sHupVXR;dMXV_M nnnU$s snnfs snnf)z�339Integration into Jupyter Notebooks.340 341This method returns a dictionary that maps a mime-type to its342representation.343 344.. seealso::345 346    https://ipython.readthedocs.io/en/stable/config/integrating.html347rzapplication/pdf)r:r�rcr�)rUr�r��pdf_datar��k�vs       rV�_repr_mimebundle_�PdfReader._repr_mimebundle_�s���	
��������;�;�#�#�%���x�348����%)�Z�Z�\�B�\�T�Q�Q�\�D�A�D�\�D�B���%)�Z�Z�\�F�\�T�Q�Q�5E�D�A�D�\�D�F����
C��Gs�B�B�>B�
B)rRrPrQrLrKrAr`rMr?r@r:r;rFrCrDrBrE)FN)r=Nr�)Nr_�349__module__�__qualname__�__firstlineno__�__doc__rrrr�rar�rrHrWrNrTrrx�type�
BaseExceptionrrr~�propertyr)r�r�r&r�r�r4r�r-r+r�r/r�rjrr�r�r�r�r�rcr�r�r�r>r�rGrCrHrr'rur*r(rE�staticmethodr��classmethodrr�r�rr350r�r�rr�rSr�r�rUr	r��__static_attributes__rvrYrVr7r7_s����2�,0�	'8�5;�
'8��k�4�'�(�'8��'8���c�5�(�)�	'8�%-�S�M�
'8�351�'8�R
��{�D�/@�)A�
�d�
�*�8�E�#�u�*�4E�+F�*�4�*�(�4����4�
�.�/���-�(����'�	�352353��	��)$�-�)$��)$�V��x� 0�1����&�2�X�k�*�2��2��
 �C�
 ��
 ��.�h�~�6�.��.�2�"'��c�:�~�(M�"N�2�	�#��2�8\�"0�\�	�s�I�s�"�	#�\�|V�"'��^�(;�"<�V�	�)�	�V�p+��+��c�3�h��+�6C��C�&)�C�	�)�	�C����&)��08��0C��	�)�	���.��y��U^��@ �:�@ �$�@ �D$�354�$�t�$�$.�z�.�d�.�B�*����4�355��t��B/K� �/K�-5�c�]�/K�KN�/K�	
�/K�b356#�/?�357#�D�358#������
��4'N� �'N�-0�'N�	�#��'N�R#�#�C�y�#�7;�C�y�#�O\�#�	
�c��#�J/� �/�	�}�1�3F�F�	G�/�b� �� �� �� �� �D�&�U�&�x��c�3��m�8L�/M�&��&�P��e����
����(2*�*�2*��2*�h!J���9�!J��S�E�5��e�C��H�o�)=�#>�>�?�!J��s�E�#�u�S�#�X��*>�$?�@�$�F�G�	!J�359360�!J�F�D��I��(�5��c��?�*C��1��c�5�j� 1�1�l�1�2�*�d�*��*�)�S�)�X�6F�-G�)�V����9I�0J��</3�.2���t�X�c�]�*�+���t�X�c�]�*�+��361�c�3�h��	�rYr7)Drr�rI�collections.abcr�iorr�pathlibr�typesr�typingrr	r362rrr
�version_infor�typing_extensions�_doc_commonrrrRrr�_utilsrrrrrrrrr�	constantsrrh�errorsr r!r"r#r$r%�genericr&r'r(r)r*r+r,r-r.r/r0r1r2r3�xmpr4�_pager5r7rvrYrV�<module>r�s���<363�	�364�$�,��������w���&�5�1�365�366�367�)�������  ��!�Y��YrY
codekingpro/portable-devtools · Team Ai