� J�g<0���dZddlmZmZmZddlmZddlmZm Z m Z ddlm Z ddl mZ ddlmZn #e$rd ZYnwxYwd Zd Zd Zd ZGd�de ��ZGd�de��ZGd�de ��ZGd�de��Zd S)z� This module is in work-in-progress state. Hint tables / hint streams have not been implemented yet, and there are a few "TODO" comment remaining. cf. https://github.com/py-pdf/fpdf2/issues/62 �)�ContentWithoutID�OutputProducer� PDFHeader)� sign_content)�PDFArray�PDFContentStream� PDFObject)�iobj_ref)� buffer_subst�)�signerNz0%1%2%3%4%5%6%7%8%9%a%b%c%dz 1%2%3%4%5%6%z 2%3%4%5%6%7%z 3%4%5%6%7%8%c���eZdZ�fd�Z�xZS)�PDFLinearizationc����t�����d|_||_t|_d|_t|_t|_ t|_ dS)N�1) �super�__init__� linearized�n�%HINT_STREAM_OFFSET_LENGTH_PLACEHOLDER�h�o�!FIRST_PAGE_END_OFFSET_PLACEHOLDER�e�&MAIN_XREF_1ST_ENTRY_OFFSET_PLACEHOLDER�t�FILE_LENGTH_PLACEHOLDER�l)�self� pages_count� __class__s ��b/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/fpdf/linearization.pyrzPDFLinearization.__init__sN��� ��������������6������2���7���(�������__name__� __module__� __qualname__r� __classcell__�r!s@r"rrs8������� )� )� )� )� )� )� )� )� )r#rc�L�eZdZdZd�Zed���Zed���Zdd�ZdS)�PDFXrefAndTrailerz 0%1*2+3-2/1^c��||_|jdz|_d|_d|_d|_d|_d|_d|_dS)Nr) �output_builder�obj_id�count� start_obj_id� catalog_obj�info_obj� first_xref� main_xref� startxref)rr-s r"rzPDFXrefAndTrailer.__init__*sI��,���#�*�Q�.�� ��������� �����������r#c�*�t|j��S�N)�boolr4�rs r"� is_first_xrefzPDFXrefAndTrailer.is_first_xref6s���D�N�#�#�#r#c�*�t|j��Sr7)r8r3r9s r"� is_main_xrefzPDFXrefAndTrailer.is_main_xref:s���D�O�$�$�$r#Nc�|�|j}g}tt|j����|_|jr9t |j|j|j�dd����|_|� d��|� |j dkrdn|j �d|j ����|j s|� d��t|j ��dks Jd���t|j |j |j z��D]&}|� |j |d�d ����'|� d ��|� d ��|jr,|� d |j |jj z �����n|j r@|� d |jj ����|� d |j����n|� d |j ����|� dt#|jj������|� dt#|jj������|j}|���}|dkr|�|j��}|r|� d|�d���|� d��|� d��|j}|jr |jj}|j rd}|� |��|� d��d�|��S)N� � �xrefrr z0000000000 65535 f z<TODO: how to know the offsets in the 1st xref at this stage?�010z 00000 n �trailerz<<z/Size z/Prev z/Root z/Info �����z/ID [�]z>>r5�0z%%EOF� )r-�str�len�bufferr5r<r � PREV_MAIN_XREF_START_PLACEHOLDER�rjust�appendr0r/r:�offsets�ranger3r4�pdf_refr1�idr2�fpdf�file_id�_default_file_id�join)r�_security_handler�builder�outr.rQrRr5s r"� serializezPDFXrefAndTrailer.serialize>s1���%�����S���0�0�1�1��� � � �)����5���$�$�R��-�-���G�N� � � �6���� � � �4�,��1�1�a�a�t�7H�W�W�4�:�W�W�X�X�X��!� .� �J�J�,� -� -� -� ��� � �1� $� $� $� I� %� $� $��D�-�t�/@�4�:�/M�N�N� B� B�F� �J�J�'�/�&�1�@�@�@�@� A� A� A� A� � � �9���� � � �4���� � � /� �J�J�D�� �T�_�-B� B�D�D� E� E� E� E��!� 2�� � �:�D�N�$8�:�:�;�;�;�� � �K�D�$I�K�K�L�L�L�L�� � �0�D�J�0�0�1�1�1� �J�J�>���(8�(;� <� <�>�>� ?� ?� ?� �J�J�;��� �(8� 9� 9�;�;� <� <� <��<�D��l�l�n�n�G��"�}�}��/�/���?�?��� /�� � �-�7�-�-�-�.�.�.� � � �4���� � � �;�����N� � � � 2���1�I� � � ��I� � � �9���� � � �7�����y�y��~�~�r#r7) r%r&r'rJr�propertyr:r<rX�r#r"r+r+'ss������'5�$� � � ��$�$��X�$��%�%��X�%�.�.�.�.�.�.r#r+c� ��eZdZd�fd� Z�xZS)� PDFHintStreamFc����t���||���d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)N)�contents�compress) rr�srr�ar�v�i�cr�r�b)rr^r_r!s �r"rzPDFHintStream.__init__psq��� �����(�X��>�>�>�����������������������������������r#)Fr$r)s@r"r\r\os=������� � � � � � � � � � r#r\c��eZdZd�ZdS)�LinearizedOutputProducerc �d �|j}|j�t|j����t |j��}|�|��t|��}|j�|��|� ��}td��}|j�|��|� tdd����}|j dz|_t|j��}d|_ |�|� tdd������|���}|���} |���} |���} |���} |�| | | ��} |jD]}|�|d���|���}|���\}}|���}|���}t|��}|j�|��|j dz|_|D]7}t;|t<��s ||ur|xj dz c_ |j |_ �8|xj dz c_ |j |_|dj|_ tC|��|_"|�#|||d| |||���g}|D]�}||_$| |_%|j&D]^}|j'r|�|j'��|j(r4tS|j(d��r|�|j(j'���_|j&sd|_&��|D]}|�|j'���|D])}tU||j+dz j��|_,�*|j-j.j/D]$}||�+��dz |_0�%||_1||_2||fD]}||_3||_4�|j5rJd|j5�����|j6rJdto|j6�������|jD]�}t;|t<��rd}n@to|j5��|j6|j<|j8�9|j��}|rU|�:|��5|�;|�<����ddd��n #1swxYwY��|�;|�<������|�=��|j6|j}to|�<����}t}|j5t~d |d �d |d �d ���|_5t}|j5t�|j6|djdzd ���|_5t}|j5t�|j6|jd ���|_5t}|j5t�to|j5��d ���|_5|jCr=t�t�|j5|jC|jF|jG|jH|jI��|_5|j5S) N�r r�embedded_files)�pages_root_obj�first_page_obj�sig_annotation_obj�xmp_metadata_obj�struct_tree_root_obj�outline_dict_obj�destz@Nothing should have been appended to the .buffer at this stage: z.No offset should have been set at this stage: �[z 12dr?rD)JrQ�pdf_objsrLr� pdf_versionrr � _add_pdf_objr+� _add_catalogr\� _add_pages�slicer.r/�list�extend�_add_pages_root�_add_annotations_as_objects� _add_fonts� _add_images�_add_gfxstates�_add_resources_dictrk�_add_structure_tree�_add_document_outline�_add_xmp_metadata� _add_infor0� isinstancerrPrr�kids�_finalize_catalog�parent� resources�annotsrrra�hasattrrO� page_number�page_ref�struct_builder�doc_struct_elem�k�pgr3r4r1r2rIrMrH�trace_labels_per_obj_id�get� _trace_size�_outrX�_log_final_sections_sizesr rrrr� _sign_keyrr � _sign_cert�_sign_extra_certs�_sign_hashalgo� _sign_time) rrQ�linearization_objr3r1�hint_stream_obj� page_objs�first_xref_pdf_objsrlrn�font_objs_per_index�img_objs_per_index�gfxstate_objs_per_name�resources_dict_obj� embedded_filerprq� outline_itemsror2r4�pdf_obj�dests�page_obj�annot� outline_itemrr� struct_elemr@� trace_label� hs1_offset� hs1_lengths r"� bufferizez"LinearizedOutputProducer.bufferize�s���y�� � ���Y�t�'7�8�8�9�9�9�,�T�-=�>�>�� ���+�,�,�,�&�t�,�,� � � ���Z�(�(�(��'�'�)�)� �'��+�+�� � ���_�-�-�-��O�O�E�!�Q�K�K�0�0� � �;��?� ��"�4�=�1�1���� � �������q�$���8�8�9�9�9��-�-�/�/��!�=�=�?�?��"�o�o�/�/��!�-�-�/�/��!%�!4�!4�!6�!6��!�5�5� �!3�5K� � ��"�0� ?� ?�M� � � �m�-=� >� >� >� >�#�7�7�9�9��*.�*D�*D�*F�*F�'��-��1�1�3�3���>�>�#�#��%�d�+�+� � � ���Y�'�'�'�#'�+��/� ��*� -� -�G��w�(8�9�9� -��?�2�2�� � �q� � � �!%����� � � �q�� � �!�[���(��l�o���&�y�1�1��� ��� �)�$�Q�<�1�-�!5�-� � � � ���!� '� '�H�,�H�O�!3�H� �!�� /� /���:�-��L�L���,�,�,��7�/�w�u�w��7�7�/��L�L����.�.�.���?� '�"&����)� ,� ,�L� �L�L��*� +� +� +� +�� H� H�D�#�I�d�.>��.B�$C�$F�G�G�D�M�M��.�>�@� F� F�K�&�{�'>�'>�'@�'@�1�'D�E�K�N�N�)� ��(� ��� �+� %� %�D�*�D� �$�D�M�M�� � \� \� [�d�k� [� [� \� \� �� � P� P� O�C�� �<M�<M� O� O� P� P� ��}� /� /�G��'�#3�4�4� K�"� � �+.�t�{�+;�+;�� �W�Z�(�"�:�>�>�w�z�J�J� �� /��%�%�k�2�2�3�3��I�I�g�/�/�1�1�2�2�2�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3��� � �'�+�+�-�-�.�.�.�.� �&�&�(�(�(��\�/�"4�5� ���2�2�4�4�5�5� �"� �K� 1� 4� � 4� 4� 4�*� 4� 4� 4� 4� � �� � #� �K� -��|�I�a�L�O�a�/�0� 7� 7� � �� � #� �K� 2��|�I�2�3� :� :� � �� � #� �K� #��4�;��� &� &� � �� � �>� �&��� ������&��#�����D�K��{�s�.(T"�"T& �)T& N)r%r&r'r�rZr#r"rhrhs(������b�b�b�b�br#rh)�__doc__�outputrrr�signr�syntaxrrr r rO�utilr �endesiver � ImportErrorrrrrrr+r\rhrZr#r"�<module>r�s����� @�?�?�?�?�?�?�?�?�?�������9�9�9�9�9�9�9�9�9�9�'�'�'�'�'�'�������������������� �F�F�F�����)F�%�$2�!�)7�&�(�� )� )� )� )� )�y� )� )� )�E�E�E�E�E�(�E�E�E�P � � � � �$� � � � c�c�c�c�c�~�c�c�c�c�cs �1�;�;
Memory