Ë
    iKêj)º  ã                   óX  — U d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z,m-Z- d dl.m/Z/m0Z0m1Z1 d dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z?m@Z@mAZA erd dlBmCZC d dl.mDZD  ed«      ZEed   ZFeeGd<   dZH e@ eAd¬«       e?dd¬«      d¬ «      ZId!d"d#œZJeKeLeLeMd$   z  f   eGd%<   eNe#eNed&f   f   ZOeeGd'<   eNeNd(   eNd(   f   ZPeeGd)<    ed*«      ZQeeOePf   eGd+<    eRd,d-«      D � cg c]  } d| z  ‘Œ	 c}  eRd.d/«      D � cg c]  } d0| z  ‘Œ	 c} z    eRd1d2«      D � cg c]  }  ej¦                  | «      ‘Œ c} z   g d3¢z   ZTeTj«                  eTD � cg c]  } | d4z
  ‘Œ	 c} eTD � cg c]  } | d4z   ‘Œ	 c} z   «       eTj«                  eTD �cg c]  }| ‘Œ c}«        eVd5„ eTD «       «      sJ ‚d6d7d8d9d:d;d<d= e8d>«      ej®                  ej°                  d?d@dAdBdCdDgdED � cg c]  } dF|  z  ‘Œ
 c} z   dGD � cg c]  } ej®                  | z  ‘Œ c} z   ZYeYj«                  eYD �cg c]  }| ‘Œ c}«        eVdH„ eYD «       «      sJ ‚h dI£ZZ e/ eeT«       eeYe5¬J«       e«        eeZ«      ¬K«      Z[ e/ e«        ee5¬J«       e«        e«       ¬K«      a\ e]«       Z^e]e_   eGdL<   da`e_dz  eGdM<   dNe/fdO„ZaedP„ «       Zb G dQ„ dRe«      Zc G dS„ d$e jÈ                  «      Ze G dT„ dUee«      Zf eRdV«      D � cg c]
  } d4| z  d4z
  ‘Œ c} ZgdWegd <    G dX„ dYee«      Zh G dZ„ d[e«      Zi G d\„ d]ef«      Zjyc c} w c c} w c c} w c c} w c c} w c c}w c c} w c c} w c c}w c c} w )^é    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)ÚSamplerÚmany)Ú	ConstantsÚconstants_from_moduleÚis_local_module_file)ÚSIGNALING_NANÚclampÚfloat_to_intÚmake_float_clamperÚ	next_downÚnext_up)ÚIntervalSet)ÚInfoObservationTypeÚTestCaseObservation)ÚLogStudentTDistributionÚPiecewiseDistributionÚUniformDistribution)ÚConjectureData)Ú	ConstantTÚT©Ú	test_caseÚtest_functionÚ	LifetimeTl    d(	 é   )Ú
half_widthé   é   )Ú
scale_bitsÚdf)ÚinnerÚouterÚ
switchoverz;hypothesis.internal.conjecture.providers.HypothesisProviderz8hypothesis.internal.conjecture.providers.URandomProvider)Ú
hypothesiszhypothesis-urandomÚPrimitiveProviderÚAVAILABLE_PROVIDERS.Ú	CacheKeyT)r0   .ÚCacheValueTi   ÚCONSTANTS_CACHEé   éB   é   é   é
   é	   é   )i.Ê l   ./? l   *_ÂÛR l   :¥CáK" é   c              #   óT   K  — | ]   }d t        |«      cxk  xr ddz  k  nc –— Œ" y­w)iPÃ  r9   rF   N)Úabs)Ú.0Úns     úm/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/internal/conjecture/providers.pyú	<genexpr>rR   ¡   s%   è ø€ Ò
B¨ˆ6”S˜“VÖ$˜q "™u×$Ð$Ñ
Bùs   ‚&(ç      à?gš™™™™™ñ?g      ø?gffffffþ?gUUUUUUÕ?g    ÐcAgñhãˆµøä>g›c
   8ç        g6pðßÿÿïGg      @CgwJëÿï?g9b->  @gh_   €>g      °<)é   é   é•   é~   g       @)r9   rI   iè  i † c              #   ó<   K  — | ]  }t        |t        «      –— Œ y ­w©N)Ú
isinstanceÚfloat)rO   Úfs     rQ   rR   rR   »   s   è ø€ Ò
: AŒ:�aœ×Ñ
:ùs   ‚>;   õ   Èºõ   È¾õ   ðŸ�»õ   ðŸ˜�õ   à¸�à¸²õ   ðŸ‡ºðŸ‡¸õ   ðŸ‘�ðŸ�»õ   à¸� à¸³à¸�à¸³õ   Ã¦Å“Ã†Å’ï¬€Ê¤Ê¨ÃŸõ   à¤®à¤¨à¥€à¤· Ù…Ù†Ø´õ   a
bcÂ…defâ€¨gâ€©h
iõ   (â•¯Â°â–¡Â°ï¼‰â•¯ï¸µ â”»â”�â”»)õ   Ø§Ù„ÙƒÙ„ Ù�ÙŠ Ø§Ù„Ù…Ø¬Ù…Ùˆ Ø¹Ø©õ)   Ê‡Ç�É¯É� Ê‡á´‰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ú ,./;'[]\-=<>?:"{}|_+!@#$%^&*()`~Ú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)Úkey)ÚintegersÚfloatsÚbytesÚstringsÚ_seen_modulesÚ_sys_modules_lenÚreturnc                  ó\  — t         j                  dk(  rt        S t        t        «      } t        t         j                  «      x}t
        k7  r¨t        t         j                  j                  «       «      D �cg c]  }t        |«      t        vr|‘Œ }}t        «       }|D ]I  }t        |dd «      x}	 �t        |«      r|t        |«      z  }t        j                  t        |«      «       ŒK t        |z  a|at        t        «      | kD  rt        j                   j#                  «        t        S c c}w )NÚ
