
    Q?h06                         S r SSKJrJrJr  SSKJr  SSKJrJ	r	J
r
  SSKJrJrJrJr  SSKJr   " S S	\5      rS
 rS rS rSS jr\" 5       R3                  \" 5       5        SS\SSSSS4S jrg))setFontpathNumTruncprocessGlyphtext2PathDescription	text2PathRenderPMError    )getFont
unicode2T1stringWidth)	ShapedStr)open_and_readisBytesrl_exec   )_baseGFontName_PATH_OP_ARG_COUNT_PATH_OP_NAMES
definePath)exc_infoc                       \ rS rSrSrg)r       N)__name__
__module____qualname____firstlineno____static_attributes__r       J/var/www/html/env/lib/python3.13/site-packages/reportlab/graphics/utils.pyr   r      s    r   r   c                 $   [        [        [        [        5       S S 5      5      u  p#SSKJn  UR                  S:  a  SS KnUR                  R                  UR                  R                  UR                  5      S5      n[        SU< SUR                  U5      < 35        S H(  n[        SU< S	[        [        XF5      5      < 35        M*     S
[        U 5      < S[        U5      < SU< SU< S3	nUS-  n[!        U[#        [$        S95        g )N   r   )	rl_configfontsz!!!!! z: )T1SearchPathTTFSearchPathz!!!!! rl_config.z = z&raise RenderPMError("Error in setFont(,z$) missing the T1 files?\nOriginally z")z
 from None)r   )listmapstrr   	reportlabr"   verboseospathjoindirname__file__printlistdirreprgetattrr   dictr   )fontNamefontSizes1s2r"   r,   _codes           r   
_errorDumpr<      s    #c(*Ra.)*FB#!GGLL););<WE"**Q-011Aqgi6J1KLM 2imnviwx|  ~F  yG  HJ  KM  NDLDDM23r   c                     U R                  X5        g ! [         a  nUR                  S   R                  S5      (       d  [	        X5        SSKJn   [        U5      nU" XR                  R                  5       UR                  R                  [        5        O!   [	        X5         O= fU R                  X5         S nAg S nAff = f)Nr   zCan't find font!)
makeT1Font)r   
ValueErrorargsendswithr<   _rl_renderPMr>   r	   face
findT1Fileencodingvectorr   )gsr6   r7   er>   fs         r   r   r      s    &


8% 
&vvay!!"455x)+	*!Ax 1 1 3AJJ4E4EmT	*x)


8%%
&s-    
C4CABCB(&CCc                 N    [        U 5      U :X  a  [        U 5      $ [        U S5      $ )N   )intround)ns    r   r   r   .   s!    
1vqyQ-1:r   Nc           	        ^ ^^^	^
^ SSK JnJn  T b  T nUS:X  a  US:w  a  SOSm OX!;   a  Um O[        SU< S35      eT 4[	        U 4S	 jU 5       5      -   mT Hu  m T S:X  a7   SS Km	SS Km
 " U	U
4S
 jS5      mSS[        SSSSS 4U4S jjn[        UTS9s  $ T S:X  d  MH   SS K
nSS jmSS[        SSSSS 4U4S jjn[        UT[        S9s  $    U4S jn[        XfXfS9$ ! [         a     M  f = f! [         a     M  f = f)Nr   )	textPathsrenderPMBackendbackend	rlPyCairofreetype	_renderPMz
textPaths=z7 should be one of 'backend', 'freetype' or '_renderPM')c              3   6   >#    U  H  oT:w  d  M
  Uv   M     g 7fNr   ).0r:   tps     r   	<genexpr>(__makeTextPathsCode__.<locals>.<genexpr><   s     03aR%3s   		c                      > \ rS rSr Y R                   Y R
                  -   Y R                  -  rS rU U4S jr	S r
S rS rS rSS	 jrS
S
\S4S jrSrg))__makeTextPathsCode__.<locals>.FTTextPathD   c                     0 U l         g rW   )faces)selfs    r   __init__2__makeTextPathsCode__.<locals>.FTTextPath.__init__F   s	    !#DJr   c                   > XR                   ;  a  [        U5      nU(       d  [        SU< S35      eUR                  (       a(  UR                  R
                  nTR                  U5      nO8[        UR                  SS 5      nU(       d  UR                  R                  5       nTR                  U5      nXB4U R                   U'   U R                   U   $ )Nzfont z has not been registeredpfbFileName)
r`   r	   r?   _dynamicFontrC   	_ttf_dataBytesIOr4   rD   Face)ra   r6   fontpath_or_streamrC   rT   ios        r   r   1__makeTextPathsCode__.<locals>.FTTextPath.setFontI   s    zz1&x0#",uXL@X-Y"ZZ,,-1YY-@-@N .0ZZ-GN-4TYY}T-RN#1151E1E1G'}}^<04{

8,::h//r   c                     U R                   (       a  U R                  S5        U R                  SU R                  UR                  5      U R	                  UR
                  5      45        g )N	closePathmoveTo)PP_appendxptxyptyra   actxs      r   move_to1__makeTextPathsCode__.<locals>.FTTextPath.move_to\   s?    vvt}}^<MM8DHHQSSM$((133-"HIr   c                     U R                  SU R                  UR                  5      U R                  UR                  5      45        g )NlineTors   rt   ru   rv   rw   rx   s      r   line_to1__makeTextPathsCode__.<locals>.FTTextPath.line_to`   s-    MM8DHHQSSM$((133-"HIr   c           	         U R                   (       a  U R                   S   SS OUR                  UR                  4u  pEU R                  UR                  5      nU R	                  UR                  5      nU R                  UR                  5      nU R	                  UR                  5      n	U R                  SXFU-
  S-  S-  -   XWU-
  S-  S-  -   XhU-
  S-  -   XyU-
  S-  -   X45        g)zusing the cubic equivalentNcurveTor!      )rr   ru   rw   rt   rv   rs   )
ra   ry   brz   x0y0x1y1x2y2s
             r   conic_to2__makeTextPathsCode__.<locals>.FTTextPath.conic_toc   s    /3vvDFF2JrsOACC:EB!##B!##B!##B!##BMM9RR%A-=bb5!)Q>NrVXSXZ[R[|\^ce`egh_h\hik"opr   c                 `   U R                  SU R                  UR                  5      U R                  UR                  5      U R                  UR                  5      U R                  UR                  5      U R                  UR                  5      U R                  UR                  5      45        g )Nr   r   )ra   ry   r   crz   s        r   cubic_to2__makeTextPathsCode__.<locals>.FTTextPath.cubic_tol   s    MM9TXXacc]488ACC=RSRURUW[W_W_`a`c`cWdeiememnonqnqersws{s{|}||  tA  #B  Cr   Nc                 :    U R                   R                  S5        g )Nro   )rr   append)ra   rz   s     r   
close_path4__makeTextPathsCode__.<locals>.FTTextPath.close_patho   s    FFMM.1r   r     c           	        ^^^ U R                  U5      u  pxXWR                  -  mUT-  mUT-  m/ U l        U R                  R                  U l        UR                  SS5      n	U	(       a  UU4S jU l        UU4S jU l        OUU4S jU l        UU4S jU l        US-  T-  n
U R                  n[        U[        5      (       a2  UR                  nUR                  S-  nUR                  R                  nOS n[        U5       GH  u  nnUS	:X  a	  SmTU
-  mM  U(       aK  X   nUR                  W-  nUR                   U-  nTU-  mTU-  mUR#                  W[%        U5         U5        OUR'                  UU5        UR(                  R*                  R-                  X R.                  U R0                  U R2                  U R4                  S
9  U(       a
  TW-  mTW-  mTU(       a  WR6                  W-  OUR(                  R8                  R:                  -  mGM     U R                  (       a  U R	                  S5        U R                  $ )Ntruncater   c                 &   > [        TU T-   -  5      $ rW   r   ru   __dx__scales    r   <lambda>F__makeTextPathsCode__.<locals>.FTTextPath._text2Path.<locals>.<lambda>{       \%6:J-Kr   c                 &   > [        TU T-   -  5      $ rW   r   rw   __dy__r   s    r   r   r   |   r   r   c                    > TU T-   -  $ rW   r   r   s    r   r   r   ~       UAJ-?r   c                    > TU T-   -  $ rW   r   r   s    r   r   r      r   r   g333333?r   
)r{   r   r   r   ro   )r   units_per_EMrr   r   rs   poprt   rv   ftLFlags
isinstancer   __shapeData__rC   charToGlyph	enumeratex_offsety_offset
load_glyphord	load_charglyphoutline	decomposer{   r   r   r   	x_advancemetricshoriAdvance)ra   textru   rw   r6   r7   kwdsrC   rj   r   
lineHeightr   sdatadscalefontC2Gir   sd
sdx_offset
sdy_offsetr   r   r   s                       @@@r   
_text2Path4__makeTextPathsCode__.<locals>.FTTextPath._text2Pathr   s   !%h!7JD$%6%66EuWFuWFDF$(FFMMDM#xx
15H#K#K#?#?!)#e!3J#}}H!$y11 $ 2 2!%!2!2T!9"&))"7"7 $(!d7%&F"j0F$ !&B)+V);J)+V);J"j0F"j0F OOGCFOHE NN1h7

**44T<<Y]YeYeptp}p}  IM  IV  IV4  W "j0F"j0F",,v"5DJJDVDVDbDbb%  /& vvt}}^<66Mr   )rr   rs   r`   rt   rv   rW   )r   r   r   r   FT_LOAD_DEFAULTFT_LOAD_NO_SCALEFT_LOAD_NO_BITMAPr   rb   r   r{   r   r   r   r   r   r   r   )rT   rl   s   r   
FTTextPathr]   D   s]    #33h6O6OORZRlRll$0&JJqC2 ./!nW[ +"r   r   r   startr   c	                   > [        U5      n	U	R                  (       a  U	R                  (       d  [        SU-  5      e/ R                  n
US:X  d$  [        XU5      nUS:X  a  X-
  nOUS:X  a  XS-  -
  nUc  T" 5       nU	R                  (       a$  U
" UR                  XX#XFUS95        U
R(                  $ [        U 5      (       a   U R                  S5      n [        X	/U	R                  -   5      n[        U5      S-
  n[        U5       Hy  u  nu  nn[!        U["        5      (       a  UR                  UR$                  5      nU
" UR                  UXUR&                  XFUS95        UU:w  d  Md  UUR                  UU5      -  nM{     U
R(                  $ ! [         ab  nUR                  S	S
 u  p[        UR                  SS
 UR                  S
   < SU [        US-
  S5      U < SXU < SXUS-    < 34-   6 eSnAff = f)zfreetype text2PathDescription(text, x=0, y=0, fontName='fontname',
fontSize=1000, font = 'fontName',
anchor='start', truncate=1, pathReverse=0, gs=None)
=text2PathDescription doesn't support multi byte fonts like %rr   endmiddle       @N)ru   rw   r6   r7   r   pathReverseutf8r!      r   
   r   --><--r   )r	   
_multiByterf   r?   extendr   r   r   decodeUnicodeDecodeErrorr@   maxr
   substitutionFontslenr   r   bytesencNamer6   __self__)r   ru   rw   r6   r7   anchorr   r   rG   rj   P_extendtextLenrH   r   jFTnm1rI   tr   s                      r   r   3__makeTextPathsCode__.<locals>.text2PathDescription   s1    x(??4+<+<$%dgo%opp99w)$(CGu}I)
N:#B$$R]]4aS[  |G]  H  I  ((( t}}S#';;v#6D $D0F0F)FGBb'!)C%.r]	6Aq%a..AHHQYY4G q1!**V^  J  "K  Lc6q(!;;A	 &3
  (((  2 S"#&&1+CA"4qvvbqzYZY_Y_`aYbcghklmnplpqrhstucvw{~  xA  BF  IJ  KM  IM  BN  DO  CQ  8Q  #S  SSs   F 
G;AG66G;)r   r   c           
         / n/ n/ R                   nU (       a*  [        U 5      S:X  a  U S   S   S:X  a  SU S   SS  -   4U -   n U =(       d    SS-    GH  nUS   nU(       a  US;   a  US   S:X  aj  US	 U(       a=  USS S	2   USS S	2   sUSS S	2'   USS S	2'   UR                  5         UR                  5         UR                  SS
5        UR                  S5        SnU(       a  [	        [        [        U5      5      nU H<  n	U[        [        R                  " U	5         -   n
U" U	4[        XHU
 5      -   5        U
nM>     / n/ nUR                  U5        UR                  USS  5        GM     UR                  $ )Nr   r   r~   )moveToClosedr   ))r   )rq   r   r   r   r!   rq   rp   )r   r   reverseinsertr'   r(   r   r   r   indextupler   r   )Gr   r   Orr   R_appendgopr   or   s              r   r   +__makeTextPathsCode__.<locals>.processGlyph   sx   99QqtAw'8*1Q4835a7A'r;.A1BR#CCQ4/ !!*23ADqD'!ADqD'!$Q$!$Q$ !		 !		HHQx0HH[1#c,q.A)BQ!"A !$6~7K7KA7N$O OA$aT5Q=%89 !A "# HHRLHHQqrUO) /*  (((r   c	                 ^  > [        U5      n	U	R                  (       a  U	R                  (       d  [        SU-  5      e/ R                  n
US:X  d$  [        XU5      nUS:X  a  X-
  nOUS:X  a  XS-  -
  nUc  SSKJn  U" S	S	5      n[        XU5        U	R                  (       a2  UR                  XU5       H  nU
" T" XUS
95        M     U
R*                  $ [        U 5      (       a   U R                  S5      n U	n[        X	/U	R                   -   5      n[#        U5      S	-
  n[%        U5       H  u  nu  nnUU:w  a  [        UUR&                  U5        UnUR                  UX5       H  nU
" T" XUS
95        M     UU:w  d  MV  UUR                  UR                  UR(                  5      U5      -  nM     U
R*                  $ ! [         ad  nUR                  SS u  nn[        UR                  SS UR                  S   < SU [        US-
  S5      U < SXU < SU UUS-    < 34-   6 eSnAff = f)z_renderPM text2PathDescription(text, x=0, y=0, fontName='fontname',
fontSize=1000, font = 'fontName',
anchor='start', truncate=1, pathReverse=0, gs=None)
r   r   r   r   r   Nr   )gstater   )r   r   r   r!   r   r   r   r   r   )r	   r   rf   r?   r   r   rB   r   r   _stringPathr   r   r   r@   r   r
   r   r   r   r6   r   r   )r   ru   rw   r6   r7   r   r   r   rG   rj   r   r   r   r   rH   r   r   fcr   r   rI   r   r   s                         r   r   r      sT    x(??4+<+<$%dgo%opp99w)$(CGu}I)
N:3!BH-$$^^D15 ak!Z[ 6(  (((# t}}S#';;v#6D B#D0F0F)FGBb'!)C%.r]	6Aqb5#Bqzz(;!"B!#!!6A$\!R]%^_ "7c6qxx		/BH!MMA &3  (((  2 S"#&&1+CAa"4qvvbqzYZY_Y_`aYbcghklmnplpqrhstucvw{~  xA  BF  GH  IJ  KM  IM  BN  DO  CQ  8Q  #S  SSs   %F> >
H,AH''H,)r   r   r   c                  "   > [        ST< 35      e)NzThis installation of reportLab has neither PYCAIRO or RENDERPM extras installed.
It cannot create paths from text.
Could not create text2PathDescription for using backends from )RuntimeError)r@   r   TPs     r   r:    __makeTextPathsCode__.<locals>._  s"     $??Af H I Ir   )r   r   r   r   )r   r   )reportlab.rl_configrP   rQ   r?   r   rT   ImportErrorrl   r   r5   rB   r   )rY   _TPrP   rQ   r   rB   r:   r   r   rT   rl   r   s   `      @@@@@r   __makeTextPathsCode__r  3   s8   >	~2y)*K7Z[		:i]2ijkk
0301	1Bz> Y" Y"v ./!nW[/6PQVZ")F -AZXX_#): ./!nW[/6PQVZ))T -A|dkllg j	I QQk  J  s$   "C!!C2!
C/.C/2
D ?D r   r   c	                 V    U	R                  S[        5      n
[        U
" XX#XEXgUS9	40 U	D6$ )Nr   )ru   rw   r6   r7   r   r   r   rG   )r   r   r   )r   ru   rw   r6   r7   r   r   r   rG   r   t2pds              r   r   r     s@    88*+?@Dd4a%Xbdf nhln nr   )N)rT   rU   )__all__reportlab.pdfbase.pdfmetricsr	   r
   r   reportlab.pdfbase.ttfontsr   reportlab.lib.utilsr   r   r   shapesr   r   r   r   sysr   	Exceptionr   r<   r   r   r  globalsupdater   r   r   r   <module>r     sx   
 J I / ? ? R R 	I 	4&
cRJ 	  &( )1~dnr   