
    %h w                     ~   S SK r S SKJrJrJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJrJrJrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJrJrJrJr  SSKJr  SSK J!r!  SSK J"r#  SSK J$r$J%r%  SSK&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  SSK4J5r5J6r6  SSKJ7r7J8r8J9r9J:r:J;r;  Sr< " S S5      r= " S S5      r> " S S\>5      r?g)    N)BytesIOFileIOIOBase)Path)TracebackType)	AnyDictIterableListOptionalTupleTypeUnioncast   )
Encryption)
PageObject)	PdfReader)StrByteTypedeprecation_bookmarkdeprecation_with_replacementstr_)	PdfWriter)GoToActionArguments)PagesAttributes)TypArgumentsTypFitArguments)PAGE_FITArrayObjectDestinationDictionaryObjectFitFloatObjectIndirectObject
NameObject
NullObjectNumberObjectOutlineItemTextStringObject
TreeObject)	PageRangePageRangeSpec)FitType
LayoutTypeOutlineTypePagemodeTypeZoomArgTypez=close() was called and thus the writer cannot be used anymorec                   2    \ rS rSrSrS\S\S\SS4S jrS	r	g)
_MergedPageN   z@Collect necessary information on each page that is being merged.pagedatasrcidreturnNc                 6    X l         Xl        S U l        X0l        g N)r6   r5   out_pagedatar7   )selfr5   r6   r7   s       F/var/www/auris/envauris/lib/python3.13/site-packages/PyPDF2/_merger.py__init___MergedPage.__init__Q   s          )r7   r;   r5   r6   )
__name__
__module____qualname____firstlineno____doc__r   r   intr>   __static_attributes__ r@   r=   r3   r3   N   s&    J )   r@   r3   c                      \ rS rSrSr\" SS9 S@S\S\\\	4   SS	4S
 jj5       r
