+
    	i&Q                         R t ^ RIHt ^ RI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 R tR tR tR	 tR
 tR tR tR tR tR# )u?   Parse and draw definitions: gradients, patterns, masks, uses…)cycle)ceilhypot)Matrix)bounding_boxis_valid_bounding_box)alpha_valuecolor	parse_urlsize	transformc                 @   ^RI Hp \        VP                  V P                  4      4      p\        V P                  4      pVP
                  R8X  d   \        R4      pVR,          R8H  ;'       g    VR,          VR,          8H  pVP                  '       d   V'       d   VP                  V P                  9   d.   V P                  VP                  ,          P                  4       pV#  V P                  P                  VP                  4      P                  4       pWpP                  VP                  &   V# VP                  4       p V P                  V4      p	V! W4      p
V
P                  V4       V
P                  pV#   \         d     R# i ; i  \         d     R# i ; i)   )SVGdata N   NN)r   r   r   )r   r   r
   get_hrefurlschemefragment	use_cachecopytree	get_child	Exceptiongeturlurl_fetcherget_intrinsic_size)svgnode	font_sizer   
parsed_urlsvg_urlsame_originr   r   bytestring_svguse_svgs   &&&        Y/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/weasyprint/svg/defs.pyget_use_treer)      se   4==12J G~~B-2,& 	& 	&2'"+%  {#--/==!4!45::<D& K#:xx))**=*=>CCE 6:j112 K !	  __S1N..G &&y1<<DK    		s$   &3E< F <F
FFFc                   \        WV4      ;pf   R# VP                  R9   d   RVP                  9   dS   RVP                  9   dB   VP                  R,          VP                  R&   VP                  R,          VP                  R&   MxRVP                  n        \	        WVRR7      p\        V4      '       dI   V^ ,          V^,          ,           VP                  R&   V^,          V^,          ,           VP                  R&   RVP                  n        VP                  V4       VP                  \        V34      4       V P                  VP                  R4      VP                  R	4      V4      w  rVV P                  P                  WVR
7       R# )zDraw use tags.Nr    widthheightgTstrokexyef)r    symbol)r)   tagattrib_etree_noder   r   cascadeoverride_iteriterpointgetstreamr   )r    r!   r"   r   boxr0   r1   s   &&&    r(   user@   -   s-   S	22;xx$$ dkk!h$++&=#';;w#7DKK $(KK$9DKK!#&D s)DAC$S))'*1vAG$(+AQH%$LLtTG}%99TXXc]DHHSM9=DAJJ1"    c                    W P                   9   d    \        WV P                   V,          W4V4      # W P                  9   d    \        WV P                  V,          W4V4      # R# )zDraw given gradient or pattern.N)	gradientsdraw_gradientpatternsdraw_pattern)r    r!   namer"   opacityr/   s   &&&&&&r(   draw_gradient_or_patternrI   F   s]    }}s}}T*IH 	H		s||D)9vG 	G 
rA   c                :  a6a7 . p. pV F  pTP                  \        V'       d
   VR',          M^ \        VP                  R4      V^4      4      4       \	        VP                  R^4      4      V,          p	\        VP                  RR4      4      p
