📄 librand-b7780f9c504e1c25.rmeta
/home/palash/git/iron_learn/target/debug/deps/librand-b7780f9c504e1c25.rmeta
Language: rmeta • Lines: 18178
rust
�m
#rustc 1.92.0 (ded5c06cf 2025-12-08)��١�	�T�6a��D�
-5080178c80bf7a93��uӰ]����d��!�-06039bcfba61f665��**�٭T��HО�9�-3e2e950d4bac10b5���	ⷄ�ۆ��p��-225863f279df55c4��	�t�#3Ҵη��Ǣ-d25e598578fbf080�rustc_std_workspace_core������Nm��gmY���-327ea4f353b4eb8c���y.:i���gy"1�r-94fdfaf0af91a65d�miniz_oxide�M�^�yTLm�L�d=B-5312b588e5cfab93�adler2��;~�7�ɴ,P?���-1e0b0d62df36c85c�	hashbrown�L�ϫ	2݆y��q-2ed6a8f06fc51a9d�rustc_std_workspace_alloc�a���p��H����6Z�-05b02707a5b2a256�
std_detect�	c�LN����=1�ʶӐ-5978f0713dd5442d�rustc_demangle�X�Fq��UՃ�>7z
��-43b2ff22c18e1125�cfg_if�֦<����ɐ¬�-6a40188dd7d989d2�	addr2line���,2�!xb�"6�!�	-11d54e777384a9e5�gimli��2��I.�ġ�����-35018e994bad7042�object��T �f��Y�
hQec-2dc10b344e05b569�memchr��xZT9�C��I�Mg�-09f2ab7e0d97e07a��~ݤ	����h���-932f22f820d1e5ec�	rand_core�l-_I-�SW�*[��#J-375cbdf48043d588�	getrandom�xV�/�z�V���2#-f23d5fb9f19d1030���v�
їG}�/x$YxD-e720413b8edafa0a��	+Y�D]�O.ʼ��
$�-965a3d5e7b2182f0�rand_chacha��B[�1�eSd�05q<s-84646240b9ad4eca�
ppv_lite86��U��A�ú�|����-95b7ce66e99c8f7e�zerocopy�H�N)Mf�]�6\�|��-adc212c1e963433c�zerocopy_derive�&�s=���Ar>��d-ffaa6423b0547ee3�
Deserialize�\��<�serde�<���
	Serialize�L��,�
%#%
�$�.�$�.tests�,�2�$�2F�
\��<��
<���F�
L���
F�,�7�$�7T__m512i�<��\�x86�,���T__m128i�<��\��,���T__m256i�<��%�#!#T�<��<�simd_support�t�ĹT	simd_impl�L�'�<�&�
t�&��&T�,�-�$�-�	LaneCount�L��<��
t����MaskElement�\��*�
(&(�SupportedLaneCount����U�
SQS��
\��<��
<�����
L���
��,�T�$�S��
L��<��
t����SimdElement�\��*�
(&(�����C�
A?A�	simd_wmul�L�&�<�&�
t�&Ĩ&�FloatSIMDScalarUtils���=�$�=��
L�P�<�P�
t�PĕP��$�&�$�&��
\��<��
<�����
L���
��,�D�$�C�Distribution�d��<��
t�ī�StandardUniform�|��.�
,*,��
L��<��
t���������
��
\��<��
<�����
L���
�uniform_simd_int_impl���U�<�U�
t�UĕU��,���$���
\�	�<�	�
<�	��	��
L�	��
��,�?	�$�?	��
\�'
�<�&
�
<�&
��&
��
L�'
��
��,Ȉ
�$��
��
\��<��
<�����
L���
��$�g�$�g��$�y�$�y��$�=
�$�=
��
\��<��
<�����
L���
�Rng�����32�$�ܬ���16�$�����:�xoshiro128plusplus���!��� �$� �� ��� �$�!�� �� :��
\��<��
<�����
L���
��,��$���$��$���$�6�$�6��$�P�$�P��$�x�$�x�eD��<��,�|�����
\��<��
<�����
L���
��$���$���$�:�$�9���distr�	bernoulli�



ALWAYS_TRUE�
SCALE�
�

�

from_ratio�p�
sample�R�distribution��!�!�#�!sample_iter�%�!�	'F�'S�*�*D�*�-�/�/�/�/�/�/	size_hint�6�6�6�:�:�:�:�:�?�SampleString�A
append_string�B�A
sample_string�D��FFFFFFFFFF	IntoFloat�P�Pinto_float_with_exponent�Ffloat_impls��TTTTTTTTTT	T
TTT
TTTTTg�h�Tj�k�Tm�n�Tp�q�Ts�t�Timpl_int_from_uint�T
impl_nzint�Tx�y�yT|�}�}�����������	������GAP_SIZE������������RANGE��GEN_ASCII_STR_CHARSET��������"������	�����������
tuple_impl��tuple_impls�������������	�������utils��WideningMultiply��RHS����wmul��	wmul_impl��wmul_impl_large��wmul_impl_usize��FloatSIMDUtils��all_lt��all_le��
all_finite��Mask��gt_mask��decrease_masked��UInt��
cast_from_int��FloatAsSIMD��splat��	IntAsSIMD���&���
BoolAsSIMD�������scalar_float_impl�
hidden_export�����������'a�����
�num_choices����'����������������	�	uniform�������������	�
��uniform_float_impl���int���������uniform_int_impl���Sampler���X���
�B1��B2��
new_inclusive���*��*�����
sample_single�����*��*�	�	�sample_single_inclusive�����*��*�	�	���������������	���*�CHAR_SURROGATE_START��CHAR_SURROGATE_LEN��char_to_comp_u32����*��
��*��*�	��*��*��*�	������������*���*��
��*��*��*��*��*�	����������	�
���
����������*��
��*��*��*��*��*���*�����
SampleUniform���*�UniformSampler���*��
��*��*��*��*��*������+����*��*��+����*��*���*�������*�����SampleBorrow��Borrowed��borrow����2��2���2��2�SampleRange�����+���is_empty������+����3�	����+����3�impl_sample_range_u�weighted���weighted_index�����������	�
�����*��
�I��update_weights���'��'�WeightedIndexIter���'��*��4�����*�����*�����*�'b��������*�weight���'��weights���'�total_weight����*�����	��Weight��ZERO��checked_add_assign��impl_weight_int��impl_weight_float�����	

�����������	�
���
rng�����������	�
����random����random_iter����random_range������random_bool��random_ratio��������������fill����5���	gen_range������gen_bool��	gen_ratio�����Fill���;���impl_fill_each����;���__unsafe��	impl_fill�����������;��rngs��	reseeding�����������	�
����Rsdr���
�reseed������>�next_u32��next_u64��
fill_bytes������>�������>�����>���Results��generate������>��
��>�	�reseed_and_generate������>�������>��mock�������
���>��?��?�small��������Seed���	from_seed��LEN��
seed_from_u64����>��?��?�xoshiro256plusplus���������B���B���	��B�PHI�����>��?��?�����������>��?��?���B���B�������������	�THREAD_RNG_RESEED_THRESHOLD����>�����9�	��>���>��?��?�����seq��coin_flipper���CoinFlipper�����9�chunk��chunk_remaining������
�random_ratio_one_over���;�flip_c_heads��increasing_uniform�����IncreasingUniform�����9�n���F��F�����
�
next_index��	�calculate_bound_u32��inner��RESULT2���	�����IteratorRandom��choose����
choose_stable����	�choose_multiple_fill����choose_multiple������5������������	�
��
IndexedRandom���	��3��I����J���choose_multiple_array�������	�choose_weighted������B���*����	�choose_multiple_weighted�������*�	�IndexedMutRandom��
choose_mut����choose_weighted_mut�������L��*����	�SliceRandom��shuffle����partial_shuffle��������	��IR������N����N�����'���������	�����'������	�index_�����������	�
���
���	��3���into_vec��	�	��	��IntoIter����������	�	�������������	�	����������	�	���������j���j��sample_weighted�������*�sample_efraimidis_spirakis�������*������Element������key��������������������	�sample_floyd����	�sample_inplace�����&�zero��one��as_usize��	��U��U��U�
��U��U��U�sample_rejection���*��������������sample_array��������	
thread_rng�	

�:���:���:�����:�;�;��
	Bernoulli��p_int�
��

��

��
BernoulliError��InvalidProbability��

	��


��


��
��Iter�����������9�phantom���������Map������������func���Z����������FOpenClosed01��
F��FF��F�>FOpen01��
F��FF��F�>F����F	����F
����F����F����F
����F����F����T����T����T	����T
����T����T����T
����T����T����T����T����T����T����T����T�����Alphanumeric��
�	���
�����>�
Alphabetic��
�
��������>�������A��������a��L�������a��L�j�������a��L�j��������	�a�	�L�	j�	��	E��	��	���	�a�	�L�	j�	��	�c�	��	��	���	�a�	�L�	j�	��	�c�	��	G��	��	���	�a�	�L�	j�	��	�c�	��	�d�	H��	��	���	�a�	�L�	j�	��	�c�	��	�d�	�d�	�5�	��	���	�a�	�L�	j�	��	�c�	��	�d�	�d�	�5�	J��	��	���	�a�	�L�	j�	��	�c�	��	�d�	�d�	�5�	�f�	K��	��	���	�a�	�L�	j�	��	�c�	��	�d�	�d�	�5�	�f�	�g�	L��	��	���	��	�$��	��	�$��	��	�$��	��	�$��	��	�$�	
LOWER_MASK���	��	�$�	�	�%�	�&�	�%�	�%�	�%�	�%�	�%�	�&�
��	�%�	�&�	�%�	�%�	�%�	�%�	�%�	�&��Choose��
�'�
��
��
range��
�(��
�'�
��
���
�'�
��
���
�'�
��Empty��

��
��	�
��
�UniformFloat��
�*�
low��
scale���
�*�
���
�*��
�*�
���
�*��
�*�
���
new_bounded���
�*��
�*�
�
�
�*�
�*�
�*�
�*�
�*�
��
��
�+�
��
�*�
�*�
�+�
��
�*�
�*��
�m�	�
�*�
�
�*�
�
�
�*�
�*�
�*�
�*�
�*�
��
��
�+�
��
�*�
�*�
�+�
��
�*�
�*�
UniformInt��
�*�
�l�
�j�
thresh���
�*�
���
�*��
�*�
���
�*��
�*�
���
�*�
���
�*�	�
�*�
�
�
�*�
�*�
�*�
�*�
�*�
��
��
�+�
��
�*�
�*�
�+�
��
�*�
�*�
��*���*��
��*��*��*��*��*������+����*��*��+����*��*���*�
��*��
��*��*��*��*��*������+����*��*��+����*��*���*���*��
��*��*��*��*��*������+����*��*��+����*��*���*���*��
��*��*��*��*��*������+����*��*��+����*��*���*���*��
��*��*��*��*��*������+����*��*��+����*��*���*���*��
��*��*��*��*��*������+����*��*��+����*��*���*���*��
��*��*��*��*��*������+����*��*��+����*��*���*���*��
��*��*��*��*��*������+����*��*��+����*��*���*���*��
��*��*��*��*��*������+����*��*��+����*��*�UniformUsize���l��j��p�mode64���������� ���!���UniformChar��sampler����������	���
���UniformDuration��mode��������
����������UniformDurationMode��Small��secs��nanos��Medium�����Large��max_secs��	max_nanos���������������������
EmptyRange��
�	NonFinite��
�
�������
�������Uniform��
�
�*�
���
�*�
���
�*��
�*�
���
�*��
�*�
���
�*�
���
�+�
��
�3��
�+�
��
�3��
�+�
��
�3��
�+�
��
�3��
�+�
��
�3��
�+�
��
�3��
�+�
��
�3��
�+�
��
�3��
�+�
��
�3��
�+�
��
�3� �
�+�
��
�3�!�
�+�
��
�3�
WeightedIndex��
�*�
cumulative_weights��
�7�
weight_distribution���
�*�
���
�*�
���
�*�	�
�*�
���
�7�
�7��
�7�
�7��
�7�
�7��
�7�
�7��
�7�
�7��
�7�
�7��
�7�
�7�	�
�7�
�7�
�
�7�
�7��
�7�
�7��
�7�
�7�
�
�7�
�7��
�7�
�7��
�7�
�7���
InvalidInput��
�

InvalidWeight��
�
InsufficientNonZero��
�
Overflow��
����������������
�����>���;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;�����;���	��;���ReseedingRng��
����>�������>���
ReseedingCore�����>��I�reseeder��	threshold��bytes_until_reseed��	����>���StepRng��v��a���������������SmallRng��
����������������Xoshiro256PlusPlus��������������������StdRng��
����������������	ThreadRng���9����THREAD_RNG_KEY��__rust_std_internal_init_fn��	��	�__RUST_STD_INTERNAL_VAL��	����SliceChooseIter���'�������_phantom��indices����'�������IndexVec��U32��
���U64��
���������IndexVecIter���'���
������
���
��'���IndexVecIntoIter����
������
��������888888#8#8*8-8-84858?8?8B8B8B8D8D8h8h8k8k8n8n8q8q8t8t8y8y8}8}8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8!AP���������������������X��X
խ[��E������_����������������Y��o9AF9����_���������������_�����!��!8���_���Z����9��Zjk��L�<�����J���M���_���Z����[��Z�S���t%�����!���������[��U>	w�����_����������\K�
�`���վ�_վ�վP!����~����_!��!վP!��!��!վ!��!��!��!��!��!��!��!��!��!��!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���	�	�	��	��	yk���9!���������������)
���!���������e���(z��_����`7�5)�����������_����`�TQ��3K���������!��A��!��!��A��A��!��!��!���a!�����L!������j!���������!�����������c!�������������!���������������d!�����������������d!��	�����������������5!��
������������������	�f!����������������������
�g!�������������������������h!����!��������������:�"������������������_�
�
�j�
���
�j��
�(�X��o�x��'��������!���'���_�
�
�
�kT`l�?��x�������_�����A�
�
�j�
���
�j��
�(�X��o�x�8��
�
�l�
�l��
�l�+���{��*����_��������������
�
�l�
�l��
�l�+���{����
�
�l�
�l��
�l�+���{���
�
�o�
�l��
�j��
�p�F�I5v�L������_�����������������
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L���
�
�o�
�l��
�j��
�p�F�I5v�L����}��l���j���p���}��oS�ݩ�����_�����������������������~��~���ӫ�M+����_�����������������A�
�
�
���
���l�
҆@s����~������r��_��r����_���������������_��������������������������΀������$�k����������������������ÓÓ�ē���xœ���x�|)f�nA������������Łt%��7�8����_���������������_�������
�
�
���
���l�
҆@s������_��������������!������������������,M�[�}������������������	exhausted�m��/������2���8�2��������������,M�[�}��������������������m��/���������������B�JT������������M&&������������B�JT������������M&&������������B�JT������������M&&������������B�JT������������M&&������������B�JT������������M&&������������B�JT������������M&&����_�
�
���
����
�7��
Ɔ�'�K��|�����������������_���5��4�����rj���8�*����J��!�����������������_�
��ۉ��������������q�!������������������������_���������_��������
�
�
�
�
�
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"������_������������C.c���>|���������_��Џ��I�������������D�౽�>V������������_��Ր������
ʖ��������������������|�����������Q�����B�_�����������������|���_���������
D]q������������������|�������������#��y��_��������������|�������������9������^<��_�����|�������5�
����O����_��ޔ�������������Ĉ�;�n�'����J���I����������������#�2��Z�_���H�����������?�?��?buf��:�?�	�:$x��Lk��B�B�BGlobal�����I������?�?��?���:�?�	�:$x��Lk����_������������?�:�����'�J������������?�:����8�I���������������`]�}�H���_���J���I������T�����T��Y5c��kz�����������������������������
�
�
�
�
�
�
�
�����������
�
�
�
����
���������������������������������
�
�
�
�
�
�
�
�����������
�
��
�������������������
�
�
�
�
�
�
�
�����������
�
�
�
����
�����������������������������
�
�
�
�����������
�
�
�
��
�������������
�
�
�
�����������
�
�
�
��
���������������
�
�����������
�
��
�������������
����
���
����
�*
:�������������g�j�m�p�s�������������������������������x�|��������������������	��	��	��	��	��	��	��	�������
��
��
/���������6�����������������������
��
�	�	�	�	�	�	����	�	�	�
�
�
�
�������������
�
�
�
�
�
��
��
��
��
��
��
��
��
��
��������
��
��
�������
���
���
���
���
���
���
���
���
���
���
���
���
�
�
�
�
�
�
�
�
�
�
�
�
�
��	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�������������������������������	��	�����������������������_!~����p�~�_b�!5�J��M"�P*A
�#��
��
�
�M�i���p�F�|`�*������I�H����D�
���"�$A�u64::MAX���d��?#/@?	$�M?o.y?�����@*��-�C_���

��
���&,{9DK{ _ }��� 

�� 
���&,9DK{ _ }�|�4���4��3	0��.�`��� 	#BC��*�������>_�<�'�'�'3	0.`d�'�'
 	#
B�'��& ��&�������<_���'e	>6C���(��'����,�'����7eb"ABCDEFGHIJKLMNOPQRSTUVWXYZ\
                abcdefghijklmnopqrstuvwxyz\
                0123456789"�<�-�-�-'	*(N��,��-�._�V�	V�XV��!@*�:	<@YY@V��V�$�	$�!���:_�4�	
���
)	��	%0xD800���	4�	���	�+	.�,�V��>	��	���-}���_������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0������
�
 ��(0�������
 ��(0.0�������
 ��(0.0��`
�`��`�`���b�P��b

@��b
�+��bEM��s���t����b�P��b

@��b��)��bCK��s���t����b�P��b

@��b��)��bCK��s���t�	���b�
P��b

@��b��)
��bC
K��s
i	q��u	����uox��u���t���v:��v'#�����62.}_����b�P��b

@��b��)��bCK��s���t����b�P��b

@��b��)��bCK��s���t����b�P��b

@��b��)��bCK��s���t�	���b�
P��b

@��b��)��bC
K��s
���t����b�
P��b

@��b��)��bC
K��s
iq��u�	���u	ox��u����u���t���w>��w��]YU���jfb�_��
 �,7>32���2

��0
� 5��F�,�%_��
�,7>4�RZn�|��4��
 �,7>32��

 �,7>32��

�,7>4���
|J�y7���$��%0x9e3779b97f4a7c15��
�,7>4��
�,7>4��
 �,7>32�L�$��@5	86@j��3���/_�����a
��a
��+�+��+��*�+�Z�*�+��*�
���-{�-�-
UnsafeCell��-��*��]���������������C.c��ChaCha12Core������v����OsRng��=nt�z�G������a�����������������;t�������������������;t��������������t�b������I�3#;Z:��`����tbZ �����_����a
��a
���28����a

�����2��	��a����a���!�a

���%��	��!aR	��$a����a���!$��������W_�\��\��,�� 	#BC�����"<�		<�

/
6��
�	C
5Y�
	k	<����

\�
 
d�� 	#B��J��Q
Y,�l�<��.?	V����<�,���
����������������]��WL��>11��'�q����������������;t��������~�����%��m��product�Ecurrent�C�C���D�
	,�
��3��$���L�&_�
��?T�?	�?A$�?4B9
�?���?�?��?T�?	$�?�B�?A9
$�? A�?��?'
�?��?A���l�?��((����T_��?
�,7>2��?
�,7>2�\�C	,�C�C�CA��C
,�C�C�C��B)���D�B�-_��B
�,7>2���A$

�
���
*��6���EL�� 

�����!�.��:��BlockRng��results�������@(�n�������
��%��1��9@��
��%��1��ChaCha12Rng���9o:ϳ8w�ls�	
��%��1��9@�

��%��1��9@�#
��'������������?�:����z�g�g�Z�h��g�h
end_or_len��g�h_marker��gFPR<?�����#
��'��3�g�g�Z�h��g�h���g�h���gFPR<?�����*
��%��1�<�<�Q�<���:�<�Z�:�<cap��:�<��:�<��:�<��:
�hpp�Y8�����*
��%��1�<�<�Q�<���:�<�Z�:�<���:�<��:�<��:�<��:
�hpp�Y8�����������������,����L�	CryptoRng�L��RngCore�<�|SeedableRng�\��	TryCryptoRng�d��

TryRngCore�T���9����<$��������d�!���|���������C��*' Utilities for random number generation�����JG Rand provides utilities to generate random numbers, to convert them to���KH useful types and distributions, and some randomness-related algorithms.����� # Quick Start���<� ```���DA // The prelude import enables methods we use below, specifically���PM // Rng::random, Rng::sample, SliceRandom::shuffle and IndexedRandom::choose.�̖ use rand::prelude::*;����� // Get an RNG:��� let mut rng = rand::rng();�����FC // Try printing a random unicode code point (probably a bad idea)!���1. println!("char: '{}'", rng.random::<char>());���85 // Try printing a random alphanumeric value instead!���KH println!("alpha: '{}'", rng.sample(rand::distr::Alphanumeric) as char);�����'$ // Generate and shuffle a sequence:���	0- let mut nums: Vec<i32> = (1..100).collect();���	 nums.shuffle(&mut rng);���	FC // And take a random pick (yes, we didn't need to shuffle first!):���
" let _ = nums.choose(&mut rng);�<�
���
�t�
 # The Book��
���
=: For the user guide and further documentation, please read���=: [The Rust Rand Book](https://rust-random.github.io/book).�����
8�l��79https://www.rust-lang.org/logos/rust-logo-128x128-blk.png���;$�8����7%https://www.rust-lang.org/favicon.ico���'$�8�l�
�
7#https://rust-random.github.io/rand/���
%�����
��8�$���8�$���8�,���8unused_variables���$�8�$���8warnings�D���
<������������K�L�K�J��A���:|��/�	��#�
����9���<������!������'��O	R	U	��L	��A	2	5	��F$	'			�	����l���<9 Generating random samples from probability distributions�����LI This module is the home of the [`Distribution`] trait and several of its���FC implementations. It is the workhorse behind some of the convenient���JG functionality of the [`Rng`] trait, e.g. [`Rng::random`] and of course��� [`Rng::sample`].�����IF Abstractly, a [probability distribution] describes the probability of���1. occurrence of each value in its sample space.�����NK More concretely, an implementation of `Distribution<T>` for type `X` is an���IF algorithm for choosing values from the sample space (a subset of `T`)���MJ according to the distribution `X` represents, using an external source of���:7 randomness (an RNG supplied to the `sample` function).�����FC A type `X` may implement `Distribution<T>` for multiple types `T`.���	IF Any type implementing [`Distribution`] is stateless (i.e. immutable),���
NK but it may have internal parameters set at construction time (for example,���
PM [`Uniform`] allows specification of its sample space as a range within `T`).�������'$ # The Standard Uniform distribution�����MJ The [`StandardUniform`] distribution is important to mention. This is the���LI distribution used by [`Rng::random`] and represents the "default" way to���MJ produce a random value for many different types, including most primitive���
LI types, tuples, arrays, and a few derived types. See the documentation of���)& [`StandardUniform`] for more details.�����XU Implementing [`Distribution<T>`] for [`StandardUniform`] for user types `T` makes it���MJ possible to generate type `T` with [`Rng::random`], and by extension also���! with the [`random`] function.�����+( ## Other standard uniform distributions�����JG [`Alphanumeric`] is a simple distribution to sample random letters and���TQ numbers of the `char` type; in contrast [`StandardUniform`] may sample any valid�\� `char`.�����\Y There's also an [`Alphabetic`] distribution which acts similarly to [`Alphanumeric`] but��� doesn't include digits.�����NK For floats (`f32`, `f64`), [`StandardUniform`] samples from `[0, 1)`. Also���HE provided are [`Open01`] (samples from `(0, 1)`) and [`OpenClosed01`]���NK (samples from `(0, 1]`). No option is provided to sample from `[0, 1]`; it���NK is suggested to use one of the above half-open ranges since the failure to���KH sample a value which would have a low chance of being sampled anyway is���  rarely an issue in practice.�����)& # Parameterized Uniform distributions�����KH The [`Uniform`] distribution provides uniform sampling over a specified���HE range on a subset of the types supported by the above distributions.�����52 Implementations support single-value-sampling via���41 [`Rng::random_range(Range)`](Rng::random_range).���NK Where a fixed (non-`const`) range will be sampled many times, it is likely���;8 faster to pre-construct a [`Distribution`] object using���B? [`Uniform::new`], [`Uniform::new_inclusive`] or `From<Range>`.���ԕ # Non-uniform sampling�����MJ Sampling a simple true/false outcome with a given probability has a name:���JG the [`Bernoulli`] distribution (this is used by [`Rng::random_bool`]).�����IF For weighted sampling of discrete values see the [`weighted`] module.�����JG This crate no longer includes other non-uniform distributions; instead���GD it is recommended that you use either [`rand_distr`] or [`statrs`].�������VS [probability distribution]: https://en.wikipedia.org/wiki/Probability_distribution���74 [`rand_distr`]: https://crates.io/crates/rand_distr���/, [`statrs`]: https://crates.io/crates/statrs��� [`random`]: crate::random���7����/ߙ,�
FT���������XL�"���Yt�"���d�"A��d�#!��Z$�#���Z�#���\4�#���\���[d�#���[���`T�#���`���`d�$���`����<�$�
���$���l� L� ���d�!
����
����[
ԘAT�1L� ��\�
��,�
��$���_��8���������^�^��^��[�^���[����e�S����������������������q�aXÅÅą��:�����
$�����)��t�����7��JG Construct a new `Bernoulli` with the given probability of success `p`.���|� # Precision�����HE For `p = 1.0`, the resulting distribution will always generate true.���IF For `p = 0.0`, the resulting distribution will always generate false.�����LI This method is accurate for any input `p` in the range `[0, 1]` which is���B? a multiple of 2<sup>-64</sup>. (Note that not all multiples of���?< 2<sup>-64</sup> in `[0, 1]` can be represented as a `f64`.)����������������������q�aX����
����%X��!B? Construct a new `Bernoulli` with the probability of success of���"DA `numerator`-in-`denominator`. I.e. `new_ratio(2, 3)` will return���"JG a `Bernoulli` with a 2-in-3 chance, or about 67%, of returning `true`.��#���#EB return `true`. If `numerator == 0` it will always return `false`.���$IF For `numerator > denominator` and `denominator == 0`, this returns an���$HE error. Otherwise, for `numerator == denominator`, samples are always���%85 true; for `numerator == 0` samples are always false.�T�%��
	numerator�L�&denominator�\�&��*��)63 Returns the probability (`p`) of the distribution.��*���*KH This value may differ slightly from the input due to loss of precision.��*�����*
$�*��+%��#��,64�,����������,�����,����,
��$�,�9�,+-�� d� !A�������4��F�	$��1 T�>��-T� ́��NK Types (distributions) that can be used to create a random instance of `T`.�����A> It is possible to sample from a distribution through both the���GD `Distribution` and [`Rng`] traits, via `distr.sample(&mut rng)` and���OL `rng.sample(distr)`. They also both offer the [`sample_iter`] method, which���<9 produces an iterator that samples from the distribution.�����NK All implementations are expected to be immutable; this has the significant���DA advantage of not needing to consider thread safety, and for most���IF distributions efficient state-less sampling algorithms are available.�����KH Implementations are typically expected to be portable with reproducible���	:7 results when used with a PRNG with fixed seed; see the���	NK [portability chapter](https://rust-random.github.io/book/portability.html)���
NK of The Rust Rand Book. In some cases this does not apply, e.g. the `usize`���C@ type requires different sampling on 32-bit and 64-bit machines.�����.+ [`sample_iter`]: Distribution::sample_iter�d�!�"!"����������!߹*߹0#%'#%'#'%24��4��LI Generate a random value of `T`, using `rng` as the source of randomness.�4���������!�$$�
!��ӻ��ӻ�
#���ӻ$�
�9�
35��b��
JG Create an iterator that generates random values of `T`, using `rng` as���
 the source of randomness.�����C@ Note that this function takes `self` by value. This works since���DA `Distribution<T>` is impl'd for `&D` where `D: Distribution<T>`,���IF however borrowing is not automatic hence `distr.sample_iter(...)` may���EB need to be replaced with `(&distr).sample_iter(...)` to borrow or���C@ `(&*distr).sample_iter(...)` to reborrow an existing reference.���l�
 # Example���<�����LI use rand::distr::{Distribution, Alphanumeric, Uniform, StandardUniform};����������� // Vec of 16 x f32:���OL let v: Vec<f32> = StandardUniform.sample_iter(&mut rng).take(16).collect();���t� // String:���  let s: String = Alphanumeric���     .sample_iter(&mut rng)���
     .take(7)�İ     .map(char::from)���     .collect();����� // Dice-rolling:���:7 let die_range = Uniform::new_inclusive(1, 6).unwrap();���74 let mut roll_die = die_range.sample_iter(&mut rng);���)& while roll_die.next().unwrap() != 6 {���,)     println!("Not a 6; rolling again!");�,� }�<���\��ӻ���Z����9��Zjk��L�<��ӻ��!�&&!��ӻ�������,�
%���ӻ$��9�<>��g��" Map sampled values to type `S`���l����<�����-* use rand::distr::{Distribution, Uniform};�����41 let die = Uniform::new_inclusive(1, 6).unwrap();���2/ let even_number = die.map(|num| num % 2 == 0);���1. while !even_number.sample(&mut rand::rng()) {���.+     println!("Still odd; rolling again!");�,���<���������Z����[��Z�S���t%�������!�(�)()!���������������T�����������,�
'�������$��[$�moik��;8��+�,,+��������!����|���-#-4602��34����������*�..�*���������
-8������$��9�8:��"R�0�1�2120����"�����"�����"!���|�"����"��345�J�J�J54egac]_L�"$�"//����#$�#��������������������;t�����/�#/
4�����$�#��%-L�%��������������������;t���/�%/
5�����$�&��&]�7�8�9879���&���&���&��|�'���'��(*-/24��)e�;�<�=�>=><;�������*����)���)���)��|�*����T�*���)��?#?QSVX[]��*34�*���������:�@@�*:�����*����*
?��������$�*�9�*;=��,��+! Sample or extend a [`String`]��+���+EB Helper methods to extend a [`String`] or sample a new [`String`].�d�,AA߹��,�A߹߹BDBDDB��.W��,)& Append `len` random chars to `string`��,���-JG Note: implementations may leave `string` with excess capacity. If this���-IF is undesirable, consider calling [`String::shrink_to_fit`] after this�\�. method.�l�.����������F�F��F��1"`��x9A�CC�.A�����.���.
B���$�.�9�.string�4�.�	�.=?��1K��//, Generate a [`String`] of `len` random chars��/���/LI Note: implementations may leave the string with excess capacity. If this���0I��\�0��l�1���������A�EE�1A���1���1
D���$�1�9�1�	�1/1L� ,� P�����&\��FH�%t��FI�&L��FJ�d�!FL��|��FM��FM���FN�mem���FO��=��������-|~jlT�LL�8������8�4�t�L�PP߹���P߹߹QRQR���Q<���R4��PP��<��HE Helper method to combine the fraction and a constant exponent into a�T� float.�����JG Only the least significant bits of `self` may be set, 23 for `f32` and��� 52 for `f64`.���JG The resulting value will fall in a range that depends on the exponent.���30 As an example the range with exponent 0 will be���41 [2<sup>0</sup>..2<sup>1</sup>), which is [1..2).�Ć���PP
R�$�exponent�D���\���0��!,���,�8�
$�&�8�
$�-�$�,�8��&�8�,�$�,�8uty��&�8�,�$�,�8f_scalar�D�&�8�,�$�,�8u_scalar�D�&�8��$�,�8
fraction_bits�l�&�8�$�$�,�8
exponent_bias�l�&�8�$�*���0-,���+���8����,�8�
$�-�8$�8�L�8
�,�8�����8!$�8���,�8��%�+���8�4���8�4�8�8�����8$�$�8��D�&�8��(�,�8����8�8
exponent_bits�l�&�,�8��D������,�8��l��8��D�8�,�8��D��,�8��l�%�,�8��'�8	from_bits�L���8$��,�8���'�8�&,���8��l�,���+���8����,�8�
$�-�8$�8�d��,�8���8
�8�|���$8�8�4��8��&�8���-�8�,�����8$�$�8�9�&��8�8��(�,�8����$B8�!8
float_size�T�!�!8���!'�!8�<�!'�!�!,�!8��D�!�!�!�!8�!,�!8��D�!
�!7��!%�!8�"8�L�"�",�"8��l�"�"7��"%�"8�"8�l,�"�"71.0��"�"�"�"�"�"7��"8�",�"8��D�"�"8�L�"8�",�"8��D�"%�"8�#8�,�#&�#,�#8���#�#8�9�# �#8�:4�#�#�#%�#8�#8�,�#�#8�,�#�#,�#8���#'�#8�&,�#�#�#8��T�#�#8�L�#%�#,�$8��$'�$8�&,�$�$�$8�l,�$
�$,�$8��$'�$8�&l�$�$�$8�,�$,�$�$�$+�$�$�$8��$�$�$,�$8�
$�$-�$8$�$8�d�$�$,�$8��$�$8
�%8�[d�%�%�+8�%8�4�%�%8��%&�%8��%�%-�%8�,�%�%�%�%�%8$�%$�%8�9�%&�%�%8�%8��%(�%,�%8��%�%�+B8�'8��T�'�'8���''�'8�<�''�'�',�'8��D�'�'�'�'8�',�'8��D�'
�'7��'%�'8�(8�L�(�(,�(8��l�(�(7��(%�(8�(8�l,�(�(7���(�(�(�(�(�(7��(8�(,�(8��D�(�(8�L�(8�(,�(8��D�(%�(8�)8�,�)&�),�)8���)�)8�9�) �)8�:4�)�)�)%�)8�)8�,�)�)8�,�)�),�)8���)'�)8�&,�)�)�)8��T�)�)8�L�)%�),�*8��*'�*8�&,�*�*�*8�l,�*
�*,�*8��*'�*8�&l�*�*�+8�,�*�*,�+8���+'�+8�&,�+�+�+7��+,�+�+�++�+�+�+8��+�+�+,�+8�
$�+-�+8$�+8�d�+�+,�+8��+�+8
�+8�\4�+�+�08�+8�4�+�,8��,&�,8��,�,-�,8�,�,�,�,�,�,8$�,$�,8�9�,&�,�,8�,8��,(�,,�,8��,�,�028�.8��T�.�.8���.'�.8�<�.'�.�.,�.8��D�.�.�.�.8�.,�.8��D�.
�.7��.%�.8�.8�,�.&�.,�.8���.�.8�9�. �.8�:4�.�.�.%�.8�/8fraction�D�/�/8�,�/�/,�/8���/'�/8�&,�/�/�/8��T�/�/,�/8��l�/%�/8��D�/ �/8���/�0�07��0�0,�08��0'�08�&,�0�0�07���0�0,�08��D�0'�08EPSILON�<�0�072.0��0\� <� �d�!TV��|��TW��TW���TX��<���TZ�<��T[NonZeroI128�\���T]
NonZeroI16�T���T^
NonZeroI32�T���T_
NonZeroI64�T���T`	NonZeroI8�L���TaNonZeroU128�\���Tb
NonZeroU16�T���Tc
NonZeroU32�T���Td
NonZeroU64�T���Te	NonZeroU8�L���Tf��-����T�}��&nq`c���MP58 ����������ln��)��h#h��44���������g�ii�g������
h��$��9�#%��	*��k#k��	54�	��������j�ll�	j���	���	
k��$�
�9�
#%��
*��n#n��54���������m�oo�m������
n��$��9�#%��*��q#q��54���������p�rr�p������
q��$��9�#%��+��t#t��
64�
��������s�uu�
s���
���

t��$�
�9�
#%��������	,�8��&�8��$�,�8���&�8��*���	8$�8�d��,�8���8
�8�|���+���8�4�8�8�4��8��&�8���-�8�,�����8$�$�8�9�&��8�8��(�,�8����8�9� �8�:4�'��,�8������8�,�8��%���T�����	,�8��&�8��$�,�8�
�&�8�$�*���	8$�8�d��,�8���8
�8�|���8�8�4��8��&�8���-�8�,�����8$�$�8�9�&��8�8��(�,�8����8$���	8�8�8�$���8nz���,�8�
���8�9� �8�:4�����8,�8Ȟ�%�%���.��y#y��94�����������x�zz�x������
y��$��9�#%��yy��.��}#}��94�����������|�~~� |��� ��� 
}��$� �9� #%�}}L� ,� �����4��F���,��#���$��-���D�����������d�A����d�!����|����������<��
������������\��T�ۜ�������6����Z\T�I��+���#���64���������������������
���$��9�$&��D����"%���B���"Ql�"�����������������"����"���"
���$�"�9�"��#�	�#46��&&���#���&44�&�������������&����&���&
���$�&�9�&$&��&,�&���'"��'�����,$���#���,44�,�������������,����,���,
���$�,�9�,$&|�,,�,���."���B���.Vl�.�����������������/����/���/
���$�/�9�/��4�/�	�/57�1�<closure_kind>��<closure_signature>��<upvars>���������2 ���B���2Vl�2�����������������3����2���2
���$�3�9�3��4�3�	�357��6+���#���664�6�������������7����6���6
���$�7�9�7$&��GT�G�G�L�G�G,�G�G�G,�G8tyvar�,�G&�G8�,�G
�G*�G�G�L8$�G�G,�G�G�G,�G8в,�G$�G
�G�G8�d�G�G�G�G,�G�G�G,�G8в,�G$�G
�G�G8
�G8�|�H8$,�H,�H�H�H8�|�H&�H8�d�H�H,�H8в,�H�H$�H
�H�H�L+�H�H�I8�4�H8�I8�4�I�I8��I&�I8��I�I-�I8�,�I�I�I�I�I8$�I$�I8�9�I&�I�I8�I8��I(�I�I�I,�I�I�I,�I8в,�I$�I
�I�I�L8�I8��I�I�I�K,�I�I�K
8�9�K �K8�:4�K'�K�K,�K8в,�K�K�K�K$�K
�K%�K8�L8_rng�$�L�L8�9�L%�L8��L��M\�M�M�O�M�M,�M�M�M,�M8в,�M&�M8�,�M
�M*�M�M�N8�#\�M	�N�N�N�N�N,�N�N�N,�N8в,�N
�N%�N�N�N�N�N,�N�N�N,�N8prefix�4�N&�N8�,�N
�N,�N8head�$�N&�N8�,�N,�N�N�N,�N8tail�$�N&�N8�,�N
�N*�N�N�O8�#T�N	�N�N�N,�N�N�N,�N8λ4�N
�N8�#\�O	�O�O�O�O�O,�O�O�O,�O8λ4�O
�O,�O8��$�O,�O�O�O,�O8��$�O
�O%�O�O�O�O�O,�O�O�O,�O8λ4�O&�O8�,�O
�O*�O�O�O8�#T�O	�O�O�O,�O�O�O,�O8λ4�O
�O%�O��Pl�����������P�t�P!����|�Q���#�352�P��Q84�Q������ӻ�������Q����Q���Q
����ӻ$�Q�9�Q.0�Q����������������ӻ��ӻ��Ra������R��|�R���#���S=4�S���������������S����S���S
�����$�S�9�S(*L� ,� �������-����$���߹��n���$T��߹,߹2����������d����Q��\�4�����&$��������
����$�x����L�����,�8��&�8��$�,�8wide�$�&�8��$�,�8shift�,�&�8�$�*���8$�8�$��8
�,�8����8!$�8�4����,�8��$�,�8��%�+���8�4���8�4�8�8�$$���8$�$�8���&�,�8��(�8$�'�8�4���8�8tmp�����8$�8�,�8��$�
���8���8�,�8��$�%���	��8����,�8��,�8�,�8��$�8���8�,�8��%���,�����	,�8��&�8�,�$�,�8��$�&�8��$��$�,�8��,�&�8�$�*���,���8$�8�$��8
�,�	8��	�	�8!$�	8�4�	�	�	�	,�	8��	$�	,�	8��	%�	+�	�	�	8�4�	�	�	8�4�	8�	8�$$�	�	�	8$�	$�	8���	&�	,�	8��	(�	8$�	'�
8�4�
�
�48�8y��&�,�8��$��8$� �8cast�$���%�8�8���&�,�8��$��8��� �8��$���%�8�8����8���
�8���%�8�
8hi��
&�
,�
8��
�
�
�
8���
�
8Simd�$�
'�
8�&,�
�
�
,�
8��,�
 �
8��$�
�
�
%�
8�
8lo��
&�
,�
8��
�
8���
 �
8��$�
�
�
%�
�
�8���
$�
8���
�%���|���!��	,�8��&�8��$�,�8half�$�&�8�$�*���8$�8�$��8
�,�8����8!$�8�4����,�8��$�,�8��%�+���8�4���8�4�8�8�$$���8$�$�8b��&�,�8��(�8$�'�8�4���a8,�8�iT�&�,�8���	�7���,�8��$�%�8�8�8�l����8$��8�iT� �8�d���8����8�iT�%�8�8�8t���8�l��,�8��$�%�8�l��8�iT�%�8������8$��,�8��$� �8�d���8����8�iT�%�8�l����8����8�iT��,�8��$�%�8�8�8high�$��8����,�8��$�%�8����8�l��,�8��$�%�8�l��8�iT�%�8������8����,�8��$� �8�d���8$��8�iT�%�8�l����8����8�iT��,�8��$�%�8��$��8����,�8��$�%�8��$����8$��,�8��$� �8�d���8����,�8��$�%���8��$�$�8�l�%���
��,���,�8��&�8��$��,�8scalar�4�&�8��$�,�8��$�&�8�$�*���!,���!8$�8�$��8
�,�8����!8!$�8�4����,�8��$�,�8��%�+���8�4���8�4�8�8�$$���8$�$�8���&�,�8��(�8$�'�8�4���!a8�8
lower_mask�T���,�8���'�8�&,���	�7���,�8��$�%�8�8��$���,�8���'�8�&,���,�8��$�%�8�8�8�l����8$��8��T�
���8����8��T�%�8�8�8����8�l��8��$�%�8�l��8��T�%�8������8$��8��$�
���8����8��T�%�8�l����8����8��T��8��$�%�8�8�8��$��8����8��$�%�8����8�l��8��$�%�8�l��8��T�%�8������8����8��$�
���8$��8��T�%�8�l� � � � 8��� � 8��T� � 8��$� %� 8��$� � 8��� � 8��$� %� 8��$� � � � 8$� � 8��$� 
� �!�!8���!�!8��$�!%�!�!�!8��$�!$�!8�l�!�!%�!�"|�"�"�$�"�",�"8��"&�"8��"*�"�"�$8$�"8�$��"8
�"8�,�"�"�$8!$�"8�4�"�"�"�#8�,�"$�"8�,�"%�#+�#�#�#8�4�#�#�#8�4�#8�#8�$$�#�#�#8$�#$�#8���#&�#8�,�#(�#8$�#'�#8�4�#�#�$	8�#�#�#8��$�#$�#8�l�#�#�#�$8$�#8�$,�$8��$ �$8�$$�$�$�$8���$8�$,�$8��$%�$�$�$8��$�$8�$8�,�$$�$8�l�$8�$8�,�$%�$��5t�5��߹��5��߹߹ ��������������������T�9������T�=����������8%4�8����
��$�8�,�8��9%4�9����
��$�9�,�9�9T�9���
��$�9L�9$�9����9,<�9������
��$�9�,�9��;3|�;������
��$�;mask�$�;L�=$�=����=(l�=�����
����=��?#\�?����,�?����������@,�@����
����4�@��A!L�A����,�A����������A,�A����
����4�A��A��B��B"T�B����,�B����������B�B���
��$�B��B�����C�C��
�$�C��C��C�C�O�C�D	,�C8��C&�C8�,�C$�D,�D8���D&�D8�,�D*�D�D�O8$�D8�%t�D8
�D,�D8��D�D�K=8!$�D8�%$�D�D8�$�D%�D8!$�D8�&$�D�D,�D8���D%�D+�E�E�E8�4�E�E�E8�4�E8�E8�%4�E�E�E8$�E$�E8�,�E&�E8$�E(�E8�$�E�E�E8$�E�E8�,�E+�F�F�F8�4�F�F�F8�4�F8�F8�%4�F�F�F8$�F$�F8�,�F&�F8$�F(�F8�$�F�F�F8$�F�F8�,�F+�G�G�G8�4�G�G�G8�4�G8�G8�%T�G�G�G8$�G(�G8�$�G�G�G8$�G �G8	is_finite�L�G�G�G+�G�G�H8�4�G�H�H8�4�H8�H8�%<�H�H�H8$�H$�H8�,�H&�H8$�H(�H8$�H'�H8�%$�H�H�H8$�H�H8�,�H+�H�H�I8�4�H�I�I8�4�I8�I8�%|�I�I�I8$�I$�I8��$�I&�I8$�I'�I8�%$�I(�I8$�I�I�J8debug_assert�d�I	�I�I�J8��$�I$�I7At least one lane must be set���I%�J�J,�J8��J�J'�J8��L�J�J�J8$�J �J8to_bits�<�J�J�J�J7��J+�J�J�J8�4�J8�J8�&l�J�K�K8��K&�K8$�K'�K8�&$�K(�K8$�K�K�K8��K8�K,�K8��K+�K�K�K8��K�K�K8�$�K8$�K8���K8
�L,�L8��L�L�O8!$�L8Scalar�4�L�L,�L8��L%�L+�L�L�L8�4�L8�L8replace�<�L�L�M8$�L$�L8�,�L&�L8�,�L$�L8	new_value�L�L&�M8$�M'�M8ۑ4�M(�M8$�M�M�M8debug_assert_eq�|�M	�M�M�M8�,�M$�M7��M%�M8��L�M+�M�M�N8�4�N8�N8extract_lane�d�N�N�N8$�N$�N8�,�N&�N8�,�N(�N8$�N'�N8ۑ4�N�N�O8ߓ|�N	�N�N�N8�,�N$�N7��N%�N8$�O8$�O8�&\�O8
�O,�O8��O�O�O%�O�� �� � � 8�4� t� l� �L�!P���!l�!�� Distributions over slices�,�!�
�
�
NonZeroUsize�d������0t�����}d������d�!����4��F����r��5ceRT��A��/���'��������������1��JG Create a new `Choose` instance which samples uniformly from the slice.�����2/ Returns error [`Empty`] if the slice is empty.���'
����������������������q�aX������
��'���,���)��52 Returns the count of choices in this distribution�\������	�	�	��	��	yk���9���
��'��$���1�'����������#����>4�������ӻ�������������T�
��'��ӻ$��9�.0��!����_���D���������^�^��^��[�^���[����e�S�������
�$����� ����-8�����B���]l������������������������T�
�8��$��9���4��	�:<|������������������,�!���������������|�!��C
@ A distribution uniformly sampling numbers within a given range.��
���N
K [`Uniform`] is the standard distribution to sample uniformly from a range;���X
U e.g. `Uniform::new_inclusive(1, 6).unwrap()` can sample integers from 1 to 6, like a���H
E standard die. [`Rng::random_range`] is implemented over [`Uniform`].��
���
 # Example usage��
�<�
����
 use rand::Rng;��
 use rand::distr::Uniform;��
���
����2
/ let side = Uniform::new(-10.0, 10.0).unwrap();��
���%
" // sample between 1 and 10 points���*
' for _ in 0..rng.random_range(1..=10) {���O
L     // sample a point from the square with sides -10 - 10 in two dimensions���:
7     let (x, y) = (rng.sample(side), rng.sample(side));���(
%     println!("Point: {}, {}", x, y);�,�	
��<�	
���	
���	2
/ # Extending `Uniform` to support a custom type��	
���	K
H To extend [`Uniform`] to support your own types, write a back-end which���
Q
N implements the [`UniformSampler`] trait, then implement the [`SampleUniform`]���
L
I helper trait to "register" your back-end. See the `MyF32` example below.��
���P
M At a minimum, the back-end needs to store any parameters needed for sampling���N
K (e.g. the target range) and implement `new`, `new_inclusive` and `sample`.���O
L Those methods should include an assertion to check the range is valid (i.e.���
C
@ `low < high`). The example below merely wraps another back-end.��
���
M
J The `new`, `new_inclusive`, `sample_single` and `sample_single_inclusive`���
 functions use arguments of���G
D type `SampleBorrow<X>` to support passing in values by reference or���I
F by value. In the implementation of these functions, you can choose to���T
Q simply use the reference returned by [`SampleBorrow::borrow`], or you can choose���F
C to copy or clone the value, whatever is appropriate for your type.��
�<�
��̜
����6
3 use rand::distr::uniform::{Uniform, SampleUniform,���?
<         UniformSampler, UniformFloat, SampleBorrow, Error};��
���
 struct MyF32(f32);��
���!
 #[derive(Clone, Copy, Debug)]���+
( struct UniformMyF32(UniformFloat<f32>);��
���*
' impl UniformSampler for UniformMyF32 {���
     type X = MyF32;��
���@
=     fn new<B1, B2>(low: B1, high: B2) -> Result<Self, Error>���4
1         where B1: SampleBorrow<Self::X> + Sized,���3
0               B2: SampleBorrow<Self::X> + Sized�L�
     {���W
T         UniformFloat::<f32>::new(low.borrow().0, high.borrow().0).map(UniformMyF32)�L�
     }���J
G     fn new_inclusive<B1, B2>(low: B1, high: B2) -> Result<Self, Error>���4
����3
߹L�
����a
^         UniformFloat::<f32>::new_inclusive(low.borrow().0, high.borrow().0).map(UniformMyF32)�L�
����C
@     fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Self::X {���%
"         MyF32(self.0.sample(rng))�L�
��,�
���
���"
 impl SampleUniform for MyF32 {���$
!     type Sampler = UniformMyF32;�,�
���
���7
4 let (low, high) = (MyF32(17.0f32), MyF32(22.0f32));���3
0 let uniform = Uniform::new(low, high).unwrap();���-
* let x = uniform.sample(&mut rand::rng());�<�
���
���;
8 [`SampleUniform`]: crate::distr::uniform::SampleUniform���=
: [`UniformSampler`]: crate::distr::uniform::UniformSampler���5
2 [`UniformInt`]: crate::distr::uniform::UniformInt���9
6 [`UniformFloat`]: crate::distr::uniform::UniformFloat���?
< [`UniformDuration`]: crate::distr::uniform::UniformDuration���I
F [`SampleBorrow::borrow`]: crate::distr::uniform::SampleBorrow::borrow�<�!���������
�
�ld�
�
��oT�
�
��}d�
���~\� 
���~|� 
���� 
�[���,� 
�����t� 
�����<� 
������� 
�����d�!
!�����!
������<�!
|��L�
,�
��
�,�����2d�����0l�����0t�����L�P���&T�����&\�����%t�����&L������������;������������I��y{hjWYT�J������<��,���,�8�
$�&�8�
$�-�$�,�8��&�8��$�,�8���&�8�,�$�,�8��D�&�8�,�$�,�8��D�&�8�,�$�,�8bits_to_discard�|�&�8�$�*���<,���+���8����,�8�
$�-�8$�8�ld��,�8�����<@ Construct, reducing `scale` as required to ensure that rounding���C<, can never yield values greater than `high`.���/<��<@ Note: though it may be tempting to use a variant of this method���C<> to ensure that samples from `[low, high)` are always strictly���A<7 less than `high`, this approach may be very slow where���:<0 `scale.abs()` is much smaller than `high.abs()`���3</ (example: `low=0.99999999997819644, high=1.`).���28�8�m\���8�l�&�,�8��$�8��$�&�,�8��$�8�8�l,�&�,�8��(�8$���8�8max_rand�D���,�8���'�8�&,���	7���8�,�8��D��,�8��D�'�8܊<�%�8$���8�8��$����8�l,�
�8��D��8�l� �8�%<���8��$�%�8�	�8��$� �8������8,�%�8�l,��8�l,� �8�%|���8��$�%�8��d�	���
�,�8���'�8�&,���70.0�� �8�%4���8�l,�%�8�ld���8�l�$�8�l,�,���+���8����,�8�
$�-�8$�8�0l�8
�,�8����	8!$�8�*<��8�ld��,�8���%�,���+���8����,�8�
$�-�8$�8�0t�8
�8�ld��,�8�����<�8!$�8�*��,�8��%�8�8�
��8�*�$�8�*����8low_b�,�&�8�*�$�8high_b�4�&�8�*�(�8�4��8$�$�8�,��8$,�8�*�&�8�2d��8$�'�8�*���8�,�$�8�*�&�8�2d��8$�'�8�*���8�,�$���!,8�8�l��
�8��,� �8�24���%�8�8��$��
�8��4� �8�24���%�+���8����8���8�	���8�l� �8�%T����	���8��$� �8�%T�����84�8����8�,�'�8ŁL�%�8�	���8�l� �8�%4���8��$���84�8����8�,�'�8��T�%�8� 8�l,� � 8��$� � 8�l� %� 8� 	� � � 8�l,�  � 8�%T� � � � �!84� 8�� � � 8�,� '� 8ŁL� %� 8��!�!�!8$�!'�!8�m\�!�!�!8�l�!$�!8��$�!$�!8�l,�!8�!8�*l�!�!8�*�!$�!8�*�!�!�!�"8��,�!&�!8�*�!$�!8��4�!&�"8�*�"(�"8�4�"�"8$�"$�"8�,�"�"8$,�"8�*�"&�"8�2d�"�"8$�"'�"8�*�"�"�"8�,�"$�"8�*�"&�"8�2d�"�#8$�#'�#8�*�#�#�#8�,�#$�#�#�(=8�#8�l�#�#
�#8��,�# �#8�24�#�#�#%�#8�#8��$�#�#
�#8��4�# �#8�24�#�#�#%�#+�$�$�$8��$�$�$8���$8�$	�$�$�$8�l�$ �$8�%T�$�$�$�$	�$�$�$8��$�$ �$8�%T�$�$�$�$�%84�$8��%�%�%8�,�%'�%8ŁL�%%�%8�%	�%8�l�% �%8�%4�%�%�%8��$�%�%�&84�%8��%�%�&8�,�%'�%8��T�%%�&8�&8��D�&�&�&,�&8��&�&'�&8�&,�&�&�&	7���&8�&,�&8��D�&�&,�&8��D�&'�&8܊<�&%�&8�&8�l,�'�'�'�'8��$�'�'8�l�'�'8��D�'%�'8�'	�'8�l,�' �'8�%T�'�'�'�'�(84�'8��'�'�'8�,�''�'8ŁL�'%�'8��(�(�(8$�('�(8�m\�(�(�(8�l�($�(8��$�($�(8�l,�(8�(8�4�(�(8��(&�(8��(�(-�(8�,�(�(�(�)�)8$�)$�)8�9�)&�)�)8�)8��)(�)8$�)'�)8�*�)�)�/8�)8value1_2�D�)�)�)�*8�9�) �)8�:4�)'�*�*,�*8���*�*�*�*�*,�*8���*'�*8�&,�*�*�*,�*8��|�* �*8�İ*�*�*7��*%�*8�+8value0_1�D�+�+8��D�+�+�+,�+8��+�+'�+8�&,�+�+�+7���+%�+8��D�/
�/8$�/ �/8�l,�/�/8$�/ �/8�l�/+�/�/�/8�4�/8�/8�+l�/�/8��/&�/8��/�/-�/8�,�/$�/8�*�/$�/8�*�/�/�/�0
8��,�/&�08�*�0$�08��4�0&�08�*�0$�08�9�0&�0�08�08��0(�08�4�0�08$�0'�08�*�0$�08�,�0�08$,�08�*�0&�08�2d�0�08$�0'�08�*�0�0�08�,�0$�18�*�1&�18�2d�1�18$�1'�18�*�1�1�18�,�1$�1�1�28$�1'�18�+��1�1�28��,�1$�18��4�1$�18�9�2+�2�2�28�4�28�28�+��2�28��2&�28��2�2-�28�,�2$�28�*�2$�28�*�2�2�2�3
8��,�2&�28�*�2$�28��4�2&�28�*�2$�28�9�3&�3�38�38��3(�38�4�3�38$�3'�38�*�3$�38�,�3�38$,�38�*�3&�38�2d�3�38$�3'�38�*�3�3�38�,�3$�38�*�3&�38�2d�4�48$�4'�48�*�4�4�48�,�4$�4�4�<M8�48�l�4�4
�48��,�4 �48�24�4�4�4%�48�48��$�4�4
�48��4�4 �48�24�4�5�5%�5+�5�5�58��5�5�58���58�5	�58�l�5 �58�%T�5�5�5�5	�58��$�5 �58�%T�5�5�5�5�684�68��6�6�68�,�6'�68ŁL�6%�68�6	�68�l�6 �68�%4�6�6�68��$�6�6�784�68��6�6�78�,�6'�68��T�6%�78�78�l,�7�78��$�7�78�l�7%�78�7	�78�l,�7 �78�%T�7�7�7�7�884�88��8�8�88�,�8'�88ŁL�8%�88�88��D�8�9�9�98�9�9 �98�:4�9'�9�9,�98���9�9�9�9�9,�98���9'�98�&,�9�9�9,�98��|�9 �98���9�9�97��9%�98�:8��D�:�:8��D�:�:�:,�:8��:�;'�;8�&,�;�;�;7���;%�;8��<�<�<8��D�<
�<8�l,�<�<8�l�<%�<��
#<�
�
��
��,�����2d�����0l�����0t�����$�������������;��subdQS��%ET�6������R��,�8��&�8��$�,�8���&�8��$�,�8	sample_ty�L�&�8�,�*���R8$�8�0l�8
�,�8����	8!$�8�*<��8�oT��,�8���%�8$�8�0t�8
�8�oT��,�8�����R�8!$�8�*��,�8��%�+���8�4�8�8�
��8�*�$�8�*����8��,�&�8�*�$�8��4�&�8�*�(�8�4��8$�$�8�,��8$,�8�*�&�8�2d��8$�'�8�*���8�,� $� 8�*� &� 8�2d� � 8$� '� 8�*� � � 8�,� $� � �"8� 8�l� � 
� 8��,�  � 8�24� � � %� 8�!8��$�!�!
�!8��4�! �!8�24�!�!�!%�!8�!	�!�!�!8�l�!�!8��$�!�!�"84�!8��!�!�!8�,�!'�!8��T�!%�!8�0t�"'�"8�*l�"�"�"8�l�"$�"8��$�"�"7��"+�"�"�"8�4�"8�#8�*l�#�#8�*�#$�#8�*�#�#�#�$8��,�#&�$8�*�$$�$8��4�$&�$8�*�$(�$8�4�$�$8$�$$�$8�,�$�$8$,�$8�*�$&�$8�2d�$�$8$�$'�$8�*�$�$�$8�,�$$�$8�*�%&�%8�2d�%�%8$�%'�%8�*�%�%�%8�,�%$�%�%�*18�%8�l�%�%
�%8��,�% �%8�24�%�%�%%�%8�%8��$�%�%
�%8��4�% �%8�24�&�&�&%�&8�&	�&�&�&8�l�&�&8��$�&�&�&84�&8��&�&�&8�,�&'�&8��T�&%�&8�'8�j,�'�'8��$�' �'8�d�'�'�'8�l�' �'8�d�'�'�'7��'8�',�'8���'%�'8�'8�p4�'�'8�'8�j,�'�'7��'�'�(
8�(8�j,�(�(,�(8ҍL�('�(8�$�(�(�(8�j,�(%�(�(�(8�j,�( �(8wrapping_neg�d�(�(�(�(8�j,�(8$�(�(�)7��)%�)8��)�)�*8�oT�)�)�*8�l�)$�)8�j,�)&�)8�j,�)8�),�)8��)$�)8�p4�*&�*8�p4�*8�*,�*8���*8�*,�*8��*$�*<4 Sample from distribution, Lemire's method, unbiased���+7+�+�+�+8�4�+8�+8�4�+�+8��+&�+8��+�+-�+8�,�+�+�+�,�+8$�,$�,8�9�,&�,�,8�,8��,(�,8$�,'�,8�*�,�,�0+8�,8�j,�,�,8$�, �,8�j,�,8�,,�,8���,8�,,�,8ҍL�,%�,8�,8�j,�,�,7��,�,�-84�-8�9�- �-8�:4�-�-�-%�-8�-8�p4�-�-8$�- �-8�p4�-8�-,�-8���-8�-,�-8ҍL�-%�-8�.8���.�.8$�.�.�/8�.�.�.8���.$�.8���.�.8�9�. �.8�:4�.'�.�.,�.8ҍL�.�.�.�. �.8�$$�.�.�.8�j,�.%�.8�.8���.�.8�p4�/�/�/8,�/8���/%�/%�/8$�/ �/8�l�/ �/8�d�/�/�08���/8�/,�08��0+�0�0�08�4�08�08�+l�0�08��0&�08��0�0-�08�,�0$�08�*�0$�08�*�0�0�0�18��,�0&�08�*�0$�08��4�1&�18�*�1$�18�9�1&�1�18�18��1$�1(�18�4�1�18$�1'�18�*�1$�18�,�1�18$,�18�*�2&�28�2d�2�28$�2'�28�*�2�2�28�,�2$�28�*�2&�28�2d�2�28$�2'�28�*�2�2�28�,�2$�2�2�48�28�l�2�2
�28��,�3 �38�24�3�3�3%�38�38��$�3�3
�38��4�3 �38�24�3�3�3%�38�3	�3�3�38�l�3�38��$�3�3�484�38��3�3�48�,�3'�48��T�4%�48$�4'�48�+��4�4�48�l�4$�48��$�4�47��4$�48�9�4<, Sample single value, Canon's method, biased���5/<��5<> In the worst case, bias affects 1 in `2^n` samples where n is���5A<= 56 (`i8`), 48 (`i16`), 96 (`i32`), 64 (`i64`), 128 (`i128`).���6@+�6�6�78��6�6�78��6�6�78�<�6�67unbiased�T�6+�7�7�78�4�78�78�+��7�78��7&�78��7�7-�78�,�7$�78�*�7$�78�*�7�7�7�88��,�7&�78�*�7$�78��4�8&�88�*�8$�88�9�8&�8�88�88��8$�8(�88�4�8�88$�8'�88�*�8$�88�,�8�88$,�88�*�9&�98�2d�9�98$�9'�98�*�9�9�98�,�9$�98�*�9&�98�2d�9�98$�9'�98�*�9�9�98�,�9$�9�9�BF8�98�l�9�9
�98��,�9 �:8�24�:�:�:%�:8�:8��$�:�:
�:8��4�: �:8�24�:�:�:%�:8�:	�:�:�:8�l�:�:8��$�:�:�;84�:8��:�:�;8�,�:'�;8��T�;%�;8�;8�j,�;�;8��$�; �;8�d�;�;�;8�l�; �;8�d�;�;�;7��;8�;,�;8���;8�;,�;8ҍL�;%�;8�<8�j,�<�<7��<�<�=84�=8��=�=�=8�9�= �=8�:4�=�=�=%�=8�>�>�>8�>8�
4�>$�>8lo_order�D�>�>8�9�> �>8�:4�>'�>�>,�>8ҍL�>�>�>�> �>8�$$�>�>�>8�j,�>%�>8�?8��D�?�?8�j,�? �?8�d�?�?�?�?�B8�@�@�@8new_hi_order�d�@$�@8�@�@�@�@	8�9�@ �@8�:4�@'�@�@,�@8ҍL�@�@�@�@ �@8�$$�@�@�@8�j,�@8�@,�@8ҍL�@%�@8�A8is_overflow�\�A�A8��D�A �A8checked_add�\�A�A�A8��d�A8�A,�A8ҍL�A �A8is_none�<�A�A�A%�A8�
4�B�B8��\�B8�B,�B8ҍL�B%�B8��B�B�B8�l�B �B8�d�B�B�B8�
4�B8�B,�B8��B<. Sample single value, Canon's method, unbiased���C1+�C�C�C8��C�C�C8�<�C�C7��T�C+�C�C�C8�4�C8�D8�+��D�D8��D&�D8��D�D-�D8�,�D$�D8�*�D$�D8�*�D�D�D�E8��,�D&�D8�*�D$�D8��4�D&�D8�*�D$�D8�9�E&�E�E8�E8��E$�E(�E8�4�E�E8$�E'�E8�*�E$�E8�,�E�E8$,�E8�*�E&�E8�2d�E�E,�E8��E�E�E8�,�E$�E8�*�F&�F8�2d�F�F,�F8��F�F�F8�,�F$�F�F�RF8�F8�l�F�F
�F8��,�F �F8�24�F�F�F%�F8�F8��$�F�F
�F8��4�F �G8�24�G�G�G%�G8�G	�G�G�G8�l�G�G8��$�G�G�G84�G8��G�G�G8�,�G'�G8��T�G%�G8�H8�j,�H�H8��$�H �H8�d�H�H�H8�l�H �H8�d�H�H�H7��H8�H,�H8���H8�H,�H8ҍL�H%�H8�H8�j,�H�H7��H�H�J84�I8��I�I�I8�9�I �I8�:4�I�I�I%�I8�J�J�J8�J8�
4�J$�J8�J8���J�J8�9�J �J8�:4�J'�J�J,�J8ҍL�J�J�J�J �J8�$$�J�J�J8�j,�J%�J8%,�K8���K�K8�j,�K �K8�d�K�K�K�K�Q8�K�K�K8new_hi�4�K$�K8new_lo�4�K�K�K�L	8�9�K �L8�:4�L'�L�L,�L8ҍL�L�L�L�L �L8�$$�L�L�L8�j,�L%�L8,�L8���L �L8��\�L�L�L8��4�L�L�Q8�$�L�L�L8���L8�L8���L�L,�M8ҍL�M'�M8MAX��M*�M�M�N8,�M%�M8�$�N*�N�N�O8�
4�O�O7��O%�O8,�O%�O8�O*�O�O�Q8���P�P8��4�P%�P8D�Q%�Q8��Q�Q�R8�l�Q �Q8�d�Q�Q�Q8�
4�Q8�Q,�Q8��Q%�R�ƍ��d�<������ώ$�������������������4�������������*�*��������������������q�aX������*��*��������,��������֐����,����������
�������,����4���������l����������*��*������,������,�������
�������,����4���������74����������������������
���$���9��(*����lĦ��*�*�����������������������q�aX��������*��*���������Ҧ��զ����,��������ާ����,����������
���������,����4���9��������������������������������������������������������������������*��*�����������������,ʭ�������,�����ݭ
���������,Ȭ��4۬�9�`b����ڰ���������������������˱�����������������������
�Q�Q�Q�QL�
,�
��������,�	����2d�	����0l�	�����<�	�
�����
���oT�	�
����0t�	����d�	!�����	�����D�	Ó����P	����������rtԨ	eT�	S��	@ܯ	��d�	<�	������
	��	���	��	���#	��	�
���	��
#	�������������4�
	�
	�����	�	������������������������q�aX������*��*������,�	��������	��,�	�������	
�������,�	��4�	�	�	L�	������������������������	l�	��������*��*������,�	����	��,�	����	
�������,�	��4�	�	�	L�	���������������������9	4�	���������������	����	���	
���$�	�9�	$&��1	���B����	l�	�����������������	����	���	
���$�	�9�	��4�	�	�	57��%	����d�%	<�%	������%'	�������������4�&	�&	������&�	�&	������������������������q�aX������*��*������,�'	��������'	��,�'	�������'	
�������,�&	��4�&	�&	�&	��)�	l�)	��������*��*������,�*	����*	��,�*	����*	
�������,�)	��4�)	�)	�)	�0	�����������������������������������;t�����6:	4�6	���������������6	����6	���6	
���$�6	�9�6	$&�� %
y[|[m[p[L� 
e[�� =
X[[[H[K[8[;[([+[Ԁ!
[��!
[[�Z�Z��#
����_���$8
�$
��������^�^��^��[�^���[����e�S������$
�
�$�$
��$
��& 
����B!
�*�������B
���l�B
���� ��F�
��BJ
G Create a new `Uniform` instance, which samples uniformly from the half���C0
- open range `[low, high)` (excluding `high`).��C
���CL
I For discrete types (e.g. integers), samples will always be strictly less���DN
K than `high`. For (approximations of) continuous types (e.g. `f32`, `f64`),���DD
A samples may equal `high` due to loss of precision but may not be�ĺE
 greater than `high`.��E
���EL
I Fails if `low >= high`, or if `low`, `high` or the range `high - low` is���F;
8 non-finite. In release mode, only the range is checked.��F
������������������������q�aX������*��*������,�G
�����|�G
��,�H
�����|�G

��������l�G
��$�G
�F
�F
��J�
��HL
I Create a new `Uniform` instance, which samples uniformly from the closed���I$
! range `[low, high]` (inclusive).��I
���IK
H Fails if `low > high`, or if `low`, `high` or the range `high - low` is���J;
�l�J
��������*��*������,�K
΅|�K
��,�K
�|�K

��������l�J
��$�K
�J
�J
��L5
�*�����L
��l�L
���#���M3
4�M
���������������M
����M
���M

�����$�M
�9�M
(*��O
��MI
F Helper trait for creating objects using the correct implementation of���N-
* [`UniformSampler`] for the sampling type.��N
���NH
E See the [module documentation] on how to implement [`Uniform`] range���O
 sampling for a custom type.��O
���O1
. [module documentation]: crate::distr::uniform�l�O
����,�P
�������������P'
����P
���D�P
�,��!����P&
��P<
9 The `UniformSampler` implementation supporting type `X`.�<�P
����T
��Q2
/ Helper trait handling actual uniform sampling.��Q
���QH
���R
Œ�R
���RL
I Implementation of [`sample_single`] is optional, and is only useful when���RM
J the implementation can be faster than `Self::new(low, high).sample(rng)`.��S
���S1
����S4
1 [`sample_single`]: UniformSampler::sample_single�t�T
����,�T
���������������������<�U
������4�U
��T,
) The type sampled by this implementation.��U
����X�
��UW
T Construct self, with inclusive lower bound and exclusive upper bound `[low, high)`.��U
���UL
����VN
€��WD
����W
��X
���XA
> Usually users should not call this directly but prefer to use���X
 [`Uniform::new`].��X
������������������������q�aX�����*��*������,�Y
������Y
��,�Y
������Y

�������l�X
��$�Y
�X
�X
��[�
��Z8
5 Construct self, with inclusive bounds `[low, high]`.��Z
���ZA
����[
 [`Uniform::new_inclusive`].�l�[
��������*��*������,�\
����\
��,�\
��\

�������l�[
��$�[
�[
�[
��\:
��\
 Sample a value.�4�\
�������������]
����]
���]

����$�]
�9�]
(*��f�
��]K
H Sample a single value uniformly from a range with inclusive lower bound���^,
) and exclusive upper bound `[low, high)`.��^
���^L
����_N
€��_D
��ĭ`
��`
���`(
% By default this is implemented using���`I
F `UniformSampler::new(low, high).sample(rng)`. However, for some types���aJ
G more optimal implementations for single usage may be provided via this���b7
4 method (which is the case for integers and floats).���b!
 Results may not be identical.��b
���cK
H Note that to use this method in a generic context, the type needs to be���c6
3 retrieved via `SampleUniform::Sampler` as follows:�<�d
����d>
; use rand::distr::uniform::{SampleUniform, UniformSampler};���d
 # #[allow(unused)]���d?
< fn sample_from_range<T: SampleUniform>(lb: T, ub: T) -> T {���e"
     let mut rng = rand::rng();���eO
L     <T as SampleUniform>::Sampler::sample_single(lb, ub, &mut rng).unwrap()�,�f
��<�f
��l�f
��*�*�����������������������q�aX�������*��*�����g
����f
���f
����,�h
������g
����,�h
������h

���������l�g
��$�g
�9�g
���f
�f
��l�
��iK
����i,
) and inclusive upper bound `[low, high]`.��j
���j(
���jH
E `UniformSampler::new_inclusive(low, high).sample(rng)`. However, for���kL
I some types more optimal implementations for single usage may be provided���k
 via this method.���l!
����l
��������ҥ����*��*�����m
����l
���l
��,�m
����m
��,�n
����n

���������l�l
��$�m
�9�m
Z\�l
�l
��o7
�*�����o
��l�o
�������"$T�o
,�o
������o5
D�o
������
���r��o
��p@
�*�����p
��l�p
�������"$T�q
,�q
������qK
D�q
������
������q
��t 
��r6
3 Helper trait similar to [`Borrow`] but implemented���rB
? only for [`SampleUniform`] and references to [`SampleUniform`]���s)
& in order to resolve ambiguity issues.��s
���s#
  [`Borrow`]: std::borrow::Borrow�d�t
��2���߹��t�
����D�t
�߹+߹1���*,��u
��tA
> Immutably borrows from an owned value. See [`Borrow::borrow`]��t
���t3
0 [`Borrow::borrow`]: std::borrow::Borrow::borrow�4�u
��������u
�
����$�u
��uU
�2������D�u
���l�v
�����#%��v
4�v
��������v
�
���$�v
��vV
8��2����D�w
���l�w
�����#%��w
4�w
���������w
�
�8��$�w
��y
��x?
< Range that supports generating a single sample efficiently.��x
���xM
J Any type implementing this trait can be used to specify the sampled range��y
 for `Rng::random_range`.�\�y
�����߹��y�
��y
�߹"߹(������35��zM
��y+
( Generate a sample from the given range.�l�z
���ӻ��������������������q�aX���������z
����z
|ӻ<�z

����ӻ$�z
�9�z
35ܣ{
��z%
" Check whether the range is empty.�D�{
�����{
�
����$�{
��{?
������{
���l�{
�����T�{
��������BD��|L
l�|
��������������������������q�aX���������|
����|
|��<�|

�����$�|
�9�|
/1Ի}
D�}
������}
�
���$�}
��~H
������~
��l�~
��T�~
��������.0��~L
l�~
�������������
����~
��<�~

�����$�
�9�
(*Ԓ�
D��
�������
�
���$��
�ހ 
��
��
��
��
��
,��
8����
&��
8���
*��
��
��
8$��
8�3\��
��
,��
8����
��
8
��
8�<��
��
,��
8����
��
��
��
+́
΁
Ձ
8�4ρ
8�
8�+l�
�
8��
&��
8��<��
��
-��
8�,��
��
��
��
8$��
$��
8�9��
&��
��
8��
8���
(��
8�4��
��
,��
8����
$��
8�,��
��
��
��
Â
,Ă
8��ł
8ǂ
8�0lʂ
ׂ
'؂
8�*<ڂ
'�
8�+l�
��
��
7��
$�
8$�
 ��
8���
$��
8�9��
+��
��
��
8�4��
8��
8�3D��
��
Ń
��
8$��
(ǃ
8�$ʃ
σ
��
7��
�
8$�
 �
8��
8$��
8�3\��
��
,��
8����
��
8
��
8����
��
,��
8����
��
��
��
+̄
̈́
Ԅ
8�4΄
8�
8�+l�
�
8��
&�
8��<��
��
-��
8�,��
��
��
��
8$��
$��
8�9��
&��
��
8��
8���
(��
8�4��
��
,��
8����
$��
8�,��
��
��
��
…
,Å
8��ą
8ƅ
8�0lɅ
օ
'ׅ
8�*<م
'��
8�+��
��
��
7���
$��
8$��
 ��
8���
$��
8�9��
+��
��
��
8�4��
8��
8�3D��
Ȇ
Ά
Ɇ
8$ʆ
(І
8�$ӆ
؆
��
8,�
%��
��!�� Weighted (index) sampling�����EB Primarily, this module houses the [`WeightedIndex`] distribution.���PM See also [`rand_distr::weighted`] for alternative implementations supporting���KH potentially-faster sampling or a more easily modifiable tree structure.�����^[ [`rand_distr::weighted`]: https://docs.rs/rand_distr/latest/rand_distr/weighted/index.html�D�!���
���[����l��
�L�)��t����
�,��
���74�����2d�����0l�����0t�����d�!������������?���$��[���,��_����_����������D���������T��|�}��n�_a��4�*�������l������T�����*,��!���EB Creates a new a `WeightedIndex` [`Distribution`] using the values���?< in `weights`. The weights can use any type `X` for which an���,) implementation of [`Uniform<X>`] exists.�����
 Error cases:���EB -   [`Error::InvalidInput`] when the iterator `weights` is empty.���KH -   [`Error::InvalidWeight`] when a weight is not-a-number or negative.���KH -   [`Error::InsufficientNonZero`] when the sum of all weights is zero.��� B? -   [`Error::Overflow`] when the sum of all weights overflows.�� ��� 2/ [`Uniform<X>`]: crate::distr::uniform::Uniform��!�5��������������������q�aX������5��������!�H��d�"����H��|�"���4�"
������7<�!TV��4���+GD Update a subset of weights, without changing the number of weights.��,���,.+ `new_weights` must be sorted by the index.��,���,XU Using this method instead of `new` might be more efficient if only a small number of���-VS weights is modified. No allocations are performed, unless the weight type `X` uses�Ԁ. allocation internally.��.���.:7 In case of error, `self` is not modified. Error cases:���.EB -   [`Error::InvalidInput`] when `new_weights` are not ordered by���/'$     index or an index is too large.���/K����0K����0KH     Note that due to floating-point loss of precision, this case is not���1LI     always correctly detected; usage of a fixed-point weight type may be���2     preferred.��2���2PM Updates take `O(N)` time. If you need to frequently update weights, consider���3c` [`rand_distr::weighted_tree`](https://docs.rs/rand_distr/*/rand_distr/weighted_tree/index.html)���341 as an alternative where an update is `O(log N)`.�t�4�������
�����������������������q�aX����4����������5#����������5#���,�5���<�6
���$�4new_weights�\�4�5�5��K?��K�'��*��������K���l�K�����T�K���'��K$���5��4�����rj����'���rj������K��rt�K����'�
�
���
����
�7��
Ɔ�'�K��|����d�K,�K�����Lr8��*������L��l�L��T�L�_��,�L�_���,�L����_�JL��L8�M��������^�^��^��[�^���[����e�S������M�
�8��$�M��M��NS8��*������N��l�O��T�O�����#%��O,�O��������O�
�8��$�O��P�8��*������P����������Q#��l�Q��T�Q���,�Q�����J�J�_a�QL�Q$�Q������Q($�Q��������������������;t������J��R�
�8��$�R��S<�*�����S��l�S��T�T��,�T�����)+��Xi��T85 Returns the weight at the given index, if it exists.��T���T;8 If the index is out of bounds, this will return `None`.��U�l�U��U�<�U����U-* use rand::distr::weighted::WeightedIndex;��V��V let weights = [0, 1, 2];���V52 let dist = WeightedIndex::new(&weights).unwrap();���V(% assert_eq!(dist.weight(0), Some(0));���W(% assert_eq!(dist.weight(1), Some(1));���W(% assert_eq!(dist.weight(2), Some(2));���X%" assert_eq!(dist.weight(3), None);�<�X��4�X��������������������;t�������X�����������Y#
���$�X�,�X�Y��Y��ak��\XU Returns a lazy-loading iterator containing the current weights of this distribution.��]���]VS If this distribution has not been updated since its creation, this will return the���])& same weights as were passed to `new`.��^�l�^��^�<�^����^-���_��_ let weights = [1, 2, 3];���_96 let mut dist = WeightedIndex::new(&weights).unwrap();���_B? assert_eq!(dist.weights().collect::<Vec<_>>(), vec![1, 2, 3]);���`-* dist.update_weights(&[(0, &2)]).unwrap();���`B? assert_eq!(dist.weights().collect::<Vec<_>>(), vec![2, 2, 3]);�<�a��<�a�������5��4�����rj��������a�����������a#
���$�a�b��c��c85 Returns the sum of all weights in this distribution.�d�c��������c�
���$�c��dY�*�����d��l�d��T�d���#�"$��d74�d�������������e����e���e
�����$�e�9�e(*�g�����������������������'���� Bounds on a weight�����#  See usage in [`WeightedIndex`].�4���߹�����,��߹*��߹6��*��������� Representation of 0�$������	=�� Checked addition�����85 -   `Result::Ok`: On success, `v` is added to `self`���HE -   `Result::Err`: Returns an error when `Self` cannot represent the���KH     result of `self + v` (i.e. overflow). The value of `self` should be���	     discarded.���	��������������������������q�aX��	�
��$�	��
�
|�
�
��
�
,�
8���
&�
8��
*�
�
�
8$�
8�74�
8
�
,�
8���
�
�
8,�
8�7$�&�8$��7��%�8�8�7�����8�8$�$�8��&��8$�(�8�4����$������
8,�8$� �8��\���
�8����
	8�$���8sum��*���

�8$��8���%�8������8�$�
*�
8��
�
�
�
�
$�
%�
�
�
	,�
8���
&�
8��
$�
,�
�
�
,�
8��
&�
8��
$�

�
*�
�
�8�8|�	���,�8���%�8�8|�	���,���,�8��$�
�%���������,�8���&�8��*���8$�8�74�8
�,�8�����8,�8�7$�&�8$��7���%�8�8�7�����8�8$�$�8��&��8$�(�8�4����$������
�8$��
�8��%�8������%��� ��������_���4���������^�^��^��[�^���[����e�S�������
�$�����",j�j�|�|���" ����#-��������������##����������#'��@�@δ�$e�T�$w�|���+( Convenience re-export of common members�����LI Like the standard library's prelude, this module simplifies importing of���OL common items. Unlike the standard prelude, the contents of this module must�̱ be imported manually:���<���������52 # let mut r = StdRng::from_rng(&mut rand::rng());��� # let _: f32 = r.random();�<���<��d�!����D�����4����ÓL�����M������Kl�����It�����N\������L�����	�����<�	|���\�	��	��
����������J����������-��uwbdQS<��������3\�����0l�����$����d�!����|���������D�����������������,��a����<�|����3������3�,����������fhUW��G����! User-level interface for RNGs�����KH [`RngCore`] is the `dyn`-safe implementation-level interface for Random���NK (Number) Generators. This trait, `Rng`, provides a user-level interface on���?< RNGs. It is implemented automatically for any `R: RngCore`.�����IF This trait must usually be brought into scope via `use rand::Rng;` or�� `use rand::prelude::*;`.����� # Generic usage�����EB The basic pattern is `fn foo<R: Rng + ?Sized>(rng: &mut R)`. Some���! things are worth noting here:�����LI - Since `Rng: RngCore` and every `RngCore` implements `Rng`, it makes no���	96   difference whether we use `R: Rng` or `R: RngCore`.���	JG - The `+ ?Sized` un-bounding allows functions to be called directly on���
PM   type-erased references; i.e. `foo(r)` where `r: &mut dyn RngCore`. Without���
85   this it would be necessary to write `foo(&mut r)`.�����OL An alternative pattern is possible: `fn foo<R: Rng>(rng: R)`. This has some���OL trade-offs. It allows the argument to be consumed directly without a `&mut`���NK (which is how `from_rng(rand::rng())` works); also it still works directly���
NK on references (including type-erased references). Unfortunately within the���
LI function `foo` it is not known whether `rng` is a reference type or not,���JG hence many uses of `rng` require an extra reference, either explicitly���OL (`distr.sample(&mut rng)`) or implicitly (`rng.random()`); one may hope the���41 optimiser can remove redundant references later.���d�	 Example:���<�����˨����1. fn foo<R: Rng + ?Sized>(rng: &mut R) -> f32 {���     rng.random()�,�������$! # let v = foo(&mut rand::rng());�<������߹���F|�<��߹)�߹5�*��������������������������������������P��C@ Return a random value via the [`StandardUniform`] distribution.���l����<�����˨�������� let x: u32 = rng.random();��� println!("{}", x);���2/ println!("{:?}", rng.random::<(f64, bool)>());�<������� # Arrays and tuples�����85 The `rng.random()` method is able to generate arrays���GD and tuples (up to 12 elements), so long as all element types can be�t� generated.�����IF For arrays of integers, especially for those with small element types���FC (< 64 bit), it will likely be faster to instead use [`Rng::fill`],���2/ though note that generated values will differ.���<�����˨��������IF let tuple: (u8, i32, char) = rng.random(); // arbitrary tuple support�����DA let arr1: [f32; 32] = rng.random();        // array construction��� let mut arr2 = [0u8; 128];���96 rng.fill(&mut arr2);                    // array fill�<�������/, [`StandardUniform`]: distr::StandardUniform�4��������������!����|�
����$�+-�� ���=: Return an iterator over [`random`](Self::random) variates�����<9 This is a just a wrapper over [`Rng::sample_iter`] using��� [`distr::StandardUniform`].�����0- Note: this method consumes its argument. Use���:7 `(&mut rng).random_iter()` to avoid consuming the RNG.���l����<�����1. use rand::{rngs::SmallRng, Rng, SeedableRng};�����)& let rng = SmallRng::seed_from_u64(0);���:7 let v: Vec<i32> = rng.random_iter().take(5).collect();��� assert_eq!(v.len(), 5);�<� ��\� ����Z����9��Zjk��L�<������������� ��,�!�|�!
����$� (*��*n��!/, Generate a random value in the given range.��"���"HE This function is optimised for the case that only a single sample is���"DA made from the given range. See also the [`Uniform`] distribution���#HE type which may be faster if sampling from the same range repeatedly.��$���$JG All types support `low..high_exclusive` and `low..=high` range syntax.���$PM Unsigned integer types also support `..high_exclusive` and `..=high` syntax.��%�d�%	 # Panics��%���%JG Panics if the range is empty, or if `high - low` overflows for floats.��&�l�&��&�<�&����&˨�&���&���'���' // Exclusive range���'(% let n: u32 = rng.random_range(..10);���' println!("{}", n);���(0- let m: f64 = rng.random_range(-40.0..1.3e5);���( println!("{}", m);��(���( // Inclusive range���()& let n: u32 = rng.random_range(..=10);���)��<�)���)���)(% [`Uniform`]: distr::uniform::Uniform�P|�*d�*����ӻ����������*���*���*���l�*�ӻ��t�*
����ӻ$�*�j,�*PRUW��0)��,74 Return a bool with a probability `p` of being true.��,���,C@ See also the [`Bernoulli`] distribution, which may be faster if���-2/ sampling from the same probability repeatedly.��-�l�-��-�<�-����-˨�.���.����./, println!("{}", rng.random_bool(1.0 / 3.0));�<�.���.�d�/���/�ԛ/ If `p < 0` or `p > 1`.��/���/#  [`Bernoulli`]: distr::Bernoulli�P|�/\�0������0�
��$�0��0��8D��1HE Return a bool with a probability of `numerator/denominator` of being�L�2 true.��2���2HE That is, `random_ratio(2, 3)` has chance of 2 in 3, or about 67%, of���3JG returning true. If `numerator == denominator`, then the returned value���3FC is guaranteed to be `true`. If `numerator == 0`, then the returned���4&# value is guaranteed to be `false`.��4���4C����5DA sampling from the same `numerator` and `denominator` repeatedly.��5�d�5���6���674 If `denominator == 0` or `numerator > denominator`.��6�l�6��6�<�6����6˨�7���7����7+( println!("{}", rng.random_ratio(2, 3));�<�7���7���8#��P|�8d�8������8�
��$�8��L�8��\�8��>:��;52 Sample a new value, using the given distribution.��;�|�; ### Example��;�<�;����<˨�<��<���<����<96 let x = rng.sample(Uniform::new(10u32, 15).unwrap());���=IF // Type annotation requires two types, the type and distribution; the���=$! // distribution can be inferred.���>@= let y = rng.sample::<u16, _>(Uniform::new(10, 15).unwrap());�<�>��4�>���������������?���>�����>��|�?
������$�?�,�?=?9;��Hz��?JG Create an iterator that generates values using the given distribution.��@���@1. Note: this method consumes its arguments. Use���@<9 `(&mut rng).sample_iter(..)` to avoid consuming the RNG.��A�l�A��A�<�A����A˨��A>; use rand::distr::{Alphanumeric, Uniform, StandardUniform};��B���B���B���B����BQN let v: Vec<f32> = (&mut rng).sample_iter(StandardUniform).take(16).collect();��C�t�C����C85 let s: String = (&mut rng).sample_iter(Alphanumeric)���D��ĻD����D���D���D // Combined values���EDA println!("{:?}", (&mut rng).sample_iter(StandardUniform).take(5)���EA>                              .collect::<Vec<(f64, bool)>>());��F���F����F:����G96 let mut roll_die = (&mut rng).sample_iter(die_range);���G)����G,��,�H��<�H��\�H������Z����9��Zjk��L�<����������������H���H��|�I��,�I
������$�H�,�H<>AC��O2��I85 Fill any type implementing [`Fill`] with random data��J���JJG This method is implemented for types which may be safely reinterpreted���JJG as an (aligned) `[u8]` slice then filled with random data. It is often���K?< faster than using [`Rng::random`] but not value-equivalent.��L���LIF The distribution is expected to be uniform with portable results, but���L>; this cannot be guaranteed for third-party implementations.��M�l�M��M�<�M����M˨�M���M let mut arr = [0i8; 20];���N#  rand::rng().fill(&mut arr[..]);�<�N���N���N'$ [`fill_bytes`]: RngCore::fill_bytes�P|�N$�O�������������O������O���$�O
����$�Odest�$�O46��QO��O Alias for [`Rng::random`].�0.9.0�NRenamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.���P�,�Q��������������Q���Q�|�Q
����$�Q "��Sk��R$! Alias for [`Rng::random_range`].���Renamed to `random_range`���RBL�S�������ӻ����������S���S���S��l�S��t�S
����ӻ$�S�j,�S<>AC��U&��T#  Alias for [`Rng::random_bool`].���Renamed to `random_bool`���TAD�U���������U�
��$�U��U��WA��V$! Alias for [`Rng::random_ratio`].���Renamed to `random_ratio`���VBL�W���������W�
��$�W��L�W��\�W��X#������X|��<�X��t�Z��X.+ Types which may be filled with random data��X���XGD This trait allows arrays to be efficiently filled with random data.��Y���YFC Implementations are expected to be portable across machines unless���Y)& clearly documented otherwise (see the���ZSP [Chapter on Portability](https://rust-random.github.io/book/portability.html)).�$�Z��߹��Zk�߹߹�����[1�[ Fill self with random data�$�[������������[����[���[
����$�[�9�[(*��[t�[�[�^�[�[*�\�\�\%�\�\�\,�\8���\&�\8��\*�\�\�]8$�\8�<$�\8
�\�\�\,�\8���\�\�]8�\8�;$�\�\8��\&�\8��\�\-�\8�,�\�\�\�\	�\8�\8$�\$�\8�9�\&�\�\8�\8��\�\�]8
�]8elt��]8�]8$�] �]8�	D�]�]�]�]�]
�]8���]�]8�9�] �]8�:4�]�]�]%�]%�]�]�^,�^8���^&�^8��^$�^,�^�^�^,�^8��^&�^8��^$�^
�^*�^�^�^8�<t�^	�^�^�^,�^8���^%�^8�<t�^	�^�^�^,�^�^�^,�^8��^$�^
�^%�^%�^��_�������_0$�_�������������_����_���_
���$�_�9�_$&Ԡ`D�`�����aL�a�a�u�a�a*�a�a�a%�a�a�a,�a8���a&�a8��a*�a�a�s�b�s
8�=D�b�b�b%�b8$�b8�<$�b8
�b�b�b,�b8���b�b�k8�b8�;$�b�b8��b&�c8��c�c-�c8�,�c�c�c�c	�c8�c8$�c$�c8�9�c&�c�c8�c8��c�c�k8�c8$�c �c8�	�c�c�c�c7��c�c�j8�c8�$�c�c8���c'�c8�\�c�c�d8$�c%�d8�9�d �d8�?T�d�d�j8"4�h�h�i8�,�h'�h8from_raw_parts_mut���h�h�i
8$�h �h8
as_mut_ptr�T�h�h�h8�i
�i8�i8��i$�i8�$�i%�j8
�j8���j8�j8$�j�j�j
�j8���j�j8���j �j8to_le�,�j�j�j%�j8$�k8�<$�k8
�k�k�k8�D�k�k,�k8���k�k�k�s8�k8�;$�k�k8��k&�k8��k�k-�k8�,�k�k�k�k	�k8�k8$�k$�k8�9�k&�k�k8�k8��k�k�s8�l8$�l �l8�	�l�l�l�l7��l�l�s8�l8�$�l�l8$�l �l8�	�l�l�l
�l8���l'�l8�<�l'�l�l,�l8���l�l�l�l%�l8�9�l �l8�?T�l�m�r8"4�p�p�r8�,�q'�q8��	��q�q�r
8$�q �q8��	T�q�q�q8�q
�q8�q8��q$�q8�$�r%�r8
�r8���r8�r8$�r�s�s
�s8���s�s8�D�s�s�s8���s �s7��s �s8��	,�s�s�s%�s%�s�t�t,�t8���t&�t8��t$�t,�t�t�t,�t8��t&�t8��t$�t
�t*�t�t�u�t�u8�=L�t	�t�t�t,�t8���t%�t8�=L�u	�u�u�u,�u�u�u,�u8��u$�u
�u%�u\�v�v�\�w�w���w<���������w��t�w���$�x�����+-0�w��x0$�x������ӻ�����x����x���x
����ӻ$�x�9�x.0d���)& Random number generators and adapters�����GD This crate provides a small selection of non-[portable] generators.���>; See also [Types of generators] and [Our RNGs] in the book.����� ## Generators�����UR This crate provides a small selection of non-[portable] random number generators:�����TQ -   [`OsRng`] is a stateless interface over the operating system's random number���OL     source. This is typically secure with some form of periodic re-seeding.���EB -   [`ThreadRng`], provided by [`crate::rng()`], is a handle to a���QN     thread-local generator with periodic seeding from [`OsRng`]. Because this���JG     is local, it is typically much faster than [`OsRng`]. It should be���74     secure, but see documentation on [`ThreadRng`].���PM -   [`StdRng`] is a CSPRNG chosen for good performance and trust of security���	RO     (based on reviews, maturity and usage). The current algorithm is ChaCha12,���	:7     which is well established and rigorously analysed.���
KH     [`StdRng`] is the deterministic generator used by [`ThreadRng`] but���
B?     without the periodic reseeding or thread-local management.���NK -   [`SmallRng`] is a relatively simple, insecure generator designed to be���FC     fast, use little memory, and pass various statistical tests of���     randomness quality.�����MJ The algorithms selected for [`StdRng`] and [`SmallRng`] may change in any���
A> release and may be platform-dependent, therefore they are not�� [reproducible][portable].���� ### Additional generators�����KH -   The [`rdrand`] crate provides an interface to the RDRAND and RDSEED���<9     instructions available in modern Intel and AMD CPUs.���IF -   The [`rand_jitter`] crate provides a user-space implementation of���JG     entropy harvesting from CPU timer jitter, but is very slow and has���JG     [security issues](https://github.com/rust-random/rand/issues/699).���HE -   The [`rand_chacha`] crate provides [portable] implementations of���EB     generators derived from the [ChaCha] family of stream ciphers���NK -   The [`rand_pcg`] crate provides [portable] implementations of a subset���96     of the [PCG] family of small, insecure generators���MJ -   The [`rand_xoshiro`] crate provides [portable] implementations of the���63     [xoshiro] family of small, insecure generators�����1. For more, search [crates with the `rng` tag].����� ## Traits and functionality�����KH All generators implement [`RngCore`] and thus also [`Rng`][crate::Rng].���52 See also the [Random Values] chapter in the book.�����C@ Secure RNGs may additionally implement the [`CryptoRng`] trait.�����@= Use the [`rand_core`] crate when implementing your own RNGs.�����DA [portable]: https://rust-random.github.io/book/crate-reprod.html���LI [Types of generators]: https://rust-random.github.io/book/guide-gen.html���B? [Our RNGs]: https://rust-random.github.io/book/guide-rngs.html���IF [Random Values]: https://rust-random.github.io/book/guide-values.html��� [`Rng`]: crate::Rng��� [`RngCore`]: crate::RngCore���#  [`CryptoRng`]: crate::CryptoRng���'$ [`SeedableRng`]: crate::SeedableRng���/, [`rdrand`]: https://crates.io/crates/rdrand���96 [`rand_jitter`]: https://crates.io/crates/rand_jitter���96 [`rand_chacha`]: https://crates.io/crates/rand_chacha���30 [`rand_pcg`]: https://crates.io/crates/rand_pcg���;8 [`rand_xoshiro`]: https://crates.io/crates/rand_xoshiro���?< [crates with the `rng` tag]: https://crates.io/keywords/rng���*' [chacha]: https://cr.yp.to/chacha.html���&# [PCG]: https://www.pcg-random.org/���(% [xoshiro]: https://prng.di.unimi.it/�$���������d�����D�#���4�#��ÓL�$����,�$������l�L������\�
�����D�
���BlockRngCore�d�
��CryptoBlockRng�t�
����L�
�����<�
|����\�
�����d�
�����T�
�����
���:
��������F
��subdPR>@��b
���>��������
����$�
��d�
���\�
���T�
����NPJL��G
��J
G Create a new `ReseedingRng` from an existing PRNG, combined with a RNG���
 to use as reseeder.��
���L
I `threshold` sets the number of generated bytes after which to reseed the���I
F PRNG. Set it to zero to never reseed based on the number of generated�\�
 values.��
����������������������q�aX�������
�������L�
��D�
��3
��$
! Immediately reseed the generator��
���9
6 This discards any remaining random data in the cache.�4�
������������������������q�aX��	��
�
�����$�
��z
���>�����T�
��	$�
��	��
��	�
��	\�
��	T�
�����}~���68SU��
D�
������
�
�����$�
� 
D� 
������ 
�
�����$� 
�� )
T� 
����������!
�
�����$�!
��$�!
��!|
���>�����	�!
��	$�!
��	d�"
��	\�"
���,�"
��	T�"
���,�"
�����SUXZ��"(
,�"
��������"
�
�����$�"
��$�
���>�����	T�$
��	$�$
��	��$
��	�$
��	\�$
��t�%
���d�%
��/1LN��&t
���>�����	�&
��	$�&
��	d�&
��	\�'
��	T�'
������>@CEL�'
$�'
����d�'
<�'
������(3
D�(
����������(
�
�����$�(
��<�(
��,c
���>�����	�,
��	$�,
��	d�,
��	\�,
��	T�,
�����1368��.G
�.
�����������������������q�aX����	��
�������L�.
��D�.
��4/
4�4
�������	��4
�
�����$�4
D�4
�����������������������6P
��6
���������	��6
�
�����$�6
��<�6
��8}
���>�����	�8
��	$�8
��	d�9
��	\�9
��	,�9
��	T�9
��	,�9
�����CEHJ��9)
,�9
��������9
�
�����$�9
��;�
���>�����	T�<
��	$�<
��	��<
��	�<
��	\�<
��	t�<
��	d�=
�� "=?���
d���  Mock random number generator�0.9.2���$���	�impls�,�G����<�|��ܡ*,d���	�����0��
EB Create a `StepRng`, yielding an arithmetic sequence starting with���
74 `initial` and incremented by `increment` each time.����	����
��<�	increment�L�Ġ��	�����}~�����D���	�������
�$��D���	�������
�$���(T���	�����������
�$�dst��L� ,� ������<�|����\������!,.D����������������L�$���������&L��������
�seed�$�������$l�����
��,�̽ �����}~����� D� ������ �
�$�!��!D�!������!�
�$�!��")T�"����������"�
�$�"��$�"��!��!��fill_bytes_via_next���K��
read_u64_into�l�h����<�|����\������%b�G��!9;(*��'����������L�$��������	2L�
������
���	$�
S�����$����������������(l�����
��,�t���`�����#�����}~�����D��������
�$���D��������
�$���(T������������
�$���	�<�"�"�����L������<�|����\����Core�$����������,oq]_LN��;Ċ-�������}~�����D��������
�$���D��������
�$���(T������������
�$���	����������L�$��������&L��������
���	$�������"4�"������T��-�����*�����+���d������L������<�|����	$�������,�������������d��������D��\�ˌ�������������y̹K��&���t� �����!:�� $�	�!���!9��	4�!������������������������q�aX���OsError���is8Skخ-{��!�
�$�!�$��#52 Debug implementation does not leak internal state�����_���$6�$��������^�^��^��[�^���[����e�S������$�
�$�$��$��-��(,) Access a fast, pre-initialized generator��)���)0- This is a handle to the local [`ThreadRng`].��)���).+ See also [`crate::rngs`] for alternatives.��)�l�)��*�<�*��̘*���*���* # fn main() {��*���*&# let mut numbers = [1, 2, 3, 4, 5];���*&# numbers.shuffle(&mut rand::rng());���+%" println!("Numbers: {numbers:?}");��+���+JG // Using a local binding avoids an initialization-check on each usage:��,���,���,85 println!("True or false: {}", rng.random::<bool>());���,B? println!("A simulated die roll: {}", rng.random_range(1..=6));�<�- # }�<�-���-�t�- # Security��-���-$! Refer to [`ThreadRng#Security`].��.��
��.�������������������.�����̂/<�/����
�Ե/�����}~�����/D�/������/�
�$�/��1D�1������1�
�$�2��3)T�3����������4�
�$�4��$�4��5����#�!��#�!��$�!��$�!\���" Sequence-related functionality���̐ This module provides:�����GD *   [`IndexedRandom`] for sampling slices and other indexable lists���RO *   [`IndexedMutRandom`] for sampling slices and other mutably indexable lists���+( *   [`SliceRandom`] for mutating slices���1. *   [`IteratorRandom`] for sampling iterators���GD *   [`index::sample`] low-level API to choose multiple indices from���     `0..length`���l�
 Also see:�����MJ *   [`crate::distr::weighted::WeightedIndex`] distribution which provides���      weighted index sampling.�����MJ In order to make results reproducible across 32-64 bit architectures, all���KH `usize` indices are sampled as a `u32` where possible (also providing a���+( small performance boost in some cases).��������WeightError�\�
�
��It�
��ޔ|����M�����Kl����N\�����d�����<�|��t���)\������	���<����F��9��F���F�{��,�Q"d��{��,�Q"d���kmT������T�,������|�����������	���<�σ
����Կ���σ
��
����9���9����σ
���
���$�����:d����σ
���
���$��H�����%.d�%���σ
��%�
���$�%��&���������������<�|����24��/�������	���<����G��9��H���F���F���=�ш����=�ш����y{T������4�����T�,������|������%�����	���<�̉
����"���̉
��
����9��H���
%T�
��̉
��
�
���$�
��������������������	��+�����
������#,��������,�ĵ<����d�D�	���F\�����Kl��������������?���� ^��OT�<|�)��*��DA Extension trait on iterators, providing random sampling methods.�����NK This trait is implemented on all iterators `I` where `I: Iterator + Sized`�� and provides methods for���=: choosing one or more elements. You must `use` this trait:���<�����" use rand::seq::IteratorRandom;�����+( let faces = "😀😎😐😕😠😢";���JG println!("I am {}!", faces.chars().choose(&mut rand::rng()).unwrap());�<�����'$ Example output (non-deterministic):�\� ```none�t� I am 😀!�<���t�����,��J�D����(��
��4��
*��������������\��  Uniformly sample one element�����EB Assuming that the [`Iterator::size_hint`] is correct, this method���	HE returns one uniformly-sampled random element of the slice, or `None`���	GD only if the slice is empty. Incorrect bounds on the `size_hint` may���
IF cause this method to incorrectly return `None` if fewer elements than���HE the advertised `lower` bound are present and may prevent sampling of���KH elements beyond an advertised `upper` bound (i.e. incorrect `size_hint`���B? is memory-safe, but may result in unexpected `None` result and��� non-uniform distribution).��
���
KH With an accurate [`Iterator::size_hint`] and where [`Iterator::nth`] is���
HE a constant-time operation, this method can offer `O(1)` performance.�̻ Where no size hint is���EB available, complexity is `O(n)` where `n` is the iterator length.���?< Partial hints (where `lower > 0`) also improve performance.�����JG Note further that [`Iterator::size_hint`] may affect the number of RNG���JG samples used as well as the result (while remaining uniform sampling).���EB Consider instead using [`IteratorRandom::choose_stable`] to avoid���LI [`Iterator`] combinators which only change size hints from affecting the�d�	 results.���l����<�����"ߑ
����41 let words = "Mary had a little lamb".split(' ');���<9 println!("{}", words.choose(&mut rand::rng()).unwrap());�<���4����������������������;t�����J������������
����$��9�(*��,c��!)& Uniformly sample one element (stable)��"���"DA This method is very similar to [`choose`] except that the result���"IF only depends on the length of the iterator and the values produced by���#HE `rng`. Notably for any iterator of a given length this will make the���#JG same requests to `rng` and if the same sequence of values are produced���$JG the same index will be selected from `self`. This may be useful if you���%KH need consistent results no matter what type of iterator you are working���%>; with. If you do not need this stability prefer [`choose`].��&���&DA Note that this method still uses [`Iterator::size_hint`] to skip���&IF constructing elements where possible, however the selection and `rng`���'GD calls are the same in the face of this optimization. If you want to���(IF force every element to be created regardless call `.inspect(|e| ())`.��(���(&# [`choose`]: IteratorRandom::choose�l�,������
�����,����,���-
����$�,�9�,(*$�1���������������������F��9��F���F�{��,�Q"d����=u��7=: Uniformly sample `amount` distinct elements into a buffer��7���7FC Collects values at random from the iterator into a supplied buffer���8  until that buffer is filled.��8���8IF Although the elements are selected randomly, the order of elements in���9HE the buffer is neither stable nor fully random. If random ordering is���9  desired, shuffle the result.��:���:NK Returns the number of elements added to the buffer. This equals the length���:NK of the buffer unless the iterator contains insufficient elements, in which���;63 case this equals the number of elements available.��;���<A> Complexity is `O(n)` where `n` is the length of the iterator.���<:7 For slices, prefer [`IndexedRandom::choose_multiple`].���=�������
��
�����=����=���=
����$�=�9�=���=13��Hq��B>; Uniformly sample `amount` distinct elements into a [`Vec`]��C���CLI This is equivalent to `choose_multiple_fill` except for the result type.��C���CI��
��DH��
��E Ұ
�E���EIF The length of the returned vector equals `amount` unless the iterator���FIF contains insufficient elements, in which case it equals the number of���F elements available.��F���GA��
��G:ȳ
|�H������?�?��?���:�?�	�:$x��Lk���
�������H����H���I
����$�H�9�Hamount�4�H68��O6�5������,�O�J��D�O���OL�	,�	������G������,�����2d�����0l������
\��
���74����������Index�,�����IndexMut�D������,�d����4������6,����T�{�ceIK��%��JG Extension trait on indexable lists, providing random sampling methods.�����JG This trait is implemented on `[T]` slice types. Other types supporting���MJ [`std::ops::Index<usize>`] may implement this (only [`Self::len`] must be�|� specified).�l���߹���9���d��߹.��
߹:��
*�����������������������t� The length��������
��$�����  True when the length is zero�D�������
��$���
\��	 ��
�	���	B? Returns a reference to one uniformly-sampled random element of���	/, the slice, or `None` if the slice is empty.��
���
%" For slices, complexity is `O(1)`.��
�l�
��
�<�����! use rand::seq::IndexedRandom;�����'$ let choices = [1, 2, 4, 8, 16, 32];�������/, println!("{:?}", choices.choose(&mut rng));���41 assert_eq!(choices[..0].choose(&mut rng), None);�<���4�
�����������������������;t������������
����
���

����$�
�9�
(*�����96 Uniformly sample `amount` distinct elements from self�����KH Chooses `amount` elements from the slice at random, without repetition,���FC and in random order. The returned iterator is appropriate both for���IF collection into a `Vec` and filling an existing buffer (see example).�����IF In case this API is not sufficiently flexible, use [`index::sample`].�����<9 For slices, complexity is the same as [`index::sample`].���l��<�����!��
����#  let mut rng = &mut rand::rng();���/, let sample = "Hello, audience!".as_bytes();�����)& // collect the results into a vector:���LI let v: Vec<u8> = sample.choose_multiple(&mut rng, 3).cloned().collect();���̃ // store in a buffer:�ܡ let mut buf = [0u8; 5];���VS for (b, slot) in sample.choose_multiple(&mut rng, buf.len()).zip(buf.iter_mut()) {���     *slot = *b;�,���<���|����������ޔ�������������Ĉ�;�n����
�������������
,����
����$��9���
4�BD�����FC Uniformly sample a fixed-size array of distinct elements from self�����FC Chooses `N` elements from the slice at random, without repetition,��� and in random order.�����B? For slices, complexity is the same as [`index::sample_array`].���l��<�����!��
����#��
��/��
����EB let a: [u8; 3] = sample.choose_multiple_array(&mut rng).unwrap();�<����������������������������;t�����
��������������t���
,����
,����
�����$��9�TVS�<� ���������������������
���*��� #  Biased sampling for one element��!���!FC Returns a reference to one element of the slice, sampled according���!GD to the provided weights. Returns `None` only if the slice is empty.��"���"DA The specified function `weight` maps each item `x` to a relative���"JG likelihood `weight(x)`. The probability of each item being selected is���#GD therefore `weight(x) / s`, where `s` is the sum of all `weight(x)`.��$���$30 For slices of length `n`, complexity is `O(n)`.���$85 For more information about the underlying algorithm,���%+( see the [`WeightedIndex`] distribution.��%���%%" See also [`choose_weighted_mut`].��%�l�&��&�<�&��̧&���&���&;8 let choices = [('a', 2), ('b', 1), ('c', 1), ('d', 0)];��'����'QN // 50% chance to print 'a', 25% chance to print 'b', 25% chance to print 'c',���($! // and 'd' will never be printed���(RO println!("{:?}", choices.choose_weighted(&mut rng, |item| item.1).unwrap().0);�<�)����)%" [`choose`]: IndexedRandom::choose���)B? [`choose_weighted_mut`]: IndexedMutRandom::choose_weighted_mut���*<9 [`WeightedIndex`]: crate::distr::weighted::WeightedIndex�|�*�����������������������������q�aX���
��������L��*������+����*���*���L�*���*�*���+�������
��,�����
���
�,���
��
|�,���
l�,���
4�,���
��
l�,
��������
��
$�+�9�+�64�+����������-5��-l�-d�-,�-��������������������
��
����
����
��;���.1. Biased sampling of `amount` distinct elements��/���/DA Similar to [`choose_multiple`], but where the likelihood of each���/EB element's inclusion in the output may be specified. Zero-weighted���0GD elements are never returned; the result may therefore contain fewer���0IF elements than `amount` even when `self.len() >= amount`. The elements���141 are returned in an arbitrary, unspecified order.��1���1D��
��2J��
��3G��
�3���3MJ This implementation uses `O(length + amount)` space and `O(length)` time.���4/, See [`index::sample_weighted`] for details.��4�l�4��5�<�5��̗5���5���51. let choices = [('a', 2), ('b', 1), ('c', 1)];���5����6,) // First Draw * Second Draw = total odds���6 // -----------------------���6^[ // (50% * 50%) + (25% * 67%) = 41.7% chance that the output is `['a', 'b']` in some order.���7^[ // (50% * 50%) + (25% * 67%) = 41.7% chance that the output is `['a', 'c']` in some order.���8^[ // (25% * 33%) + (25% * 33%) = 16.6% chance that the output is `['b', 'c']` in some order.���9pm println!("{:?}", choices.choose_multiple_weighted(&mut rng, 2, |item| item.1).unwrap().collect::<Vec<_>>());�<�:����:74 [`choose_multiple`]: IndexedRandom::choose_multiple�ā<�����������������������������q�aX��ޔ�������������Ĉ�;�n����
��������*�����<����<���<���*�<��
,�=���=�������
��>�����
���
�>���
L�>
��������
$�<�9�<��
4�<�64�<������,�@��������������������
����
��C;��AJڽ
�A���BGD This trait is implemented automatically for every type implementing���B85 [`IndexedRandom`] and [`std::ops::IndexMut<usize>`].���C��߹��C���l�C��|�C�߹=��
1��
$߹O��
C��
6��������Eh��C&# Uniformly sample one element (mut)��C���CJG Returns a mutable reference to one uniformly-sampled random element of���D/��
�D���E%��
T�E�����������������������;t������
�����E����E���F
����$�E�9�E(*��N���G)& Biased sampling for one element (mut)��G���GNK Returns a mutable reference to one element of the slice, sampled according���HG��
�I���ID��
��IJ��
��JG��
�K���K3��
��K8��
��L+��
�L���L! See also [`choose_weighted`].��L���L0- [`choose_mut`]: IndexedMutRandom::choose_mut���M74 [`choose_weighted`]: IndexedRandom::choose_weighted���M<��
��N�����������������������������q�aX���
��������L��*������N����N���N��
�N��
�N���O�������
��O��������
�P��
|�P��
l�P��
4�P��
l�P
��������
��
$�N�9�N�64�O����������P5��Ql�Qd�Q,�Q��������������������
��
��
��
��V'��R;8 Extension trait on slices, providing shuffling methods.��S���SIF This trait is implemented on all `[T]` slice types, providing several���SKH methods for choosing and shuffling elements. You must `use` this trait:��T�<�T����T use rand::seq::SliceRandom;��T���T����T>; let mut bytes = "Hello, random!".to_string().into_bytes();��U bytes.shuffle(&mut rng);���U0- let str = String::from_utf8(bytes).unwrap();�ĀV println!("{}", str);�<�V����V'��
\�Vד
��V l,nmroHado !le�<�V��\�V��߹��V�����W�߹*Ս߹6Ս*��������[H��W%" Shuffle a mutable slice in place.��W���W3��
��X\Y The resulting permutation is picked uniformly from the set of all possible permutations.��X�l�X��Y�<�Y����Y��Y���Y����Y  let mut y = [1, 2, 3, 4, 5];���Z$! println!("Unshuffled: {:?}", y);�ĴZ y.shuffle(&mut rng);���Z$! println!("Shuffled:   {:?}", y);�<�Z��<�[������������[����[���[
����$�[�9�[(*��a���[-* Shuffle a slice in place, but exit early.��\���\HE Returns two mutable slices from the source slice. The first contains���\EB `amount` elements randomly permuted. The second has the remaining���])& elements that are not fully shuffled.��]���]JG This is an efficient method to select `amount` elements at random from���^1. the slice, provided the slice may be mutated.��^���^LI If you only need to choose elements randomly and `amount > self.len()/2`���_.+ then you may improve performance by taking���_C@ `amount = self.len() - amount` and using only the second slice.��`���`IF If `amount` is greater than the number of elements in the slice, this���a  will perform a full shuffle.��a���a85 For slices, complexity is `O(m)` where `m = amount`.�|�a��������
��
�������b����b��
,�c���c
����$�b�9�b��
4�b9;��c������c�������c�c������c�
���$�c��dJ�O�������d���l�d���|�d��+-��d������d�������� ��eH<�e�������������e����e���e
�����$�e�9�e(*��gw|�g�����������������g����g���h
�����$�g�9�g��
4�g13��sa�'��������������T�t���t������s�����s���'�t���'�t������J�J�J���sIK�~��L�t$�t���'����t($�t��������������������;t������J��t�
��'����$�t�v�������������������������v-L�v��������v�
��'����$�v��wn�'���������T�w���w��Ļw���w���w���w����I��w)+�IK���x�x������x�
��'����$�xT�	4�	������������$��:�����?���,��a���$��`����`��	AddAssign�L������
\��
����0l�����d�!�����<��
����������<�������	\����"T��t�Ȕ����$���%����T�q��^l�
���������
��
! Returns the number of indices��
������
�
�$�
����&# Returns `true` if the length is 0.�D��������
�$���*��*' Return the value at the given `index`.�����FC (Note: we cannot implement [`std::ops::Index`] because of lifetime��� restrictions.)�,��������
�$��,���#��JG Return result as a `Vec<usize>`. Conversion may or may not be trivial.�D����?�?��?���:�?�	�:$x��Lk�����
�$�����������������������������������&��<9 Iterate over the indices as a sequence of `usize` values�$�����������������?�:��������
�$��������H�H�H�l�D�����L�$�����&��MJ Convert into an iterator over the indices as a sequence of `usize` values�L�������
�$����������&������������
�$��,�t�D������������������	D����������������	����  ������ $� ������
��� ��! �������!$�!������
���!��#"8��������J�J�J��L�$$�$����$#$�$��������$�
�8$�$��$�%����������������&���������������	��&-L�&��������&�
�8$�&��(+8������*"������J�J�J��L�+$�+����+($�+��������������������;t������J��+�
�$�+��+�,����������������-�����������������--L�-��������-�
�$�-��.��/+����8b��0KH Randomly sample exactly `amount` distinct indices from `0..length`, and���01. return them in random order (fully shuffled).��1���1LI This method is used internally by the slice sampling methods, but it can���1MJ sometimes be useful to have the indices themselves so this is provided as���2 an alternative.��2���2IF The implementation used is not specified; we automatically select the���3HE fastest available algorithm for the `length` and `amount` parameters���3LI (based on detailed profiling on an Intel Haswell CPU). Roughly speaking,���4NK complexity is `O(amount)`, except that when `amount` is small, performance���4KH is closer to `O(amount^2)`, and when `length` is close to `amount` then���5
 `O(length)`.��5���5NK Note that performance is significantly better over `u32` indices than over���6HE `u64` indices. Because of this we hide the underlying type behind an���6 abstraction, `IndexVec`.��7���7HE If an allocation-free `no_std` function is required, it is suggested���785 to adapt the internal `sample_floyd` implementation.��8���8  Panics if `amount > length`.�P|�84�8�����������8���8���9
����9�8length�4�8��
4�846��?�?���L�����B�B�������J���E>; Randomly sample `amount` distinct indices from `0..length`��E���ENK The result may contain less than `amount` indices if insufficient non-zero���FOL weights are available. Results are returned in an arbitrary order (there is���F+( no guarantee of shuffling or ordering).��G���GGD Function `weight` is called once for each index to provide weights.��G���GL����HM����H���I���I����IQN -   [`WeightError::InvalidWeight`] when a weight is not-a-number or negative.��I���IM��
|�J�������������������������q�aX���������*�����K���J���J���*�K���K����t�L�������L���L�L
�������9�K��4�K�64�K��
4�K��������U���U����������������*��������V
���V���V���V�����V���W��t�W���W��L�W���$�W����?�?��?���:�?�	�:$x��Lk�����d�W
���������9�V��4�V�64�V��
4�V����������W-l�WD�W��XT�X��X<�X���������Y���Y5c��kz��!D�Y,�Y�����D�Y�Y�����Y!������Y�������Y7\�Y������������������������;t������Less��������Greater��ji�/޾��Y�
���$�Y�,�Y��Z������Z�������Z'�Z������������[�
���$�[�,�[��] ������]�������]"�]����������]�
���$�]�,�]̖^������^��
,�i�����������������������T�����T��Y5c��kz������l`d�l�����������l���l���l
����9�l��4�l��
4�l/1$�p���������������������ubt�u�����������v���v���v
����9�v��4�v��
4�v/1��yW$�y���	߹��y���$�y���T�y���y���L�y���z��l�z�`�$�z���L�z�߹������������u��k��a��W��H߹������������������������~�����������z$�z����
����{�{����
��ܘ{D�{����
��$�{��{�����������{$�{���
���|�|���
���|D�|���
�$�|��}�����������}$�}���
���~�~���
�Խ~D�~���
�$�~�������������������*�����͂������ł���$����������?�?��?���:�?�	�:$x��Lk�����d��
������9Ȃ��4Ղ��
4�������
�uĽ
�u��
�u��5�u�u�u�u�u�ul���&# Low-level API for sampling indices�,�������������S���ٕD�	����d�"������)��T�ul���x��C@ Randomly sample exactly `N` distinct indices from `0..len`, and���
1���
���
JG This is implemented via Floyd's algorithm. Time complexity is `O(N^2)`���$! and memory complexity is `O(N)`.�����.+ Returns `None` if (and only if) `N > len`.�d���������������������;t����������������t����
�����9��	�358�$�����������������Ǯ
��ĸ+���-��%" Access the thread-local generator�����'$ Use [`rand::rng()`](rng()) instead.���Renamed to `rng`���9T�������
���=�=�O�O���-a�a�x�x���C��KH Generate a random value using the thread-local random number generator.�����PM This function is shorthand for <code>[rng()].[random()](Rng::random)</code>:�����IF -   See [`ThreadRng`] for documentation of the generator and security���VS -   See [`StandardUniform`] for documentation of supported types and distributions���t� # Examples���<�����! let x = rand::random::<u8>();���ձ����" let y = rand::random::<f64>();��� println!("{}", y);�����.+ if rand::random() { // generates a boolean���,)     println!("Better lucky than good!");�,���<�������IF If you're calling `random()` repeatedly, consider using a local `rng`���96 handle to save an initialization-check on each usage:���<�����2/ use rand::Rng; // provides the `random` method�����A> let mut rng = rand::rng(); // a local handle to the generator���� let mut v = vec![1, 2, 3];���ܱ for x in v.iter_mut() {���     *x = rng.random();�,���<�������/���" [`ThreadRng`]: rngs::ThreadRng�4��������� ��|� 
�����#w�� 1. Return an iterator over [`random()`] variates��!���!" This function is shorthand for���!;8 <code>[rng()].[random_iter](Rng::random_iter)()</code>.��!�l�!��!�<�!����"<9 let v: Vec<i32> = rand::random_iter().take(5).collect();���" println!("{v:?}");�<�"��\�#���Z����9��Zjk��L�<�������������#��|�#
�����){��$^[ Generate a random value in the given range using the thread-local random number generator.��$���%"���%MJ <code>[rng()].[random_range](Rng::random_range)(<var>range</var>)</code>.��%�l�%��&�<�&����&/, let y: f32 = rand::random_range(0.0..=1e9);���&���&���&IF let words: Vec<&str> = "Mary had a little lamb".split(' ').collect();���'=: println!("{}", words[rand::random_range(..words.len())]);�<�'����'KH Note that the first example can also be achieved (without `collect`'ing���(63 to a `Vec`) using [`seq::IteratorRandom::choose`].�d�)�������������)���)����)�������)
������j,�)=?BD��-"��*7���*���*"���+GD <code>[rng()].[random_bool](Rng::random_bool)(<var>p</var>)</code>.��+�l�+��+�<�+����+1. println!("{}", rand::random_bool(1.0 / 3.0));�<�,���,�d�,���,���,��P|�-\�-�
���-��4=��-H��L�.���.���.H����/J����/F����0&���0���0C����1D���1���1"���1if <code>[rng()].[random_ratio](Rng::random_ratio)(<var>numerator</var>, <var>denominator</var>)</code>.��2�d�2���2���27���3�l�3��3�<�3����3-* println!("{}", rand::random_ratio(2, 3));�<�3���3���3#��P|�4d�4�
���L�4��\�4��9+��58���6���6"���6<9 <code>[rng()].[fill](Rng::fill)(<var>dest</var>)</code>.��6�l�6��6�<�6���7���7 rand::fill(&mut arr[..]);�<�7���7���7MJ Note that you can instead use [`random()`] to generate an array of random���8MJ data, though this is slower for small elements (smaller than the RNG word�T�8 size).�P|�9$�9���������9�����9���$�9
�����$�9&(����fc The [Bernoulli distribution](https://en.wikipedia.org/wiki/Bernoulli_distribution) `Bernoulli(p)`.�����OL This distribution describes a single boolean random variable, which is true���<9 with probability `p` and false with probability `1 - p`.���C@ It is a special case of the Binomial distribution with `n = 1`.���T� # Plot�����GD The following plot shows the Bernoulli distribution with `p = 0.1`,�� `p = 0.5`, and `p = 0.9`.�����mj ![Bernoulli distribution](https://raw.githubusercontent.com/rust-random/charts/main/charts/bernoulli.svg)���l����\� ```rust���/, use rand::distr::{Bernoulli, Distribution};��	���	)& let d = Bernoulli::new(0.3).unwrap();���	'$ let v = d.sample(&mut rand::rng());���	74 println!("{} is from a Bernoulli distribution", v);�<�
���
�|�
��
���
FC This `Bernoulli` distribution uses 64 bits from the RNG (a `u64`),���FC so only probabilities that are multiples of 2<sup>-64</sup> can be���
 represented.�L���խ[��E���T�
,�

��(�m�����"$���������
�,� �n��(	�o����_�"$��������^�^��^��[�^���[����e�S�����	��
�,���H
�p��p�����68���������
��
�L�������0- Error type returned from [`Bernoulli::new`].�t�����o9AF9������� `p < 0` or `p > 1`.�%����9;����(�q�����"$���������
�,� �r��(
�s����_�"$��������^�^��^��[�^���[����e�S�����
��
�,���H�t��t�����68�����������
�L����u�����"�)+.08�:>@�������
��ĺ!��'$ An iterator over a [`Distribution`]�����HE This iterator yields random values of type `T` with distribution `D`���(% from a random generator of type `R`.�� ��� B? Construct this `struct` using [`Distribution::sample_iter`] or��� EB [`Rng::sample_iter`]. It is also used by [`Rng::random_iter`] and�܍! [`crate::random_iter`].�$�!������������!���!���!��jk��L�<����1368;=D�!,�!���4�!�!������!%<�!�����PhantomData�Rҹ��^=x��(�!v����������������_�a�_��o�_��}����_�hkorvy����������^�^��^��[�^���[����e�S������!�
������,�!�s��(��'<9 A [`Distribution`] which maps sampled values to type `S`��'���'A> This `struct` is created by the [`Distribution::map`] method.���(#  See its documentation for more.��(���������������(���(���(���(���S���t%���9;>@CEHJD�),�)���<�)$�)�����).<�)�����ϮRҹ��^=x����(�(w��������������A��@��?��>ʰo�_�}���_�������_�������������������^�^��^��[�^���[����e�S������(�
�������,�(����
��NK A distribution to sample floating point numbers uniformly in the half-open���2/ interval `(0, 1]`, i.e. including 1 but not 0.�����JG All values that can be generated are of the form `n * ε/2`. For `f32`���MJ the 24 most significant random bits of a `u32` are used and for `f64` the���IF 53 most significant bits of a `u64` are used. The conversion uses the�ԏ multiplicative method.�����IF See also: [`StandardUniform`] which samples from `[0, 1)`, [`Open01`]���LI which samples from `(0, 1)` and [`Uniform`] which samples from arbitrary�\�	 ranges.��	�l�	�<�	����	˨��	" use rand::distr::OpenClosed01;��
���
41 let val: f32 = rand::rng().sample(OpenClosed01);���
)& println!("f32 from (0, 1): {}", val);�<�������63 [`StandardUniform`]: crate::distr::StandardUniform���$! [`Open01`]: crate::distr::Open01���/, [`Uniform`]: crate::distr::uniform::Uniform�d�
����U>	w��:)����(�x�����"$���������
�,� �y��(�z����_�"$��������^�^��^��[�^���[����e�S�������
�,���8�{�����"$����
�����
IF A distribution to sample floating point numbers uniformly in the open���
:7 interval `(0, 1)`, i.e. not including either endpoint.�����OL All values that can be generated are of the form `n * ε + ε/2`. For `f32`���OL the 23 most significant random bits of an `u32` are used, for `f64` 52 from���;8 an `u64`. The conversion uses a transmute-based method.�����OL See also: [`StandardUniform`] which samples from `[0, 1)`, [`OpenClosed01`]���LI which samples from `(0, 1]` and [`Uniform`] which samples from arbitrary�\�����l��<�����˨�� use rand::distr::Open01;�����.+ let val: f32 = rand::rng().sample(Open01);���)¿<�������6����0- [`OpenClosed01`]: crate::distr::OpenClosed01���/��4�վK�
�`����)��վ(�|վ���"$��վվ���
�,� �}վ(�~վ��_�"$����վ��^�^��^��[�^���[����e�S�������
�,���8�վ���"$վ��
�����QR�0������7����
� ���@���*���#���50���������������������
��� ��9�(*��$'���#���%50�%�������������%����%���%
��� �%�9�%(*��+!վ�#���+50�+���վ��������,����,���,
��� �,�9�,(*��	��QR�0������7����
� ���@���*	���#���50���������������������
��� ��9�(*��$'	���#���%50�%�������������%����%���%
��� �%�9�%(*��+!	վ�#���+50�+���վ��������,����,���,
��� �,�9�,(*��*
���#���50���������������������
��� ��9�(*��*���#���50���������������������
��� ��9�(*��*���#���50���������������������
��� ��9�(*��*
���#���50���������������������
��� ��9�(*� �*���#�� �50 ������������� ���� ��� �
���  ��9 �(*�!�*���#��!�50!���������������!����!���!�
��� !��9!�(*�"�*���#��"�50"���������������"����"���"�
��� "��9"�(*�#�*���#��#�50#���������������#����#���#�
��� #��9#�(*�$�*���#��$�50$���������������$����$���$�
��� $��9$�(*�%�*���#��%�50%���������������%����%���%�
��� %��9%�(*�&�*���#��&�50&���������������&����&���&�
��� &��9&�(*�'�*���#��'�50'���������������'����'���'�
��� '��9'�(*�(�*���#��(�50(���������������(����(���(�
��� (��9(�(*�)�*���#��)�50)���������������)����)���)�
��� )��9)�(*�*�*���#��*�50*���������������*����*���*�
��� *��9*�(*����HE Sample a `u8`, uniformly distributed over ASCII letters and numbers:��� a-z, A-Z and 0-9.���l����<�����˨��" use rand::distr::Alphanumeric;���������	SP let chars: String = (0..7).map(|_| rng.sample(Alphanumeric) as char).collect();���	(% println!("Random chars: {}", chars);�<�
���
���
FC The [`SampleString`] trait provides an easier method of generating���
>; a random [`String`], and offers more efficient allocation:�<�����2/ use rand::distr::{Alphanumeric, SampleString};���B? let string = Alphanumeric.sample_string(&mut rand::rng(), 16);���*' println!("Random string: {}", string);�<�����|� # Passwords�����OL Users sometimes ask whether it is safe to use a string of random characters���
NK as a password. In principle, all RNGs in Rand implementing `CryptoRng` are���LI suitable as a source of randomness for generating passwords (if they are���HE properly seeded), but it is more conservative to only use randomness���HE directly from the operating system via the `getrandom` crate, or the���/, corresponding bindings of a crypto library.�����MJ When generating passwords or keys, it is important to consider the threat���LI model and in some cases the memorability of the password. This is out of���FC scope of the Rand project, and therefore we defer to the following�|� references:�����_\ - [Wikipedia article on Password Strength](https://en.wikipedia.org/wiki/Password_strength)���[X - [Diceware for generating memorable passwords](https://en.wikipedia.org/wiki/Diceware)�d���7�5)��)����(+������_�#%��������^�^��^��[�^���[����e�S�����+��
�,���(,�������#%�������,��
�,� -����8.�������#%����
�����85 Sample a [`u8`], uniformly distributed over letters:���
 a-z and A-Z.���l������OL You're able to generate random Alphabetic characters via mapping or via the���30 [`SampleString::sample_string`] method like so:���<�����˨��0- use rand::distr::{Alphabetic, SampleString};����� // Manual mapping�������QN let chars: String = (0..7).map(|_| rng.sample(Alphabetic) as char).collect();���(������,) // Using [`SampleString::sample_string`]���@= let string = Alphabetic.sample_string(&mut rand::rng(), 16);���*��<�����|�������(% Refer to [`Alphanumeric#Passwords`].�T����TQ��3K�')����(/������_�#%��������^�^��^��[�^���[����e�S�����/��
�,���(0�������#%�������0��
�,� 1����82�������#%����
��9�GQ����#��9�IA09�I������������9�I���9�I��9�I
��� 9�I�99�I(*�;�G���a�������P!�����;�H���#�&(�;�IA0;�I��������������;�I���;�I��;�I
����� ;�I�9;�I,.�=�G���a��L���ؐ
�����P�
�=�H!�������#�MP;=�=�IA0=�I������ӻ������=�I���=�I��=�I
�����ӻ =�I�9=�I02�?�G���a��L�j����ؐ
Z��
@�����P�
�?�H��
	!�������#�����PR�?�IA0?�I��������������?�I���?�I��?�I
��������� ?�I�9?�I46�A�G���a��L�j�������ؐ
���
�ɕ
p�����P�
�A�H��
	�
!���� ���#�),��eg�A�IA0A�I�������������	�	A�I���A�I��A�I
����������� A�I�9A�I8:�C�G���a�	�L�	j�	��	�c�	�	�	�	�	�	
ؐ
|��
bɕ
ɘ
������P�
�C�H��
	�
�
!����&���	#�	������z|�C�IA0C�I����������	��	�	C�I�	��ѝ
C�I�ѝ
C�I
�	����������ѝ
 C�I�9C�IDF�E�G���a�	�L�	j�	��	�c�	��	�	�	�	�	�	�	ؐ
h��
Nɕ
ɘ
���
������P�
�E�H��
	�
�
��
!����,���	#�	������sv���E�IA0E�I����������	��	�	E�I�	��ڡ
E�I�ڡ
E�I
�	������������ڡ
 E�I�9E�IHJ�G�G���a�	�L�	j�	��	�c�	��	�d�	�	�	�	�	�	�	�	ؐ
�	��
jɕ
!ɘ
���
��
�����P�
�G�H��
	�
�
��
��
!!����2���	#�	

����=@�������G�IA0G�I����������	��	�	G�I�	����
G�I���
G�I
�	����������������
 G�I�9G�ILN�I�G���a�	�L�	j�	��	�c�	��	�d�	�d�	�	�	�	�	�	�	�	�	ؐ
���
�
ɕ
m	ɘ
���
K�
_��
C�����P�
�I�H��
	�
�
��
��
!Ǥ
'!����8���	#�	Z]HK


��������I�IA0I�I����������	��	�	I�I�	����
I�I���
I�I
�		������������������
 I�I�9I�IPR�K�G��	�a�	�L�	j�	��	�c�	��	�d�	�d�	�5�		�	�	�	�	�	�	�	�	�	ؐ
L��
2
ɕ
�ɘ
p
��
��
���
��
s�����P�
�K�H��
	�
�
��
��
!Ǥ
'��
-!����>���	#�	���
�
��"~	�	����BE���K�IA0K�I������	����		��		�		K�I�	����
K�I���
K�I
�	
��������������������
 K�I�9K�ITV�M�G��
�a�	�L�	j�	��	�c�	��	�d�	�d�	�5�	�f�		
�	�	�	�	�	�	�	�	�		�	ؐ
���
�ɕ
�ɘ

��
s�
�	��
k�
�
������P�
�M�H��
	�
�
��
��
!Ǥ
'��
-��
3!����D���	#�	����IL�
�
7:S
V
?B�������M�IA0M�I������
����	
��	
�	
M�I�	��޵
M�I�޵
M�I
�	��������������������޵
 M�I�9M�IXZ�O�G���a�	�L�	j�	��	�c�	��	�d�	�d�	�5�	�f�		�g�	
�	�	
�	�	�		�	�	�	�	�	�	ؐ
���
�ɕ
qɘ
���
O�
c��
G
�
��
��
������P�
�O�H��
	�
�
��
��
!Ǥ
'��
-��
3�
9!����J���	#�	��sv25�� #<
?
(+��ps�����O�IA0O�I����������	��	�	O�I�	��׻
O�I�׻
O�I
�	����������������������׻
 O�I�9O�I\^�Q�G���a�	�L�	j�	��	�c�	��	�d�	�d�	�5�	�f�		�g�	
�h�	�	�	�	�	�	
�	�	�		�	�	�	�	ؐ
���
�ɕ
}ɘ
��
[�
o��
S
�
�
���
���
�����P�
�Q�H��
	�
�
��
��
!Ǥ
'��
-��
3�
9˹
?!����P���	#�	����KN��9<UXAD��	�	��
�Q�IA0Q�I����������	��	�	Q�I�	����
Q�I���
Q�I
�	
��������������������������
 Q�I�9Q�I`b�R��	�	���	XR�0R��	�	�R�% R���	�	
�	 R���R��S��	�	���	XS�0S��	�	�S�% S���	�	
�	 S���S��T��	�	���	XT�0T��	�	�T�% T���	�	
�	 T���T��U� �	�	���	XU�0U��	�	�U�% U���	�	
�	 U���U��V�!�	�	���	XV�0V��	�	�V�% V���	�	
�	 V���V�5�PV���W�""�	�	���	XW�"0W�"�	�	�W�#' W�#��	�	
�	 W�#��W�#�X�D#�	�	�	�	�	�	�	�	���������	�	�	�	�	�	HX�D X�D�	�	HX�D X�D�	�	�X�E$0X�E�	�	
�	 X�E�(X�E�X�F$0X�F�	�	
�	 X�F�(X�F�X�GPX�G�	�	
�	 X�G�X�H+8X�H��	�	
�	 X�H�(X�H�X�I2xX�I��
�	�	
�	 X�I�� X�I�X�J'hX�J��	�	
�	�X�K�X�O#�_�D$�	�	�	�	�	�
�
�
���������	�
�
�
�	�	H_�D _�D�	�	H_�D _�D�	�	�_�E$0_�E�	�	
�	 _�E�(_�E�_�F$0_�F�	�	
�	 _�F�(_�F�_�GP_�G�	�	
�	 _�G�_�H+8_�H��	�	
�
 _�H�(_�H�_�I2x_�I��
�	�	
�
 _�I�� _�I�_�J'h_�J��	�	
�
�_�K�_�O$��:7 A distribution to uniformly sample elements of a slice�����NK Like [`IndexedRandom::choose`], this uniformly samples elements of a slice���NK without modification of the slice (so called "sampling with replacement").���NK This distribution object may be a little faster for repeated sampling (but���)& slower for small numbers of samples).���|� ## Examples�����:7 Since this is a distribution, [`Rng::sample_iter`] and���;8 [`Distribution::sample_iter`] may be used, for example:�<�����30 use rand::distr::{Distribution, slice::Choose};�����+( let vowels = ['a', 'e', 'i', 'o', 'u'];���	41 let vowels_dist = Choose::new(&vowels).unwrap();��	���	" // build a string of 10 vowels���	*' let vowel_string: String = vowels_dist���
&#     .sample_iter(&mut rand::rng())���
     .take(10)���
���
���
! println!("{}", vowel_string);���
'$ assert_eq!(vowel_string.len(), 10);���?< assert!(vowel_string.chars().all(|c| vowels.contains(&c)));�<�������DA For a single sample, [`IndexedRandom::choose`] may be preferred:�<�����!��
����+��
��
���
���
52 println!("{}", vowels.choose(&mut rng).unwrap());�<�
���
���
@= [`IndexedRandom::choose`]: crate::seq::IndexedRandom::choose���1. [`Rng::sample_iter`]: crate::Rng::sample_iter�%4��'�
��
�
�
�����'t���X��o�x��
�
�
�684,���
�
����,���
�
����\���
�
��(f���'�
��
�
�
���_��B���
�_�
����df��������^�^��^��[�^���[����e�S�����
f��

�
�'��,��(g���'�
��
�
�
�����C���
��
��ik�������
g��

�
�'��,� h���'�
��
�
�
�����C���������� Error: empty slice�����HE This error is returned when [`Choose::new`] is given an empty slice.�',���T`l�?��x�
�(�
�
��(o�����
�_�
#%��������^�^��^��[�^���[����e�S�����
o��

�
,���(p�����
��
#%�������
p��

�
,� q����Ԥ��JG The back-end implementing [`UniformSampler`] for floating-point types.�����OL Unless you are implementing [`UniformSampler`] for your own type, this type���96 should not be used directly, use [`Uniform`] instead.���Գ # Implementation notes�����MJ `UniformFloat` implementations convert RNG output to a float in the range���	NK `[1, 2)` via transmutation, map this to `[0, 1)`, then scale and translate���	NK to the desired range. Values produced this way have what equals 23 bits of���
30 random digits for an `f32` and 52 for an `f64`.��
���
 # Bias and range errors�����MJ Bias may be expected within the least-significant bit of the significand.���MJ It is not guaranteed that exclusive limits of a range are respected; i.e.���KH when sampling the range `[a, b)` it is not guaranteed that `b` is never�d�	 sampled.��
���
  [`new`]: UniformSampler::new���
41 [`new_inclusive`]: UniformSampler::new_inclusive���
6���� [`Uniform`]: super::Uniform�)d��*�
�
�����+���{��
�
!4����
�
��D�,���
�
��(t���*�
�
�����-���
��
��KM�������
t��

�
��,� u���*�
�
��*���6��?B(v���*�
�
��u�_��6���
�_�
��VX��������^�^��^��[�^���[����e�S�����
v��

�
��,��Hw���*�
�
��|����=A��*�
�
��������t���
��
�������������
w��

�
��L����x�*���
�x�;Xx�����
�

�
�lx��� x��l(x��x�*�
�`x�8x��
�
���x�)*���
�
�
�
�
�
�������
�
�
�
�
0x�x��
�
�x��x�������������������������q�aX�����
�*�
�*�
�
�
�
��(x��������x���(x������
�x�
�
������(x���0x�x�x��x�!�hx�!������
�
�*�
�*�
�
�
�
��(x�"��
�x�"��(x�#��
�x�"
�
������(x�!��0x�!x�!x�!�x�(90x�(����������
�
��
�
x�)�
��x�(��x�(
�
�� x�)�9x�)(*�x�/�hx�/����������������������������q�aX��
���
��
�*�
�*�
�
�
�
x�0�
��x�/��x�/��(x�0�����
�x�0��(x�1�����
�x�1
�
��������(x�/��0x�0�9x�0xzx�/x�/�x�2��x�2�����������
��
�*�
�*�
�
�
�
x�3�
��x�2��x�2��(x�3ԃ�x�3��(x�4��x�4
�
��������(x�2��0x�2�9x�3`bx�2x�2�}�+���
�}�;X}�����
�

�
�l}��� }��l(}��}�+�
�`}�8}��
�
���}�)+���
�
�
�
�
�
�������
�
�
�
�
0}�}��
�
�}��}�������������������������q�aX�����
�*�
�*�
�
�
�
��(}��������}���(}����Ȋ�}�
�
������(}���0}�}�}��}�!�h}�!�������
�*�
�*�
�
�
�
��(}�"���}�"��(}�#��}�"
�
������(}�!��0}�!}�!}�!�}�(90}�(��������Ȋ�
��
�
}�)�
��}�(��}�(
�
�� }�)�9}�)(*�}�/�h}�/����������������������������q�aXȊ���
��
�*�
�*�
�
�
�
}�0�
��}�/��}�/��(}�0���Ȋ�}�0��(}�1���Ȋ�}�1
�
��������(}�/��0}�0�9}�0xz}�/}�/�}�2��}�2��������֎�
��
�*�
�*�
�
�
�
}�3�
��}�2��}�2��(}�3���}�3��(}�4���}�4
�
��������(}�2��0}�2�9}�3`b}�2}�2����C@ The back-end implementing [`UniformSampler`] for integer types.�����O��
��9��
��԰��
����JG For simplicity, we use the same generic struct `UniformInt<X>` for all���	PM integer types `X`. This gives us only one field type, `X`; to store unsigned���	PM values of this size, we take use the fact that these conversions are no-ops.��
���
LI For a closed range, the number of possible numbers we should generate is���NK `range = (high - low + 1)`. To avoid bias, we must ensure that the size of���LI our sample space, `zone`, is a multiple of `range`; other values must be���52 rejected (by replacing with a new random sample).�����LI As a special case, we use `range = 0` to represent the full range of the���
?< result type (i.e. for `new_inclusive($ty::MIN, $ty::MAX)`).��
���
JG The optimum `zone` is the largest product of `range` which fits in our���PM (unsigned) target type. We calculate this by calculating how many numbers we���VS must reject: `reject = (MAX + 1) % range = (MAX - range + 1) % range`. Any (large)���MJ product of `range` will suffice, thus in `sample_single` we multiply by a���GD power of 2 via bit-shifting (faster but may cause more rejections).�����NK The smallest integer PRNGs generate is `u32`. For 8- and 16-bit outputs we���MJ use `u32` for our `zone` and samples (because it's not slower and because���OL it reduces the chance of having to reject a sample). In this case we cannot���JG store `zone` in the target type since it is too large, however we know���*' `ints_to_reject < range <= $uty::MAX`.�����LI An alternative to using a modulus is widening multiply: After a widening���OL multiply by `range`, the result is in the high word. Then comparing the low���?< word against `zone` makes sure our distribution is uniform.���T� # Bias�����NK Unless the `unbiased` feature flag is used, outputs may have a small bias.���A����MJ 56 (`i8` and `u8`), 48 (`i16` and `u16`), 96 (`i32` and `u32`), 64 (`i64`���(% and `u64`), 128 (`i128` and `u128`).�������
,T��*�
�
�����F�I5v�L�
�
�
!#�����
�
����,���
�
��L�4���
�
��(����*�
�
�����.���
��
��LN�������
���

�
��,� ����*�
�
��K��
/��X[(����*�
�
�����
/���
�_�
��OQ��������^�^��^��[�^���[����e�S�����
���

�
��,���H����*�
�
�������>B��*�
�
�����
i���
��
�������������
���

�
��L�������*�
�
������7���
��
��W�^`ce8�osu�����
���

�
���Ї�-�
�`��8���
�
�����'-���
�
�
�
�
�
�������
�
�
�
�
0�����
�
������������������������������q�aX�����
�*�
�*�
�
�
�
��(�� �����������(�� ������� 
�
������(����0���������#�h��#����˯�
�*�
�*�
�
�
�
��(��$ڰ���$��(��%�����%
�
������(��#��0��$��#��#���+9���+7��0��+����������
��
�
��+�
����+����+
�
�� ��,�9��,,.���0�h��0����������������������������q�aX����
��
�*�
�*�
�
�
�
��1�
����0����0��(��2�������2��(��2�������2
�
��������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7�����������
��
�*��*��
����8�
����7����7��(��9Զ���9��(��9�����9
�
��������(��7��0��8�9��8ik��7��7Ј�.��`��8���������'.�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#��������*��*������(��$�����$��(��%˽���%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������������*��*������8�����7����7��(��9�����9��(��9�����9
���������(��7��0��8�9��8ik��7��7Љ�/��`��8���������'/�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#��������*��*������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������������*��*������8�����7����7��(��9�����9��(��9�����9
���������(��7��0��8�9��8ik��7��7Њ�0��`��8���������'0�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#��������*��*������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������������*��*������8�����7����7��(��9�����9��(��9�����9
���������(��7��0��8�9��8ik��7��7Ћ�1��`��8���������'1�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#��������*��*������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������������*��*������8�����7����7��(��9�����9��(��9�����9
���������(��7��0��8�9��8ik��7��7Ќ�2��`��8���������'2�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#��������*��*������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������������*��*������8�����7����7��(��9�����9��(��9�����9
���������(��7��0��8�9��8ik��7��7Ѝ�3��`��8���������'3�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#��������*��*������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������؀����*��*������8�����7����7��(��9�����9��(��9�����9
���������(��7��0��8�9��8ik��7��7Ў�4��`��8���������'4�������������������0������������������������������������q�aX������*��*������(�� �����������(�� ������� 
�������(����0���������#�h��#����ч��*��*������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7��0��+���������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX�������*��*������1�����0����0��(��2�������2��(��2�������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������������*��*������8�����7����7��(��9ڎ���9��(��9�����9
���������(��7��0��8�9��8ik��7��7Џ�5��`��8���������'5�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#��������*��*������(��$�����$��(��%ѕ���%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7�������������*��*������8�����7����7��(��9�����9��(��9��9
���������(��7��0��8�9��8ik��7��7А�6��`��8���������'6�������������������0������������������������������������q�aX������*��*������(�� �����������(�� �������� 
�������(����0���������#�h��#�������*��*������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7��0��+����������������+�����+����+
��� ��,�9��,,.���0�h��0����������������������������q�aX��������*��*������1�����0����0��(��2��������2��(��2��������2
���������(��0��0��1�9��1����0��0���7����5/���5����5A�����6@�����7��������������*��*������8�����7����7��(��9����9��(��9�����9
���������(��7��0��8�9��8ik��7��7�����=: The back-end implementing [`UniformSampler`] for `usize`.�������
������LI Sampling a `usize` value is usually used in relation to the length of an���MJ array or other memory structure, thus it is reasonable to assume that the����KH vast majority of use-cases will have a maximum size under [`u32::MAX`].����LI In part to optimise for this use-case, but mostly to ensure that results��ςPM are portable across 32-bit and 64-bit architectures (as far as is possible),����?< this implementation will use 32-bit sampling when possible.�7d�����oS�ݩ�����T�����dɉ,ɉ���l��4�����d�4����(���	������%'�����������
�,�� ���	���(���	�����_�%'��������^�^��^��[�^���[����e�S���������
�,����H�Ä	���������:<����������Ä�
�LÄ���΄	������%�,.138�=AC������΄�
�΄��
	��<	9 The back-end implementing [`UniformSampler`] for `char`.��	���O	��
��9	��
�	���N	K This differs from integer range sampling since the range `0xD800..=0xDFFF`���L	I are used for surrogate pairs in UCS and UTF-16, and consequently are not���N	K valid Unicode code points. We must therefore avoid sampling values in this�T�		 range.�;\�
	����ӫ�M+�ľ
	<�
	�����(��		������$&���������		�
�,�		 ��		���(��		�����_�$&��������^�^��^��[�^���[����e�S�������		�
�,�		��H��		���������9;�����������		�
�L�		����		������$�+-028�<@B�������		�
��		��!	��@	= The back-end implementing [`UniformSampler`] for `Duration`.��	���P	M Unless you are implementing [`UniformSampler`] for your own types, this type��� 9	��
<|�!	��r��_��r��̅"	$�"	�����\�"	4�"	���(��!	������$&���������!	�
�,�!	 ��!	���(��!	�����_�$&��������^�^��^��[�^���[����e�S�������!	�
�,�!	��H��!	���������9;�����������!	�
�L�!	����!	������$�+-028�<@B�������!	�
��!	Ġ#	=��#	����$�k������������,�#	=�����L�#	$�#	�����#	,�#	����
�
�
���
���l�
҆@s4�$	=�������$	,�$	����
�
�
���
���l�
҆@s,�$	=�����l�$	D�$	���t�$	L�$	�����$	$�$	�����(��"	�����_�$&��������^�^��^��[�^���[����e�S�������"	�
�,�"	�� ��"	���(��"	������$&���������"	�
�,�"	H��"	���������9;�����������"	�
�L�"	����"	������$�+-028�<@B�������"	�
��"	t�"
��!B
? Error type returned from [`Uniform::new`] and `new_inclusive`.�>,�"
��t%��7�8������T�"
��"6
3 `low > high`, or equal in case of exclusive range.�>E����Y[����L�#
��#M
J Input or range `high - low` is non-finite. Not relevant to integer types.�>\����pr����(��"
������$&���������"
�
�,�"
 ��"
���(��"
�����_�$&��������^�^��^��[�^���[����e�S�������"
�
�,�"
��H��"
���������9;�����������"
�
�L�"
����"
����
��
$�+-028�<@B�������"
�
�
�"
߭��'/
, Sample values uniformly between two bounds.��'
���'
 # Construction��'
���'G
D [`Uniform::new`] and [`Uniform::new_inclusive`] construct a uniform���(O
L distribution sampling from the given `low` and `high` limits. `Uniform` may���)R
O also be constructed via [`TryFrom`] as in `Uniform::try_from(1..=6).unwrap()`.��)
���)P
M Constructors may do extra work up front to allow faster sampling of multiple���*I
F values. Where only a single sample is required it is suggested to use���*H
E [`Rng::random_range`] or one of the `sample_single` methods instead.��+
���+H
E When sampling from a constant range, many calculations can happen at���,N
K compile-time and all methods should be fast; for floating-point ranges and���,O
L the full range of integer types, this should have comparable performance to���-A
> the [`StandardUniform`](super::StandardUniform) distribution.��-
���-
 # Provided implementations��.
���.Q
N - `char` ([`UniformChar`]): samples a range over the implementation for `u32`���.O
L - `f32`, `f64` ([`UniformFloat`]): samples approximately uniformly within a���/P
M   range; bias may be present in the least-significant bit of the significand���0H
E   and the limits of the input range may be sampled even when an open���0
   (exclusive) range is used���0J
G - Integer types ([`UniformInt`]) may show a small bias relative to the���1N
K   expected uniform distribution of output. In the worst case, bias affects���2P
M   1 in `2^n` samples where n is 56 (`i8` and `u8`), 48 (`i16` and `u16`), 96���2G
D   (`i32` and `u32`), 64 (`i64` and `u64`), 128 (`i128` and `u128`).���32
/   The `unbiased` feature flag fixes this bias.���3F
C - `usize` ([`UniformUsize`]) is handled specially, using the `u32`���4P
M   implementation where possible to enable portable results across 32-bit and���4
   64-bit CPU architectures.���5O
L - `Duration` ([`UniformDuration`]): samples a range over the implementation���5
   for `u32` or `u64`���5K
H - SIMD types (requires [`simd_support`] feature) like x86's [`__m128i`]���6G
D   and `std::simd`'s [`u32x4`], [`f32x4`] and [`mask32x4`] types are���7I
F   effectively arrays of integer or floating-point types. Each lane is���7O
L   sampled independently from its own range, potentially with more efficient���8G
D   random-bit-usage than would be achieved with sequential sampling.��8
�l�8
��9
�<�9
����9-
���9
���98
5 let between = Uniform::try_from(10..10000).unwrap();���9
����:
 let mut sum = 0;���:
 for _ in 0..1000 {���:(
%     sum += between.sample(&mut rng);�,�:
����:
 println!("{}", sum);�<�;
���;
���;@
= For a single sample, [`Rng::random_range`] may be preferred:��;
�<�;
����;
˨�;
���;
����<,
) println!("{}", rng.random_range(0..10));�<�<
���<
���<
 [`new`]: Uniform::new���<-
* [`new_inclusive`]: Uniform::new_inclusive���=,
) [`Rng::random_range`]: Rng::random_range���=L
I [`__m128i`]: https://doc.rust-lang.org/core/arch/x86/struct.__m128i.html���>
 [`u32x4`]: std::simd::u32x4���>
 [`f32x4`]: std::simd::f32x4���>%
" [`mask32x4`]: std::simd::mask32x4���>H
E [`simd_support`]: https://github.com/rust-random/rand#crate-features�?<�A
�*�
�
���A
��l�A
���l�
҆@s�
�
����߭W������
�

�
��qsT�B
��
�
��(��?
��*�
�
�����.������B���
��
��`b�������
��?
�

�
��,�?
 ��?
��*�
�
��u��
/��z���D����(��?
��*�
�
�����
/����_��D���
�_�
��df��������^�^��^��[�^���[����e�S�����
��?
�

�
��,�?
�H��?
��*�
�
����������EI��*�
�
��%��
p��*���������
��
VY�����������
��?
�

�
��L�?
���?
��*�
�
���ެ/������D���
��
&)d�kmpr8�|�������
��?
�

�
���?
����$
@���
�
���
�
���M
h��
��������������������������q�aX���
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
���
�

�
 ���
����-
@���
�
���
�
���M
h��
���������
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
�Ɇ
�

�
 �ʆ
����$
A���
�
���
�
���M
h��
��������������������������q�aX���
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
���
�

�
 ���
����-
A���
�
���
�
���M
h��
��������
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
�Ɇ
�

�
 �ʆ
����$
B���
�
���
�
���M
h��
��������������������������q�aX���
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
���
�

�
 ���
����-
B���
�
���
�
���M
h��
���������
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
�Ɇ
�

�
 �ʆ
����$
C���
�
���
�
���M
h��
��������������������������q�aX���
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
���
�

�
 ���
����-
C���
�
���
�
���M
h��
���������
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
�Ɇ
�

�
 �ʆ
����$
D���
�
���
�
���M
h��
��������������������������q�aX���
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
���
�

�
 ���
����-
D���
�
���
�
���M
h��
��������
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
�Ɇ
�

�
 �ʆ
����$
E���
�
���
�
���M
h��
��������������������������q�aX���
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
���
�

�
 ���
����-
E���
�
���
�
���M
h��
���������
��
�
���
�
����
��8���

�
�� ���
�9���
02�
@���
�����
�Ɇ
�

�
 �ʆ
��7��=: A distribution using weighted sampling of discrete items.�����KH Sampling a `WeightedIndex` distribution returns the index of a randomly���HE selected element from the iterator used when the `WeightedIndex` was���NK created. The chance of a given element being picked is proportional to the���HE weight of the element. The weights can use any type `X` for which an���OL implementation of [`Uniform<X>`] exists. The implementation guarantees that���IF elements with zero weight are never picked, even when the weights are���	 floating point numbers.��	���	 # Performance��	���	HE Time complexity of sampling from `WeightedIndex` is `O(log N)` where���
! `N` is the number of weights.���
P����K������LI A `WeightedIndex<X>` contains a `Vec<X>` and a [`Uniform<X>`] and so its���OL size is the sum of the size of those objects, possibly plus some alignment.��
���
LI Creating a `WeightedIndex<X>` will allocate enough space to hold `N - 1`���
KH weights of type `X`, where `N` is the number of weights. However, since���KH `Vec` doesn't guarantee a particular growth strategy, additional memory���JG might be allocated but not used. Since the `WeightedIndex` object also���RO contains an instance of `X::Sampler`, this might cause additional allocations,���KH though for primitive types, [`Uniform<X>`] doesn't allocate any memory.�����A> Sampling from `WeightedIndex` will result in a single call to���PM `Uniform<X>::sample` (method of the [`Distribution`] trait), which typically���KH will request a single value from the underlying [`RngCore`], though the���GD exact number depends on the implementation of `Uniform<X>::sample`.���l����<���������-������" let choices = ['a', 'b', 'c'];���  let weights = [2,   1,   1];���5������� for _ in 0..100 {���TQ     // 50% chance to print 'a', 25% chance to print 'b', 25% chance to print 'c'���74     println!("{}", choices[dist.sample(&mut rng)]);�,�������52 let items = [('a', 0.0), ('b', 3.0), ('c', 7.0)];���MJ let dist2 = WeightedIndex::new(items.iter().map(|item| item.1)).unwrap();������SP     // 0% chance to print 'a', 30% chance to print 'b', 70% chance to print 'c'���85     println!("{}", items[dist2.sample(&mut rng)].0);�,���<�������)& [`Uniform<X>`]: crate::distr::Uniform�����	��^��Fl��*�
�
�����l���T���'�K��|���
�
�
13������
�
��|�d���
�
��������
�
��(����*�
�
�����
.��������@���
�_�
��^`��������^�^��^��[�^���[����e�S�����
���

�
��,��
(����*�
�
�����/��������C���
��
��ce�������
���

�
��,�H����*�
�
�������������LP��*�
�
�����
w������������
��
�������������
���

�
��L�����
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������
��
�
���
���
 ���
�
���<����������
���

�
 ��������I�
�
���
��� ���
�
���<����������
���

�
 ��������J�
�
���
��� ���
�
���<����������
���

�
 �����t�̷ Invalid weight errors�����<9 This type represents errors from [`WeightedIndex::new`],���GD [`WeightedIndex::update_weights`] and other weighted distributions.�3��K,������q�!��������������d���DA The input weight sequence is empty, too long, or wrongly ordered�KS�
�
��gi�
�
��l���OL A weight is negative, too large for the distribution, or not a valid number�K^�
�
��rt�
�
������>; Not enough non-zero weights are available to sample values�����JG When attempting to sample a single value this implies that all weights���IF are zero. When attempting to sample `amount` values this implies that���52 less than `amount` weights are greater than zero.�K;�
�
��PS�
�
��D���0- Overflow when calculating the sum of weights�K?�
�
��SU�
�
��(�������_�$&��������^�^��^��[�^���[����e�S��������
�,���(��������$&����������
�,� �����H�����������9;������������
�L�����������$�+-028�<@B��������
��ԲG��$%" The Standard Uniform distribution��%���%SP This [`Distribution`] is the *standard* parameterization of [`Uniform`]. Bounds���%.+ are selected according to the output type.��&���&FC Assuming the provided `Rng` is well-behaved, these implementations���&@= generate values with the following ranges and distributions:��'���'C@ * Integers (`i8`, `i32`, `u64`, etc.) are uniformly distributed���'OL   over the whole range of the type (thus each possible value may be sampled���(   with equal probability).���(NK * `char` is uniformly distributed over all Unicode scalar values, i.e. all���)DA   code points in the range `0...0x10_FFFF`, except for the range���)B?   `0xD800...0xDFFF` (the surrogate code points). This includes���*&#   unassigned/reserved code points.���*UR   For some uses, the [`Alphanumeric`] or [`Alphabetic`] distribution will be more���+   appropriate.���+B? * `bool` samples `false` or `true`, each with probability 0.5.���+MJ * Floating point types (`f32` and `f64`) are uniformly distributed in the���,[X   half-open range `[0, 1)`. See also the [notes below](#floating-point-implementation).���-NK * Wrapping integers ([`Wrapping<T>`]), besides the type identical to their���-   normal integer variants.���.LI * Non-zero integers ([`NonZeroU8`]), which are like their normal integer���.&#   variants but cannot sample zero.��/���/PM The `StandardUniform` distribution also supports generation of the following���/;8 compound types where all component types are supported:��0���0JG * Tuples (up to 12 elements): each element is sampled sequentially and���0OL   independently (thus, assuming a well-behaved RNG, there is no correlation�Ĺ1   between elements).���1EB * Arrays `[T; n]` where `T` is supported. Each element is sampled���2JG   sequentially and independently. Note that for small `T` this usually���2MJ   results in the RNG discarding random bits; see also [`Rng::fill`] which���3KH   offers a more efficient approach to filling an array of integer types���3   with random data.���4KH * SIMD types (requires [`simd_support`] feature) like x86's [`__m128i`]���4G����5I����5MJ   sampled independently, potentially with more efficient random-bit-usage���6NK   (and a different resulting value) than would be achieved with sequential���7/,   sampling (as with the array types above).��7���7 ## Custom implementations��7���7VS The [`StandardUniform`] distribution may be implemented for user types as follows:��8�<�8����8 # #![allow(dead_code)]���8˨��852 use rand::distr::{Distribution, StandardUniform};��9���9 struct MyF32 {�|�9     x: f32,�,�9���9���92/ impl Distribution<MyF32> for StandardUniform {���:A>     fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> MyF32 {���:%"         MyF32 { x: rng.random() }�L�:��,�;��<�;���;���; ## Example usage�<�;��̲;����;%" use rand::distr::StandardUniform;��;���;74 let val: f32 = rand::rng().sample(StandardUniform);���<)& println!("f32 from [0, 1): {}", val);�<�<���<���<#  # Floating point implementation���=WT The floating point implementations for `StandardUniform` generate a random value in���=@= the half-open interval `[0, 1)`, i.e. including 0 but not 1.��>���>J����>M����?I���@FC multiplicative method: `(rng.gen::<$uty>() >> N) as $ty * (ε/2)`.��@���@LI See also: [`Open01`] which samples from `(0, 1)`, [`OpenClosed01`] which���AOL samples from `(0, 1]` and `Rng::random_range(0..1)` which also samples from���AOL `[0, 1)`. Note that `Open01` uses transmute-based methods which yield 1 bit���BPM less precision but may perform faster on some architectures (on modern Intel���C;8 CPUs all methods have approximately equal performance).��C���C! [`Uniform`]: uniform::Uniform���C'$ [`Wrapping<T>`]: std::num::Wrapping���D&# [`NonZeroU8`]: std::num::NonZeroU8���DL����E����E����E%����EH��L|�G��~����_�g)����(��F������$&���������F�
�,�F ��F���(��F�����_�$&��������^�^��^��[�^���[����e�S�������F�
�,�F��8��F������$&����
����\�
������\0 ��\���
���������\�����\����\
��� ��\�9��\,.���\�
������\0 ��\���
���������\�����\����\
��� ��\�9��\,.���\���������\0 ��\��������������\�����\����\
��� ��\�9��\,.���\���������\0 ��\��������������\�����\����\
��� ��\�9��\,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.���b���������b0 ��b��������������c�����b����c
��� ��c�9��c,.���k���������k0 ��k��������������k�����k����k
��� ��k�9��k,.9���M
J A wrapper around any PRNG that implements [`BlockRngCore`], that adds the���
 ability to reseed it.��
���F
C `ReseedingRng` reseeds the underlying PRNG in the following cases:��
���'
$ - On a manual call to [`reseed()`].���?
< - After `clone()`, the clone will be reseeded on first use.���I
F - After the PRNG has generated a configurable number of random bytes.��
���L
I # When should reseeding after a fixed number of generated bytes be used?��
���G
D Reseeding after a fixed number of generated bytes is never strictly���	N
K *necessary*. Cryptographic PRNGs don't have a limited number of bytes they���	P
M can output, or at least not a limit reachable in any practical way. There is���
.
+ no such thing as 'running out of entropy'.��

���P
M Occasionally reseeding can be seen as some form of 'security in depth'. Even���P
M if in the future a cryptographic weakness is found in the CSPRNG being used,���G
D or a flaw in the implementation, occasionally reseeding should make���9
6 exploiting it much more difficult or even impossible.��

���
L
I Use [`ReseedingRng::new`] with a `threshold` of `0` to disable reseeding���
,
) after a fixed number of generated bytes.��
���
 # Error handling��
���L
I Errors during reseeding are extremely unlikely, assuming the same random���O
L source successfully initialized the inner PRNG. A reseeding failure will be���4
1 reported via panic (new behaviour since v0.9.3).��
���5
2 Manually calling [`reseed()`] will report errors.��
�l�
��
�<�
����
����E
B use rand_chacha::ChaCha20Core; // Internal part of ChaChaRng that���;
8                              // implements BlockRngCore�ԇ
 use rand::rngs::OsRng;���!
 use rand::rngs::ReseedingRng;��
���T
Q let mut reseeding_rng = ReseedingRng::<ChaCha20Core, _>::new(0, OsRng).unwrap();��
���2
/ println!("{}", reseeding_rng.random::<u64>());��
���/
, let mut cloned_rng = reseeding_rng.clone();���I
F assert!(reseeding_rng.random::<u64>() != cloned_rng.random::<u64>());�<�
���
���4
1 [`BlockRngCore`]: rand_core::block::BlockRngCore���,
) [`ReseedingRng::new`]: ReseedingRng::new���&
# [`reseed()`]: ReseedingRng::reseed�Sd�
���>�����	�
��	$�
��	d�
��	\�
��	T�
������C.c������9��������
����������� 
�����(��
����>�����	���	��_��K�_��Y��	��	��	����_�BEIL����������^�^��^��[�^���[����e�S�������
�
�����,�
�Q��%
Tl�%
����>�����	�%
��	$�%
��D�౽�>V����+-02D�%
,�%
�����t�%
D�%
�����t�&
L�&
�����&
��&
���(��%
����>�����	���	�׹C�I����_�
xz��������^�^��^��[�^���[����e�S�������%
�
�����,�%
�,����52 A mock generator yielding very predictable output�����JG This generates an arithmetic sequence (i.e. adds a constant each step)���IF over a `u64` number, using wrapping arithmetic. If the increment is 0���$! the generator yields a constant.�����NK Other integer types (64-bit and smaller) are produced via cast from `u64`.�����OL Other types are produced via their implementation of [`Rng`](crate::Rng) or���1. [`Distribution`](crate::distr::Distribution).���LI Output values may not be intuitive and may change in future releases but��� are considered���DA [portable](https://rust-random.github.io/book/portability.html).���96 (`bool` output is true when bit `1u64 << 31` is set.)��	�l�	��	�<�	����	 # #![allow(deprecated)]���	˨��	" use rand::rngs::mock::StepRng;��
���
(% let mut my_rng = StepRng::new(2, 1);���
+( let sample: [u64; 3] = my_rng.random();���
" assert_eq!(sample, [2, 3, 4]);�<�����	Deprecated without replacement���GV<���	����
ʖ�������4�����	����4�����	����(�����	����_�+-��	��������^�^��^��[�^���[����e�S��������
�,���(�����	�����+-��	����������
�,�H�����	�� $���	�����GI��	������������
�L��������	�����+�24798�CGI��	��������
��߮��63 A small-state, fast, non-crypto, non-portable PRNG�����PM This is the "standard small" RNG, a generator with the following properties:�����JG - Non-[portable]: any future library version may replace the algorithm���,)   and results may be platform-dependent.���SP   (For a small portable generator, use the [rand_pcg] or [rand_xoshiro] crate.)���=: - Non-cryptographic: output is easy to predict (insecure)���+( - [Quality]: statistically good quality���LI - Fast: the RNG is fast for both bulk generation and single values, with���	%"   consistent cost of method calls�̺	 - Fast initialization���	IF - Small state: little memory usage (current state size is 16-32 bytes��
   depending on platform)��
��
 The current algorithm is���
OL `Xoshiro256PlusPlus` on 64-bit platforms and `Xoshiro128PlusPlus` on 32-bit���EB platforms. Both are also implemented by the [rand_xoshiro] crate.����� ## Seeding (construction)�����HE This generator implements the [`SeedableRng`] trait. All methods are���NK suitable for seeding, but note that, even with a fixed seed, output is not���
! [portable]. Some suggestions:��
���
PM 1.  To automatically seed with a unique seed, use [`SeedableRng::from_rng`]:�\�     ```���     use rand::SeedableRng;���!     use rand::rngs::SmallRng;���74     let rng = SmallRng::from_rng(&mut rand::rng());���      # let _: SmallRng = rng;�\�����(%     or [`SeedableRng::from_os_rng`]:�\�����      # use rand::SeedableRng;���#      # use rand::rngs::SmallRng;���*'     let rng = SmallRng::from_os_rng();��� ��\�����NK 2.  To use a deterministic integral seed, use `seed_from_u64`. This uses a���JG     hash function internally to yield a (typically) good seed from any�t�     input.�\�����2/     # use rand::{SeedableRng, rngs::SmallRng};���-*     let rng = SmallRng::seed_from_u64(1);��� ��\�����PM 3.  To seed deterministically from text or other input, use [`rand_seeder`].�����(% See also [Seeding RNGs] in the book.����� ## Generation�����LI The generators implements [`RngCore`] and thus also [`Rng`][crate::Rng].���5ʫ	����D��	��IF [Seeding RNGs]: https://rust-random.github.io/book/guide-seeding.html���I��	��IF [Quality]: https://rust-random.github.io/book/guide-rngs.html#quality���#  [`StdRng`]: crate::rngs::StdRng���1. [rand_pcg]: https://crates.io/crates/rand_pcg���96 [rand_xoshiro]: https://crates.io/crates/rand_xoshiro���fc [`rand_chacha::ChaCha8Rng`]: https://docs.rs/rand_chacha/latest/rand_chacha/struct.ChaCha8Rng.html���DA [`rand_seeder`]: https://docs.rs/rand_seeder/latest/rand_seeder/�WD���Q�����B������߮6�������
�������(��������$&����������
�,�(�������_�$&��������^�^��^��[�^���[����e�S��������
�,���H�����������9;������������
�L�����������$�+-028�<@B��������
����X������
D]q�\�����^�(�������_�$&��������^�^��^��[�^���[����e�S��������
�,���(��������$&����������
�,�H�����������9;������������
�L�����������$�+-028�<@B��������
��^�����-���0- A strong, fast (amortized), non-portable RNG�����JG This is the "standard" RNG, a generator with the following properties:�����J����,����EB   (For a portable version, use the [rand_chacha] crate directly.)���LI - [CSPRNG]: statistically good quality of randomness and [unpredictable]���KH - Fast ([amortized](https://en.wikipedia.org/wiki/Amortized_analysis)):���NK   the RNG is fast for bulk generation, but the cost of method calls is not���2/   consistent due to usage of an output buffer.��	���	PM The current algorithm used is the ChaCha block cipher with 12 rounds. Please���	MJ see this relevant [rand issue] for the discussion. This may change as new���
B? evidence of cipher security and performance becomes available.��
���
������PM This generator implements the [`SeedableRng`] trait. Any method may be used,���MJ but note that `seed_from_u64` is not suitable for usage where security is���PM important. Also note that, even with a fixed seed, output is not [portable].��
���
HE Using a fresh seed **direct from the OS** is the most secure option:�<�
����
,) # use rand::{SeedableRng, rngs::StdRng};���$! let rng = StdRng::from_os_rng();�Ԭ # let _: StdRng = rng;�<�������<9 Seeding via [`rand::rng()`](crate::rng()) may be faster:�<�����,����1. let rng = StdRng::from_rng(&mut rand::rng());�����<�������PM Any [`SeedableRng`] method may be used, but note that `seed_from_u64` is not���MJ suitable where security is required. See also [Seeding RNGs] in the book.�����������L����5ʫ	����D��	��I����PM [unpredictable]: https://rust-random.github.io/book/guide-rngs.html#security���I��	��wt [CSPRNG]: https://rust-random.github.io/book/guide-gen.html#cryptographically-secure-pseudo-random-number-generator���74 [rand_chacha]: https://crates.io/crates/rand_chacha���@= [rand issue]: https://github.com/rust-random/rand/issues/932�Z4������#��y�������-�6�������
�������(��������$&����������
�,�(�������_�$&��������^�^��^��[�^���[����e�S��������
�,���H�����������9;������������
�L�����������$�+-028�<@B��������
������
-* A reference to the thread-local generator��
���
LI This type is a reference to a lazily-initialized thread-local generator.���HE An instance can be obtained via [`rand::rng()`][crate::rng()] or via��� [`ThreadRng::default()`].���JG The handle cannot be passed between threads (is not `Send` or `Sync`).���t���	����IF Security must be considered relative to a threat model and validation���JG requirements. The Rand project can provide no guarantee of fitness for���@= purpose. The design criteria for `ThreadRng` are as follows:�����FC - Automatic seeding via [`OsRng`] and periodically thereafter (see���IF   ([`ReseedingRng`] documentation). Limitation: there is no automatic���52   reseeding on process fork (see [below](#fork)).���QN - A rigorusly analyzed, unpredictable (cryptographic) pseudo-random generator���`]   (see [the book on security](https://rust-random.github.io/book/guide-rngs.html#security)).���=:   The currently selected algorithm is ChaCha (12-rounds).���(%   See also [`StdRng`] documentation.���C@ - Not to leak internal state through [`Debug`] or serialization���   implementations.���IF - No further protections exist to in-memory state. In particular, the���NK   implementation is not required to zero memory on exit (of the process or���/,   thread). (This may change in the future.)���GD - Be fast enough for general-purpose usage. Note in particular that���IF   `ThreadRng` is designed to be a "fast, reasonably secure generator"���=:   (where "reasonably secure" implies the above criteria).�����KH We leave it to the user to determine whether this generator meets their���=: security requirements. For an alternative, see [`OsRng`].���T� # Fork�����KH `ThreadRng` is not automatically reseeded on fork. It is recommended to���PM explicitly call [`ThreadRng::reseed`] immediately after a fork, for example:�l�
 ```ignore��� fn do_fork() {���*'     let pid = unsafe { libc::fork() };���     if pid == 0 {���30         // Reseed ThreadRng in child processes:���!         rand::rng().reseed();�L���,���<�������OL Methods on `ThreadRng` are not reentrant-safe and thus should not be called���OL from an interrupt (e.g. a fork handler) unless it can be guaranteed that no���@= other method on the same `ThreadRng` is currently executing.�����/, [`ReseedingRng`]: crate::rngs::ReseedingRng���#��[L��������^<���� .� �����(��������$&����������
�,����t.bt�&������&a١�a���
�,�'���������������	����������ѡ�a�����������������Oa���a ��f�fStorage��f��f�f��fm�՟�����������ѡ�!a�����������������"Na���"a ��f�fآ�f��f�f��fm�՟�������������r5��p-* An iterator over multiple slice elements.��q��q This struct is created by���qZW [`IndexedRandom::choose_multiple`](trait.IndexedRandom.html#tymethod.choose_multiple).�b|�r�'�����������r���r���r���r��d�r����Ĉ�;�n����rGI�OQ�G,�r����'����s&D�s�������s <�s�����(��r��'�������������_��Z���g������_�GJ�QT�����������^�^��^��[�^���[����e�S�������r�
��'����,�r�d��	�� A vector of indices.�����30 Multiple internal representations are possible.�c�����#�2��Z��������������������	�	�	8�4�	t�	c����
�������������D�	��������	�	�	8�4�	t�	c����
�������������D�
����(��������$&����������
�,�(�������_�$&��������^�^��^��[�^���[����e�S��������
�,�����"��"$! Return type of `IndexVec::iter`.�dϡ�'����?�:�����������g�g�Z�h��g�h���g�h���gFPR<?���'�����g�g�Z�h��g�h���g�h���gFPR<?���'���"J���"�"�"8�4�"t�"dJ���
��'J�J�����������#����8���#�#�#8�4�#t�#d8���
��'8�8�������ȶ��#����(��"��'������_�eh79��������^�^��^��[�^���[����e�S�������"�
��',�"����)��))& Return type of `IndexVec::into_iter`.�e	���`]�}�H�������������������)�)�)8�4�)t�)e�
�бб������Ѻ��*��������*�*�*8�4�*t�*e����
��������������*����(��)������$&���������)�
�,�)(��)�����_�$&��������^�^��^��[�^���[����e�S�������)�
�,�)��<�������,t� �
&�,��1�7H�<��A��F�*L��Q�.W�.]
�b�1h
n�t�z�
�p	���#
����
��
�K����� �������#��#����&����,����/��/	�3�3� �7'!.�Q5r"<�SC�NJ�OQ�X�P_�f�m�tnQ{����/�����?��[�����	�����	��	�����6	�����$
��$
����M
����]
��;�}�3�$�w
+��25�9��@�G��Nl�U��\��c�4j�4q�Lx���M��M��O�i���Q�������H������e�a��
�
���L�����$��'�*1-l5�O �6'�7.�85k9<,<C�[JR@Q�_XyJ_�xf�Bm�At7A{�@��!
��?�>��(
��<��;��6
��:�8��7�i7����5�H5��4��"�H2��1�1��0?0�/#�*�,1�+8�$?L�$F`'M'T�&[�4b� i) p�wq~,��
�*	��=�����D�����
������������,�����+��>�����<��
�E�O���O&y�-�[4r�;�bB��I��P�eW��^�ge%�lR�sX�z0��������Y��������$��������)�������W�����c��n���Z�ɶ��[�%��]
ڴ�u�"�)��09�7b�>i�E!�LܓS�Z��aӑhڑo��vM�}T��ɐ�Ȍ�ό�#��8��?�����c��������K���H~�O~���|���2|�%{�,Bz!�)�y0�%8�x?�,G)xN�Vvw]�e�vl�tv{��]u� ���t�!���s�"��As�#���r�$���q�%��%q�&��qp�'���o(�
	o)�Un *�((f//f6�f=�eDIaKPaR	bY�``�_g9�Io�^v;�I~�]�=�I�t\�?�I��Z�A�I�4Y�C�I�:W�E�I�U�G�I��R�I�I�,P�K�I�rM�M�I	�J	O�I	lG	Q�I#	�6*	�61	�78	�5?	4F	
4M	�4T	�3[	.b	�,i	�,p	�-w	�+~	�+�	a(�	x�)�	d'�	A&�	H"�	}�)�	K!�	( �	^�	'�	.�	�	H�	O�	��	W�	��,
T
�
+	
��,
(%
�,
�3
��,<
�C
�J
��P
��,Y
��_
c�e
��k
��,t
��z
4��
u��
��,�
q��
��
F��
��,�
B��
���
��
��,�
��
���
���
��,�
���
x��
���
��,�
��I�@�
_�e����%��+C�1�7%�=+�C��I��O��U�[��a��g��me�s�y����*��0������������������������c���������j������������6�M�	ū-�����!4�'��-�3+�9��?�E��K��Q�Wz�]�c	�i��o�ua�{x����X��Н������������܏���1�����������ݍ����3����������
ߋ
��
5�
�� 
��&
��/
�5
��>
7�D
��M
��S
��\
�b
��k
:�q
��z
���
���
���
���
S��
,��
���
���
��
�m�
m�
#m�
�m�
<l�
��\�
�k�
��\�
�j�
��\�

j�
��\Ni
��c�h��k%�g+��c4g:��kC^fI��cR�eX��ka�dg��cp*dv��knc���c��b���k��a���c�:a���k�~`���c��_���k�_���c�J^���k��]���c�\��k�P�P!R'�N-�N3�O9�H?�HE�IK�HQ�GW�G]AGc}:i�9o�9ux:{,9�29��8�}7��7�<8�7��6��6��5�-,�i+�o+�(,��*��*�S*��n�t����V\&,�#)L/R5;��
�
����������`rand�The Rust Rand Book�"https://rust-random.github.io/book�random()�Rng::random��rngs::ThreadRng���:�Rng::random_bool�distr::Bernoulli���;�=�F�<���:������rng()���Ó�:�:�9�=�F��:����;��<distr::StandardUniform���Ó�<��:����:�����9��=��;�:�seq::IteratorRandom�Rng::random_ratio�	Rng::fill���ÓRng::random_range��:���:�rand::rng()��9�seq::IteratorRandom::choose�����:�X����;������Rng::random_iter�������������������X�����;�����������:�����������������X�F���;����4�Distribution<T>�
crate::random��Rng::random_range(Range)�6https://en.wikipedia.org/wiki/Probability_distribution�����std::simd::mask32x4����(probability distribution�����https://crates.io/crates/statrs���std::simd::f32x4��`����Rng::sample�������(�statrs���std::num::NonZeroU8����	std::simd��`�`���
���������������#https://crates.io/crates/rand_distr����������(��[�`�`��std::num������������������std::num::Wrapping�������
rand_distr�������\�`��[����>���
��!������Wrapping<T>������"��\�[�����
��Uniform::new_inclusive������notes below����������:�\��std::simd::u32x4��
Uniform::new�����uniform::Uniform��������:;https://doc.rust-lang.org/core/arch/x86/struct.__m128i.html���u32x4�����������mask32x4��X�:#https://github.com/rust-random/rand�������f32x4�����������
���4�X���������������4�X���������Bernoulli::new��X�Bernoulli distribution�4https://en.wikipedia.org/wiki/Bernoulli_distribution����X�������X����'���!Distribution::sample_iter�portability chapter�3https://rust-random.github.io/book/portability.html�Rng::sample_iter����crate::random_iter��Distribution::map�String::shrink_to_fit�������������������������F����%������������'����!crate::distr::StandardUniform�crate::distr�crate::distr::Open01����crate::distr::uniform::Uniform�crate::distr::uniform�crate::distr::OpenClosed01����\�[������������������\��[������������
�������\�[Alphanumeric#Passwords��`���A&Wikipedia article on Password Strength�/https://en.wikipedia.org/wiki/Password_strength�+Diceware for generating memorable passwords�&https://en.wikipedia.org/wiki/Diceware�SampleString::sample_string����`�������������D���`���F������������-IndexedRandom::choose�!crate::seq::IndexedRandom::choose�crate::seq::IndexedRandom�
crate::seq��crate::Rng::sample_iter����!
crate::Rng��kChoose::new����K���j���������k�
������������j�K�������������������%��k�����j�
�K�#crate::distr::uniform::SampleBorrow��UniformSampler::sample_single�std::borrow::Borrow��super::StandardUniform���0�}��l�
�$crate::distr::uniform::SampleUniform�SampleBorrow::borrow��+crate::distr::uniform::SampleBorrow::borrow��+gmodule documentation�����0��0%crate::distr::uniform::UniformSampler�����Ȁ�+g���������0ҁ���g���������0��ҁ������������
���������������~���>�
��~���~��std::borrow::Borrow::borrow��
�������!crate::distr::uniform::UniformInt��~�~��2�Borrow::borrow�������������~�#crate::distr::uniform::UniformFloat���o�2�
std::borrow�����������������&crate::distr::uniform::UniformDuration����
���o�2��������������������o�
����������
��������������}���l������������������0�}�����l��+Ȁ���0�������UniformSampler::new����super::Uniform��0UniformSampler::new_inclusive����������
�����0������������0���u32::MAX�����0��ً���
����0ً�����0������0���
�0@https://docs.rs/rand_distr/latest/rand_distr/weighted/index.html�rand_distr::weighted�WeightedIndex::update_weights�������WeightedIndex::new��͍���
�������͍������9�
Uniform<X>����!������Error::InvalidWeight�Error::InsufficientNonZero�Error::Overflow��������������Error::InvalidInput����������@https://docs.rs/rand_distr/*/rand_distr/weighted_tree/index.html������
crate::RngCore������Ő���crate::distr::Uniform������rand_distr::weighted_tree�Ő����Б��|�Ώ����
��Б�
�������Ώ����Edistr::uniform::Uniform�distr::uniform�����<�����������Self::random���̓��<������:Chapter on Portability�����|�������
�<���������:Ӕ������������XRngCore::fill_bytes������:Ӕ�������������X��������������̓����X��������������$https://crates.io/crates/rand_chacha�ChaCha�https://cr.yp.to/chacha.html�4https://rust-random.github.io/book/guide-values.html�crate::CryptoRng�crate::SeedableRng��4https://rust-random.github.io/book/crate-reprod.html�Types of generators�1https://rust-random.github.io/book/guide-gen.html��.https://github.com/rust-random/rand/issues/699�ڗ��
Random Values�����portable���ҙ���security issues���ڗhttps://crates.io/keywords/rng��������������$https://crates.io/crates/rand_jitter�����crates with the rng tag�͛����������rand_jitter�����https://prng.di.unimi.it/�Ԝ͛rand_pcg���|��https://crates.io/crates/rdrand������xoshiro���Ԝ�����reproducible������%https://crates.io/crates/rand_xoshiro�����������
crate::rng�����rand_xoshiro�����������Ó�ޟ��https://www.pcg-random.org/�������������Ócrate::rng()�ޟ�PCG�rdrand�͠�����Ó�2https://rust-random.github.io/book/guide-rngs.html���!https://crates.io/crates/rand_pcg�����͠�Our RNGs��������������������������ҙ��rand_core::block::BlockRngCore�rand_core::block�reseed()��ReseedingRng::reseed��	��ReseedingRng::new���������פ�	�����������	���פ������crate::distr::Distribution��������!��������������������H���Quality�SeedableRng::from_rng����������Seeding RNGs�5https://rust-random.github.io/book/guide-seeding.html�crate::rngs::StdRng����������������������/https://docs.rs/rand_seeder/latest/rand_seeder/�ۧ���|���������rand_seeder���ۧ��Ehttps://docs.rs/rand_chacha/latest/rand_chacha/struct.ChaCha8Rng.html���SeedableRng::from_os_rng����������crate::rngs��������������������������������������������Hڗ0https://en.wikipedia.org/wiki/Amortized_analysis�
rand issue�.https://github.com/rust-random/rand/issues/932������ޟ�����ۧ��ڗ	amortized������������ޟ����������ۧ�
unpredictable�ڗ������|���ޟ�����ۧCSPRNG����������������������������������������������<����ޟ��ThreadRng::default�crate::rngs::ReseedingRng�below���������Óޟ����DZޱ�����ÓThreadRng#Security�ޟ���_ThreadRng::default()�DZ�Ó��ThreadRng::reseed��������the book on security����ʳ������������������ʳ�����ޱ����������
index::sample��N��%crate::distr::weighted::WeightedIndex�crate::distr::weighted��M�K���I�N����Ե����M����K�I�N������Ե�
���M�K�I�0,n�ǷǷIndexedRandom::choose_multiple��I��Iterator::size_hint�
Iterator::nth��JIteratorRandom::choose_stable���K�IteratorRandom::choose�ܷ��I�I����J�������ܷ�K�I�I��J����?�������K�ITstd::ops::Index<usize>�Ե���std::ops::IndexMut<usize>�std::ops::IndexMut�����M�K�ܷ�����Ե����Mindex::sample_weighted�	Self::len�˺�M�ܷtrait.IndexedRandom.html��������Ե�
�M%IndexedMutRandom::choose_weighted_mut�std::ops::Index��ǻ�˺IndexedMutRandom::choose_mut�����������index::sample_array��Mstd::ops����ʼ�ǻ�L�JIndexedRandom::choose_weighted�������������ʼ�������L��J�����������K�������L����J������M�Kܷ�WeightError::InvalidWeight���
����������
�
����������
������A!��H����������������������I�I�I�H�J������!��H����������������������I�I�I�H�J�������!A�H����������������������I�I�I�H�J���������!�P�H����������������������I�I�I�H�J������A!��H����������������������I�I�I�H�J�������!�H����������������������I�I�I�H�J������!�|�����H����������������������I�I�I�H�J���������P������H����������������������I�I�I�H�J������������H����������������������I�I�I�H�J��������H����������������������I�I�I�H�J����������!��_�H����������������������I�I�I�H�J��������!|���H����������������������I�I�I�H�J�������H����������������������I�I�I�H�J�������|����H����������������������I�I�I�H�J������|�H����������������������I�I�I�H�J������|��H����������������������I�I�I�H�J�������|��H����������������������I�I�I�H�J�������|�H����������������������I�I�I�H�J�����������H����������������������I�I�I�H�J����������H����������������������I�I�I�H�J�����������������H����������������������I�I�I�H�J�������`��!���H����������������������I�I�I�H�J�������|�����!�H����������������������I�I�I�H�J������>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789>��ee8ϧ;rOj��]���b�׍�P*�#�z8��C}�-�"�g�cc<,[��9�F������6J,�a��V
�o��旅b��Z!��:�t?�
W��\���ށy$�u�g�Y�'��Dh�R�~��<t�����q@L�
4�DN��h�(�|	�Z�LaYu��L?���殨�T��%Y�g��oj�&�e��(�P�P)E�oԧ�主����є��Y��`��ڛ���۳TP���(&gV�]W�MR�	wb���T��z��?9pmg��-��5�n
tC�<�����RA0.�'��o����6�����;�T�o�Gk|��s��Ӥ!+���D���N��C�B$���/�dݘ8���y���/5�D5Ҩ�y��`���C|��x��=�Eǰ���d�T�����2�7�I;�TJ���z�w/�q���3fO�l%z��}

��[� yI	=<�Z'�jթ�ճ&ə��qh��&�:r$"��q���$%���8%S,�	0��|b(�ϽL�������2៙r߽ͬ�!q��4�k���x\���qo�4��sSy�g�k����/�]*[��S-W V7��p���ѽ�������%�������J�O�L��z~eZE�BhxWi��o6+����������:ь�͗����P��S|��Km�PTwT����ҙ�2���nN���7�ɻHO��\Xp%�9�q��#n�4u10�8L��lXv���I�8�&س��id��rƛyn���(P�� /ƸD�#�)1�u.+�k����0Mi9�����9�d�v���T	�c�8@��
���s���K��#S��%�C؂����͘��*�*)%k�2�Y���:>y�����>�+�Jɿ����H���\]�	���-!��kJT���54���C\�����΀w8�HP���`��R`
� ��F�jZ����wBHZ_W�(�Q�R&!P-		9x�yCLW���$��6ײZ%�2��[���.��ג����Z��G�+�l0�֗���x|�W���&4����>x�	_d���pAH4�˰dz��W���l'"c?&(�1o[&�R�]X���
T���}���g��#ǭn�sJX�ab6aK\�kJs
�4����3�x��,�J���qw����3�K@�٠ֵ��yU�z�a{���$�쒷�G_�S���|��t�z��r&�$7�ű�t���䍵�m���y��$��m��I��N%�I�K?�����ԑ��eE�5�9C���Z�x��U�إǂ�\�ck�;5ܜ
�7�4'�+'&�r[��__k����{�U����
���~��_����-#!˸ː?M��H�-�+|���_�a��뵾e\��]\�}�Ԣ����|I��]��ݥ8%JJ��i�t/�k���U�a_�pO�}����Ve�&��d(�a�̘���������|ia����#�O�ߕ��Y���,6�d�@��r�H�t�/)�yJ�CecN���{���-�8+��1���Iܤ�ֲ�L)~�T�����P��TaV^����t&�N�]�
�%y�����d�@�K��'��o�S�v�X�����4Y�Y>MY�7�F�7Mm�x/|ag��s߶I/	q��X���$\B�D�Hu�$�
��è�m]�<!�i���$	���m�ܥ�����R��u�����cl���e�@��$Sw�:z���o�j]<���v���h�y0c����@�ѐ����
��6*N�^�������ҏ��[�� ��^����B������
J+:ܭM2j�Y��C�0���H5^U�zb1�=z�q!���o�e��k��\�B��-�S��Fy��P�n���߂��;��.@F]>I�{r�x��q��j�����vu�K;,c�o3�(�p���p��"���������
�u��� �D��Z Z�v+Z�V����+�l���ίn��0��ĵ��P��x$η�.R�v%�����o��s[,�s�V�ik+�fn�Ǟ��ӏ��IDZ���(X�%�s���Ķ�+h'}�S��C=XL#�
j��z@�{}��Q���Q�ե�GČn&���a��%�1���$��﴾89H����ζ�~n	}r�A��.�N�p���¸�>ž�lh���$�q�í�\�6|'Krj|�SX����pEaWyy�;�ȋj���;7����en��f7��3� |�б�DrZ��?�Y�@�M?r��@(���_	.��<q���<3zܡ\�J2��鍌L@;��Ǣ��#'���K'^���y�6|��$܇��2�0�F9��%�Ĕ��o9�dV�CV�`�f.@��l�d�oR��&�'��=�cƱJ�2���f �B�\�?Po(���]~%�W���m���&y&Yi���q�{Ą���؅����&��}��H��A�]����f�M��po� �g��U�W*�U&�(u�]�m��q��M�g1�q��JU�8��'C�&`�]A��F����scAZ��ֆ�Q�p%h�-f)�>�xx�e�����m�7�!����0ᐄ.�����ߨm�^�;>���BC�$�+��/�3Բ]�+�j�qc����m�gVz�Dc_ۨ�x���(%q�ɞ�/Jר@M�&MU�)���!��+RI��1n��æu]
��E��*[T��ܵ]�����4�Kg�/O~�M���ւ�P��q���o0Nl��fF�jҊ�eI����y��k�S÷��D�TK���2a�>u%^� �*������`6����^[��pQS��ڞI����Q�D�Q�hc��W}W������Yn�;뢋�%%�=#;�m�=+dN�
���e�����A(�˸�g�П��*\�GC�U��p �PL
H�a��<�&kф�,i&�������:ϑ�RH�YX��m˅.�)�ؐ������w��v��]�G`�x��|���(o�O٤#�
/�T���Ow[ոC�]�7��P���3���J��������l���J�$�N��)AS%N��u9�_�&�r:_��Kd��M�n�9�NK���O�I6���r��A/�9������{R:Y𘞏DF-�,�E �"��P �W�_6	]"㟿��pH�H�]��E٬��~��ῒ������>ջO��p=��,B"GFQ��A�Xk�_?�����Qݪ0.kq2t[ڎ�����d�A&"[�M|5�
+�!�͸<(t٥�u�\���c4�l�[6?������j�I�2�h�|�����n���c�����IJ����o�5cʍ������҅�ahG[���������|�dz	H��`4C~!Acd��U��Н��N�?"Љ;��	��n����j�F�U{�j�'�o`�n�BL�����`�[�7 �;�΅��Yړ=��X�W~���=Ɨ�*���e;�h&��~�_�n�%�G~��EaA��ä��N�Ҕ�Z�o��
�&�S�!`��u`7T�c�f-$�G*�E���,Gd�a�c�cf�4�3����ھh�l���Z:�aU5�$c��O�@[��~����*M��9��Pb 	��W�͒Pe=H��ue����i���c?<
q>�0k�U��&Y�ipR>����i��c�(��u�̰�돆Jo��_k�	Ll橵��︻m�N����\�����KϨ�J�,p��/���p��$�O�a��˸��D��гr��#���"��J�%�xPW*�����+3�p����յY|Q���4��?�'��>m�co�������)KC�ĐY�L�3w9���rZ�A���#�LڬC���h��ȼ14}�4HlΈ�5"����c�p�&��@�~<���!�ҿ�K�7b�K�����n��:aT�]DX�C)�(>�����N���~�$��g�\�a��k�<������ó�����s��0�s�W3.�ݨlEcR�EFՔP������B'I콝�JH��I���V�n�;-�J˥>�Bo#kNB�f�{��!̲M6P��V_D5F@�fz%�h�s�@r��O���J�b=�T�mKiڽƗ�&��O7$\�@*o����,C��`z_�u[sqW5�������r�sY�h��ݒ��R{^�0��F
h�ߌ�vڸ��
DcK(<��Е�2��qF���Lohsc��p���r9�a�FY�6�uc�$�M}�����|l�lH��.O��ފ�=��������i��d٥�-�J~F�@��_6��??OIR�|��(T����	�pr��d�~sk���L��sY2��Lw�'�>Fb�:#��O�u���.�y���̴V�C��{�A����PP���9%�~�H�"lVB�j:�8	�PB�����.������[��BZDo�3e]��}1
�������	��W�L�v]�T�
٭�`^���?k$?�M��Hm�����a�A<�F�t��m�U�t`�}�:�[�K?p@(��&��3fWHG�|N)�݌��}���
��3e����є+�E˯,Dcx�nk&�;��F+:���2"g@�<�0�g4�e.Β��˜����O��,%j̍T�~�{�Z;�{���>��@��'��r��^\���?`=��sP��piʜ*sD�Η�F0����e�+PWsE��9�����9�(~�A�-�9�O�bX�M�^D8��/	Ul��������������fԌ�k{������c�k�Z���
���Ϭi[�����!��2�vρ!��~Eh�.�0�٘��{�q�o��9���|��OIX���QYJ����K,�6r:���?���hO��_.
L�JX����ɛ��'�(Еo/��t����(]��u���A��&_�yB�~fgF��B�)��h�Sv���B�sgl�+Q�ƠT�)/����
�6��rj��M��ja��c�x�l���*"����	��
h5��f�s�c�%O
Tܝ�2��CPA˩Ȭ��!yκ��+����-e�򾉋3�UB��+�֖�y�Z�x�j��ۈ�}�k�H�$����1��?Ě�ă�K�Q}T��u�d<yW5P72<����J�ݛgP��$�5��19��C�aa��!u�s�M�q�e\�>��Y�ǧ�%�"!���K���DD�G�$����a]����l��M�����I泑$��1nJ�%�����gل�b��]��2��U�A��^$�*�dQ�rb.��F�
���k鯓��5��v��Y/H����Fλ}�2a��0��Y榮>���52�K�L,%�-��������#�L[.,:(�"v��	6�^�4�bG$�z��ͮ���n5�(~�9KԊcH�����=��k�ֵ�.��୓m����Hp\����@���
�<�[���K��a������x�W߸�v�6�}uZ���#�5�/�mta�*ݱ���>��t
.w9��<IHN_�tL`ڢ���g0�9B�{�tIjzQ��ta@�ԤJ�8�E����\)��H���uL�L�˞�u�e(f�i�5�"�
�4���]5#��i$;1"������>��!h.L4|���wѶcU��]]O����U%
��ú#�zE��ڰ*o1�<1dc�İ�UP�p�i.h����dv\�kϠcz��ՊG��4�7B���Mi���p�p*�@��n(,��8���!��r`�E00k�	eL��W�����49�/�(|��@A���I?�YL��ǯ8.�6����q��Bwō��h�l��y�,���g�	�HyO�|t��,�����X����H)�6��� ��,Z�1�ϺQ�����L�W�����+I��t���F��Y��G����k�����3�Uz��U��5˒Z4Q�7�{�z�۱DB���{OĠ~P?�c�h��n�M��VM�WZ���ނ���y-�����_kU��K}�#?p۹��K$��u�Zrz�I��3x����e��*m��V�O|n;p�i�$�3$�_��j�^�S�*�K��d�PS�PP���)�{�0M��N�s�r�LnZ���݁5)G��&v�0�]յM؏g���8E-��/���H&�t��"w�=T?&�_�3���c�޷�c���z.�m�U*?K�����~pBM��d�4���Cr=����j�5[õS�pJ?ne��ԧ4 ��H)~p%�;6���v?7�_�(�U$��æK��D�{�� l 00F����<G�aflϣ�sa�]�4��}ߡ^4�^CI�<M:��"�L��|^�Q[�s�Gk]��l����r�~(��_�E�K.��Ԃ�(V7!V�L�b�����u-��ݐ
1��I;2�6���;k_d��5�¼M�y��V^���"e�/�"�ͭR���@t07�ڠ��7a����e��WZ2��CY7�Q��[�ɣ�p��9�骻���v9�))��Xg��)��K��l�b�L���ʒu#p�k����Mݷh���N�*��zQ�h��=�-{�������_��(?�o��D��X���y9�ј�06
��[���i��bP�l��c�B�/s��	��"�J�=(�k��[�@�F����5հ�k�"���N�_1���N�H4�|���3�N��-�R{tA$�U��e���j�vw��'Td�F���`6D���\%Gw�dV[X40���M�E�p�J8Q�Qu�� ����@V�Y�*u����?�&��r�C1��Sل����A��iI����1�`q���ȧ_�GH��7�/m�$��:NFo ��5��V�~��&����>J��c��3���u��#zL������}~Ud!�M���X#�MI��2��W(��+����Z3��:�e՚K�B
l���<1�+�G;�Pܔ�c,�F��Ƅ�y �¦��ͧ�T��P�v�Ԓ@AB�_�(�O�I�O���A���N]�P�{��I�7����ǀ�_ɑ3Gb��9��}/�!�����~o�D%}�����b\3����S�o�k������hьI�i5�cCd�U��x�7=��{��zڗ���
ھ卯}Kv�mָ-x��r)�����#����g
��)�8ER��ƙ����b��D-4V���]��741���G֜�d���Ǭв
�U{Q���Xb(S.�zU�}	�:���q6���<������j�1���\O�r������v�#����	ʽ�'�mE�Y�H%�p{ԋ8�����S�9V\�X��_̤GZ�=��p ���D�����y��Fuz�$���
�� �	����Z�s�����$�����>�!�K?���g�iuLGjA�
�(�41!!���9�J�5���}�x�{-[4N)�9�o(3�O]w���׋҇\�M� ��$-ˢz Ow�ɓ�4x\��J%L(�s�\6�^�)a����a3%o�t��s��o�M��Őw����TL�즻�V9����P3�>1t�}m�����G�.�]]����ü��Ils}��;����Ÿ5ܽ7���~���E�/����>���аoO�J��a���[DE�#�#&���?=?bB����N���7�|;�a���i���Y=*T��ej6����
PV,;�;=�k��>8x�6%�u�X)�}�yՒ���SW3��
L�.@�y��������:]�f��_��05aN��;���`QI4�&��+䇑T���I��0ɐ�^��m��(�zz.0
Ƽ7�#f;�o�Ƀ�
Ǫ�`��G�l�K����^�.f:̽��@�:�ٔ�}T���#)����&�����ۥ;;S-U+��텛pܟ,'������#(p�`��i[+4� ��p*qhZ��{ۃH�EQKbU���u0Qx�sY ;���]|P�Xq�;��,���عt#*f�7��~�ڎ��-;x��x;�%�@��7������V*E�A=V�}����H��
[�i.�	k\��"j�2��k�Ӟ���'���H���@�]�F���ɵ'�(�eќZ�]a���[ �‡�xe���`�(�ľ]��C�{�i��J�����H0�x+�'n�_	�EW2}�� �!Z����\���1�z9�opn����|^56Q2~�[��r	r�
�4p��i���z!n�%��ƃ�,��]�YQ�S��A��3+�X�-��[BV݄2֧	(�
�v���ց�u�Z��c�n:���vq���~�kd���9V����F �Zp�.@���z=���v�/�5����Q)��:�]��ك�O#B��fY��V���1ES:���Y��b5h����0������J��|A�1 ^�
�4DE4�Ѱ��_�h���&n7`(�-g�E�0W�1�Sw���^�/�{m�|n��Ꟑ�L�ST'�$�C`����[�| �YK�H}�(,����6�?�ģ���L����E��ψ�/aed�Qm�.��g*!<P�D�����Ǯ�-�鐐��.0-Gۈ��-p�c�?�$���_���9���r�L��y�L��}��Hxw+���X�Ϝ;%jO����̅V00������x����%^���Uޜ��\�����W�u�}B��pH?��Úo�4�0�d�A_Hm�&�_�];]|X4yO!�����S����aS�O�D|����7ůE�)�݅��
e5�0��۶����,���Ղ�e�j3~����%�K1���1�q��_�����p��R���ƙ#P�2'�:=e�WP�2,5gnD�S[	ғ
@Qf&	X�z���p�(z$���D�\�s���=�*�s�,Nf�\�@�X	����i4P�0?"%���l��N,a&�M�/���p749���eΤ���&��ܩ�H�,MLtĩ�q" 3��Uc|��(�v��.�!������h���L��h��{�hګ�8�Iߋ����x�{ R"/��7%�D������>Cfғ��r!>󜒰u�V3?�#�o�(� ��ix�|(���rL4������r:�7��0�:B��r��}����5r�����l3��dy���\(�؂���|k�_�q���
[����|�<�B���e#�WW>�,���G��2�Į�SԂ?u�>E�3��@]�M�6�����a�48�#�$�L���Z.�|��.nMͿ|D��:Q(��q;� ]:T7㭯����+��gΗ|�!���Fh��������J�Y�闕��l#tTUS��MR�~L�7
�֚G���D�l6����ɶi-�(���(�-��a���@���G�cA�
2|,���V����A�w�t}��7=�X��dqY���Ƀ�Zm���.K�ب�^gP��uq����]�7V��:��̪���5�p��ʵѿD1�=�Q7���܋�\��u���9QL�-�m�ϕZ��t��]�����.�;M>AEpD8z��X�(�%��K��g�d�xb�-�`"0��\��� |
��-}l���N����M֔���8���5w�_�H:��Y�/�+��uZq_)��E�����z>�L$�x��H��{c�M
�=�����"�~`ϫ�hX��/ulXK$X��c�R�89�<)(��NA�%,�χ�(T���K�7�%��~l~�,�6����x��Ӥ���-�lB�["ׄ�����TϦm<"�?׶�d����	�QhC�2���0�kC�₄(�/=o	G��
�r����"�����
��W]���xﺄ7�Z��]��>�|X�)aI<�I����*�� D�{o�h����E���JJF���+�Q�z��Uec�Q�!�ft�g��nm͸��Y�FС�r�꩒Ŝ�!]��.�"?}��`��"z�F��V+�F����s�	���ua�β-Լ�ؚ�Jۤ,c��"�K�Fm��m��l��D?����
���w�1/5�
���޲���R��'Gf���}��:��,��J[ڸJKa�ty��J��a}��m��i��a���4�{��*cQ��siGk�e��;�׉�gI#Y��^>��x/��cAV^<<WtL�:�/$��ŸB{�¼�)hl]x�!��բq�K�a�)V��Hӓ�zS��>�:P#�� Yn�[ͧ�!�'�a:�|Gz�{��"�xq����>2^���3�鱗}(�&1�"z�mlT�ԕ�RA"���
D<ᗛ�����K%N!@u%0�H����<��kA����صl���/�W�9r�	�8d�G��iŸ���s��a�W��WS���N?*��F�j[D6�c�y�p"|a^Q&�v�GnC;���|�8�
,��M+5Z}O��q�Þ��\�g�疍G��U8��X��BԨP�����\S��+��WI���]W-���g˵$%�Kn,i����Uw�Q:G}@�W�8���Q�D�VDC*��f6���,��� �D6@@�TX����$} �9&�
�b�C��Ӧ�Qۈ�R��ӒmF�	��_ת�?6y�����5�e�����%��V�-9$�<��f*$EOp꟫4y��ѿV�z�9O��{����A�nj�^��֤�|.^9x���������MD�o���1�X=�l�t(�|O�����Cdv�u�����~�n�+1���
�.��\#
�s��ɾ+��F�ֺ�*�����3cy����}�6]_ďM>���	�:z��j�-�?Q|{Qߔ��U�,�>�����?
/RV�JZc��� [Y��~@�0�6�X�-+�ƒ���n����d���^�DZH����2�n�=!��
���ak�gֆ�@�%>���y!8#(������óϜ63��D~!����q�#�p�v*3�ᗄ�iO������	�Σ����7Wml �&[l.JK ���.�KA����]x���cd���ތ���?�4���M]��G�g���W}��j��"ݖ��u�@2M��dK����>�'?d�/H��o9S�pJ�D���#�e@m;H<��:2A�ϼKF6Z�A�c�����?c��Ř�~\Ѣ:�5~���I1���HP�!"!k5��i���}��JU�#tv����
��4��|w8��y���W��9P+:McUܐ�O�BC����k���S�� ����ɀi�0c�Q��5���d�VN�R�W�o�ͪ$��7�_��i������:H���T�u�Y��b��YF�jP�l\0�W����ڰ�_��B��7|9;W�t�C���տ*�S�R�u�Nj��\��2V`�IE{2gN�T$bw-E��"yVr���L2:�&@Ԭ���W�¡YsͶ�sED�t��?�ƒ��X�!���tػ���~��
�6yCe��N�4�����h��]=�|�dŀH�ཽ��iIi�|����i�PH
�p3�?�"Kn��C�+�����Ļθ�t
{{m
�@��_j�#��?�{����6RT����H�cQ)�CT�i	>��V��խX�
���]e
�I;t�̓�e�ܺ��9q6;�J��ͱO��T�g5����Pb�-���n�D�_����g�\��7�w�/�[c��?��ٳHfs"8���Z����dǫ���g5
���!�1Iw�I�I���r�:���!�aS�~�NoE�e8����Oz��!��4�����,)s b(�����s�'ӏ�d�6���e��7}nY�J��}/[�D�ŧ�/�ӣ����
��(�G䞥�?y�;��v�17d�]i)���Q���d�3��6E�J<x35J�����D����">��/����������Y��h}�����J�שJW���.hw&N?ҏ�������?���)��>Y8��\���"��A�+��%��F�!��F�e��膷N�N�P1e��r���-|ƹ��CH���8�C%���N)���F�b�~A��p��S�.uF>N��5�*�":~Z�y2"J}f&X��t@�;n{�
�z	�ʠV�N��,��������3�p�%BS�=��)lU���A���@n�=A��/uݤ��_���2Cd�$?@y������.�~�
*G�t���5Ƹ��0�u������;&�
/���2OA�J���d�2	M�{ŏ�d��D.a��n�=����dpp����;������kz��j��H��硕��;���F�>����̜�p�A�3��C��wѓ����3��TNb�:e���؂~U����cЪ��VR������.�i���ůˁ̶� ��:��ז�_QO�j��vX\�;v��������CA�)x��������1����g�mU3�=��t���q	���Mo@���@�a�=������P�Ke���y'5+�~���,�ID�䬵��S�1�	�z���p�i>??0Yt֙=_P���x���a=ͫwVtT�Ј����	N�}^�P'(XH�c,���T���	r��8VuN��?�.T>��\8RM\�F��?���*S�}`�m꟞Ze+���
P�ZS�h��nd�v�+��ʃ�È�iiA����6�[8�r��v�O� <������	�I��?yR��Vj4)�c��@�%����N��ר���,U�$f�?�<���}�u.��t�5s��v,����֪|�0�@;�T(?)����.�z���:�R\⮽���t�/dz�a��l�t�{p�]K�"��mCz�>A��sP�iK�c���!�N�Sl<��z����+6}��=��q(��16�*��+���h���������g@��z�V6y���x��Ҩ�������ֵ{ct�*��j69'J��x�y��/��V��}UN.�5��m!%�����NѨ�B�t�V,�<���@��,��~�z�R��Y,���N��M1|�>�R�̸i�>��-�’��A}��&~FV[Z����,`d��!�}�֒�"�!���(�F�`D�E�i/DŽ~J���o���{b5Λ�٢����k:&�e��N���vk�o�&�f�N-"!�9�ퟜ ��S�rxAsw�A��}���gn�C���Z񂂟�6�5u~����X[�"���З<�����L��?�<�BL�����I��A
�`�,�	�J"��m��۳�3b@h�}~��mͭу*�r�Ӯ���4���-�wY��
���e��ˊrjE�z~-x[���ﵠ���@"��d�B"����d�]�iF�K�~�a:������E�C���(q�d��1�S,0O�]�%6
�|}�]P�_����<V�j�!��;w�����'adP�c�]�DZ���jE�U�U&��f�d$@��>�qm�mI�s�9PZE9���/ߕ�zo-����>.[\?�.v�N����$q�`(75x��In�a4��lY�s~��V(pJ���MKuw�C�<W6b+�����Ė����6b���8k<Og`q��Y�c�+��y3���BĮ��M)
2nL{��4U
��m�QqSy)0���^3Fl����։��qΛ9����}��"�L-�o!��/\��,��sy�k�.�"Tl�x�#�8�ӣ�C�?�!�0��;����
��������րŃ�v_�R�<P}�
���r��^��^?H�7E������*N�v��S�q�/si�]'�������?��aut!��� ��l�V���	���\B=Ǐ�Z����k,�P�mF��,��͂`i5����E�H,�.��W�ZK��v!��}��;��ѳ��=�P�1�/�1-�V!}�,�2k��!�K��$!2��� Ee���<,�8�|Qz\A�!̯u2,,���
�_F�����ӹدv��
��.v��a(���ַ�B"����<>��ew��:*�(d�;�J�{w��q��+�u�C�<
$k?-��K̭�8m$���*���0������-����p}�n+R�:���3$�,��]���w8�O����޲�{�	Q{8��19����w8�eΉ���TV��7w�G����<ߴ�I�`k��]a%���(b��/�&�rHG��>�X314)���w��#�7|l�U�n����8��	u�F{?�qm�������������+z��;ȥ��"O��L�|��ڄ �R�[�L�zq��\C�!�Az��@%ٿ�"�����̵1���s�-�}�ɇ�N�K�;��M��(w��f��Zc�;g)O��VЩpb��l׭oY���l_=��\:L!�oY;	��8i�3h���+]ϨB�@Ǣ�nϓ~
�洆��J^J�H�S���I:�4�
C*baa���7�Ӗ�S�3�S��dOQ�5��ү�II���ֳ*�� ڽ�:|qXi�-
���М�:c���1��r茶s(�%Y7�����%�q���Q`R$��E�GE٧�>�pc�--��P��.O�bg��־�}B5�]\f}w|o_f��b/#��᧙��zÅ��Q�
l����3xp��P�jcD�q�<�o�,{���W�L@�GYF�!�����=��?c3�bC���y8�l�:љ/ڨ90N|u9[i�An��5$�4��n��˧�.�>æ�2�0=�%?'u�f�ט5%:�g.��Jg.�2��;�ix	��+��i��Q���ڏD�H�=��l�Mu�#�7?z��@�Շ���:�bZ"'B3�ux[WT���Ćl�k֒���8���M—��cQ�8��T7�ϙ���9��������"����׸&Sy�.�>0X��ٜ1��r���s"����w���Rj�Ym�����q�?7	�R�e� �`-�?���zL�Le�t�60�U�Y*)�"�K�.Tތ��1�P���ći9<�[���M.`�Xْ�6p�d�������3
{�fw7D���g��N����3��EJ�+�Z�x������F���C-��y�:�δ`p�B�"=�2P����=�,�(����}|dQ#��ޙ�H���9��k�|�|:]�`r��_}����co#����v����>�G��y����>����*��1����]��,��s����
~�"�"��~T��-|��o�r��XS(A�i�e4�D�A��X������y������+��~#?��R8(z�������u���M�}*a�(�.Tں��L�1Y� �\��ϼ�20�#���kZ���U�~0�H�U�O�#�K�x:��խ%�D01�.�s�lP�K��麽ڱ���kmP���|/E)��������p���Y"�|M���"�͡��B��� $���K]�+�"��#�t�MN���g<"�/{*�9�%	nr�����_�d(�J7��Կ|�@�5�oBL	�G���7֫��E����g�ނ��)��RL9�)����ˇ�Y��Ꝯ��UXD�_����4�b9}�lL�:[��
!���!Y�-6B���U��[숂�=,�ɮ�<_���R{ć_h�M���[�@�~�-�Pxi����X}p̀�U�I_��G��'���t��q��6b��*(4�I����x�'�#5�l[P�F([�9W�7��V8���!�5z�����<���
y�0��`�i���~i�{����I'��t�l�<���m�wX̲<�� �|֒u'���0
����0ߔ�ѷ�Z{oH��tw؋���~Y3]�r`,��/�<0�	��$R�KA�GWⱤ��G����=ṗ(1-�v����!G3�T���F�r����/Kxm����B��H6\�骢MJ��ca�F#�N��h��ܭ>p�x��ƾi�A����� m�g�@x����xX���e�̀�߮�j�:9�"��u~;>�;^��
8����2���
�x�e��YP���ذ�����d�UN�CP�Os~�_Np��=�U�s�v �BMY��$�/;���yT9��h�0�)=��-	'�[�6G��N:=������ ��|���#6=V1��g�"+O�^�psz><������S��d�>��&!�0'ٍd�����)�w++Q�O:�T)t�X���Y]�,5�_*ћ,�ƍ����2���A��1�!�*���w�\��w�Go�W����$	pC2����h��y�C��ƚ�4Ϻ<��n�P��`'E�9����A����u͹��mC��b��W�
,'�O�L�FB�n��|~�E��܂�߯�O-���6��aR�/k^NR���]!��(_7�S���Q�N��5Jlqs���=
�
���S^��DV���,�`)j.�\5���	ֺڔT~#	����R���y
czY�'a�򎾓��9�G�TG�n
��ʎ��.L"��M!�9���ֺ��)j�.1[K�S�T��X{�����:��bé#��9|����zdC��c�!4���N-�iMx�,��0n5^R��>5���1I�[�<gi��Yގ=Ƒ:��7$`ѤZz��mj6Laߍ���Y�wA�B[V��U��pj_ژ�=��F*^�m�<�+ң���-FF�F����[X�l붘�������)�I=��)R�sav^�Z��jΙ��J�1��F�j��������O^B��
~ �(�ސ_����V'Q�\���h9A�sG�錄V���D5&'���(q��Y�"u��Px��YTZa�^�q��P�1���	���x���>&=���H~�����*5���#�4i��r��B�>����R�e28$R��s��~���ZL��6���q���̠��9����:�&m&����o�[-�h�yY�A�)'eͮ�V+Sdcs7۶�L�~�2��}(\�	�����j�(j9����ԛf���{I]�d�P�TWY�yxap��~Ik�GSH�Sj��v��f�.gQyD�2g��\\nce"LQ;v���]'E|��z/Z�~{�Q�7�n��I���MZy�dHQX�6�g+Gk�͟�<؅g��$�gV�Dh���������/�J����q䯣��H��E10+CS%+��2����j%���,�%�|֞$ޣ��Tg��~�Z���g�����Jg��"{���/s�+�x��N{q����~v�p���މNC�Q��~�L���d�ʳ�0o�A`�`��y�=[q���
Я,���F��Q��s�8�A��e��*�+h��u,�G�XU2＀Mw���1<ycn��o`<]S���ד6����BVǟC���xm��AV��7`�q'Ti�Q���u Q�@9i�H�\HNBʐ�wCmRC+�;�V�gI����<���a�S�6�k�y+���S<���A�&N�Kܗh�%��\�����e�J�f�	=�P��۝.�#+����Qݺ���EO�W"�E}�=�(��I�����[fo�{>Ʋ�g��5���Ud�?��ޗ�N�
	��z�nZd��Z�n:�M�4��B��0�S��#�c�/o����¯���@T�0�:�ZS���;	�\��J�E6�ڏ���芴b�c����X�`��p��f��tN��	g�3�����
z�PO��@q�溸T}\�RZK	���\����0Ф׀�Pj���!�Ĕ&�*ф_�o%']�V;Vce���45�
@D�/��e.����Ъ�p���݈'k�Mg�5^�:�q����캛!�"��P��u:���W����/�/�z/D�'�čW�<�W��p>
��|�����bv�}�[����RO�њ���j$�O�<;ڄ?�G�,�l�^�G�n�O�,��펿�:�(<���0�Vä�:�8[Qm��2D/ݼ O��>�ēv���I����#gF�垬,8��ܛh0��q(�]nBʌ!S��碓�8������r�6��taI`<,��ln;�A�-���ӯD_��B��%[Ԓ�v����S��r��<Iy"A�A~���j��c�^����R*/�{��~ ���U9�����2z���?�z���!6;2�!�h���?O&���v�*L��+dd��E���&$�=@q6�X������fxw(�����ֺF�^4i!<.O��w�Q�1sw�@L�J>s��/�M��eр=e�B�v�3`�>ř��
�AJ`��y��1Q��0ऍ�?34�W,G��}���Y��>��\���.n]�<�Pe��z�m�Mw���?������Sw4\i���T=��!��\R��_�� ���rf��ɨ�����ܨ�*���}�'�ǂ��W��b���{j*��,\��I������hJ���b�zf�u���t���A��j!J��
�]�]+�d�=DݎA��I�l�g���(��1*x���s�{6�����)^�IzF�N��8Xf��cbv~�$+�_ɉ'��?+�m���:�և�rD��29�ꐰ��ș'��Mq�H�U�~ݍ�l)����*�/��LTF.�T�ˆ�r�	�l�O*�N���e��|+��W8��D��?��q	DX;�Dh��MŁ1&V�(��Dž�S����R*4T�VG��Z:P��.)��EtB&ZK�խ�=o�X��	�?-qV�%* k$���w���24d��Ø#�F�z�Q.L�}��6}����S,�-���w�m�P���_�2����vԡb��
e��㬙5���q����@�s'�׉�kSJ�$y/&:H���K��ϲ�ѼJӚ��O��g;�9�>E�qf�b�
��׮��f�Oݴ쾿�8U�
��tۑb̝٤�CeZlH)1��<k�<�]�2b�G9�3�G�8d����
RJ`
_v�;�IH�Y�y�kob"c�2���
/bo�d:�$��]n����p��0z���x)�#{���,=:��
�(#>(aN�ٵ��k����22���[�
�B"�jR���dBJd���j�`����d}���,��z�LZ\]��M��j�c�0�������핦L0��J���K�%�S�^R(��y&}"8ϴC���iEn��E6�`��%ݸ���ҝ�_�8����FN��l�7���-^L��`��3��H�d�,l�_�]�����6�{o���7�P/�5���4��ZS�J���k!�x�f�;2Y��Pz�_����k�*�u7D
�!��8��m��_Qd��7]�cJ�<h�f}bc35*��9����[T#�7��j$���]sbU�������Ԧ	�j�svQʼ�5��]���qsÄ�l�'�p?y(����7�[��d%lX����Qs�ڿ��|}�"��~�^l8w�K�2��“�����KO�OǼ�I�
�i:�[Q�
�@��P?l��My^�!Q�1ڊ���&���D(������{��4\�u���^������(y�+�������	".i')���j� �M��T�f,穡睃E���O!����B�V�Z�9�z��.��u
����1bHN�m�B-����+�2�+<�`���z���h�u�4@�]����o+W�{Ņl�G�1����fjQ�����I�z#"�z�����=f
Zg)O�!3�{]�ä
��HK���E�^��乤�f� W�G���,�#��ׇܬ
�Q$
�.� /�Ԅ��S���՟��Ȳ�Z����:k����{)IG�3�<HiwUwѫ���4�����z����IgB1�I�ӌQ�Ԛ������vU�.^ާ8/��cJ[qx�,�i�n��X˽���$�Lx�z�E��#Ҹ�
�1��_����-Ӭ�IF���Bxe���aB1?5
�]���Rp������3��2N�:�:��Y�a�7�����\��lL0��N��y�B���)�@���Z��vr��4@���?��H<yK����|��nH�{�����\�y�P��P�)k��.��>?I�����u֜)v,6,�	4j8j��	�h�r��̊@��<񘊚/����`�����V]�ģ=�^O�l�����d*;�_�[#�٬���@I��\���uP���������)���M?�Me&%�O���/������A51Y�ޡ�r��U�-I����c*�ņ`��a2�ܳ��}��8����V��	���=eT0V�����"�#���S�}A�xku�vM-I�L"�)�U�6hzo���H:I`7̣P��^%ȷu<��ɘoD!��SH+�~���G%cI|W�����(�b�M;�y��S����&�~�y�W��>|�noÉ+Igo]T�0�"a���y~puGYj:*<�p`.���`�����TP�hd1�S���y��Щ��;��?���m۰�;g�i5��&gHO����J	;��<�����̥3��7�O�S������?0+��bB-*���u���F$��Mrci�I���O@�&�L|�=$*���S�8	�X��Լ`X�p��6�׷5���`���z����K���L=`����ߖv�t�M�H(���Ь_�'���/�ŦW:��zX:���p�12�?������`���3����s����C����Ρ@.���W(�4fJ4gg��G�� ������^� ��-
� ��#�����~ ��[v�_T�}��`A�B'�/�$�'L�jZ��eGo�;��2��N‘L����SJ\��奕�p�����=#9=Z=��a���Y#Q=r='�y����o��������(#	=�?c@A��<���0�9�;H�9���t�?	�������.#=�?i@#A��B���6�E��;T�E�����u	�N�P�9�:�<�@�B�F�H�J�L�R���g���k�g��s�K�K
b5
c���
�V���5
��ZE	[�h�k$n�q
tu�����+��	�]����!��M�������9�\�n��
�,�������]������!��
���&�������l����|�;����V�7����������Kf�	�	�	d

Y
����c��]s�Qn
 :W�	&�~�]z�* � T!�!"�"�"{#�#�#�+":�<�=�=4>w>�>�>5?N?�?�?-@}@�@�@�@7AzA�A�AK�K�L�L)N�NJO�OP�P�P�P�Q4R�VR*cEd��T�,�E�b��������y�	�y�����b�����3�H�^���������2���3�Q��,�G�������v�*��1�����L
���i���T�?��
����	��W������"�=�������6�������Q����a������l������
����������(�	�t������.���,�G���H�K���*{�d��_N
`
~
���(	#$H! ]%�'+�!-P2�5�6
8�8�9�9�;r<�?�?�@�@�I�I�IJ�FJ6[T\�\�^`�`a]a�arb�bbc�c
d+d�d$e�e-f�f#g�gh�h i=i$j[j�jk�k�k�kl:l�l�l�l
m[m�mn�n�noqo�op@ppp�pqqrKr�r�rZs~s�s�st6uKuau\v�vhw�z*{G{|{�{�{O|�|�|����������Z����l�����������6�{���!�����
� ������������^����������q������E���I�������c��������X����^��������e���@���@�����a�������
�h�M�x�����A�_���5��������\�����
�q���/�N�}���8�����D�W����������
�&�B�������L�����3���{���y����C�������&�e������E���Y�u����&�G���
���'F�'��Xw������Hg��-y1�x������ !k!�!�!O"n"�"Z&y&�&�&'�'�'($(@(�(�(O)m)*/*�*�*+]+{+,=,�,�,�-�-e.�.'/E/�/0�0�0m1�102N2�23�3�3y4�4<5Z5�56�6�6�7�7H8f8	&9Q@q@A?A�A�A�A�ALElEF:F�F�F�F�FG�GH�HSIJ�JmKMLMN�NP�PRR.S�T�URW8XZ[]^<`/aSata�a�abgb�b�bc'cHc�c�c�c9dQdud�d�dOeje�e�ef_f�fgKg]g�g�g�gCh�h�h#iri�i�(i-pIpep�p�p�qrbr�r�s�s[t{t�t�t�y�y�yzrz�z{�{�{U|�|�|4}M}j}�}�}�l������j��������>������-+���������'����������I���������
�)�c�+���q������T�s���u�1����-�L���������{��]�w������A�	���O�������2�Q���S�������*�|�������Y���;�U�t����������-��������/�i�1���w������Z�y���{�7����3�R������������b
����3�P�n�������������t���	�������J�c���3�H�h�����_�F�b�������,������{����O�k�������<�X�s�������|�����	��>�����5���<�����I�b���2�G�g�����]G�����5�����G���>����r�����e���4���:�:fZ����`�/���		
5
�
5aU���
�:
���p&��&��9���g�� Fd�����K q � !*!H!�!�!"v"�"�"/#U#s#�#$,$�$�$�$Y%~%�%&*'�'Q(�)F*f*+6+�+�+�+�+B,b,�_,`>�>�>�>
?�?�?@2@�@�@�A�AoB�B:C[CD&D�D�D�E�EfF�F1GRG�GH�H�H�I�I]J~J(KIK�KL�L�L�M�MTNuNO@O�OP�P�P}4Q\\�\o]�]	^%^@^]^�^�_8d^d�d�dde�e�ef)f�f�f4Agqs�s�st!t�t�tupu�u�u(vav�v1wQw�w�w�wDxdx�3x�1�Q�����u������4��4�j��������L���+�����p����$�B�����c�����l������������w����(�[�����'�������.�N���S���e�����^����k�"4#=�?o@)A�K�K
b3c������H���<�P���Q5
���;�Z?[�h�k"n�q	ti�����)�`���Q�����I
������*����&.�$�b�*�i�{�������l�n�:�����X	�	q
����^G�j� �!8#%=�?q@�@�@+A�A�L'OP�P�P8�o����@� �T� ���2�����T�����������@�W����������,�^U[
m
��9�;�?�I�\i`GbBc�c�d�grh4i8j�k�l�nMp(rgs�sXu�v7{�{�|��<���b�h���_�����;���5�M�����Z�N���
�u�H�[�Q���f���p�!�����q�~�!8�i����Y��:�� !|!�!`"-&k&�&�&�'(�(\)*�*j+,,�,�-r.4/�/�0z1=23�3�4I56�6�7U8$@c@1A�A�AE^E,F�F�FG�G&I|JL�M�O�Q3T�VuY^\w_;a�asbc�c]d�dWgig�ip�p�q�ras�smt�t�yz�z�z�{8|�|@}w}�v���r��������,�����������Y�i���������7�G����������%�_������������������\�u�E�Z���>����������5�>�E��������0���������[�t�D�Y���a����*�,���U���r��G��m�
B��Uhh�t-��X !�!�"<#�#�$e%'''&'X*(+�+�+�+T,2>r>�>�>�?@�@�A}BHCD�D�EtF?G
H�H�IkJ6KL�L�MbN-O�O�P�[�\�]�^0d�d}e�ef�f's�st�t�t�u"vsvCw�w�wVx��C�������&�c�������>�S����4���G�r�����@�



)))



))
)))

)))











)
))))

















(&&

&&










&























((%((((&%%%
''''''��R������N���i�a���c�<�-���}�;��������������\�c���������{.	�	�
]
�i�a��$l�;���� +"�"�"#�#�#�+&:�<�=�=I>{>�>�>9?c?�?�?3@�@�@LA�A�A�K�K�M|N_O'PQb0cId��X�J����,�����߳�7�L�s�ֵ�����f�0�����ػ?�F�����������
��������/���&�R����/�M��������������4����O�������.�
�x�*�C�0�\������������c�
4
�?���$['�*�,i1&5g6R7w899`;�;v<
@�@�@�I�I2J�Z<[B^l_�`ara�b�cd@d9e�e�f�g�h�ipj�j!k�k�klOl�l�lmpm�mn�n#o�op�p�p(q�q`r�rs�s�st:u�u�v�z\{�{|d|h���%�Á݁��o������Ӄ"�΄�����������&�	�͐�����������?�����u�$�F�l�þ��3�e�g�m�s����������F�%�����L���|����t���/������������@�����{�	����*���������������X����;������[����������zw`
_��Y:�A���]�1D�|���� � ,!�!�"&C&�&'�')(V(�(�)E*�*&+�+S,-�-�.[/0�0�1d2'3�3�4p536�6�7|8@:@�@RA�A�D5EEMF�F.G3HiI�JcL(N0PhR�ThW0Z(]R`Xa�a�a&b�b�b,c^c�c�c>dzd�dTeoe�e�e4fuf�fg�g�g
hYh�h�h9i�i�o1pMpip�pr?svs�s�tMy�y�y.z#{h|�|R}�}�}�����%�����$�T����4�:�����Œ:�"�\�:����@�z�Q���›�Z���Ğ��H��3���ԣ����V�}���X�/�ܬ��ǯ8�h���y�&��������øp�4�[�̼��6�
���~����F���W������`�������N��9����������\������8�U���2��������	���{�!��J�f���?�$����S�o�������@�\�w�������Q�������&��������z� ������H�Z�����,� ���L��R�~r��'�G��	M
�
ym��
`������!P�	��L{4��w � 0!_!�!"�"�"[#�#$C$�$�$�%�%�&{'�'(;(�)�)*.*y*I+�+�,>H>�> ?�?I@A�A�BrC=DE�E�FiG4H�H�I�J`K+L�L�M�NWO"P�P'[�[\�\u]�]
^)^D^�^d<dbd�d�e<f�fsJsss�s4tu�uv,v�vdw�w�x����d�؂��c�D�n����0�C��?���(��������ޖ�I�n���-���"�S�y�����n�H�œ��R�}����a�����������ȼμӼټ߼���������������4�W�j���'�������L�Y�����������������������������!���������������g�
�o�|�����C�P�]�j�w�*�7������E�R�	������#�'�-�3��������49?ELQW]ciou{������9Fa��	�	�	�	R
_
z
U
��z���@M_kqw}��������LYn�?Li�5R��!��y�KXu�% � � � C!P!�!""�"�"�"e#w#�#�#�+:�<�=�=0>s>�>�>1?I?�?�?(@y@�@�@�@3AvA�A�A{K�K�KvL|L�L�L�L�L�L�L�L�L$N�N2O8OEO�O�O
P�P�P�P�Q�Q0R�R&c
dddddd%d*d.d2d6d:d@d����.�3�7�;�?�C�J�P�'�@�\���ɬ��������ήe�r�װ����t��ɲֲ���]�ijɳϳճδӴ״۴ߴ���������.�D�Y���ε�����y���.���!�.�K���(�B�}���������T�c�r�%���ýȽνԽ۽���������	��,�ݾ�9�F�������F�U�d�����C�P�:���������	��4�C�R���q�~���������������8��������1�����������L������O�\�u���
�n�{�[�h���
���������~���������������������������������������#������p��������*����"�(�B���6�C�<�B�F�����%iv��`��[I
\
y
*/5;CHNTZ_ekpv|��>EKQW\`dhlquy}��������������6 C >%K%X%�'+{-�-�-12>2K2�5�5�6�6�7�78�8�9�9�9�;a<n<�?�?�@�@�@~I�I�IJJJ�J�J2[\%\*\.\2\6\;\?\C\G\K\O\�\�\�\�^`�`�`�`�`Xa�aSb`bmb�bCcPc]c�c�c�cd&d�deee�e)f�fg�g�g�g	hsh�h�h�hiiii8i jWj�jk}k�k�k�k�k�k
l'l5l�l�l�lmWm�mn�n�n�n�n�n�n�n�n	oKoYomo�op'p;plp�pq{q�q�qrrrrrGr�r�rVszs�s�s�s�s�tuuuuuuu%u+u1uGu\uXv�vdw�z&{C{x{�{�{J|�|�|�|�|�|�|�������Ձ���I�V�����g�Ƀ������Ƅ�����1�i�v�ƅ���ʆ������������������
��̖����L�Y�������������������������ÞǞ˞����{�^�k�t���v����������!�.�3�;�A����+�8�E����������%�2�?�L�Q�Y�_�����������G�T����
�L�Y���������k�q�������a���;���������<�s�w�~���������������������������]�������	�c�I�t�����=�Z�����1��������W������	�m���*�I�y���0�4�����;�?�R���������������������_�l�y��������������"�=�r��������G�|�����"�/���j�w���g�t����?�������"�a�������>�T�a�n�u�|�����������J�P�T�\�i�q�������������������(5B���
�
���"D�%��,Su������Ce�����
(t /�@MZgt���������� � !f!}!�!J"l"�"-&U&w&�&�&�&�'�'�'(:(�(�(<)I)g)�)*)*�*�*�*
+W+u+,,7,�,�,�,�-�-�-R._.}./!/?/�/�/0�0�0�0Z1g1�12*2H2�2�23�3�3�3f4s4�4)565T5�5�56�6�6�6r77�758B8`8�89$@L@o@A=A�A�A�A�AEGEjEF8F�F�F�F�FG�G�G
HH�H�H1I@IMI�I�I�J�J�J�JYKfK
LL+L:LGL�LM�M�M�M�M�MN�N�N�O�O�O�O�OPP�P�P�Q�QRR!R0R?RLRS'S>TMT\TkTzT�T�T�T�T�U�U�V�V�V�VWW!W0W?WLW$X1X�Y�Y�Y�Y�Y�Y�Y�Y�YZZ�Z�Zi\x\�\�\�\�\�\�\�\�\�\]�]�]�_�_�_�_�_�_�_�_�_	``'`6`a*aNana�a�a
bbb�b�b�b"cBc�c�c�c6dKdpd�d�dJeee�e�efYf�f�fFgXg�g�g�g=h�h�hili�i�ipp+pEpap}p�p�p�p�q�q�qr]r�r�r�ras�s�sVtyt�t�t�y�y�y�yzzmz�z�z�z{�{�{�{D|S|�|�|/}H}d}�}�}�~�~���X�e�����с�Ƃӂ��	�e�~������'�7�օ��������������	��)�x�������ْ�%�z�������
������8�G�����	�y������!�9�J�[���$�ҙߙ:�G�X�i�������Üݜ��N�k�������L�]�n��)���������ޢ���
�'�E�����ͤޤ�������f�s�Χۧ���(�5�F�W�q�������(�9���������%�6�G�r��������ٯ,�I�a�r���*�;�L����b�o�������ɵڵ��#�v�������ͷt�����D�Q�����ʺۺ��$�5�O�m���ݼ������Ͼ���������%�P�]�n������
�'�?�P�a���*�����@�M�^�o������������T�q�������R�c�t�"�/���������������-�K�����������������l�y��������.�;�L�]����.�K�g�������������m�����������D�]���-�F�f�����[�B�^�y������*������u����K�g�������8�T�o�������v�������<�����1����8�������C�\���,�E�e�����Z�n�������&�3�������6�E���-�<������a�p�������]��� -����2��2^FS��r���X�(���	�	
-
�
�
-YAN��m
z
�
����an t��$t��2���a��@]�����E k � � $!A!�!�!�!p"�"�")#O#l#�#$%$�$�$�$S%x%�%&&'�'�'&(M(�)�)*@*d*+4+�+�+�+�+<,`,�,2>Z>~>�>�>?�?�?@+@�@�@�@�A�A�A\BiB�B'C4CTC�C�CD�D�D�D�E�E�ESF`F�FG+GKG�G�GH�H�H�HI�I�IJJWJwJK"KBK�K�K
L�L�L�LvM�M�MANNNnNOO9O�O�OP�P�P�PmQzQ�[�[�[�[\�\�\�\k]�]�]�]^!^<^W^�^�^�^�_4dZd�d�d^e�e�ef'f�f�f1g4sms�s�s�st�t�tuju�u�u$vMv[vv+wOw�w�w�w>xbx�x�x�x؁�+�O���Âo������2���e��������H���Ґ#����k�����ѓ���<�����Ӕ���`���ؖ�2�h��������Ę���<�s���Ӛ
�"�S�Y����֜�$�f�����؝(�L�������
����#�)�.�4�9�>�C�I�N�T�Z�_�e�k�q�w�}�����������������������ş˟џןݟ��������	����%�,�3�:�A�H�O�V�]�d�k�r�y���������������������ǠΠՠܠ��������
���"�)�0�7�>�E�L�S�Z�a�h�o�v�}�������������������áʡѡءߡ��������	����%�,�3�:�A�H�O�V�]�d�k�r�y���������������������Ƣ͢Ԣۢ�����������!�(�/�6�=�D�K�R�Y�`�g�n�u�|�������������������£ɣУףޣ����������$�+�2�9�@�G�N�U�\�c�j�q�x��������������������Ť̤Ӥڤ����������� �'�.�5�<�C�J�Q�X�_�f�m�t�{���������������������ȥϥ֥ݥ������	����'�.�6�=�E�L�T�[�c�j�r�y�������������������Ħ̦Ӧۦ����������&�-�4�;�B�I�P�W�^�e�m�t�|�������������������ǧΧ֧ݧ�������
���!�(�/�6�=�D�K�R�Y�`�g�n�u�|�������������������Ĩ˨Ҩ٨�����������#�*�1�:�A�H�N�W�]�c�i�r�x�~�������������������éɩϩթީ������������#�)�/�5�;�A�G�M�S�Y�_�e�k�q�w�}�����������������������Ū˪Ѫתݪ���������
����%�+�1�7�=�C�I�O�U�[�a�g�m�s�y����������������������īʫӫ٫����������$�-�3�<�B�K�Q�Z�`�i�o�x�~���������������������ìɬϬجެ�����������#�)�2�8�A�G�P�V�_�e�n�t�}�������������������ȭέ׭ݭ�������
����%�+�1�7�=�C�I�O�U�[�a�g�m�s�y������������������������ǮͮӮٮ߮��������	����!�'�-�3�����ż˼ּܼ���N������������9���T�L���N�_�������8����������h�����	��&�������������l�q�~���E�R�_�l�|�,��������G�X����!�%�+�1�_��������<BITZflrx}������;f�	�	�	T

Y
�|�Beou{�������N]�An�
 W��&��Mz�� � � E!""�"�"�"g#{#�#�#�+":�<�=�=4>w>�>�>5?N?�?�?/@}@�@7A�A�A�K�K�KzL�L�L�L�L�L�L�MgN6O:OJO�OP�P�Q�a,cdddd#d,d0d4d8d>dEd����5�9�=�A�H�N�T�E���Ь������îԮg�y�ٰ����˲۲�̳ҳ۳մٴݴ���������3�H�^�ҵ�����#���#�Q��,���������ûX�g�*���˽ѽؽ���������1�;���������J�Y�����E�����	�������
���8�G�r���s��������������"�=�������+���8�����������Q���w���p���]�l�������
�K�������������������������
��������!�*�����	�t����.��&�,�G�8�v�@�������k{
�����_~
28@KQWbhsy��0
BIOU^bfjsw{����������;��8 �$@%M%E'�*�,}-�-T132@25�5R6�6=7�7�7b8$9�9\;�;c<r<�?�@�@�@�I�IJJJ�J�Z8[#\,\0\4\=\A\E\I\M\�\�\-^W_�`�`�`a]aUbbbrbEcRc�c�c�c
d+dee$e�e�f�g�g�guh�h�h�hii�i[j�jk�k�k�k�kl:l�l�l
m[m�mn�n�n�n�n�no�oppp�pq�qrr	rrrKr�r�r~s�st�tu
uuuu#u)u/u6u�u�v�zG{�{�{O|�|�|�|�|d���!�����ف�K�Z����l�σ�����ʄ����k�{�˅��φ
�"��������������������|�N�������������������Şɞ���*�t�`�r�v�`�x������	��#�7�?�1� �-�:�h�����k��'�4�A�U�]�/�P���R��I�X��N�^������o�s�����������������B�z��������������������������7���x����_����������}�����*�������f���������a�n�{�����������
�&�t�������~���$���l���i�{����C�����&������E�V�c�r�y�����������N��^�k���u�����������	j�*7daJ
�
[��F'�.w���Y����-#1�BO\ix�������� � !�!n"&0&y&'�'$(@(�(>)m)*/*�*�*+{+,=,�,�,�-�-T.�./E/�/0�0�0\1�12N2�23�3�3h4�4+5Z5�56�6�6t7�778f8�8�?'@q@?A�A�D"ElE:F�FG�GHH�H4IBISI�I�J�J�J�J[KLL.L<LML�L�M�M�M�MNN�N�O�O�O�O�O	PP�P�Q�QRR$R3RARRRSATPT_TnT}T�T�T�T�T�U�V�V�V�VWW$W3WAWRW&X�Y�Y�Y�Y�Y�Y�Y�Y�Y	ZZ�Zl\{\�\�\�\�\�\�\�\�\]]�]�_�_�_�_�_�_�_�_�_``*`<`aSata�ab�b�b'cHc�c�c9dud�dOeje�e�ef_f�fg�g�g�gCh�h�h#iri�op p-pIpep�p�p�p�q�qr�r�r;scs�s{tIy�y�y�yzz�z{{�{G|U|�|M}�}�}�~�~���Z�l���Ɓց�Ȃ؂�������,�>�ۅ����������������6�z��������'������;�I���'���
�)�?�P�c���:�ԙ�<�M�^����������T�s�������R�c����1������������-�����Ӥ�������Υh�{�Ч��?�*�;�L�w����.�A�������Ŭ�+�<���t�������2�Q�g�x���0�A�b����d�u���Ӵ��ϵ��|�����·շz�����F�Y�����к���*�U�Ƽ�����ľվ��������	��g�R�c�t����/�E�V�i���@�����B�S�d�����������Z�y�������X�i���$�7��������������3�����������������n���������E�0�A�R������3�P���������������h���F�b���,����
�Q�k�������>�X�s�������>����������������g�
��q�����(�5���9�G�0�����d���������"4���:��fHZ�t���/��	�	5
�
�
aCU�o
�
\����cpw�w�9����Fd���q � *!H!�!"�"�"U#s#$,$�$�$~%�%�&y'�'(((�)�)**f*6+�+~,>5>�>
?�?2@�@�@�A�A^B�B)C[C�C&D�D�D�E�EUF�F GRG�GH�H�H�I�ILJ~JKIK�KL�L�LxM�MCNuNO@O�OP�P�PoQ#[�[�[�[\�\�\�\q]�]�]�]	^%^@^�^�^�^d8d^d�d�e)f�fs7sqs�s!tu�u�u(v�vQw�w�x��ہ�Q�ł��P�@�j������+���;���Óӓ��$���Ĕ֔������ܖ�5�l��������?�w���֚�V�[�D���ٜ�O�i���ڝN���������!�'�,�2�7�<�A�G�L�R�X�]�c�i�o�u�{�����������������������ßɟϟ՟۟���������
���"�)�0�7�>�E�L�S�Z�a�h�o�v�}�������������������ĠˠҠ٠��������
����&�-�4�;�B�I�P�W�^�e�l�s�z���������������������ǡΡաܡ��������
���"�)�0�7�>�E�L�S�Z�a�h�o�v�}�������������������âʢѢآߢ��������	����%�,�3�:�A�H�O�V�]�d�k�r�y���������������������ƣͣԣۣ�����������!�(�/�6�=�D�K�R�Y�`�g�n�u�|�������������������¤ɤФפޤ����������$�+�2�9�@�G�N�U�\�c�j�q�x��������������������ť̥ӥڥ��������
���$�+�3�:�B�I�Q�X�`�g�o�v�~�������������������ɦЦئߦ����������#�*�1�8�?�F�M�T�[�b�j�q�y�������������������ħ˧ӧڧ����������%�,�3�:�A�H�O�V�]�d�k�r�y���������������������ȨϨ֨ݨ������	��� �'�.�7�>�E�K�T�Z�`�f�o�u�{���������������������Ʃ̩ҩ۩������������� �&�,�2�8�>�D�J�P�V�\�b�h�n�t�z�����������������������ªȪΪԪڪ���������
����"�(�.�4�:�@�F�L�R�X�^�d�j�p�v�|�����������������������ǫЫ֫߫����������!�*�0�9�?�H�N�W�]�f�l�u�{�����������������������Ƭ̬լ۬��������� �&�/�5�>�D�M�S�\�b�k�q�z�������������������ŭ˭ԭڭ����������"�(�.�4�:�@�F�L�R�X�^�d�j�p�v�|�����������������������ĮʮЮ֮ܮ�������������$�*�0�6�h6S7x8:9�h"i�i&jqj�j"k��d?ded�d�dke�e�e	f=f�f�f��%�@�d�v��~������V�\���x���n�������������������������L���A�y�������M�Z�g�t���4��������O�v������CS��	t	�	�	'
\
l
�
�O���JX�Vj{IY�-B����O�
Ue�O � !M!�!�!"v"�"�"q#�#�#�<�=>^>�>�>?D?z?�?@I@�@�@�@AaA�A�A�L�LN�NOBO�O�O�O�P�P�PrQ�QRvR4�T�j�¬t����d���ˮ4�o�D����K���`�Ӳ��=���	�&�@�U����������	�R�̷�+�t���+�;�ù��:�O���<������`�o��������ľ��C�@�������R�a������M�����"���������@�O���
���{�����?����������0�h��������S���������7�t������Y�9����&�x�#�e������p��������"�����S�������
�����'�m����:����@���L�As�^
�eV
h
T� @ �$H%U%�'�*5-�-�-�1;2H2p5�5�6�6�7�78�8o9�9�9u;0<k<�?V@�@�@�I�I�I
J}J�Jz\�\�\�^�_+`�`�`�`?a�a�a]bjb�b�bMcZc�c�c�c�cd�d�dee�efof�fIg�g�g�g5h}h�h/i�i3j�j�jak�k�kl0lkl�l�l�lFm�m�m�n�no8oToeo�op#p3pHp�p�paq#r�r�r<sbs�s�s�s�sCuSuGv�vKw�z�z2{n{�{�{9|�|�|=���́��'�S���ނB���:�Ä؄��*�M�s����c�������T���ܕ�`�d���
�V�u���	��f�-�h�)�~����Ѭ�����+���]�(�5�B�����\���Z�"�/�<�I���H��������.�Q�����
�(�V�����g�����{�����B����s��������L���������O�8�U�����,�I����w������D�p�����O����C�V����z���*�L�y�����������)�������{�i�v���������6�Y�|�w�����*�c������,�u�5�t���2�q�����1�o������P�m�����-���^�k�#�f��������
�2?���
�
f���3�s�$Kd������,T����� <�,�JWdq���B����k� � !U!w!�!3"["�"&M&f&�&�&�&�'�'�'
(3(k(�()F)W)�)**�*�*�*+;+e+�+,',�,�,�,_-�-�-!.\.m.�.///�/�/�/g0�0�0)1d1u1�1'282�2�2�2r3�3�354p4�4�435D5�5�56~6�6�6A7|7�78?8P8�89	@D@^@A,A{A�A�A�AE?EYE�E'FvF�F�F�FGxG�G�GHH�H�H=IJI�I�I8J�J�J�JKcK�KL(L7LDL�L�LZM�M�M�M�M	NzN�NFO�O�O�O�OPP�P�PbQ�QRRR-R<RIR�R$S�SJTYThTwT�T�T�T�T%U�U*V�V�V�VWWW-W<WIW�W.X�X�Y�Y�Y�Y�Y�Y�Y�YZZ�Z�Z�[u\�\�\�\�\�\�\�\�\�\	]�]�]�^�_�_�_�_�_�_�_�_``$`3`�`'a7aca�a�a�aFbob�b�bc7c~c�c�cdGdYd�d�d�d_eze�e�eGf�f�f3gSgeg�g�g"hnh�hiPi�i�i�o(p=pYpup�p�pwq�q�qBr�r�rFs�s�s?tht�t�tdy�y�y�y�yzXz�z�z�z{�{�{�{|P|�|�|	}<}\}r}�}x~�~�~V��'�b�3���΁ށ]�Ђ�����?�r��������$�4�����]���i��������&�Q�������ђ��"�e�������
��������D���ԕ�d��������ʗG�X����!���ܙ��D�U�f�"�������ќ�
�d��������Z�k��&���������l����
��=�T���^�ۤ�F�����1�p�D�ا�����2�C�T�e���������%�6������{�����"�3�D��|�������ѯ�B��o���ڱ8�I�Ų�سl�}���J�Ƶ׵����2���<���ʷ$������N�"���Ǻغ���!�2�C�e�|�ּ����n�̾ݾY���l���"���Z�k�|������� ���M�^����'�������J�[�l�(������������j�������`�q���,��������r������!�C�Z���d�����L�����7�v�J��������8�I�Z���
�'�D�a�{������������U�����������3�W�p��@�U�����J�&�V�r�������������^������_�{�������L�h�������_��������+����� ���	�0�������2�V�o��?�T�����I�5���������0�s������B����9�Z�����.�m���������I�m���*u�d����B
P��9|����Dh�%p�_	�	�	
�
�
=K��4
w
�
w���2kB���!B���+���Cp��)V��n��' T � � 
!:!�!�!�!R""�"#8#e#�#�#$}$�$�$5%a%�%�%�&�'�'(E(�)�)*8*S*�*#+s+�+�+�+%,O,�,>R>m>�>�>�>�?�?@@�@�@�@\A�A�A'BfBxB�B1CCC�C�CD�D�D�DSE�E�EF]FoF�F(G:G�G�GHH�H�HJI�I�IJTJfJ�JK1K�K�K�KvL�L�LAM�M�MNKN]N�NO(O�O�O�OmP�P�P8QwQN[�[�[�[\H\�\�\K]�]�]�]�]^5^P^�^�^�^f_dSdyd�dGexe�e�ef}f�f gsass�s�st�t�t�tSu}u�u
v8vVvnvw>w�w�w�w'xQx�x�x�x���#�>�����X�������!���K�z�����A���Ȑ�L���t�˓ۓ��4�z�͔ߔ}����Ζ�(�^�x��������,�i���Ú��B��O�̜��\�����ǝ�;������4�^�p��v�{�����P�=���_���Y�������������n�������������@����s�������G�T�a�n���.���������I�d�������=M��	[	�	�	
V
f
�
	�6~���DP�Pdu�CS��'<���|����O_�, � � G!e!�!"Z"�"�"k#�#�#�<�=
>U>}>�>?;?q?�?@5@�@�@�@�@XA|A�A�L�L�M�N�N<O�O�O�O�P�P�PVQ�Q�QER.�K�d���M����=���Ů�i�	�۰������%�Ͳݲ���s���:�O�~���׵d����!����%�C�ظ%�5�����1�I���������Z�i���m���������=��������L�[�k�����G��������t�����:�I������u���������������'�_��������0���t�����*�S�������S��y����r��_������T��������
���x�1����{��������!�`����1�����:���?�,m�-��XP
b
@��: �$B%O%w'�*
--�-�152B2T5�5�6�6~7�7�7�8b9�9�9a;<e<�?:@�@�@�I�I�IJaJ�JV\�\�\�^�_`�`�`�`2a�a�aWbdb�b�bGcTcdc�c�c�cdtd�d	ee�ef>f�f%g�g�g�ghwh�h)i�i-j�j�jTk�k�kl*lbl�l�l�l9m�m�m�n�n�n/oNo\o�o�op*pBp�p�pTqrzr�r/s\s�s�s�s�s=uMu:v�v>w�z�z,{e{~{�{,|�|�|(���ā�����M�|�т5���%���τ��!�8�m�����2�����
�8������/�H����P�`�����۠Y��b�
�x��z���������%�V�#�"�/�<�Z�m�@�����)�6�C�t�4�������
��K�������P�����K�����u�����5�v��B��������?����������+�O�}���#�C�����F�������;�^���������1�P����I����F�`��������������������5�c�p�}��������-�D�v�j������N�������&�D��n����k�����(�f������G�g�����$���X�e���`���������,9��{
�
`���-��e�B^������N�a����3&��DQ^k~������]� � !G!q!�!%"U"�"&D&`&�&�&�&�'�'�'(*(b(�(�(@)Q)�)**r*�*�*�*2+_+�+,!,�,�,�,B-�-�-.V.g.�./)/�/�/�/J0�0�01^1o1�1!222�2�2�2U3�3�34j4{4�4-5>5�5�56a6�6�6$7v7�7�798J8�8�8@;@X@�@&AmA�A�A�A�D6ESE�E!FhF�F�F�F�F[G�G�GHbH�H�H7IDI�I�IJ�J�J�J�J]KpKL"L1L>L�L�L
M�M�M�M�MN]N�N�N�O�O�O�O�OPfP�P�P�Q�Q	RR'R6RCR�RS1SDTSTbTqT�T�T�T�TU�U�U�V�V�V�V	WW'W6WCW�W(X;X�Y�Y�Y�Y�Y�Y�Y�Y�YZjZ�Z[o\~\�\�\�\�\�\�\�\�\]c]�]^�_�_�_�_�_�_�_�_```-`�`!a1aZa�a�a�a=bib�b�bc.cuc�c�cdAdSd|d�d�dVeqe�e�e>f�f�f*gMg_g�g�gheh�h�hGi�i�i�o"p4pPplp�p�piq�q�q4rir�r@sws�s1tbt�t�tOy�y�y�y�yzJzyz�z�z{�{�{�{|J|�|�|}6}S}l}�}Q~�~�~/��
�\�����ȁ؁"�ʂڂ���6�l����������.�e�݅�@���.�����X��� �<�|�����Ȓ��V�����˓���˔��>������U����������A�R���
���֙t�>�O�`��������˜��[������՞T�e�ɟ ���������0�����4�N���7�դ�������j��ҧ���z�,�=�N�_�~�������0�i����]���R��-�>�Įv�������ȯ�9�˰i�z���2�C�������f�w������ѵ���,������ķ��|����H������ҺX�
��,�=�\�v�ͼ_����G�ƾ׾;���0�������T�e�v����������G�X����!�����z�D�U�f�������������
�a���������Z�k���&���������6�����
��:�T���=�����%������p����������2�C�T�����;�X�u������������E�{���������$�Q�j��:�O�����;� �M�i��������������O������V�r�������C�_�z�����P��������%�|�������'�������#�P�i��9�N�����:� ���������*�d�������<����3�E������g���������9�g���$e�E��q�<�J��v����4b�`�@	�	�	
l
�
	7�E��
q
�
b����e�-z��-z��"{��4j��#M��_�� N x � !1!�!�!�!C"y"�"�"2#\#�#�#$n$�$�$&%[%�%�%�&|'�'(<(�)�)*/*M*�*+d+�+�+�+,I,�,>I>g>�>�>�>�?�?�?@u@�@�@>A�A�A	B`BrB�B+C=C�C�CDjD�D�D5E�E�EFWFiF�F"G4G�G�G�GaH�H�H,I�I�I�INJ`J�JK+K�K�K�KXL�L�L#MzM�M�MENWN�NO"O�O�O�OOP�P�PQqQ*[�[�[�[\$\�\�\<]z]�]�]�]^,^G^d^�^�^W_dJdpd�d8ere�e�efnf�fgsXsvs�s�st�t�t�tDuwu�uv/vPvhvw8ww�w�wxKx�x�x�x�����8����I�|�����}�E�q���֏�;�]����F����C�œՓ��+�I�ǔٔn����Ŗߖ�U�o���ԗ�����#�`�z������/���I�Ü���S��������5�Ҟ��'�D�f�x��������5�����]�����i���P���k�7����"����"U�	�	�	;
n
�
�c��)\�4l}[�/D��T�"g�� � !!�!�!�"s#�#�=>c>�>??@�@�@�@fA�A�A�L
N�N$O�O�O�P�P�P�Q
R{R6�Y�l�Ǭέ��K���P�����B����+�B�W������϶W��y�	�=�ع�?�Q�����5������ɾ�/�}�$���'������C�t���5�m����������<�����U���T�?����������s�������������r���?���)�$�v�[�c�jX
j
�" %�'�*[-2�5�6�7�8t9�9E<�?k@�@�I�I�IJ�J�\�^�_f`�`Da�aDb�b?c�c�cd�d�d�eftfg�g�goh1ij5j�j�jfk�k�k$l2lpl�l�l�lKm�mn�n�no=oVojo�op%p8pJp�pqfq%r�r�rAsds�s�s�s�sEuUuLv�vPw�z{4{s{�{�{>|�|�|O�ҁ�	�9����G���L�݄���/�_���
�h������i��e�y�"�����k�B�O�T���֬ʳ�����q���������8�����2���|�J���G���!���"���Q���������T�=�W�����1�K����|������I�r�����T����E�X���$����/�N�������������(����;�c�|���/�m����z�G���D���6�t������U�o�����2�*�=�o�����������
h���5�x�)Pf������1V��
%A��#����p� � !Z!y!�!8"]"�"&R&h&�&�&�&�'�'�'(8(p(�(")Y)�)*�*�*+@+g+�+),�,�,v-�-8.o.�.1/�/�/~0�0@1w12:2�2�2�3�3L4�45F5�5	6�6�6X7�78R8�8@I@`@A.A�A�A�A�AEDE[EF)F{F�F�F�FG�G�G�H#I�IyJ3K�K�L�M�N�O�P�Q�R0TMU�V�WrY�Z[\�]t_�`9aha�a�abKbqb�b�b
c<c�c�c�cdId[d�d�d�ddee�efLf�f�f8gUggg�g�g'hsh�hiUi�i�i�oBp^pzp�p|q�qGr�rHs�s�sDtjt�t�tny�y�y�y]z�z�z�{�{5|�|�|}>}a}t}�}�~>������D�t����������t���Έ[�����֒	�j�������)����i�����–��ߘ��	�c�Ӝ���i�`�)��S����B�V�����s�J�����g��������������A���֯�G�>��޲1����� �4�����Q�(�{�ջE�j�~�ۼҽ��r����������%�������i������o�f�/��Y���#�H�\�����y�P��������,�I�f�}������������Z�����������8�Y�r��B�W�����O�(�[�w������������c������d��������Q�m�������d��������-�����%����5�������7�X�q��A�V�����N�G������x���'���)�����R�������N�o�z���#D(��T���Ij�u�z	�	
�
?#��O
�
���
R	e�e�0���Hr�+[��s��, V � � !?!�!�!�!W"�"�"#:#j#�#�##$�$�$�$:%c%�%�%�&�'�'#(J(�)�)*=*U*�*%+x+�+�+�+*,Q,�,>W>o>�>�>�>�?�?@@�@�@uA�A@BzBCEC�CD�D�DlE�E7FqFG<G�GH�H�HcI�I.JhJ�J3K�K�K�L�LZM�M%N_N�N*O�O�O�P�PQQx[�[\�\P]�]^^:^U^�^k_dXd~d�dLeze�e�ef�f�f%gshs�s�s�st�t�t�tXuu�uv=vXvpvw@w�w�w�w,xSx�x�x�x���(�@�����]�������#���M�����
�C���͐ �N��������9��������Ֆ�-�e�}����	����1�p���Ț��D���Q�ќ	�!�a�����ɝ�=��O���j�b���.���~�<�������������|/	�	�
	����m<��� ,"�#�=�=K>�>�>e?�?�@NA�A�M}N`O(PQ��-������v������g�����@�G������������0���S��N������������5�������/�+�D�]����������
���$\'�*�,j1'5s6^7�8E9�;@�@3JC^m_�`asa�bAd<e�e�f�g�ixj�j)kPl�l mqm�m$o�o�p�p)qar�rs�s�u�v�z]{�{|e|'�p������$������������������@�����v�%�G�����f�h�n�t��������&�����M����u���0��������A�|�����������������[����>������^���������{xa
`�Z;�B���^E��� � -!�!�"&D&�&'�'W(�(�)F*'+�+T,-�-�.\/0�0�1e2(3�3�4q546�6�7}8@;@�@SA�A�D6E�ENF�F/G4HjI�JdL)N1PiR�	Ti
W1Z)]S
`�a(b�b`c�c�d�e�e6fwf�fgh[h�h�h;i�i�o�pr@sws�s�tNy/z${i|�|�}�����(�%�U����5�;�;�#�]�;�A�{�R�����������I�
��������W��Y�0�����i���z�'���������q�5���7�����G���X����������O���������]�����3������
���|�"� ���@�%��������R�����'���	���{�!����I�[�����-�!���M��S�s��(�H��	N
�
zn��
a���Q
�|5�� `!"�"�#D$�$�%�&�'<(�)/*z*J+�+�,>I>�>!?�?J@A�A�BsC>D	E�E�FjG5HI�I�JaK,L�L�M�NXO#P�P([�[�\x]�^d�d�eDf�fsMs�s5tu�uv�vew�w�x����e�����d�E���3�@������J���.���T���o�I���~���b�O���j�b���1����@�������������}0	�	�

����n=��� ."�#�=�=L>�>�>f?�?�@OA�A�MNcO(PQ�/�����v������h���ۻA�G������������4���T��P������������7�������-�F�_����������
���$]'�*�,m1)5u6a7�8F9�;@�@6JE^o_�`aua�bCd>e�e�f�g�ixj�j)kPl�l mqm�m$o�o�p�p)qar�rs�s�u�v�z]{�{|e|q������������А����� A�����y�*�K�ƾ��h�j�o�v��������&�����M����u���0��������B��������������� �\����>������`���������{xb
�Z;���H�-!�!�"�&'�'W(�(�)G*'+�+U,-�-�.]/0�0�1f2)3�3�4r556�6�7~8�@SA�A�ENF�F0G6HmI�JiL/N8PqR�TsW<Z5]``�a(b�b`c�c�d�e�e6fwf�fgh[h�h�h;i�i�pr�s�t0z%{j|�|�}!����(�'�W����8�<�$�^�<�C�}�S��ƛ��Ǟ��L��ף����Z�!�[�1����k���{�*�����Ÿt�8���9������I���Y����������R���������`���3����
���|�"���@�%�������R���	���{�!�c���J�\�����.�!���M��T��s��)�H��	O
�
{n��
���Q
�|5�� `!"�"�#D$�$�%z*J+�+�,�>!?�?K@A�A�BtC?D
E�E�FkG6HI�I�JbK-L�L�M�NYO$P�P�[�[�\�^�d�eDf�f)sMs�s5tu�u�vew�w�x́�e�ق��d���3���@���U�J���.�6�U����p�t����~��b�=���X�P������l�*���p���	������j	�	�
����r[*��~� T!"�#�=�=8>�>�>R?�?�@;A�A�MkNNOPQ�Q4Rլ�ٮ~�	�y����b�b�����2���U���ǻv�.�5�����������v����A���<�����������p�#��������2�K�z�������
���$I'�*�,X15V6A7f8(9�;�?�@!J1^[_�`aaavb/d(e�e-f�f�g�i_j�jk>l�lm_m�moqo�otp�pqOr�r�r�s�u�v�z�zK{�{|S|^����p��υ!���ӆ����������.�x�v�d����E�5�I���o�c�T�V�\�b����e����������;���
����c���5������
�q�����8�����.�j���������3���{������G�����*������J���u�y���n�heN
�H)0y��3�� !�!p"2&{&'�'E(�(r)4*+�+B,-�-�.J/0�0�1S23�3�4_5"6�6�7k8)@s@AA�A$EnE<F�FG"HXI�JRLNPWR�TWWZ]A`yab�bMc�c�d�e�e#fdf�fg�gHh�h�h(iwi�pres�s}tz{W|�|�}
�q����C����#�)��K�)�/�i�@����y�����7���ã��ԥ��E�
�G��ˬ��W���h��ٴ��۷��_�#��%�����m�5�o�F����������=���������K���!�	�������j����.��������@����������i��s�7�I���������;��A�ma��
�6��	<
�
h\��
r��?��j#�� N!"�"y#2$�$�%�'*(�)*h*8+�+�,7>�>?�?8@A�A�BaC,D�D�E�FXG#H�H�I�JOKL�L�M{NFOP�P�[�\�^�d�e+f�f9s�s#tu�u�vSw�w�x݁S�ǂ��R����L�ِ2�������8����B�ٚ]�ܜl�ܝP�m]x]�]�]^
^u^�_�_�_�_�_�b�b�c�c�c�c�c�c�c�e�eBfLfVf�fJgUg`g]mgmrm�m�mxo�oCpNp�p�p&q�q�q�q�q{u�u�u�uwwSw�wzkzuz�z�z�z{�{�{|q|||�|�|}E}P}[}e}p}}}�}�}~~q~|~�~��]�h�s���Ȁ׀���\�\�\�\�\]1]<]G]S]b]�]^�^�^�^�^�^�^___&_T_a_n_w_�_�_�_�_�_`` `^`�`�`aVa�a�abNb
c6cAcLcWc�c�c�c�cdd(d?dZdxd�d�d�de;eke�efff(f5f_fifsf}f�f�f�fg4g?g�g�ghhh)h3hvh�h�hii)i5iDiOiYi�i�ijjZjdj�j�jkkekok�k�kl!lplzl�l!m,m7mCmRm{m�m�m�m�m�m0npn{n�n�n�n�n<oGoRo^omo�oppp)p8pYp�p�p�p�p�pJr�r�r�r2sls�s�stTt�t�tuUu`ulu�u�u�uvvv%v/v9vCvMvWvavkvuv�v�v�v�vw'w2w=wHw`wjwtww�w�w�w�w%x0xmxxx�x�x�xyEyPy�y�y�y�y(z�z{Q{\{h{w{�{�{�{�{�{|@|K|W|f|�|�|�|�|�|}�}~f~L�R�X������������ ���������{�����O�\�i�v�6���Q�E��	^
�LXK��W� O!"�"v#�LDO�O�Q�����ͮq����ղ�������-�-�
�����b�q�½E�����T�c���O���B�Q��}��������������������[���z�g���������)�!�B�uB J%W%�-�-=2J2�5�6�78�9m<�@J�J�\�\�`�`_blbOc\c�c�cee�g�gh�h��U�ńu������X���j������� �-�*�7�D���$�1�>�K����S��X�����}���������������k�x������~�����.�v�s�`�m�h�4A�
���.LYfs����H)
*�*,�,�-^. /�/�0f1)2�2�3r455�5�6~7A89�GH�H?ILI�I�J�J�JeKL*L9LFL�L�M�M�M�MN�N�O�O�O�OPP�P�QRR R/R>RKR&SLT[TjTyT�T�T�T�T�U�V�V�VWW W/W>WKW0X�Y�Y�Y�Y�Y�Y�Y�YZZ�Zw\�\�\�\�\�\�\�\�\�\]�]�_�_�_�_�_�_�_�_``&`5`)a*p�pr�r�yz�z
{�{R|�~��d���Ё��҂��&�6������������(���$������F��I�Z��#�ޙF�W�h�����œ����\�m�(�����������ݤ�����r�ڧ���4�E�V�'�8�����$�5�F�~�����q���:�K��n����ȵٵ���̷����P���ɺں�#�4���ξ߾����$�\�m�~�O�`��)���L�]�n�����������b�s�.�������������������x������:�K�\���2���D�;���o��,��R~�'�	�
My
�m�#��@�AhB3C�C�D�E_F*G�G�H�IVJ!K�K�L�MMNO�O�PyQ�[�[�\�\�]�]�^�^͓ݓϔ�:���Ջ8�����ώ���ّ��ԗg������Q�����^��U���|��J������ݭ���B�����Z����a����y�Ֆ/�7�ݮ\�����+��������H�6�α����ԋ7�����Ύ���ؑ��ӗf����[�P�����]���T��{��I�������ܭ��6��A�����Y���
�`����x�Ԗ.���ܮ*��������������G�5�ͱ��G��@�����[fs
�Ӗc�n�������͋,�����ǎy�~�̑��_���ߝT�H����E���L���B���欃�խy��:����R����Y���
�q�͖%���������������ы0�����ˎ}���Б��c����X�L����I���P���F���꬇�٭}��>����V����]����u�і)������������H������=�����q���`�����.���*��	C
�
k1= ���+�4!�"�#�=!>l>�>?�?@�@oA�AN�N�O�P�Q����T����������������B�������5�4���#���X���v�(���E�
�f��L�����������������-���s
/ /%�'�*l-"2�5�6�7�8}9R<t@�@�J�^�_�`Qa�a�b�d�e"fghj�jkkkul�lPm�mnBo
p�pqkq�r�rFs�sQvUw�zx{�{C|�|����P����������v�����/���t�O�\�g�����~������������Z�4�5�V�������B�6�����N���#�)�4�����=���8���P�M��?�}���"�Z�����7�7�L��� ���
�}��6���_!="�"�&�'�'u(+)�)�*E+�+�,-A./�/�0I12�2�3U45�5�6a7$8�8
A�A�AF�F�F�G�H�IHK�L�N�P	SvUX�Z�]a�aPb�b�c$d�d�efQf�f�f=g,hxh�hiZi�i�qVrIt�tfz�{�|}�~�G�����I����}�����s�����r�#������t�m�6�	�d�������S�����������R�K����B�����^�1���������{���0�)����� �z�s�<��j�������Y��������_���=� ���T�����h���i�����*�<����S�����������S����(1�]��Nz�	�	�
#,�X
�
���M�x1 � �!\"#�#�$?%�%+}+/,�,�>�?@�@~AIBC�C�DuE@FG�G�HlI7JK�K�LcM.N�N�O�PZQ]]x_Qe�e�f*g�s�t]u�uw�w1x�x��b������H���������!�����]�������#�<�?S@
A��,�p� �)o�;8�)���d�/���L����\�n���]�6����������V�]���K��	d
��c�sQ:	~]* �!�"�"�<�?-@�@�@�@zA�K�K�L�N�O�P�P�a*c��,�b�ٳ���3��G�����i��������)���Q������I�����(���������*�N
`
.
�9�9Z;�?�I�Z6[T\`�a�bbc�d#gh�h i$j�k�k�ln�n@pqrZs�stKu�v*{|{�|b����̓�6� ��^����f�-�������@�@���M�A�����\�/�N�D���B���L���y���e���Y�+��\����LW}��� � o!�!S"&^&�&�&�'(�(O)*�*]+,�,�-e.'/�/�0m102�2�3y4<5�5�6�7H8�?U@#A�A�A�DPEF�F�F�F�G�HJmKM�N�P.S�U8X[^/a�agbc�cQd�dKg]g�i�o�p�qfr9s�s_t�tGy�yvz�z�{|�|4}j}��j���4����ȓȔ������ɜ��L�]�������*�;�t���������R���r��������x�����N�g�7�L���������������O���<�������
�"�����������M�f�6�K�����������B����e��:��`�	
5�Z*�*��g ��K !�!v"/#�#�$Y%�&w'(�)*J*+�+�+�+F,
>d>�>�>�?@�@�AoB:CD�D�EfF1G�G�H�I]J(K�K�L�MTNO�O�P![!\o]a^d�dhe�ef�f�r�st�t�ttu�uev5w�w�wHx��5���y����>���9�F��������������,�B���M���2���������w��2� #&@E
pWs}yj�����7�(���V���&(>�[�])dsv��\���,�!�`���������k��&� &@	E�oKsqy^�����+����J���&>{[�]dsv��P��� ��T����
	




 
$
(
,
8
H
L
P
T
f
r
v
}
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
!)-4<CJNU\cjq���������������
 $(,048<LSr���������������������������	
&-FW[bimqx��������������������5:BJRW_glqy����������������0;CO`w�������%8EV^chz����������������%-5=BJOT\din|��������������������
%*9>GOYcx�������������',16;@EJOTY^f������������� %-2:BJRZbjow����������������������$,AI_gow����������������	!5ESX`hmu}��������������,1GLQV[`ejoty~�������������
'/4<FNV[cqy~�����������49>FJNRVZ^bfjnrvz~������������������������
!/7JRfnv������������	!27?KS[qv~�������������
#(-27?KSafnv��������������   # + 3 ; @ [ ` h p x } � � � � � � � � � � � � � � � � � � !!!"!-!B!G!O!W!_!y!~!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!""""""#"+"3"8"@"E"M"R"Z"_"d"i"n"s"x"}"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"#	####"#6#;#N#V#^#k#�#�#�#�#�#�#�#�#�#�#�#$$"$+$3$;$@$H$P$b$g$�$�$�$�$�$�$�$�$�$�$�$�$%%$%,%C%K%P%X%`%e%j%o%t%y%~%�%�%�%�%�%�%�%�%�%�%�%�%�%�%&&&&/&7&?&H&P&U&Z&_&d&�&�&�&�&�&�&�&�&�&�&�&'''''"'5'D'L'c'k'p'x'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'(((()(.(3(8(=(B(G(L(Q(V([(`(e(j(o(t(|(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�()	))))#)()-)5):)?)G)O)T)Y)^)f)k)p)x)�)�)�)�)�)�)�)�)�)�)�)�)�)*****,*4*<*G*L*T*\*a*i*q*v*~*�*�*�*�*�*�*�*�*�*�*�*�*++++#+(+0+8+@+X+`+h+m+r+w+|+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+,,,,",*,2,9,@,G,O,_,l,p,x,|,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,----'-/-7-F-J-R-Z-b-j-t-|-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-......(.-.1.9.=.A.I.M.T.X.`.h.l.t.|.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.///// /(/0/4/</D/H/P/X/\/d/l/p/x/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/0000 04090>0F0K0S0X0]0d0v0{0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�01111"1*1/171?1F1N1V1^1c1k1s1z1�1�1�1�1�1�1�1�1�1�1�1�1�1�1�1�1�12222$2,21292A2H2P2X2`2h2q2y2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�23	333!3)323:3B3G3O3W3^3f3n3v3~3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�34444$4)41494>4F4N4S4[4c4h4p4x4}4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�45555#5+535;5C5H5V5^5f5n5{5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5666*676<6D6L6Q6Y6^6f6n6s6{6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�67
777"7*727:7B7G7O7T7\7a7i7q7y7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7888!8&8.868;8C8H8P8X8]8e8j8r8z88�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�89	999!9)9.969;9C9K9S9[9c9k9s9{9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9:
:::%:-:5:=:E:M:U:]:b:j:o:w::�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:�:;	;;;!;);1;9;A;I;Q;Y;a;i;q;y;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;�;<<<<#<+<0<8<=<E<M<U<]<e<m<u<}<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<===='=/=7=?=G=O=W=_=d=l=q=y=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=�=>>>>#>+>3>;>C>K>S>[>c>k>s>{>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>???-?2?:???D?L?Q?V?^?c?k?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?@@#@,@9@I@Z@c@h@p@u@z@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@AAA#A(A0A8A=AEAMARAZA_AgAoAtA|A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�AB
BBBB'B/B7B<BDBLBTBYBaBiBqBvB~B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�BCCC9CAC\CaCiCqCvC~C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�CD	DDDD&D+D3D;D@DHDPDUD]DeDjDrDzDD�D�D�D�D�D�D�D�D�D�D�D�D�D�DE	E$E)E9E>ECEKEPEXE]EbEgEoEtE|E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�EFFFFF%F-F2F:FBFGFOFWF\FdFlFqFyF�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�FGGGG!G)G.G6G>GCGKGSGXG`GhGmGuG}G�G�G�G�G�G�G�G�G�G�G�G�G�GHH3H8H@HHHPH_HhHqHvH~H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�HII"I'I,I4I9IAIFIKISIXI`IeIjIxI}I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�IJ"J'J,JKJPJYJpJxJ�J�J�J�J�J�J�J�J�J�J�J�J�J�JKKKK!K&K.KBKJKSKXK`KiKnKvK{K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�KLL
LLLL%L+L1L7L=LCLILOLUL[LaLgLmLsLyLL�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�LM	MMMM%M,M3M:MAMHMOMVM]MdMkMrMyM�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�MNNNN!N(N/N6N=NDNKNRNYN`NgNnNuN|N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�NOOOOO$O+O2O9O@OGONOUO\OcOjOqOxOO�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�OPPPP P'P.P5P<PCPJPQPXP_PfPmPtP{P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�PQQQQQ#Q*Q1Q8Q?QFQMQTQ[QbQiQpQwQ~Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�QR
RRRR&R-R4R;RBRIRPRWR^ReRlRsRzR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RS
SSS"S)S0S7S>SESLSSSZSaShSoSvS}S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�ST	TTTT%T,T3T:TATHTOTVT]TdTkTrTyT�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�TUUUU!U(U/U6U=UDUKURUYU`UgUnUuU|U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�UVVVVV$V+V2V9V@VGVNVUV\VcVjVqVxVV�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�VWWWW W'W.W5W<WCWJWQWXW_WfWmWtW{W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�WXXXXX#X*X1X8X?XFXMXTX[XbXiXpXwX~X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�XY
YYYY&Y-Y4Y;YBYIYPYWY^YeYlYsYzY�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�YZ
ZZZ"Z)Z0Z7Z>ZEZLZSZZZaZhZoZvZ}Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z[	[[[[%[,[3[:[A[H[O[V[][d[k[r[y[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[\\\\!\(\/\6\=\D\K\R\Y\`\g\n\u\��������y��5� %&@E
pYs�ym�����9�0�9�@�����Y��''''*>�[�]+dsvÁ^���6�K�,���j��+�~��������������o�t�y�;��������Y	�	r
����`I�l� �!<#_#5=6=7=8=W=X=Y=x=�?s@-A�A�L�L)OP�P:�{��������������������B�"�\�a�f�k�"�6�7�����`����������������������D�E�[�`������	������2�3�4�`YZo
�������������;�?�I�\�\o`s`w`Ib�c�c�ceee�g6i>jBjFj�k�k�k�l�l�l�n�n�nSpWp[p.r2r6rkspsZu�v9{�{�{�{D�E�F�G�f�g�p�q�r�s�m�n�o�p�q�r�s��������=�9�>�S�X�]�������������`�e�j�P����{�����a�f�k�h���r�������������w�|����:k��[��
!�!b"m&�&�'((�(^) *�*�*l+.,�,�-t.6/�/�0|1?23�3�4K56�6�7W8e@3A�A`E.F�F	GH(I~JL�M�O�Q5T�VwY`\y_?aDa�a�awb|bcc�c�cadfd	eeeee"e'e,eyg~g�g�g�g�g�g�g�p�q�sotz�z:|�|B}�}�}�}�}�}�}�x�����Ãȃ̓҃���.����і֖ۖ����ל� �%�*�/�4�!�e�j�o�t�y�~�k���������éȩ��������
����C�H�M�R�W�\�I�����������������������������!�&�+�0�5�:�'�k�p�u�z�������������w�\����� ��������2�����v�[����,���W�����v�{���$KP����qv��

FK��Wjj��x}16����\ a !!�!�!�"�"@#E#�#�#�$�$i%n%Z**+�+V,t>?�?!@�@�ABJCD�D�EvFAGH�H�ImJ8KL�L�MdN/O�O�P�\�^�def�f�st�t�uuvEw�wXxE�����(��������I�ΝB���_
��#�+(:�AKdZ���ex<�@T�߲��.�к<�˽r�����A�m�^�����������e����������C��&��!�1 ��!��$�d!�� �*%��'�#�}��%�N$���%���� �H!�� �"�x!��'�W$��^4loXolo:p�s�����Zv�x�x0�i��������~�n�?�����]	�	v
����dM�p� �!`#y=�?t@�@�@.A�A�L-OP�P�P?������F�'�p�'��8���9������������F�e��
�����5�d[[
t
��9�;�?�I�\{`NbBc�ce�grh7iJjl�l�n_p:rus�s[u�v>{�{�|H�h�t���t����B���C�b�����o�U������H�p�Q�m���w�!��������!? p����`��!|!�!g"r&�&�&�'(�(b)$*�*p+2,�,�-x.:/�/�0�1C23�3�4O56�6�7[8j@8A�A�AeE3F�F�F
GH,I�JL�M�O�Q9T�V{Yd\}_Ia�a�bc�ckd1eWg�g�i�p�q�r�stt�tz�z�z�{?|�|G}�}�}�׃������3������ܜ9�&���p�ͩ����a�N���������?�,���������������\�|�E�a������%���
����������7�����[�{�D�`���!���1�,���\�����)U��{�$
P�\oo��;��f !�!�"J#$�$s%_*/+�+�+�+[,y>�>?�?&@�@�A�BOCD�D�E{FFGH�H�IrJ=KL�L�MiN4O�O�P�\�^�d�e�e"f�f�st�t�t�uzvJw�w�w]xJ�������-��������N�ӝG�#����0��r����+��"~�����/q�������!}����.�p��R���� |���-o������J�{������n����I��z������m�$�E*����y��������
D���6�x���������C��5w��������B���4�v��������
A��3u������Q	@��2�t���������1s����������#��D�N��G���ee8ϧ;rO9t@��E��tW�s}�J�core_intrinsics�derive_clone_copy���ee8ϧ;rO�?�c������&���Z��ee8ϧ;rO���/��~%$�u�����$��$��ee8ϧ;rOp�ε{���*��S!���8��ee8ϧ;rOn������"~7$��k��$��$��ee8ϧ;rO,@�I��~?$�?
���$��$��ee8ϧ;rO���wb5����,��ee8ϧ;rOB�]NM�5���"1��ee8ϧ;rOA_�>���8������
���ee8ϧ;rO"2�l���]~$�a��$��$��ee8ϧ;rO����ZA� �=Qp��t��a���ee8ϧ;rOJz��Y���V-ge�f\��$	derive_eq�����ee8ϧ;rOE�s������ ��*���wTee8ϧ;rO����/�^lt%Yr���$��$��ee8ϧ;rO�5��Yw��*��S&9��ee8ϧ;rOlIG��)t7��'��$��$��ee8ϧ;rO���˚�hW�8�������ee8ϧ;rO�Z�Y�P�nt?�����$��$��ee8ϧ;rO��ʨZQ5X���j��ee8ϧ;rO���U"v�t�&���$��$��ee8ϧ;rO{�I3;IO��#��B�NU��ee8ϧ;rO�<��ܯ�V�f��O\��$���ee8ϧ;rO�������� ��(�wTee8ϧ;rO��ӃO��%�q}����$fmt_helpers_for_derive��_�_ee8ϧ;rOIh6��f�*��S#C��ee8ϧ;rOZ7s��i�X�,u����$��$����ee8ϧ;rOՌ!�`s���>V���$��$����ee8ϧ;rO2SB��V~�8��M��ee8ϧ;rO[&�*UVO���r��ee8ϧ;rO
�K_��)�8����N��ee8ϧ;rO�#���!�<���j��$��ee8ϧ;rO���Z/�
+�<����^��[���ee8ϧ;rO�e���E��tV�e���$��$��ee8ϧ;rO��(̡
c� ��(:wTee8ϧ;rO~�s��b��*��R#;��ee8ϧ;rO4��φr���,�����$���ee8ϧ;rO3�wa��b�>����$���ee8ϧ;rO�r����K��@"���$��$�_�_ee8ϧ;rO��tZ�C
z�#��@�N���ee8ϧ;rOg.D��
�VTeC��$��$�_�_ee8ϧ;rO�8��f�� ��(�wTee8ϧ;rOH��q��~�,�����$��$�_�_ee8ϧ;rO�*�uC/���*��R#���ee8ϧ;rO$�0*B�U�>"�	��$��$�_�_ee8ϧ;rOm��;f�'8�8����?��ee8ϧ;rO���@��?8~$����$��$��ee8ϧ;rO������ĉ�<����^���ee8ϧ;rO/E�\�(� ��&�wTee8ϧ;rOz�i)�����*��R!���ee8ϧ;rO�I�jg�*~,$�\	��$��$��ee8ϧ;rO�]I��~>$�"
�	��$��$��ee8ϧ;rO8s�����o���"�	��ee8ϧ;rOߚ��LΦ6tb!{
��$��$��ee8ϧ;rOx6�I����#��>�N�
��ee8ϧ;rO�af�X��� ��*JwTee8ϧ;rO]B�7
�?����,�
��ee8ϧ;rO?ez����t,v�9��$��$��ee8ϧ;rO�C[�3�нt>?�n��$��$��ee8ϧ;rO"q4��4ܙ�
�ހ�
��ee8ϧ;rO:�eq�8�y�8���� 
��ee8ϧ;rO\~<�e���P��$��$�_�_ee8ϧ;rO�M��zx�<����^���ee8ϧ;rO�X�\��#�T{_���$��$�_�_ee8ϧ;rOwi\_=n� ��(
wTee8ϧ;rOmu�|�
�)��=5���,��ee8ϧ;rO@<;E�kL�4���
[��ee8ϧ;rO��tZ��c&�=-��
��$��$����ee8ϧ;rO�u�V͞1������$��$�_�_ee8ϧ;rOX��a��#��<�N�
��ee8ϧ;rO���\�x$�S`]	��$��$�_�_ee8ϧ;rOD0�L�>�� ��(nwTee8ϧ;rOK��aI�.$crate::thread::local_impl::thread_local_inner�����uQb��athread_local_internals����
�f�fee8ϧ;rO����`y�b�)��<5���ee8ϧ;rO�-��;��M�=���
��$���ee8ϧ;rOf�cw�����4��
t��ee8ϧ;rOO:k@�$	�8H����
��ee8ϧ;rObo7\ڥ�.��%
��$��$����ee8ϧ;rOI��Zh��<P���^H	��ee8ϧ;rO�'U<��'�� ��(J
wTee8ϧ;rO�;ד�76$crate::thread::local_impl::thread_local_process_attrs�]����Gb��/$b��$��ee8ϧ;rO#�,�΢���(%��ee8ϧ;rO��;��e�4�LJ
��ee8ϧ;rO�ہzv��t=�����$��$��ee8ϧ;rO�����B������ee8ϧ;rO��S]� ���8�������ee8ϧ;rO�
s�eyas�9
��$���ee8ϧ;rOR8��o-g��#��:�N���ee8ϧ;rO��)h�g�=�p��t���ee8ϧ;rOuc���7�� ��&hwTee8ϧ;rOY�T2�(4��4̬�
���ee8ϧ;rO�AMZ�z~=$�"	���$��$��ee8ϧ;rOd��`���s�8�������ee8ϧ;rO�^��nK���&f��ee8ϧ;rOUqu7yw����5��$��$�_�_ee8ϧ;rOC�m�P�=����u��ee8ϧ;rO�M�`(�D� ��"���vTee8ϧ;rO_�3���$�t[���$��$��ee8ϧ;rO��e�]�Q����]��ee8ϧ;rO|���S�J�=l�,��$��$�_�_ee8ϧ;rO��Ԓ�.c��4Ē�
t��ee8ϧ;rO˘����6U~$����$��$��ee8ϧ;rO�R�lj�]��#��8�N���ee8ϧ;rO)"��(^��=�p��t���ee8ϧ;rO՞Z5�Ѽk� �� �vTee8ϧ;rO�?�@Ҷ��Z�����$��$����ee8ϧ;rO��Iġ-~����?,
���ee8ϧ;rOnp�v@B���<� ��$��$����ee8ϧ;rO1H��̐n���&U��ee8ϧ;rOF'2��)�8����$��ee8ϧ;rO��V0`���t�	��$��$��ee8ϧ;rO�,'����=����u"��ee8ϧ;rO��ŕnR�T� �� vTee8ϧ;rO>��G�D�;�#��P�O���ee8ϧ;rO$��F=����Z�w��$���ee8ϧ;rO�S"L$f��������ee8ϧ;rO������)�|���$���ee8ϧ;rO�Uv�v�����!,

��ee8ϧ;rO��VZ�<k�<��$���ee8ϧ;rOC�}�(����&m��ee8ϧ;rOޞ����������$���ee8ϧ;rO@��A-��r�=�p��t
��ee8ϧ;rOr�,��� �� vTee8ϧ;rOͥ�X�y��Ze����$��$�_�_ee8ϧ;rO��p�n<B��'��O��C���ee8ϧ;rOc(�Z����)�{3��$��$�_�_ee8ϧ;rO���`Y�%�e-�i��$��$�_�_ee8ϧ;rO��\�Z�E�<�����$��$�_�_ee8ϧ;rO��*q�����",	4��ee8ϧ;rO�*���D�u���&b��ee8ϧ;rO~��$�rL�8����1��ee8ϧ;rO��Dl�r`��a��$��$�_�_ee8ϧ;rO���aKji�=����u0��ee8ϧ;rO�8�(�&��� ��+vTee8ϧ;rOt����0p�#��N�N���ee8ϧ;rO�_I(e㢣tZ�����$��$��ee8ϧ;rO���I�o;�'��OS��ee8ϧ;rOR�|/<`,�~)$����$��$��ee8ϧ;rO�"A�>��te$�m��$��$��ee8ϧ;rO�&����� ,	L��ee8ϧ;rO��5t���~<$�!	I��$��$��ee8ϧ;rO;BEE��(~$�~��$��$��ee8ϧ;rO�9��2|da�L<�F��$��ee8ϧ;rO�$���6��<�9��$��ee8ϧ;rO�`�����=�p��t���ee8ϧ;rO�*���&0<���1/���SFee8ϧ;rO:*���Oo�$Ĉ&��"���ee8ϧ;rO�N�)�ѱZt)iz-��$��$��ee8ϧ;rO�^(v$���d����$��$�_�_ee8ϧ;rO3
rn��[���	,	B��ee8ϧ;rO�`6i�Ut<�����$��$��ee8ϧ;rO˻W��f��8����F��ee8ϧ;rO�|^���rt���%
���ee8ϧ;rOA����
��tX��$��$��ee8ϧ;rO�W�올�L�?���$��$�_�_ee8ϧ;rO^F�i�W��~$�<��$��$��ee8ϧ;rO�NS�@�'�=R���u���ee8ϧ;rO���Iy/���0.YSFee8ϧ;rO�V�)1��#��L�N���ee8ϧ;rO�V
��Ł��$��!�����ee8ϧ;rO��VrC��#�c�����$��$�_�_ee8ϧ;rO��uODu���;W����$��$����ee8ϧ;rO�,��p���
���ee8ϧ;rO�Ҵ�6S>�~L$�F���$��$��ee8ϧ;rOmZ鴵{^t�F� ��$��$��ee8ϧ;rO]�ײ���=Rp��t���ee8ϧ;rO.�#g;G�����&� ��ee8ϧ;rOL�x
=�X�x���$��$����ee8ϧ;rO�oX����$����	��ee8ϧ;rO��I
~'$�� ��$��$��ee8ϧ;rO�LQ�Brƨtc��!��$��$��ee8ϧ;rO���)��C�;�����$���ee8ϧ;rO/��}�MeT�8G���m ��ee8ϧ;rO�A�3~���=��w$4 ��ee8ϧ;rO���c�uw�tL�>�"��$��$��ee8ϧ;rOxM�Aul�;�F��$��$�_�_ee8ϧ;rOVL�������&�"��ee8ϧ;rO�?Z�:Ey�#��J�NK#��ee8ϧ;rO��N^�n�X4x���$���ee8ϧ;rO�n��S?��$��)��ee8ϧ;rO:�����t'�t�#��$��$��ee8ϧ;rO/*�c���b��*��$��$�_�_ee8ϧ;rOb
tA�i�;#�`��$��$�_�_ee8ϧ;rO�=�8��"�F����$���ee8ϧ;rO�f��An�F�=��v b"��ee8ϧ;rO��;Y����K�,_"��$��$����ee8ϧ;rO�i�oqWj�<����$��ee8ϧ;rO}��}_^'Q�=�p��t#��ee8ϧ;rO��]�5L����(�$��ee8ϧ;rO��i�Y���tX�wy%��$��$��ee8ϧ;rO"�o�2�z�$��Z��ee8ϧ;rO���W�X3�'Lt&!��$��$�_�_ee8ϧ;rO��̒��a�����,�%��ee8ϧ;rO�_cA\7~;$�		�%��$��$��ee8ϧ;rOX�����>tF�u&��$��$��ee8ϧ;rO���A�Ұ�K2,X"��$���ee8ϧ;rO�B�Mzu:~$�X&��$��$��ee8ϧ;rO�<��@fL�=����u�$��ee8ϧ;rOY�YF�M���!�&��ee8ϧ;rOwTpŸ����#��H�N�'��ee8ϧ;rOLCW�/Y��X!w�"��$��$�_�_ee8ϧ;rOM�`N#�v�$̶���ee8ϧ;rO����by�*��T&C'��ee8ϧ;rO)!���t;@�1(��$��$��ee8ϧ;rOt7�iG�g�F�#��$��$�_�_ee8ϧ;rO�!p5�_B�~K$�(��$��$��ee8ϧ;rO�H�E��:t�A�(��$��$��ee8ϧ;rO�Z\B����=�p��t�&��ee8ϧ;rO ��5���,�(��ee8ϧ;rO�O�?����W�u'��$��$����ee8ϧ;rO
����X�0�*��T#�(��ee8ϧ;rO@�z+A�!�7��'��$��$����ee8ϧ;rO����w�?���'��$��$����ee8ϧ;rO�����ltK�+F*��$��$��ee8ϧ;rO{
���a�;�A�%��$��$�_�_ee8ϧ;rO�
C\��=����u�(��ee8ϧ;rO���Gnm�E���(�*��ee8ϧ;rO.�����7��#��F�NA+��ee8ϧ;rO:n~���W`u�&��$���ee8ϧ;rO��	c�/���*��T#�*��ee8ϧ;rO7��
.�7b�O'��$���ee8ϧ;rO���ƶ���?��'��$���ee8ϧ;rO�;<�m�o`�K+V'��$��$�_�_ee8ϧ;rO��G��#���<�&��$��ee8ϧ;rO4��}`�I�=�p��tW*��ee8ϧ;rOF܃�AE������ee8ϧ;rO�X��W���W�t(��$��$�_�_ee8ϧ;rO.�sb :%)���&�,��ee8ϧ;rO�����q��*��S#p,��ee8ϧ;rOKi�P`���7���(��$��$�_�_ee8ϧ;rO"����%�B�?���(��$��$�_�_ee8ϧ;rO��N�������F&t-��ee8ϧ;rO&���i�1����)�-��ee8ϧ;rOZe�yB���8����p,��ee8ϧ;rO���������'�)��$��$�_�_ee8ϧ;rO3�֔����=Q���un,��ee8ϧ;rO�,��������H�������������G����]���P��#�7�M��M���ee8ϧ;rO��#�@C�#��<�O+3��ee8ϧ;rO����T�P��#��B�O+b��ee8ϧ;rOd�3�m-p_�8�п� .��ee8ϧ;rOQ7��
x���#��H�O+���ee8ϧ;rO_W�̿�8H���~.��ee8ϧ;rO�>;��/
���%��߃b��$��ee8ϧ;rO"���"�<P���^2*��ee8ϧ;rO��|xx�p��8����/��ee8ϧ;rO��d`��'�#��N�O+���ee8ϧ;rO�v?�S�K�<��^&�*��ee8ϧ;rO��w��T���#��:�O+��ee8ϧ;rO�Gy�;S�#��@�O+C��ee8ϧ;rO�����}W�8�н�0��ee8ϧ;rO����=��#��F�O+���ee8ϧ;rO�)�N�j�8��0`0��ee8ϧ;rOtA�X.�#��L�O+��ee8ϧ;rO�󬡯Å�8�����0��ee8ϧ;rO�$���UF�<����^>,��ee8ϧ;rO�Q6EM��8��01��ee8ϧ;rOk�1Ӄ2���#��8�O+���ee8ϧ;rO�u��%�ź�#��>�O+���ee8ϧ;rO�5�� �&��8Gл��1��ee8ϧ;rO�l���z��#��D�O+N��ee8ϧ;rOe<���Xq�8����
2��ee8ϧ;rO��d�#?�Y�#��J�O+���ee8ϧ;rO�b�Ο�8����m2��ee8ϧ;rO�d@??E!�<����^�-��ee8ϧ;rO�S�W�����#��P&@��ee8ϧ;rOprb��1���Q	b"	� 	H 	�	�	^		}"	<"	�!	�!	a!	!	� 	v 	& 	�	�	=	�	k"	!"	�!	�!	K!	� 	� 	V 	 	�	l	'	�"	J"	
"	�!	o!	-!	� 	� 	9 	�	�	P	�	xW	�Q	� 	�Q	 	.R	z	�Q	�"	R	"	�Q	}!	�Q	� 	R	C 	�Q	�	�Q	
	)R	7"	�Q	�!	R	!	� 	m 	" 	�	�	9	�	� 	S"	"	�!	�	F	�	�!	�!	S!	!	� 	+	s!	2!	� 	� 	> 	�	�	Z		y"	3"	�!	�!	]!	!	� 	h 	 	�	�	"	�!	�!	A!	� 	� 	L 	�	�	b		�"	@"	�!	�!	e!	!	� 	z 	* 	�	�	A	�	o"	%"	�!	�!	O!	� 	� 	Z 	
 	�	R	"	7R	N"	�Q	�!	R	(!	�Q	� 	4 	�Q	�	�Q	�	$R	."	�Q	�!	�Q	!	� 	d 	 	�		4	�"	]"	"	�!	�!	<!	3R	q 	�Q	�	R	K	�Q	f"	"	�!	�!	F!	� 	� 	Q 	 	�	g		�"	E"	"	�!	j!	#!	� 	 	/ 	t"	)"	�!	�!	X!	!	� 	_ 	 	�	u	/	�!	x!	7!	� 	� 	 R	U		�	�	p		�"	X"	�"	�O	�M	,L	:J	BH	�E	�C	B	�?	r=	L;	d9	�7	F6	�4	�2	�0	�/	�-	,	$+	�)	'	�%	L#	�O	|W	�J	�H	sF	JD	xB	�?	>	�;	�9	�6	q3	�1	�/	.	�,	�+	�)	�'	�%	�#	&P	iN	�L	�J	I	�@	�>	�<	V:	78	
7	5	�3	
2	�/	�.	C-	�U	
U	�(	R&	P$	�P	T	vG	HE	C	!A	�<	�:	�8	�5	4	YS	�(	�&	~$	�P	NA	�>	=	�:	�8	;7	�5	_4	j2	^0	�.	q-	,	�*	))	�&	�$	KQ	7O	qM	�K	�I	�G	�E	|C	�A	b?	<R	p7	�U	�4	MT	�0	mR	�-	)V	�*	}T	'	�R	�"	�V	N	�T	gJ	�R	F	�V	IB	;U	�=	�S	�9	�'	�%	}#	�H	�F	zD	#@	.>	�;	!:	/.	�,	P+	*	'(	&	�#	TP	�N	�L	'K	6I	G	�D	�B	�@	�>	J<	�:	e8	�6	M5	�3	�1	"0	d.	-	�+	T*	c(	�&	$	�P	�N	M	\K	kI	AG	E	YV	�@	�T	�<	�R	�8	�V	�5	/4	;2	*S	�.	W	�+	kU	�(	�S	�$	Q	O	<M	�K	�I	�G	vE	GC	�A	0?	�2	�S	1/	HW	O,	�U	])	%	�Q	iO	�M	�K	
J	H	�C	�A	�?	B=	;	49	�7	6	�4	�0	a/	�*	�)	H'	E%	�"	�O	4N	ZL	�J	oH	>F	D	�=	x;	�9	�7	u6	3	%1	�F	�D	�B	X@	c>	<	�"	�O	�M	JL	WJ	_H	�E	�C	9B	�?	�=	h;	�9	�7	e6	5	�2	1	�/	�-	�,	@+	�)	�'	�%	m#	P	�W	�J	�H	�F	jD	�B	@	>	�;	:	�6	�3	�1	�/	.	�,	�+	*	(	
&	�#	DP	�N	�L	K	&I	�@	�>	�<	t:	U8	+7	=5	�3	+2	0	�.	a-	�U	+U	�(	r&	n$	�P	=T	�G	fE	7C	>A	�<	�:	�8	�5	4	�S	�(	�&	�$	Q	sA	 ?	2=	;	$9	`7	6	�4	�2	�0	!/	�-	?,	�*	M)		'	%	qQ	YO	�M	�K	�I	H	�E	�C	�A	�?	]R	�7	V	�4	mT	�0	�R	�-	IV	�*	�T	8'	�R	�"	�V	$N	�T	�J	S	.F	W	hB	[U	�=	T	�9	�'	�%	�#	�H	�F	�D	H@	S>	<	F:	T.	�,	v+	D*	S(	B&	$	zP	�N	�L	LK	[I	1G		E	
C	�@	�>	p<	�:	�8	�6	r5	�3	�1	N0	�.	3-	�+	y*	�(	�&	@$	�P	�N	,M	�K	�I	fG	8E	xV	A	�T	�<	�R	�8	�V	�5	O4	Z2	IS	�.	8W	
,	�U	)	�S	�$	;Q	'O	aM	�K	�I	�G	�E	lC	�A	R?	�2	�S	Q/	hW	o,	�U	�)	5%	�Q	�O	�M	L	*J	2H	�C	
B	�?	b=	<;	T9	�7	66	�4	�0	�/	+	�)	o'	{%	<#	�O	YN	�L	�J	�H	cF	:D	�=	�;	�9	'8	�6	a3	�1	�F	�D	�B	~@	�>	:<	��ODHT ?
���-f)�>E�I������p��c��@�B�)�@���	6�d�@���O&���v�����0Mifrz�I��3���Y�"uE�����vڞI��g0F���O��VЩp
٭�`^8�� ���ȉ鍌L@;�$Hu�$���ԧ4 ��Hu�� ���V���H0�x�"�!���pST'�$�C`/����%�K1UW*�U&�(=�'C�&`�]Aix�|(���z(�F�`D�q����*���ͭу*�r����,`d�n������O@�&�L|
��6�{ow	��m�7�!G�/ڨ90N|<��?�'���e�@��$��u�}B��pHUN�CP�O�-FF�F���5��taI`<,�s~�_Np��t(�|O���H���PP��-P��.O�bg,�1Q��0��y�P��P�	O��\Xp%[~�{�Z;�L6�}uZ����F �Zp�.�%��\����	���\����&_�yBo�Ȳ�Z����	xap��a���f �0�&Y�ipR>�YF�jP�l�QO�j��v{�� l 0��2�n�=!^�s��o�M����dpp��	P��q��\���p���>
3���u��e��+�u���7w�G�U��x�7=�g��"{���{�]\�}�Ԣ��9%�~�H�.y�L��}�@o�(� ��y�"�~`ϫ�L��h��{pY��~@�0YpJ���_}���tm�g�@x��s��~�Q��}�'�	y�0��`��r��̊@���	��5���qC	�~ݍ�l)'		wb��� c�y�p" x��|���|EFՔP����$����a�x;�%�@���sD�Η�FRe�����<������?��i���ů}��=��q(V��Н��`��G�l���������P��u:��9�q��#n\�J~F�@�� 6+������S7̣P��
8	�PB�0{�����\��殨�����0�H��Qݪ0.k�!���K��#(p�`�����0$5Ƹ��0��k,�P�m�O7$\�@*
��K̭�8m�Fy��P�n�n]�<�Pe�	 �"��P ���G;�Pܔo�SW3��
�o(���2�A���@n��/�5���4y	X:���p�1+
�|�dŀH���|:]�`r�s��Q�p%hD��0z���[	��� Ee��\��� |
��S�����
�ĵ��P���<t�����qU�a_�pO߷ֳ*�� ڽ"�	=�P������p�p*��zE��ڰ*o��hX��/u� �(�ސ_�?��UP�p�i�x����e��x����%E�"��A���+���h�X^���������s��0�s��z���p�(^��_�� �	����Ъ��3��@]�nm͸��Y��5J������� ��^��z	H��`4C��_��05��&��@��������irL4����{�P��`'E��PxF���q�r�캛!�"�!Q�1ڊ�	}(�&1�N�v��S��#S��%l��hьI�w���1<y�%����NC����
��4���k!�x{	���7a��/����ۥ�����[0c���1�%g�\�a����C؂��m��ȼ14}����M�E�TK%N!@u,Gd�a�c����&���	���Qݺ�%^� �*�c�1�!�*���z�Q.L<	�����d*�	uc�$�M}��(%q��Q�:Q(�����p*qhZ�.��g*!<P7�n�;-�J��<�0�g4H�#�)1�u.d���1�V�d��1�S�dݘ8���.p�J8Q�QU����:ьT�i$;1"��P72<��ʼn��<1�+nu���9QL���-�?Q|{T(|��@A�����>��x���<����:�(<������g;�9J	K���E�^϶	T���F�r���aB1?5�	n��I��j�vM-I�L"�	��.�N�p��	N�}^/�Km�PTwW#tTUS��M�� ��S�rz�60�U�Y*^��9V���1-�V!}������S����@V�Y�W�Go�W����O�@[��~��|Qz\A��*��,\��I	l�_�]���v	�cJ[qx��	�X�`�����EaA���
C*baa�MJ��ca�F�X��dqY����zdC�%J���b�zf	��M�g1�q?��
e���B	�=��k�ֵ���5Jlqs�sÄ�l�	��Z�o��
����pAH4��=z�q!��a3%o�t��:�q��������r�6��4u10]�-;x����MZy�dHkⱤ��G���V8���!��:�և�rD#	ec�Q�!�]nBʌ!S����������RO�њ���e.Β���I�|A�1 ^&�@�K��'��|�!���F��
���enߋ����xr��ڱ���yO!����M9�"��u~���l��Ne��3��2N�	s��Ӥ!+*��d٥�-�����x��J����Ăn��˧�.?f,穡督	1Y�ޡ�r��	Pj���!�ļ��$�q��s�M�q�e��z8��C}a��!uэ�����vĖ�/dz�a��Nv!��}���qw�����I泑$����ʵѿ���־�}B-�c�޷�c�K�~�a:ϓ�����q�?Zh0��q(��V�j�!�����]���q�	��Y���,����!��T���!�aS��@%ٿ�"�u9[i�An�=�����=8�5z����H+�~���
/aed�Qm�6~<���!�����*��1��yGFQ��A�X���҅�ah���16�*�Wb/#��᧙0.�!����n�Ŝ�!]����ԑ��!�'�a:�
��7`�q'T��u���A�nX����Qs��	G$�z��ͩ�s�8�A������w�1/5���I��A
ڄ^������(�	�H��A�9D1�=�Q7����Uw�Q:G/A����]xm
�|}�]P�� ��F�z��	r��82B"����<>��`���3-
h�yY�A�)W������óc��m�Qq��O-���6
8��19��9�F�����Q���Q����!��\R
	r�	�l�+	QX�6�gl"��~T}�:��,�[��r	r�oBL	�G�����	".�	��~pBM�c��"�K��y������/&:H���G	6Q2~�C�Q��~��<�W��p��Hfs"8����]e
��'5+�~�&
�����w��#�7|��ǧ�%�"�qh��&�:>���l'"c?�3�p�%BS��I=��)R�s9l���*"��xp}�n+R�:��/s�+�x�|4���-�wY����/�J�qn�+1���K�]�2b�R	���3�NL���1bHN�	Έ�5"�����K�7b�K�̠��9���TYn�;�k@m;H<�y��!6;2������>2^
@�M?r���0?"%�du�V3?�#�xhw&N?ҏ���$	pC2��<Iy"A�A�I;�TJ���6���.L"�H�\HNBʐ���\O�r���9��Pb 	�����R��'���ѿV�z�@:�bZ"'BK��}(\�	�[b�-�`"0�����`���	>Fb�:(��l�d�oR->Cfғ�v#p�k���9y8�l�:�;O��@q�溸>I�{r�x���]sbU�	��h�u�4@�	�Z��vr��	���5w�_��)hl]x�!�`ѤZz��m-~n	}r�A]��}1
4A����ص@h�}~��m�	����R��<h�f}bc3�	�րŃ�v_�u�Y��b�‘���+�2�+�	��y�B���	<؅g��$�n���D�+��Z����d���r:�|榮>���Q��5���d�������ܻ�'a���Q�Ԛ���	�T}\�RZK�)��:�]���������eZE�BhQcn��o`�]T�0�"a�
Dc_ۨ�x�PŸB{�¼��g5����P�ޙ�H���qԊcH���լcʍ�����/�ӣ�����������������#�����:�R\L���¸�>�O���/��	�W]���x�M�����e�WP�2,5[e��r����5�¼M*m����B�����,���ع���S��r����VN�R�W�r���}�yՒ����$��6׀M���ւ�[��-�R{tMI���r�:�]�+�"�Śc��?������'��r��N����B�V�	���߂����B"�����~#?��R��Z������`��R`
y���_�2�@	b���{j	ϕZ��t�5����Q��$�쒷��ɐ�^��m��������:�����a;��U��5����<���
�]�<!�i��eI����_����B'��`��"z��NѨ�B�td�>æ�2�0@�[�
�B"�a	��{��4\�	#"�z�����	��	��
hy��g܏�����\�	���c4��`���1P���3������#�ex�]��C�{�}�:�[�>�ƒ��X��JW���.�I;t�̓�
{{m��P�jcD�4}|dQ#��p��~ ��[6
�41!!�����g<"�/{��kob"c�W	7D
�!��8	ɘoD!��S
4�&����Xb(S.��9�<)(��N�F��,������H�-�+�{���-�8+��"�L-�o�ɀi�0c��Sy)0����E�H,�.�f7��3� |w�Q�1sw��t�5s��GD�l6���0
Ƽ7�#���y!8#(b4N)�9�o�q���<3z�"Ġ~P?�c�;��.@F]�R�KA�GW�͡��B���E10+CS%+t�б�DrZ���
DcK(~Ik�GSH�bT���I��0�\�kJs
���NK��͉�_.
L�JXi�ك�O#B� �PS�P[��pQS��f�kmP����wCmRC+���[T#�7�	g�mU3� 	��W�L6�F��Y��G��TWY�y`�j�5[õSNj��\��2�,0O�]�%6�1I�[�<g*;�_�[#��	:��bé##�i5�cCd܁1�<1dc�����{c�M
����d�3��Lohsc��m��i��a�/�k�������Ils}����0�kC����>�Bo#kf;�o�������s�.
�
�u����!�1Iw�I���Fλ}�2a��̜�p�NR���C1��SلZm�ܥ������fjQ���	�x�y��/`<�BL����A����� �������	����ui�$�3$���\�����WG��|�#�j��ۈ�JU�#tv��։��qθ�r��}�~zF��	d��Ø#�F;	��1���I���yn���(bp\����@�������`d�~��_�,%�-�����\�kϠcz��֒���8�N�+]ϨB�rj|�SXu0Qx�sY�~!���eO��q�Þ�&��p��$��Kn��C�+��[X�l6}"8ϴC��m	����Sw4	۝.�#+����æuV�3�S�
��ú#��z����I�	��q���SR�~��^�Q[�s�G 8����V��	�S��A�%��ƃ�,4����3�x�19��C�a�?&�_�3����[�ɣ�p2�;��ѳ������'���H�Q�����L��8�&س��`ŏ�d��D.�<����鄁��{ۃH��y��k�S÷`��rZ�A���	g�3�������(
?`=��sPP��C���(q�z�w/�q�7�ֺF�^4��ނ����'adP�c�]���20�#����&�~�y�
�.������IB�v�3`����7]�cJ��	i�Q���u �B��-�S����[DE�#�#�B[V��U0+�k�e�f-$�~�kd���j$�O����t&��,6,�	4j8�	)�CT�i���%�Ĕ�*��H�d�,u	�&��d(��c��d�c�0���h	����n�+RI��1nU���4�{��^�4�b��t�l��4Hl��cf�4�3������>����D-4V���$���_=ۈ�R��8�F�!������2"g@G�c�!4��&*�9�%	n��K�%�Sk	w��'Td�P��\(�؂�χ�(T�����Y=*T���DF-�,�E�a�β-Լ�����C-��yk�:�/$���0W�1�Sw+:�M�4��B�T���54��v��u`7T�c����p749�g��|w8��y��v�17d��R�e28$R�PD�A�����BĮ���O�BC������DD�G���mC��b8d�G��i��,�ID��'9S�pJ�DwlXK$X��H�,MLtĩjү�II���!�t�M�H'
��m�U�t`=_�(�U$��ǂ��W��	V[X40ST��%Y�g���_�d(�O�a�����F�b�~A�?9pmg��-"�TP�hd1�
����i4Pc��Vj4)�A���Rj�YmY�sgl�+Qs��-}l���"z�mlT����j$��	�բq�K�|��t�z���R��u������.v������vԡbA	�O�D|���OG%cI|W
r�H�t��KC�ĐY��+䇑��v]�T�7�d�4��+�ƒ���[����TV��2�?�����,
,�2k��!�}�(,���2�:z��jS�T)t�X������Jz�����4�KY7%�D��t|��$܇(��k���S�k�_?��殘	Ul�����YZ񂂟�6�~ ���D��4�0�d�AJ8�ӣ�C����(w��f�d:�$�Y	�Őw�����	k\��"j���
Ǫ�����~�$���z$���D�\_��Q�D�V1D6@@�TX�4a�ty������a�48��o�ͪ$��IX���QYe���۳TP�A�3��C�nL{��4U
���ew��:*��1���	�I��2����u�-|ƹ��C�˸��D���D�'�čW�i�|���ة��D������>ř��
�,�>�����V�5$�4��>�I��N���2��|0�Vä���q�{Ą�6@2M��dK�tw7D���gfE�i/DŽ~Jr�aU5�$c���S^��DV�Ļθ�t�O��>�ēv�y���̴V�+���$%�@y�����d�B�\�?P1��eΤ��h�:�δ`pl�~�Z���gy�&�*ф_��u���t�	O*�N���e,	�p����յ���֤�|C8d����
RT	���gل�b��<;ڄ?��`����d}d	n����d��\�K��$!2�ޣ��Tg�xr��XS /�Ԅ���	����TϦ�:>y����q?�&��r�YN?*��F�ཽ��iI�!q��4�kF�1���$������7�	�	�z��)�
/�T��~��N��C,�!��4����6�?�ģ�3{oH��tw���������\5���	������h	jZ���{ ;���]�0k�	eL���V
�oC�U��p r��5�n
#�9&�
�b6��
��_�\6�^�����u͹���#�M�]a%����I]�d�P_��	u�F��~ ����	���u�Qʼ�5�	O�!3�{]�	���E�x�'�#5�l�*�*)%ko�M+5Z}%y�,������.���=A��/uݤ��!��2�v�`�q" 3��k��?c39��$�5�䐋f�ט5%:�B��8%S,A��)�8ER���:�:���	�O|n;p��X�Ϝ;%jB�?u�>E�����@�a�#����A�[��@��,ff�d$@�ҟ�V_D5F@P�P)E�o�]
��E��*W�
�4DE4�'=DݎA��I	�zL�Le�t]?�Me&%�	�#�O�ߕ��Z4Q�7��{���W�6�6�X�-Z���]5#��q��_���WJ��a����Y��b5h�#�T	�c�8iP+:McUܐ�Y�a�7�	�;g�i5��
Z'�jթ�<�!"!k5��=��)lU�����'�mE��pJ?ne��[fo�{�����pEaW�
�4p��i
CeZlH)P	�d�v��h����vu��q��Bw��xe�C��{�A�,"[�M|5�
�+W�{�	�!��~Eh�a
[�i.�����~��
��L���d���Ԃ�(V$UN.�5��b:&�e�v#gF�垬�N�����'}�S��[����|�<������?�1nJ�%���wѓ����dOQ�5�� D�/��e.���u����	(A�i�e4ހ �|֒u'���`i5����k�<�����[�D�ŧ��٠ֵ��yU�6����^eL`ڢ���g�*���e;��\��J�E6ȱ����-#���Ǯ�-9]]����ü�7ůE�)P�<��k_Hm�&�K3��EJ�hє+�E˯D�Mg�5^��W�G���,�	�Ke���y%��뵾e\��0����e�+Sr)������F����5հH7	�R�e� [����u�� �g��U�<�����n��������6B���U����c*�ņ`�	�K���L=%
��o�e���5�(~�9K�N��5�*����/ߕТ�]���w8���8���!����}�u.�F1�`q���]9�J�5����"O��Lb�����u&̪���5�p����ﵠÏA�sG��B�kSJ�$yF	�2���A����v���h���~���E�/��K$��u�Z�S���՟��	|Gz���P�v��s�.uF>�̀�U�I�j[D6�<���A��1-�v��6G��N:�W�_6	]��8U�
��tN	[�����7�_��i��M��jg	���~v�p~&��3fWH@۳�3b���\���u�	d�>����7�F�7�eT0V����	Y�H%�p{�MŁ1&V�1	A0.�'��o&��H)�6����k�*�u~	P�� /ƸDcW(�4fJ41
�^D8��/X��r9�a��:�e�lH���8�C%�*E�A=V�}��#6=V1��_ת�?6y�:���A���v��[BV݄�QhC�2��F6Z�A�c�{~�NoE�e8�A��F���B��j�F�U����H&�t	1���G֜΍%0�H���卯}Kv�m�D_��B����EtB&ZK6	CecN�����s�,Nf�a����Oz��|a^Q&�v!��LTF.�)	E�U�U&���L@�GYF�!7�v+Z���scAZ���C �!Z������Y]�,5���w�\��w�w|o_f��/F���`6D�Q�z�a{��JX�ab6aK�P��TaV^���o9�dV�C+�<G�afl��
@Qf&	X]�~fgF��p��Cdv�I��,i&�u2"J}f&X��av^�Z��j:�o0Nl�]�:�&m&��U��
�]�	��qF��$�=@q6�X��>E�qf�bK	��z�1��s�{6��	�%�|֞$w�EW2}�������+3�pD8z��X���乤�f� �	�FY�6������6b���r茶s(&�I;2�6�(H���T��<��Е�2Y�闕��l��������9�_�&�r�JӚ��OI	<]S��Ս�;����Ÿ�JJF���+� ������^3
"㟿��pH�����pG[��������|M���"ڗ�W߸�vʹd!�M���h|,���V�fxw(������%Y7����'�A<�F�t<a(���ַ���fY��V��![P�F([���<�&k�tT�ˆ�*	¡YsͶVce���4�%[Ԓ�v���ד6���͎
�]���R�	�c,�F��pG*�E����.��F��&�;��F+:F�C��Ӧ�Q7d�/H��ov����6��'�ƙ����b��:��ז�_��7�Ӗ�S���)���M�	�)�U�6hz�	g��s߶I�^�0��F
^\���O����*5LŸ���s>����l0�֗���0������y��V^�++��F�N��m���y������IJ�DC*��f6�2�<��f*$>�nd�v�+:RM\�F�5������]G��
��B��7|9��yCLW����K��a���o�&�f�Nxd���ǬЎ�N{q�}k��\����N�*�;`(�-g�E*��������z���$
�06
��[B� ��$�붘��7'eͮ�V+X`�`��y�SJ\���=
�s�'ӏ����7�Px	�5���Ud����W��9��Ǣ��#%���o��s�>����OG�cA�
2���E���&�Ƅ�y �¦q���!G3��lB�["ׄ���r&�$7�Ŝ��(&gV��@�s'�׉E	����*�/(	4'�+'&���?0+��b
f�.gQydn��0���@t07��.�j�1���L�3w9��&!�0'ٍ���6�Gb��9��z�j69'J�_���;�T(V^<<WtLފ�=��\�>��Y��GZ�=��p�\B=Ǐ����A�w��=�%?'u�A��29��$	�,=:��
]	=�Eǰ�3�`A�B'�8
��\%Gw�dRX#�MI��ig.��Jg.�C'���K'^&�lP�K����J7����O�L�FB
�>ջO�㰕��FN��lr	�{)IG�3�	��JU�8�@?
/RV�JZWt?�
W��\))��Xg��5��CY7�Q1+�Z�xi3�ux[WT�L���V'Q@(3�O]w����]W-�,o%']�V;��8	�X��� 
���2a�>ubJ��a}��ja��c�x�wiGk�e��;�5��f�s�z�ft�g������h���ou�]�m��q>��*m��V��u[sqW5�
4i��r��BN;W�t�C��t٥�u�\���v�/����t��q����$} 5�!�}�֒o��e��WZ20n�Ǟ��������5v��]�G`�{�Lw�'�'�W:��z*
���wѶ�b(�������x|�W����˸�g��p�M؏g��Ꟑ�L�.���9�G�T`�Xْ�6pcO^B��
~>34�W,G	���"��J��̥3��7�O
@�Շ���Jgg��G��2
��W��������Y>Ʋ�g���׉�gI#�\0�W����+ң���4��0Ф׀���<����“гr��#����Y�wA�/Z���(X�KϨ�J��>�����N��x/��cA
��(�G���Cr=�����r���sW�ak�gֆ`~�T������)a���ӳ���ɵ'��ˁ̶� �5u~����]~%�W��38�E����\��ֺ���=$*���S
�;�V�gI����I���V���H��硕��M—�Oxm��AV��ӏ��ID��]��74�=��X�W~����=Ɨֶ{�j�'�o����7Wmj���ći9aǫ���g5����ˇ�Y���ͧ�Tr�����`R$��E)E����g�0ߔ�ѷ�Z������w��z��+��gΗ���+��WI�+�ٵ��k�_	���,�e	�#��ׇܬ�	P�������	��6�׷"
�?��ޗ�N������E�kZ���U��n�%�G~��\�g�疍'�Z��G�+�"����׸&Te��7}n�Ƒ:��7$,�K�7�%�oY;	��8������SJd���j�c	=�������^?H�7E���M>���	R�����)�8�u,�G�X��-�"�g�c�I1���HPh������e#�WW>��z>�L$����(�-��(������J��ָ-x�Ć���
�� ���8�iEn��n	�}���gn|�e��(�)~p%�;6����1��,���T�1�
~�"�|��>��t
�~�����Y��h}���PL
H�as]K�"��mP+��%��b�-�����0��Y��~0�H���Z%�2��[����3xp�3�qo�4��sH�eE�5�9���q6����N��8Xf	-"!�9��yz��;ȥ�E�J<x3�͒Pe=H����k��>8x����I?�YL�2��;�iD�[�@�~��(#>(aN^	F���Bxe��	��Dh�DX;�Dh��0	ȧ_�GH�^T�VG��4	�>?I���	�52�K�L�S�*�K��d�J%L(�s�y��S���
��d�T���4�:aT�]D��P'(XH�c0��6�[8�=Y� �\��ϊR�]X����O�bX�MW�6yCe��N����j�vOFm��m������en��`�n�BL�xAsw�A�{C|��x��2����xX�����r�~(��"�Ř�~\}�I�7����x������J�%��ʃ�È;���W�����B�)��h�q
�洆��@Ԭ���W�S�T��X{�!��h�(�|��:ϑ�RHw���n���c�����H�sx��U�إǥ�g�	�HyO��W�����+��鐐��.:���
�y-������c���!�S�cQ�8��P�DZ���j��AJ`��y����Mq�H�U&	ҝ�_�8��q	�3+�X�-��W�����YX��m�x�fz%�h�sX�������GE٧�>�*CPA˩Ȭ}#�N��h����ó������.^ާ8/��	&�
/����Ӯ��ފ�^�DZH��]��ZL��6�R��`��ڛ΀w8�HP�x/	q��X���Я,����hګ�8�Iq��h��y��}�k�H�$��=�(��R�|��(T�"�ڏD�H�Gej6����
��
�����S�}A�xku�	
��è�m�d�����)��J^J�H�S�.�)�ؐ�y{��"�xqB�/s��	�Eֺ�*���O����H��s��͘��n+�!�͸<(��qc���NVtT�Ј��.�����+�x��Ҩ�\G��y�wr����"���Ow[ոC��y9�јA��/Jר@RI��t���.�0�٘��br�sY�h���J[ڸJK���BԨP�)p���݈'k�E��#Ҹ�
�	6����x���`����
q6;�Jٺ&=���H~�KB-*���u�
��6b��*(�����H���ԋ8�����zQ�h�<�[숂��XD�_����4�I�����\���h9A{R:Y𘞏��`X�p!
��F$��Mr
�M��Hm�:Ӥ���-������������	����bB����N��&4���뚇�碓�8���S���y�
�	�����������'�(�kH:��Y�/�&!P-		9x~c�%O
T�{t#*f�7��4�b9}��V�N��,���sP�iKRSy�.�>0U|/E)�w++Q�O:��F��Q�h�0�)=��<HiwU�	����5�;���!Y�-�E��"yVr��%�s�K?p@(��?�ܨ�*�	Բ]�+�jM%�Kn,i��.���,)s �noÉ+Igo

l�G�1��ʯ	�X314)���﴾89H�u�d<yW5�1�X=�l�GQ�@9iޓ[� yI	=:G�|N)��A(o�O٤#}�N�N�P1�IjzQ��t����N)��i��Q��F���yT9���EQKbU������V��}a�9W�7ܽ�:|qXi�-#:�8[Qm�ǀ�_ɑ3y��,�`)j.5���`��#
��3cy��Pl3��dy�����g�iu��G�g���q>�0k�U���h�l�������k����L��sY2�&���v9�4"Tl�x�#���-�Pxi���{�z�۱��y
czY����|I�ɳ���	�p#Ϝ63��Dd���ށy$���݁5�9��R;w�������N-�iMx'���I�z�	k�y+���S�0-Gۈ��-;���r��^��H6\�骢���]�YQ ��#���5
�z����+6U!˸ː?M�R��Y,�h�M!�9���΅��Yړ��9r�	�<�`���z��	\i���T=		ۑb̝٤�O	�%�q���Q(�K������=[q���
�T����ҙX(�O�I�Ou�2�Y���p<�[���M.bX������y�X��ٜ1V�RL9�)����0
��������¯��������9�(U��;���F�
5*��9���	�˰dz��W��ƠT�)/�t�H�]��EْgB1�I���	���y�6'�hc��W}iP���)�{�����*��d�]�iF�%JJ��i�t��=������ճ&ə��=L�.@�y��7㭯�����?�Y�ӒmF�	��9U9�����2�T7�ϙ��QN�?"Љ;�����}���
B$+�_ɉ'�!	V9����P3�����ș'%	{�����\�	0Yt֙=_+޲�{�	Q{�s���K�k����������i��C;����
���Fuz�$�>x�	_d���iO���hY|Q���4��ނ��)�������E�j��]���b�-�}�ɇ�{����I'��y0c����@�9�����9g������d��b+�����ĭ����\S*����������
���k��[�@�G5ܜ
�7����
J+�i�PH
�p�N�]�
�%�����J�����3�Uz�����
z�P��:k���	O����̅C�s��ɾM\�@�X	b�K�B
l�m8�
,�$�c�n:��2OA�J��7!V�L�%��~�ڎ���M)
2���RA"��C=XL#�
j	���3$�,��U�O�#�K̎��YTZaG�T(?)��J(b��/�&��_1���J:ܭM2j�Y����L2:�&�=�P�1�/����1*x�	�
��6*N��5ܽ7���G��U8��X(���6RT�Sw�:z���G9�3�G�S	��J	;��<
{���>��@M#�7?z��I�ܭ>p����CA�)xo���H:I`�	���I:�4���L�1���m�N����3fO�l%8�׍�P*�#��*cQ��s��S�R�u���s�9PZE9��m�gVz�O�VM�WZ���u�g�Y�'
�=f
Zg)�	q2t[ڎ�����cd���ngV�Dh��omKiڽ ��l�V��h��n�M����~o�D|��pj_�1FС�r���6%�u�X)��+��uZq_���
�x�e��/)�yJ���(�zz.��M�}*a��":~Z�y�G�.�i�]'�����Y��>	�3��TN(��Dž�S�2	L���ʒu8�|��ڄ @(���_ @��
���j�fF�jҊ^=������P$-��ݐ
1�'��y�Z�x��Z�9�z���	�V���DC(�eќZ�]�=��t���q!/�/�z/�v*3��g �D��Z Z�C���ZԤa@�ԤJ���@�:��O�L��z~P�D5Ҩ�y�0�iI����\'�����������A5�	��]��2��������.u�����~�J=�cƱJ�2/PWsE��9T7��0�:B�}ﺄ7�Z����3e����C"lVB�j:�/�ݒ��R{$���*�����e�J�f����I�����;�a���i���`z_�H5^U�zb1�*u����X$�Lx�z��	D(�����	H?��Úo�I���Q�
l�2��,�J��C��ƚ�4�>�+�JɿrZd��Z�n���A��j!J	�e��ˊr��߮�j�:���!yκ��~����j�I�LGjA�
�(��B$���/�-Ղ�e�j3~Tu������;�v����>�v@���z=���Ƀ�Zm�V��:�������Z3k�i��J��������=�6r:���gO�I6������9�骻3�?���*S�61��F�j��<#��O�)j%���,v��-|��o�~Ι��J�;W}��j��r�
	��z�n�v,�����H_�E�K.#Xv���I�_1��<k�<Q	 �M��T��	�>�!�K?�
�Q$
�.ں	�֚G����i�3h����3
{�fe�ѐ������g˵$-a���[ ����=��2yy�;���=�-{�=��D��X�@Ѱ��_�("ݖ��u�s%}�����}J�{w��q�lL�:[�V�%* k$�9	��@"��d�x)�#{��\	C�<
$k?-���`�(�����)����Hxw+���Ac<,[��`�,�	����|+�-	�+��/�3L��2�0�F9)&v�0�]�?�!�0���)j�.1[K� �]�7�Ȁ�m�=+dNm�J�b=�T����?k$?9�@�%>�a�GnC;�"��Q�D�QhV`�IE{2g�BVǟC�����ؚ�Jۤ,���.K�ب���MKu��b�M;�
W�(�Q�R}���R{�gnD�S[	�\����S�1(�
�U{Q��;;S-U+���&~FV[Z�m��ZS�J�z	�| �YK�H1��W�ZK����R�[�L��\]�	�tcU��]]O���:]�f���I�`k����\�ck�;�p�c�?<��rf��	�V�ik+�f�9��k�|r�?+�m���"	&(�1o[&��}�#?p۹��J`
_v�;U	,��sy���Q�z��U���~�z�g���|k��Z.�|�����L�~�2Z�H<yK���	U2＀M�ܳ��}���	aN��;�����a�W��旅b�	Sy�g�k�I���5��v���ZS�h�9�a4��lY��%ݸ���p	�򾉋3����,��� �3��z@�{}�
��49�/��#��?�{썱ԛf���{^Sv���Br�(�v��m����
��c��� [XEOp꟫4y?�U�A��^$���{��zڃ��?y�;���bC���:�b�c����p��f��tN�TL�즻��ee8ϧ;rO[�7 �;���\���.	�������ԇ	L��`��3t	p������	�m�^�;>�JX\�;v)��E������ѽ�����M��主���ҏ��[�	.��<!Qߔ��U�U^3Fl������Zc�;g)����j�\�����ӹ��
T���}�����������
���!�h���?����;��
c�+��y3���7�ɻHZ�_����<�NB�f�{��#����g
��9����}��
�v�����{b5Λ��t��N����g�*L��+dd��0��۶�Rk����{�U���7֫�ݣ�3�K@ܖ����ɛj�J�ݛgP��kz��j����U%�u�̰�돆�������>N]�P�{�w��s���{u���.�*����[�2DB���{O�l�t�{p�O�j���;7�:_��Kd�
���k鯝0�9B�{�t��}�x�{-[���`QI�v�N����x	��+��Ee��*�+h��ZS���;	Ѱ�YP�����]i)���Q�i')���j��	UB��+�ց}����Ve�\�X��_̜�	Ll��!h.L4|�9O��{��A�rHG��>�G�,�l�^�橵����w�K�2��	ג�����a�S�6����WS���+�'n�_	�&��ܩ�i�����A(o�@L��\nce"LQf�co#���u���%��N#P�2'�:=Z/�$�'L�j9
���*\�GqGYj:*<�
���,���S�W3.�ݨ�Mm�x/|a���C�0�����w�/�[�!̯u2,,��N�H4�|K��\�6|'K!̲M6P����7�|���9|��$^�.f:̽����\:L!���
�<�[�����<,�8��B�"=�2m��c?<
q��psz><���z���?�z���
D<��Y/H����X�)aI<�I���6J,�a&N�Kܗh�AS%N��u��P��S|�VM�&MU�)S����X���	�Z�Lao��s[,�sl �&[l.Jk�o�j]<��_�];]|X4L��
�_F�5�]\f}.;>�;^����z�LZ\]�f	��cl����[��d%l�	�	�j�sv�	�o�Gk|��)�2��k�Ӟ�N�Sl<��T��8k<Og��w�m�P?	���=ṗ(�^%ȷu<��
���x\��Gɓ�4x\���!�Az��
�K�Q}T����~l~�,��b��l׭�e�̀��� ��,Z�J����K,f�zq��\C�	�������׋҇\�M�D�2g��\e�>�R�̸j�(d�;����є��Y��ֲ�L)���;�����
��?��q	/	�l�g���(	�ä
��H�	�C���h��_*ћ,����{m�|n�-lEcR��Z�s����ƣ�_�q���
�xWi��oRž�lh��a�̘��P���x,�����|l��1���s
p=��,B"��V,�<�e��܋�\���=,�ɮ�<_��.T>��\84oY���l_=wX̲<���K��ϲ�ѼH	f�Oݴ쾿M	��"w�=T
+����-e(�ϽL��CM֔���8�.nMͿ|D��������ZF�e������ר���,D�s~��V(���A�nj�^B�2�h�|�����piʜ*Q�	0��|bB�e(f�i�F����s��>
��|���o����,C�id��r�a]����l���
���М�:$���fԌ�k[,8��ܛ�����<ߴ�[T��ܵ]X�����J�O����|^5
>Y8��\������B������^CI�<M:c��VR�4������d�����dM�6�����w���24:	E6�`�o	
�.��\#
L���u֜)v�	"����wX�|t��,���1�Ϻ��D���8�^gP��uq�Jo��_k�w�C�<W6�#)����&��_��G��'�ɨ����
	(���Ь_�(
�L����<
�p���Y"�������+���r!>󜒰wk]��l��!i�>��-�k��-�����i���}���	���Mo@"<�;�d�2	M�{���
�6�u,a&�M�/f]��ݥ8�z��}

��9ta�*ݱ�������)�[��S-W Kr�L��?��p��S�tC�<��$5�
@�q;� ]:T�aut!������$�/;����(]�m2��W(��+j����*M��pc�--��+�m�B-��	���/�]*J�7�/m�$_��(�/=o	��\�J2��#�|�0�@;I@L�
4�DN��2D/ݼ ���}�6]_�Qt}��7=�����w8�e���}��6}��=	���22���`	�Ρ@.���0
���a=ͫw-_��(?�o?3�?�"�’��A}��l�$\B�D����BC�$�K��D�TKa�<�B��������E����Կ|�@�5��v �BMY����C���/
��"�L��|��#zL���f���M]�p�ͱO��T��R�<P}�
�~{�Q�7�i�o�S�v����0�S��#��=�U�s�	>��V��յ���V]���	��X}p� Yn�[ͧ�	��g�\��7���o�[-�V�Pz�_��}	��r`�E0��|ia��Ƽ����d�A&��xx�e���F~!Acd��U���ɶi-�(���Ćl�kM|P�Xq�;��^�q��PH�>1t�}m�.��u
��	9���|��Odڿ��|}�"�	jE�z~-x[��5�"�
�4���$��m��PV,;�;=��~U������eр=e������핦i	��W�
,'	���@�]�F�a��n�=���.�~�
*Gć_h�M��bP�l��c�D��S,�-��>	�t����\���1�Ϻ<��næK��D��vq���I콝�JH���=
�
��$�����)��H���u��C\�����wX[�"���Ѐ�z�m�Mw�	F*^�m�<3�݅��
e5Q�7���-^s	��-!��kJu�ՊG��4��~�A�-�9V��%%�=#;l-�m��]W�MR���Ꝯ��U���q��j��;v���]'EgT��z��!p`.���
�X˽����	%��V�-9$=����ڭ7B���Mi�VuN��?�3�s���=�*`�rj��M��v�Z!��:�
��
!�����
ھ��]����o�	�,%j̍T�K�o/��t�lU*?K����4@���?��	� ��-
�4
��������>�qm�mI�7������V�x:��խ%ۏ�.��୓m��"�J�=(�F����]�7���sa�]�4Y�J��}/���N��M1|i?���m۰
�!���tآ���ƙY����H��&��}�8,�(����o���~��ΐ�]n����pZ	�h��]=�=��l�Mu�H�^R(��y&l	�E���O!�	.h����dv�����ζ�Ɨ�&��	��oj�&���$	����zU�}	�:��
�z	�ʠ���a���@�k�.����)^�I	��a2��	v%�����~��&�b��_���2���.�zK�#ǭn�s��6������]��>�|�)��K6�(�.Tڈ(j9����]�W8��D.	����vU�	Uc|�l��y~pu
}/�!���{r$"��q?���z!n��:P#��h���&n7)��-	'�[��X�C)�(�]�r`,��/���8E-��/�,��0n5^(�f�;2Y�|	Ѣ:�5~��~�d�6�����t@�;n{��N�K�;��M�iiA��<�U�-I���	L0��J��j	)�"�K�.T_s�r�LnZ�R�~L�7
��.�;M>AE�#�t�MN�ϛ%�xPW*��*�dQ�rb���_kU��K�^���Uޜ�F4Y�Y>MY��IH�Y�yV	!��/\����c�p����g�d�x�V�`�f.@�,y&Yi��5����i��c���ln;��J"��m�ˆֵ{ct�*�^Sj��v��c���bv�}���x��H���cbv~� 	�My^䠘	� ��|������}~Ug�n��|~�E��܂�߯��]��,zY��^>����x���>J $���K�i���~i����GČn&��(�p��l�U�n���x$η�.R���2���nN�Y���މN��~�^l8�	�k�"���NI��L���4W��>|�	
دv��
�؋���~Y3�r��d�~s$ue����i���$�N��)��0M��N���}ߡ^4��2��N�;
`q��Y����p��RX٬���@I�	��-Ӭ�I�	��u�Z���Ķ�+h�����ku_��j�^��Cz�>A�Q�9����AV����+���d����	�a�)V��H�	��n���V00�����D@��n(,�x��ƾi���)k��.��	��M�n�9�L�L�˞�u������2�DK ���.�Kl��|��nH��	�
��׮��L	�ä��N�һ����ھh����t���䍝D01�.�s����l���J�i��Yގ=+��g@��z�Z���D	���	�Σ�i��a��%
���\������O�����Z:P��.)�5	�͗���U���>J�cl���ί�����.��1������h&��~�_�����>��l���Z:�������Fj�<���m��Ϭi[����_�S����aSN����"���5A�-���ӯ�j��c�^��,�i�n��	l��D?��{�q�o��c��?���	���R%A�%,���<0�	��$����
���^�X�
��]+�d�	2���
/boX	.w9�ʹ�I�
�i�	:�[Q�
��	g�/O~�Zj��	�h��	|��z/Z�h�E��ψ�5'���/��)
r��A/�9��m���&4jR���dBb	L��?�������`ٲ|���_�a�-ˢz Ow���{ R"/��s��.�"?}���q�#�p�fCd�$?@�O�W"�E}���&�'��.2֧	(�]!��(_7����R*/�{��g�"+O�^����R*43	��"�#����	lH��.O��L[.,:���z.�m�
ތ��1�P`��2�7�5�ʳ�0o�A��i[+4� �R��>5���)�l�[6?�ݠSdcs7�Y�c�/o���@T�0�:���1ES:��"i!<.O�����lL0��N�	�խ�=o�X7	���>�'?u_6��??OI!�p�i>??*.[\?�.�ऍ�?	��:NFo �`Z��eGo�;:
����H�cQ�&gHO��
ci�I���
%�I�K?���Yu��L?�#�$�L�ێ<IHN_�t�@��P?l��	S���Q�N�c�R�8�ӓ�zS��>ٔ�}T����ֺڔT~#�F��V+��v�_T�}�7
�wBHZ_|�=�^O�l�	j6Laߍ�.N�T$bw-��>m�co���?���hO�h�Mݷh�:��;k_d�){?�qm�@Ǣ�nϓ~�BZDo�3e3V7��p��L�M��po�;��аoO���MD�o���FsED�t��?��$q�`(����v?7��'�p?y(�	����y�� D�{o�h����|�d���}�	G�n
���(�"v��	6���S�9V�75x��In�y���/5/��؅���7b\3����S~}@�W�8�0�N���vkw�@r��O�������O�JK;,c�o3�h�ߌ�v��q�/s��]�����r��v�O� >��펿�5&'���(qD��ڰ�_�ϔy�+�����	�1��_���	�����
�C���}	�I��?yR@�ͭR��-�?Ě�ă�#����	ʗ�`-�?��\m!%����c<񘊚/���	ތ���?�4o&���?=?�����?c�|�8L��l^�:2A�ϼKz��aR�/k^wѫ���4�	�o�k����k���%��r߽ͬ�E�c�k�Z]��l�b�7z9�opn	���9���>�2�Į�Sԉzo-����>�P����=�nU�$f�?�<E8(z����ڏ���芲��	�?-q8	q�<�o�,5�#�5�/�m���"e�/�",�e�ܺ��9���1��������/Kx�W������j⮽���tM��ǯ8.�">��/������#�L����m��_Qd�	���^�/,r����ʀe+���
P8
8����2��+Gk�͟�m�G�n�O�,�]����f:��տ*�b�:e��������o�5��“�����	m<"�?׶�텛pܟ,�G_�S������p��"���@AB�_�t�����?���V6y��[�	���=�	�KO�OǼ�	���3�鱗}`�m꟞Z7�,���G��l���/�Wn�D�_���J>s��/�M�,p��/���)G��,Dcx�nkE
�@��_j��A$�U��eN�&�S�!`�.^9x���D�5��V�ar[��__�(�%��K�Gf���}��`����ߖv&
����P�
w��[;4:�w����B8��dj?$W<[0.iyf9Dp>�������7�>�����T�8'��p������~y3(�����u	}!KR������6;�TItx��y#��s�Q[]bU=q<O�	q8G
���~S0vW�J�7IsE	H5c
667MAJZE����������Ms4w2t�C�8����o�^�|{7:��O��42�hM\9]FqPt���������D!4M"<r�E	)�$<�'��<\R-��tfF>E:��1q]dI&>d��V�-(�e��)����N(~bY=jYGg9�^���8/;��&9vCKz?P$el
Y#Z^38q��ZU
�r{J��$���������]��"���~vD���e���/��v#2<MP��?''ybNqba2>hbHIyA!Bg|H8VDZcNDLiz,JL������t.G*_[��fpm��������W#<�(R���Y8�MS���j)v���*�N����Dq[c?8C�ON����R���>�
j9p_,�I�\[	'B�%�y�QW/FgQCj�����V�@�HK����N���!�n���{�)�k����Nh����]� 	|v�6�� Z6@/�a\g�{2��n
2�����n��_Q�%�zv���40w��S��g(yj��qv�\�T.^����}���`���&E���\m�+E���]k:b�lJ+s)�	���5q?J@��0e����4i:s.B�4��n.qF���`2���=���i�,�Aia��-F=M)�U'��fy>a7��n��1.+p-�q�Nf,��I(@pt�&�#<)3U��nb�r0�z_q�5d���d�L�����0�vT��B��~r�{kzI+D;g��W\#n����\0/{M���BL���,,YD6�DV:q�$���^#�K�B��<0|8����T�$���BB[K(8����B����p�._��A��o��t�}�\�ut�p'��i�4lQ��7�=��166]K\ z�7)oAap�t<|�;��!`�1^<w�����tY~#1�4�r"yTq������0Bs������j ����Y(w6(yjp�n��PlB1����y+�,H�Na����������]�v�|5,%%n���CW`K Y3r5B.+Tsp,]MDk!+lPo~
\TZ3%[B;@v2(O83r2Z>)1v>Yc)K�����S@SW$5{�r��C�QF;t�����4��e��.���71qy\x(#e��:.�������6�����
�>�DR��gIHd�zN5��E|i jj$���:�J�M���������D�c�drH���dytYqY=+4���zPN�N
N2+}	�V

csbfu�X�o}y����j*/3������]����d���a5}G����WE�<�AF�X��z�~�����W����0����`�%�h�����hG�8aF<Z�������L�-�BljQM��t�.�:f�4���8$1:�R�n�������=~7�n:����"�������0j�>y_�yBpR^*:gE6F%kz;��S���kf;kWD%e!g,uJQ5Qf��y,1������a^��U����	~���EZ������6�
9��'�������������jO��/$M�@m��f��fy�Q��[��:�LK-�h��EIf)dN(7[1/)�&=$�����������JU�L�����U<Y|@vWR'hUgh"t-?<rG(����2?lSYK�b�xD��U1�<�
m?YF�
��N	&,8P]uG2�J^/t^!X6���~-.u(\r~j:^k�LEe����8+��d!�T.v8�����I�|�v��B	��[`h?D*8?#m'U����e�~pWap,f' Ow9C�bi��vW��O.)�M+J+"Sk76
,*f"-zKd[HVk����'�����a�*�	F7LHi��\k���,1(p���@Lb�����V��7�{HIx}�0����6���������t��,D-F9�O�HPB&4'^of�SN
�&29�����y^"��1��xgp����&��'������bN&�������X@S����g.�ODn@e�������tQ>$1c'r^{5`*O��e9�Ljs`wo��bZMw^V$pFCA�o�:�6��k)[8S~uhv@RRL g%^5l}laR��avE��@x?G8���9~�fs�'��M]��
Qh�<n����A~����?u*�O��9��v��h�5y7��e��B���$���Q��o������������n:	Rdd>n��6���F�mU��:}��{yu�����U��n�JNXd��8	i[<=)tQ(��&LZ����IY��[��(rL�'�o��<
gW_z+}��l����i���>=�p�:S~	
vAZ]./�=�����p����o~����2}�y1Ge������ �\b)G���AE����Vk=(p�B�����_WW}@p|_5{f0��^������Z,`qMy,*SF� th<������0���9]��SO�
X��������g���q
��+�y"m�T��/�~p��<s

'��S��:
cE��(P���<���X�"�.8��K�-jPGu_o��{Ux[~\=`3h�]vc
�Riq_7%��W��$��@�?tvs��{���pWG��	���[�D�je����\��W���7��kp^��m�{m3xb�F�dQH\j8-���R�2T���bT�\K[jrF���d�����'A��r3I���T�:��)i
QrT$d�O'E
���f����3>w�_U�������*pXP&@r�h\ZT,D^A��CNF��=��
�L-���<m?b'
'��j���x�N;�Xxz
RQL\_btE���$|_kl����2j*nnM��(�C
�W����'aEW:-$
OAh�l�(\k�2f>B/���������w��KJ\�y������{��N�5�#kj�T0\-Q�>�%h>O_t{8EZ��p���V$04��:�������
�09%\>YWl6�����;oOs3	����]��SW\��FwV?���N&���.�����h,}$4c�\��?c7E��\<r9LJ/��~^_�*��2��FDC���/��{4|mpcD5Z.Wdw)Z
];;x]F85wUMV^X�����RF��	�����M� ��=Aq~����������u
Y�*r�����y��}	'bg`tb�;�7w^u%^K,U��>o}*Y�Djb8��MK�c��A*����5����(�6������'-�SEJS#C#t�Ls�R�P������i��$A����:qhm/��%VV{*Y"����
�Pmy�k��}�_7B�Y|�T��b+m�������6C>X��lL����{��s_8q���;�������\�NRP s$�oP=9Z>%ma"*:��e8�	~�����/�I��@|����Z&����w�������U*B"g1���%I��,<�S������u<�t��1�Ce������Q�tH$P�n*"���W�Y�%C��U�mlI�����A''W��Ja���P)$$�B�������4	bB �s$V�\����k�:�p��%�@����di�XF9%��hU�bKn�������XBA/D#c|)GWI���aXr)vXOd7e4C]sPzb!
l���0�G�stS >x?O=/xlJ(u knmDi',$���w(c}UBm:�YWTk�����6��p^�����{�?2
f]�M�4	g��e�+7{)O5km9[8gDse)EAe||q��|��6%/Mfg7jw	E86�s<�����F:�`m2��e(pq�3�l�[����U[pH^Y�-I+F&�uG�5L2�0Nm/
B;������P�
w��[;4c/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/bernoulli.rs� g
#�)%�F�1�K̲�A�2ECAA$/ %gP=DHn0*(8GG)?AM(NOLONQNL	QNQ#Q.1-'?!c-OMNQGD>&=<
'GIOJNM=_9<
&9
V ;P'(
(=8'
#
$46&U9*2)98CATR
2-= +%%
/*/F+5#$
M3>�;:N������w��
f/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/distribution.rs� ���>�,T�Ғnn-9t�B�24ECAA$&OBHP=OEJL;OOD/Q9O"HINJHQ#T%#?<.1
8
0
'29763
6
0
>:(I)CF+)&LRX/44=B$
45:,"F.ON\4QNR#.

/#"-J)
)"N-)+c)"%
->9
U-;"D>,D9"D��9��)ϳ����:_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/float.rs� ^*$l5\����x��j�2ECAA$.C3!%O3KNJJM#5*7%0'?J;PP<PM/*710'?QMOO89AK4"FQ/RB
5DNL2O4P0J>
2DNL2O4P0JPO
,DOL2O0Rb
/0!K!K!K!M!L!L!L
 ))@+#.:AA-S .ZAJ-Y.TA25-256%V%V%V%Z@+#.:2A-S .Z2J-Y.T225-256%V%V%VU@% ((
4LSKNL)
MK")<;;")LKL
���������ބO�M��� a/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/integer.rs� ��TQ�nڄF�5�Q��N�2ECAA$Q3;)>!,Y'!,;-<-<-<.=E,,"5D,
!!!#5D;"
(***,(***,91@ONN9?":T-91@?":T-61@?":T-!CQ)T2
Q/=
	!2
-.///0.///0=-33)3Y.
1% 2(
+4C&&%999*Q)
Y!365!GGC""..--,-.."---,--,."--...-.-
ܬ?�őypY�,�#_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/other.rs� �H���?)�H��ۗ�A�p�2ECAA$X <!!>%&I#T)G?3C+POMII0NMG`\'?9P41R)-A+)'?0.=ECMB3J@'
A/(XONPJ);)K,QKOD2<
';#8#;%]W)&L
#][I)"7
.=LNQ+$TTU3\5I.�I!M*3;GI*2%TL5
PI=+H 
I(9;!4!'A&?)6&D
@00-M-,,#-M-#;5
-M-#93
U1% ((
B?R''&&%:C>  I   L��O_7�\;鼾�0�_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/utils.rs� å�sHuX���IDSzh�b�2ECAA$!!>0+)(&4:5
 3,*"8NL!&0-%G.B@,B7(&45P*#C2+"#C2$B
 0,*"85@4J-'<5.%'<5': **6@.
$$$! #!
'')'))-0KC 5,*"8NN$>$E(E"8I"SOLR>**!1KK8P:-
8E9K&%$%%
!!&33*!:AF56
,N,B,
$!"F2
B+3*3**':$AJDHJI.LG6
L2
 R8B'
!!��8��#G�
P�'_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/slice.rs� .�"��n�{�Sř#ɩ�)�2ECAA$; ;OOO*;<4,5#+'"(@E",6A2O78HE:04E*$7KL1I$KQ
$0d<?7/YNI@A"7I&5

)O!S�BYg��Sw���/og/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/uniform_float.rs� AZ�>��f���s���7/ECAA$"A$O!$4%KP:NOO4NNL
!57 )?"g!P<PNG@?JTG%9@,
%.
4I33+-)A2)3(+28S33+-)A2'3T5)28H8t_=QMPOK1t33B~33+-)=2'3()28i_=L0+
66!R!R!R!T!R!R!R
>,2-)<@6"$$#LO78<C=0\^KZ*OJTJ$d.9J^5&1J$R5'`$Q'$L%&.&1'$V%&.&1'_dCCQ?!V%&-&0/`^&A7b%P)*:"*43a#c$
)
%%%&%%%
R&-.3!"J1;
/6++6 7@H40;?D=0\^<CMB
)

'9"$21:;1:""*<1;;��k�5]���C����`e/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/uniform_int.rs� Ĭ3EIkv���w��L���7/ECAA$ A+!3!!1%DP:KQQMOM6M@KQWNHONPK+MP@OBN) -?? -%,
2B@@@M7I33+-#3=M7S33+-$3L,93 AGDH> )@ K&"17(33+-#3B<NM.A(33+-$3Z S-CU.5Bd;b94>)A(//+-$3Z S-SE2U3<F#"8)#E)&4
"$$$'"$$$'!%&MKOL")D2$]C
9
)Q2$]C
'M7I98+-03JM7S98+-03HQ\EDKD L)3HGIEINLNMOMLB23$>-4GK3<P66
1:8!H>MNLMQ@F-7M;.GJ9#GGG(NJ3F!F'E/A
++#%+
5E/K
++#%+
,1,:R&&<<$-
0>,,#+5-@"/+5-@"/
/ 
++#%+
MR&
[9 
++#%+
M\&
e
/-B.-<.
/A2-;0G'=>Q'=>H'=>S'=>'n>'x>#@#!49;N43
E)
77<<44,,
'5 "216716 "<177O)
1#&UA&)(1&P<&)(
GK@E<999999DEEGIG)
67/365466
*G4P>+O(4?4,C.,O(B+M@.PS)I,@9J)RD@4a"S)I,9ѫ�͘t�`�ganqg/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/uniform_other.rs� �5���i���#��)C���R�7/ECAA$5V % =P:OMO-?!* ?'&B&E/A
++5797E/K
++57C7@.'%
OJ554',TD(&
>P,7AQ:-?-?
"$*A
++#%+
HK
++#%+
#().%
()?,A.L.ON0-&BA<+'7/U)[J.4;35

/e(Q%2-81-
33
(A
"
,:1(77+1277+1
2-B;I'?0/
��V���g� �ƜG�a/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/uniform.rs� �1m��{�4w�r��A��7/ECAA$DOYI3&+P;)3LRMQOPDNHJUG7@",+A54
X
K54
b
D&
#%84.<>6:@J	)/C C-;R?!_L$%0HPSQJIIOPBRPQI KOQH3GQ PLHJPH.9)A-.-M  &I-?R?2$O5QSIQ@G
%%0Q)P@Q
%%:8:J.I 2!A,3I MN25"1\QSIF=
++=F$G
++?P1QSI-NO<&P;CD'T
/ 
++= P1-MQ&9 
++G :<%CR37C*$#F8#3$
4$
@N0R* BS=!!KSK!&#/\P)
8\Z)

&C(T/E(T/`6
&0/E33\O33/H+
')
H8-0+
K#%)
1# K/7 )1
75IJ!!------1-,102��O�z��-��`|2q/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/weighted/weighted_index.rs� ?�] ;�.��c�a���2ECAA$J O%>LIOIPJI"QLMPMLLKSLBQLH.#!6U86NT9* _#?: %7JD1JPPG7A
",\%.
GPE(20K-
"4
J)(L3][?J,PPPQUh9W
/2$
.:O%* 5231C3*:$
"4
O3+,/>=AB$-,3FF/5P
*^P4B*++?,;)+#1
.Q/7!
?=@2!:---*4
0$K<0$;
][.2!>G2G6
0"
=&"1#>BS 6
$[O4@2.Q>"9">"+3"
2+"E?+:G;  &"%C/
$?/
'A/
OO8%
: 2'?!?!R'>&DYFA<K:3NYCIU
&# ,'">&8%3%4<K:1V/
 =%G<<;
 =%GO
D &
3>1&)'
,-%-+-8LO������n�Bh�斲W/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rng.rs� P*�����x����:6Ǣ�24ECAA$99"LO@JF"M:KQ9PPOOMKP5
2%H##7=LNK7#NI#>4!
*%BA$5?6.? E
**4MIMOUO#-5.-4
A+<H7#4(0)%G
MMOK+HI<#0(KE%7'
:"#>N)EAO6AC#V=IF?>.1
D
 =OODNC!(,9#` 
*)G1
!(F-)GH2'/HG*T#6?-)
#(7"*
O7?$7$dZddN!H,%$(
'?$B$dZddN!H,%$4I%Q;Q?(7'
'#:GP#('55:
5$L#"#'1#"9.2.#++2#+!#"!//0,1,502-6=I
#//11:=O
,',)-32
&"
 !; 2-5 ;7-52"  .
4;8��o?��]��},J�Ib/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rngs/reseeding.rs� �'��[�SUo{S��x��F�2/ECAA$;0@LNG(@JMHOQ/QQH:M-MP56F<"U30J5-'C#$#OQNN:!)>:FR0/$$0 .+/L92@ 6#+1:*KM66
75&%#&?@NM:K,15+"6;6 W7(1
E&/+0'-'@
8@
  !EQ(G0$$(("
& !L(*
%1���I�����k���]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rngs/mock.rs� �r;��7|��Ж̕u���P2ECAA$!!%6KJ%OP2ME:#),#'?HJ<7
$$./.@�6�b�$
����^/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rngs/small.rs� (�����։w
^11Ӭ��"x2ECAA$'F:$:7QK-T>,M&JPFIO"Q"8!)!$+!OK3.!Q)M6EJJJ$2:gE' <-eFO7'+,$$0 �5��g��#����y\/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rngs/mod.rs� �u�,��6Vd��6��$n2ECAA$*H?VUPFRK8QS;LCOGNBL=JKKIFO:N72 L6DAEMCJ $(0::4<@+')!O8B@	!
N�v��ᖻ^�:��k/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rngs/xoshiro256plusplus.rs� �z�%�+�@Th^�G�(�2ECAA$+"'%,O;KO)'? *P$9 *JR++
(=7/- -BB
RL%!&$H#$%&!    //'
#+6cI;!!""""+
.D[<QJ!!! ! ""!!+7
/�Ț��*=�e��\/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rngs/std.rs� �������'k�2�!|2ECAA$2&2%1KK-FMLO3QNCQNQI-%=-2QNM6EJQJx8A'$$/<-%
'$N%>9C0"4"&i?��"t"(ᏦY1�P�_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/rngs/thread.rs� �.�W���ڀ]�wi3���9�2ECAA$)%4MNNP-NKIQP@NE4.MIKJKAGJ6Ra>)DJO0HJ>L>LQ+4"
PPA0$(4)>AL-36 =*K2IA@D&-1/''&K9C%2 $L-3$L-30L-3 
"-NAL���\�4��-�����"`/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/seq/iterator.rs� ��v!�l�@=,Bo6J����7ECAA$&EO>#,K(-%JMLNMPG#PMJDOOJQ'9A>
7cb&"!":
64L++%*##(($#B#)
.INMOOPCINLN+Q)H!\1E
6Q5L>/2X#5+$\' B
BK%NM%SS;F?W
 .!2
:,81
CQNM%NNF?S
866O6'0<;"J9'
:
93A3
J X3+YK
8&**
KY3
8C**
2 ,e(>%)=ON15
C">7"$("$'# (# ',E2',e(E%)=ON15
C">7"$("$'# (# ',E21N0(E%
)D"RK,$(,$'- (- '+=CP+47C="E1"
6.I) %() %'*!(*!')E1)
6.I) %() %'*!(*!'+J1%G-&5H
&2;�������YP��������2p��]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/seq/slice.rs� s|��,V�mV������7ECAA$72:<"KKN(%!%G4*&,#49>
8
>PKNNA&(4.Q [
1
9*I
KKG&(4Ja
%=7(KLIOL8=0*@#V)W*GA$,
#3CX%6IJLN9IOLR46#1#cccu<EM*F
#9*-1KH9>+O4*J
"5
.SLIOL8=0&5<A(0
#3CX'<JL ?1(**8a$#%))*
2MJ.O6Q3HN%=4
 N*
L
/Y
3Ku(C7P.L.E%2%%7%
&.[8,&d/I447M"
+R%JG9=
%2
06
%2
$,0!+RC6;2<",)6"D"I+F;3592++18E',)3
%4!*.$E(0*'4"&
%:/;I
 +&58%08'YB2+"E?+:G;  &3
%A8%
K!
?8%
K
@
+8+<+629,9,--+6!F&)=
,6N)$7N@K+AN@%F!F&)<
%JN@=N0H&&$&#&6-%3!F&)/-%-%-%7
 $*:�i���r ���:"0l�C�]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/seq/index.rs� p÷�!��c����	ϯ�2ECAA$'(>*+"%K-4?(&!)0)
+%.0.
/K1303
O*M0M
A-=0=
!&R-F0F
-,0,0$c0$c
##$##%(%*#;0;
4303
/*(%/'404
4'%0%
/L2MNJIMOLOII9!HN&,H3,D  H4IJ0'&AI0.

20602
?OP,HMNRN!#&,,
((D

.$$@?OP,HEP=R+#
7.(B"
!2IK@
'-"
!GC6M"95%4
O:C@F=S)8
:MCHFDCA%;'(B
P!NZ/QQMH%E2.'6Z5 

!$

!OJM=P&O$?!%:=$)#%
8
(G*Z7"+;;F@99DKU8N82)KNWI:=S0;Q<>=Q0=?=U0 )=]07-%7)549
K)"9%180@*6CJMNMM�0_5�̸-$�<���W/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/lib.rs� jl��+G����.��I�F�24ECAA$+KLEQG29L(1G#>>Q@:(=?
@ '
'-P	
"&(:
0
3LQJW"#/-J:3B0#
&2#<=
L&_#N0J>L7
)&'8#H2

%I
IKG'DE#j
8.$
@/9#=NN
.
:,LM/(8*>9"(#
(2
3=
#  *4"#/0��b����W��B\�pf/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/weighted/mod.rs� z���R_�)�2���>7�s2ECAA$FQL_'$=MP&B"K-#%%
$22!$KG
=H-MITCON:5$;"S]G@sfh|����^��[%���j/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/seq/increasing_uniform.rs� �xh�u���^�&���l7ECAA$'J2V(J)@8:
9,",!7\@=C[;B>9+<4@D6 O8)"5
Q.*!BJ1)
)DK
e�O�!{e�T���G�]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/distr/mod.rs� $�#�x񦟯�aA��%�G�24ECAA$=MGKJ2OJN;GJOQ(NMNM*YN",KU]OIOOL!*LI65O<CNKJKHW8080
;6*7-1 &T/GADPOEC'VCN\OM'Q<KPFKNLLHJNO0W63B&
&8*$XAKNJGMPPQ<"('M  &I'M�>�@Lɜ�or������3�[/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/prelude.rs� ^��HH�7�����	#2ECAA$,MP6$ T�4��.�R�>`�θ[/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/seq/mod.rs� S�d7�Y�3��A��P7ECAA$#HS,2HN!NL,6" ?'H6O)3Z

"3/L"
7Tl������G��cj��d/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.4/src/seq/coin_flipper.rs� m�hZ��ҖϮ<����4�7ECAA$,B"! 
10@ YW_?"$,
10AD.D*/;ZMB.JPFLFZ->"=8[KAQ!7&$RL6%)XD36& >"

ZIK9-5 EX4F;S6WAW:/SGI:&!JAU/,6/0
�&ʚ�=r�W�������3
5
�6
�8
�:
�<
)?
m@
�B
G
�H
�K
O
DR
T
�T
V
	W
PX
eY
�Z
*^
�a
e
�f
h
&i
�j
Xk
@l
x86_64-unknown-linux-gnu�#�Ԥ�$J@=���,����-b7780f9c504e1c25�ee8ϧ;rO��)@�
��*�Y����������������L��$�$��M��$���N��N��N����/����=�=���,��/��/��/��N��/��/���.���������/���������N���.���/���.��.�(���/��/����� ���-�֠�������rust-end-file