+
    yj%                    `    ^ RI Ht  ! R R4      t ! R R4      tR t ! R R4      t^R	IHt R
# )    )annotationsc                  6    ] tR t^tRtRR ltR tR tR tRt	R# )	IfRangezVery simple object that represents the `If-Range` header in parsed
form.  It will either have neither a etag or date or one of either but
never both.

.. versionadded:: 0.7
Nc                	    Wn         W n        R # N)etagdate)selfr   r	   s   &&&Q/var/www/html/2rare/lib/python3.14/site-packages/werkzeug/datastructures/range.py__init__IfRange.__init__   s     		    c                    V P                   e!   \        P                  ! V P                   4      # V P                  e!   \        P                  ! V P                  4      # R# )-Converts the object back into an HTTP header. )r	   http	http_dater   
quote_etagr
   s   &r   	to_headerIfRange.to_header   s?    99 >>$)),,99 ??499--r   c                	"    V P                  4       # r   r   r   s   &r   __str__IfRange.__str__       ~~r   c                	N    R \        V 4      P                   R\        V 4      : R2# < >type__name__strr   s   &r   __repr__IfRange.__repr__   &    4:&&'qTQ77r   )r	   r   NN)
r$   
__module____qualname____firstlineno____doc__r   r   r   r&   __static_attributes__ r   r   r   r      s     8r   r   c                  D    ] tR t^"tRtR tR tR tR tR t	R t
R tR	tR
# )Rangea<  Represents a ``Range`` header. All methods only support only
bytes as the unit. Stores a list of ranges if given, but the methods
only work if only one range is provided.

:raise ValueError: If the ranges provided are invalid.

.. versionchanged:: 0.15
    The ranges passed in are validated.

.. versionadded:: 0.7
c                	    Wn         W n        V F+  w  r4Ve   Vf   K  V^ 8  g	   W48  g   K  \        W43 R24      h	  R # )Nz is not a valid range.)unitsranges
ValueError)r
   r3   r4   startends   &&&  r   r   Range.__init__/   sB    
  JE}eai5< UL>1G!HII !r   c                   V P                   R8w  g   Ve   \        V P                  4      ^8w  d   R# V P                  ^ ,          w  r#Vf   TpV^ 8  d	   W!,          p\        P                  ! W#V4      '       d   V\        W14      3# R# )zIf the range is for bytes, the length is not None and there is
exactly one range and it is satisfiable it returns a ``(start, stop)``
tuple, otherwise `None`.
bytesN)r3   lenr4   r   is_byte_range_validmin)r
   lengthr6   r7   s   &&  r   range_for_lengthRange.range_for_length:   st    
 :: FNc$++6F!6K[[^
;Cqy##E77#c***r   c                |    V P                  V4      pVe'   \        V P                  V^ ,          V^,          V4      # R# )zqCreates a :class:`~werkzeug.datastructures.ContentRange` object
from the current range and given content length.
N)r?   ContentRanger3   )r
   r>   rngs   && r   make_content_rangeRange.make_content_rangeJ   s9     ##F+?

CFCFFCCr   c                   . pV P                    FN  w  r#Vf)   TP                  V^ 8  d   V R2M
\        V4      4       K1  VP                  V RV^,
           24       KP  	  V P                   RRP	                  V4       2# )r   -=,)r4   appendr%   r3   join)r
   r4   beginr7   s   &   r   r   Range.to_headerS   sv    ++JE{UaZqkSZHqq	23	 &
 **Qsxx/011r   c                    V P                  V4      pVe-   V P                   RV^ ,           RV^,          ^,
           RV 2# R# )zLConverts the object into `Content-Range` HTTP header,
based on given length
Nr    rG   /)r?   r3   )r
   r>   ranges   && r   to_content_range_headerRange.to_content_range_header]   sJ     %%f-jj\58*AeAhl^1VHEEr   c                	"    V P                  4       # r   r   r   s   &r   r   Range.__str__f   r   r   c                	N    R \        V 4      P                   R\        V 4      : R2# r   r"   r   s   &r   r&   Range.__repr__i   r(   r   )r4   r3   N)r$   r*   r+   r,   r-   r   r?   rD   r   rQ   r   r&   r.   r/   r   r   r1   r1   "   s+    
	J 2 8r   r1   c                2   a  V 3R  lpV 3R lp\        W4      # )c                   < \        V S4      # r   )getattr)r
   names   &r   fget _callback_property.<locals>.fgetn   s    tT""r   c                d   < \        V SV4       V P                  e   V P                  V 4       R # R # r   )setattr	on_update)r
   valuerZ   s   &&r   fset _callback_property.<locals>.fsetq   s*    dE">>%NN4  &r   )property)rZ   r[   ra   s   f  r   _callback_propertyrd   m   s    #!
 Dr   c                      ] tR t^ytRtRR lt]! R4      t]! R4      t]! R4      t	]! R4      t
RR ltR	 tR
 tR tR tR tRtR# )rB   z<Represents the content range header.

.. versionadded:: 0.7
Nc                	~    \         P                  ! W#V4      '       g   Q R 4       hWPn        V P                  W#WA4       R# )Bad range providedN)r   r<   r_   set)r
   r3   r6   stopr>   r_   s   &&&&&&r   r   ContentRange.__init__   s4    ''V<<R>RR<"f,r   _units_start_stop_lengthc                    \         P                  ! WV4      '       g   Q R4       hW@n        Wn        W n        W0n        V P                  e   V P                  V 4       R# R# )z#Simple method to update the ranges.rg   N)r   r<   rk   rl   rm   rn   r_   )r
   r6   ri   r>   r3   s   &&&&&r   rh   ContentRange.set   sP    ''V<<R>RR<
>>%NN4  &r   c                .    V P                  RRRR7       R# )zSSets the units to `None` which indicates that the header should
no longer be used.
Nr3   )rh   r   s   &r   unsetContentRange.unset   s     	t4(r   c                	    V P                   f   R# V P                  f   RpMV P                  pV P                  f   V P                    RV 2# V P                    RV P                   RV P                  ^,
           RV 2# )Nr   *z */r    rG   rO   )r3   r>   r6   ri   )r
   r>   s   & r   r   ContentRange.to_header   ss    ::;;F[[F::jj\VH--**Qtzzl!DIIM?!F8DDr   c                	    V P                   R J# r   rr   r   s   &r   __bool__ContentRange.__bool__   s    zz%%r   c                	"    V P                  4       # r   r   r   s   &r   r   ContentRange.__str__   r   r   c                	N    R \        V 4      P                   R\        V 4      : R2# r   r"   r   s   &r   r&   ContentRange.__repr__   r(   r   )rn   rl   rm   rk   r_   r)   )Nr:   )r$   r*   r+   r,   r-   r   rd   r3   r6   ri   r>   rh   rs   r   ry   r   r&   r.   r/   r   r   rB   rB   y   sW    
- x(Ex(E g&D	*F!)	E& 8r   rB   )r   N)
__future__r   r   r1   rd   rB   r   r   r/   r   r   <module>r      s4    "8 8<H8 H8V	 78 78v r   