§
    ¢”j…W  ã                   ó   — 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	m
Z
 dxZZd„ Z G d„ d	¦  «        Z G d
„ dee¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ dee¦  «        Z G d„ d¦  «        ZdS )z
A low-level PDF generator.

é    N)ÚBOM_UTF16_BE)Úmd5)ÚceilÚlogz0.12.1c                 ó°  — t          | t          ¦  «        r| S t          | t          ¦  «        rm|                      ¦   «         r/t	          t          | ¦  «        ¦  «                             d¦  «        S | d›                     d¦  «                             d¦  «        S t          | t          ¦  «        r| j	        S t	          | ¦  «                             d¦  «        S )zConvert item to bytes.ÚasciiÚfÚ0)
Ú
isinstanceÚbytesÚfloatÚ
is_integerÚstrÚintÚencodeÚrstripÚObjectÚdata)Úitems    ú]/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/pydyf/__init__.pyÚ	_to_bytesr      s·   € å�$�ÑÔð ØˆÝ	�D�%Ñ	 Ô	 ð Ø�?Š?ÑÔð 	;Ý•s˜4‘y”y‘>”>×(Ò(¨Ñ1Ô1Ð1à�;�;×%Ò% cÑ*Ô*×1Ò1°'Ñ:Ô:Ð:Ý	�D�&Ñ	!Ô	!ð ØŒyÐÝˆt‰9Œ9×Ò˜GÑ$Ô$Ð$ó    c                   óp   — e Zd ZdZd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	dS )r   zBase class for PDF objects.c                 ó>   — d | _         d| _        d| _        d| _        d S )Nr   Ún)ÚnumberÚoffsetÚ
generationÚfree©Úselfs    r   Ú__init__zObject.__init__    s$   € àˆŒàˆŒàˆŒð ˆŒ	ˆ	ˆ	r   c                 ód   — | j         › d| j        › d�                     ¦   «         }|| j        z   dz   S )z%Indirect representation of an object.ú z obj
s   
endobj)r   r   r   r   )r!   Úheaders     r   ÚindirectzObject.indirect+   s<   € ð ”KÐ9Ð9 $¤/Ð9Ð9Ð9×@Ò@ÑBÔBˆØ˜œ	Ñ! KÑ/Ð/r   c                 óJ   — | j         › d| j        › d�                     ¦   «         S )zObject identifier.r$   z R)r   r   r   r    s    r   Ú	referencezObject.reference1   s+   € ð ”+Ð3Ð3 ¤Ð3Ð3Ð3×:Ò:Ñ<Ô<Ð<r   c                 ó   — t          ¦   «         ‚)z@Data contained in the object. Shall be defined in each subclass.)ÚNotImplementedErrorr    s    r   r   zObject.data6   s   € õ "Ñ#Ô#Ð#r   c                 ó>   — | j          ot          | t          ¦  «         S )z7Whether the object can be included in an object stream.)r   r   ÚStreamr    s    r   ÚcompressiblezObject.compressible;   s!   € ð ”?Ð"ÐC­:°d½FÑ+CÔ+CÐ'CÐCr   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   Úpropertyr&   r(   r   r-   © r   r   r   r      sš   € € € € € Ø%Ð%ð	ð 	ð 	ð ð0ð 0ñ „Xð0ð
 ð=ð =ñ „Xð=ð ð$ð $ñ „Xð$ð ðDð Dñ „XðDð Dð Dr   r   c                   ó0   — e Zd ZdZdd„Zed„ ¦   «         ZdS )Ú
