
    i                     H   % S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJrJr  S SK	J
r
  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJr  S SKJr  S S	KJr  S S
KJr  S SKJrJr  S SK J!r!J"r"J#r#J$r$J%r%J&r&  S SK'J(r(  S SK)J*r*  S SK+J,r,J-r-J.r.J/r/  S SK0J1r1J2r2J3r3  S SK4J5r5J6r6J7r7J8r8J9r9  S SK:J;r;  S SK<J=r=J>r>  \(       a  S SK?J@r@  S SK0JArA  \" S5      rB\S   rC\\DS'   SrESSS.rF\G\H\H\IS   -  4   \DS'   \J\#\J\S4   4   rK\\DS '   \J\JS!   \JS!   4   rL\\DS"'   \" S#5      rM\\K\L4   \DS$'   \N" S%S&5       V s/ s H  n S'U -  PM
     sn \N" S(S)5       V s/ s H  n S*U -  PM
     sn -   \N" S+S,5       V s/ s H  n \R                  U 5      PM     sn -   / S-Q-   rP\PR                  \P V s/ s H  o S.-
  PM	     sn \P V s/ s H  o S.-   PM	     sn -   5        \PR                  \P Vs/ s H  o* PM     sn5        \R" S/ \P 5       5      (       d   eS0S1S2S3S4S5S6S7\9" S85      \R                  \R                  S9S:S;S<S=S>/S? V s/ s H	  n S@U * -  PM     sn -   SA V s/ s H  n \R                  U -  PM     sn -   rU\UR                  \U Vs/ s H  o* PM     sn5        \R" SB \U 5       5      (       d   e1 SCkrV\1" \" \P5      \" \U\6SD9\" 5       \" \V5      SE9rW\1" \" 5       \" \6SD9\" 5       \" 5       SE9qX\Y" 5       rZ\Y\DSF'   Sq[\\S-  \DSG'   SH\14SI jr]\SJ 5       r^ " SK SL\5      r_ " SM S\ R                  5      ra " SN SO\a5      rb\N" SP5       V s/ s H  n S.U -  S.-
  PM     sn rcSQ\cS '    " SR SS\a5      rd " ST SU\5      re " SV SW\b5      rfgs  sn f s  sn f s  sn f s  sn f s  sn f s  snf s  sn f s  sn f s  snf s  sn f )X    N)Iterable)AbstractContextManagercontextmanager)cached_property)Random)
float_info)TYPE_CHECKINGAnyClassVarLiteralOptional	TypeAlias	TypedDictTypeVar)	SortedSet)HypothesisWarning)LRUCache)WINDOWSint_from_bytes)ChoiceConstraintsTChoiceTChoiceTypeTFloatConstraintschoice_constraints_keychoice_permitted)lex_to_float)bits_to_bytes)	INT_SIZESINT_SIZES_SAMPLERSamplermany)	Constantsconstants_from_moduleis_local_module_file)SIGNALING_NANfloat_to_intmake_float_clamper	next_downnext_up)IntervalSet)InfoObservationTypeTestCaseObservation)ConjectureData)	ConstantTT	test_casetest_function	LifetimeTl    d(	 z;hypothesis.internal.conjecture.providers.HypothesisProviderz8hypothesis.internal.conjecture.providers.URandomProvider)
hypothesiszhypothesis-urandomPrimitiveProviderAVAILABLE_PROVIDERS.	CacheKeyT)r.   .CacheValueTi   CONSTANTS_CACHE   B            
   	      )i. l   ./? l   *_R l   :CK"    c              #   d   #    U  H&  nS [        U5      s=:*  =(       a    SS-  :*  Os  v   M(     g7f)iP  r<   r;   N)abs).0ns     g/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/hypothesis/internal/conjecture/providers.py	<genexpr>rH      s*     
B.A6SV$$q"u$$.As   .0      ?g?g      ?gffffff?gUUUUUU?g    cAgh㈵>gc
   8        g6pGg      @CgwJ?g9b->  @gh_   >g      <)         ~   g       @)r<   r?   i  i c              #   B   #    U  H  n[        U[        5      v   M     g 7fN)
