+
    f0ia                         ^ RI t ^ RIt^ RIt^ RIHtHtHt ^ RIHt ^ RI	H
t
HtHtHt ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHtHtHt ^ RIHtHt ^ R	IHt ^ R
I H!t!H"t"H#t# ^ RI$H%t%H&t&H't'H(t(H)t)H*t*H+t+H,t, ^ RI-H.t. ^ RI/H0t0H1t1H2t2H3t3H4t4H5t5 ^ RI6H7t7H8t8H9t9H:t:H;t;H<t< ]
'       d   ^ RI=H>t> ]P~                  ! ]@4      tAR R ltBR R ltC ! R R4      tD ! R R]4]E,          4      tFR4tGRRRR/tHR R ltI ! R R4      tJ ! R  R!4      tK ! R" R#]!4      tL ! R$ R%]L4      tM]1! R&4      tN]1! R'4      tO]P]E]Q,          ]R3,          tS ! R( R)4      tT ! R* R+]T4      tU ! R, R-]U4      tV ! R. R/]V4      tW ! R0 R1]U4      tX ! R2 R3]T4      tYR# )5    N)IterableIteratorMapping)BytesIO)TYPE_CHECKINGAnyBinaryIOcast)settings)
safe_floatsafe_rect_list)CMapCMapBaseCMapDB
CMapParserFileUnicodeMapIdentityUnicodeMap
UnicodeMap)
EncodingDBname2unicodeFONT_METRICS)PDFExceptionPDFKeyErrorPDFValueError)	PDFStream
dict_value	int_value
list_value	num_valueresolve1resolve_allstream_value)PSEOF)KWDLIT	PSKeyword	PSLiteralPSStackParserliteral_name)MatrixPointRectapply_matrix_normchoplistnunpack)PDFResourceManagerc                ~    V ^8  d   QhR\         \        ,          R\        \        \        ,          \
        3,          /#    seqreturn)r   objectdictstrintfloat)formats   "V/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/pdfminer/pdffont.py__annotate__r>   6   s-     0 0HV$ 0cCi.>)? 0    c                   / p. pV  EF2  p\        V4      p\        V\        4      '       dE   V'       d;   VR,          p\        V4       F  w  rVWa\	        \
        V4      V,           &   K   	  . pKg  Ki  \        V\
        \        34      '       d   VP                  V4       \        V4      ^8X  dq   Vw  rGp\        V\
        4      '       d5   \        V\
        4      '       d   \        WG^,           4       F  pWaV&   K	  	  M\        P                  RV RV R24       . pEK  EK  \        P                  RV R24       EK5  	  \	        \        \        \
        ,          \        3,          V4      # )z;Build a mapping of character widths for horizontal writing.z.Skipping invalid font width specification for z to z% because either of them is not an intz% because it is not a number or a list)r!   
isinstancelist	enumerater
   r:   r;   appendlenrangelogwarningr8   r9   )r5   widthsrvchar1iwchar2s   &       r=   
get_widthsrQ   6   s:   !FAQKa"%aLDA344U+a/0 )	 
 C<((HHQK1v{$%!qeS))j.D.D"5!)4$%q	 5 KKHt '!FH   KK@ D7 8- 4 S3Y%&//r?   c                    V ^8  d   QhR\         \        ,          R\        \        \        \
        \        3,          3,          /# r3   )r   r7   r8   r:   tupler;   r,   )r<   s   "r=   r>   r>   W   s2      Xf% $sE%,4G/G*H r?   c                   / p. pV  F  p\        V\        4      '       dW   V'       dM   VR,          p\        \        ^V4      4       F&  w  pw  rgpWgV33V\	        \
        V4      V,           &   K(  	  . pKm  Ko  \        V\
        \        34      '       g   K  VP                  V4       \        V4      ^8X  g   K  Vw  rIrgp\        \	        \
        V4      \	        \
        V	4      ^,           4       F
  pWgV33W&   K  	  . pK  	  V# )z9Build a mapping of character widths for vertical writing.rA   )
rB   rC   rD   r/   r
   r:   r;   rE   rF   rG   )
r5   rJ   rK   rL   rM   rN   rO   vxvyrP   s
   &         r=   get_widths2rW   W   s    -/FAa"&/A&?NA{r45Bx=F4U+a/0 '@	 
 C<((HHQK1v{,-)qbtC/c51AA1EFA!"HFI G  Mr?   c                   <   a  ] tR t^lt o ]V 3R lR l4       tRtV tR# )FontMetricsDBc                h   < V ^8  d   QhRS[ RS[S[S[ S[3,          S[S[ S[3,          3,          /# )r4   fontnamer6   )r9   rS   r8   r7   r:   )r<   __classdict__s   "r=   r>   FontMetricsDB.__annotate__n   s6     & &3 &5c6k1BDcN1R+S &r?   c                    \         V,          # Nr   )clsr[   s   &&r=   get_metricsFontMetricsDB.get_metricsm   s    H%%r?    N)__name__
__module____qualname____firstlineno__classmethodra   __static_attributes____classdictcell__r\   s   @r=   rY   rY   l   s     & &r?   rY   c                      a  ] tR t^st o ]! R4      t]! R4      t]! R4      t]! R4      t]! R4      t	]! R4      t
]! R4      t]! R4      tV 3R	 lR
 ltV 3R lR ltV 3R lR ltRtV tR# )Type1FontHeaderParsers   begins   ends   defs   puts   dicts   arrays   readonlys   forc                $   < V ^8  d   QhRS[ RR/# )r4   datar6   Nr	   )r<   r\   s   "r=   r>   "Type1FontHeaderParser.__annotate__}   s     / /X /$ /r?   c                @    \         P                  ! W4       / V n        R # r_   )r)   __init___cid2unicode)selfro   s   &&r=   rs   Type1FontHeaderParser.__init__}   s    t*,.r?   c                6   < V ^8  d   QhRS[ S[S[3,          /# r4   r6   )r8   r:   r9   )r<   r\   s   "r=   r>   rq      s     ! !d38n !r?   c                "     V P                  4       w  r \        \        \        T4      4      T P
                  T&   K=    \         d     T P
                  # i ; i  \         d*   p\        P                  \	        T4      4        Rp?K  Rp?ii ; i)a5  Parse the font encoding.

The Type1 font encoding maps character codes to character names. These
character names could either be standard Adobe glyph names, or
character names associated with custom CharStrings for this font. A
CharString is a sequence of operations that describe how the character
should be drawn. Currently, this function returns '' (empty string)
for character names that are associated with a CharStrings.

