+
    	i],                         R t ^RIHtHt ^RIHt R tR tR tR t	R t
]R 4       t]R	 4       tR
 tR tR tR t]R 4       tR# )zcLayout for images and other replaced elements.

See https://drafts.csswg.org/css-images-3/#sizing

)handle_min_max_heighthandle_min_max_width)
percentagec           	         VR8X  d   RpVR8X  d   RpVe   Ve   W43# Ve   TVe
   W2,          3# Ve   V3# T3# Ve   Ve   WB,          V3# V e   V V3# TV3# V f   Ve   \        WVWVV4      # \        WVV4      # )zDefault sizing algorithm for the concrete object size.

Return a ``(concrete_width, concrete_height)`` tuple.

See https://drafts.csswg.org/css-images-3/#default-sizing

autoN)default_image_sizingcontain_constraint_image_sizing)intrinsic_widthintrinsic_heightintrinsic_ratiospecified_widthspecified_heightdefault_widthdefault_heights   &&&&&&&`/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/weasyprint/layout/replaced.pyr   r      s     & 6!"'7'C00		$1@1LO-! 	!%5%A!! 	!  ! 	! 
	%2A2M. 	 	$3$?	 	 	 	 &*:*F'?=   
 3@ @    c                    \        WVRR7      # )zContain constraint sizing algorithm for the concrete object size.

Return a ``(concrete_width, concrete_height)`` tuple.

See https://drafts.csswg.org/css-images-3/#contain-constraint

Fcover_constraint_image_sizingconstraint_widthconstraint_heightr   s   &&&r   r   r   2   s     $_EK Kr   c                    \        WVRR7      # )zCover constraint sizing algorithm for the concrete object size.

Return a ``(concrete_width, concrete_height)`` tuple.

See https://drafts.csswg.org/css-images-3/#cover-constraint

Tr   r   r   s   &&&r   cover_constraint_image_sizingr   ?   s     $_DJ Jr   c                 f    Vf   W3# W0W,          8  ,          '       d   W,          V3# W V,          3# )N )r   r   r   r   s   &&&&r   r   r   L   s@    22	%6%HH	I	I 24EEEO!CCCr   c                    V P                   R ,          pV P                   R,          pV P                  pVP                  V P                   R,          V P                   R,          4      w  rEpRWE39   d$   \        V P                  V P
                  V4      w  rEVR8X  d   V P                  V P
                  rMVR9   d%   \        V P                  V P
                  V4      w  rxM;VR8X  d%   \        V P                  V P
                  V4      w  rxMVR8X  g   Q V4       hYErVR8X  d   \        Wt4      p\        W4      pV^ ,          w  rrV P                  V,
          pV P
                  V,
          p\        WP                   V4      p
\        WP                   V4      pV	R	8X  d	   W,
          p
VR
8X  d	   W,
          pWP                  4       ,          p
WP                  4       ,          pWxW3# )
object_fitobject_positionimage_resolution	font_sizeNfill
scale-downr   nonerightbottom)containr$   )stylereplacementget_intrinsic_sizer   widthheightr   minr   content_box_xcontent_box_y)boxr   positionimager	   r
   r   
draw_widthdraw_heightorigin_x
position_xorigin_y
position_yref_xref_ys   &              r   replacedbox_layoutr<   V   s   <(Jyy*+HOOE  II()399[+A	C 7O 22,KIIszz?-4) V"%))SZZK22&E		3::'8#J7"&C		3::'8#J '33'&5%Z9Jk<K19!.H(II
"EJJ$EJ		59JJ		59J7'
8'
##%%J##%%JJ::r   c                   ^RI Hp V P                  P                  V P                  R,          V P                  R,          4      w  r4pV P
                  V P                  u;8X  d   R8X  d-   M M)Ve   W0n        MVe   Ve   WE,          V n        MV! W4       V P                  R8X  d4   Ve   V P
                  V,          V n        R# Ve	   W0n        R# RV n        R# R# )z&Set the used width for replaced boxes.block_level_widthr!   r"   r   Ni,  )blockr?   r*   r+   r)   r-   r,   )r1   containing_blockr?   r,   r-   ratios   &&    r   replaced_box_widthrC      s     )??==		$%syy'=?E5
 zzSYY(&(I!"N	 "#8
yyF

U*CII CI r   c                t   V P                   P                  V P                  R,          V P                  R,          4      w  rpV P                  V P                  u;8X  d   R8X  d   M MW n        M1V P                  R8X  d!   V'       d   V P                  V,          V n        V P                  V P                  u;8X  d   R8X  d   M MVe	   W n        R# Ve,   V P                  R8X  d   V P                  V,          V n        R# V P                  R8X  d   Ve	   W n        R# V P                  R8X  d
   ^V n        R# R# )z3Compute and set the used height for replaced boxes.r!   r"   r   N)r*   r+   r)   r-   r,   )r1   r,   r-   rB   s   &   r   replaced_box_heightrE      s     ??==		$%syy'=?E5 zzSYY(&(
	v	%YY&

zzSYY(&(V-?
		szzV3YY&
	v	&"4
	v	
 
r   c                z    R F)  p\        V RV 24      R8X  g   K  \        V RV 2^ 4       K+  	  \        W4       R# )z5Lay out an inline :class:`boxes.ReplacedBox` ``box``.margin_r   N)topr&   r'   left)getattrsetattr inline_replaced_box_width_height)r1   rA   sides   && r   inline_replaced_box_layoutrN      s?    23'$()V3C74&)1- 3 %S;r   c                    V P                   R ,          V P                   R,          u;8X  d   R8X  d;   M M7\        P                  W4       \        P                  V 4       \	        V 4       R# \        W4       \        V 4       R# )r,   r-   r   N)r)   rC   without_min_maxrE   min_max_auto_replaced)r1   rA   s   &&r   rL   rL      sU    
yySYYx0:F:**3A++C0c"31C r   c                z   V P                   pV P                  pV P                  pV P                  p\	        W0P
                  4      p\	        W@P                  4      pW8  d   RM	W8  d   RMRW$8  d   RM	W&8  d   RMR3pV^ 8X  d   RpV^ 8X  d   RpVR8X  d'   WPn         \	        WR,          V,          V4      V n        R# VR8X  d'   W0n         \        W2,          V,          V4      V n        R# VR8X  d'   \	        Wa,          V,          V4      V n         W`n        R# VR	8X  d'   \        WA,          V,          V4      V n         W@n        R# VR