isinstancefloat)rE   fs     rG   rH   rH      s     
:)9A:a)9s   >8   0ifINFInfNILNULNaNnilCOM1LPT1NULLNoneTRUETrueelsenonenullthentrue1e100FALSEFalsefalseInfinity__dict__	__proto__	undefined
Scunthorpe999999999999999999999999999999   Ⱥ   Ⱦ   🏻   😍   🇺🇸   👍🏻   æœÆŒﬀʤʨß   मनीष منش   (╯°□°）╯︵ ┻━┻)   الكل في المجمو عة)   ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥-   ᚛ᚄᚓᚐᚋᚒᚄ ᚑᚄᚂᚑᚏᚅ᚜1   lorem لا بسم الله ipsum 你好1234你好k   पन्ह पन्ह त्र र्च कृकृ ड्ड न्हृे إلا بسم الله}  Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣   𝐓𝐡𝐞 𝐪𝐮𝐢𝐜𝐤 𝐛𝐫𝐨𝐰𝐧 𝐟𝐨𝐱 𝐣𝐮𝐦𝐩𝐬 𝐨𝐯𝐞𝐫 𝐭𝐡𝐞 𝐥𝐚𝐳𝐲 𝐝𝐨𝐠   𝑻𝒉𝒆 𝒒𝒖𝒊𝒄𝒌 𝒃𝒓𝒐𝒘𝒏 𝒇𝒐𝒙 𝒋𝒖𝒎𝒑𝒔 𝒐𝒗𝒆𝒓 𝒕𝒉𝒆 𝒍𝒂𝒛𝒚 𝒅𝒐𝒈   𝓣𝓱𝓮 𝓺𝓾𝓲𝓬𝓴 𝓫𝓻𝓸𝔀𝓷 𝓯𝓸𝔁 𝓳𝓾𝓶𝓹𝓼 𝓸𝓿𝓮𝓻 𝓽𝓱𝓮 𝓵𝓪𝔃𝔂 𝓭𝓸𝓰   𝕋𝕙𝕖 𝕢𝕦𝕚𝕔𝕜 𝕓𝕣𝕠𝕨𝕟 𝕗𝕠𝕩 𝕛𝕦𝕞𝕡𝕤 𝕠𝕧𝕖𝕣 𝕥𝕙𝕖 𝕝𝕒𝕫𝕪 𝕕𝕠𝕘   𝕿𝖍𝖊 𝖖𝖚𝖎𝖈𝖐 𝖇𝖗𝖔𝖜𝖓 𝖋𝖔𝖝 𝖏𝖚𝖒𝖕𝖘 𝖔𝖛𝖊𝖗 𝖙𝖍𝖊 𝖑𝖆𝖟𝖞 𝖉𝖔𝖌   Ω≈ç√∫˜µ≤≥÷åß∂ƒ©˙∆˚¬…æœ∑´®†¥¨ˆøπ“‘¡™£¢∞§¶•ªº–≠¸˛Ç◊ı˜Â¯˘¿ÅÍÎÏ˝ÓÔÒÚÆ☃Œ„´‰ˇÁ¨ˆØ∏”’`⁄€‹›ﬁﬂ‡°·‚—±0/01/0+0.00..0	-Infinity ,./;'[]\-=<>?:"{}|_+!@#$%^&*()`~)key)integersfloatsbytesstrings_seen_modules_sys_modules_lenreturnc                     [         R                  S:X  a  [        $ [        [        5      n [        [         R                  5      =n[
        :w  a  / n[        [         R                  R                  5       5       H*  u  p4 U[        ;   nU(       a  M  UR                  X445        M,     [        5       nU HJ  u  p4[        USS 5      =n b  [        U5      (       a  U[        U5      -  n [        R                  U5        ML     [        U-  qUq[        [        5      U :  a  [         R"                  R%                  5         [        $ ! [         a    U[        ;   n Nf = f! [         a    [        R                  U5         M  f = f)N
emscripten__file__)sysplatform_local_constantslenmodulesr   listitemsr   	TypeErrorappendr"   getattrr$   r#   addr9   cacheclear)count_constantssys_modules_lennew_modulesnamemoduleseennew_constantsmodule_files           rG   _get_local_constantsr     sU    |||#  *+O" s{{++0@@ !2!2!45LD-. 4""D>2 6 "'LD&vz4@@2;??!6v!>>(!!&) ( 	M)*
 .##%5  -},-  (!!$'(s$   <	E %E EEE<;E<c              #   N   #     U[         U '   S v   [         U 	 g ! [         U 	 f = f7frP   )r6   )r   provider_clss     rG   with_register_backendr   [  s)     &$0D!%%s   % %	"%c                   D    \ rS rSr% \\S'   \\S'   \\\\4   -  \S'   Sr	g)_BackendInfoMsgid  typetitlecontent N)
__name__
__module____qualname____firstlineno__r+   __annotations__strdictr
   __static_attributes__r       rG   r   r   d  s     
J4S>!!r   r   c                      \ rS rSr% SrSr\\   \S'   Sr	\\
   \S'   Sr\\
   \S'   S\S	   S
S4S jr\R                   S2S\S
\
4S jj5       r\R                    S3SSS.S\S-  S\S-  S\\\4   S-  S\S
\4
S jjj5       r\R                  \R,                  * \R,                  SS.S\S\S\
S\S
\4
S jj5       r\R                  S\S.S\S\S\S
\4S jj5       r\R                  S\4S\S\S
\4S  jj5       rS
\4S! jrSS".S#\ S$\
S
\ 4S% jjr!S&\"\#S'4   S
S4S( jr$S
\\\%4   4S) jr&S\S
\'\(   4S* jr)S+\*S
S4S, jr+S-\S
S4S. jr,S/\
S
S4S0 jr-S1r.g)4r5   im  a=  
|PrimitiveProvider| is the implementation interface of a
:ref:`Hypothesis backend <alternative-backends>`.

A |PrimitiveProvider| is required to implement the following five
``draw_*`` methods:

* |PrimitiveProvider.draw_integer|
* |PrimitiveProvider.draw_boolean|
* |PrimitiveProvider.draw_float|
* |PrimitiveProvider.draw_string|
* |PrimitiveProvider.draw_bytes|

Each strategy in Hypothesis generates values by drawing a series of choices
from these five methods. By overriding them, a |PrimitiveProvider| can control
the distribution of inputs generated by Hypothesis.

For example, :pypi:`hypothesis-crosshair` implements a |PrimitiveProvider|
which uses an SMT solver to generate inputs that uncover new branches.

Once you implement a |PrimitiveProvider|, you can make it available for use
through |AVAILABLE_PROVIDERS|.
r2   lifetimeFavoid_realizationadd_observability_callbackconjecturedatar-   r   Nc                    Xl         g rP   _cd)selfr   s     rG   __init__PrimitiveProvider.__init__  s    !r   pc                     [         e)a_  
Draw a boolean choice.

Parameters
----------
p: float
    The probability of returning ``True``. Between 0 and 1 inclusive.

    Except for ``0`` and ``1``, the value of ``p`` is a hint provided by
    Hypothesis, and may be ignored by the backend.

    If ``0``, the provider must return ``False``. If ``1``, the provider
    must return ``True``.
NotImplementedErrorr   r   s     rG   draw_booleanPrimitiveProvider.draw_boolean  s
    & "!r   r   weightsshrink_towards	min_value	max_valuer   r   c                    [         e)a  
Draw an integer choice.

Parameters
----------
min_value : int | None
    (Inclusive) lower bound on the integer value. If ``None``, there is
    no lower bound.
max_value : int | None
    (Inclusive) upper bound on the integer value. If ``None``, there is
    no upper bound.
weights: dict[int, float] | None
    Maps keys in the range [``min_value``, ``max_value``] to the probability
    of returning that key.
shrink_towards: int
    The integer to shrink towards. This is not used during generation and
    can be ignored by backends.
r   )r   r   r   r   r   s        rG   draw_integerPrimitiveProvider.draw_integer  s
    6 "!r   Tr   r   	allow_nanr   smallest_nonzero_magnitudec                    [         e)a  
Draw a float choice.

Parameters
----------
min_value : float
    (Inclusive) lower bound on the float value.
max_value : float
    (Inclusive) upper bound on the float value.
allow_nan : bool
    If ``False``, it is invalid to return ``math.nan``.
smallest_nonzero_magnitude : float
    The smallest allowed nonzero magnitude. ``draw_float`` should not
    return a float ``f`` if ``abs(f) < smallest_nonzero_magnitude``.
r   )r   r   r   r   r   s        rG   
draw_floatPrimitiveProvider.draw_float  s
    0 "!r   min_sizemax_size	intervalsr   r   c                    [         e)z
Draw a string choice.

Parameters
----------
intervals : IntervalSet
    The set of codepoints to sample from.
min_size : int
    (Inclusive) lower bound on the string length.
max_size : int
    (Inclusive) upper bound on the string length.
r   )r   r   r   r   s       rG   draw_stringPrimitiveProvider.draw_string  s
    ( "!r   c                     [         e)z
Draw a bytes choice.

Parameters
----------
min_size : int
    (Inclusive) lower bound on the bytes length.
max_size : int
    (Inclusive) upper bound on the bytes length.
r   )r   r   r   s      rG   
draw_bytesPrimitiveProvider.draw_bytes  s
      "!r   c                 ,    [         R                  " 5       $ )aa  
Returns a context manager which will be entered each time Hypothesis
starts generating and executing one test case, and exited when that test
case finishes generating and executing, including if any exception is
thrown.

In the lifecycle of a Hypothesis test, this is called before
generating strategy values for each test case. This is just before any
:ref:`custom executor <custom-function-execution>` is called.

Even if not returning a custom context manager, |PrimitiveProvider|
subclasses are welcome to override this method to know when Hypothesis
starts and ends the execution of a single test case.
)
contextlibnullcontextr   s    rG   per_test_case_context_manager/PrimitiveProvider.per_test_case_context_manager"  s     %%''r   )for_failurevaluer   c                    U$ )a@  
Called whenever hypothesis requires a concrete (non-symbolic) value from
a potentially symbolic value. Hypothesis will not check that ``value`` is
symbolic before calling ``realize``, so you should handle the case where
``value`` is non-symbolic.

The returned value should be non-symbolic.  If you cannot provide a value,
raise |BackendCannotProceed| with a value of ``"discard_test_case"``.

If ``for_failure`` is ``True``, the value is associated with a failing example.
In this case, the backend should spend substantially more effort when
attempting to realize the value, since it is important to avoid discarding
failing examples. Backends may still raise |BackendCannotProceed| when
``for_failure`` is ``True``, if realization is truly impossible or if
realization takes significantly longer than expected (say, 5 minutes).
r   )r   r   r   s      rG   realizePrimitiveProvider.realize3  s	    " r   choices.c                     g)aw  
Called when Hypothesis has discovered a choice sequence which the provider
may wish to enqueue to replay under its own instrumentation when we next
ask to generate a test case, rather than generating one from scratch.

This is used to e.g. warm-start :pypi:`hypothesis-crosshair` with a corpus
of high-code-coverage inputs discovered by
`HypoFuzz <https://hypofuzz.com/>`_.
Nr   )r   r   s     rG   replay_choices PrimitiveProvider.replay_choicesF  s     r   c                     0 $ )zCalled at the end of the test case when :ref:`observability
<observability>` is enabled.

The return value should be a non-symbolic json-encodable dictionary,
and will be included in observations as ``observation["metadata"]["backend"]``.
r   r   s    rG   observe_test_case#PrimitiveProvider.observe_test_caseR  s	     	r   c             #   4   #    US;   d   e/  Sh  vN   g N7f)a,  Called at the end of each test case and again at end of the test function.

Return an iterable of ``{type: info/alert/error, title: str, content: str | dict}``
dictionaries to be delivered as individual information messages. Hypothesis
adds the ``run_start`` timestamp and ``property`` name for you.
r0   Nr   )r   r   s     rG   observe_information_messages.PrimitiveProvider.observe_information_messages[  s      9999s   observationc                     g)a  
Called at the end of each test case which uses this provider, with the same
``observation["type"] == "test_case"`` observation that is passed to
other callbacks added via |add_observability_callback|. This method is not
called with ``observation["type"] in {"info", "alert", "error"}``
observations.

.. important::

    For |PrimitiveProvider.on_observation| to be called by Hypothesis,
    |PrimitiveProvider.add_observability_callback| must be set to ``True``.

    |PrimitiveProvider.on_observation| is explicitly opt-in, as enabling
    observability might increase runtime or memory usage.

Calls to this method are guaranteed to alternate with calls to
|PrimitiveProvider.per_test_case_context_manager|. For example:

.. code-block:: python

    # test function starts
    per_test_case_context_manager()
    on_observation()
    per_test_case_context_manager()
    on_observation()
    ...
    # test function ends

Note that |PrimitiveProvider.on_observation| will not be called for test
cases which did not use this provider during generation, for example
during |Phase.reuse| or |Phase.shrink|, or because Hypothesis switched
to the standard Hypothesis backend after this backend raised too many
|BackendCannotProceed| exceptions.
Nr   )r   r   s     rG   on_observation PrimitiveProvider.on_observationg      r   labelc                    g)ap  Marks the beginning of a semantically meaningful span of choices.

Spans are a depth-first tree structure. A span is opened by a call to
|PrimitiveProvider.span_start|, and a call to |PrimitiveProvider.span_end|
closes the most recently opened span. So the following sequence of calls:

.. code-block:: python

    span_start(label=1)
    n1 = draw_integer()
    span_start(label=2)
    b1 = draw_boolean()
    n2 = draw_integer()
    span_end()
    f1 = draw_float()
    span_end()

produces the following two spans of choices:

.. code-block::

    1: [n1, b1, n2, f1]
    2: [b1, n2]

Hypothesis uses spans to denote "semantically meaningful" sequences of
choices. For instance, Hypothesis opens a span for the sequence of choices
made while drawing from each strategy. Not every span corresponds to a
strategy; the generation of e.g. each element in |st.lists| is also marked
with a span, among others.

``label`` is an opaque integer, which has no defined semantics.
The only guarantee made by Hypothesis is that all spans with the same
"meaning" will share the same ``label``. So all spans from the same
strategy will share the same label, as will e.g. the spans for |st.lists|
elements.

Providers can track calls to |PrimitiveProvider.span_start| and
|PrimitiveProvider.span_end| to learn something about the semantics of
the test's choice sequence. For instance, a provider could track the depth
of the span tree, or the number of unique labels, which says something about
the complexity of the choices being generated. Or a provider could track
the span tree across test cases in order to determine what strategies are
being used in what contexts.

It is possible for Hypothesis to start and immediately stop a span,
without calling a ``draw_*`` method in between. These spans contain zero
choices.

Hypothesis will always balance the number of calls to
|PrimitiveProvider.span_start| and |PrimitiveProvider.span_end|. A call
to |PrimitiveProvider.span_start| will always be followed by a call to
|PrimitiveProvider.span_end| before the end of the test case.

|PrimitiveProvider.span_start| is called from ``ConjectureData.start_span()``
internally.
Nr   )r   r  s     rG   
span_startPrimitiveProvider.span_start  r  r   discardc                    g)al  Marks the end of a semantically meaningful span of choices.

``discard`` is ``True`` when the draw was filtered out or otherwise marked
as unlikely to contribute to the input data as seen by the user's test.
Note however that side effects can make this determination unsound.

|PrimitiveProvider.span_end| is called from ``ConjectureData.stop_span()``
internally.
Nr   )r   r  s     rG   span_endPrimitiveProvider.span_end  r  r   r   rI   NN)/r   r   r   r   __doc__r   r   r3   r   r   boolr   r   r   abcabstractmethodrR   r   intr   r   mathinfr   COLLECTION_DEFAULT_MAX_SIZEr*   r   r   r   r   r   r   r/   r   tupler   r   r
   r   r   r   r   r,   r   r  r	  r   r   r   rG   r5   r5   m  s   P %4Hhy!3 ).x~- 276"x0@'A " " 	 "" 
" "( 	 !% $"
 ,0":" :"
 c5j!D(" " 
" "8 	 !HH988" " 	"
 " %*" 
" "2 	
 3"" 	"
 " 
" "* 	 3"" " 
	" ""(/E (" 8= Q   &
eGSL&9 
d 
4S> 
$
	/	"
"*= "$ "H8 84 8t	 	D 	r   c                     ^  \ rS rSrSrS\S   4U 4S jjr\S 5       rSS.S	\	S
\
S\S\S   4S jjr S+S\S\4S jjr  S,SSS.S\S-  S\S-  S\\\4   S-  S\S\4
S jjjr\R&                  * \R&                  SS.S\S\S\S\S\4
S jjrS\S.S\S\S \S\4S! jjrS\4S\S \S\4S" jjrS\4S# jrS\4S$ jrSS%.S&\S'\S(\S\4S) jjrS*rU =r$ )-HypothesisProvideri  r1   r   r-   c                   > [         TU ]  U5        U R                  c  S U l        g U R                  R                  U l        g rP   )superr   r   _randomr   r   	__class__s     rG   r   HypothesisProvider.__init__  s0    (#xx/tTXX5E5Er   c                     [        5       $ rP   )r   r   s    rG   r   #HypothesisProvider._local_constants  s     $%%r   皙?r   choice_typeconstraintsr   r   r.   c                <  ^ U R                   c   eUS:w  d   eU R                   R                  5       U:  a  g U R                  c   eU[        UT5      4nU[        ;  a]  [        U4S j[        R                  U5       5       5      [        U4S jU R                  R                  U5       5       5      4[        U'   [        U   u  pVU(       a  U/O/ U(       a  U/O/ -   nU(       d  g U R                   R                  U5      nU R                   R                  U5      $ )Nbooleanc              3   N   >#    U  H  n[        UT5      (       d  M  Uv   M     g 7frP   r   rE   choicer#  s     rG   rH   :HypothesisProvider._maybe_draw_constant.<locals>.<genexpr>  s$      "L'< F"L   %	%c              3   N   >#    U  H  n[        UT5      (       d  M  Uv   M     g 7frP   r'  r(  s     rG   rH   r*    s$      "Q'< F"Qr+  )	r  randomr   r   r9   r  GLOBAL_CONSTANTSset_for_typer)  )	r   r"  r#  r   r   global_constantslocal_constantsconstants_lists	constantss	     `      rG   _maybe_draw_constant'HypothesisProvider._maybe_draw_constant  s    ||'''i''' << 1$ $$0002;LMo% "2"?"?"L 
  "&"7"7"D"D["Q $OC  -<C,@)1A,-r!0_b
  LL''8	||""9--r   c                 v    U R                   c   eUS::  a  gUS:  a  gU R                   R                  5       U:  $ )Nr   FrB   T)r  r-  r   s     rG   r   HypothesisProvider.draw_boolean  s@     ||'''66||""$q((r   Nr   r   r   r   r   r   c                   U R                   c   eU R                  SUUUUS.5      =n b  [        U[        5      (       d   eU$ SnUb  [	        X5      nUb  [        X&5      nUb  Uc   eUc   e[        S[        UR                  5       5      -
  /UR                  5       QSS9nUR                  U R                   5      nUS:X  a  U R                  X5      $ [        U5      US-
     $ Uc  Uc  U R                  5       $ Uc*  Uc   eUS-   n	X):  a  X`R                  5       -   n	X):  a  M  U	$ Uc*  Uc   eUS-
  n	X:  a  X`R                  5       -   n	X:  a  M  U	$ U R                  X5      $ )Ninteger)r   r   r   r   r   rB   F)observe)r   r4  rQ   r  maxminr    sumvaluessample_draw_bounded_integerr   _draw_unbounded_integer)
r   r   r   r   r   constantcentersampleridxprobes
             rG   r   HypothesisProvider.draw_integer  s    xx###11!*!*&&4	 H 
 h,,,,O +F +F(((((( S)**>W^^-=>G
 ..*Cax11)GG=q))!2//11(((ME#!=!=!?? #L(((ME#!=!=!?? #L)))??r   Tr   r   r   c                <   U R                   c   eUUUUS.nU R                  SUSS9=n b  [        U[        5      (       d   eU$ SS[        R
                  [        R
                  * [        R                  [        R                  * [        [        * U[        U5      US-   US-
  [        U5      U4 Vs/ s H  n[        Xu5      (       d  M  UPM     nnU(       a9  U R                   R                  5       S:  a  U R                   R                  U5      $ [        UUUUS	9n	U R                  5       n
U(       a  [        R                  " U
5      (       a  U
nOU	" U
5      n[!        U5      [!        U
5      :w  a$  [        R                  " U
5      (       a  U(       d  Un
U
$ s  snf )
N)r   r   r   r   rR   g333333?r!  rJ   g       rB   r   r   r   )r  r4  rQ   rR   r  r  nanr%   r)   r(   r   r-  r)  r'   _draw_floatisnanr&   )r   r   r   r   r   r#  rB  rS   weird_floatsclamperresultclampeds               rG   r   HypothesisProvider.draw_floatc  s    ||''' #""*D	)
 11';$1OOH h....O 			"AA)$
   /#  	 
* DLL//1D8<<&&|44$'A	
 !!#F++GfoG L$88JJv9FQ
s   2F
Fr   r   r   r   c                   U R                   c   eU R                  c   e[        U5      S:X  a  gU R                  SXUS.5      =n b  [	        U[
        5      (       d   eU$ [        [        US-  US-   5      SX#-   -  5      n/ n[        U R                   UUUSS	9nUR                  5       (       a  [        U5      S
:  a\  U R                  S5      (       a)  U R                  R                  S
[        U5      S-
  5      nOEU R                  R                  SS5      nO(U R                  R                  S[        U5      S-
  5      nUR                  UR                  U5      5        UR                  5       (       a  M  SR                  U5      $ )Nr    string)r   r   r   r<   r=   rI   Fr   r   average_sizer:     g?rB      )r   r  r   r4  rQ   r   r<  r;  r!   morer   randintr   char_in_shrink_orderjoin)	r   r   r   r   rB  rV  charselementsis	            rG   r   HypothesisProvider.draw_string  sv    xx###||'''y>Q 11'8T H  h,,,,O1hl+8&'

 HH%
 mmoo9~#$$S)),,S#i.12DEA,,Q4ALL((C	NQ,>?LL77:; mmoo wwu~r   c                    U R                   c   eU R                  c   eU R                  SXS.5      =n b  [        U[        5      (       d   eU$ [        5       n[        [        US-  US-   5      SX-   -  5      n[        U R                   UUUSS9nUR                  5       (       a4  X@R                  R                  S5      -  nUR                  5       (       a  M4  [	        U5      $ )	Nr   r   r<   r=   rI   FrU  rB   )r   r  r4  rQ   r   	bytearrayr<  r;  r!   rY  	randbytes)r   r   r   rB  bufrV  r^  s          rG   r   HypothesisProvider.draw_bytes  s    
 xx###||''' 11hE H 	
 h....Ok1hl+8&'
 HH%
 mmoo<<))!,,C mmoo Szr   c                     U R                   c   e[        U R                   R                  S5      5      nU R                   R                  S5      (       a  SOSnX!-  $ )N@   rB   )r  r   getrandbits)r   rS   signs      rG   rK  HypothesisProvider._draw_float  sM    ||'''11"56LL,,Q//qRxr   c                     U R                   c   eU R                  c   e[        [        R                  " U R                   5         nU R                  R                  U5      nUS-  nUS-  nU(       a  U* nU$ )NrB   )r   r  r   r   r?  ri  )r   sizerrj  s       rG   rA  *HypothesisProvider._draw_unbounded_integer  sq    xx###||'''*11$((;<LL$$T*1u	aAr   )	vary_sizelowerupperrp  c                   X::  d   eU R                   c   eU R                  c   eX:X  a  U$ X!-
  R                  5       nUS:  a  U(       a  U R                  R                  5       S:  ab  [        R
                  " U R                   5      n[        U[        U   5      n[        X!SU-  -   S-
  5      nU R                  R                  X5      $ U R                  R                  X5      $ )NrK   g      ?r<   rB   )	r   r  
bit_lengthr-  r   r?  r<  r   rZ  )r   rq  rr  rp  bitsrE  cap_bitss          rG   r@  (HypothesisProvider._draw_bounded_integer
  s     ~~xx###||'''>L))+"9t||':':'<u'D $**4884C430Hq({2Q67E<<''55||##E11r   r  r  r  ) r   r   r   r   r   r   r   r   r   r   r   rR   r4  r  r   r  r   r   r  r  r   r  r*   r   r   r   r   rK  rA  r@  r   __classcell__r  s   @rG   r  r    s   HFx0@'A F & & /. /. (/.
 /. 
+	/.f )) 
) !% $F@
 ,0F@:F@ :F@
 c5j!D(F@ F@ 
F@V !HH988@ @ 	@
 @ %*@ 
@L 3.. 	.
 . 
.d 3  
	BU  $ 22 2
 2 
2 2r   r     rX  c                   D  ^  \ rS rSrSrS\S   S\4U 4S jjrS r S S\	S	\
4S
 jjr  S!SSS.S\S-  S\S-  S\\\	4   S-  S\S	\4
S jjjr\R                   * \R                   SS.S\	S\	S\
S\	S	\	4
S jjrS rS\S.S\S\S\S	\4S jjrS\4S\S\S	\4S jjrSrU =r$ )"BytestringProvideri+  r1   r   r-   
bytestringc               \   > [         TU ]  U5        X l        SU l        [	        5       U l        g )Nr   )r  r   r~  indexrb  drawn)r   r   r~  r  s      rG   r   BytestringProvider.__init__.  s'     	($
[
r   c                    US:X  a  g[        U5      nU R                  U-   [        U R                  5      :  a  U R                  R                  5         [        U R                  U R                  U R                  U-    5      nU =R                  U-  sl        US==   [        US-     -  ss'   [        U5      nU =R                  U-  sl	        [        U5      $ Nr   r{  )r   r  r   r~  r   mark_overrunrb  
BYTE_MASKSr   r  r   )r   rF   n_bytesrd  s       rG   
_draw_bitsBytestringProvider._draw_bits6  s    6"::#doo"66HH!!#

TZZ'5IJK

g
A*QU##Cj

c
c""r   r   r   c                     US::  a  gUS:  a  gSnSU-  n[        S[        R                  " USU-
  -  5      5      nU R                  U5      nXT:  $ )Nr   FrB   Tr{  r<   )r;  r  floorr  )r   r   ru  rm  falseyrF   s         rG   r   BytestringProvider.draw_booleanD  s]     66
 $w Q

41q5>23OOD!{r   Nr   r   r   r   r   r   c                <   U R                   c   eUc  Uc  SS-  * nSS-  S-
  nOUc  Uc   eUS-
  nOUc
  Uc   eUS-   nX:X  a  U$ X!-
  R                  5       nU R                  U5      nXs=::  a  U::  d&  O  U R                  U5      nXs=::  a
  U::  d  M   U$   N$U$ )Nr<      rB   l            )r   rt  r  )r   r   r   r   r   ru  r   s          rG   r   BytestringProvider.draw_integerX  s     xx###
 !2S&	I3
I(((!E)I(((!E)I!%113%22OOD)E 22 3r   Tr   r   r   c                    U R                  S5      nUS-	  (       a  SOSnU[        US-  5      -  n[        UUUUS9nU" U5      $ )Nrg  rh  rB   l    rI  )r  r   r'   )	r   r   r   r   r   rF   rj  rS   rN  s	            rG   r   BytestringProvider.draw_floatx  sU     OOB"Wr!<] 344$'A	
 qzr   c                   [        [        US-  US-   5      SX-   -  5      n[        U R                  UUUSS9n/ nUR	                  5       (       a;  UR                  U R                  SUS-
  5      5        UR	                  5       (       a  M;  U$ )Nr<   r=   rI   FrU  r   rB   )r<  r;  r!   r   rY  r   r   )r   r   r   alphabet_sizerV  r^  r>  s          rG   _draw_collection#BytestringProvider._draw_collection  s    1hl+8&'
 HH%
 mmooMM$++A}q/@AB mmoor   r   r   r   r   c                l   ^ U R                  X#[        T5      S9nSR                  U4S jU 5       5      $ )Nr  rS  c              3   @   >#    U  H  n[        TU   5      v   M     g 7frP   )chr)rE   vr   s     rG   rH   1BytestringProvider.draw_string.<locals>.<genexpr>  s     9&Qs9Q<((&s   )r  r   r\  )r   r   r   r   r>  s    `   rG   r   BytestringProvider.draw_string  s3     &&xY&Xww9&999r   c                 8    U R                  XSS9n[        U5      $ )NrW  r  )r  r   )r   r   r   r>  s       rG   r   BytestringProvider.draw_bytes  s#    
 &&x&NV}r   )r~  r  r  r  r  )r   r   r   r   r   r   r   r   r  rR   r  r   r  r   r   r  r  r   r  r  r*   r   r   r   r   ry  rz  s   @rG   r}  r}  +  sW   H!&'78!LQ!#   
, !% $
 ,0: :
 c5j!D(  
F !HH988  	
  %* 
&* 3:: 	:
 : 
: 3  
	 r   r}  c                   P    \ rS rSr\S\S\4S j5       rS\S\4S jrS\	4S jr
Srg	)
URandomi  rm  r   c                 r    [        SS5       nUR                  U 5      sS S S 5        $ ! , (       d  f       g = f)Nz/dev/urandomrb)openread)rm  rS   s     rG   _urandomURandom._urandom  s%    .$'166$< (''s   (
6kc                 p    US:  d   e[        U5      n[        U R                  U5      5      nX2S-  U-
  -	  $ r  )r   r   r  )r   r  rm  rF   s       rG   ri  URandom.getrandbits  s;    AvvQ4==./AX\""r   c                 B    [        U R                  S5      5      S-	  S-  $ )N      g      <)r   r  r   s    rG   r-  URandom.random  s     t}}Q/0A5&AAr   r   N)r   r   r   r   staticmethodr  r   r  ri  rR   r-  r   r   r   rG   r  r    sE      s  u    #S #S #B Br   r  c                   6   ^  \ rS rSrS\S   4U 4S jjrSrU =r$ )URandomProvideri  r   r-   c                   > [         TU ]  U5        [        (       a  [        R                  " S[
        SS9  g [        5       U l        g )Nzx/dev/urandom is not available on windows. Falling back to standard PRNG generation (equivalent to backend="hypothesis").rB   )