DictionaryzPDF Dictionary object.Nc                 ót   — t                                | ¦  «         t                               | |pi ¦  «         d S ©N)r   r"   Údict)r!   Úvaluess     r   r"   zDictionary.__init__C   s2   € Ý�Š˜ÑÔÐÝ�Š�d˜F˜L bÑ)Ô)Ð)Ð)Ð)r   c                 ót   — d„ |                       ¦   «         D ¦   «         }dd                     |¦  «        z   dz   S )Nc                 ó^   — g | ]*\  }}d t          |¦  «        z   dz   t          |¦  «        z   ‘Œ+S )ó   /ó    ©r   )Ú.0ÚkeyÚvalues      r   ú
<listcomp>z#Dictionary.data.<locals>.<listcomp>I   sI   € ð ,ð ,ð ,á��Uð •9˜S‘>”>Ñ! DÑ(­9°UÑ+;Ô+;Ñ;ð,ð ,ð ,r   ó   <<r   ó   >>)ÚitemsÚjoin)r!   Úresults     r   r   zDictionary.dataG   sF   € ð,ð ,à"Ÿjšj™lœlð,ñ ,ô ,ˆð �s—x’x Ñ'Ô'Ñ'¨%Ñ/Ð/r   r7   ©r.   r/   r0   r1   r"   r2   r   r3   r   r   r5   r5   A   sI   € € € € € Ø Ð ð*ð *ð *ð *ð ð0ð 0ñ „Xð0ð 0ð 0r   r5   c                   ó:  ‡ — e Zd ZdZd.ˆ fd„	Zd/d„Zd„ Zd0d„Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zd„ Zd0d„Zd0d„Zd0d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd0d„Zd0d„Zd0d„Zd„ Zd„ Zd „ Z d!„ Z!d"„ Z"d#„ Z#d$„ Z$d%„ Z%d&„ Z&d'„ Z'd(„ Z(d)„ Z)d*„ Z*d+„ Z+d,„ Z,e-d-„ ¦   «         Z.ˆ xZ/S )1r,   zPDF Stream object.NFc                 óz   •— t          ¦   «                              ¦   «          |pg | _        |pi | _        || _        d S r7   )Úsuperr"   ÚstreamÚextraÚcompress)r!   rL   rM   rN   Ú	__class__s       €r   r"   zStream.__init__Q   s:   ø€ Ý‰Œ×ÒÑÔÐà�l ˆŒà�[˜bˆŒ
à ˆŒˆˆr   c                 óä   — | j                              d|› �¦  «         |€| j                              d¦  «         dS | j                              |¦  «         | j                              d¦  «         dS )zBegin marked-content sequence.ú/Ns   BMCs   BDC©rL   Úappend)r!   ÚtagÚproperty_lists      r   Úbegin_marked_contentzStream.begin_marked_contentZ   sr   € àŒ×Ò˜9˜s˜9˜9Ñ%Ô%Ð%ØÐ ØŒK×Ò˜vÑ&Ô&Ð&Ð&Ð&àŒK×Ò˜}Ñ-Ô-Ð-ØŒK×Ò˜vÑ&Ô&Ð&Ð&Ð&r   c                 ó:   — | j                              d¦  «         dS )zBegin a text object.s   BTNrR   r    s    r   Ú
begin_textzStream.begin_textc   ó   € àŒ×Ò˜5Ñ!Ô!Ð!Ð!Ð!r   c                 óB   — | j                              |rdnd¦  «         dS )a  Modify current clipping path by intersecting it with current path.

        Use the nonzero winding number rule to determine which regions lie
        inside the clipping path by default.

        Use the even-odd rule if ``even_odd`` set to ``True``.

        s   W*ó   WNrR   ©r!   Úeven_odds     r   ÚclipzStream.clipg   s)   € ð 	Œ×Ò HÐ6˜5˜5°$Ñ7Ô7Ð7Ð7Ð7r   c                 ó:   — | j                              d¦  «         dS )z�Close current subpath.

        Append a straight line segment from the current point to the starting
        point of the subpath.

        ó   hNrR   r    s    r   ÚclosezStream.closer   s    € ð 	Œ×Ò˜4Ñ Ô Ð Ð Ð r   c                 ó
  — | j                              d                     t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )u¯   Add cubic BÃ©zier curve to current path.

        The curve shall extend from ``(x3, y3)`` using ``(x1, y1)`` and ``(x2,
        y2)`` as the BÃ©zier control points.

        r=   ó   cN©rL   rS   rF   r   )r!   Úx1Úy1Úx2Úy2Úx3Úy3s          r   Úcurve_tozStream.curve_to{   sr   € ð 	Œ×Ò˜4Ÿ9š9Ý�b‰MŒM�9 R™=œ=Ý�b‰MŒM�9 R™=œ=Ý�b‰MŒM�9 R™=œ=¨$ð&0ñ 1ô 1ñ 	2ô 	2ð 	2ð 	2ð 	2r   c           
      óÒ   — | j                              d                     t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )u±   Add cubic BÃ©zier curve to current path

        The curve shall extend to ``(x3, y3)`` using the current point and
        ``(x2, y2)`` as the BÃ©zier control points.

        r=   ó   vNrd   )r!   rg   rh   ri   rj   s        r   Úcurve_start_tozStream.curve_start_to‡   óa   € ð 	Œ×Ò˜4Ÿ9š9Ý�b‰MŒM�9 R™=œ=Ý�b‰MŒM�9 R™=œ=¨$ð&0ñ 1ô 1ñ 	2ô 	2ð 	2ð 	2ð 	2r   c           
      óÒ   — | j                              d                     t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )u«   Add cubic BÃ©zier curve to current path

        The curve shall extend to ``(x3, y3)`` using `(x1, y1)`` and ``(x3,
        y3)`` as the BÃ©zier control points.

        r=   ó   yNrd   )r!   re   rf   ri   rj   s        r   Úcurve_end_tozStream.curve_end_to’   ro   r   c                 ó`   — | j                              dt          |¦  «        z   dz   ¦  «         dS )zDraw object given by reference.r<   s    DoN©rL   rS   r   )r!   r(   s     r   Údraw_x_objectzStream.draw_x_object�   s0   € àŒ×Ò˜4¥)¨IÑ"6Ô"6Ñ6¸Ñ?Ñ@Ô@Ð@Ð@Ð@r   c                 ó:   — | j                              d¦  «         dS )z%End path without filling or stroking.ó   nNrR   r    s    r   Úendz
Stream.end¡   ó   € àŒ×Ò˜4Ñ Ô Ð Ð Ð r   c                 ó:   — | j                              d¦  «         dS )zEnd marked-content sequence.s   EMCNrR   r    s    r   Úend_marked_contentzStream.end_marked_content¥   s   € àŒ×Ò˜6Ñ"Ô"Ð"Ð"Ð"r   c                 ó:   — | j                              d¦  «         dS )zEnd text object.s   ETNrR   r    s    r   Úend_textzStream.end_text©   rY   r   c                 óB   — | j                              |rdnd¦  «         dS )znFill path using nonzero winding rule.

        Use even-odd rule if ``even_odd`` is set to ``True``.

        s   f*ó   fNrR   r\   s     r   ÚfillzStream.fill­   ó)   € ð 	Œ×Ò HÐ6˜5˜5°$Ñ7Ô7Ð7Ð7Ð7r   c                 óB   — | j                              |rdnd¦  «         dS )zyFill and stroke path usign nonzero winding rule.

        Use even-odd rule if ``even_odd`` is set to ``True``.

        s   B*ó   BNrR   r\   s     r   Úfill_and_strokezStream.fill_and_strokeµ   r�   r   c                 óB   — | j                              |rdnd¦  «         dS )z€Fill, stroke and close path using nonzero winding rule.

        Use even-odd rule if ``even_odd`` is set to ``True``.

        s   b*ó   bNrR   r\   s     r   Úfill_stroke_and_closezStream.fill_stroke_and_close½   r�   r   c                 óœ  — | j         rt          j         |¦  «        n|}t          j        |¦  «        dz   }| j                             d                     ddt          |¦  «        dt          |¦  «        dt          |¦  «        ddt          |¦  «        z   d	| j         rd