emscriptenÚ__file__)ÚsysÚplatformÚ_local_constantsÚlenÚmodulesrŸ   ÚlistÚvaluesÚidrž   r    Úgetattrr"   r!   ÚaddrD   ÚcacheÚclear)Úcount_constantsÚsys_modules_lenÚmoduleÚnew_modulesÚnew_constantsÚmodule_files         rQ   Ú_get_local_constantsr¶   E  s  € ô ‡|�|�|Ò#ô  ÐäÔ*Ó+€Oô" œsŸ{™{Ó+Ð+ˆÔ0@Ò@ô œsŸ{™{×1Ñ1Ó3Ó4ö
àÜ�&‹z¤Ñ.ò ð
ˆð 
ô "›ˆØ!ò 	*ˆFä& v¨z¸4Ó@Ð@�Øðä2°;Ô?ØÔ!6°vÓ!>Ñ>�Ü×Ñœb ›jÕ)ð	*ô 	˜MÑ)ÐØ*Ðô
 ÔÓ˜Ò.Ü×Ñ×#Ñ#Ô%äÐùò/
s   Á4D)c              #   óN   K  — 	 |t         | <   d –— t         | = y # t         | = w xY w­wrZ   )rA   )ÚnameÚprovider_clss     rQ   Úwith_register_backendrº     s*   è ø€ ð&Ø$0Ô˜DÑ!Ûä Ñ%øÔ Ñ%üs   ‚%„ ‘%™	"¢%c                   ó<   — e Zd ZU eed<   eed<   eeeef   z  ed<   y)Ú_BackendInfoMsgÚtypeÚtitleÚcontentN)Ú__name__Ú
__module__Ú__qualname__r*   Ú__annotations__ÚstrÚdictr
   © ó    rQ   r¼   r¼   ˆ  s    … Ø
ÓØƒJØ�4˜˜S˜‘>Ñ!Ô!rÇ   r¼   c                   óz  — e Zd ZU dZdZee   ed<   dZee	   ed<   dZ
ee	   ed<   ded   d	d
fd„Zej                  	 d0ded	e	fd„«       Zej                  	 	 d1d
ddœded
z  ded
z  deeef   d
z  ded	ef
d„«       Zej                  ej*                   ej*                  ddœdedede	ded	ef
d„«       Zej                  dedœdededed	efd„«       Zej                  defdeded	efd„«       Zd	efd „Zdd!œd"ed#e	d	efd$„Z d%e!e"d&f   d	d
fd'„Z#d	eee$f   fd(„Z%ded	e&e'   fd)„Z(d*e)d	d
fd+„Z*d,ed	d
fd-„Z+d.e	d	d
fd/„Z,y
)2r@   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|.
    r4   ÚlifetimeFÚavoid_realizationÚadd_observability_callbackÚconjecturedatar/   r    Nc                ó   — || _         y rZ   )Ú_cd)ÚselfrÌ   s     rQ   Ú__init__zPrimitiveProvider.__init__Ï  s	   € Ø!ˆ�rÇ   Úpc                 ó   — t         ‚)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     rQ   Údraw_booleanzPrimitiveProvider.draw_booleanÒ  s
   € ô& "Ð!rÇ   r   ©ÚweightsÚshrink_towardsÚ	min_valueÚ	max_valuerØ   rÙ   c                ó   — t         ‚)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        rQ   Údraw_integerzPrimitiveProvider.draw_integerç  s
   € ô6 "Ð!rÇ   T©rÚ   rÛ   Ú	allow_nanrß   Úsmallest_nonzero_magnitudec                ó   — t         ‚)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        rQ   Ú