V
;P                  V	,          un        VP                  V
4       K  	  V'       g   R# \        V4      ^8X  d%   V P                  P                  V^ ,          4       R# V P                  WV4      p\        V4      '       g   R# VP                  R4      R8X  d.   V P                  V P                  rVR	,          w  r\        4       pM^^rVw  pppp^ ^ r\        VVVVR
7      pVP                  RR4      pVR(9   dr   V^ ,          ^ 8  d,   VP                  ^ ^ 4       VP                  ^ V^ ,          4       VR',          ^8  d*   VP                  ^4       VP                  VR',          4       MV^ ,          V^,          8X  d^   VP                   R8X  d   VP                  ^ ^ 4       M VP                  ^ V^ ,          ^,
          4       VP                  ^ V^ ,          4       VR),          VR',          8X  d8   VP                  VR',          ^,           4       VP                  VR',          4       RVP"                  9   d1   \%        VP                  R4      RVV P&                  4      pVV,          pVP                   R8X  d   ^p\        VP                  R^ 4      W<4      \        VP                  R^ 4      W=4      pp\        VP                  RR4      W<4      \        VP                  R^ 4      W=4      pp\)        VWgVVVVVV4	      w  rgpMVP                   R8X  g   Q h^p\        VP                  RR4      W<4      \        VP                  RR4      W=4      pp\        VP                  RR4      V\+        W4      4      p\        VP                  RV4      W<4      \        VP                  RV4      W=4      p!p \        VP                  R^ 4      V\+        W4      4      p"\-        VWgV V!V"VVVWV4      w  rgpV U#u. uF  p#V#^,          NK  	  p$p#\/        \        V$4      ^,
          4       U%u. uF  p%V$V%,          V$V%^,           ,          3NK  	  p&p%\/        \        V4      ^,
          4       U%u. uF+  p%VV%,          R,          VV%^,           ,          R,          ^.NK-  	  p'p%\1        V$4       Fq  w  p%p(V(^ 8X  g   K  V%^ 8  d)   V'V%^,
          ,          ^ ,          V'V%^,
          ,          ^&   V%\        V4      ^,
          8  g   KW  V'V%,          ^,          V'V%,          ^ &   Ks  	  \1        V&4       F2  w  p%w  p)p*^ V)V*39  g   K  V)V*3R*8w  g   K  V)V*,          V'V%,          ^&   K4  	  RVP"                  9   dz   W,           W,           p,p+XP2                  P5                  W4      w  rVP2                  P5                  V+V,4      w  p+p,V+V,
          V,V,
          rVV+8  d   V) pT+Tp+pVV,8  d   V) pT,Tp,pV P                  P7                  WWWVV P                  P8                  ,          4      p-V-P;                  WW4      o7V^ ,          VR',          3o6VR(9  p.\        V4      ^,
          R+,          p/V^R' p0V6V73R lV' 4       p1S7P=                  S6V/V0V14      p2S7P?                  VRS6VV.V24      p3\@        ;QJ d    R  V$ 4       F  '       g   K   RM	  RM! R  V$ 4       4      '       d   S7PC                  WW4      p4V^ ,          VR',          3o6VR(9  p.\        V4      ^,
          R+,          p/V^R' p0V73R! lV& 4       p1S7P=                  S6V/V0V14      p2V4P?                  VR"S6VV.V24      p5R#V5PD                   R$2.V4n        S7PG                  V3PD                  4       V-PI                  ^4       V-PK                  S7PD                  4       V P                  PM                  R%VR&7       V P                  PO                  V-PD                  VR&7       R# u up#i u up%i u up%i ),Draw given gradient node.offsetzstop-opacityz