SAS jrS\\\      S\\   S\\   SS	4S jr\" SSS9      SBS\\   S\\\	\4   S\\   S\\   S\S\\   SS	4S jj5       rS\\\	\4   S\\\\   4   4S jr\" SSS9   SCS\\	\\4   S\\   S\S	\\\\4   \\\\4   \\   4   S\SS	4
S jj5       rS\\\	4   SS	4S jrSDS jrS\\\ 4   SS	4S jr!S\\\ 4   SS	4S jr"S\#SS	4S jr$S\#SS	4S  jr%S!\&SS	4S" jr'S!\&SS	4S# jr(S$\S%\\\\\ 4   4   S\\\\4   \\\\4   \\   4   S\\\\ 4      4S& jr)S$\S\*S\\\\4   \\\\4   \\   4   S\*4S' jr+SDS( jr,\" SS9  SES\\-\.      S)\\/   SS	4S* jj5       r0\" SS+9S\\.\14   S,\2SS	4S- j5       r3S\\2   SS	4S. jr4\" SS9 SFS\\2   S\\-\.      SS	4S/ jj5       r5\" SS+9 SFS\\\ 4   S0\\*   S\\\      4S1 jj5       r6\" SS+9 SFS\\\ 4   S0\\*   S\\\      4S2 jj5       r7S	S	S	SS\8S	4S3\S\\   S)\S	\/\94   S4\\\:\:\:4      S5\S6\S7\;S8\\   S\94S9 jjr<     SGS3\S8\S)\S	\/\94   S4\\\:\:\:4      S5\S6\S7\=S:\>S\94S; jjr?     SGS3\S8\S)\S	\/\94   S4\\\:\:\:4      S5\S6\S7\=S:\>S\94S< jjr@S3\S8\SS	4S= jrA  SES3\S\\   S8\\   SS	4S> jjrBS?rCg	)H	PdfMergerX   a  
Initialize a ``PdfMerger`` object.

``PdfMerger`` merges multiple PDFs into a single PDF.
It can concatenate, slice, insert, or any combination of the above.

See the functions :meth:`merge()<merge>` (or :meth:`append()<append>`)
and :meth:`write()<write>` for usage information.

:param bool strict: Determines whether user should be warned of all
        problems and also causes some correctable problems to be fatal.
        Defaults to ``False``.
:param fileobj: Output file. Can be a filename or any kind of
        file-like object.
outline)	bookmarksFstrictfileobjr8   Nc                     / U l         / U l        [        5       U l        / U l        / U l        SU l        X l        Xl        g )Nr   )	inputspagesr   outputrL   named_destsid_countrO   rN   )r<   rN   rO   s      r=   r>   PdfMerger.__init__i   s;     46 "
+4;$&&(r@   c                     U $ r:   rH   )r<   s    r=   	__enter__PdfMerger.__enter__v   s    r@   exc_typeexc	tracebackc                 |    U R                   (       a  U R                  U R                   5        U R                  5         g)z*Write to the fileobj and close the merger.N)rO   writeclose)r<   rZ   r[   r\   s       r=   __exit__PdfMerger.__exit__z   s$     <<JJt||$

r@   outline_itemimport_outline)bookmarkimport_bookmarkspage_numberrR   positionc                    Ub6  Uc(  UnSnSn[         R                  " U SU S3[        5        O[        S5      eUc  [        S5      eUc  [        S5      eU R	                  U5      u  p[        XR                  S	9nU R                  R                  X45        U
b  Xl	        Uc  S
[        UR                  5      4nOp[        U[        5      (       a%  UR                  [        UR                  5      5      nO6[        U[        5      (       a  O [        U[         5      (       d  [#        S5      e/ n/ nU(       a  UR$                  nU R'                  XU5      nU(       aS  [)        [+        U5      [-        U R.                  5      [0        R2                  " 5       5      nU =R$                  X/-  sl        OU =R$                  U-  sl        UR4                  nU R7                  XU5      nU =R8                  U-  sl        [;        U6  HQ  nUR                  U   nU R.                  nU =R.                  S-  sl        [=        UUU5      nUR                  U5        MS     U R?                  U5        U RA                  U5        XR                  X& g)a&  
Merge the pages from the given file into the output file at the
specified page number.

:param int page_number: The *page number* to insert this file. File will
    be inserted after the given number.

:param fileobj: A File Object or an object that supports the standard
    read and seek methods similar to a File Object. Could also be a
    string representing a path to a PDF file.

:param str outline_item: Optionally, you may specify an outline item
    (previously referred to as a 'bookmark') to be applied at the
    beginning of the included file by supplying the text of the outline item.

:param pages: can be a :class:`PageRange<PyPDF2.pagerange.PageRange>`
    or a ``(start, stop[, step])`` tuple
    to merge only the specified range of pages from the source
    document into the output document.
    Can also be a list of pages to merge.

:param bool import_outline: You may prevent the source document's
    outline (collection of outline items, previously referred to as
    'bookmarks') from being imported by specifying this as ``False``.
Nrg   rf   zG is deprecated as an argument and will be removed in PyPDF2=4.0.0. Use  insteadzCThe argument position of merge is deprecated. Use page_number only.page_number may not be Nonezfileobj may not be None)rN   r   z0"pages" must be a tuple of (start, stop[, step])r   )!warningswarnDeprecationWarning
ValueError_create_streamr   rN   rQ   append_encryptionlenrR   
isinstancer+   indiceslisttuple	TypeErrorrL   _trim_outliner(   r)   r'   rU   r"   fitnamed_destinations_trim_destsrT   ranger3   _associate_dests_to_pages!_associate_outline_items_to_pages)r<   rf   rO   rb   rR   rc   rg   old_termnew_termstreamencryption_objreadersrcpagesrL   outline_item_typdeststrimmed_destsipager7   mps                        r=   mergePdfMerger.merge   sK   F "&%(#* %88@zK ' !Y   :;;? 677!%!4!4W!= 6++6F+,%!/ =FLL)*Ey))MM#fll"34Et$$E5))NOOnnG((%@G* .T]]+	 
 LL-77LLLG#L))((>M) A<<?DBMMQMT62.BOOB  	&&x0..x8 /7

;+r@   c                 b   S n[        U[        [        45      (       a  [        US5      nX24$ [        U[        5      (       a  UR
                  (       a  UR
                  nUR                  R                  5       nUR                  R                  S5        [        UR                  R                  5       5      nUR                  R                  U5        X24$ [        US5      (       a@  [        US5      (       a/  UR                  S5        UR                  5       n[        U5      nX24$ [        S5      e)Nrbr   seekreadzPdfMerger.merge requires an object that PdfReader can parse. Typically, that is a Path or a string representing a Path, a file object, or an object implementing .seek and .read. Passing a PdfReader directly works as well.)rs   strr   r   r   rq   r   tellr   r   r   hasattrNotImplementedError)r<   rO   r   r   	orig_tellfilecontents         r=   ro   PdfMerger._create_stream   s    gT{++GT*F* %%) ++""!(!4!4++-INN"W^^0023F NN	* %% Wf%%''6*B*BLLO!,,.K[)F %% &> r@   c                 P    U R                  [        U R                  5      XX45        g)a  
Identical to the :meth:`merge()<merge>` method, but assumes you want to
concatenate all pages onto the end of the file instead of specifying a
position.

:param fileobj: A File Object or an object that supports the standard
    read and seek methods similar to a File Object. Could also be a
    string representing a path to a PDF file.

:param str outline_item: Optionally, you may specify an outline item
    (previously referred to as a 'bookmark') to be applied at the
    beginning of the included file by supplying the text of the outline item.

:param pages: can be a :class:`PageRange<PyPDF2.pagerange.PageRange>`
    or a ``(start, stop[, step])`` tuple
    to merge only the specified range of pages from the source
    document into the output document.
    Can also be a list of pages to append.

:param bool import_outline: You may prevent the source document's
    outline (collection of outline items, previously referred to as
    'bookmarks') from being imported by specifying this as ``False``.
N)r   rr   rR   )r<   rO   rb   rR   rc   s        r=   rp   PdfMerger.append  s    B 	

3tzz?G5Qr@   c                 X   U R                   c  [        [        5      eU R                   H  nU R                   R	                  UR
                  5        [        [        [        [        4   U R                   R                  R                  5       5      nU R                   R                  U[        R                     S   R                  5       5      Ul        M     U R!                  5         U R#                  5         U R                   R%                  U5      u  pEU(       a  UR'                  5         gg)z
Write all data that has been merged to the given output file.

:param fileobj: Output file. Can be a filename or any kind of
    file-like object.
N)rS   RuntimeErrorERR_CLOSED_WRITERrR   add_pager5   r   r	   r   r   _pages
get_objectget_referencePAKIDSr;   _write_dests_write_outliner^   r_   )r<   rO   r   	pages_objmy_fileret_fileobjs         r=   r^   PdfMerger.writeA  s     ;;011
 JJDKK  /T#s(^T[[-?-?-J-J-LMI $ 9 9"''"2&113!D  	  ${{009 r@   c                 x    / U l         U R                   H  u  pUR                  5         M     / U l        SU l        g)zHShut all file descriptors (input and output) and clear all memory usage.N)rR   rQ   r_   rS   )r<   fo_readers      r=   r_   PdfMerger.closea  s2    
;;KBHHJ ' r@   infosc                 r    U R                   c  [        [        5      eU R                   R                  U5        g)z
Add custom metadata to the output.

:param dict infos: a Python dictionary where each key is a field
    and each value is your new metadata.
    Example: ``{u'/Title': u'My title'}``
N)rS   r   r   add_metadatar<   r   s     r=   r   PdfMerger.add_metadataj  s,     ;;011  'r@   c                 >    [        SS5        U R                  U5        g)z?
.. deprecated:: 1.28.0

    Use :meth:`add_metadata` instead.
addMetadatar   N)r   r   r   s     r=   r   PdfMerger.addMetadatav  s     	%]NC% r@   layoutc                 >    [        SS5        U R                  U5        g)zB
.. deprecated:: 1.28.0

    Use :meth:`set_page_layout` instead.
setPageLayoutset_page_layoutN)r   r   r<   r   s     r=   r   PdfMerger.setPageLayout  s     	%_6GHV$r@   c                 r    U R                   c  [        [        5      eU R                   R                  U5        g)a|  
Set the page layout.

:param str layout: The page layout to be used

.. list-table:: Valid ``layout`` arguments
   :widths: 50 200

   * - /NoLayout
     - Layout explicitly not specified
   * - /SinglePage
     - Show one page at a time
   * - /OneColumn
     - Show one column at a time
   * - /TwoColumnLeft
     - Show pages in two columns, odd-numbered pages on the left
   * - /TwoColumnRight
     - Show pages in two columns, odd-numbered pages on the right
   * - /TwoPageLeft
     - Show two pages at a time, odd-numbered pages on the left
   * - /TwoPageRight
     - Show two pages at a time, odd-numbered pages on the right
N)rS   r   r   _set_page_layoutr   s     r=   r   PdfMerger.set_page_layout  s,    0 ;;011$$V,r@   modec                 @    [        SSS5        U R                  U5        g)z@
.. deprecated:: 1.28.0

    Use :meth:`set_page_mode` instead.
setPageModeset_page_mode3.0.0N)r   r   r<   r   s     r=   r   PdfMerger.setPageMode  s     	%]OWM4 r@   c                 r    U R                   c  [        [        5      eU R                   R                  U5        g)a  
Set the page mode.

:param str mode: The page mode to use.

.. list-table:: Valid ``mode`` arguments
   :widths: 50 200

   * - /UseNone
     - Do not show outline or thumbnails panels
   * - /UseOutlines
     - Show outline (aka bookmarks) panel
   * - /UseThumbs
     - Show page thumbnails panel
   * - /FullScreen
     - Fullscreen view
   * - /UseOC
     - Show Optional Content Group (OCG) panel
   * - /UseAttachments
     - Show attachments panel
N)rS   r   r   r   r   s     r=   r   PdfMerger.set_page_mode  s,    , ;;011!!$'r@   pdfr   c                    / n[        U[        5      (       a  UO[        [        U6 5      nUR                  5        H  u  pgU H  nUR                  U   R                  5       US   R                  5       :X  d  M7  US   R                  5       U[        S5      '   [        U5      [        US   5      :X  d   eUR                  U5          M     M     U$ )zHRemove named destinations that are not a part of the specified page set./Page/Title)	rs   ru   r|   itemsrR   r   r%   r   rp   )	r<   r   r   rR   	new_destslstkeyobjjs	            r=   r{   PdfMerger._trim_dests  s     	!%..eD4GHC99Q<**,G0G0G0II/27|/F/F/HC
7+,9S](;;;;$$S)  & r@   c                 :   / nSn[        U[        5      (       a  UO[        [        U6 5      n[        U5       H  u  px[        U[        5      (       aK  U R	                  XU5      n	U	(       a0  U(       d  UR                  X'S-
     5        UR                  U	5        Mc  Me  SnU Hr  n
US   c  M  UR                  U
   R                  5       US   R                  5       :X  d  M?  US   R                  5       U[        S5      '   UR                  U5        Sn  M     M     U$ )zJRemove outline item entries that are not a part of the specified page set.Tr   Fr   )	rs   ru   r|   	enumeraterx   rp   rR   r   r%   )r<   r   rL   rR   new_outlineprev_header_addedr   r   rb   subr   s              r=   rx   PdfMerger._trim_outline  s     !%..eD4G(1OA,--((C@,#**7q5>:&&s+ 
 %*!A#G,4 yy|..0L4I4T4T4VV<H#=$*, %Z%89 $**<8,0)   2& r@   c                 H   U R                   c  [        [        5      eU R                   Hv  nS nSU;   aK  [	        U R
                  5       H2  u  p#UR                  US   :X  d  M  UR                  U[        S5      '     O   Uc  M[  U R                   R                  U5        Mx     g )Nr   )
rS   r   r   rT   r   rR   r7   r;   r%   add_named_destination_object)r<   
named_destpagenor   s       r=   r   PdfMerger._write_dests  s    ;;011**JF*$$-djj$9LFww*W"55:>:K:K
:g#67 %:
 !88D +r@   parentc                    U R                   c  [        [        5      eUc  U R                  nUc   S5       eS nU H  n[	        U[
        5      (       a  U R                  XC5        M+  S nSU;   aD  [        U R                  5       H+  u  pVUR                  US   :X  d  M  U R                  XF5          O   Uc  M|  US	 US	 U R                   R                  XB5      nM     g )Nhint for mypyr   /Type)rS   r   r   rL   rs   ru   r   r   rR   r7   _write_outline_item_on_pageadd_outline_item_dict)r<   rL   r   
last_addedrb   page_nor   s          r=   r   PdfMerger._write_outline  s     ;;011?llG"3O3"
#L,--##L=G,&%.tzz%:MGww,w"7788L &; " )<+@![[>>|T
 $r@   )rd   r   c                    [        [        US   5      n[        UR                  5      [	        U5      /n[
        R                  [        R                  4[
        R                  [        R                  4[
        R                  [        R                  4[
        R                  [        R                  4[
        R                  [        R                  [        R                  S4[
        R                  [        R                  [        R                  [        R                   [        R                  40nUR#                  U[%        5       5       HX  nXa;   a4  ['        X   [(        5      (       d  UR+                  [-        X   5      5        OUR+                  [-        S5      5        X	 MZ     [/        [	        [0        R2                  5      [	        S5      [	        [0        R4                  5      [7        U5      05      U[	        S5      '   g )Nr   z/Zoomr   z/GoToz/A)r   r   r'   r7   r%   r   FIT_Hr   TOPFIT_BHFIT_VLEFTFIT_BVXYZFIT_RBOTTOMRIGHTgetrv   rs   r&   rp   r#   r!   r   SDr   )r<   rb   r   oi_typeargsfit2arg_keysarg_keys          r=   r   %PdfMerger._write_outline_item_on_page"  s|    sL12TWW%z'':;!!L$4$4#6""\%5%5$7!!L$5$5#7""\%6%6$8,"3"3\5E5Ew!O!!!!##""  	$4
 $''9G&z%z0 0 K(=>?KN+% : *:.001:g3F.001;t3D*
Z%&r@   c                 D   U R                    H  nS nUS   n[        U[        5      (       a  M!  U H=  nUR                  5       UR                  R                  5       :X  d  M1  UR
                  nM?     Uc  [        SUS    S35      e[        U5      U[        S5      '   M     g )Nr   zUnresolved named destination 'r   ')rT   rs   r'   r   r5   r7   rn   r%   )r<   rR   r   r   npr   s         r=   r}   #PdfMerger._associate_dests_to_pagesE  s    **JFG$B"l++==?dmm&>&>&@@!WWF  ~ 4Z5I4J!L  /;6.BJz'*+ +r@   c                    Uc  U R                   nUc   S5       eU H  n[        U[        5      (       a  U R                  X5        M+  S nUS   n[        U[        5      (       a  MI  U H=  nUR                  5       UR                  R                  5       :X  d  M1  UR                  nM?     Uc  M  [	        U5      U[        S5      '   M     g )Nr   r   )	rL   rs   ru   r~   r'   r   r5   r7   r%   )r<   rR   rL   rb   r   outline_item_pageps          r=   r~   +PdfMerger._associate_outline_items_to_pagesW  s     ?llG"3O3"#L,--66uKF ,W 5+\::$//1QZZ5J5J5LLTTF  !4@4HZ01! $r@   rootc                    Uc  U R                   n[        U5       Hj  u  p4[        U[        5      (       a"  U R	                  X5      nU(       a  U/U-   s  $ M<  XA:X  d&  [        [        [        [        4   US   5      U:X  d  Mg  U/s  $    g )Nr   )rL   r   rs   ru   find_outline_itemr   r	   r   )r<   rb   r  r   oi_enumress         r=   r  PdfMerger.find_outline_itemp  s     <<<D#D/JA'4(( ,,\C39$  'S#X(9:lJ s
 * r@   c                 $    U R                  X5      $ )zB
.. deprecated:: 2.9.0
    Use :meth:`find_outline_item` instead.
)r  )r<   rb   r  s      r=   find_bookmarkPdfMerger.find_bookmark  s     %%l99r@   titlecolorbolditalicry   pagenumc	           
          Ub  Ub  [        S5      eUb'  Sn	Sn
[        R                  " U	 SU
 S3[        5        UnUc  [        S5      eU R                  nUc  [        [        5      eUR                  UUUSUUUU5      $ )a  
Add an outline item (commonly referred to as a "Bookmark") to this PDF file.

:param str title: Title to use for this outline item.
:param int page_number: Page number this outline item will point to.
:param parent: A reference to a parent outline item to create nested
    outline items.
:param tuple color: Color of the outline item's font as a red, green, blue tuple
    from 0.0 to 1.0
:param bool bold: Outline item font is bold
:param bool italic: Outline item font is italic
:param Fit fit: The fit of the destination page.
NzMThe argument pagenum of add_outline_item is deprecated. Use page_number only.r  rf   H is deprecated as an argument and will be removed in PyPDF2==4.0.0. Use ri   rj   )rn   rk   rl   rm   rS   r   r   add_outline_item)r<   r  rf   r   r  r  r  ry   r  r   r   writers               r=   r  PdfMerger.add_outline_item  s    0 "w':_   H$HMMj !55=JhH # "K:;;>011&&	
 		
r@   r   c                 X    [        SSS5        U R                  UUUUUU[        XxS95      $ )zB
.. deprecated:: 1.28.0
    Use :meth:`add_outline_item` instead.
addBookmarkr  r   fit_typefit_argsr   r  r"   	r<   r  r  r   r  r  r  ry   r   s	            r=   r  PdfMerger.addBookmark  >     	%]4FP$$,
 	
r@   c                 X    [        SSS5        U R                  UUUUUU[        XxS95      $ )zA
.. deprecated:: 2.9.0
    Use :meth:`add_outline_item` instead.
r  r  r   r  r  r  s	            r=   add_bookmarkPdfMerger.add_bookmark  r  r@   c                 >    [        SSS5        U R                  X5      $ )zG
.. deprecated:: 1.28.0
    Use :meth:`add_named_destination` instead.
addNamedDestinationadd_named_destinationr   )r   r#  )r<   r  r  s      r=   r"  PdfMerger.addNamedDestination   s'    
 	%!#:G	
 ))%99r@   c                 .   Ub  Ub  [        S5      eUb'  SnSn[        R                  " U SU S3[        5        UnUc  [        S5      e[	        [        U5      [        U5      [        R                  " SS	95      nU R                  R                  U5        g)
z
Add a destination to the output.

:param str title: Title to use
:param int page_number: Page number this destination points at.
NzRThe argument pagenum of add_named_destination is deprecated. Use page_number only.r  rf   r  ri   rj   i:  )top)rn   rk   rl   rm   r    r)   r'   r"   fit_horizontallyrT   rp   )r<   r  rf   r  r   r   dests          r=   r#  PdfMerger.add_named_destination
  s     "w':d   H$HMMj !55=JhH # "K:;;U#%  S)

 	%r@   )rO   rU   rQ   rT   rL   rS   rR   rN   )F )r8   rJ   )NNNNTN)NNT)r8   N)NNr:   )NNFFz/Fit)DrA   rB   rC   rD   rE   r   boolr   r   r   r>   rX   r   r   BaseExceptionr   r`   rF   r   r   r,   r   r   r   r   ro   r+   r   rp   r^   r_   r	   r   r   r   r.   r   r   r0   r   r   r{   r/   rx   r   r
   r(   r*   r   r    r3   r   r}   r~   r  r	  r   r$   floatr"   r  r-   r1   r  r  r"  r#  rG   rH   r@   r=   rJ   rJ   X   s     I.HJ

-243D-E
	
 /
	4./	 m$	 M*		
 
	 >DTU &*7;&*)-#"&s7c]s7 t[)34s7 sm	s7
 &s7 s7 3-s7 
s7 Vs7j!&T;	9:!&	vx
++	,!&F >DTU '+ # R{It34 R sm R )U38_eCcM.BDIM
	 R  R 
 R V RD U4#45  $  @
($sCx. 
(T 
(!c3h !D !%J %4 %-j -T -8! ! !(, (4 (4 Cc3h'( U38_eCcM&:DIEF	
 
d38n	$  U38_eCcM&:DIEF	
 
>E I. 48'+U(;/0U $U 
	U /U6 >2 
!+{":; 
CN 
	 
 3 
DCtK/@ CT C$ I.SWI+&I19(;:O1PI	I /I0 >2 '+38n {# 
$s)		 30 >2 '+	:38n	: {#	: 
$s)			: 3	: &*:>6:!%5
5
 c]5
 dJ67	5

 eUE1235
 5
 5
 5
 #5
 
5
v ;?6:

 
 dJ67	

 eUE123
 
 
 
 
 

< ;?6:

 
 dJ67	

 eUE123
 
 
 
 
 

4: :s :t : &*!%	"&"& c]"& #	"&
 
"& "&r@   rJ   c                   8   ^  \ rS rSrS\S\SS4U 4S jjrSrU =r$ )PdfFileMergeri/  r   kwargsr8   Nc                 t   > [        SSS5        SU;  a  [        U5      S:  a  SUS'   [        TU ]  " U0 UD6  g )Nr/  rJ   r   rN   r   T)r   rr   superr>   )r<   r   r0  	__class__s      r=   r>   PdfFileMerger.__init__0  s=    $_k7K6!c$i!m#F8$)&)r@   rH   )rA   rB   rC   rD   r   r>   rG   __classcell__)r3  s   @r=   r/  r/  /  s"    *c *S *T * *r@   r/  )@rk   ior   r   r   pathlibr   typesr   typingr   r	   r
   r   r   r   r   r   r   rq   r   _pager   r   r   _utilsr   r   r   r   _writerr   	constantsr   r   r   r   r   genericr   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   	pageranger+   r,   r-   r.   r/   r0   r1   r   r3   rJ   r/  rH   r@   r=   <module>r@     s   8  & &  
 
 
 $     * , 4    0 N NS  T& T&n*I *r@   