draw_floatzPrimitiveProvider.draw_float  s
   € ô0 "Ð!rÇ   ©Úmin_sizeÚmax_sizeÚ	intervalsrä   rå   c                ó   — t         ‚)aB  
        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       rQ   Údraw_stringzPrimitiveProvider.draw_string  s
   € ô( "Ð!rÇ   c                 ó   — t         ‚)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      rQ   Ú
draw_byteszPrimitiveProvider.draw_bytes4  s
   € ô  "Ð!rÇ   c                 ó*   — t        j                  «       S )a»  
        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    rQ   Úper_test_case_context_managerz/PrimitiveProvider.per_test_case_context_managerF  s   € ô ×%Ñ%Ó'Ð'rÇ   )Úfor_failureÚvaluerð   c                ó   — |S )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 test case|.
        In this case, the backend should spend substantially more effort when
        attempting to realize the value, since it is important to avoid discarding
        failing test cases. 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      rQ   ÚrealizezPrimitiveProvider.realizeW  s	   € ð" ˆrÇ   Úchoices.c                  ó   — y)a„  
        Called when Hypothesis has 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.

        The choice sequence may not correspond to the draws made by the current
        test, for example if it comes from a stale corpus, so providers must
        tolerate arbitrary choices of any type, in any order.

        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     rQ   Úreplay_choicesz PrimitiveProvider.replay_choicesj  s   € ð rÇ   c                 ó   — i S )a  Called 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    rQ   Úobserve_test_casez#PrimitiveProvider.observe_test_casez  s	   € ð ˆ	rÇ   c             #   ó0   K  — |dv sJ ‚g E d{  –—†  y7 Œ­w)aN  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.
        r2   NrÆ   )rÏ   rÉ   s     rQ   Úobserve_information_messagesz.PrimitiveProvider.observe_information_messagesƒ  s   è ø€ ð Ð9Ñ9Ð9Ð9Ø�Šús   ‚Ž�Úobservationc                  ó   — y)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     rQ   Úon_observationz PrimitiveProvider.on_observation�  ó   � rÇ   Úlabelc                 ó   — y)aÌ	  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     rQ   Ú
span_startzPrimitiveProvider.span_start³  rþ   rÇ   Údiscardc                 ó   — y)aœ  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     rQ   Úspan_endzPrimitiveProvider.span_endí  rþ   rÇ   ©rS   ©NN)-rÀ   rÁ   rÂ   Ú__doc__rÉ   r   r5   rÃ   rÊ   ÚboolrË   r   rÐ   ÚabcÚabstractmethodr\   rÖ   ÚintrÅ   rÝ   ÚmathÚinfrâ   ÚCOLLECTION_DEFAULT_MAX_SIZEr)   rÄ   rè   rœ   rê   r   rï   r1   ró   Útupler   rö   r
   rø   r   r¼   rú   r+   rý   r  r  rÆ   rÇ   rQ   r@   r@   ‘  s“  … ñðP %4€Hˆh�yÑ!Ó3ð ).Ð�x ‘~Ó-ð 27Ð ¨¡Ó6ð" xÐ0@Ñ'Að "Èó "ð 	×Ñð ñ"àð"ð 
ò"ó ð"ð( 	×Ñð !%Ø $ð"ð
 ,0Øò"à˜‘:ð"ð ˜‘:ð"ð
 �c˜5�jÑ! DÑ(ð"ð ð"ð 
ò"ó ð"ð8 	×Ñð !ŸH™H˜9ØŸ8™8Øò"ð ð"ð ð	"ð
 ð"ð %*ð"ð 
ò"ó ð"ð2 	×Ñð
 Ø3ò"àð"ð ð	"ð
 ð"ð 
ò"ó ð"ð* 	×Ñð Ø3ñ"àð"ð ð"ð 
ò	"ó ð"ð"(Ð/Eó (ð" 8=ò ˜Qð °ð Àó ð& e¨G°S¨LÑ&9ð ¸dó ð  4¨¨S¨¡>ó ð
Ø$ð
à	�/Ñ	"ó
ð"Ð*=ð "À$ó "ðH8 ð 8¨4ó 8ðt	 ð 	¨Dô 	rÇ   c                   ór  ‡ — e Zd ZdZded   fˆ fd„Zed„ «       Zddœded	e	d
e
ded   fd„Z	 d$d
e
defd„Z	 	 d%dddœdedz  dedz  deee
f   dz  dedef
d„Zdedz  dedz  defd„Zej&                   ej&                  ddœde
de
dede
de
f
d„Zdedœdeded edefd!„Zdefded edefd"„Zde
fd#„Zˆ xZS )&ÚHypothesisProviderr3   rÌ   r/   c                ó‚   •— t         ‰| �  |«       | j                  €d | _        y | j                  j                  | _        y rZ   )ÚsuperrÐ   rÎ   Ú_random©rÏ   rÌ   Ú	__class__s     €rQ   rÐ   zHypothesisProvider.__init__ü  s0   ø€ Ü‰Ñ˜Ô(Ø#Ÿx™xÐ/�tˆ�°T·X±X×5EÑ5Eˆ�rÇ   c                 ó   — t        «       S rZ   )r¶   rî   s    rQ   r¦   z#HypothesisProvider._local_constants   s   € ô $Ó%Ð%rÇ   çš™™™™™©?©rÑ   Úchoice_typeÚconstraintsrÑ   r    r0   c                ó  ‡— | j                   €J ‚|dk7  sJ ‚| j                   j                  «       |kD  ry | j                  €J ‚|t        |‰«      f}|t        vr[t        ˆfd„t        j                  |«      D «       «      t        ˆfd„| j                  j                  |«      D «       «      ft        |<   t        |   \  }}|r|gng |r|gng z   }|sy | j                   j                  |«      }| j                   j                  |«      S )NÚbooleanc              3   ó:   •K  — | ]  }t        |‰«      r|–— Œ y ­wrZ   ©r   ©rO   Úchoicer  s     €rQ   rR   z:HypothesisProvider._maybe_draw_constant.<locals>.<genexpr>  ó#   øè ø€ ò àÜ'¨°Ô<ô ñùó   ƒc              3   ó:   •K  — | ]  }t        |‰«      r|–— Œ y ­wrZ   r  r   s     €rQ   rR   z:HypothesisProvider._maybe_draw_constant.<locals>.<genexpr>  r"  r#  )	r  Úrandomr¦   r   rD   r  ÚGLOBAL_CONSTANTSÚset_for_typer!  )	rÏ   r  r  rÑ   r™   Úglobal_constantsÚlocal_constantsÚconstants_listsÚ	constantss	     `      rQ   Ú_maybe_draw_constantz'HypothesisProvider._maybe_draw_constant  s   ø€ ð �|‰|Ð'Ð'Ð'Ø˜iÒ'Ð'Ð'ð �<‰<×ÑÓ  1Ò$Øð ×$Ñ$Ð0Ð0Ð0àÔ2°;ÀÓLÐMˆØ”oÑ%äó ä"2×"?Ñ"?ÀÓ"Lôó ô
 ó à"&×"7Ñ"7×"DÑ"DÀ[Ó"Qôó ð$ŒO˜CÑ ô -<¸CÑ,@Ñ)Ð˜/Ù1AÐ,Ñ-ÀrÙ!0ˆ_Ñ°bñ
ˆñ Øð —L‘L×'Ñ'¨Ó8ˆ	Ø�|‰|×"Ñ" 9Ó-Ð-rÇ   c                 óp   — | j                   €J ‚|dk  ry|dk\  ry| j                   j                  «       |k  S )Nr   FrL   T)r  r%  rÕ   s     rQ   rÖ   zHypothesisProvider.draw_boolean6  s@   € ð �|‰|Ð'Ð'Ð'à�Š6ØØ�Š6Øà�|‰|×"Ñ"Ó$ qÑ(Ð(rÇ   Nr   r×   rÚ   rÛ   rØ   rÙ   c                ó¨  — | j                   €J ‚| j                  d||||dœ«      x}	 �t        |t        «      sJ ‚|S |�ƒ|€J ‚|€J ‚t	        dt        |j                  «       «      z
  g|j                  «       ¢d¬«      }|j                  | j                   «      }|dk(  r| j                  ||«      S t        |«      |dz
     S | j                  ||«      S )NÚinteger)rÚ   rÛ   rØ   rÙ   rL   F)Úobserver   )