stop-colorblackFTgradientUnitsuserSpaceOnUse:N   N)adr3   r4   spreadMethodpadradialGradientgradientTransform0 0linearGradientx1y1x2z100%y2cxz50%cyrfxfyfrr   c              3   P   <"   T F  w  rpSP                  SWV4      x  K  	  R # 5i)Ncreate_interpolation_function).0c0c1ndomaingroups   &   r(   	<genexpr> draw_gradient.<locals>.<genexpr>   s.      (&IBA 	++FBA>>&s   #&RGBc              3   *   "   T F	  q^8g  x  K  	  R# 5i)r   N )rf   alphas   & r(   rl   rm      s     
*6%A:6s   c              3   T   <"   T F  w  rSP                  RV.V.^4      x  K  	  R# 5i)    Nrs   r   rd   )rf   rg   rh   rk   s   &  r(   rl   rm      s2      )' //rdAFF's   %(Gray/z shPatternr.   repeatreflect)r   r   rt   )(appendmaxr   r=   r   r	   rq   lenr>   	set_colorcalculate_bounding_boxr   inner_widthinner_heightr   insertr6   r7   r   normalized_diagonalspread_linear_gradientr   spread_radial_gradientrange	enumerateinverttransform_pointadd_patternctm	add_groupcreate_stitching_functionadd_shadinganyset_alpha_stateidpaint_shading	set_alphadraw_x_objectset_color_spaceset_color_special)8r    r!   gradientr"   rH   r/   	positionscolorschildstop_opacity
stop_colorr   r+   r,   bx1by1matrixr3   r4   rQ   rR   spreadtransform_matrixshading_typerY   rZ   r[   r\   coordsr]   r^   r_   r`   ra   rb   r	   alphasialpha_couplescolor_couplesrq   a0a1bx2by2patternextendencodeboundssub_functionsfunctionshadingalpha_streamalpha_shadingrj   rk   s8   &&&&&&                                                @@r(   rD   rD   P   s    IF&IbMA8$i35 	6 #599^Q#?@7J599\7;<
L(j!  	V	

VAY'--dvFL ..||O$(88)9)9v#1v!
1aaS!qA+\\.%0F&&Q<!Q"MM!VAY'R=1QMM&*% Q<9Q<'||//  A&  IaL1$45MM!VAY'R=IbM)Yr]Q./MM&*%hoo-$LL,-ui##% "F*||''dA&	9dA&	:  dF+Y>dA&	:  %;Ir2r2|V%M!	6 ||////dE*I=dE*I>  c5)9eE6JKdB':dB';  (,,tQ'E%4HI$:Ir2r2r1e%!	6 %++F5eAhhFF+ s6{Q')'A 
F1q5M"'  )
 s6{Q')'A 
2q1ub)1-'  )
 f%5A:1u*7A*>q*Aa!e$Q'3v;?"&3A&6q&9a # & !/8BRH"bV!3"$r'M!Q 0 hoo-;S#**::3D#**::3DSc	39v 9FECC9WFCCjj$$%0GIGc6ElIbM*F00F&kAo'Fq_F(&(M ../HeVVVX?G s
*6
*sss
*6
***,,SuEA,	".44f+/V+1R)') 22FFM3$00&&&&(D!"=#3#3"4C89	

#a%((#JJy8JJ  F ;K ,))s   b>"b?1bc	                   ^RI Hp	Hp
 V
! V4      w  rpV R9   Ed   W8X  d   V	! W!4      p^RR. V.3# W,
          p\        \	        V4      ^,
          4       Uu. uF  pW^,           ,          W,          ,
          NK!  	  ppV R8X  dJ   \        ^ .VO54      p\        V4      p\        ^ .VRRR1,          O54      p\        VRRR1,          4      pMzV R8X  g   Q h\        ^ .VRRR1,          O^ NVO54      p\        VRRR1,          V,           4      p\        ^ .VO^ NVRRR1,          O54      p\        W"RRR1,          ,           4      pVw  ppppV^ 8  d   VVV,           3M
VV,           V3w  ppV^ 8  d   VVV,           3M
VV,           V3w  ppVP                  W44      w  ppVP                  WV4      w  ppTTp pVV,
          VV,
          p"p!VV8  d   VV3MVV3w  p#p$VV8  d   VV3MVV3w  p%p&V#V,
          V!,          V%V ,
          V",          ,           \        V!V"4      ^,          ,          p'V$V,
          V!,          V&V ,
          V",          ,           \        V!V"4      ^,          ,          p(VV(8  dW   \        V4      p)VP                  \        V4      4       VP                  VR,          V),           4       VV)V,          ,          pK]  VV'8  dY   \        V4      p)VP                  ^ \        V4      4       VP                  ^ V^ ,          V),
          4       VV)V,          ,          pK_  W5V,
          V,          ,           W5V,
          V,          ,           rSWFV,
          V,          ,           WFV,
          V,          ,           rdW4WV3p*WV*3# u upi )zRepeat linear gradient.gradient_average_colornormalize_stop_positionsrz   r{   solidNry   rx   )imagesr   r   r   r   r   r   r   nextr}   r   )+r   r   r   rY   rZ   r[   r\   r   r   r   r   firstlastaverage_colorstop_lengthr   position_steps
next_stepsnext_colorsprevious_stepsprevious_colorsr   r   bwbhr   r   tx1ty1tx2ty2xbybxvyvxa1xa2ya1ya2
min_vector
max_vectorstepr   s+   &&&&&&&&&                                  r(   r   r      su    J5i@E&& =26EMgtR-88 l 3y>A-.0. !ey|++. 	 0
 X3N34J-K"A#=tt(<#=>N#F4R4L1OY&&&MN4R4$8M!MnMNJttv 56K"A#Q#Q#QN4R4<P#QRN#FDbD\$9:O (S"b&(1fCr?38S/S&(1fCr?38S/S ))"1S))"1S cBsC#IB!$sC:c
S!$sC:c
SRx2orR75R=A;MM
Rx2orR75R=A;MM
 Z
#DMM${+,Yr]T12D;&&D j 'DMM!T/23Q	!t 34TK''E7e##R7d*:%:7e##R7d*:%:bFf$$i0s   %Nc           
        ^RI HpHp V! V4      w  rpWXV,
          V,          ,           WXV,
          V,          ,           rV R9   Edy   VP                  4       pVP                  4       pVP                  P                  W4      w  pp\        \        \        V4      \        VV,
          4      4      \        \        V4      \        VV,
          4      4      4      pW,
          p\        VV,
          V,          4      pV^ 8  d   ^V,           pV R8X  d   VV,          pMAV R8X  g   Q h. p\        V4       F'  pTTRRV^,          '       d   RM^1,          ,          pK)  	  \        V4       UUu. uF  pV F  pVV,           NK  	  K  	  pppVVV,          ,          pV^ 8X  d
   W4WVWx3pWV3# VV,          p^ p\        V4      pV'       d   V R8X  d   VVV,          ,          pMFV R8X  g   Q h\        V4       F.  pTTRRVV,           ^,          '       d   RM^1,          ,          pK0  	  \        V4       UUu. uF  pV F  pVV,
          V,           NK  	  K  	  uppV,           pVV,
          pV^ 8X  d
   W4WVWx3pWV3# V^ ,          VR,          3R8X  g   Q h^ Tu;8  d	   ^8  g   Q h Q hVRRR1,          p^V,
          pV R8X  d   VRRR1,          p\        V^R7       F  w  ppVV8X  d<   VV) R V,           pVV) R  Uu. uF  pVV,
          ^,
          NK  	  p pV V,           p MVV8  g   KQ  VV) ,          p!VV^,
          ) ,          p"VV^,
          ) ,          p#V!V!V"V".p$VVVV#.p%V! V$V%4      p&V&.VV^,
          ) R OVOpVV^,
          ) R  Uu. uF  pV^,
          V,
          NK  	  p pV^,
          V,
          .V OVOp M	  W4WVWx3pWV3# u uppi u uppi u upi u upi )	zRepeat radial gradient.r   rz   r{   N)startry   rx   rt   )r   r   r   r   r   r   r   r~   absr   r   intr   )'r   r   r   r`   ra   rb   r]   r^   r_   r+   r,   r   r   r   r   r   original_colorsoriginal_positionstwthmax_distancegradient_lengthrepeat_afterrz   r   positionr   repeat_beforefull_repeatpartial_repeatreverserationew_positionsr	   