Reference: Adobe Systems Incorporated, Adobe Type 1 Font Format

:returns mapping of character identifiers (cid's) to unicode characters
N)	
nextobjectr$   r   r
   r9   rt   KeyErrorrH   debug)ru   cidnamees   &   r=   get_encoding"Type1FontHeaderParser.get_encoding   s     "oo/")5d3o)F!!#&  
      "		#a&!!"s&   > &A AAB%B		Bc                *   < V ^8  d   QhRS[ RS[RR/# )r4   postokenr6   N)r:   r'   )r<   r\   s   "r=   r>   rq      s"     = =c =) = =r?   c                    W P                   J dg   V P                  ^4      w  w  r4w  r5\        V\        4      '       d7   \        V\        4      '       d   V P                  V\        V4      34       R# R# R# R# )r4   N)KEYWORD_PUTpoprB   r:   r(   add_resultsr*   )ru   r   r   _keyvalues   &&&   r=   
do_keyword Type1FontHeaderParser.do_keyword   sc    $$$%)XXa["Xaz#s##
5)(D(D  #|E':!;< )E# %r?   )rt   N)rd   re   rf   rg   r%   KEYWORD_BEGINKEYWORD_ENDKEYWORD_DEFr   KEYWORD_DICTKEYWORD_ARRAYKEYWORD_READONLYKEYWORD_FORrs   r   r   ri   rj   rk   s   @r=   rm   rm   s   sm     MMf+Kf+Kf+Kw<LMM;'f+K/ /! !2= =r?   rm   z	DLIdent-Hz
Identity-Hz	DLIdent-Vz
Identity-Vc                ~    V ^8  d   QhR\         R\        \        \        \        \        ,          ,          3,          /# )r4   ro   r6   )bytesr8   r:   rC   r;   )r<   s   "r=   r>   r>      s-     + +% +Dd53;&7!78 +r?   c                    / p\        V 4      p. p VP                  ^4      pV'       g    V# \        V4      pV^8:  d	   W1V&   . pK7  V^8X  du   RpRpV'       d\   \        VP                  ^4      4      pV^,	          V^,          3 F)  p	V	^8X  d   RpK  \        V	,          p
V
f   Q hWj,          pK+  	  Kc  \	        V4      pEMV^ 8  d   V^8:  d   V^,
          pEM \        VP                  ^4      4      pV^8  d'   V^8:  d    V^,
          ^,          V,           ^l,           pMV^8  d(   V^8:  d!   V^,
          ^,          ) V,
          ^l,
          pM\        VP                  ^4      4      pV^8  d
   VR,          pV^8X  d   V^,          V,          pMIV^,          V^,          ,          \
        P                  ! RVP                  ^4      4      ^ ,          ,          pVP                  V4       EK  )    TF   >H)r   readordNIBBLESr;   structunpackrE   )ro   dfpstackcb0sloopbnnibbler   b1b2s   &             r=   getdictr      s   &(A	B!E
GGAJH HG V8bEE8AD
Oq&!b&)ABw$!(%111 * !HE2X")HERWWQZBSyR3Ys(qB.4srSy8/*R/#5_9#IB8!GbLE"HrRx/&--bggaj2QRS2TTEUr?   c                   \   a  ] tR t^t o R	t ! R R4      tV 3R lR ltV 3R lR ltRtV t	R# )
CFFFontc                   z   a  ] tR tRt o V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR ltRt	V t
R# )CFFFont.INDEXid  c                $   < V ^8  d   QhRS[ RR/# )r4   r   r6   Nrp   )r<   r\   s   "r=   r>   CFFFont.INDEX.__annotate__e  s     	7 	7x 	7D 	7r?   c                   Wn         . V n        \        P                  ! R V P                   P	                  ^4      4      w  r#\        V^,           4       F@  pV P                  P                  \        V P                   P	                  V4      4      4       KB  	  V P                   P                  4       ^,
          V n	        V P                   P                  V P                  V P                  R,          ,           4       R# )z>HBNrA   )r   offsetsr   r   r   rG   rE   r0   tellbaseseek)ru   r   countoffsize_is   &&   r=   rs   CFFFont.INDEX.__init__e  s    G&(DL%}}UDGGLLODUEAI&##GDGGLL,A$BC '*DIGGLLT\\"%556r?   c                    < V ^8  d   QhRS[ /# rx   r9   )r<   r\   s   "r=   r>   r   n  s     	0 	0c 	0r?   c                     R \        V 4       R2# )z<INDEX: size=>)rF   ru   s   &r=   __repr__CFFFont.INDEX.__repr__n  s    "3t9+Q//r?   c                    < V ^8  d   QhRS[ /# rx   )r:   )r<   r\   s   "r=   r>   r   q  s     	) 	)S 	)r?   c                :    \        V P                  4      ^,
          # r   )rF   r   r   s   &r=   __len__CFFFont.INDEX.__len__q  s    t||$q((r?   c                &   < V ^8  d   QhRS[ RS[/# )r4   rN   r6   )r:   r   )r<   r\   s   "r=   r>   r   t  s     	G 	G 	G 	Gr?   c                   V P                   P                  V P                  V P                  V,          ,           4       V P                   P	                  V P                  V^,           ,          V P                  V,          ,
          4      # r   )r   r   r   r   r   )ru   rN   s   &&r=   __getitem__CFFFont.INDEX.__getitem__t  sP    GGLLT\\!_4577<<QU 3dll1o EFFr?   c                0   < V ^8  d   QhRS[ S[,          /# rx   )r   r   )r<   r\   s   "r=   r>   r   x  s     	; 	;huo 	;r?   c                R   a  \        V 3R  l\        \        S 4      4       4       4      # )c              3   6   <"   T F  pSV,          x  K  	  R # 5ir_   rc   ).0rN   ru   s   & r=   	<genexpr>)CFFFont.INDEX.__iter__.<locals>.<genexpr>y  s     :)9AQ)9s   )iterrG   rF   r   s   fr=   __iter__CFFFont.INDEX.__iter__x  s    :s4y)9:::r?   )r   r   r   N)rd   re   rf   rg   rs   r   r   r   r   ri   rj   rk   s   @r=   INDEXr   d  s9     	7 	7	0 	0	) 	)	G 	G	; 	;r?   r   c                *   < V ^8  d   QhRS[ RS[RR/# r4   r~   r   r6   Nr9   r	   )r<   r\   s   "r=   r>   CFFFont.__annotate__{  s,     NK NKS NKh NK4 NKr?   c                L   Wn         W n        \        P                  ! R V P                  P	                  ^4      4      w  r4rVV P                  P	                  V^,
          4       V P                  V P                  4      V n        V P                  V P                  4      V n        V P                  V P                  4      V n        V P                  V P                  4      V n	        \        V P                  ^ ,          4      V n        V P                  P                  ^^ .4      w  pV P                  P                  ^^ .4      w  pV P                  P                  ^^ .4      w  p	V P                  P                  \        \        V	4      4       V P                  V P                  4      V n        \#        V P                   4      V n        / V n        / V n        V P                  P                  \        \        V4      4       V P                  P	                  ^4      p