rÎ   r,  r[   r  r   Úsumrª   ÚsampleÚ_draw_integer_from_distributionr©   )rÏ   rÚ   rÛ   rØ   rÙ   ÚconstantÚsamplerÚidxs           rQ   rÝ   zHypothesisProvider.draw_integerC  s  € ð �x‰xÐ#Ð#Ð#à×1Ñ1Øà!*Ø!*Ø&Ø&4ñ	óð ˆHð ð
ô ˜h¬Ô,Ð,Ð,ØˆOàÐØÐ(Ð(Ð(ØÐ(Ð(Ð(ô Ø”S˜Ÿ™Ó)Ó*Ñ*Ð>¨W¯^©^Ó-=Ð>ÈôˆGð
 —.‘. §¡Ó*ˆCà�aŠxØ×;Ñ;¸IÀyÓQÐQä˜“=  q¡Ñ)Ð)à×3Ñ3°I¸yÓIÐIrÇ   c                 ó’  — | j                   €J ‚t        }|€|€ddz   }ddz  }n@|€!|€J ‚t        ddz  dt        |«      z  «       }n|€t        ddz  dt        |«      z  «      }d}d}d}	 |dz
  }|dz   }|j	                  |«      }|j	                  |«      }||z
  dk  rd}	 |rw|| j                   j                  «       ||z
  z  z   x}	d	v r)	 || j                   j                  «       ||z
  z  z   x}	d	v rŒ)t        |j                  |	«      «      }
t        ||
|«      S | j                   j                  ||«      S # t
        $ r d}Y Œ¢w xY w)
Nr9   é€   rT   g      ð?TrS   g‚vIhÂ%<=F>   r   rL   )r  ÚINTEGERS_DISTRIBUTIONÚmaxrN   ÚcdfÚOverflowErrorr%  ÚroundÚinverse_cdfr$   Úrandint)rÏ   rÚ   rÛ   ÚdistÚloÚhiÚsafe_boundsÚcdf_minÚcdf_maxrÑ   rP   s              rQ   r3  z2HypothesisProvider._draw_integer_from_distributiont  s‹  € ð �|‰|Ð'Ð'Ð'Ü$ˆð Ð Ð!2Ø˜S™&˜	ˆIØ˜3™‰IØÐØÐ(Ð(Ð(Ü˜Q ™V Q¬¨Y«Ñ%7Ó8Ð8‰IØÐÜ˜A˜s™F A¬¨I«Ñ$6Ó7ˆIàˆØˆØˆð	$Ø #‘oˆGØ #‘oˆGð —‘˜'Ó"ˆBØ—‘˜'Ó"ˆBð �B‰w˜ŠØ#‘áà˜TŸ\™\×0Ñ0Ó2°b¸2±gÑ>Ñ>Ð>�1À6ÑIØð ˜TŸ\™\×0Ñ0Ó2°b¸2±gÑ>Ñ>Ð>�1À6ÒIä�d×&Ñ& qÓ)Ó*ˆAô ˜ A yÓ1Ð1ð
 �|‰|×#Ñ# I¨yÓ9Ð9øôG ò 	 ØŠKð	 ús   Á,