nddt          t          |¦  «        ¦  «        d|df¦  «        ¦  «         dS )a¾  Add an inline image.

        :param width: The width of the image.
        :type width: :obj:`int`
        :param height: The height of the image.
        :type height: :obj:`int`
        :param colorspace: The color space of the image, f.e. RGB, Gray.
        :type colorspace: :obj:`str`
        :param bpc: The bits per component. 1 for BW, 8 for grayscale.
        :type bpc: :obj:`int`
        :param raw_data: The raw pixel data.

        s   ~>r=   s   BIs   /Ws   /Hs   /BPCs   /CSs   /Devices   /Fs
   [/A85 /Fl]s   /A85s   /Ls   IDs   EIN)	rN   ÚzlibÚbase64Ú	a85encoderL   rS   rF   r   Úlen)r!   ÚwidthÚheightÚcolor_spaceÚbpcÚraw_datar   Úa85_datas           r   Úinline_imagezStream.inline_imageÅ   sÕ   € ð +/¬-ÐE�tŒ}˜XÑ&Ô&Ð&¸XˆÝÔ# DÑ)Ô)¨EÑ1ˆØŒ×Ò˜4Ÿ9š9ØØ•9˜UÑ#Ô#Ø•9˜VÑ$Ô$Ø•Y˜s‘^”^ØØ� ;Ñ/Ô/Ñ/ØØ!œ]Ð7ˆMˆM°Ø•9�S ™]œ]Ñ+Ô+ØØØð&
