K il ddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z dZ e rddl mZejeeze fZn ejZdldZiddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(id)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRZdmdSZGdTdUeZdndVZGdWdXe ZGdYdZeZGd[d\eZGd]d^ZGd_d`ZGdadbee ZGdcddeZ GdedfZ!GdgdhZ"dodiZ#GdjdkZ$y)p) annotationsN)Any NamedTupleF)IOcFtj|jdzS)N utf_16_be)codecs BOM_UTF16_BEencode)ss S/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/PdfParser.py encode_textrs   +!6 66u˘uˇuˆu˙u˝u˛u˚u˜u•u†u‡u…u—u–uƒu⁄u‹u›u−u‰u„u“u”u‘u’u‚u™ufiufluŁuŒuŠuŸuŽuıułuœušužu€)c|dttjtjk(r+|ttjdjdSdj d|DS)Nrc3ZK|]#}tj|t|%ywN)PDFDocEncodinggetchr).0bytes r zdecode_text..Ms!It~))$D :Is)+)lenr r decodejoin)bs r decode_textrHIs\ #3v"" #$(;(;;V(()+,33K@@wwIqIIIrceZdZdZy)PdfFormatErrorz\An error that probably indicates a syntactic or semantic error in the PDF file structureN)__name__ __module__ __qualname____doc__rr rJrJPs  rrJc|s t|yr=)rJ) condition error_messages r check_format_conditionrSWs ]++ rc"eZdZUded<ded<y)IndirectReferenceTupleint object_id generationN)rKrLrM__annotations__rOrr rUrU\s NOrrUc4eZdZddZddZd dZd dZd dZy) IndirectReferencec:|jd|jdS)N z RrWrXselfs r __str__zIndirectReference.__str__bs..!4??"3266rc@|jjdSNus-ascii)rar r_s r __bytes__zIndirectReference.__bytes__es||~$$Z00rc|j|juryt|tsJ|j|jk(xr|j|jk(S)NF) __class__ isinstancer[rWrXr`others r __eq__zIndirectReference.__eq__hsM >> 0%!2333$..0XU5E5E5XXrc||k( Sr=rOris r __ne__zIndirectReference.__ne__nsEM""rcDt|j|jfSr=)hashrWrXr_s r __hash__zIndirectReference.__hash__qsT^^T__566rNreturnstrrrbytesrjobjectrrboolrrrV)rKrLrMrarerkrmrprOrr r[r[as71Y #7rr[ceZdZddZy)IndirectObjectDefc:|jd|jdS)Nr]z objr^r_s r razIndirectObjectDef.__str__vs..!4??"3488rNrq)rKrLrMrarOrr r{r{us9rr{cLeZdZd dZd dZd dZd dZddZddZddZ ddZ y ) XrefTablec@i|_i|_ddi|_d|_y)NriF)existing_entries new_entriesdeleted_entriesreading_finishedr_s r __init__zXrefTable.__init__{s0    !"5z %rc|jr||j|<n||j|<||jvr|j|=yyr=)rrrrr`keyvalues r __setitem__zXrefTable.__setitem__sL  $)D  S !).D ! !# & $&& &$$S) 'rc^ |j|S#t$r|j|cYSwxYwr=)rKeyErrorrr`rs r __getitem__zXrefTable.__getitem__s8 .##C( ( .((- - .s ,,cF||jvr2|j|ddz}|j|=||j|<y||jvr%|j|ddz}||j|<y||jvr|j|}yd|d}t|)Nz object ID z+ cannot be deleted because it doesn't exist)rrr IndexError)r`rrXmsgs r __delitem__zXrefTable.__delitem__s $"" "))#.q1A5J  %(2D  % D)) )..s3A6:J(2D  % D(( (--c2Jse#NOCS/ !rc>||jvxs||jvSr=)rrrs r __contains__zXrefTable.__contains__s#d+++Fsd6F6F/FFrctt|jjt|jjzt|j jzSr=)rDsetrkeysrrr_s r __len__zXrefTable.__len__s^ %%**, -$""'')* +$&&++-. /  rct|jjt|jjz t|jjzSr=)rrrrrr_s r rzXrefTable.keyssS %%**, -D4H4H4M4M4O0P P   %%' () )rctt|jjt|jjz}tt|jj}|j }|j d|rd}t|D]\}}||dz|k(r|}|d|}||d}n|}g}|j d|dt|fz|D]} | |jvr"|j d|j| z3|jd} t| | k(d| d|  |d} |j d| |j| fz|r|S#t$rd} Y7wxYw) Nsxref rs%d %d rs%010d %05d n z*expected the next deleted object ID to be z, instead found s%010d %05d f ) sortedrrrrtellwrite enumeraterDpoprSr) r`fr deleted_keys startxrefprevindexrcontiguous_keysrWthis_deleted_object_idnext_in_linked_lists r rzXrefTable.writesc$**//12S9M9M9R9R9T5UUVc$"6"6";";"=>? FFH   #D'o  s<4!8s?D&*6ElO> F  F NrrNone)rrVrtuple[int, int]rrr)rrVrrr)rrVrrr)rrVrrrxry)rrzset[int])r IO[bytes]rrrV) rKrLrMrrrrrrrrrOrr r~r~zs+&*. "G ) %rr~c eZdZUded<ddZddZddZddZddZe ddZ e e d d d Dchc] }t|c}}}z Zdd Zy cc}}}w)PdfNamerunamect|tr|j|_yt|tr||_y|j d|_yrc)rhrrrur )r`rs r rzPdfName.__init__s8 dG $ DI e $DI J/DIrc8|jjdSrc)rrEr_s r name_as_strzPdfName.name_as_strsyy ++rczt|txr|j|jk(xs||jk(Sr=)rhrrris r rkzPdfName.__eq__s4 ug & B5::+B dii  rc,t|jSr=)rorr_s r rpzPdfName.__hash__sDIIrc`|jjdt|jdS)N())rgrKreprrr_s r __repr__zPdfName.__repr__s)..))*!DO+>rc8|tj|Sr=) PdfParserinterpret_name)clsdatas r from_pdf_streamzPdfName.from_pdf_streams9++D122r!z #%/()<>[]{}ctd}|jD]6}||jvr|j|#|j d|z8t |S)N/s#%02X) bytearrayr allowed_charsappendextendru)r`resultrGs r rezPdfName.__bytes__sT4 ,AD&&& a  hl+  , V}rN)rzPdfName | bytes | strrrrrqrvry)rrurrrrt)rKrLrMrYrrrkrpr classmethodrrrangeordrre)rAcrs000r rrsh K0, ?33b#'=*I*Ia3q6*IIM+JsA rceZdZddZy)PdfArrayc>ddjd|DzdzS)Ns[  c32K|]}t|ywr=)pdf_repr)rAxs r rCz%PdfArray.__bytes__..s ;! ;ss ])rFr_s r rezPdfArray.__bytes__s!tyy ;d ;;;eCCrNrt)rKrLrMrerOrr rrsDrrc$eZdZddZddZddZy)PdfDictcz|dk(r"tjj|||y|||jd<y)Nrrd) collectionsUserDict __setattr__r rs r rzPdfDict.__setattr__s4 &=  , ,T3 >+0DJ' (rc` ||jd}t|tr t |}|j dr|jdr|dd}d}t|dkDr5|d}t|ddd z}t|d kDr|t|d d z }d dt|dz }tj|dt|dz|}|d vr:d z}|dk(r|dz}tjtj||z}|S#t$r}t||d}~wwxYw)NrdDatezD:Z<z %Y%m%d%H%M%S)+-r)r rAttributeErrorrhrurHendswith startswithrDrVtimestrptimegmtimecalendartimegm)r`rre relationshipoffsetformats r __getattr__zPdfDict.__getattr__ s: -J/0E eU #&E << %ab L5zB$Ry U2b\*R/u:?c%2,//F#$4c%j1n5FMM%(9#f+/":FCEz)" 3&bLF HOOE$:V$CD - - %1 , -sD D- D((D-cHtd}|jD]i\}}| t|}|jd|jt t ||jd|j|k|jdt |S)N<< rs >>)ritemsrrrur)r`outrrs r rezPdfDict.__bytes__(s**, JC}UOE JJu  JJuWS\* + JJt  JJu   7SzrN)rrsrrrrr)rrsrrzstr | time.struct_timert)rKrLrMrrrerOrr rrs1 6 rrceZdZddZddZy) PdfBinaryc||_yr=)r)r`rs r rzPdfBinary.__init__7s  rcLddjd|jDzS)Ns<%s>rc3&K|] }d|z yw)s%02XNrOrArGs r rCz&PdfBinary.__bytes__..;s!A!'A+!As)rFrr_s r rezPdfBinary.__bytes__:s !Atyy!AAAArN)rzlist[int] | bytesrrrrt)rKrLrMrrerOrr rr6s BrrceZdZddZddZy) PdfStreamc ||_||_yr=) dictionarybuf)r`rrs r rzPdfStream.__init__?s$rcF |jd}|dk(r: |jd}tj|jt |Sdt |d}t|#t$r|jcYSwxYw#t$r|jd}YywxYw)NsFilters FlateDecodesDLLength)bufsizezstream filter z unknown/unsupported)rrrzlib decompressrVrNotImplementedError)r`filterexpected_lengthrs r rEzPdfStream.decodeCs __Y/F ^ # ="&//%"8??488S5IJ J"4<.0DEC%c* * 88O   ="&//)"< =s"A*B*BBB B N)rrrrurrrrt)rKrLrMrrErOrr rr>s  +rrc|dury|dury|yt|ttttfr t |St|t tfrt|jdSt|tjr+dtjd|jdzd zSt|trt t|St|trt t|St|trtt!|St|t r>|j#d d }|j#d d }|j#d d}d |zd zSt |S)NTstrueFsfalsesnullrds(D:z %Y%m%d%H%M%SZ)\s\\(\(s\))rhrrrrrurVfloatrsr r struct_timestrftimedictlistrrreplace)rs r rrSs-Dy e  A(I> ?Qx AU| $1v}}Z(( At'' ( oq9@@LLtSS At WQZ  At Xa[!! As  A'' Au  IIeW % IIdF # IIdF #ax$QxrcNeZdZdZ dS dTdZdUdZdVdZdWdZdWdZdWdZ dWd Z dWd Z dXd Z dYd Z dWd Z dZ d[dZ d\dZ d]dZdWdZed^dZdWdZdZd_dZdZdZdZdZedzZedzZdZdZeezezZe jBedzezdzezdzezd zezd!zezd"ze jDZ#e jBedzezd#zezdzezd zezd!zeze jDZ$dWd$Z%d`d%Z&e jBeZ'e jBed&zezd'zZ(e jBed(zZ)e jBed)zezZ*e+dad*Z,e jBd+Z-e+dbdcd,Z.e jBed-zezd'zZ/e jBed.zezd'zZ0e jBed/zezd'zZ1e jBed0zezd'zZ2e jBed1zezd'zZ3e jBed2zZ4e jBed3zZ5e jBed4zezd5zZ6e jBed6zZ7e jBed7zezd7zezd8zezd'zZ8e jBed7zezd7zezd9zezd'zZ9e jBed:zezd'zZ:e jBd;ezdzZ<e jBed?zezd'zZ=e+ dd ded@Z>e jBdAZ?idBdCdDdEdFdGdHdIdJdKd;d;d'd'dLdLe@dBdCe@dDdEe@dFdGe@dHdIe@dJdKe@d;d;e@d'd'e@dLdLZAe+ dfdMZBe jBedNzezZCe jBed zezd zezezZDe jBdOZEdgdPZFdhdidQZG dZ djdRZHy)krz|Based on https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/PDF32000_2008.pdf Supports PDF up to 1.4 Nc|r|r d}t|||_||_||_||_d|_d|_||t||x|_}d|_|<|j||_d|_|st|dr|j|_i|_ |||||jr|jn{dx|_ |_t|_d|_t|_d|_t|_g|_g|_d|_d|_i|_t5|_d|j6_|r|j;yy)Nz4specify buf or f or filename, but not both buf and fFTrr) RuntimeErrorfilenamerr start_offsetshould_close_bufshould_close_fileopenget_buf_from_filehasattrrcached_objects read_pdf_infofile_size_totalfile_size_thisrrootroot_refinfoinfo_refpage_tree_rootpages orig_pages pages_reflast_xref_section_offset trailer_dictr~ xref_tablerseek_end)r`rrrrmoders r rzPdfParser.__init__vsM 1HCs# #  9<( %!&  AIh- -DFQ%)D " =--a0DH$(D !6 2 ! <>    88    9: :D 4#6 DI DM DI DM"))D 24DJ79DO!DN,0D )24D 'kDO+/( MMO rc|Sr=rOr_s r __enter__zPdfParser.__enter__s rc$|jyr=)close)r`argss r __exit__zPdfParser.__exit__s  rcD|j|jyr=) close_bufr/r_s r start_writingzPdfParser.start_writings  rct|jtjr|jjd|_yr=)rhrmmapr4r_s r r8zPdfParser.close_bufs) dhh * HHNN rc|jr|j|j/|jr"|jj d|_yyyr=)rr8rrr4r_s r r4zPdfParser.closesC  NN  66 $"8"8 FFLLNDF#9 rct|jJ|jjdtjy)Nr)rseekosSEEK_ENDr_s r r/zPdfParser.seek_ends(vv!!!  Ar{{#rcV|jJ|jjdy)Ns %PDF-1.4 )rrr_s r write_headerzPdfParser.write_headers"vv!!!  ]#rcz|jJ|jjd|djy)Nz%  )rrr )r`r s r write_commentzPdfParser.write_comments3vv!!!  r!BZ&&()rc|jJ|j|j|jj|_|jd|_|j |j|jtd|j |j|j tdt|j|j|jS)NrCatalog)TypePagesPages)rHCountKids) rdel_rootnext_object_idrr%r+ rewrite_pages write_objrrDr)r_s r write_catalogzPdfParser.write_catalogsvv!!! ++DFFKKM: ,,Q/  t}}7:+>dnnU  NN"djj/  }}rcg}t|jD]\}}|j|}|j|j=|j |t d||jvrXi}|jD]\}}|||j<|j|d<|jdi|}t|jD]\} } | |k(s ||j| <|D]X} | s|j| } | j|jvr|j| j=| jdd} | rSZg|_y)NsParentParentr=) rr*r r.rWrrr)rrr+ write_pager?) r`pages_tree_nodes_to_deleteipage_ref page_infostringified_page_inforr new_page_refj cur_page_refpages_tree_node_refpages_tree_nodes r rOzPdfParser.rewrite_pagesse%'"$T__5 1KAx++H5I 2 23 & - -i 8J.K Ltzz)$& !'oo/ A U;@%coo&78 A/3nn !( +*4??I3HIL#,TZZ#8 1<8+$0DJJqM 1 1&$> K %"&"5"56I"J&00DOOC(;(E(EF&5&9&9)T&J# & K rc$|jJ|r|j||_|jr!|j d|j|_|j j|j}t|j }|j|d}|j|j|d<|jr|j |d<||_ |jjdtt|zd|zzy)N)RootSizePrevInfostrailer s startxref %d %%%%EOF) rrMr%r&rPr'r.rrDr,rur)r` new_root_ref start_xref num_entriesr-s r write_xref_and_trailerz PdfParser.write_xref_and_trailersvv!!!  MMO(DM 99 NN4;DM__**4662 $//* ]] 0   ( ( 4$($A$AL ! 99$(MML !(2%  GL)* +)J6 7 rct|tr|j|n|}d|vrtd|d<d|vr|j|d<|j |g|i|S)NrHPagerS)rhrVr)rr+rP)r`refobjsdict_objobj_refs r rTzPdfParser.write_pagesd&0S%9$**S/s  !&w/HV  8 #!%HX t~~g9999rcn|jJ|j}| |j|j}n3|j|jf|j|j <|j tt||jdd}|t||d<|r|j t||D]}|j t||3|j d|j ||j d|j d|S)NstreamLengthsstream s endstream sendobj ) rrNrrXr.rWrrur{rrDr)r`rjrkrlrroobjs r rPzPdfParser.write_objsvv!!! FF ;%%affh/C./ffh-GDOOCMM * '-./h-  !$VHX   GGHX& ' #C GGHSM " #   GGK GGFO GG$ %   rc|jy|j|jj=|j|jdj=y)NrJ)r%r.rWr$r_s r rMzPdfParser.del_root1s@ ==  OODMM33 4 OODIIh/99 :rct|dr|jSt|dr|jS tj|j dtj S#t $rYywxYw)N getbuffergetvaluer)accessr)rrtrur;fileno ACCESS_READ ValueError)rs r rzPdfParser.get_buf_from_file7sd 1k ";;= Q #::<  yyQt7G7GHH  s3A.. A:9A:cP|jJt|j|_|j|jz |_|j t |jjddud|jd|_ |jJ|jjdd|_ t|j|j|_ |jt|_n)t|j|j|_t d|jvdt |jddk(dt |jjddud t t|jdt d |jd|_|j"J|j|j"|_|j'|j$|_|j(dd|_y) Nr`zRoot is missingrcTypez/Type missing in RootrGz/Type in Root is not /CatalogrJz/Pages missing in Rootz+/Pages in Root is not an indirect reference)rrDr"rr# read_trailerrSr-r?r%r'r read_indirectr$r&rhr[r+r(linearize_page_treer)r*r_s r r!zPdfParser.read_pdf_infoCsxx###"488}"22T5F5FF     ! !' *$ 68I ))'2 }}((())--gt< D..t}}=> ==  DI 2 24== ABDIw$))35LM IIg * ,.M   IIMM( #4 /1I   tyy*,= > 9 8,~~)))"00@--d.A.AB **Q-rc tt|jjdzd}||df|j|j <|S#t$rtdd}Y6wxYw)Nrr)r[maxr.rryrW)r`r references r rNzPdfParser.next_object_idgsm 0)#doo.B.B.D*E*I1MI  4:A;DOOI// 0  0)!Q/I 0s0AA)(A)s [][()<>{}/%]s$[][()<>{}/%\000\011\012\014\015\040]s[\000\011\012\014\015\040]s#[\000\011\012\014\015\0400-9a-fA-F]*+s[\000\011\014\040]*s[\r\n]+strailers<<(.*>>)s startxrefs([0-9]+)s%%EOF$s <<(.*?>>)c|jJt|jdz }||jkr |j}|jj |j|}t |dud|}|r<|}|jj |j|j dz}|r<|s|}|J|jd}t|jd|_ |j||_ t|_ |j|jd|jvr|j|jdyy)N@ztrailer end not foundrrxref_section_offsetrb)rrDrre_trailer_endsearchrSstartgrouprVr,interpret_trailerr-r~r.read_xref_tableread_prev_trailer)r`search_start_offsetm last_match trailer_datas r r|zPdfParser.read_trailers7xx###!$((me3 !2!2 2"&"3"3     & &txx1D Eq}.EF J##**488QWWY^DAA}}wwqz (+AGGAJ% 22<@#+ 1N1NO d'' '  " "4#4#4W#= > (rc|jJ|j|}|jj|j||dz}t |dud|J|j d}t t |j d|k(d|j|}d|vr|j|dyy)Nrrzprevious trailer not foundrrzGxref section offset in previous trailer doesn't match what was expectedrb) rrre_trailer_prevrrSrrVrr)r`rtrailer_offsetrrr-s r rzPdfParser.read_prev_trailersxx###--BU-V  ' ' HH^nu&< =  q}.JK}}wwqz   O2 2 U --l; l "  " "<#8 9 #rs/([!-$&'*-.0-;=?-Z\\^-z|~]+)(?=r rs>>c Hi}d} |jj||}|sX|jj||}t|duxr|j t |k(dt ||dzn`|j|jd}t|tsJ|j||j \}}|||<|n|}td|vxrt|dtdtd|vxrt|dtd|S)Nrz+name not found in trailer, remaining data: rraz&/Size not in trailer or not an integerr`z1/Root not in trailer or not an indirect reference)re_namematch re_dict_endrSendrDrrrrhru get_valuerVr[)rrtrailerrrrr value_offsets r rzPdfParser.interpret_trailers1 !!,7AOO)),?&TMBaeeg\1B&BA<012 $$QWWQZ0Cc5) ))"%-- aeeg"F E< GCL#!F!"  w  D:gg.>#D 4   w  R:gg.>@Q#R ? rs([^#]*)(#([0-9a-fA-F]{2}))?c^d}|jj|D]p}|jdrI||jdtj |jdj dzz }]||jdz }r|r|j dSt |S)Nrrrdzutf-8)re_hashes_in_namefinditerrrfromhexrEru)rrawas_textrrs r rzPdfParser.interpret_names&&//4 #Awwqz Y%6%6qwwqz7H7H7T%UUU "  # ;;w' '; rsnull(?=strue(?=sfalse(?=s([-+]?[0-9]+)(?=s)([-+]?([0-9]+\.[0-9]*|[0-9]*\.[0-9]+))(?=s\[]s<(s*)>rs ([-+]?[0-9]+)sR(?=sobj(?=s endobj(?=rs %[^\r\n]*s)*s stream\r?\ns endstream(?=c  |dk(ry|jj||}|r|j}|jj||}|r t t |j ddkDdt t |j ddk\dt |duxs?|tt |j dt |j dk(d|j||j|dz \}}||dfS|jj||}t |dud |J||jfSt | d |jj||}|rt t |j ddkDd t t |j ddk\d tt |j dt |j d|jfS|jj||}|r|j}i}|jj||}|} |sh| J|j|| |dz \} } | |dfS|j|| |dz \} } | || <| |dfS|jj|| }|sh|j} |jj|| }|r|jd } | t| t sd| d} t!| ||j|j| z}|j"j||j| z}t |dud|J|j} t%t'||| fSt'|| fS|j(j||}|r|j}g}|j*j||}|} |sT| J|j|| |dz \} } |j-| | |dfS|j*j|| }|sT||jfS|j.j||}|rd|jfS|j0j||}|rd|jfS|j2j||}|rd|jfS|j4j||}|r9t7|j9|j d|jfS|j:j||}|r*t |j d|jfS|j<j||}|r*t?|j d|jfS|j@j||}|rtCd|j dD}tE|dzdk(r|j-tGdtBjI|jKd|jfS|jLj||}|r |jO||jSdtQ|||dz} t!| )Nr)NNrz.s#.G)G#s 0rdzunrecognized object: )) re_commentrrre_indirect_def_startrSrVrr[rre_indirect_def_endre_indirect_reference re_dict_startrre_stream_startr?rhrJ re_stream_endrrre_array_start re_array_endrre_nullre_truere_falserrrre_intre_realr re_string_hexrrDrrrE re_string_litget_literal_stringr)rrrexpect_indirectrrrw object_offsetrcurrent_offsetrr stream_lenr stream_dataresults hex_strings r rzPdfParser.get_value*s !  NN v . UUWF  % % + +D& 9 "AGGAJ!#N  #AGGAJ1$M  #4'G"$S_c!''!*oFGD   %(MMaeeg;?%2% !FM$t|#''--dMBA " I = =1557? " !G   % % + +D& 9 "AGGAJ!#M  #AGGAJ1$L %S_c!''!*oFO O    # #D& 1 UUWF%'F%%dF3A)/N%111&)mm.kAo'4'#^")!4<'(+ .kAo)6)%~$s !)!4<'OO))$?UUWN##))$?A#ZZ 2 %Z C-HB:,aPC(--"1557QUUWz-AB %%++D!%%'J2FG&q}6LM}$}!" +>NN6?N2 2    $ $T6 2 UUWFG  &&tV4A#N%111(+ .kAo)6)%~u%!)"D=($$**4@AEEG# # KK  dF + = KK  dF + = LL  tV , !%%'> ! KK  dF + 3--aggaj9:AEEGC C JJ  T6 * qwwqz?AEEG+ + KK  dF + $aeeg- -    # #D& 1 "#771:#J:"a'!!#d),$$Z%6%6z%BCQUUWL L    # #D& 1 ))$8 8%d4"+E&F%GHS!!rsF(\\[nrtbf()\\])|(\\[0-9]{1,3})|(\\(\r\n|\r|\n))|(\r\n|\r|\n)|(\()|(\))nrr t bf r c,d}t}|jj||D]\}|j|||j |j dr1|j|j |j ddn|j dr.|jt|j ddddn|j drn|j dr|jdnq|j dr|jd |dz }nI|j d r8|dk(rt||jfcS|jd |dz}|j}_d }t|) Nrrrrrrr zunfinished literal string) rre_lit_str_tokenrrrr escaped_charsrrVrurrJ)rrr nesting_depthrrrs r rzPdfParser.get_literal_stringsF %%..tV< A MM$v 2 3wwqz c// 1 >? c!''!*QR.!45 e$ d#"  A% =!%%'11 d#" UUWF% &*S!!rsxrefs+([0-9]{10}) ([0-9]{5}) ([fn])( \r| \n|\r\n)cZ|jJd}|jj|j||jz}t |dud|J|j } |j j|j|}|st |d |Sd}|j }t|jd}t|jd}t|||zD]}|jj|j|}t |dud|J|j }|jdd k(}|rbt|jd} t|jd| f} ||jvs| |j|<F) NFzxref section start not foundTzxref subsection start not foundrrzxref entry not foundrr) rre_xref_section_startrrrSrre_xref_subsection_startrVrr re_xref_entryr.) r`rsubsection_foundrr first_object num_objectsrVis_freerX new_entrys r rzPdfParser.read_xref_tablesxx###   & & , , HH)D,=,==  q}.LM}}--33DHHfEA&$&G   $ UUWFqwwqz?Laggaj/K< )CD 7&&,,TXXv>&q}6LM}$}''!*,!$QWWQZJ!$QWWQZ* =I/-6* 7rc |j|d\}}t||dk(d|dd|dd|d||jJ|j|j||jzt ||d}||j |<|S)Nrrzexpected to find generation z for object ID z) in xref table, instead found generation z at offset )rr)r.rSrrrr[r )r`rjrrrXrs r r}zPdfParser.read_indirects!__SV4  #a& *3q6(/#a&J//9l+fX O xx### HH T&& &-s3#    $)C  rc||n |j}t|ddk(dg}|dD]N}|j|}|ddk(r|j|.|j |j |P|S)Nr{rJz%/Type of page tree node is not /PagessKidsri)node)r(rSr}rrr~)r`r page_noder)kid kid_objects r r~zPdfParser.linearize_page_tree%s!,D$2E2E  g ( *,S W% HC++C0J'"g- S! T55:5FG  H  r)NNNrrb) rz str | NonerzIO[bytes] | Nonerzbytes | bytearray | NonerrVr0rsrrr)rrr)r5rwrrrr)r rsrrr)rrr[r=)rdIndirectReference | Nonerrr)rjzint | IndirectReference | Nonerkrrlrrrr[)rjrrkrrlrrrr[)rrrrzbytes | mmap.mmap)rz int | Nonerrr[)rrVrrr)rrurrzdict[bytes, Any])F)rrurrxrrz str | bytes)Nr) rbytes | bytearray | mmap.mmaprrVrrrrVrrztuple[Any, int | None])rrrrVrrztuple[bytes, int])rrVrrrV)r)rjr[rrVrrr)rzPdfDict | Nonerrzlist[IndirectReference])IrKrLrMrNrr2r6r9r8r4r/rBrErQrOrgrTrPrM staticmethodrr!rN delimiterdelimiter_or_ws whitespacewhitespace_or_hexwhitespace_optionalwhitespace_mandatorywhitespace_optional_no_nl newline_onlynewlinerecompileDOTALLrrr|rre_whitespace_optionalrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr}r~rOrr rrps| $"(, // /& /  /  / /b $$* <8< 4  4:1::=:KN: :+47EH 0;   "(H!I>O/J?$t+%, 7L',69RRGRZZ                          N!bjj                         O?.:"(RZZ(;<bjj - .    G BJJ2V;rHrrJrSrUr[r{r~rrrrrrrrrOrr rs"  " $$S5[#%56I$$I 7*(*(* (* ( *  ( *  ( * (* (* (* (* (* (* (* (* (*  (!*" (#*$ (%*& ('*( ()** (+*, (-*. (/*0 (1*2 (3*4 (5*6 (7*8 (9*: (;*< (=*> (?*@ (A*B (C*D (E*F       S*ZJ \ , Z 7.7(9)9 [[|&&RDtCyD -i-`BB++*:C C r