8X  d`   WQ,          Wb,          8:  d'   WPn         \	        WEV,          V,          4      V n        R# \	        W6V,          V,          4      V n         W`n        R# VR8X  d`   W1,          WB,          8:  d'   \        WTV,          V,          4      V n         W@n        R# W0n         \        WcV,          V,          4      V n        R# VR8X  d   W0n         W`n        R# VR8X  d   WPn         W@n        R# R# )zCResolve min/max constraints on replaced elements with 'auto' sizes.r.   max gư>N)rS   rT   )r.   rT   )rT   rS   )rT   r.   )rS   rS   )r.   r.   )r.   rS   )rS   r.   )r,   r-   	min_width
min_heightrS   	max_width
max_heightr.   )r1   r,   r-   rU   rV   rW   rX   
violationss   &       r   rQ   rQ      s   IIEZZFIJI}}-IZ0J "1B$63F%BPJ z{ [ 	+e3Z@
	{	"	+e3Z@
	{	"
*V3Y?	
	{	"
*V3Y?	
	~	%
 33!IZV);e)CDCJIE'9F'BCCI#J	~	%
 33IE'9F'BCCI#J!IZV);e)CDCJ	~	%	
	~	%	
 
&r   c                "   ^RI Hp ^RIHp VP	                  4       pVP
                  R,          VP
                  R,          u;8X  d   R8X  dr   M MnVP                  VP                  3p\        P                  W4       \        P                  V4       \        V4       Vw  Vn        Vn        VP                  W4       M\        W4       \        V4       VP                  '       g   V! WVRR7      w  Vn        Vn        pRpR	R
RR/p. p	Rp
WWV
3# )z5Lay out the block :class:`boxes.ReplacedBox` ``box``.r>   )avoid_collisionsr,   r-   r   F)outerNbreakanypage)r@   r?   floatr[   copyr)   margin_leftmargin_rightblock_replaced_widthrP   rE   rQ   is_flex_itemr7   r9   )contextr1   rA   r?   r[   computed_margins_	resume_at	next_pageadjoining_marginscollapsing_throughs   &&&        r   block_replaced_box_layoutrm   
  s    ('
((*C
yySYYx0:F:??C,<,<<,,	#++C0c",<))))#@S3C   -=*%-9)I%.I99KKKr   c                 ^    ^RI Hp \        P                  W4       VP                  W4       R# )   r>   N)r@   r?   rC   rP   )r1   rA   r?   s   && r   rd   rd   *  s#    ( &&s=%%c<r   N)__doc__min_maxr   r   percentr   r   r   r   r   r<   rC   rE   rN   rL   rQ   rm   rd   r   r   r   <module>rs      s    A $@N
K
JD,;^  D  .<!5 pL@ = =r   