ñ ô ñ 	ô 	ð 	ð 	ð 	r   c                 óš   — | j                              d                     t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )z0Add line from current point to point ``(x, y)``.r=   ó   lNrd   ©r!   ÚxÚys      r   Úline_tozStream.line_toä   ó=   € àŒ×Ò˜4Ÿ9š9¥i°¡l¤lµI¸a±L´LÀ$Ð%GÑHÔHÑIÔIÐIÐIÐIr   c                 óš   — | j                              d                     t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )z8Begin new subpath by moving current point to ``(x, y)``.r=   ó   mNrd   r–   s      r   Úmove_tozStream.move_toè   rš   r   c                 óš   — | j                              d                     t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )zAMove text to next line at ``(x, y)`` distance from previous line.r=   s   TdNrd   r–   s      r   Úmove_text_tozStream.move_text_toì   s=   € àŒ×Ò˜4Ÿ9š9¥i°¡l¤lµI¸a±L´LÀ%Ð%HÑIÔIÑJÔJÐJÐJÐJr   c                 ó`   — | j                              dt          |¦  «        z   dz   ¦  «         dS )z@Paint shape and color shading using shading dictionary ``name``.r<   s    shNrt   )r!   Únames     r   Úpaint_shadingzStream.paint_shadingð   s.   € àŒ×Ò˜4¥)¨D¡/¤/Ñ1°FÑ:Ñ;Ô;Ð;Ð;Ð;r   c                 ó:   — | j                              d¦  «         dS )zRestore graphic state.ó   QNrR   r    s    r   Ú	pop_statezStream.pop_stateô   ry   r   c                 ó:   — | j                              d¦  «         dS )zSave graphic state.ó   qNrR   r    s    r   Ú
push_statezStream.push_stateø   ry   r   c           
      óÒ   — | j                              d                     t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )z–Add rectangle to current path as complete subpath.

        ``(x, y)`` is the lower-left corner and width and height the
        dimensions.

        r=   s   reNrd   )r!   r—   r˜   r�   rŽ   s        r   Ú	rectanglezStream.rectangleü   se   € ð 	Œ×Ò˜4Ÿ9š9Ý�a‰LŒL�) A™,œ,Ý�eÑÔ�i¨Ñ/Ô/°ð&8ñ 9ô 9ñ 	:ô 	:ð 	:ð 	:ð 	:r   c           	      ó¾   — | j                              d                     t          |¦  «        t          |¦  «        t          |¦  «        |rdndf¦  «        ¦  «         dS )z”Set RGB color for nonstroking operations.

        Set RGB color for stroking operations instead if ``stroke`` is set to
        ``True``.

        r=   s   RGs   rgNrd   )r!   ÚrÚgÚbÚstrokes        r   Úset_color_rgbzStream.set_color_rgb  sb   € ð 	Œ×Ò˜4Ÿ9š9Ý�a‰LŒL�) A™,œ,­	°!©¬ØÐ'ˆUˆU %ð&*ñ +ô +ñ 	,ô 	,ð 	,ð 	,ð 	,r   c                 ón   — | j                              dt          |¦  «        z   dz   |rdndz   ¦  «         dS )zwSet the nonstroking color space.

        If stroke is set to ``True``, set the stroking color space instead.

        r<   r=   s   CSs   csNrt   )r!   Úspacer¯   s      r   Úset_color_spacezStream.set_color_space  sP   € ð 	Œ×ÒØ•9˜UÑ#Ô#Ñ# dÑ*°vÐ.H¨e¨eÀ5ÑIñ	Kô 	Kð 	Kð 	Kð 	Kr   c                 óº   — |rg |¢dt          |¦  «        z   ‘R }| j                             d                     d„ |D ¦   «         ¦  «        dz   |rdndz   ¦  «         dS )z‹Set special color for nonstroking operations.

        Set special color for stroking operation if ``stroke`` is set to ``True``.

        r<   r=   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r7   r>   )r?   Úoperands     r   ú	<genexpr>z+Stream.set_color_special.<locals>.<genexpr>$  s*   è è € ÐAÐA¨W•i Ñ(Ô(ÐAÐAÐAÐAÐAÐAr   s   SCNs   scnN)r   rL   rS   rF   )r!   r¡   r¯   Úoperandss       r   Úset_color_specialzStream.set_color_special  s�   € ð ð 	;Ø:˜Ð: 4­)°D©/¬/Ñ#9Ð:Ð:ˆHØŒ×ÒØ�IŠIÐAÐA¸ÐAÑAÔAÑAÔAÀDÑHØÐ)ˆVˆV 6ñ+ñ	,ô 	,ð 	,ð 	,ð 	,r   c                 ó¤   — | j                              d                     t          |¦  «        j        t          |¦  «        df¦  «        ¦  «         dS )zÊSet dash line pattern.

        :param dash_array: Dash pattern.
        :type dash_array: :term:`iterable`
        :param dash_phase: Start of dash phase.
        :type dash_phase: :obj:`int`

        r=   ó   dN)rL   rS   rF   ÚArrayr   r   )r!   Ú
dash_arrayÚ
dash_phases      r   Úset_dashzStream.set_dash'  s_   € ð 	Œ×Ò˜4Ÿ9š9Ý�*ÑÔÔ"¥I¨jÑ$9Ô$9¸4ð&Añ Bô Bñ 	Cô 	Cð 	Cð 	Cð 	Cr   c                 ó†   — | j                              dt          |¦  «        z   dz   t          |¦  «        z   dz   ¦  «         dS )zSet font name and size.r<   r=   s    TfNrt   )r!   ÚfontÚsizes      r   Úset_font_sizezStream.set_font_size3  sN   € àŒ×ÒØ•9˜T‘?”?Ñ" TÑ)­I°d©O¬OÑ;¸fÑDñ	Fô 	Fð 	Fð 	Fð 	Fr   c                 óZ   — | j                              t          |¦  «        dz   ¦  «         dS )zSet text rendering mode.s    TrNrt   )r!   Úmodes     r   Úset_text_renderingzStream.set_text_rendering8  s)   € àŒ×Ò�9 T™?œ?¨VÑ3Ñ4Ô4Ð4Ð4Ð4r   c                 óZ   — | j                              t          |¦  «        dz   ¦  «         dS )zSet text rise.s    TsNrt   )r!   rŽ   s     r   Úset_text_risezStream.set_text_rise<  s+   € àŒ×Ò�9 VÑ,Ô,¨vÑ5Ñ6Ô6Ð6Ð6Ð6r   c                 óZ   — | j                              t          |¦  «        dz   ¦  «         dS )zSet line cap style.s    JNrt   )r!   Úline_caps     r   Úset_line_capzStream.set_line_cap@  s+   € àŒ×Ò�9 XÑ.Ô.°Ñ6Ñ7Ô7Ð7Ð7Ð7r   c                 óZ   — | j                              t          |¦  «        dz   ¦  «         dS )zSet line join style.s    jNrt   )r!   Ú	line_joins     r   Úset_line_joinzStream.set_line_joinD  s+   € àŒ×Ò�9 YÑ/Ô/°%Ñ7Ñ8Ô8Ð8Ð8Ð8r   c                 óZ   — | j                              t          |¦  «        dz   ¦  «         dS )zSet line width.s    wNrt   )r!   r�   s     r   Úset_line_widthzStream.set_line_widthH  s+   € àŒ×Ò�9 UÑ+Ô+¨eÑ3Ñ4Ô4Ð4Ð4Ð4r   c                 ó
  — | j                              d                     t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )am  Set current transformation matrix.

        :param a: Top left number in the matrix.
        :type a: :obj:`int` or :obj:`float`
        :param b: Top middle number in the matrix.
        :type b: :obj:`int` or :obj:`float`
        :param c: Middle left number in the matrix.
        :type c: :obj:`int` or :obj:`float`
        :param d: Middle middle number in the matrix.
        :type d: :obj:`int` or :obj:`float`
        :param e: Bottom left number in the matrix.
        :type e: :obj:`int` or :obj:`float`
        :param f: Bottom middle number in the matrix.
        :type f: :obj:`int` or :obj:`float`

        r=   s   cmNrd   ©r!   Úar®   ÚcÚdÚer	   s          r   Ú
set_matrixzStream.set_matrixL  óq   € ð" 	Œ×Ò˜4Ÿ9š9Ý�a‰LŒL�) A™,œ,­	°!©¬Ý�a‰LŒL�) A™,œ,­	°!©¬°eð&=ñ >ô >ñ 	?ô 	?ð 	?ð 	?ð 	?r   c                 óZ   — | j                              t          |¦  «        dz   ¦  «         dS )zSet miter limit.s    MNrt   )r!   Úmiter_limits     r   Úset_miter_limitzStream.set_miter_limita  s+   € àŒ×Ò�9 [Ñ1Ô1°EÑ9Ñ:Ô:Ð:Ð:Ð:r   c                 ó`   — | j                              dt          |¦  «        z   dz   ¦  «         dS )zkSet specified parameters in graphic state.

        :param state_name: Name of the graphic state.

        r<   s    gsNrt   )r!   Ú