D8 Ä8EÅETrÞ   rß   rà   c                óî  — | j                   €J ‚||||dœ}| j                  d|d¬«      x}	 �t        |t        «      sJ ‚|S ddt        j
                  t        j
                   t        j                  t        j                   t        t         |t        |«      |dz   |dz
  t        |«      |fD �cg c]  }t        ||«      r|‘Œ }}|r8| j                   j                  «       dk  r| j                   j                  |«      S t        ||||¬	«      }	| j                  «       }
|rt	        j                  |
«      r|
}n |	|
«      }t!        |«      t!        |
«      k7  rt	        j                  |
«      r|s|}
|
S c c}w )
N)rÚ   rÛ   rß   rà   r\   g333333Ã?r  rT   g       €rL   r  ©rà   rß   )r  r,  r[   r\   r  r  Únanr#   r(   r'   r   r%  r!  r&   Ú_draw_floatÚisnanr%   )rÏ   rÚ   rÛ   rß   rà   r  r4  r]   Úweird_floatsÚclamperÚresultÚclampeds               rQ   râ   zHypothesisProvider.draw_float¹  sƒ  € ð �|‰|Ð'Ð'Ð'ð #Ø"Ø"Ø*Dñ	)
ˆð ×1Ñ1°'¸;È$Ð1ÓOÐOˆHØðô ˜h¬Ô.Ð.Ð.ØˆOð ØÜ—‘Ü—‘�	Ü—‘Ü—‘�	ÜÜ�ØÜ˜	Ó"Ø˜A‘Ø˜A‘Ü˜)Ó$Øðö
àô     ;Ô/ò# ð
ˆð 
ñ* ˜DŸL™L×/Ñ/Ó1°DÒ8Ø—<‘<×&Ñ& |Ó4Ð4ä$ØØØ'AØô	
ˆð ×!Ñ!Ó#ˆÙœŸ™ FÔ+Ø‰Gá˜f“oˆGÜ˜Ó ¤L°Ó$8Ò8Ü�J‰J�vÔ¡9àˆFØˆùòQ
s   Â.E2rã   ræ   rä   rå   c                óä  — | j                   €J ‚| j                  €J ‚t        |«      dk(  ry| j                  d|||dœ«      x}	 �t	        |t
        «      sJ ‚|S t        t        |dz  |dz   «      d||z   z  «      }g }t        | j                   |||d¬	«      5 }|D ]¯  }t        |«      d
kD  rW| j                  d«      r)| j                  j                  d
t        |«      dz
  «      }	nE| j                  j                  dd«      }	n(| j                  j                  dt        |«      dz
  «      }	|j                  |j                  |	«      «       Œ± 	 d d d «       dj                  |«      S # 1 sw Y   ŒxY w)Nr   Ú Ústring)ræ   rä   rå   r9   rG   rS   F©rä   rå   Úaverage_sizer0  r6   gš™™™™™É?rL   éÿ   )rÎ   r  r§   r,  r[   rÄ   Úminr:  r   rÖ   r?  ÚappendÚchar_in_shrink_orderÚjoin)
rÏ   ræ   rä   rå   r4  rS  ÚcharsÚelementsÚ_Úis
             rQ   rè   zHypothesisProvider.draw_stringû  s‡  € ð �x‰xÐ#Ð#Ð#Ø�|‰|Ð'Ð'Ð'äˆy‹>˜QÒØð ×1Ñ1ØØ'°XÈ8ÑTóð ˆHð ðô ˜h¬Ô,Ð,Ð,ØˆOäÜ�˜1‘˜h¨™lÓ+Ø�8˜hÑ&Ñ'ó
ˆð
 ˆÜØ�H‰HØØØ%Øô