stacklevel)r  r   r   warningswarnr   r  r  r  s     rG   r   URandomProvider.__init__  s8    (7MMQ!	 #9DLr   rx  )r   r   r   r   r   r   r   ry  rz  s   @rG   r  r    s    %x0@'A % %r   r  )gr  r   r  r   r  collections.abcr   r   r   	functoolsr   r-  r   r   typingr	   r
   r   r   r   r   r   r   sortedcontainersr   hypothesis.errorsr   hypothesis.internal.cacher   hypothesis.internal.compatr   r   %hypothesis.internal.conjecture.choicer   r   r   r   r   r   %hypothesis.internal.conjecture.floatsr   )hypothesis.internal.conjecture.junkdrawerr   $hypothesis.internal.conjecture.utilsr   r   r    r!   !hypothesis.internal.constants_astr"   r#   r$   hypothesis.internal.floatsr%   r&   r'   r(   r)    hypothesis.internal.intervalsetsr*   !hypothesis.internal.observabilityr+   r,   #hypothesis.internal.conjecture.datar-   r.   r/   r3   r   r  r6   r   r   r   r  r7   r8   r9   range	factorial_constants_integersextendallr<  r;  _constant_floats_constant_stringsr.  r   setr   r   r  r   r   r   ABCr5   r  r  r}  r  r  )rF   xs   00rG   <module>r     s*      
  $ = %  	 	 	 ' / . >  ? C  
  9 VB;CL;<	9 <$ \ PTC T#sT*=%>>>? 
 [%S/9:	9 :u%56>N8OOPY P4<TN)[01 B
 R=!=aQT=!Arl#lr1ul#$ #(2,/,Qt~~a,/	0    '('qU'(;N+O;NaE;N+OO   (;<(;1B(;< = 
B.A
BBB BB 	#& ++*1sQBw*+',( $::#9az~~#9:); .   %56%5%56 7

:)9
::: ::L b *+%<8
+'(	  [&
+K	  Us # #* #>i >B & &"i "a aHQ2* Q2l
 %*!H-HqqAvlH-

1A* AHBf B*%( %C" "#/ )+O<2 ,:6p .s<   .M2
M7(M<N0N
N/NN4N6N