state_names     r   Ú	set_statezStream.set_statee  s2   € ð 	Œ×Ò˜4¥)¨JÑ"7Ô"7Ñ7¸&Ñ@ÑAÔAÐAÐAÐAr   c                 ó
  — | j                              d                     t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        df¦  «        ¦  «         dS )a€  Set current text and text line transformation matrix.

        :param a: Top left number in the matrix.
        :type a: :obj:`int` or :obj:`float`
        :param b: Top middle number in the matrix.
        :type b: :obj:`int` or :obj:`float`
        :param c: Middle left number in the matrix.
        :type c: :obj:`int` or :obj:`float`
        :param d: Middle middle number in the matrix.
        :type d: :obj:`int` or :obj:`float`
        :param e: Bottom left number in the matrix.
        :type e: :obj:`int` or :obj:`float`
        :param f: Bottom middle number in the matrix.
        :type f: :obj:`int` or :obj:`float`

        r=   s   TmNrd   rÒ   s          r   Úset_text_matrixzStream.set_text_matrixm  rØ   r   c                 ó`   — | j                              dt          |¦  «        z   dz   ¦  «         dS )z4Show text strings with individual glyph positioning.ó   [s   ] TJNrt   ©r!   Útexts     r   Ú	show_textzStream.show_text‚  s.   € àŒ×Ò˜4¥)¨D¡/¤/Ñ1°GÑ;Ñ<Ô<Ð<Ð<Ð<r   c                 ód   — | j                              t          |¦  «        j        dz   ¦  «         dS )zShow single text string.s    TjN)rL   rS   ÚStringr   rã   s     r   Úshow_text_stringzStream.show_text_string†  s,   € àŒ×Ò�6 $™<œ<Ô,¨vÑ5Ñ6Ô6Ð6Ð6Ð6r   c                 ó:   — | j                              d¦  «         dS )zStroke path.ó   SNrR   r    s    r   r¯   zStream.strokeŠ  ry   r   c                 ó:   — | j                              d¦  «         dS )zStroke and close path.ó   sNrR   r    s    r   Ústroke_and_closezStream.stroke_and_closeŽ  ry   r   c                 ó�  — d                      d„ | j        D ¦   «         ¦  «        }t          | j                             ¦   «         ¦  «        }| j        rFd|d<   t          j        d¬¦  «        }|                     |¦  «        }||                     ¦   «         z  }t          |¦  «        |d<   d                      |j
        d|d	f¦  «        S )
Nó   
c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r7   r>   )r?   r   s     r   r·   zStream.data.<locals>.<genexpr>”  s(   è è € ÐDÐD°�I d™OœOÐDÐDÐDÐDÐDÐDr   z/FlateDecodeÚFilteré	   )ÚlevelÚLengths   streams	   endstream)rF   rL   r5   rM   ÚcopyrN   r‰   ÚcompressobjÚflushrŒ   r   )r!   rL   rM   rö   s       r   r   zStream.data’  s¸   € à—’ÐDÐD¸¼ÐDÑDÔDÑDÔDˆÝ˜4œ:Ÿ?š?Ñ,Ô,Ñ-Ô-ˆØŒ=ð 	*Ø,ˆE�(‰OÝÔ*°Ð3Ñ3Ô3ˆKØ ×)Ò)¨&Ñ1Ô1ˆFØ�k×'Ò'Ñ)Ô)Ñ)ˆFÝ˜f™+œ+ˆˆh‰Ø�zŠz˜5œ: y°&¸,ÐGÑHÔHÐHr   )NNFr7   )F)0r.   r/   r0   r1   r"   rV   rX   r^   ra   rk   rn   rr   ru   rx   r{   r}   r€   r„   r‡   r“   r™   r�   rŸ   r¢   r¥   r¨   rª   r°   r³   r¹   r¿   rÃ   rÆ   rÈ   rË   rÎ   rÐ   r×   rÛ   rÞ   rà   rå   rè   r¯   rí   r2   r   Ú__classcell__©rO   s   @r   r,   r,   O   sþ  ø€ € € € € ØÐð!ð !ð !ð !ð !ð !ð'ð 'ð 'ð 'ð"ð "ð "ð	8ð 	8ð 	8ð 	8ð!ð !ð !ð
2ð 
2ð 
2ð	2ð 	2ð 	2ð	2ð 	2ð 	2ðAð Að Að!ð !ð !ð#ð #ð #ð"ð "ð "ð8ð 8ð 8ð 8ð8ð 8ð 8ð 8ð8ð 8ð 8ð 8ðð ð ð>Jð Jð JðJð Jð JðKð Kð Kð<ð <ð <ð!ð !ð !ð!ð !ð !ð	:ð 	:ð 	:ð	,ð 	,ð 	,ð 	,ðKð Kð Kð Kð
,ð 
,ð 
,ð 
,ð
Cð 
Cð 
CðFð Fð Fð
5ð 5ð 5ð7ð 7ð 7ð8ð 8ð 8ð9ð 9ð 9ð5ð 5ð 5ð?ð ?ð ?ð*;ð ;ð ;ðBð Bð Bð?ð ?ð ?ð*=ð =ð =ð7ð 7ð 7ð!ð !ð !ð!ð !ð !ð ð	Ið 	Iñ „Xð	Ið 	Ið 	Ið 	Ið 	Ir   r,   c                   ó:   ‡ — e Zd ZdZdˆ fd„	Zed„ ¦   «         Zˆ xZS )rç   zPDF String object.Ú c                 óV   •— t          ¦   «                              ¦   «          || _        d S r7   )rK   r"   Ústring)r!   rý   rO   s     €r   r"   zString.__init__¡  s$   ø€ Ý‰Œ×ÒÑÔÐàˆŒˆˆr   c                 ó:  — 	 t          j        ddt          | j        ¦  «        ¦  «        }d|z   dz   S # t          $ r^ t
          t          | j        ¦  «                             d¦  «        z   }d|                     ¦   «                              ¦   «         z   dz   cY S w xY w)Ns
   ([\\\(\)])s   \\\1ó   (ó   )z	utf-16-beó   <ó   >)	ÚreÚsubr   rý   ÚUnicodeEncodeErrorr   r   r   Úhex)r!   ÚescapedÚencodeds      r   r   zString.data¦  sœ   € ð		8õ
 ”f˜^¨XµyÀÄÑ7MÔ7MÑNÔNˆGØ˜'‘> DÑ(Ð(øÝ!ð 	8ð 	8ð 	8Ý"¥S¨¬Ñ%5Ô%5×%<Ò%<¸[Ñ%IÔ%IÑIˆGØ˜'Ÿ+š+™-œ-×.Ò.Ñ0Ô0Ñ0°4Ñ7Ð7Ð7Ð7ð	8øøøs   ‚/2 ²A%BÂB)rû   )r.   r/   r0   r1   r"   r2   r   rø   rù   s   @r   rç   rç   Ÿ  s^   ø€ € € € € ØÐðð ð ð ð ð ð
 ð
8ð 
8ñ „Xð
8ð 
8ð 
8ð 
8ð 
8r   rç   c                   ó0   — e Zd ZdZdd„Zed„ ¦   «         ZdS )r¼   zPDF Array object.Nc                 ót   — t                                | ¦  «         t                               | |pg ¦  «         d S r7   )r   r"   Úlist)r!   Úarrays     r   r"   zArray.__init__¶  s2   € Ý�Š˜ÑÔÐÝ�Š�d˜E˜K RÑ(Ô(Ð(Ð(Ð(r   c                 óL   — dd                      d„ | D ¦   «         ¦  «        z   dz   S )Nrâ   r=   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r7   r>   )r?   Úchilds     r   r·   zArray.data.<locals>.<genexpr>¼  s*   è è € ÐCÐC°U¥	¨%Ñ 0Ô 0ÐCÐCÐCÐCÐCÐCr   ó   ])rF   r    s    r   r   z
Array.dataº  s-   € à�d—i’iÐCÐC¸dÐCÑCÔCÑCÔCÑCÀdÑJÐJr   r7   rH   r3   r   r   r¼   r¼   ´  sN   € € € € € ØÐð)ð )ð )ð )ð ðKð Kñ „XðKð Kð Kr   r¼   c                   óH   — e Zd ZdZd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Z	dd	„Z
d
S )ÚPDFzPDF document.c                 ó®  — g | _         t          ¦   «         }d|_        d|_        |                      |¦  «         t          dt          g ¦  «        ddœ¦  «        | _        |                      | j        ¦  «         t          i ¦  «        | _        t          d| j        j	        dœ¦  «        | _
        |                      | j
        ¦  «         d| _        d| _        dS )	zCreate a PDF document.iÿÿ  r	   z/Pagesr   )ÚTypeÚKidsÚCountz/Catalog)r  ÚPagesN)Úobjectsr   r   r   Ú
add_objectr5   r¼   ÚpagesÚinfor(   ÚcatalogÚcurrent_positionÚxref_position)r!   Úzero_objects     r   r"   zPDF.__init__Á  sÝ   € ð ˆŒå‘h”hˆØ!&ˆÔØˆÔØ�Š˜Ñ$Ô$Ð$õ  ØÝ˜"‘I”IØð!
ð !
ñ ô ˆŒ
ð
 	�Š˜œ
Ñ#Ô#Ð#õ ˜r‘N”NˆŒ	õ "ØØ”ZÔ)ð#
ð #
ñ ô ˆŒð 	�Š˜œÑ%Ô%Ð%ð !"ˆÔà!ˆÔÐÐr   c                 óª   — | j         dxx         dz  cc<   |                      |¦  «         | j         d                              |j        ddg¦  «         dS )zfAdd page to the PDF.

        :param page: New page.
        :type page: :class:`Dictionary`

        r  é   r  r   ÚRN)r  r  Úextendr   )r!   Úpages     r   Úadd_pagezPDF.add_pageã  s^   € ð 	Œ
�7ÐÐÔ˜qÑ ÐÐÑØ�Š˜ÑÔÐØŒ
�6Ô×!Ò! 4¤;°°3Ð"7Ñ8Ô8Ð8Ð8Ð8r   c                 ól   — t          | j        ¦  «        |_        | j                             |¦  «         dS )zAdd object to the PDF.N)rŒ   r  r   rS   )r!   Úobject_s     r   r  zPDF.add_objectî  s/   € å˜Tœ\Ñ*Ô*ˆŒØŒ×Ò˜GÑ$Ô$Ð$Ð$Ð$r   c                 ó\   — t          d„ | j        d         d d d…         D ¦   «         ¦  «        S )Nc              3   óF   K  — | ]}|› d �                      d¦  «        V — ŒdS )z 0 Rr   N)r   )r?   Úobject_numbers     r   r·   z&PDF.page_references.<locals>.<genexpr>õ  sM   è è € ð :ð :àð Ð"Ð"Ð"×)Ò)¨'Ñ2Ô2ð:ð :ð :ð :ð :ð :r   r  é   )Útupler  r    s    r   Úpage_referenceszPDF.page_referencesó  sB   € åð :ð :à!%¤¨FÔ!3°C°C°a°CÔ!8ð:ñ :ô :ñ :ô :ð 	:r   c                 óv   — | xj         t          |¦  «        dz   z  c_         |                     |dz   ¦  «         dS )zÅWrite line to output.

        :param content: Content to write.
        :type content: :obj:`bytes`
        :param output: Output stream.
        :type output: binary :term:`file object`

        r!  rï   N)r  rŒ   Úwrite)r!   ÚcontentÚoutputs      r   Ú
write_linezPDF.write_lineù  s?   € ð 	ÐÔ¥ W¡¤°Ñ!1Ñ1ÐÔØ�Š�W˜u‘_Ñ%Ô%Ð%Ð%Ð%r   ó   1.7Fc           
      ó|  ‡— t          |pd¦  «        }|dvrt          |¦  «        }| j        r|                      | j        ¦  «         |                      d|z   |¦  «         |                      d|¦  «         |dk    �r|�r	g }| j        D ]R}|j        dk    rŒ|j        r|                     |¦  «         Œ+| j        |_	        |                      |j
        |¦  «         ŒSg g}d}t          |¦  «        D ]q\  }	}|j        }
|                     |
¦  «         |d                              |j        ¦  «         |d                              |¦  «         |t          |
¦  «        dz   z  }Œrd	                     d
„ |d         D ¦   «         ¦  «        |d<   dt          |¦  «        t          |d         ¦  «        dz   dœ}t!          |||¦  «        }| j        |_	        |                      |¦  «         |                      |j
        |¦  «         g }d}| j        D ]`}|j        r#|                     d|j        |f¦  «         |dz  }Œ,|                     t#          |j        ¦  «        |j	        |j        f¦  «         Œa|                     d| j        df¦  «         t'          t)          | j        dz   d¦  «        ¦  «        }t+          d„ | j        D ¦   «         ¦  «        }t'          t)          t+          |t          |¦  «        ¦  «        dz   d¦  «        ¦  «        }d||fŠd                     ˆfd„|D ¦   «         ¦  «        }dt-          dt          | j        ¦  «        dz   f¦  «        t-          ‰¦  «        t          | j        ¦  «        dz   | j        j        dœ}| j        r| j        j        |d<   |r•d                     d„ | j        D ¦   «         ¦  «        }