V
R8X  d   \        P                  ! RV P                  P	                  ^4      4      w  p\+        \        P                  ! RV,          V P                  P	                  V4      4      4       F!  w  rWP&                  V&   WP(                  V&   K#  	  MV
R8X  d   \        P                  ! RV P                  P	                  ^4      4      w  p^ p\-        V4       F{  p\        P                  ! RV P                  P	                  ^4      4      w  pp\-        WV,           ^,           4       F(  pWP&                  V&   WP(                  V&   V^,          pK*  	  K}  	  M\/        RV
: 24      h/ V n        / V n        V P                  P                  \        \        V4      4       V P                  P	                  ^4      p
V
R8X  d   V P$                  ^,
          p\+        \        \4        \        R3,          \        P                  ! RRV,          ,           V P                  P	                  ^V,          4      4      4      4       F=  w  ppV^,          pV P7                  V4      pWP0                  V&   VV P2                  V&   K?  	  R# V
R8X  d   \        P                  ! RV P                  P	                  ^4      4      w  p^ p\-        V4       F  p\        P                  ! RV P                  P	                  ^4      4      w  pp\-        WV,           ^,           4       F:  pV P7                  V4      pWP0                  V&   VV P2                  V&   V^,          pK<  	  K  	  R# V
R	8X  d   \9        \;        R
V
34      4      h\/        RV
: 24      h)BBBB    B   BBzunsupported encoding format: .r   H   	Unhandledzunsupported charset format: N)r~   r   r   r   r   r   
name_index
dict_indexstring_index
subr_indexr   top_dictgetr   r
   r:   
charstringrF   nglyphscode2gidgid2coderD   rG   r   name2gidgid2namerS   getstrAssertionErrorr9   )ru   r~   r   _major_minorhdrsize_offsizecharset_posencoding_poscharstring_posr<   r   codegidr   firstnleftsidsidnames   &&&                r=   rs   CFFFont.__init__{  s   	.4mmFDGGLLQRO.T+Wq[!**TWW-**TWW- JJtww/**TWW- 23**2s3--++B4 MM--b1#6T#~./**TWW-4??+T#|,-aW==dggll1o6DQ&v}}S1Wdggll1o'NO	&)d#%)c" P w==dggll1o6DQDAh!'tTWW\\!_!E (9:C*-MM$')-MM#&AID ;   "?z JKKT#{+,aWq A%#s(OV]]3q=$'',,qSTuBU%VS
 q++c*),g&%,c" w==dggll1o6DQCAh!'tTWW\\!_!E (9:C"kk#.G-0MM'*)0DMM#&1HC	 ;  w k6%:!;<<">vj IJJr?   c                6   < V ^8  d   QhRS[ RS[S[,          /# )r4   r   r6   )r:   r9   r   )r<   r\   s   "r=   r>   r     s#     C C# C#+ Cr?   c                    V\        V P                  4      8  d   V P                  V,          # V P                  V\        V P                  4      ,
          ,          # r_   )rF   STANDARD_STRINGSr   )ru   r   s   &&r=   r   CFFFont.getstr  sI     T**++((--  s4+@+@'A!ABBr?   )r   r   r   r   r   r   r~   r   r   r   r   r   r   N(  z.notdefspaceexclamquotedbl
numbersigndollarpercent	ampersand
quoteright	parenleft
parenrightasteriskpluscommahyphenperiodslashzeroonetwothreefourfivesixseveneightninecolon	semicolonlessequalgreaterquestionatAr   CDEFGr   IJKLMNOPQRSTUVWXYZbracketleft	backslashbracketrightasciicircum
underscore	quoteleftar   r   r   r   fghrN   jklmr   opqrK   r   turL   rO   xyz	braceleftbar
braceright
asciitilde
exclamdowncentsterlingfractionyenflorinsectioncurrencyquotesinglequotedblleftguillemotleftguilsinglleftguilsinglrightfiflendashdagger	daggerdblperiodcentered	paragraphbulletquotesinglbasequotedblbasequotedblrightguillemotrightellipsisperthousandquestiondowngraveacute
circumflextildemacronbreve	dotaccentdieresisringcedillahungarumlautogonekcaronemdashAEordfeminineLslashOslashOEordmasculineaedotlessilslashoslashoe
germandblsonesuperior
logicalnotmu	trademarkEthonehalf	plusminusThorn
onequarterdivide	brokenbardegreethornthreequarterstwosuperior
registeredminusethmultiplythreesuperior	copyrightAacuteAcircumflex	AdieresisAgraveAringAtildeCcedillaEacuteEcircumflex	EdieresisEgraveIacuteIcircumflex	IdieresisIgraveNtildeOacuteOcircumflex	OdieresisOgraveOtildeScaronUacuteUcircumflex	UdieresisUgraveYacute	YdieresisZcaronaacuteacircumflex	adieresisagravearingatildeccedillaeacuteecircumflex	edieresisegraveiacuteicircumflex	idieresisigraventildeoacuteocircumflex	odieresisograveotildescaronuacuteucircumflex	udieresisugraveyacute	ydieresiszcaronexclamsmallHungarumlautsmalldollaroldstyledollarsuperiorampersandsmall
Acutesmallparenleftsuperiorparenrightsuperiortwodotenleaderonedotenleaderzerooldstyleoneoldstyletwooldstylethreeoldstylefouroldstylefiveoldstylesixoldstylesevenoldstyleeightoldstylenineoldstylecommasuperiorthreequartersemdashperiodsuperiorquestionsmall	asuperior	bsuperiorcentsuperior	dsuperior	esuperior	isuperior	lsuperior	msuperior	nsuperior	osuperior	rsuperior	ssuperior	tsuperiorffffifflparenleftinferiorparenrightinferiorCircumflexsmallhyphensuperior
GravesmallAsmallBsmallCsmallDsmallEsmallFsmallGsmallHsmallIsmallJsmallKsmallLsmallMsmallNsmallOsmallPsmallQsmallRsmallSsmallTsmallUsmallVsmallWsmallXsmallYsmallZsmallcolonmonetary	onefittedrupiah
TildesmallexclamdownsmallcentoldstyleLslashsmallScaronsmallZcaronsmallDieresissmall
Brevesmall
CaronsmallDotaccentsmallMacronsmall
figuredashhypheninferiorOgoneksmall	RingsmallCedillasmallquestiondownsmall	oneeighththreeeighthsfiveeighthsseveneighthsonethird	twothirdszerosuperiorfoursuperiorfivesuperiorsixsuperiorsevensuperioreightsuperiorninesuperiorzeroinferioroneinferiortwoinferiorthreeinferiorfourinferiorfiveinferiorsixinferiorseveninferioreightinferiornineinferiorcentinferiordollarinferiorperiodinferiorcommainferiorAgravesmallAacutesmallAcircumflexsmallAtildesmallAdieresissmall
AringsmallAEsmallCcedillasmallEgravesmallEacutesmallEcircumflexsmallEdieresissmallIgravesmallIacutesmallIcircumflexsmallIdieresissmallEthsmallNtildesmallOgravesmallOacutesmallOcircumflexsmallOtildesmallOdieresissmallOEsmallOslashsmallUgravesmallUacutesmallUcircumflexsmallUdieresissmallYacutesmall
ThornsmallYdieresissmallz001.000z001.001z001.002z001.003BlackBoldBookLightMediumRegularRomanSemibold)
rd   re   rf   rg   r  r   rs   r   ri   rj   rk   s   @r=   r   r      s4     HT; ;.NK NK`C Cr?   r   c                   Z   a  ] tR tRt o  ! R R]4      tV 3R lR ltV 3R lR ltRtV t	R	# )
TrueTypeFonti  c                       ] tR tRtRtR# )TrueTypeFont.CMapNotFoundi  rc   Nrd   re   rf   rg   ri   rc   r?   r=   CMapNotFoundr}    s    r?   r  c                *   < V ^8  d   QhRS[ RS[RR/# r   r   )r<   r\   s   "r=   r>   TrueTypeFont.__annotate__  s"      S h 4 r?   c           
        Wn         W n        / V n        VP                  ^4      V n         \        \        \        \        \        \        3,          \        P                  ! RVP                  ^4      4      4      w  r4rV\        V4       Fe  p\        \        \        \        \        \        3,          \        P                  ! RVP                  ^4      4      4      w  rrW3V P                  V&   Kg  	  R#   \        P                   d     R# i ; i)   >HHHHz>4sLLLN)r~   r   tablesr   fonttyper
   rS   r:   r   r   rG   r   error)ru   r~   r   ntables_1_2_3r   
name_bytes_tsumoffsetlengths   &&&         r=   rs   TrueTypeFont.__init__  s    	46
	$(c3S()grwwqz2%!W" 7^6:%c3./MM(BGGBK873F ,2*:J' $ || 	 		s   CC3 3DDc                    < V ^8  d   QhRS[ /# rx   )r   )r<   r\   s   "r=   r>   r    s     a aN ar?   c                   R V P                   9  d   \        P                  hV P                   R ,          w  rV P                  pVP	                  V4       \        \        \        \        3,          \        P                  ! RVP                  ^4      4      4      w  rE. p\        V4       F\  pVP                  \        \        \        \        \        3,          \        P                  ! RVP                  ^4      4      4      4       K^  	  / pV EFn  w  rpV	^ 8X  g   V	^8X  d   V
R9   g   K  VP	                  W,           4       \        \        \        \        \        3,          \        P                  ! RVP                  ^4      4      4      w  rpV^ 8X  d\   VP                  \        \        \        \        R3,          \        P                  ! RVP                  R4      4      4      4      4       K  V^8X  Ed   \        \        \        R3,          \        P                  ! RVP                  R4      4      4      p^ .R	,          p\        V4       F  w  ppVVV^,          &   K  	  \        V4      ^,          ^,           p. p\        V4       F  p\        \        \        \        \        \        3,          \        P                  ! R
VP                  ^4      4      4      w  ppppVP                  VVVVVP!                  4       ^,
          V,           34       K  	  V F  w  pppppV'       g   K  VVV,          ^,          ,           pVP	                  V4       \        V4       Ff  p\        \        \        ,          \        P                  ! RVP                  ^4      4      4      ^ ,          pV'       d
   VV,          pVVVV,           &   Kh  	  K  	  EK  V^8X  Ed   \        \        \        \        \        \        3,          \        P                  ! RVP                  ^4      4      4      w  pppp V^,          p\        \        \        R3,          \        P                  ! RV R2VP                  ^V,          4      4      4      p!VP                  ^4       \        \        \        R3,          \        P                  ! RV R2VP                  ^V,          4      4      4      p"\        \        \        R3,          \        P                  ! RV R2VP                  ^V,          4      4      4      p#VP!                  4       p\        \        \        R3,          \        P                  ! RV R2VP                  ^V,          4      4      4      p$\#        V!V"V#V$RR7       F  w  p%p&p'p(V('       d   VP	                  VV(,           4       \        V&V%^,           4       F\  p\        \        \        ,          \        P                  ! RVP                  ^4      4      4      ^ ,          p)V)V',           R,          VV&   K^  	  K  \        V&V%^,           4       F  pVV',           R,          VV&   K  	  K  	  EK[  \%        \'        RV34      4      h	  V'       g   \        P                  h\)        4       p*VP+                  4        F  w  p+pV*P-                  VV+4       K  	  V*# )s   cmapz>HHz>HHLz>HHH.z>256Br   z>256Hi   i    z>HHhHr   r  r   r   rF  F)stricti  r   )r   
   )r  r{  r  r   r   r
   rS   r:   r   r   r   rG   rE   updaterD   maxr   zipr   r9   r   itemsadd_cid2unichr),ru   base_offset_lengthr   _version
nsubtables	subtablesr   char2gidplatform_idencoding_id	st_offsetfmttype_fmtlen_fmtlangsubheaderkeys
firstbytesrN   rH  nhdrshdrs	firstcodeentcountdeltar  r   r   r   r   segcountr  r  r  ecsscsiddsidrsecsciddidrr   unicode_mapchars,   &                                           r=   create_unicode_mapTrueTypeFont.create_unicode_map  s8   $++%+++!%W!5WW
!%eCHov}}UBGGTUJ7W!X02	
#BU3S=)6==+LM $ $&3</Ki  1$)9kW>TGGK+,+/c3m$fbggaj1,(Wx !|U38_fmmGRWWS\.RS
 A $#s(OMM'2773<8!  S4Z
%m4DAq)*JqAv& 5M*a/!3=?uA;?c3S01grwwqz:<8Y% KKIx	APV@V WX & ;?6Ay(E3# %A!);<EGGCL"8_"5:v}}T2771:/NOPQR5LC.1+	 - ;? A)-#sC,-MM'2771:6*&2r2 Q#s(OMMAhZq/2771x<3HI 
#s(OMMAhZq/2771x<3HI #s(OMMAhZq/2771x<3HI ggi#s(OMMAhZq/2771x<3HI ),CdD(O$BCc	*!&r26!2A $U3ZtRWWQZ1P QRS TA+,s7f*<HQK "3 "'r26!2A+,s7f*<HQK "3 )P %S+w)?%@AAY 4=Z +++$&!)ID#&&sD1 *r?   )r  r   r~   r  N)
rd   re   rf   rg   r   r  rs   r  ri   rj   rk   s   @r=   r{  r{    s'     |  ,a ar?   r{  c                       ] tR tRtRtR# )PDFFontErroriQ  rc   Nr~  rc   r?   r=   r  r  Q      r?   r  c                       ] tR tRtRtR# )PDFUnicodeNotDefinediU  rc   Nr~  rc   r?   r=   r  r  U  r  r?   r  StandardEncodingType1Cc                   *  a  ] tR tRt o R V 3R lR lltV 3R lR ltV 3R lR ltV 3R	 lR
 ltV 3R lR ltV 3R lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR lt]V 3R lR l4       tRtV tR# )!PDFFontia  Nc                T   < V ^8  d   QhRS[ S[S[3,          RS[RS[R,          RR/# )r4   
descriptorrJ   default_widthNr6   )r   r9   r   FontWidthDictr;   )r<   r\   s   "r=   r>   PDFFont.__annotate__b  s@     ) )CH%) ) t|	)
 
)r?   c                B   Wn         \        V4      V n        \        VP	                  R R4      4      V n        \        V P
                  \        4      '       d   \        V P
                  4      V n        \        VP	                  R^ 4      4      V n
        \        VP	                  R^ 4      4      V n        \        VP	                  R^ 4      4      V n        \        VP	                  R^ 4      4      V n        Vf"   \        VP	                  R^ 4      4      V n        MW0n        \        V P                  4      V n        \        VP	                  R^ 4      4      V n        V P#                  V4      V n        R	;V n        V n        V P                  ^ 8  d   V P                  ) V n        R# R# )
FontNameunknownFlagsAscentDescentItalicAngleNMissingWidthLeadinggMbP?)r  r"   rJ   r!   r   r[   rB   r(   r*   r   flagsr    ascentdescentitalic_angler  leading_parse_bboxbboxhscalevscale)ru   r  rJ   r  s   &&&&r=   rs   PDFFont.__init__b  s8    %%0%8 
I!FGdmmY//(7DMz~~gq9:

x ;< 	1!=>%jnn]A&FG !*:>>.!+L!MD!.%d&8&89 	1!=>$$Z0	$))dk <<! LL=DL r?   c                    < V ^8  d   QhRS[ /# rx   r   )r<   r\   s   "r=   r>   r    s      # r?   c                    R # )z	<PDFFont>rc   r   s   &r=   r   PDFFont.__repr__  s    r?   c                    < V ^8  d   QhRS[ /# rx   bool)r<   r\   s   "r=   r>   r    s      T r?   c                    R # Frc   r   s   &r=   is_verticalPDFFont.is_vertical      r?   c                    < V ^8  d   QhRS[ /# rx   r  )r<   r\   s   "r=   r>   r    s      d r?   c                    R # r  rc   r   s   &r=   is_multibytePDFFont.is_multibyte  r  r?   c                6   < V ^8  d   QhRS[ RS[S[,          /# r4   r   r6   r   r   r:   )r<   r\   s   "r=   r>   r    s        E  hsm  r?   c                    \        V4      # r_   )	bytearrayru   r   s   &&r=   decodePDFFont.decode  s    r?   c                    < V ^8  d   QhRS[ /# rx   r;   )r<   r\   s   "r=   r>   r    s     ) )E )r?   c                <    V P                   V P                  ,          # )z.Ascent above the baseline, in text space units)r  r  r   s   &r=   
get_ascentPDFFont.get_ascent  s    {{T[[((r?   c                    < V ^8  d   QhRS[ /# rx   r  )r<   r\   s   "r=   r>   r    s     * *U *r?   c                <    V P                   V P                  ,          # )z@Descent below the baseline, in text space units; always negative)r  r  r   s   &r=   get_descentPDFFont.get_descent  s    ||dkk))r?   c                    < V ^8  d   QhRS[ /# rx   r  )r<   r\   s   "r=   r>   r    s      5 r?   c                    V P                   ^,          V P                   ^ ,          ,
          pV^ 8X  d   V P                  ) pWP                  ,          # )r4   )r  r  r  )ru   rO   s   & r=   	get_widthPDFFont.get_width  s=    IIaL499Q<'6###A;;r?   c                    < V ^8  d   QhRS[ /# rx   r  )r<   r\   s   "r=   r>   r    s      E r?   c                    V P                   ^,          V P                   ^,          ,
          pV^ 8X  d   V P                  V P                  ,
          pWP                  ,          # )   )r  r  r  r  )ru   rF  s   & r=   
get_heightPDFFont.get_height  sA    IIaL499Q<'6dll*A;;r?   c                &   < V ^8  d   QhRS[ RS[/# r4   r}   r6   )r:   r;   )r<   r\   s   "r=   r>   r    s     0 0c 0e 0r?   c                l   \        V P                  P                  V4      4      pVe   W P                  ,          #  V P	                  V4      p\        V P                  P                  V4      4      pVe   W P                  ,          #  V P                  V P                  ,          #   \
         d     L*i ; ir_   )r   rJ   r   r  	to_unichrr  r  )ru   r}   	cid_widthstr_cids   &&  r=   
char_widthPDFFont.char_width  s     t{{s34	 {{**	nnS)G"4;;??7#;<I$ ;;.. % !!DKK// $ 		s   A
B% %B32B3c                Z   < V ^8  d   QhRS[ RS[S[S[R,          S[3,          ,          /# r4   r}   r6   Nr:   r;   rS   )r<   r\   s   "r=   r>   r    s.      S UU54<3F-G%G r?   c                    ^ # zDReturns an integer for horizontal fonts, a tuple for vertical fonts.rc   ru   r}   s   &&r=   	char_dispPDFFont.char_disp  s    r?   c                &   < V ^8  d   QhRS[ RS[/# )r4   r   r6   )r   r;   )r<   r\   s   "r=   r>   r    s     C Ce C Cr?   c                L   a  \        V 3R  lS P                  V4       4       4      # )c              3   F   <"   T F  pSP                  V4      x  K  	  R # 5ir_   )r
  )r   r}   ru   s   & r=   r   'PDFFont.string_width.<locals>.<genexpr>  s     B>C4??3''>s   !)sumr  )ru   r   s   f&r=   string_widthPDFFont.string_width  s    B4;;q>BBBr?   c                &   < V ^8  d   QhRS[ RS[/# r  r:   r9   )r<   r\   s   "r=   r>   r    s     " "S "S "r?   c                    \         hr_   )NotImplementedErrorr  s   &&r=   r  PDFFont.to_unichr  s    !!r?   c                <   < V ^8  d   QhRS[ S[S[3,          RS[/# )r4   r  r6   )r   r9   r   r-   )r<   r\   s   "r=   r>   r    s$     
 
S 1 
d 
r?   c                    \        V P                  R4      4      p\        V4      pVf   \        P	                  RV: R24       R# V# )z(Parse FontBBox from the fonts descriptorFontBBoxz4Could not get FontBBox from font descriptor because z cannot be parsed as 4 floats)        r#  r#  r#  )r"   r   r   rH   rI   )r  	font_bboxr  s   &  r=   r  PDFFont._parse_bbox  sO      
z :;	i(<KKF-<> &%r?   )r  r  r  r  r  r  r[   r  r  r  r  rJ   r_   )rd   re   rf   rg   rs   r   r  r  r  r  r  r  r  r
  r  r  r  staticmethodr  ri   rj   rk   s   @r=   r  r  a  s     ) )>      ) )* *  0 0$ C C" " 
 
r?   r  c                   D   a  ] tR tRt o V 3R lR ltV 3R lR ltRtV tR# )PDFSimpleFonti  c                \   < V ^8  d   QhRS[ S[S[3,          RS[RS[ S[S[3,          RR/# )r4   r  rJ   specr6   N)r   r9   r   r  )r<   r\   s   "r=   r>   PDFSimpleFont.__annotate__  sE     3 3CH%3 3 c3h	3
 
3r?   c                   \         p\        VP                  R 4      4      R8X  d   \        R4      pTpRV9   d   \	        VR,          4      p\        V\        4      '       dS   \        VP                  RV4      4      p\        VP                  R. 4      4      p\        P                  ! Wg4      V n
        M$\        P                  ! \        V4      4      V n
        RV n        RV9   d]   \        VR,          4      p\        4       V n        \        V P                  \        VP!                  4       4      4      P#                  4        \$        P'                  WV4       R# )SubtypeTrueTypeWinAnsiEncodingEncodingBaseEncodingDifferencesN	ToUnicode)LITERAL_STANDARD_ENCODINGr*   r   r&   r!   rB   r8   r   r   r   cid2unicoder  r#   r   r   r   get_datarunr  rs   )	ru   r  rJ   r*  default_encodingencodingr~   diffstrms	   &&&&     r=   rs   PDFSimpleFont.__init__  s	    5+,
:"#45#Z 01Hh%%^=M NODhll="=>D)66tBD)66|H7MND.2$[ 12D-/Dt'')ABFFH62r?   c                &   < V ^8  d   QhRS[ RS[/# r  r  )r<   r\   s   "r=   r>   r+    s     	; 	;S 	;S 	;r?   c                    V P                   '       d    V P                   P                  V4      #  V P                  V,          #   \         d     L!i ; i  \         d   p\	        R T4      ThR p?ii ; ir_   )r  
get_unichrr{   r5  r  ru   r}   errs   && r=   r  PDFSimpleFont.to_unichr  st    ''22377	;##C((    	;&tS1s:	;s(   A A AAA1A,,A1)r5  r  N)rd   re   rf   rg   rs   r  ri   rj   rk   s   @r=   r(  r(    s     3 3B	; 	;r?   r(  c                   D   a  ] tR tRt o V 3R lR ltV 3R lR ltRtV tR# )PDFType1Fonti  c                >   < V ^8  d   QhRRRS[ S[S[3,          RR/# r4   rsrcmgrr1   r*  r6   Nr   r9   r   )r<   r\   s   "r=   r>   PDFType1Font.__annotate__  s-     5 5 4 5GCH<M 5RV 5r?   c           	         \        VR ,          4      V n         \        P                  V P                  4      w  r4\        \        \        \        ,          \        3,          V4      p\&        P)                  WWR4       RV9  d   R	V9   d   \+        VP                  R	4      4      V n        \        V P,                  R
,          4      p
V P,                  P/                  4       RV
 p\1        \3        V4      4      pVP5                  4       V n        R# R# R#   \         d.    \        P                  '       d   \        R4      RhRT n         EL0i ; i  \         d    \        TP                  R/ 4      4      p\        TP                  R^ 4      4      p\!        TP                  R^ .R,          4      4      p\#        T4       UU	u/ uF  w  rY,           \%        T	4      bK  	  Mu up	pi ppp	 ELi ; i)BaseFontBaseFont is missingNr  FontDescriptor	FirstCharWidthsr   r0  FontFileLength1)r*   basefontr{   r   STRICTr  rY   ra   r
   r8   r9   r:   r;   r   r   r   r   rD   r!   r(  rs   r#   fontfiler6  rm   r   r   r5  )ru   rG  r*  r  
int_widthsrJ   	firstchar
width_listrN   rO   length1ro   parsers   &&&          r=   rs   PDFType1Font.__init__  s   	&(j)9:DM	V'4'@'@'O$Z$sSy%/0*=F 	t>T!jJ&>(
)CDDMi 89G==))+HW5D*74=9F%224D '?!!  	&"#89tC%DM	&  	V#DHH-=r$BCJ!$((;":;I#DHHXsSy$ABJ?H?TU?TVaamXa[0?TUFUF	Vs6   D AE  E
3E
	E
A2G*?G
G*)G*c                    < V ^8  d   QhRS[ /# rx   r   )r<   r\   s   "r=   r>   rI    s     = =# =r?   c                $    R V P                   : R2# )z<PDFType1Font: basefont=r   rR  r   s   &r=   r   PDFType1Font.__repr__  s    )$--):!<<r?   )rR  r5  rT  Nrd   re   rf   rg   rs   r   ri   rj   rk   s   @r=   rD  rD    s     5 56= =r?   rD  c                   2   a  ] tR tRt o V 3R lR ltRtV tR# )PDFTrueTypeFonti  c                    < V ^8  d   QhRS[ /# rx   r   )r<   r\   s   "r=   r>   PDFTrueTypeFont.__annotate__  s     @ @# @r?   c                $    R V P                   : R2# )z<PDFTrueTypeFont: basefont=r   r]  r   s   &r=   r   PDFTrueTypeFont.__repr__  s    ,T]],=Q??r?   rc   N)rd   re   rf   rg   r   ri   rj   rk   s   @r=   ra  ra    s     @ @r?   ra  c                   D   a  ] tR tRt o V 3R lR ltV 3R lR ltRtV tR# )PDFType3Fonti  c                >   < V ^8  d   QhRRRS[ S[S[3,          RR/# rF  rH  )r<   r\   s   "r=   r>   PDFType3Font.__annotate__  s2     L L 4 LGCH<M LRV Lr?   c           
     :   \        VP                  R ^ 4      4      p\        VP                  R^ .R,          4      4      p\        V4       UUu/ uF  w  rVWS,           VbK  	  pppRV9   d   \	        VR,          4      pMR^ R^ RVR,          /p\
        P                  WWr4       \        \        \        \        VP                  R4      4      4      4      V n
        V P                  w  qn        qn        \        V P                  R	4      w  V n        V n        R# u uppi )
rN  rO  r   rM  r  r  r"  
FontMatrixN)r   r   )r   r   r   rD   r   r(  rs   r
   r+   rS   matrixr  r  r  r.   r  r  )
ru   rG  r*  rV  rW  rN   rO   rJ   r  r   s
   &&&       r=   rs   PDFType3Font.__init__  s    dhh{A67	A39 =>
+4Z+@*
+@!AM1+@ 	 *
 t##D)9$:;J"Ay!ZjAQRJt>65DHH\4J)K#LM,0II)L![%6t{{F%K"dk*
s   Dc                    < V ^8  d   QhRS[ /# rx   r   )r<   r\   s   "r=   r>   ri  /  s        #  r?   c                    R # )z<PDFType3Font>rc   r   s   &r=   r   PDFType3Font.__repr__/  s    r?   )r  r  r  rl  r  Nr_  rk   s   @r=   rg  rg    s     L L    r?   rg  c                      a  ] tR tRt o ]P
                  3V 3R lR lltV 3R lR lt]V 3R lR l4       t	V 3R lR	 lt
V 3R
 lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )
PDFCIDFonti3  c                D   < V ^8  d   QhRRRS[ S[S[3,          RS[RR/# )r4   rG  r1   r*  r  r6   Nr   r9   r   r  )r<   r\   s   "r=   r>   PDFCIDFont.__annotate__6  sH     KP KP%KP c3hKP 	KP
 
KPr?   c           	     	    \        VR ,          4      V n        \	        VP                  R/ 4      4      V n        \        V P                  P                  RR4      4      P                  R4      p\        V P                  P                  RR4      4      P                  R4      pVP                  4        R	VP                  4        2V n
        V P                  W#4      V n         \	        VR
,          4      pRpRV9   dW   \        VP                  R4      4      V n        \        V P                  \!        V P                  P#                  4       4      4      pRV n        RV9   d   \'        VR,          \(        4      '       d_   \        VR,          4      p\+        4       V n        \-        V P$                  \!        VP#                  4       4      4      P/                  4        EM!\        VR,          4      p	\        VR,          4      p
RV9   g   RV	9   g   RV
9   d   \1        4       V n        MV P                  R9   dU   V'       dL   \2        P4                  ! \        P6                  4      ;_uu_ 4        VP9                  4       V n        RRR4       MtMs\2        P4                  ! \:        P6                  4      ;_uu_ 4        \:        P<                  ! V P                  V P                  P?                  4       4      V n        RRR4       V P                  P?                  4       V n         V P@                  '       d   \C        \E        VP                  R. 4      4      4      pVPG                  4        UUUUu/ uF  w  pw  pw  rWV3bK  	  uppppV n$        \        VP                  RRR.4      4      w  ppRV3V n%        VPG                  4        UUUu/ uF  w  pw  pqVbK  	  ppppXpMD/ V n$        ^ V n%        \M        \E        VP                  R. 4      4      4      pVP                  RR4      p\N        PQ                  WVVR7       R#   \         d     T'       d   \        R4      RhRT n         ELHi ; i  \         d    T'       d   \        R4      Rh/ p ELi ; i  + '       g   i     EL; i  + '       g   i     EL; iu uppppi u upppi )rK  rL  Nr  CIDSystemInfoRegistrys   unknownlatin1Ordering-rM  zFontDescriptor is missing	FontFile2r3  r0  IdentityW2DW2ip  i  r9  DW)r  )zAdobe-Identityz	Adobe-UCSi))r*   rR  r{   r  r   r   cidsysteminfor!   r  strip	cidcodingget_cmap_from_speccmapr#   rT  r{  r   r6  r  rB   r   r   r   r7  r   
contextlibsuppressr  r  r   get_unicode_mapr  verticalrW   r   r  dispsdefault_disprQ   r  rs   )ru   rG  r*  r  cid_registrycid_orderingr  ttfr;  	cmap_namer9  widths2r}   r   rU   rV   rO   rJ   r  s   &&&&               r=   rs   PDFCIDFont.__init__6  s   	&(j)9:DM
 ("(EF 2 2 6 6z: NOVV
   2 2 6 6z: NOVV
 )..01<3E3E3G2HI"55dC		#D)9$:;J
 *$()DEDMt}}gdmm6L6L6N.OPC.2$${+Y77#D$56#1#3 4++WT]]_-EFJJL(k):;	'Z(89,.!Y.!X-'9';D$^^>>(()B)BCC'*'='='?D$ DC  $$V%8%899#)#9#9NNII))+$  : 		--/===!*TXXdB-?"@AGDKMMOTO,@S-1hr#Bx-OTDJtxxU|<=GR!%r
D,3MMO.,;=C!QQO  . M DJ !D
488C+< =>F HHT40M6OG  	&"#89tC%DM	&   	"#>?TIJ	2 DCC :99 U.sS   P8  Q% (R4?R!%R5
R=8Q"Q"!Q"%R
8R
	R
R	!R2	c                B   < V ^8  d   QhRS[ S[S[3,          RS[RS[/# r4   r*  r  r6   )r   r9   r   r  r   )r<   r\   s   "r=   r>   ru    s+      wsCx'8 $ 8 r?   c                    V P                  W4      p \        P                  ! V4      #   \        P                   d)   pT'       d   \	        T4      Th\        4       u Rp?# Rp?ii ; i)a>  Get cmap from font specification

For certain PDFs, Encoding Type isn't mentioned as an attribute of
Encoding but as an attribute of CMapName, where CMapName is an
attribute of spec['Encoding'].
The horizontal/vertical modes are mentioned with different name
such as 'DLIdent-H/V','OneByteIdentityH/V','Identity-H/V'.
N)_get_cmap_namer   get_cmapr  r  r   )ru   r*  r  r  r   s   &&&  r=   r  PDFCIDFont.get_cmap_from_spec  sT     ''5		??9--"" 	"1o1,6M	s   ) A&A!A&!A&c                B   < V ^8  d   QhRS[ S[S[3,          RS[RS[/# r  rt  )r<   r\   s   "r=   r>   ru    s+     : :WS#X. : : :r?   c                   Rp V R,          p\        VR4      '       d   \        V R,          4      pM\        VR,          4      p \	        V4      \
        J dG   \        \
        V4      pRV9   d   VP                  R4      P                  pMV'       d   \        R4      h\        P                  W"4      #   \         d    T'       d   \        R4      Rh Li ; i)z%Get cmap name from font specificationr  r0  r~   CMapNamezEncoding is unspecifiedNz!CMapName unspecified for encoding)
hasattrr*   r{   r  typer   r
   r   r~   IDENTITY_ENCODER)r*  r  r  spec_encodingcmap_name_streams   &&   r=   r  PDFCIDFont._get_cmap_name  s     		H ,M}f--(j)9:	(z)BC	
 	?i'*.y)*D--,00<AA	"#FGG##I99  	H"#<=4G 	Hs   -B3 B3 3CCCc                    < V ^8  d   QhRS[ /# rx   r   )r<   r\   s   "r=   r>   ru    s     Y Y# Yr?   c                @    R V P                   : RV P                  : R2# )z<PDFCIDFont: basefont=z, cidcoding=r   )rR  r  r   s   &r=   r   PDFCIDFont.__repr__  s"    ''8T^^DVVWXXr?   c                    < V ^8  d   QhRS[ /# rx   r  )r<   r\   s   "r=   r>   ru    s      T r?   c                    V P                   # r_   )r  r   s   &r=   r  PDFCIDFont.is_vertical  s    }}r?   c                    < V ^8  d   QhRS[ /# rx   r  )r<   r\   s   "r=   r>   ru    s      d r?   c                    R # )Trc   r   s   &r=   r  PDFCIDFont.is_multibyte  s    r?   c                6   < V ^8  d   QhRS[ RS[S[,          /# r  r  )r<   r\   s   "r=   r>   ru    s     ' 'E 'hsm 'r?   c                8    V P                   P                  V4      # r_   )r  r  r  s   &&r=   r  PDFCIDFont.decode  s    yy&&r?   c                Z   < V ^8  d   QhRS[ RS[S[S[R,          S[3,          ,          /# r  r  )r<   r\   s   "r=   r>   ru    s.     6 6S 6UU54<3F-G%G 6r?   c                L    V P                   P                  WP                  4      # r  )r  r   r  r  s   &&r=   r  PDFCIDFont.char_disp  s    zz~~c#4#455r?   c                &   < V ^8  d   QhRS[ RS[/# r  r  )r<   r\   s   "r=   r>   ru    s     E ES ES Er?   c                     V P                   '       g   \        V4      hV P                   P                  V4      #   \         d   p\	        T P
                  T4      ThR p?ii ; ir_   )r  r   r?  r{   r  r  r@  s   && r=   r  PDFCIDFont.to_unichr  s[    	E###!#&&##..s33 	E&t~~s;D	Es   : %: A!AA!c                Z   < V ^8  d   Qh/ S[ S[S[ R,          S[ 3,          ,          ;R&   # )r4   Nr  )r;   rS   )r<   r\   s   "r=   r>   ru  3  s#     %e 3444 r?   )	rR  r  r  r  r  r  rT  r  r  N)rd   re   rf   rg   r   rS  rs   r  r&  r  r   r  r  r  r  r  __annotate_func__ri   rj   rk   s   @r=   rr  rr  3  s       	KP KPZ $ : :.Y Y  ' '6 6E EU  r?   rr  )0123456789.r   ze-Nr{  )Zr  loggingr   collections.abcr   r   r   ior   typingr   r   r	   r
   pdfminerr   pdfminer.castingr   r   pdfminer.cmapdbr   r   r   r   r   r   r   pdfminer.encodingdbr   r   pdfminer.fontmetricsr   pdfminer.pdfexceptionsr   r   r   pdfminer.pdftypesr   r   r   r   r    r!   r"   r#   pdfminer.psexceptionsr$   pdfminer.psparserr%   r&   r'   r(   r)   r*   pdfminer.utilsr+   r,   r-   r.   r/   r0   pdfminer.pdfinterpr1   	getLoggerrd   rH   rQ   rW   rY   r:   rm   r   r  r   r   r{  r  r  r4  LITERAL_TYPE1Cr8   r9   r;   r  r  r(  rD  ra  rg  rr  rc   r?   r=   <module>r     s}      7 7    7   9 - K K	 	 	 (  U T5!0B*& &+=M#. +=\ X
  +\wC wCt{ {|	< 		< 	   23 X S3Y%&g gT+;G +;\== =@@l @
 =  *PE PEr?   