ð 	@ð Øò 	@�Ü�y“> CÒ'Ø×(Ñ(¨Ô-Ø ŸL™L×0Ñ0°´c¸)³nÀqÑ6HÓI™à ŸL™L×0Ñ0°°CÓ8™àŸ™×,Ñ,¨Q´°I³ÀÑ0BÓC�Aà—‘˜Y×;Ñ;¸AÓ>Õ?ñ	@÷	@ð$ �w‰w�u‹~Ð÷%	@ð 	@ús   ÂB5E&Å&E/c                 ó¾  — | j                   €J ‚| j                  €J ‚| j                  d||dœ«      x}	 �t        |t        «      sJ ‚|S t        «       }t        t        |dz  |dz   «      d||z   z  «      }t        | j                   |||d¬«      5 }|D ]   }|| j                  j                  d«      z  }Œ" 	 d d d «       t	        |«      S # 1 sw Y   t	        |«      S xY w)	Nrœ   rã   r9   rG   rS   FrR  rL   )
rÎ   r  r,  r[   rœ   Ú	bytearrayrU  r:  r   Ú	randbytes)rÏ   rä   rå   r4  ÚbufrS  rZ  r[  s           rQ   rê   zHypothesisProvider.draw_bytes+  s  € ð
 �x‰xÐ#Ð#Ð#Ø�|‰|Ð'Ð'Ð'ð ×1Ñ1Ø h¸HÑEóð ˆHð ð	ô
 ˜h¬Ô.Ð.Ð.ØˆOä‹kˆÜÜ�˜1‘˜h¨™lÓ+Ø�8˜hÑ&Ñ'ó
ˆô Ø�H‰HØØØ%Øô
ð 	1ð Øò 1�Ø�t—|‘|×-Ñ-¨aÓ0Ñ0‘ñ1÷	1ô �S‹zÐ÷	1ô �S‹zÐús   Â&C	Ã	Cc                 ó®   — | j                   €J ‚t        | j                   j                  d«      «      }| j                   j                  d«      rdnd}||z  S )Né@   rL   éÿÿÿÿ)r  r   Úgetrandbits)rÏ   r]   Úsigns      rQ   rI  zHypothesisProvider._draw_floatL  sL   € Ø�|‰|Ð'Ð'Ð'ä˜Ÿ™×1Ñ1°"Ó5Ó6ˆØ—L‘L×,Ñ,¨QÔ/‰q°RˆØ�a‰xˆrÇ   r  r  )rÀ   rÁ   rÂ   rÉ   r   rÐ   r   r¦   r   r   r\   r,  r  rÖ   r  rÅ   rÝ   r3  r  r  râ   r  r)   rÄ   rè   rœ   rê   rI  Ú__classcell__©r  s   @rQ   r  r  ù  sÑ  ø„ Ø€HðF xÐ0@Ñ'Aõ Fð ñ&ó ð&ð ò/.à ð/.ð (ð/.ð
 ð/.ð 
�+Ñ	ó/.ðf ñ)àð)ð 
ó)ð !%Ø $ð/Jð
 ,0Øò/Jà˜‘:ð/Jð ˜‘:ð/Jð
 �c˜5�jÑ! DÑ(ð/Jð ð/Jð 
ó/JðbC:Ø˜t™ðC:Ø03°d±
ðC:à	óC:ðP !ŸH™H˜9ØŸ8™8Øò@ð ð@ð ð	@ð
 ð@ð %*ð@ð 
ó@ðL Ø3ò.àð.ð ð	.ð
 ð.ð 
ó.ðd Ø3ñàðð ðð 
ó	ðB˜U÷ rÇ   r  é   rT  c                   ó"  ‡ — e Zd ZdZded   defˆ fd„Zd„ Z	 ddede	fd	„Z
	 	 dd
ddœded
z  ded
z  deeef   d
z  dedef
d„Zej                   ej                  ddœdedede	dedef
d„Zd„ Zdedœdedededefd„Zdefdededefd„Zˆ xZS ) ÚBytestringProviderr3   rÌ   r/   Ú
bytestringc               ó^   •— t         ‰| �  |«       || _        d| _        t	        «       | _        y )Nr   )r  rÐ   rk  Úindexr^  Údrawn)rÏ   rÌ   rk  r  s      €rQ   rÐ   zBytestringProvider.__init__]  s)   ø€ ô 	‰Ñ˜Ô(Ø$ˆŒØˆŒ
Ü“[ˆ�
rÇ   c                 ó®  — |dk(  ryt        |«      }| j                  |z   t        | j                  «      kD  r| j                  j                  «        t        | j                  | j                  | j                  |z    «      }| xj                  |z  c_        |dxx   t        |dz     z  cc<   t        |«      }| xj                  |z  c_	        t        |«      S ©Nr   rh  )r   rm  r§   rk  rÎ   Úmark_overrunr^  Ú
BYTE_MASKSrœ   rn  r   )rÏ   rP   Ún_bytesr`  s       rQ   Ú
_draw_bitszBytestringProvider._draw_bitse  s©   € Ø�Š6ØÜ Ó"ˆØ�:‰:˜Ñ¤# d§o¡oÓ"6Ò6Ø�H‰H×!Ñ!Ô#Ü˜Ÿ™¨¯
©
°T·Z±ZÀ'Ñ5IÐJÓKˆØ�
Š
�gÑ�
àˆA‹”*˜Q ™UÑ#Ñ#‹Ü�C‹jˆØ�
Š
�cÑ�
Ü˜cÓ"Ð"rÇ   rÑ   r    c                 ó¦   — |dk  ry|dk\  ryd}d|z  }t        dt        j                  |d|z
  z  «      |dz
  «      }| j                  |«      }||k\  S )Nr   FrL   Trh  r9   )r$   r  Úfloorrt  )rÏ   rÑ   ÚbitsÚsizeÚfalseyrP   s         rQ   rÖ   zBytestringProvider.draw_booleans  se   € ð �Š6ØØ�Š6Øð
 ˆØ�$‰wˆô �qœ$Ÿ*™* T¨Q°©U¡^Ó4°d¸Q±hÓ?ˆØ�O‰O˜DÓ!ˆØ�F‰{ÐrÇ   Nr   r×   rÚ   rÛ   rØ   rÙ   c                ó  — | j                   €J ‚|€|€ddz   }ddz  dz
  }n|€
|€J ‚|dz
  }n|€	|€J ‚|dz   }||k(  r|S ||z
  j                  «       }|| j                  |«      z   }||kD  r|| j                  |«      z   }||kD  rŒ|S )Nr9   é   rL   l            )rÎ   Ú
bit_lengthrt  )rÏ   rÚ   rÛ   rØ   rÙ   rw  rñ   s          rQ   rÝ   zBytestringProvider.draw_integer‡  sÏ   € ð �x‰xÐ#Ð#Ð#ð
 Ð Ð!2Ø˜S™&˜	ˆIØ˜3™ ™
‰IØÐØÐ(Ð(Ð(Ø! EÑ)‰IØÐØÐ(Ð(Ð(Ø! EÑ)ˆIà˜	Ò!ØÐà˜IÑ%×1Ñ1Ó3ˆØ˜DŸO™O¨DÓ1Ñ1ˆØ�iÒØ §¡°Ó 5Ñ5ˆEð �iÓàˆrÇ   TrÞ   rß   rà   c                ó†   — | j                  d«      }|dz	  rdnd}|t        |dz  «      z  }t        ||||¬«      } ||«      S )NéA   rb  rc  rL   l   ÿÿÿÿ rG  )rt  r   r&   )	rÏ   rÚ   rÛ   rß   rà   rP   re  r]   rL  s	            rQ   râ   zBytestringProvider.draw_float§  sU   € ð �O‰O˜BÓˆØ˜"’W‰r !ˆØ”<  ]Ñ 3Ó4Ñ4ˆÜ$ØØØ'AØô	
ˆñ �q‹zÐrÇ   c          	      ó  — |dk(  rg S t        t        |dz  |dz   «      d||z   z  «      }t        | j                  |||d¬«      5 }|D �cg c]  }| j	                  d|dz
  «      ‘Œ c}cd d d «       S c c}w # 1 sw Y   y xY w)Nr   r9   rG   rS   FrR  rL   )rU  r:  r   rÎ   rÝ   )rÏ   rä   rå   Úalphabet_sizerS  rZ  r[  s          rQ   Ú_draw_collectionz#BytestringProvider._draw_collectionº  sŸ   € Ø˜AÒàˆIÜÜ�˜1‘˜h¨™lÓ+Ø�8˜hÑ&Ñ'ó
ˆô Ø�H‰HØØØ%Øô
ð 	Oð ØEMÖNÀ�D×%Ñ% a¨¸Ñ):Õ;ÒN÷	Oñ 	Oùò O÷	Oð 	Oús   ÁA6Á	A1Á%A6Á1A6Á6A?rã   ræ   rä   rå   c                ór   ‡— | j                  ||t        ‰«      ¬«      }dj                  ˆfd„|D «       «      S )N©r€  rP  c              3   ó:   •K  — | ]  }t        ‰|   «      –— Œ y ­wrZ   )Úchr)rO   Úvræ   s     €rQ   rR   z1BytestringProvider.draw_string.<locals>.<genexpr>Ó  s   øè ø€ Ò9¨Q”s˜9 Q™<×(Ñ9ùr#  )r�  r§   rX  )rÏ   ræ   rä   rå   rª   s    `   rQ   rè   zBytestringProvider.draw_stringË  s5   ø€ ð ×&Ñ& x°ÌÈYËÐ&ÓXˆØ�w‰wÓ9°&Ô9Ó9Ð9rÇ   c                 ó@   — | j                  ||d¬«      }t        |«      S )Nr6   rƒ  )r�  rœ   )rÏ   rä   rå   rª   s       rQ   rê   zBytestringProvider.draw_bytesÕ  s%   € ð
 ×&Ñ& x°ÈÐ&ÓNˆÜ�V‹}ÐrÇ   r  r  )rÀ   rÁ   rÂ   rÉ   r   rœ   rÐ   rt  r\   r  rÖ   r  rÅ   rÝ   r  r  râ   r�  r  r)   rÄ   rè   rê   rf  rg  s   @rQ   rj  rj  Z  sS  ø„ Ø€Hð!Ø&Ð'7Ñ8ð!ØLQõ!ò#ð  ñàðð 