t3          |
¦  «                             ¦   «                              ¦   «         }|du r|}t-          t9          |¦  «        j        t9          |¦  «        j        f¦  «        |d<   t!          |g||¦  «        }| j        x| _        |_	        |                      |¦  «         |                      |j
        |¦  «         �nY| j        D ]5}|j        dk    rŒ| j        |_	        |                      |j
        |¦  «         Œ6| j        | _        |                      d|¦  «         |                      dt          | j        ¦  «        › �                     ¦   «         |¦  «         | j        D ]D}|                      |j	        d›d	|j        d›d	|j        › d	�                     ¦   «         |¦  «         ŒE|                      d|¦  «         |                      d|¦  «         |                      dt          | j        ¦  «        › �                     ¦   «         |¦  «         |                      d| j        j        z   |¦  «         | j        r#|                      d | j        j        z   |¦  «         |r£d                     d!„ | j        D ¦   «         ¦  «        }
t3          |
¦  «                             ¦   «                              ¦   «         }|du r|}|                      d"t9          |¦  «        j        z   d#z   t9          |¦  «        j        z   d$z   |¦  «         |                      d%|¦  «         |                      d&|¦  «         |                      | j        ›                      ¦   «         |¦  «         |                      d'|¦  «         d(S ))aÛ  Write PDF to output.

        :param output: Output stream.
        :type output: binary :term:`file object`
        :param bytes version: PDF version.
        :param identifier: PDF file identifier. Default is :obj:`False`
          to include no identifier, can be set to :obj:`True` to generate an
          automatic identifier.
        :type identifier: :obj:`bytes` or :obj:`bool`
        :param bool compress: whether the PDF uses a compressed object stream.

        r3  )FTNs   %PDF-s   %ðŸ–¤s   1.5r	   r   r!  r$   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r7   )r   )r?   Úis     r   r·   zPDF.write.<locals>.<genexpr>4  s(   è è € Ð ;Ð ;¨A¥ Q¡¤Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;r   z/ObjStm)r  ÚNÚFirsté   é   c              3   ó$   K  — | ]}|j         V — Œd S r7   )r   )r?   r'  s     r   r·   zPDF.write.<locals>.<genexpr>L  s>   è è € ð !@ð !@Ø'.�Ô"ð!@ð !@ð !@ð !@ð !@ð !@r   r   c              3   óp   •K  — | ]0}t          ‰|¦  «        D ]\  }}|                     |d ¦  «        V — ŒŒ1dS )ÚbigN)ÚzipÚto_bytes)r?   ÚlineÚlengthrA   Úxref_lengthss       €r   r·   zPDF.write.<locals>.<genexpr>Q  sr   øè è € ð #Oð #Oàµc¸,ÈÑ6MÔ6Mð#Oð #Oá%2 V¨Uð —’˜v uÑ-Ô-ð#Oð #Oð #Oð #Oð #Oð #Oð #Or   z/XRef)r  ÚIndexÚWÚSizeÚRootÚInfoc              3   ó:   K  — | ]}|j         d k    ¯|j        V — ŒdS ©r	   N©r   r   ©r?   Úobjs     r   r·   zPDF.write.<locals>.<genexpr>^  s+   è è € ÐTÐT¨SÀCÄHÐPSÂOÀO ¤ÀOÀOÀOÀOÐTÐTr   TÚIDs   xrefz0 Ú010Ú05s   trailerrC   z/Size s   /Root s   /Info c              3   ó:   K  — | ]}|j         d k    ¯|j        V — ŒdS rI  rJ  rK  s     r   r·   zPDF.write.<locals>.<genexpr>€  s7   è è € ð  Ið  IØ!$¸¼ÀCº¸�C”H¸¸¸¸ð Ið  Ir   s   /ID [r=   r  rD   s	   startxrefs   %%EOFN)r   r  r  r2  r  r   r-   rS   r  r   r&   Ú	enumerater   r   rŒ   rF   r,   Úboolr   r   r   Úmaxr¼   r  r(   r   Ú	hexdigestr   rç   r  )r!   r1  ÚversionÚ