next_colornext_positionaverage_colorsaverage_positions
zero_colors'   &&&&&&&&&&&&                           r(   r   r   5  sa    J5i@Eb&E!!2R4#7&& ++-&^^- ..u=BBR"W&CGSb\(BD&\A-@A!%F!& ***vAo.Ba!ee.BCCF ' ',FmO&3IHIm  O<//A7bb,Ff,, _,  -(!/K77***{+Ao=\!1Q 6 6"A=? ?F , 5:+4F44Fq 2H K(** 2 +4F46?@I
 '4Qbb,Ff,,
 #1%'9"'=>&HHH>%A%%%%%$TrT*N"Y-dd3O$WA6KAx5  )!-6 %7rs$;!=$; {*Q..$;  != *I5	% (+,q1uX6
 2QU8 <"'
J!G%-ue]$K!3"$57
$KQxy'AKFK *AE()4!64 4<HqL;..4  !6 #QY4Q}QyQ	5 78 bb$Ff$$WO442!="!6s   (O0"O:OOc           	     H   ^RI Hp RVP                  n        V P	                  WV4      p\        V4      '       g   R# V^ ,          V^,          r\        WR7      p
VP                  R4      R8X  d<   \        VP                  R^ 4      V^4      p\        VP                  R^ 4      V^4      pMV^,          V^,          r\        VP                  P                  RR	4      V^4      V,          p\        VP                  P                  RR	4      V^4      V,          pR
V9  dI   WP                  R&   WP                  R&   VP                  R4      R8X  d   RV RV R2VP                  R&   V^ 8X  g   V^ 8X  d   R# RVP                  9   d/   \        VP                  R4      RW0P                  4      pW,          p
WP                  P                  ,          p
V P                  P                  ^ ^ WWV
4      pVP!                  V4       VP#                  ^ ^ W4      pV! W 4      P%                  VWV P&                  V P(                  4       VP+                  VP,                  4       V P                  P/                  RVR7       V P                  P1                  VP,                  VR7       R# )rK   )rw   r    Fr2   patternUnitsrO   r+   r,   1viewBoxpatternContentUnitsobjectBoundingBoxzscale(z, )r   patternTransformrW   rw   r.   T)r   rw   r8   r6   r   r   r   r=   r   r7   popr   inner_diagonalr>   r   r   r   r   drawbase_urlcontextr   r   r   r   )r    r!   r   r"   rH   r/   rw   r   r0   r1   r   pattern_widthpattern_heightr+   r,   r   stream_patternrk   s   &&&&&&            r(   rF   rF     sN   #G--dvFL ..?LOqaF{{>"&66W[[!4iCgkk(A6	1E$Qav##GS19a@5H 	 ##Hc2IqAFJ 	G#&3NN7#'5NN8${{015HH06ugRxq.I{+ ^q0W^^+$KK*+UI?Q?QS!*jjnn$FZZ++	1m]N W%$$Q=IEG}cll   *JJy8JJ  !2!26 BrA   c                   V EFd  pVP                   R8X  d   VP                  R4      R8X  dv   V P                  W4      p\        V4      '       dP   Vw   rgp\	        VP                  R^ 4      V^4      V,          p	\	        VP                  R^ 4      V^4      V,          p
M9^ ;rM5V P                  VP                  R^ 4      VP                  R^ 4      V4      w  rV P                  P                  WR7       K  VP                   R8X  g   EK  VP                  RR	4      pVP                  R
R4      P                  4       P                  RR4      pV P                  P                  V4       EKg  	  R# )z+Apply filters defined in given filter node.feOffsetprimitiveUnitsr   dxdyr2   feBlendmodenormal- r   N)r6   r=   r   r   r   r<   r>   r   replacetitleset_blend_mode)r    r!   filter_noder"   r   r   _r+   r,   r  r  r  s   &&&&        r(   apply_filtersr    s.   99
"/04GG"99$J(66*6'Aqeiia0)Q?%GBeiia0)Q?&HBKBIIdA&		$(:IGJJ  2 ,YY)#99VX.D<<S)//199#rBDJJ%%d+# rA   c                   RVP                   n        VP                  R4      R8X  d   V P                  V P                  rTM3V P                  VP                  R4      VP                  R4      V4      w  rE\        VP                  RR4      W44      VP                  R&   \        VP                  RR4      W54      VP                  R&   \        VP                  RR	4      W54      VP                  R&   \        VP                  RR	4      W44      VP                  R&   VP                  R4      R8X  d^   VP                  R4      VP                  R4      rvVP                  R4      VP                  R4      rV R
V R
V R
V	 2VP                  R&   M^ ^ rvYErV P                  p
V P                  P                  WgW4      V n        V P                  W#4       Wn        R# )zApply given mask node.r-   	maskUnitsrO   r+   r,   r0   z-10%r1   z120%r  r   N)r8   r6   r=   r   r   r<   r   r7   r>   r   	draw_node)r    r!   maskr"   	width_ref
height_refr0   r1   r+   r,   
svg_streams   &&&&       r(   
paint_maskr    s   Dxx 00 #1A1A: #		HHWtxx19!>	 DHHS&19HDKKDHHS&19IDKK 6"I;DKK&!99DKK xx 00xx}dhhsm1)488H+=v$%3as!E7!F8!<I!1!vJ++A%@CJMM$"JrA   N)__doc__	itertoolsr   mathr   r   r   r   r   r   utilsr   r	   r
   r   r   r)   r@   rI   rD   r   r   rF   r  r  rp   rA   r(   <module>r     sP    E    = A AD#2G[|D%Nj%Z0f,,rA   