óð, !%Ø $ðð
 ,0Øòà˜‘:ðð ˜‘:ðð
 �c˜5�jÑ! DÑ(ðð ðð 
óðF !ŸH™H˜9ØŸ8™8Øòð ðð ð	ð
 ðð %*ðð 
óò&Oð* Ø3ò:àð:ð ð	:ð
 ð:ð 
ó:ð Ø3ñàðð ðð 
÷	rÇ   rj  c                   óB   — e Zd Zededefd„«       Zdedefd„Zdefd„Z	y)ÚURandomrx  r    c                 ól   — t        ddd¬«      5 }|j                  | «      cd d d «       S # 1 sw Y   y xY w)Nz/dev/urandomÚrbr   )Ú	buffering)ÚopenÚread)rx  r]   s     rQ   Ú_urandomzURandom._urandomâ  s2   € ô �. $°!Ô4ð 	 ¸Ø—6‘6˜$“<÷	 ÷ 	 ò 	 ús   �*ª3Úkc                 óp   — |dk\  sJ ‚t        |«      }t        | j                  |«      «      }||dz  |z
  z	  S rp  )r   r   r�  )rÏ   r�  rx  rP   s       rQ   rd  zURandom.getrandbitsì  s=   € Ø�AŠvˆˆvÜ˜QÓˆÜ˜4Ÿ=™=¨Ó.Ó/ˆà�T˜A‘X ‘\Ñ"Ð"rÇ   c                 óB   — t        | j                  d«      «      dz	  dz  S )Né   é   g       <)r   r�  rî   s    rQ   r%  zURandom.randomó  s    € ä˜tŸ}™}¨QÓ/Ó0°AÑ5¸&ÑAÐArÇ   N)