identifierrN   Úcompressed_objectsr'  rL   Úpositionr6  r   rM   Úobject_streamÚxrefÚ
dict_indexÚfield2_sizeÚmax_generationÚfield3_sizeÚxref_streamÚ	data_hashÚdict_streamrB  s                        @r   r/  z	PDF.write  sÌ  ø€ õ ˜GÐ- vÑ.Ô.ˆØÐ0Ð0Ð0Ý" :Ñ.Ô.ˆJð Œ9ð 	'Ø�OŠO˜DœIÑ&Ô&Ð&ð 	�Š˜ 7Ñ*¨FÑ3Ô3Ð3Ø�ŠÐ,¨fÑ5Ô5Ð5à�fÒÑ Ñà!#ÐØœ<ð >ð >�Ø”< 3Ò&Ð&ØØÔ'ð >Ø&×-Ò-¨gÑ6Ô6Ð6Ð6à%)Ô%:�G”NØ—O’O GÔ$4°fÑ=Ô=Ð=Ð=ð �TˆFØˆHÝ'Ð(:Ñ;Ô;ð *ð *‘
��7Ø”|�Ø—’˜dÑ#Ô#Ð#Ø�q”	× Ò  ¤Ñ0Ô0Ð0Ø�q”	× Ò  Ñ*Ô*Ð*Ø�C ™IœI¨™MÑ)��ØŸšÐ ;Ð ;°¸´Ð ;Ñ ;Ô ;Ñ;Ô;ˆF�1‰Ià!ÝÐ+Ñ,Ô,Ý˜V AœY™œ¨!Ñ+ðð ˆEõ
 # 6¨5°(Ñ;Ô;ˆMØ#'Ô#8ˆMÔ Ø�OŠO˜MÑ*Ô*Ð*Ø�OŠO˜MÔ2°FÑ;Ô;Ð;ð ˆDØˆJØœ<ð Sð S�ØÔ'ð SØ—K’K  MÔ$8¸*Ð EÑFÔFÐFØ !‘O�J�Jà—K’KÝ˜Wœ^Ñ,Ô,¨g¬n¸gÔ>Pð!Rñ Sô Sð Sð Sà�KŠK˜˜DÔ1°1Ð5Ñ6Ô6Ð6å�s 4Ô#8¸1Ñ#<¸cÑBÔBÑCÔCˆKÝ ð !@ð !@Ø26´,ð!@ñ !@ô !@ñ @ô @ˆNå�sÝ�N¥CÐ(:Ñ$;Ô$;Ñ<Ô<¸qÑ@À#ñ Gô  Gñ Hô HˆKà˜{¨KÐ8ˆLØŸ(š(ð #Oð #Oð #Oð #Oà ð#Oñ #Oô #Oñ Oô OˆKð  Ý ¥3 t¤|Ñ#4Ô#4°qÑ#8Ð9Ñ:Ô:Ý˜<Ñ(Ô(Ý˜DœLÑ)Ô)¨AÑ-ØœÔ.ðð ˆEð Œyð 4Ø $¤	Ô 3��f‘Øð WØ—x’xÐTÐT°D´LÐTÑTÔTÑTÔT�Ý ™IœI×/Ò/Ñ1Ô1×8Ò8Ñ:Ô:�	Ø Ð%Ð%Ø!*�JÝ#¥V¨JÑ%7Ô%7Ô%<½fÀYÑ>OÔ>OÔ>TÐ$UÑVÔV��d‘Ý  + °°xÑ@Ô@ˆKØ6:Ô6KÐKˆDÔ Ô!3Ø�OŠO˜KÑ(Ô(Ð(Ø�OŠO˜KÔ0°&Ñ9Ô9Ð9Ñ9ð  œ<ð :ð :�Ø”< 3Ò&Ð&ØØ!%Ô!6�”Ø—’ Ô 0°&Ñ9Ô9Ð9Ð9ð "&Ô!6ˆDÔØ�OŠO˜G VÑ,Ô,Ð,Ø�OŠOÐ4¥ T¤\Ñ!2Ô!2Ð4Ð4×;Ò;Ñ=Ô=¸vÑFÔFÐFØœ<ð ;ð ;�Ø—’ØœÐEð (ð (¨WÔ-?ÐEð (ð (Øœð(ð (ð (ß)/ª©¬°6ñ;ô ;ð ;ð ;ð
 �OŠO˜J¨Ñ/Ô/Ð/Ø�OŠO˜E 6Ñ*Ô*Ð*Ø�OŠOÐ8¥S¨¬Ñ%6Ô%6Ð8Ð8×?Ò?ÑAÔAÀ6ÑJÔJÐJØ�OŠO˜I¨¬Ô(>Ñ>ÀÑGÔGÐGØŒyð IØ—’ 	¨D¬IÔ,?Ñ ?ÀÑHÔHÐHØð ;Ø—x’xð  Ið  IØ(,¬ð Iñ  Iô  Iñ Iô I�å ™IœI×/Ò/Ñ1Ô1×8Ò8Ñ:Ô:�	Ø Ð%Ð%Ø!*�JØ—’Ø�v jÑ1Ô1Ô6Ñ6¸Ñ=Ý˜9Ñ%Ô%Ô*ñ+Ø-1ñ2Ø39ñ;ô ;ð ;ð �OŠO˜E 6Ñ*Ô*Ð*à�Š˜ fÑ-Ô-Ð-Ø�Š˜4Ô-Ð/×6Ò6Ñ8Ô8¸&ÑAÔAÐAØ�Š˜ &Ñ)Ô)Ð)Ð)Ð)r   N)r3  FF)r.   r/   r0   r1   r"   r%  r  r2   r-  r2  r/  r3   r   r   r  r  ¿  sŒ   € € € € € ØÐð "ð  "ð  "ðD	9ð 	9ð 	9ð%ð %ð %ð
 ð:ð :ñ „Xð:ð

&ð 
&ð 
&ðG*ð G*ð G*ð G*ð G*ð G*r   r  )r1   rŠ   r  r‰   Úcodecsr   Úhashlibr   Úmathr   r   ÚVERSIONÚ__version__r   r   r8   r5   r,   rç   r  r¼   r  r3   r   r   ú<module>rg     s³  ððð ð
 €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à Ð  €ˆ+ð%ð %ð %ð Dð  Dð  Dð  Dð  Dñ  Dô  Dð  DðF0ð 0ð 0ð 0ð 0�˜ñ 0ô 0ð 0ðMIð MIð MIð MIð MIˆVñ MIô MIð MIð`
8ð 8ð 8ð 8ð 8ˆVñ 8ô 8ð 8ð*Kð Kð Kð Kð KˆF�Dñ Kô Kð KðM*ð M*ð M*ð M*ð M*ñ M*ô M*ð M*ð M*ð M*r   