rÀ   rÁ   rÂ   Ústaticmethodr  rœ   r�  rd  r\   r%  rÆ   rÇ   rQ   r‰  r‰  Þ  sE   „ ð ð �sð  ˜uò  ó ð ð#˜Sð # Só #ðB˜ô BrÇ   r‰  c                   ó*   ‡ — e Zd Zded   fˆ fd„Zˆ xZS )ÚURandomProviderrÌ   r/   c                óˆ   •— t         ‰| �  |«       t        rt        j                  dt
        d¬«       y t        «       | _        y )Nzx/dev/urandom is not available on windows. Falling back to standard PRNG generation (equivalent to backend="hypothesis").rL   )Ú
stacklevel)r  rÐ   r   ÚwarningsÚwarnr   r‰  r  r  s     €rQ   rÐ   zURandomProvider.__init__  s6   ø€ Ü‰Ñ˜Ô(ÝÜ�M‰MðQä!Øö	ô #›9ˆD�LrÇ   )rÀ   rÁ   rÂ   r   rÐ   rf  rg  s   @rQ   r—  r—  ø  s   ø„ ð% xÐ0@Ñ'A÷ %ñ %rÇ   r—  )kr	  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   Ú!hypothesis.internal.constants_astr    r!   r"   Úhypothesis.internal.floatsr#   r$   r%   r&   r'   r(   Ú hypothesis.internal.intervalsetsr)   Ú!hypothesis.internal.observabilityr*   r+   Úhypothesis.internal.statisticsr,   r-   r.   Ú#hypothesis.internal.conjecture.datar/   r0   r1   r5   rÃ   r  r9  rA   rÅ   rÄ   r½   r  rB   rC   rD   ÚrangeÚ	factorialÚ_constants_integersÚextendÚallrU  r:  Ú_constant_floatsÚ_constant_stringsr&  r¦   Úsetrž   r  rŸ   r¶   rº   r¼   ÚABCr@   r  rr  rj  r‰  r—  )rP   Úxs   00rQ   ú<module>r·     s'  ðô Û Û Û 
Û Ý $ß =Ý %Ý Ý ÷	÷ 	ó 	õ 'å /Ý .ß >÷÷ õ ?Ý C÷÷ñ ÷
÷ õ 9ß V÷ñ ñ ÝBÝ;áˆCƒL€ØÐ;Ñ<€	ˆ9Ó <Ø$Ð ñ .Ù
¨Ô
-Ù
!¨R°AÔ
6ØôÐ ðd PØTñCÐ �T˜#˜s TÐ*=Ñ%>Ñ>Ð>Ñ?ó ð
 ˜[¨%°°S°©/Ð9Ñ:€	ˆ9Ó :Ø˜uÐ%5Ñ6¸Ð>NÑ8OÐOÑP€ˆYÓ PÙ4<¸T³N€�˜) [Ð0Ñ1Ó Bñ
 ˜˜R“=Ö!ˆa€QˆƒTÒ!á˜A˜r“lÖ#�€rˆ1ƒuÒ#ñ$ñ #(¨¨2£,Ö/˜Q€~€t‡~�~�aÕÒ/ñ	0òñð ð × Ñ Ø'Ö(ˆq€QˆƒUÒ(Ð;NÖ+O°a¨A°«EÒ+OÑOôð × Ñ Ð(;Ö< 1˜QšBÒ<Ô =ñ Ñ
BÐ.AÔ
BÔBÐ BÐBð 	ØØØØØØØÙ�‹Ø�‰Ø�‰ØØØØØØð#ð& +Ö+�1€sˆQˆBƒwÒ+ñ',ð( $:Ö:˜a€z‡~�~˜ÓÒ:ñ);ð ð. × Ñ Ð%5Ö6 ˜!šÒ6Ô 7Ù
Ñ
:Ð)9Ô
:Ô:Ð :Ð:òjÐ ñ^ ÙÐ*Ó+ÙÐ%¨<Ô8Ù
‹+ÙÐ'Ó(ô	Ð ñ Ù‹[Ù˜Ô&Ù
‹+Ù‹Kô	Ð ñ ›%€ˆs�3‰xÓ Ø#Ð �#˜‘*Ó #ð7˜ió 7ðt ñ&ó ð&ô"�iô "ôe˜Ÿ™ô eôPXÐ*ô Xñz
 %*¨!£HÖ-˜qˆq�A‰v˜‹lÒ-€
Ø€
ˆ1�ôAÐ*ô AôHBˆfô Bô4%Ð(õ %ùòU# "ùâ#ùâ/ùò )ùÒ+Oùâ<ùò2 ,ùÚ:ùâ6ùòx .s<   ÅM:Å$M?Å?NÆ1N	ÇN
Ç'
NÈ9NÉNÉ8
N"ÍN'