📄 librand-59582f3ce6014701.rmeta
/home/palash/git/iron_learn/target/debug/deps/librand-59582f3ce6014701.rmeta
Language: rmeta • Lines: 18261
rust
�w
#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�w������
<�~c<!-d10a081d67980ee0�	getrandom���T5֪Wd��T�n�|-ca376ebfba62ea13���v�
їG}�/x$YxD-e720413b8edafa0a��	�-����1ؔ=��G��-e6f0229506bd0299�rand_chacha�����_o
l0�l����-b1215e313103b90d�
ppv_lite86�;���{��b�5��(�-d9cfe94350d59e03�zerocopy�r_k���V"�E�WT�g-323d7e7ef672c39a�zerocopy_derive���כS��Y	*�V?��-278fc09030afb1ae�Deserialize�\��<�serde�<���	Serialize�L��,�
%#%�$�.�$�."tests�,�2�$�2K�
\��<��
<���K�
L���
K�,�7�$�7Y__m512i�<��\�x86�,���Y__m128i�<��\��,���Y__m256i�<��%�#!#Y�<��<�simd_support�t�ĹY	simd_impl�L�'�<�&�
t�&��&Y�,�-�$�-�	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���
��$���$���$�>�$�>���trace��info��error�distr�	bernoulli�ALWAYS_TRUE�SCALE���

from_ratio�p�sample� R�distribution�""""�&�&�(�&sample_iter�*�&�	,F�,S�"/�/D�/�2�"4�4�4�4�4�4	size_hint�";�;�;�"?�?�?�?�?�D�"SampleString�F
append_string�G�F
sample_string�I��KKKKKKKKKK	IntoFloat�U�Uinto_float_with_exponent�Kfloat_impls��YYYYYYYYYY	Y
YYY
YYYYYl�m�Yo�p�Yr�s�Yu�v�Yx�y�Yimpl_int_from_uint�Y
impl_nzint�Y}�~�~Y����������������	������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����?�����:�	��>���?��?��?�����seq��coin_flipper���CoinFlipper�����:�chunk��chunk_remaining������
�random_ratio_one_over���;�flip_c_heads��increasing_uniform�����IncreasingUniform�����:�n���G��G�����
�
next_index��	�calculate_bound_u32��inner��RESULT2���	�����IteratorRandom��choose����
choose_stable����	�choose_multiple_fill����choose_multiple������5������������	�
��
IndexedRandom���	��3��J����J���choose_multiple_array�������	�choose_weighted������B���*����	�choose_multiple_weighted�������*�	�IndexedMutRandom��
choose_mut����choose_weighted_mut�������L��*����	�SliceRandom��shuffle����partial_shuffle��������	��IR������N����O�����(���������	�����(������	�index_�����������	�
���
���	��3���into_vec��	�	��	��IntoIter����������	�	�������������	�	����������	�	���������j���j��sample_weighted�������*�sample_efraimidis_spirakis�������*������Element������key��������������������	�sample_floyd����	�sample_inplace�����&�zero��one��as_usize��	��V��V��V�
��V��V��V�sample_rejection���*��������������sample_array��������	
thread_rng�	

�:���:���;�����;�;�<��	Bernoulli��p_int�������BernoulliError��InvalidProbability��
	��
��
����"Iter�����������:�phantom�"��������"Map������������func���Z"����������KOpenClosed01��
K��KK��K�>KOpen01��
K��KK��K�>K����K	����K
����K����K����K
����K����K����Y����Y����Y	����Y
����Y����Y����Y
����Y����Y����Y����Y����Y����Y����Y����Y�����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�	�e�	�5�	��	���	�a�	�L�	j�	��	�c�	��	�d�	�e�	�5�	J��	��	���	�a�	�L�	j�	��	�c�	��	�d�	�e�	�5�	�f�	K��	��	���	�a�	�L�	j�	��	�c�	��	�d�	�e�	�5�	�f�	�g�	L��	��	���	��	�$��	��	�$��	��	�$��	��	�$��	��	�$�	
LOWER_MASK���	��	�$�	�	�&�	�&�	�%�	�%�	�%�	�&�	�&�	�&�
��	�&�	�&�	�%�	�%�	�%�	�&�	�&�	�&��Choose��
�(�
��
��
range��
�(��
�(�
��
���
�(�
��
���
�(�
��Empty��

��
��	�
��
�UniformFloat��
�*�
low��
scale���
�*�
���
�*��
�*�
���
�*��
�*�
���
new_bounded���
�*��
�*�
�
�
�+�
�+�
�+�
�+�
�+�
��
��
�+�
��
�+�
�+�
�,�
��
�+�
�+��
�m�	�
�*�
�
�*�
�
�
�+�
�+�
�+�
�+�
�+�
��
��
�+�
��
�+�
�+�
�,�
��
�+�
�+�
UniformInt��
�*�
�l�
�k�
thresh���
�*�
���
�*��
�*�
���
�*��
�*�
���
�*�
���
�*�	�
�*�
�
�
�+�
�+�
�+�
�+�
�+�
��
��
�+�
��
�+�
�+�
�,����+��+�
��*���*��
��+��+��+��+��+������+����+��+��,����+��+���*�
��*��
��+��+��+��+��+������+����+��+��,����+��+���*���*��
��+��+��+��+��+������+����+��+��,����+��+���*���*��
��+��+��+��+��+������+����+��+��,����+��+���*���*��
��+��+��+��+��+������+����+��+��,����+��+���*���*��
��+��+��+��+��+������+����+��+��,����+��+���*���*��
��+��+��+��+��+������+����+��+��,����+��+���*���*��
��+��+��+��+��+������+����+��+��,����+��+���*���*��
��+��+��+��+��+������+����+��+��,����+��+�UniformUsize���l��k��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���
�*�
���
�*�
���
�*�	�
�*�
���
�8�
�8��
�8�
�8��
�8�
�8��
�8�
�8��
�8�
�8��
�8�
�8��
�8�
�8�	�
�8�
�8�
�
�8�
�8��
�8�
�8��
�8�
�8�
�
�8�
�8��
�8�
�8���8��8���InvalidInput��
�
InvalidWeight��
�InsufficientNonZero��
�Overflow��
����������������
�����>���<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<�����<���	��<���ReseedingRng��
����>�������>���
ReseedingCore�����>��I�reseeder��	threshold��bytes_until_reseed��	����>���StepRng��v��a���������������SmallRng��
����������������Xoshiro256PlusPlus��������������������StdRng��
����������������	ThreadRng���:����THREAD_RNG_KEY��__rust_std_internal_init_fn��	��	�__RUST_STD_INTERNAL_VAL��	���SliceChooseIter���(�������_phantom��indices����(�������IndexVec��U32��
���U64��
���������IndexVecIter���(����
������
���
��(���IndexVecIntoIter�����
������
��������8888 8 8(8(8/8282898:8D8D8G8G8G8I8I8m8m8p8p8s8s8v8v8y8y8~8~8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8&FU���������������������Y��Y��wn|�:��ܺ�_ܺ��ܺ�ܺܺ�����Y�3�X������_���������������_�����&ܺ&8���_���Z��"��:"��Z"r"����7�����J��M��_���[��"��["��Z"�'ɸ��� ������&ӽ�������\-�%���Vi����_����������\���~�����_�����U&�����R�ު�k�&��&��U&�&��&��&�&�&�&�&�&�&�&�&�&�&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��	�	�	��	��	yk���9&��������������)
���&��������e���(z��_����`�=&�xq����������_����a �-.������������&�F�&��&��F��F��&�&�&��a&����L&�����j&��������&����������c&������������&��������������d&����������������e&�	�����������������5&�
������������������	�f&���������������������
�g&������������������������h&���&�������������:�"������������������_�
�
�k�
���
�k��
�(�N�$���<��(ռ������&���(ռ�_�
�
�
�l�Z����V�������_�����F�
�
�k�
���
�k��
�(�N�$���<�8��
�
�l�
�l��
�l���r󝕋��*����_��������������
�
�l�
�l��
�l���r󝕋����
�
�l�
�l��
�l���r󝕋���
�
�p�
�l��
�k��
�p���'�q�������_�����������������
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q����
�
�p�
�l��
�k��
�p���'�q�����}��l���k���p���}�F�|H�����_�����������������������~��~���4W�?~�����_�����������������F�
�
�
͂�
������^������������11�B��N����_���������������_�������������΀�������������������{��&�������������������ÓÓ�ē���xœ���x�|)f�nA�������������7;�m�����_���������������_�������
�
�
͂�
������^�������_��������������&������������������,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��
�����a,�z����������������_���6��4����OlL��]�8�*����J��&�����������������_��������������\7�`����������������������_�������_������
�
�
�
�
�
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"���
�
������������:�"������_��������O�N���=���>|���������_������I����������Ґ�-f���L�E������������_��������������cT"�ȁ���������������|����������>ÖJ���_�����������������|���_���������e��[��������������������|�����������X�mzDr��_��������������|���������������:�9-%~u�Y�_�����|�������5�
����O����_��������ɕ��ٕ�U79w>ޤ�(����J���I����������������)�x�;y�
�_���H�����������?�?��?buf��:�?�	�:$x��Lk��B�B�BGlobal�����I������?�?��?���:�?�	�:$x��Lk����_��������������N�Һ��(�J��������������N�Һ�8�Iހ�����������������Um�n��_���J���I������T�����T�
�8HQQ�Y�����������������������������
�
�
�
�
�
�
�
�����������
�
�
�
�������������������������������������
�
�
�
�
�
�
�
�����������
�
���������������������
�
�
�
�
�
�
�
�����������
�
�
�
���������������������������������
�
�
�
���������
��
�
�
�
���������������
�
�
�
���������
��
�
�
�
�����������������
�
���������
��
�
���������������
�������
�����/
?�������������l�o�r�u�x�������������������������������}����������������������	��	��	��	��	��	��	��	�������
��
��
4���������;�����������������������
��
�	�	�	�	�	�	����	�	�	�
�
�
�
�������������
�
�
�
�
�
��
��
��
��
��
��
��
��
��
��������
��
��
�������
���
���
���
���
���
���
���
���
���
���
���
���
�
�
�
�
�
�
�
�
�
�
�
�
���	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�������������������������������	��	�����������������������_!~����p�~�_b�&5�J��M"�U*F
�#��
��
�
�M�i���p�F�|`�*������I�H����D�
���"�$A�u64::MAX���d��?#/@?	$�M?o.y?�����@*��-�C_���

��
���&,�:EL{ _ }��� 

�� 
���&,�:EL{ _ }�|�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��-��*��]�����������O�N���=��ChaCha12Core����ƙ�������OsRng��F*���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������*j��<J������
��%��1��9@��
��%��1��ChaCha12Rng���:F����D�ls�	
��%��1��9@�

��%��1��9@�#
��'��������������N�Һ�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���:����<$��������d�&���|���������H��*' 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���:|
��/���#�����:���<������&������'��O	R	U	��L	��A	��,�����,���,�8x��&�8��
�*���+���8����8�<��7log�,���8���'�8�,�	���,���,�8���
���,�����,���,�8���&�8��
�*���+���8����8�<��7��,���8���'�8�,�	���,���,�8���
���$�����,���,�8���&�8��
�*���+���8����8�<��7��,���8���'�8�$�	���,���,�8���
���$�����,���,�8���&�8��
�*���+���8����8�<��7��,���8���'�8�$�	���,���,�8���
���,�����,���,�8���&�8��
�*���+���8����8�<��7��,���8���'�8�,�	���,���,�8���
���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����/��,�"KY���������YL�"���Yt�"���d�"F��d�#&��Z$�#���[�#���\4�#���\���\d�#���\���aT�#���a���`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�,���ܺ����!!�,�����,����,
 ��$�,�:�,+-�� d� &F�����"#��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��������ռ&�))�
&���������
(��ռ��$�
�:�
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��"��:"��Z"r"����7�����ռ&�++&������������,�
*��ռ��$��:�<>��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"�'ɸ��� ����ռ��&�-�.-.&�������������ռT�����������,�
,��ռ����$��[$�moik��;8��0�11�0�����μ�&μռ|�ɼ2(24602��34����ɼ��ռ/�33�/���������
28ռμ��$��:�8:��"R�5�6�7567�����"�����"�����"&����|�"����"�89:�J�J�J9:egac]_L�"$�"44����#$�#�������������������;t�����4�#4
9������$�#��%-L�%�������������������;t���4�%4
:������$�&��&]�<�=�>=><���&���&���&��|�'���'�(*-/24��)e�@�A�B�CB@AC��������*�����)���)���)��|�*�����T�*���)ӽD(DQSVX[]��*34�*���ӽ����?�EE�*?�����*����*
D����������$�*�:�*;=��,��+! Sample or extend a [`String`]��+���+EB Helper methods to extend a [`String`] or sample a new [`String`].�d�,FF����,�F����GIGIIG��.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"`��x9F�HH�.F�����.���.
G����$�.�:�.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����������F�JJ�1F���1���1
I����$�1�:�1�	�1/1L� ,� U�����&\��KM�%t��KN�&L��KO�d�&KQ��|��KR��KR���KS�mem���KT��=��������-|~jlT�LL�8������8�4�t�L�UU�����U����VWVW����V<���W4��UU��<��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).�����UU
W��$�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�:�&��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�:�# �#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�:�%&�%�%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�:�) �)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�:�,&�,�,8�,8��,(�,,�,8��,�,�028�.8��T�.�.8���.'�.8�<�.'�.�.,�.8��D�.�.�.�.8�.,�.8��D�.
�.7��.%�.8�.8�,�.&�.,�.8���.�.8�:�. �.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�&Y[��|��Y\��Y\���Y]��<���Y_�<��Y`NonZeroI128�\���Yb
NonZeroI16�T���Yc
NonZeroI32�T���Yd
NonZeroI64�T���Ye	NonZeroI8�L���YfNonZeroU128�\���Yg
NonZeroU16�T���Yh
NonZeroU32�T���Yi
NonZeroU64�T���Yj	NonZeroU8�L���Yk��-����T�}��&nq`c���MP58 ����������ln��)�m(m��44��������l�nn�l���û�
m��$��:�#%��	*�p(p��	54�	�������o�qq�	o���	û�	
p��$�
�:�
#%��
*�s(s��54��������r�tt�r���û�
s��$��:�#%��*�v(v��54��������u�ww�u���û�
v��$��:�#%��+�y(y��
64�
�������x�zz�
x���
û�

y��$�
�:�
#%��������	,�8��&�8��$�,�8���&�8��*���	8$�8�d��,�8���8
�8�|���+���8�4�8�8�4��8��&�8���-�8�,�����8$�$�8�:�&��8�8��(�,�8����8�:� �8�:4�'��,�8������8�,�8��%���T�����	,�8��&�8��$�,�8�
�&�8�$�*���	8$�8�d��,�8���8
�8�|���8�8�4��8��&�8���-�8�,�����8$�$�8�:�&��8�8��(�,�8����8$���	8�8�8�$���8nz���,�8�
���8�:� �8�:4�����8,�8��%�%���.�~(~��94����������}��}���û�
~��$��:�#%��~~��.��(���94��������������� ���� û� 
���$� �:� $&����L� ,� �����4��F���,��#���$��-���D�����������d�F����d�&����|��������͂<��
������������\��T�ۜ�������6����Z\T�I��+��(���64�����������������û�
���$��:�$&��D����"%��G���"Ql�"����������������"����"û�"
���$�"�:�"��#�	�#46��&&���(���&44�&�������������&����&û�&
���$�&�:�&$&��&,�&���'"��'�����,$���(���,44�,�������������,����,û�,
���$�,�:�,$&|�,,�,���."���G���.Vl�.�����������������/����/û�/
���$�/�:�/��4�/�	�/57�1�<closure_kind>��<closure_signature>��<upvars>���������2 ���G���2Vl�2�����������������3����2û�2
���$�3�:�3��4�3�	�357��6+��(���664�6������������7����6û�6
���$�7�:�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�:�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�:�K �K8�:4�K'�K�K,�K8��,�K�K�K�K$�K
�K%�K8�L8_rng�$�L�L8�:�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�:�Q.0�Q�������ܺ���������������Ra������R��|�R��(���S=4�S��������������S����S���S
�����$�S�:�S(*L� ,� �������-����$�������n���$T����,��2�����������d����Q���\�4�����&$���������
�����$������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�!U���!l�!�� Distributions over slices�,�!�
�
�
NonZeroUsize�d������1t�����}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�
��(ռ��$��:�.0��!����_���D���������^�^��^��[�^���[����e�S��֬���
�$����� ����-8�����G���]l������������������������T�
�8��$��:���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�
�
��pT�
�
��}d�
���~\� 
���|� 
���� 
�[���,� 
�����t� 
�����<� 
������� 
�����d�!
&�����!
������<�!
|��
L�
,�
��
�,�����2d�����0l�����1t�����L�U���'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�1t�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�:�)&�)�)8�)8��)(�)8$�)'�)8�*�)�)�/8�)8value1_2�D�)�)�)�*8�:�) �)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�:�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�:�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�:�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 �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�����1t�����$�������������;��subdQS��%ET�6������R��,�8��&�8��$�,�8���&�8��$�,�8	sample_ty�L�&�8�,�*���R8$�8�0l�8
�,�8����	8!$�8�*<��8�pT��,�8���%�8$�8�1t�8
�8�pT��,�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�1t�"'�"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�k,�'�'8��$�' �'8�d�'�'�'8�l�' �'8�d�'�'�'7��'8�',�'8���'%�'8�'8�p4�'�'8�'8�k,�'�'7��'�'�(
8�(8�k,�(�(,�(8��L�('�(8�$�(�(�(8�k,�(%�(�(�(8�k,�( �(8wrapping_neg�d�(�(�(�(8�k,�(8$�(�(�)7��)%�)8��)�)�*8�pT�)�)�*8�l�)$�)8�k,�)&�)8�k,�)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�:�,&�,�,8�,8��,(�,8$�,'�,8�*�,�,�0+8�,8�k,�,�,8$�, �,8�k,�,8�,,�,8���,8�,,�,8��L�,%�,8�,8�k,�,�,7��,�,�-84�-8�:�- �-8�:4�-�-�-%�-8�-8�p4�-�-8$�- �-8�p4�-8�-,�-8���-8�-,�-8��L�-%�-8�.8���.�.8$�.�.�/8�.�.�.8���.$�.8���.�.8�:�. �.8�:4�.'�.�.,�.8��L�.�.�.�. �.8�$$�.�.�.8�k,�.%�.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�:�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�:�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�:�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�k,�;�;8��$�; �;8�d�;�;�;8�l�; �;8�d�;�;�;7��;8�;,�;8���;8�;,�;8��L�;%�;8�<8�k,�<�<7��<�<�=84�=8��=�=�=8�:�= �=8�:4�=�=�=%�=8�>�>�>8�>8�
4�>$�>8lo_order�D�>�>8�:�> �>8�:4�>'�>�>,�>8��L�>�>�>�> �>8�$$�>�>�>8�k,�>%�>8�?8��D�?�?8�k,�? �?8��d�?�?�?�?�B8�@�@�@8new_hi_order�d�@$�@8�@�@�@�@	8�:�@ �@8�:4�@'�@�@,�@8��L�@�@�@�@ �@8�$$�@�@�@8�k,�@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�:�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�k,�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�k,�H�H7��H�H�J84�I8��I�I�I8�:�I �I8�:4�I�I�I%�I8�J�J�J8�J8�
4�J$�J8�J8���J�J8�:�J �J8�:4�J'�J�J,�J8��L�J�J�J�J �J8�$$�J�J�J8�k,�J%�J8%,�K8���K�K8�k,�K �K8��d�K�K�K�K�Q8�K�K�K8new_hi�4�K$�K8new_lo�4�K�K�K�L	8�:�K �L8�:4�L'�L�L,�L8��L�L�L�L�L �L8�$$�L�L�L8�k,�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�������������������û�
���$���:��(*����lĦ��+�+�����������������������q�aX��������+��+���������Ҧûզ����,��������ާ����,����������
���������,����4���:���������������ܺ������������������ܺ�������������������������������+��+�����������û����,ʭ�������,�����ݭ
���������,Ȭ��4۬�:�`b����ڰ�������ܺ������������˱�������ܺ��������������
�Q�Q�Q�QL�
,�
��������,�	����2d�	����0l�	���͂<�	�
��͂�
���pT�	�
����1t�	����d�	&�����	�����D�	Ó����P	����������rtԨ	eT�	S��	@ܯ	��d�	<�	������
	��	���	��	���#	��	�
���	��
#	�������������4�
	�
	�����	�	������������������������q�aX������+��+������,�	��������	��,�	�������	
�������,�	��4�	�	�	L�	�������ܺ���������������	l�	��������+��+������,�	����	��,�	����	
�������,�	��4�	�	�	L�	�������ܺ������������9	4�	���������������	����	û�	
���$�	�:�	$&��1	���G����	l�	�����������������	����	û�	
���$�	�:�	��4�	�	�	57��%	����d�%	<�%	������%'	�������������4�&	�&	������&�	�&	������������������������q�aX������+��+������,�'	��������'	��,�'	�������'	
�������,�&	��4�&	�&	�&	��)�	l�)	�������+��+������,�*	����*	��,�*	����*	
�������,�)	��4�)	�)	�)	�0	�������ܺ��������������������������;t�����6:	4�6	���������������6	����6	û�6	
���$�6	�:�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
�:�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�\
���������������]
����]
���]

�����$�]
�:�]
(*��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
�:�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
�:�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
�:�z
35ܣ{
��z%
" Check whether the range is empty.�D�{
������{
�
���ռ$�{
��{?
������{
���l�{
�����T�{
��������BD��|L
l�|
��������������������������q�aX���������|
����|
|��<�|

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

�����$�
�:�
(*Ԓ�
D��
�������
�
���$��
�ހ 
��
��
��
��
��
,��
8����
&��
8���
*��
��
��
8$��
8�3\��
��
,��
8����
��
8
��
8�<��
��
,��
8����
��
��
��
+́
΁
Ձ
8�4ρ
8�
8�+l�
�
8��
&��
8��<��
��
-��
8�,��
��
��
��
8$��
$��
8�:��
&��
��
8��
8���
(��
8�4��
��
,��
8����
$��
8�,��
��
��
��
Â
,Ă
8��ł
8ǂ
8�0lʂ
ׂ
'؂
8�*<ڂ
'�
8�+l�
��
��
7��
$�
8$�
 ��
8���
$��
8�:��
+��
��
��
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�:��
&��
��
8��
8���
(��
8�4��
��
,��
8����
$��
8�,��
��
��
��
…
,Å
8��ą
8ƅ
8�0lɅ
օ
'ׅ
8�*<م
'��
8�,��
��
��
7���
$��
8$��
 ��
8���
$��
8�:��
+��
��
��
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����
�,�����84�����2d�����0l�����1t�����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$���6��4����OlL��]��(��OlL��]����K��rt�K����(�
�
���
؆��
�7��
�����a,�z���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�������6��4����OlL��]������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�:�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�84�
8
�
,�
8���
�
�
8,�
8�8$�&�8$��7��%�8�8�8�����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�84�8
�,�8�����8,�8�8$�&�8$��7���%�8�8�8�����8�8$�$�8���&��8$�(�8�4����$������
�8$��
�8���%�8������%��� ��������_���4���������^�^��^��[�^���[����e�S��֬���
�$�����",����������" ����#-��������������##��������#'9�9�]�]Դ�$��T�$��|���+( 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��"��:"��Z"r"����7����ռ�������� ��,�!��|�!
���ռ$� (*��*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�*
���ռ��$�*�k,�*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��"��:"��Z"r"����7�μ��ռ�����������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�k,�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�$�[�������������[����[���[
�����$�[�:�[(*��[t�[�[�^�[�[*�\�\�\%�\�\�\,�\8���\&�\8��\*�\�\�]8$�\8�<$�\8
�\�\�\,�\8���\�\�]8�\8�<$�\�\8��\&�\8��\�\-�\8�,�\�\�\�\	�\8�\8$�\$�\8�:�\&�\�\8�\8��\�\�]8
�]8elt��]8�]8$�] �]8�	D�]�]�]�]�]
�]8��	�]�]8�:�] �]8�:4�]�]�]%�]%�]�]�^,�^8���^&�^8��^$�^,�^�^�^,�^8��^&�^8��^$�^
�^*�^�^�^8�=t�^	�^�^�^,�^8���^%�^8�=t�^	�^�^�^,�^�^�^,�^8��^$�^
�^%�^%�^��_�������_0$�_�������������_����_û�_
���$�_�:�_$&Ԡ`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�:�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�:�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�:�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�:�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�:�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� 
��	$�
��	IJ 
��	�
��	\� 
��	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�0
��5/
4�5
�������	��5
�
�����$�5
D�6
�������ܺ��������������7P
��7
���������	��7
�
�����$�7
��<�7
��:}
���>�����	�:
��	$�:
��	d�;
��	\�;
��	,�;
��	T�;
��	,�;
�����CEHJ��;)
,�;
��������;
�
�����$�;
��=�
���>�����	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�
½����
���	$�
������$��������ܺ������(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�fu������!�
�$�!�$��#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��:��G���G�u�������u��������kmT������T�,������|�����������	��	<���
����Կ�����
��
����:���9������
���
���$�����:d������
���
���$��H�����%.d�%�����
��%�
���$�%��&���������������<�|��
��24��/�������	��	<����H��:��H���G���G�
뒇+�e��
뒇+�e����y{T������4�����T�,������|������%�����	��	<��
����"����
��
����:��H���
%T�
���
��
�
���$�
��������ܺ������Ƈ��	��+�����
������#,��������f�ĵ<����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������������
�����$��:�(*��,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�,��������
�����,����,���-
�����$�,�:�,(*$�1�������ܺ�������������F��:��G���G�u���������=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`].���=��������
ѯ
�����=����=���=
�����$�=�:�=���=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�:�Hamount�4�H68��O6�5������,�O�J��D�O���OL�	,�	������H������,�����2d�����0l������
\�����84����������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�������������
����
���

�����$�
�:�
(*�����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;�,���<���|�����������������ɕ��ٕ�U79w>ޤ�����
�������������
,����
�����$��:���
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���
,����
,����
������$��:�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�,
���������
��
$�+�:�+�74�+����������-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��������ɕ��ٕ�U79w>ޤ�����
��������*�����<����<���<���*�<��
,�=���=�������
��>���̄����>���L�>
���������$�<�:�<��
4�<�74�<������,�@�������ܺ����������������
��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�:�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�:�N�74�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��<�[�������������[����[���[
�����$�[�:�[(*��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�:�b��
4�b9;��c������c�������c�c������c�
���$�c��dJ�O�������d���l�d���|�d��+-��d������d�������� ��eH<�e�������������e����e���e
�����$�e�:�e(*��gw|�g��������ʫʫ�����g����g���h
�����$�g�:�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�$�������������������N�Һ�����
�$��������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
����:�8length�4�8��
4�846��?�?�����ج��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
��������:�K��4�K�74�K��
4�K��������U���U�����������������*��������V
���V���V���V�����Vû�W��t�W���W��L�W���$�W����?�?��?���:�?�	�:$x��Lk�����d�W
����������:�V��4�V�74�V��
4�V����������W-l�WD�W��XT�X��X<�X��������Y��
�8HQQ�Y��!D�Y,�Y����D�Y�Y�����Y!������Y�������Y7\�Y������������������������;t������Less��������Greater��ji�/޾��Y�
��$�Y�,�Y��Z������Z�������Z'�Z������������[�
��$�[�,�[��] ������]�������]"�]����������]�
��$�]�,�]̖^������^��
,�i�������ܺ���������������T�����T�
�8HQQ�Y������l`d�l�����������l���lû�l
����:�l��4�l��
4�l/1$�p�������ܺ������ćć��ubt�u�����������v���vû�v
����:�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��
������:Ȃ��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�û�
�����:��	�358�$��������ܺ���������
��ġe���-��%" Access the thread-local generator�����'$ Use [`rand::rng()`](rng()) instead.���Renamed to `rng`���9T�������
���w�w�������-����������$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��"��:"��Z"r"����7������������(��|�(
�����.{��)^[ 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�.�������������.���.���.�������.
������k,�.=?BD��2"��/7���/���/"����/GD <code>[rng()].[random_bool](Rng::random_bool)(<var>p</var>)</code>.��0�l�0���0�<�0����01. println!("{}", rand::random_bool(1.0 / 3.0));�<�1���1�d�1���1�Դ1��P|�1\�2�
���2��9=��2H��L�3���3���3H����3J����4F����4&���5���5C����5D���6���6"����6if <code>[rng()].[random_ratio](Rng::random_ratio)(<var>numerator</var>, <var>denominator</var>)</code>.��7�d�7���7���77���8�l�8���8�<�8����8-* println!("{}", rand::random_ratio(2, 3));�<�8���8���8#��P|�9d�9�
���L�9��\�9��>+��:8���:���:"����;<9 <code>[rng()].[fill](Rng::fill)(<var>dest</var>)</code>.��;�l�;���;�<�;����;���< rand::fill(&mut arr[..]);�<�<���<���<MJ Note that you can instead use [`random()`] to generate an array of random���=MJ data, though this is slower for small elements (smaller than the RNG word�T�= size).�P|�>$�>���������>�����>���$�>
�����$�>&(����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�ܺ��wn|�:��T�
,�
��(�nܺ���"$��ܺܺ���
�,� �oܺ(	�pܺ��_�"$����ܺ��^�^��^��[�^���[����e�S��֬�	��
�,���H
�qܺqܺ���68���ܺ�ܺ�
��
�L�������0- Error type returned from [`Bernoulli::new`].�t����3�X��������� `p < 0` or `p > 1`.�%����9;����(�r�����"$���������
�,� �s��(
�t����_�"$��������^�^��^��[�^���[����e�S��֬�
��
�,���H�u��u�����68�����������
�L����v�����"�)+.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`].�$�!������������!���!���!�r"����7����1368;=D�!,�!"����4�!�!"������!%<�!"�����PhantomData�Rҹ��^=x��(�!w����������������_��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.��(���������������(���(���(���(ӽ�'ɸ��� ���9;>@CEHJD�),�)"����<�)$�)"������).<�)"�������Rҹ��^=x����(�(x��������������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�
��-�%���Vi�:)����(�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������~���)����(�}�����"$���������
�,� �~��(�����_�"$��������^�^��^��[�^���[����e�S��֬���
�,���8�������#%����
�����VW�0������7����
� ���@���*��(���50�����������������û�
��� ��:�(*��$'���(���%50�%�������������%����%û�%
��� �%�:�%(*��+!���(���+50�+�������������,����,û�,
��� �,�:�,(*��	��VW�0������7����
� ���@���*	��(���50�����������������û�
��� ��:�(*��$'	���(���%50�%�������������%����%û�%
��� �%�:�%(*��+!	���(���+50�+�������������,����,û�,
��� �,�:�,(*��*
��(���50�����������������û�
��� ��:�(*��*��(���50�����������������û�
��� ��:�(*��*��(���50�����������������û�
��� ��:�(*��*
��(���50�����������������û�
��� ��:�(*� �*��(�� �50 ������������ ���� �û �
���  ��: �(*�!�*��(��!�50!��������������!����!�û!�
��� !��:!�(*�"�*��(��"�50"��������������"����"�û"�
��� "��:"�(*�#�*��(��#�50#��������������#����#�û#�
��� #��:#�(*�$�*��(��$�50$��������������$����$�û$�
��� $��:$�(*�%�*��(��%�50%��������������%����%�û%�
��� %��:%�(*�&�*��(��&�50&��������������&����&�û&�
��� &��:&�(*�'�*��(��'�50'��������������'����'�û'�
��� '��:'�(*�(�*��(��(�50(��������������(����(�û(�
��� (��:(�(*�)�*��(��)�50)��������������)����)�û)�
��� )��:)�(*�*�*��(��*�50*��������������*����*�û*�
��� *��:*�(*����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����=&�xq�)����(+������_�#%��������^�^��^��[�^���[����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��� �-.����')����(/������_�#%��������^�^��^��[�^���[����e�S��֬�/��
�,���(0�������#%�������0��
�,� 1����82�������#%����
��9�GQ���(��9�IA09�I�����������9�I���9�Iû9�I
��� 9�I�:9�I(*�;�G���a�������P&����;�H��(�&(�;�IA0;�I�������������;�I���;�I��;�I
����� ;�I�:;�I,.�=�G���a��L�����
�����P��
�=�H&�����(�MP;=�=�IA0=�I�������������=�I���=�I��=�I
������� =�I�:=�I02�?�G���a��L�j������
Z��
@�����P��
�?�H��
	&�����(�����PR�?�IA0?�I�������������?�I���?�I��?�I
��������� ?�I�:?�I46�A�G���a�	�L�	j�	��	�	�	�	�	��
���
��
p�����P��
�A�H��
	��
&��� ��	(�	),��eg�A�IA0A�I������������	�	A�I���A�I��A�I
�	���������� A�I�:A�I8:�C�G���a�	�L�	j�	��	�c�	�	�	�	�	�	
��
|��
b�
�
������P��
�C�H��
	��
��
&���&��	(�	������z|�C�IA0C�I���������	��	�	C�I�	����
C�I���
C�I
�	������������
 C�I�:C�IDF�E�G���a�	�L�	j�	��	�c�	��	�	�	�	�	�	�	��
h��
N�
�
���
������P��
�E�H��
	��
��
̨
&���,��	(�	������sv���E�IA0E�I���������	��	�	E�I�	����
E�I���
E�I
�	��������������
 E�I�:E�IHJ�G�G���a�	�L�	j�	��	�c�	��	�d�	�	�	�	�	�	�	�	��
�	��
j�
!�
���
���
�����P��
�G�H��
	��
��
̨
Ŭ
!&���2��	(�	

����=@�������G�IA0G�I���������	��	�	G�I�	����
G�I���
G�I
�	����������������
 G�I�:G�ILN�I�G���a�	�L�	j�	��	�c�	��	�d�	�e�	�	�	�	�	�	�	�	�	��
���
�
�
m	�
���
K��
_��
C�����P��
�I�H��
	��
��
̨
Ŭ
!�
'&���8��	(�	Z]HK


��������I�IA0I�I���������	��	�	I�I�	����
I�I���
I�I
�		������������������
 I�I�:I�IPR�K�G��	�a�	�L�	j�	��	�c�	��	�d�	�e�	�5�		�	�	�	�	�	�	�	�	�	��
L��
2
�
��
p
��
���
���
���
s�����P��
�K�H��
	��
��
̨
Ŭ
!�
'ǵ
-&���>��	(�	���
�
��"~	�	����BE���K�IA0K�I�����	����		��		�		K�I�	����
K�I���
K�I
�	
��������������������
 K�I�:K�ITV�M�G��
�a�	�L�	j�	��	�c�	��	�d�	�e�	�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�:M�IXZ�O�G���a�	�L�	j�	��	�c�	��	�d�	�e�	�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�:O�I\^�Q�G���a�	�L�	j�	��	�c�	��	�d�	�e�	�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�:Q�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�o�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���N�$���<��
�
�
�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.�',����Z����V�
�(�
�
��(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��*�
�
�������r󝕋��
�
!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�)�:x�)(*�x�/�hx�/����������������������������q�aX�����
��
�+�
�+�
�
�
�
x�0�
��x�/ûx�/��(x�0������x�0��(x�1������x�1
�
��������(x�/��0x�0�:x�0xzx�/x�/�x�2��x�2��������ǎ�
��
�+�
�+�
�
�
�
x�3�
��x�2ûx�2��(x�3���x�3��(x�4���x�4
�
��������(x�2��0x�2�:x�3`bx�2x�2�}�+���
�}�;X}�����
�

�
�l}��� }��l(}��}�+�
�`}�8}��
�
���}�)+���
�
�
�
�
�
�������
�
�
�
�
0}�}��
�
�}��}�������������������������q�aX�����
�+�
�+�
�
�
�
��(}��������}���(}������}�
�
������(}���0}�}�}��}�!�h}�!����֕�
�+�
�+�
�
�
�
��(}�"��}�"��(}�#���}�"
�
������(}�!��0}�!}�!}�!�}�(90}�(����������
��
�
}�)�
��}�(û}�(
�
�� }�)�:}�)(*�}�/�h}�/����������������������������q�aX����
��
�+�
�+�
�
�
�
}�0�
��}�/û}�/��(}�0�����}�0��(}�1�����}�1
�
��������(}�/��0}�0�:}�0xz}�/}�/�}�2��}�2�����������
��
�+�
�+�
�
�
�
}�3�
��}�2û}�2��(}�3���}�3��(}�4Ϝ�}�4
�
��������(}�2��0}�2�:}�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��*�
�
�������'�q��
�
�
!#�����
�
����,���
�
��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��+�����������
��
�
��+�
����+û��+
�
�� ��,�:��,,.���0�h��0����������������������������q�aX�����
���+��+������1�
����0û��0��(��2��������2��(��2��������2
�
��������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7�����������
���+��+������8�
����7û��7��(��9�����9��(��9�����9
���������(��7��0��8�:��8ik��7��7Ј�.��`��8���������'.�������������������0������������������������������������q�aX������+��+������(�� �����������(�� �������� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7Ү0��+����������������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aX��������+��+������1�����0û��0��(��2��������2��(��2��������2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������������+��+������8�����7û��7��(��9�����9��(��9�����9
���������(��7��0��8�:��8ik��7��7Љ�/��`��8���������'/�������������������0������������������������������������q�aX������+��+������(�� �����������(�� �������� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7Ү0��+����������������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aX��������+��+������1�����0û��0��(��2��������2��(��2��������2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������������+��+������8�����7û��7��(��9�����9��(��9�����9
���������(��7��0��8�:��8ik��7��7Њ�0��`��8���������'0�������������������0������������������������������������q�aX������+��+������(�� �����������(�� �������� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7Ү0��+����������������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aX��������+��+������1�����0û��0��(��2��������2��(��2��������2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������������+��+������8�����7û��7��(��9�����9��(��9�����9
���������(��7��0��8�:��8ik��7��7Ћ�1��`��8���������'1�������������������0������������������������������������q�aX������+��+������(�� �����������(�� �������� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7Ү0��+����������������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aX��������+��+������1�����0û��0��(��2��������2��(��2��������2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������������+��+������8�����7û��7��(��9�����9��(��9�����9
���������(��7��0��8�:��8ik��7��7Ќ�2��`��8���������'2�������������������0������������������������������������q�aX������+��+������(�� �����������(�� �������� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7Ү0��+����������������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aX��������+��+������1�����0û��0��(��2��������2��(��2��������2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������������+��+������8�����7û��7��(��9����9��(��9�����9
���������(��7��0��8�:��8ik��7��7Ѝ�3��`��8���������'3�������������������0������������������������������������q�aX������+��+������(�� �����������(�� ���Ȉ��� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%����%
�������(��#��0��$��#��#���+9���+7Ү0��+��������Ȉ������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aXȈ������+��+������1�����0û��0��(��2���Ȉ���2��(��2���Ȉ���2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������������+��+������8�����7û��7��(��9�����9��(��9׎���9
���������(��7��0��8�:��8ik��7��7Ў�4��`��8���������'4�������������������0������������������������������������q�aX������+��+������(�� �����������(�� �������� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%�����%
�������(��#��0��$��#��#���+9���+7Ү0��+����������������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aX��������+��+������1�����0û��0��(��2��������2��(��2��������2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������ə����+��+������8�����7û��7��(��9�����9��(��9�����9
���������(��7��0��8�:��8ik��7��7Џ�5��`��8���������'5�������������������0������������������������������������q�aX������+��+������(�� �����������(�� ���ܡ��� 
�������(����0���������#�h��#���� ��+��+������(��$ѡ���$��(��%�����%
�������(��#��0��$��#��#���+9���+7Ү0��+��������ܡ������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aXܡ������+��+������1�����0û��0��(��2���ܡ���2��(��2���ܡ���2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������������+��+������8�����7û��7��(��9˧���9��(��9����9
���������(��7��0��8�:��8ik��7��7А�6��`��8���������'6�������������������0������������������������������������q�aX������+��+������(�� �����������(�� �������� 
�������(����0���������#�h��#��������+��+������(��$�����$��(��%®���%
�������(��#��0��$��#��#���+9���+7Ү0��+����������������+�����+û��+
��� ��,�:��,,.���0�h��0����������������������������q�aX��������+��+������1�����0û��0��(��2��������2��(��2��������2
���������(��0��0��1�:��1����0��0���7����5/����5����5Aٿ���6@�����7��������ݲ����+��+������8�����7û��7��(��9�����9��(��9�����9
���������(��7��0��8�:��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����F�|H�����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.�;\�
	����4W�?~��ľ
	<�
	�����(��		������$&���������		�
�,�		 ��		���(��		�����_�$&��������^�^��^��[�^���[����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	��
<|�!	���11�B��N��̅"	$�"	�����\�"	4�"	���(��!	������$&���������!	�
�,�!	 ��!	���(��!	�����_�$&��������^�^��^��[�^���[����e�S��֬���!	�
�,�!	��H��!	���������9;�����������!	�
�L�!	����!	������$�+-028�<@B�������!	�
��!	Ġ#	=��#	�����{��&���������,�#	=�����L�#	$�#	�����#	,�#	����
�
�
͂�
������^�4�$	=�������$	,�$	����
�
�
͂�
������^�,�$	=�����l�$	D�$	���t�$	L�$	�����$	$�$	�����(��"	�����_�$&��������^�^��^��[�^���[����e�S��֬���"	�
�,�"	�� ��"	���(��"	������$&���������"	�
�,�"	H��"	���������9;�����������"	�
�L�"	����"	������$�+-028�<@B�������"	�
��"	t�"
��!B
? Error type returned from [`Uniform::new`] and `new_inclusive`.�>,�"
��7;�m�������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
������^��
�
�����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���

�
�� ���
�:���
02�
@���
�����
���
�

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

�
�� ���
�:���
02�
@���
�����
�Ɇ
�

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

�
�� ���
�:���
02�
@���
�����
���
�

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

�
�� ���
�:���
02�
@���
�����
�Ɇ
�

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

�
�� ���
�:���
02�
@���
�����
���
�

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

�
�� ���
�:���
02�
@���
�����
�Ɇ
�

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

�
�� ���
�:���
02�
@���
�����
���
�

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

�
�� ���
�:���
02�
@���
�����
�Ɇ
�

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

�
�� ���
�:���
02�
@���
�����
���
�

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

�
�� ���
�:���
02�
@���
�����
�Ɇ
�

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

�
�� ���
�:���
02�
@���
�����
���
�

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

�
�� ���
�:���
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�����a,�z��
�
�
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,���\7�`������������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��R�ު�k��g)���(��F�����$&�������F�
�,�F ��F��(��F����_�$&�������^�^��^��[�^���[����e�S��֬���F�
�,�F��8��F�����$&���
����\�
������\0 ��\���
���������\�����\û��\
��� ��\�:��\,.���\�
������\0 ��\���
���������\�����\û��\
��� ��\�:��\,.���\���������\0 ��\��������������\�����\û��\
��� ��\�:��\,.���\���������\0 ��\��������������\�����\û��\
��� ��\�:��\,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.���b���������b0 ��b��������������c�����bû��c
��� ��c�:��c,.���k���������k0 ��k��������������k�����kû��k
��� ��k�:��k,.s���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��
���O
L Although unlikely, reseeding the wrapped PRNG can fail. `ReseedingRng` will���F
C never panic but try to handle the error intelligently through some���?
< combination of retrying and delaying reseeding until later.���N
K If handling the source error fails `ReseedingRng` will continue generating���1
. data from the wrapped PRNG without reseeding.��
���N
K Manually calling [`reseed()`] will not have this retry or delay logic, but���
 reports the error.��
�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�
��O�N���=������s��������
����������� 
�����(��
����>�����	���	��_��K�_��Y��	��	��	����_�BEIL����������^�^��^��[�^���[����e�S��֬���
�
�����,�
�Q��&
Tl�'
����>�����	�'
��	$�'
��-f���L�E����+-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���GW<���	������cT"�ȁ��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/�XD���>ÖJ���������6�������
�������(��������$&����������
�,�(�������_�$&��������^�^��^��[�^���[����e�S��֬����
�,���H�����������9;������������
�L�����������$�+-028�<@B��������
����Y������e��[���\�������(�������_�$&��������^�^��^��[�^���[����e�S��֬����
�,���(��������$&����������
�,�H�����������9;������������
�L�����������$�+-028�<@B��������
�������g���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�[4���X�mzDr�������g�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���9-%~u�Y��� .� �����(��������$&����������
�,����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).�c|�r�(��������­�r���rӭ�r��rӭd�r��U79w>ޤ����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.�dɟ��)�x�;y�
�������������������	�	�	8�4�	t�	d���
�����������D�	����6���	�	�	8�4�	t�	d6���
�6�6���������D�
����(��������$&����������
�,�(�������_�$&��������^�^��^��[�^���[����e�S��֬����
�,�����"��"$! Return type of `IndexVec::iter`.�e���(�����N�Һ��������g�g�Z�h��g�h���g�h���gFPR<?���(�����g�g�Z�h��g�h���g�h���gFPR<?���(���"����"�"�"8�4�"t�"e����
��(��������������#����r���#�#�#8�4�#t�#er���
��(r�r�����������#����(��"��(������_�eh79��������^�^��^��[�^���[����e�S��֬���"�
��(,�"����)��))& Return type of `IndexVec::into_iter`.�fץ�����Um�n�����������������
���)�)�)8�4�)t�)f
���
�
�
�����������*����Ȳ��*�*�*8�4�*t�*fȲ��
�ȲȲ����������*����(��)������$&���������)�
�,�)(��)�����_�$&��������^�^��^��[�^���[����e�S��֬���)�
�,�)��Y�����)��,�� �
&�,��1�7e�<�A��F�*L��Q�.W�.]'�b�1h'n�t�z�
�����@������
�h���3�� �A���$��#��#����&����,����/��//�3�3� �7'.'.�Q5�(<�SC�TJ�UQ�X�V_�f�m�t�W{����U�����e��������	����	��	�����6	�����$
��$
�4���M
����]
�a���Y�$�w
+�2[�9�@E�G��N��U�\��c�4j�4q�Lx���M��M��O�����Q�����n�2����e��
��
�3���L���"�+��-1W3�;�O �<'�=.�>5�?<RBC�[JxFQ�_X�P_�xfOCmYBtB{�A��"
��@��>��)
�^=�y<��7
��;��8��8�78���`6�6��5��"�3��2o2�W1
1�0#�*�-1�,8�$?L�$F.(M�'T�'[�4bT!i� p� w?~��y��	��=�]����R��
�d����������,�����+��>�h���<w�
�E�O���O&G�-�[4@�;�bB}�I\�P�eW��^�ge��l �s&�z���������'��������$����n���)�q��m��%��|��1��<���Z�����[���]
����C�"Ϭ)e�0�70�>7�E�L��S��Zx�a��h��o`�v�}"���������������
�����1��Z��a�����������}����|�%L|�,{!�)\z0�%8�y?�,G�xN�VCx]�e�wl�t�v{��*v� ��vu�!���t�"��t�#��Zs�$���r�%���q�&��>q�'���p(�
�o)�"o *�(�f/�f6�g=�fDbKbR�bY�a`�`g9�Io�_v;�I~�^�=�I�A]�?�I��[�A�I�Z�C�I�X�E�I��U�G�I��S�I�I��P�K�I�?N�M�I	UK	O�I	9H	Q�I#	|7*	�71	88	�6?	�4F	�4M	�5T	m4[	�.b	�-i	�-p	�.w	�,~	�,�	.)�	x�)�	1(�	'�	#�	}�)�	"�	� �	+�	��	��	��	�	�	V�	$�	��,
!
�

�	
��,
�%
�,
�3
��,<
�C
^J
��P
��,Y
��_
0�e
q�k
��,t
m�z
��
B��
��,�
>��
���
��
��,�
��
���
���
��,�
���
t��
���
��,�
���
E��
���
��,�
���
�
,�2�����%��+�1��7��=��C��Ie�Ok�U��[P�as�gy�m2�s��y��]�����������v��������Z��N��q��w��0��������[��7��կ�ۯ�հ�Ү�خ���	����r���!�'i�-�3��9p�?ئEP�Kg�QߤWG�]��c֢iN�o��u.�{E�����%�����`��f��Z�����������������T����������������V����
��
��
�
�� 
X�&
��/
��5
��>
�D
��M
Z�S
��\
��b
��k
�q
��z
^��
���
a��
g��
 ��
���
M��
S��
�
�n�
�m�
�m�
�n�
	m�
��\�
Ol�
��\�
�k�
��\�
�j�
��\j
��c_i��k%�h+��c4�g:��kC+gI��cRofX��ka�eg��cp�dv��k;d���c�c���k��b���c�b���k�Ka���c��`���k��_���c�_���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�seq::IteratorRandom���Ydistr::Bernoulli�Rng::random_ratio��<�Rng::random_iter��	Rng::fill�Rng::random_range��;"https://rust-random.github.io/book�random()�rand::rng()�Rng::random���rngs::ThreadRng�����seq::IteratorRandom::choose��Y�F���<���;�The Rust Rand Book�����������Rng::random_bool��Y����>�F�;�<�;���������:rng()����:�>�F��;�:����;��<distr::StandardUniform������;����:����<���:��>����:��;�������������:�;����:�������:������<�����������������������#https://crates.io/crates/rand_distr�statrs�https://crates.io/crates/statrs�std::num�std::num::NonZeroU8�����a�`͂�
	std::simd�std::simd::f32x4��������Rng::sample���
rand_distr�����std::num::Wrapping����\�a�`��������>����&������Wrapping<T>������"�\�\�a���Uniform::new_inclusive������notes below��������:�\�\�std::simd::u32x4���Uniform::new�����uniform::Uniform������:�\�;https://doc.rust-lang.org/core/arch/x86/struct.__m128i.html������������������mask32x4��:#https://github.com/rust-random/rand��������������������
�Y�������
Rng::random_range(Range)���������4�Y���
u32x4�
crate::random����4�Y�f32x4����
Distribution<T>�������4�����6https://en.wikipedia.org/wiki/Probability_distribution�����std::simd::mask32x4��)��probability distribution�����������͂���)�������������������`͂���������)�������Bernoulli::new��YBernoulli distribution��Y�4https://en.wikipedia.org/wiki/Bernoulli_distribution����������Y����'portability chapter�3https://rust-random.github.io/book/portability.html��Rng::sample_iter����crate::random_iter�Distribution::map�String::shrink_to_fit���Distribution::sample_iter�*�������������,Ɓ����&������������F�����Ɓ�����!crate::distr::OpenClosed01��\�\�crate::distr::StandardUniform��͂crate::distr�crate::distr::Open01�crate::distr::uniform::Uniform��
��crate::distr::uniform�ƃ�\��\������͂˄��ƃ���\�\���͂��˄����&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�IAlphanumeric#Passwords��`���݆����ˇ���`��������F݆��ˇ������`�F-�Choose::new��k�K��IndexedRandom::choose�!crate::seq::IndexedRandom::choose��crate::seq::IndexedRandom���l
crate::seq��crate::Rng::sample_iter��
crate::Rng���*��Klj���k�
����l��؊����&���Klj���k��l�
����؊�������������͂�
�����g���>�����gstd::borrow::Borrow::borrow��������!crate::distr::uniform::UniformInt�gBorrow::borrow������������#crate::distr::uniform::UniformFloat���std::borrow��������~�����&crate::distr::uniform::UniformDuration�����
�������������������������~��������2#crate::distr::uniform::SampleBorrow�؏��
��super::StandardUniform������
std::borrow::Borrow��p����~����+crate::distr::uniform::SampleBorrow::borrow���؏��2����ؑ���
���pSampleBorrow::borrow�Œ�����2�UniformSampler::sample_single����ؑ������
�p�
$crate::distr::uniform::SampleUniform����Œmodule documentation����}���0�l��%crate::distr::uniform::UniformSampler�ǔ��������1�}���0�l�+ȕǔ���͂�����1�}��0��l�
��+ȕ�����͂�����1����+͂���UniformSampler::new��1͂super::Uniform���UniformSampler::new_inclusive����ڗ�1���
͂����1���ڗ������͂u32::MAX��1�͂���1Ù���
�͂Ù�1������1�1�͂�
͂�1͂@https://docs.rs/rand_distr/latest/rand_distr/weighted/index.html���WeightedIndex::update_weights�rand_distr::weighted������
WeightedIndex::new�����������������9Error::Overflow�rand_distr::weighted_tree��
Uniform<X>�crate::distr::Uniform��
�����Error::InsufficientNonZero�Ԝ�Л������&˄����Error::InvalidWeight�˝Ԝ�Л���˄�����Error::InvalidInput���˝��Л��@https://docs.rs/rand_distr/*/rand_distr/weighted_tree/index.html���˄�
crate::RngCore�������������������������������|�E������͂��distr::uniform��Y��������RngCore::fill_bytes��������distr::uniform::Uniform�¡�Y�����<����������Self::random���¡��<�����Chapter on Portability��:����|�������
�<�������:��������͂����������:�����������͂������Y����https://crates.io/crates/rdrand�rand_jitter�$https://crates.io/crates/rand_jitter�xoshiro�https://prng.di.unimi.it/�crates with the rng tag�rand_pcg�����reproducible�Υ���%https://crates.io/crates/rand_xoshiro������������
crate::rng�����Υ�rand_xoshiro������������������https://www.pcg-random.org/������������crate::rng()����PCG����������2https://rust-random.github.io/book/guide-rngs.html����ĩ!https://crates.io/crates/rand_pcg�������Our RNGs���ĩhttps://cr.yp.to/chacha.html�ժ�crate::SeedableRng����1https://rust-random.github.io/book/guide-gen.html�����ChaCha���ժcrate::CryptoRng��Types of generators�����$https://crates.io/crates/rand_chacha�Ȭ��4https://rust-random.github.io/book/guide-values.html�߬��4https://rust-random.github.io/book/crate-reprod.html�����.https://github.com/rust-random/rand/issues/699�rdrand���Ȭ
Random Values�ӭ߬�portable�����security issues������https://crates.io/keywords/rng���ӭ��ϯ��������զ������ϯ����������զ�����|�����rand_core::block���	��reseed()��ReseedingRng::reseed�ReseedingRng::new�rand_core::block::BlockRngCore�ر����	�����������	ر��������������ϯcrate::distr::Distribution�����ϯ��ݳ&�����������ϯ�ݳ�����Hcrate::rngs::StdRng����crate::rngs���Ehttps://docs.rs/rand_chacha/latest/rand_chacha/struct.ChaCha8Rng.html�ժQuality�SeedableRng::from_rng���SeedableRng::from_os_rng������5https://rust-random.github.io/book/guide-seeding.html����������������ӭ������Seeding RNGs����������������ӭ��ϯ����/https://docs.rs/rand_seeder/latest/rand_seeder/�����|��ӭ��ϯ��rand_seeder�ո�������ժϯ����ո���������ժ���������H��CSPRNG�������
rand issue�.https://github.com/rust-random/rand/issues/932�����������������0https://en.wikipedia.org/wiki/Amortized_analysis����������ӭ�����������	amortized����������������ӭϯ����
unpredictable���������|��ӭ���ϯ�������������ϯ��������������<�����below�the book on security�������ThreadRng::reseed�������crate::rngs::ReseedingRng������������ThreadRng::default����������_��������������ThreadRng#Security������ThreadRng::default()������������������������������������������������K�I�N���
index::sample��%crate::distr::weighted::WeightedIndex��
crate::distr::weighted���M�K�I��N�����������M�K��I�N����������M�0,n�����Iterator::size_hint��J
Iterator::nth��K�IIteratorRandom::choose_stable�IteratorRandom::choose��IndexedRandom::choose_multiple���J����K�I�������������J�����J���K��I�������J�J��?T�Jstd::ops::IndexMut�IndexedRandom::choose_weighted��IndexedMutRandom::choose_mut��std::ops::Index<usize>�index::sample_array�std::ops��trait.IndexedRandom.html����������������Nstd::ops::IndexMut<usize>������������N�����index::sample_weighted���	Self::len�����K�������������
std::ops::Index����N���%IndexedMutRandom::choose_weighted_mut��M�K�J������L�������������������������M�K��J���L�����������������������L�M��WeightError::InvalidWeight�������
���������
�������������
�F&��H����������������������I�I�I�H�J������&��H����������������������I�I�I�H�J�������&F�H����������������������I�I�I�H�J���������&�U�H����������������������I�I�I�H�J������F&��H����������������������I�I�I�H�J�������&�H����������������������I�I�I�H�J������&�|�����H����������������������I�I�I�H�J���������U������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>�����,7�7 \ddj�:�i*w\�ao�K��0�J�;�rΖo�V�ȴJD������^|R��g<W�jZ[�N�0h| �]
�����ػ,�gS�������z�=]{�9<�Kص9��y�~E�x��C�{H�yeƵ��S�/^�"�� �Y�;A����ZY�d�7�Z���ְ߱Ô'��O�4K�Q}Nz��bg0&�QJ*c�=�W�����ca�TR�k� �w4ѿ�ST\����	�j��Zs����x�~P�ֱ�W�����AW��m�Vf��c
�4���Rl�G�H��4��G�H�I|dzn/���.I,��
��a��'��69�m|@��Q�&v�P�
�3.6�\Dh1O��w$Ob���ug�IZ���R7sH����po�+b��d4s�4�r��慲,J�Y��$��w4��knV�S�3�.����9��s>�'
��m�`��<���ϧku�Lm�����M� �uU��o�ЧZ�ፙ,5;y[�X�~a�0�.:-m��c����M�u���:�6'D��B����*�7���>�)A7	�"���*�@~P�M~Q@=6Yw&����X�m�$ڹ����^3���+e�z��eԪ;CZ��<�<_�c�#�� ��O�ΫApIk�2��1�����96-nGՌ�m�h
*�>i��ֲ�z������S����
��s)�^"����LH������j�]��@��H3�:o
�O���?�2R���O��l�GO�.ĘA��?�<�?�"�1�Z��
�Ǝz��hcP��ԙ,CJ�Ŋ�7J'Lom&Y����R�mYQ �E�K4����AHE��ՠ8K��������%��3#p��7ʄ����ː�����V+�r�$ +��S�+u���t.?�E]څ֠���_��/�cw�1<��'�_%=D킼���X,\��o9�\ηJ�z�=�k��p�Z��5}[鹡�g?<���@O�t�0Eg��7le�k�r��?^c��-y�po˨;>T�$'hv]X[��T��M��/��4_��ףt�pd!*�G�ʣu���(Ns�u<،ص��=�!n��j�z,Z���>.I��b'�.CCm{�C�L���|]���c;Ü�/�x���
s�I���A��&��k#��ࢴ@�x�0}���6���!���
�gB���G�
f��E���M�5/M�[�­3"H!�kC����J�lۏ�1��r��V��v�4���g��j�����a�8�fB��0@��3t#$��šɌw��gm��E��TA2�ϐs.~�,��9���-����P]���C[��S���$a��g[,����N�dj��{ʼ�
e�vW?�b}���S!
?m�Q9Ӭ��
��l��O�����@2��2R�=�����| [�����AU>�1	O
]�U�6��<��Ί�D������9�����V��H�l@��)�*����Ѽ©٦��y�m���aw�4�ceb��Sƶ��6�m�H;��;��a���a��Jce����g`S�t��@������WUy݋N$E�r�L~���S)�[x���ώn�R�Q�j�DX:��UolV�?IZp5�b�9vk�&�|n�{���es�����סA�W}'�����!��^�.��B���0��^W��������	���s;ً3V�<6�
�;��ʞZ��\x ��~���Xa�o��؃�ϥE�tʚ�	����J�
$_��c{6�u)>KVͩ%���ɨ��Ӧq�앧��14(g�N2�7�Jk�C�q*[d[7L=�=
�UCX3�k�5|�ѐ�3��Ĭ.��{$��"���1��{�^�Α�;�(�O�2O#�`��m��¼6 ���7�ـ��Q%�3�*�v�+��V���p:
��VC��4at�a�ܥ���S�� ɗ�7��Z�|���۹���*�WPwź+�'t��JFQ�Y��M6���q��7R"�e�P7�����w��Sb�E�n1�5*y���񻓾F�^�R�PZk=�k�2�
�E
�i�S'��>��eh[~��������vl�Q{�a��4/���F���
/>~���?�F��^n$�_^�I��jAkV�X�h;d�
<��b(6�J^gʚ�,���D9b����z��c��f��_5��'3�q@s1D����Bw�Q;O����_��^�
L<5�vjM?����s�VƱU��i�����MM�g^�-�J�7!���^���A��_(��1��Û�����d�JV6Ol�l�״%a����pC�������f��!S g����6C�0�A	��l�4L��[��`�s�x6-(Y҈oL�[h^�XmuT�������ԕ��o;.�a-Q�K_�� �Ie���9�)��5�����
�g-e�;��|�8�~�@|�HB�T�G4��Y������8��n������wA�4S�p�n� =y���g'�nF��4[��Θ��u����^~}\ljEܾ;��y���N��W�Ƽ���;���ڳ��06�0ι?#"1r=k9�tv�FT��(�Gc\7Mߪg�Ή�2_��0����y5�5N?+����j�l(�;;l^�����_�N��]M]�T�(G@�!��Ӏ�>��VB�).\%�O��'�Ï��ɶnH�?�2�;�����m�Ét�����M�[�R3`3�"�@uZ������f�6��U�5���X�՗͗0K�R�K#��S�6#Y�^VN�!F��;B̮(�_�z����j��V�%I�[kB���.�ߞ���_D�����T���q�ʦ���$o����D�@Dyxe6�+��D���wX`%%2����l��1�ҖOu��U���q�y���	�mS_%��|�m�٬s��#��i]a���{�mͶ��k��4k�xq�1y!�S�‡��WN�lns��:����%Ǔbi�)D�T
����P�"��
UǗ��-9n����B�ģ�&���g��"U$Y
�x\{�ʫ!�u����QO��}I�tZ1���KYI��(��^������4�)U�7�/�
+M��3�����xsi'I��p�L2�<+�v���0�����bzz�*��)�����RQ
q�9�L"�DRb���q>���:� 1ϕ�l��,�.+ө������2�NKz�B�So;Si��kT�:C\�v�Z���w!>ﻛؼCy����wՃy�6-/a��t�^i�V�	Lʤ��-b��0�"�#�5�p�KC�H�յ,ꀙ�G�^*RF3�8㴌]=�M�(���/���5j'L�����&��I�N�`�BB
g(J�$��Ei1��2-���'[U{��s@n[��oŘ�������R������lO ��dQ��_�~5�$�M����� ,��Y�=����C�#�W�v$D8���נ8k�2*���.�	��r3�Ld۲!=�P� �"�F���[KOP_9��=+)xD�Y��aK�=�5���O;x�p/�*�����\/��K����2�n����2���Y�/���|�<XP��9�pk�Izc�[ݳ E�1�v<�0�xG�d+B��aEV��yU��ȫd�5��0\"�nط�kuu
�.RJ�]�/;�٢��)H�#�6��q��	`���=�P����:M�"�N�7׼�����E�$��GF�����f66��b�v>�V�5�(�ճ��e�xV_^�����6��I:T��̀����c�����9
�U�C���toq��.�Sz���D+���|��������Hp$�����;ݴ�=D�Mܢ�w�k4@���?�������@}��QLǤT�m��\3Q|-���k�G�)l%�c�N����F3^MGS�E��P�|��ST�9F^�4�����ɗ�C��D��r;�
�';Wc��'���}-��db�6/���c�Kt%2��C���Z0���5*�M��w6��B���Y-�VO|�y$���v�AV7ALF|����/�br��S����|�p��a�j��̄�ڕɚ�)�����҈�*kOBk���'˜�fF�����&G�b>���I�M��-E>�T��H
�[�;X��%7�=!�a�H��݈�%�d�@_$5V �tY;Pa���i
�_z�y���\�^(��]�q��!�מ�Z߬���@s����14X9wB9�E����@�Kl*�{64�ڤQ<�0�fS�|�z�v4W<��Vt̕ց��3@�k���doM�
�K]�����?���N��mJ{Y,K��ߡm��㺰�
z��,�#�O�%�8O�����Ш���,m�����l��Ci�z��W+(�H϶���	<��s,���wH
�4�d�1��=|�����"��E�[�h e�e���^HPzK���Insyq�r	���Z�s���֣�=��g����M��ڍ2gG��Ih���l�s�$�����~뚩���,���q�
� O&Jf�.�	"x�C|���P�>�_�"}.T&�g�5�1�g�=���3$)�
>(���G$(���
ѹw��1z|ی@�	��V0囝�.X�^��{��(刬0;xJ�����|%�Z��߬�m~�3Rfb���8�|P�<�i&R:yS^��f�q+���u����ά���mVk��r�k���_i;\_��K��A�R��ʏi���xv�M|G��[@3~�0(�_����ÞFþd��P]��g�2�*tI�va+�~#�ds�.*0:�c����L�pl�^�;Y�-3����kG�
/j3g�ăo��Nh~8���l\&b��c�&`�n�=��IM	ͦ��.f�S�S��&��XQ����|i���h�!z�2��4�@�'}�^O��䚴,����́SH�\D�`�G�4�ۋ�
<
RE�c���9I���Ι��֥G��K�5O�6k`�і��|D	�V��X�4��0�|?�'܇]װ�vD��r��2���KЧ�d��:�Mn�-ӷ�կ-1���~p��o�&g&��p8DUf��.f�HE������-p^��a*f�ޏOw�蚬���~.���j�j�>v0���d�����ߩH$��
[d�փ���O/�E�y �e���z��P��{s7!�Lv���=�ˏ_����#4R���PI�����e�Q�wL��[U1��^��՞k�Ɠ�R��sS�Mb����ߋQ&�'$�2Fg{<�я~UD��gn,�4�	PC��!߱�r�S'�<{�`s��إю���*�r)n�
$��y	"]��L�&�`<Q̔�y�+��_/�x���	���z���W?Nz�+[����5B�j��� �;n�xjY��nyK�� F�K�t�=��)(��-
�[@4Z��$��Bwյ��I��H�
'|�#��y",�w_*���\���’FZN�/a��	��R{��1]&/q����Oe?4�N�A
�8jnc���yV�����A��F���P�_i����6߮o|�/���6h�N[T�5o�N�{�4Ӡ�/�0YN�{	�<X�_'������_i�:��"���Kީ:��W��*�F�jKRҨ�3㙪m#�N�;&����s�	�V�r?��+�������D�<��H^W�*�~��<Q�c4���v���=���/�b!W�$����{�t%���Q��\�>~J�?\�_Bq�X9�P�����8!C�?A`�'������������f"i>z�3�~�Aₚ�ꯋ�ׂ~ �G�e�Q�j�����.y��f�[���;�n�J;���].xN/��E�z��֩R�b������̟kG��to��g��ݚ{��8P��,��h+�<Q!�$n�g��U2�N;NԒу"��q�5���ѫz�;Q�L�č����.�C�>��F�8n*$���ǎ���AG[%�7ua׎�֎�E��(�;�|��؎һ��=¼Bou$t�]��{�!�Ώ����t�� ����볅�t�·p�z���XŨ*2�������#��^�"�$>r���T�n���W8��Дأ��F��I�u�+�/�}��|ﰭ�͔詁�t�r�����f4���&��L���
ne�TfMM9J*��`�0vκ���Tl�q-�r#\���ޡ��g_j�n�y��l�i#yi+r�4	�G�U~�"�o��A��
1��#��ã��X�`Ma1��F"�V�(����t��!�|�/@#�I����Sဂb��:�<\+�0��8b�B�(1t妗��10�]@�n�? ��CO�hfj��Ϲ��"������g��h�j4cuM��w
��T�;�eP�h&�����h�����uԂ�:4�4�[uO�ԣ�bt�>��bh�̨*NX1���[4
� �3�)���&w���0���ՠ�P��dF��3^�M)���W�3��b1R��^7���B�Lق:W�艴�����A�~`?����>q;$�Rڟu��� ��?:Ӣ1 ?a���I�QL�"h|��E��F}��4� �ώ�~ۗ>�do�Rq)+!�0-�S��f�J�q��'������o5aV�4��ֲ�� ��v$Q�3�֩"߮լgCNu��y�Sڞ}���u�nVc�ʎCq�|.t�f?6�a�p�Ǐ<����>�8d��3�Mͧ$"A�y/��	��Z�H��xV��,�l�3�1ul���B�-�ol�h�ȎU���X��`�=ȓ�)~��Ƭ�N���
�)�g''~��A�@T�P���Rd�>|3Di-8Dhf�@%!�"?�t�Hx�9���N~˶���܇�Z�~�S���g��F+K[�D��Z���|{�4$���)����O�N��,^�Q=&��q���'����h�;�N��8:r��`θs--,Ɍ\���͎٘��z��������
Y�j�Jh1���Idem���$��x��U������k������xN�D�+�Q;,�TP�#�)�Z���L�����X�F�/�O�宽=%�0�qW0u�_�Vi�M��B>�9.�/ ���h�Ay�g�Fbݗ,f>�J�<6ۣ�
�{^�eu���O�~�o�V���=��ʮaܗ�]�����^��;@�,��Ы�O��<D�PB�gz{���˽��>�]0�Ҥ���ب��%�H}Z�$������܌Q�N�����&����ߗ���4�K��ý�Y�@����N1ւˤ��'�����Qݱ�8j����Ŕ�"p�k�rܔi�p=����qe�5��u���r&za����ݩ�y҃��c�/o�WodQ��SCԈLC�K`N5J�(WxO{�VZ�m�������]ŦZ����fm��8@��_[!�$PT�/~`�x~B�Cy阘�����dWFj �}��G4�X�Id@
ݭ�/W��%`Z��0i(x���0�
���ch�4�Ձ�㼛��Af^E	�_�f��a
RXh;��C�FQ����^W�$��[#C_U�������\&5�C
��{�<�5v�r�W��j�ԗ��	���`5���6�N��������0P�Q�k���yw�Xg�n1� V�lw��;WpJU��'칀֖u���R)S1폄ho_+1G+�r�iׁ(,1�߼�,2�3ߕԓ���^��?���&8=���^�I�ſ6v������}/�gUY�@�8S#̾e�y\j;�?aЊAˆ�[b}d���p�(��]�ț�H�sp
��%��іàүK׿�����U��zþ=6��ï����I�?5��b��O�����J�ڮ������d"ׇ�Ӛ�ON�"���iD’��P���t^t]�d�C�:B48
H�����>��k-5�	�.�{���f��_H;�.&!�}ޚ0��#ыX�?`���*���RE����C�0^o��r�9���却AIdv}��� Ջ����I���Jg�ʕ���b�����V��@��y(g�w���&���>�W�xR��@~F��KˁOl<�2T�M��z,�勆�٘y�	�A����h	o}�AO�����S?�Y�zw���rI�����D���V%��e=������Oh���Dg�g~gO����^a��mU�0�b�����3�
g�2W^����6~��JhVÃ�0��Vj�\eG����9�٣���Q��
lg%���#�ǘ�Ap��<!U“[�At��W5�A���k�AI`+�nRX
����n
�G;�wt. �.�i}�Ru��}+��׍{�<T�:���:����l�3��/�����w����uFr�@��:��W��ۥm�i!k	�R|���
���\��9E���v��Th9-/Ý�H���ڒ���u�M����]�;B�I�">�h
����(����<i�R��}'�R�9|�
�&*c�|�4!a�3�H��aK���^�ۘQC�xZ��H�HU�-ԯ)�"H~�mg�����2�C��'E�_����xG)*���%T��N�G���"/o��H�(�\�-�]I[02>�??�����8�8ܖR�Ȼp�l���9yt+Ɍ����U����7BEL@��^��T3�{�hD�1�����W�XՇ�~��i� �e6i\x8&u6gȖ���E�]p:#�ໆRc�YyZ��+�h��)�^2..��س���7��H^����͗��<N��	�13ƺ���2Ad�r�iVT���<��i��(�.‚���k�⟮޻Xl<�ɵɀ=�J�u�V��(�A?i�}��:���31SLoϯv�!Y�)ݠG�HؔSf����A�p`����8�[9�&���C@��2�c�	���5��(!����
�����y����D���
"G�����
�E�
5Z/6n�ev�VĬ�߿S��X޾��T���idcw
����:�j`SѠ��ij�I����T�s2%�"Љv�+�����
��R�eӟ��\��M��*%��~�6q��VWո����l��k�aI�vI�GKpDs�u�B��XUS�-f�R��>�o]i=8�� ��u&���Z�):3���p�,��,T��I�;�l�1�!K��%���[*A1��];��V��u�@�g�ǩ�[�C��P�-�'�a[I��� XMe8Y��%!]�TG�P̻�e�T�_bn��?xf]^���n ���,�3�^��!N��a]D����㜦���6g�LJ�o�&St>9<!�0�}�	��:��P���p� �Q_lב�U¡�u�k��*{m�c(����$���Q&8b5��9�ņ�^+Ll�5��	��Ҝ��������|��)V��?2��˕������|����G�R:u/��L�<��[�"�tG�C�V"�g�ak������� �G�_Y�E��ʿ^�Mt���L��BX�ʉ7Ule�d��8}�N{��le�Y�of��-�?��b�@���Z� �vy!�XT���zMkD�|�5�w��f�T��iu�y���bZ'<�
jq;��wV}�v<��^���}\%\���T��b�36����{)�
�j~O`���i/��"u/���D����~�>�.=a��1�/���K�@Ptmӎ:�vw+��8v"���8hk�|G+ZG;���@�F�k]��|W���ņ-Y�����CM�TR�h�֏�~��S�B���r��/�i��)��)��)nXڙ��a�)ɽև��J��
�)�6X�M�kH)��|�y�3}���.uɒX/%�y�jZ��ѧr�n��4l�X*]lcsq���Bw�"+w����O���Ǧ��V�=�Bh��a��ԏ��5
�ߟ.���J��p<�JwJ{�o���֤2�mk��R᧵��}�
P�=?����N^g��A�^tX�䫘��'v��'����6�C*6U&}
$Є���Qx�gA�;���>�QU$~hQ�r�e�meH%n�JU���&�2��Mi��d���z�|D��NG)��jiUVX�]�@��&u�`�Gm]KL�e�Ev֙|E7�,�pKrU&N���j:�Qi<:MJg�׽�"�dr55�$I��)Xdh1��md��x�	XTh@�!�d:��jRNY��K�Gԝj����y��T�p�J�f��;<����H���<���v�(6����e�l �"%=�`M�N<������$K
�v�ug�~��x�r�|2�j����b�\��!Ż�Ra�C�H�̚�u�a�����{�=c/i�:�~঑���x#�7x�����3�7BLE���[X�U����$�kE�jb��EV�P
��/WS,��Y�$�>��1��5�`R�=%��1�\�?��
����
oA7Z�AD* �'��U���Ǜ��w�!�_���َ�:-���l��>��W�n������tp:;�J���T�0�6dT�jIbA��_�Yuj���N�G�lk��<!5��O��<�ھ@�Q��7�0��Y<��l���u��'d�{�f�g���A���i���AV��e�~��`G@��C׆���'�$�ҋ���=S��w��0zD"���:*���p�����㶍$��c���|�l�?��ۗT���0���X{	����2)�WŐ�_w*a�f��fj���ъ���k?R��KU�T
�yװ����.�(rO� rڤ\��9��x��蔸}�{�i38�C.f:d�F��"���?3����_�c0���f�t!H���w��s`�-���L�k���t(?"�{����6Ns���Ī1rv@כ�O�r�O�Pz���(�߱l�+nD	����8C����Żx�覺_�-�cW�z|���Iy'o1�TD�5�}n$#�VIA�n��JO��R��'�%�)�;�nzdRD���7��
��C~��<��GKE��-A'o!�7�����ݘ���N[�IS������e>a�	�ZNx�ȕ�-8���Z6��O(їrƢ��O��q��\�Uj��=�QG���V�Z�h�A��&�b*���	��q���L��su��C� 2X=��O~����7l�e�
�\�c��z�g��6�~�9l��{�(;E��F9��I6@--�{m��G�g�{c��t E�B�.A���&��n���4U�����?4�Y:���TB׵;|8=$�@�(��5W�oV�y���S���c�T��/�0-�����zt��_\��V��!1���g��G�m�!�
O����R�e��x^ل��
ΧX�;��X`�
�:b��9ße;^������	Ζ3�`k��d�nIv�.�,��̛(��&0WXY�V��7e��@�o����k(舋�9�W�����ߘ�}S۸�'@�
 �z{0�]-\(3ar�7a�yJ�U��蘋�*+��6h|��j��wM+�n3?C���%���&~����k�8aW���޺i.�THE�F�]W*#Y�*&��L���G �6.S�K&2�	�$L6^8lp�F��f;��{p
ر\k�D�Wx*:C7�8��ˠ�ss���dE��Q�%������3���\Hfڗ�����չ�G?�w(���w$����)����t��O��c�g���H_�ؤԁn�،}�79WS�xi�U0�:��͓N;���>~U�33�8�	V����=\�K����i��p�"�d���i��8�^o��ܟ��p1iP
�W���P���)c*����]��`��9O~����Afz��@w��O���ԇ����~�rG��2��^h��@Ϥ4%��]3��:r���N���[&�17���>�ʔn����N-��S�VYJ��L�?�������Q�\+�g��m9'u��*b���=��Ԟ0)r������Q5�W�uķ��X�I��u�}g��ba���
��_/�
��x�nX����ľ�v/�qxd�T$rS���7�N��:�n�a�K�3�=�}�Ɯ�r �ᵷ��]3y�S텋���-��`�7},�H)|w��45��|ڂ\j��Nj����*�A��o�P��1�5�y���d����+<~��@����X�O�r;Fq��3�i2��Q��Y�AuX�׃K�pލ�jA4"5k-詡Z?!�c�����8hf7�j�ب~^�̅3�_�;�ge��f�[w���F�96�,�|$-�;��3�u(3���*��fض��t����R����a��l�6j/��θ!=ĺ��Syx���Dq���,�i(��_�A�N�R����h!�IQ�|�O�X;)�
���S����?��l�Y�z�b
tA[e}C���ì���$P���@b١�K�ԡ����]Y�%�w�CtT��D)h�	qc�,"{@1I��ٺM��S��~��]�Ln讼!����7�V.���D���6w˫Py�^
����� ?�[e8\�.�����VM�3������E��#��&�E9Ƕ�	�B8����/�ĴκȀ���L.7Gyz���=GL��c��XG�.Z(=�树M�cO�̻^�SwG/�]K�E�V�z��l���F�
m��E��O<�R�e�usyT,��O��i��E������2��e
��ȶGXe��D$�Ѥ��/	���{���mq�1!�Ӧ�#�7���\��Eghf�_����Io`GD�M��Ī�}��^A�'H��䬰���Ɠ��|֖$�&4����F����d�*-i�Sv���)6���O,5Z6�$\c 6�챍T ׈����G�ր"FP
*	V��H�wr�Nsޜ�
d`8��(��3)W/��ML��k�!^�q������HGNоWG�������F���{��7��e3��t�|϶æc{����:Å�gO�������(���y&
z�E�r,�Q��s��[�ߊŬ�}ЗE�1L�ocL�9�)���n�n�y{�N�3b
L�)�M4\⪅�˂;u���7���!ɛ�{[i�9Y
~v�́dK�P)����ݻcj�j{�EJw�����%sf��f~��%nu����wP��`&/J��
N�?��|l���GTQ�
�6�ü����1��.�Z�+��u\�kߛ��\���sz`�P��X�]�(<t	pGh�n����v�m�o"�/
C�z��,u��%�e��׍���.@�S����$|��EC,<�(�����"�T��NW �hn��n |�����xsn�y�>%=	W��m�ĵy�
ȟ�lD����Ϙ�_*�����_�_�nt�)�ƛ�9��?�%ƬR~��Ky�$)�L]��%���1��9)�R�B_ � �^��֛PT�^�+1,�ͽA��ŸY��Z�X�
PYps�u�J)����k,���b*t��EC���\�cnԺ�0����lYQeI�]�A7!�~3C�
;'��.���.��O�|���+�K�]f�b|Ws4����<}xq+�k
�~"�Gϥ3g[��]��$D�]�AE)>�L�����S���uO�Q�u� ))w�%Mb�
d3i��Q3�f�͒kR�S��m�>�L�T/�展k� �1ۏ��#{��x�z;>��=��Az`�~�
#����	pXZ���iy&`
B��zL+op�S��MY�*BCqyR�%d[褙f9�p�X�WL�k#����Rq��S4i��Q���/�7H�@�jr��¦0�☫i����)�䨳��:��7M�D�N䊚�܉�&������|�N9�6�'7��k���t�>�/�_����T4q�z=lj�ة�$�Et~X̻Xi#�'�C��⑳���9]5;+4������
��~�z0�A��SD���<(���c�|t<��r���ZH-��s+�ܶ��������=u!��x[M� E]9e��y9����Α���l4��)�L�IHA��X{�gk� ���y��	�N������-,���F8�Ko_	���4~50C�񙺫��|צj�a�?Z�����1Jg�D|�-�MJ׽T���hH�vܰ>�ƍs\�@���>Hj�LXI���?]�P�"FJMݮ	��gW�??@`�a��H�X�R0�	�~�J��誼���xU1�ӡӠ�u�������~���y�B��R�<�B������	,x4l�'� ef�[������m3��Oa��d
eɞ��c����k�����RԎӧ7�j�2�n����򐋅�F_1g~�d�
��~�@��A���
��aa�;����S�нƠL�
V~�g'?�x6v��$�ul���z��;:����Ē������4�.�S�s�7p=���3��Q�=S�$���'|��:SQgR���v[2�޸E�QI����莑*��q�7����<m�O:���TX���eOֈ�U�Q�)� �LX�d�]�+�WLer�ᵅV�RRT��Y�H2b�n2�rԷ)���DB�\8r.��u�� ������G;��d�t9�9��W�HE�f���/z�?�f����v0������&�-�#ɐ{s���R�p�E�!��@[	:���ѧo#�?P�˞�{�5�Q�LOj�L�v�h`9����u�V���1oϞ�b$��(��H��=:vi
�T��{\��>,n9�l�e�t������j�J�bΕ�Q�5��e�E,HϜ��75��%��14���	?q�b����͓9 zQ�B�kޥ�G��Ɔq��H�h�t�7u$e��F��U�^2R���b�2;���#��N�Av�怂����h�8Iwc�q���޿���غ`ᡛqq�*0��[������v��AL��=�%dOfadZuAb���3�3O~���Xn���&;����ニ���(�p�,<ژ6��/]�^c�v`�ٔ"�yTY�	�q�I��M��
�^��f�ͨ���E
<�t�@"�-���z��8�+w<��v�K�5X���e.���CS�b{E"�8�1�Pb�u�noH�+��D_`�Bi���e[�/���u��R�W�oǎ|��sXKY�NF$�ږ|dUq!4TB�I">�̉���v�"\�Y#��$���o�Ac��D2tق��X~U�(-wK�Цt^�x��Ԧ0����0��~E�����(�[��ߎ^��Z��b�Ђوҕ��T���(�(������zRzs�\�tP��ٳ�^󛋋[�	�}vlfK�u�U
����T��\�6��<X4��hO�8����m<�����0��Z����K@���$�b"�������ɠ��&'�Zsh��q7������h����R���7�z�Y��a�=��5���Mc���`a.�e�z,�=�~��PV���Z�[5
u�]�r'"�A{,�����F�@f�H�@��G��2~��S�Me��FB.y�P�
���d'��
҄^_\-�1D�@f��/mǞ���$2��v�Т&/lײy^��,�;ۂR����˵���B�P�T�Jt�+�ȟ�[���,�v��,�n�N��6Q�%-k�K�gr	X�<�SVҡ,7(�=n�����UT0a7"�~�9���T��0��:��~����s�K)����{w$!ó:�)��ZqÚP��m·�"3#hEŮFm��R0�L���4Z���a
5�����)�7��?�3�1퍵�.F��}��A���&�}�٪�����R�i
�B�F���
�7���
Di�{���S&�%���kt�	�^��P�e}���>V$����$��$�c�QS�;5���]2�ҳd><ّ�*F/�{%2Q�<���P��ԯ2�89<���� �O�<��_ԇ��F�Ɍ]��I�Lx�4�Tm^��D>�k)��~p�����-�T3#���S�ޣ���:r�Y�V��=��s�Q�%us�5��/.�kqfw��W��)�xޙd�^���y���h(�]�ӝ��� �ɞ
UJ�s�`N��݌�̏�fk��`�t�����-:���P�?���_$���Ѡ����lgZ�N����5�k0����������y�§�qQ3��������ꍭ�D#w&�J���1�rˍk"�:��שpO��Ǫ�%օ�g�%\����,�V	�ڈ}Teng���隠�>*1BR�hf���j���o��[6����O{��n���E?k��P���
[پ��Nٮ�U�w��?��s���
p^|��{�P?�z����
�PD��K�j�n�f�L��3�`��28p�_fq�/'�w���J�W�E��f�!�M_t4@������&�J�
�)��F���^��Y��=X3����g��O0'�qp\���m������BWzk�ef>н�H�ʶ�Ё��D�u�
��63}�Ka�B���g�r�C��uUJ���:���Mc8�����=�yEZ7�=�:���(���x��(U>��bbx�����$S|Z-jSz��4�כ\�嵡xP�V�?=�k�%��LT��Q��S��4X�NM�k���eqJQ�n�
E�H�V�ܤn��^���{��zp�O��݈>A�>{���rWR����H�F���<�ajrc.F�'Tq��]�NxpK_[�;ۢ���xX���8�/D��,Y߹��;�j'�u�@�eɅL%@�������%\M�bC򷹊�q����s5ho]h��^�d���5�*�)-������NB�W����HZ\�sa�	�kv��c_86�,��1����5fH��h� ��iG�%p�䶵��!���kw��DDv�E�@�}lTδ�O��W�3���'�,O�fä�I�H���*M���!"U:��Z�*�=#�3Ջ5aV����_^���2�9��[q/$%��sê�h'�X���?c$�-�����p�l��M>��4-�^��O�\����P��Qb{Ց+��Hu(p���M)�:4[�t��[����{`�E�,y/'f�6V��T��|��B"j�Ox�=,]E�M���r���I�l
��+�+� ��%9f%��k��㤓m�4����*���>�!`e~3=���LfZ��mI�����mo�4��9��E�Y9+Y��:|.<�J��rIվ�5��Bst޲Nʲ5?�pO���+�O�����J	M,�Q�}M���9~
�&����t~(ɱ�x���,�'d���_j��R
�0��B��td+��P4�cN���+	|�B����9yƟuy������o�5���C�~��9Q�RB��(�S{H�Ӭ�:t��`����xq�޵��oXh�l��b��3
8x�Y)�J~@-E,P�:����p�DR �q}ޙ�N�)l�t@rɩƴ��=�w;�?b�%;??a�.��}
ZE�ʹB���F�d�1�jI7Ϛ��g�T*u��,�4�5f�
�5��th�m֧ے�*����3,�q7ˁ�"�p����|D������M����z�1�	$�uO1�v���BPC��9dg���E(��P1jp|=��:��z-�
߈���`i�`+�/���s��N����T�2���Dr�z�c��*��d�J��B!)���bIxd&|�����݉��m�P#��E
�Z���5}2s�È��6��VV,������)�ґ����!l[���*�SÙ8R$��U����b�h�gt+wqOb����.��mf������z��q:q���x_���K�@`�����@L�'1vI��wc��2�]<f�����c`�e�Fj�V���`Jjixš,wP�p�����W��d\9�5!�B�d�}�����#�A����@��4k�r���
"���F�_3�'�����x��za���A�M�O+���Yhq�
$4f�Cy,�̹;y��Y�fW�v;#,H!�ND+�1w����.iM�h$�~9")[�c�.S��n${!��j��ai�pX�_�e-�T�vݛ�vSzϣ�v��Z�ڐ�EBvi�֦���R�b"�P�R�40���T~���G�d��Me�Ζ��ɐ�Uu��+�N/C6��:�P����t�[���-Nu�97�WO������E�I����������k��A!�qt�&a����1b�}mA���r���ǩ��u���#
L_��������$І�b���~������ا:p��y �I@��rؓ��X�ۜBC%���H@3�a���n�o~g��m]�~��}nZ�BhE:�ۙ�`A���4���)��R�I�Qy8e/{���Ժ�Ҹ|-$ �0������,h��'G'b�if�Ĺ��7ܪr�l���%@������k��K�)U�i9(�cܨ�K�+��Q�׎\�Gqx��Jx)� /g�QC/^�	,���~��
r�t}ZP�R�ʩ&���}��pd�m%�
�o�5���\�����$��S�#�	w����ȐKޓ�l�E�#&�1uP;�䦗�J<��V��*�-a~��m:��,IIN�������ѡ��]����$�,�G�c�kVfRy�h��ԅ~�B������J�АmHB��p��!{\q=*��%'�v�(Tb����R�r-�mմ_@�'l����b���Dr��/��@���ܰ#[L���j+�K�:Q���|�7to���&�QT�ƅn�d�o�vW�fO�nHu����61`�
m���X����=^Ee�޴����s츶��A�|i�oŷ��O1WO\���Ɇy�Tw/
�ʘ�����;���We�������B���j����r���?�m�,�#W1O]2�B�v&W�֛�nţ��otn?�= �E���
�R�,Qo]���F"T��G�Zϱ��/��G��2�E�u��D\v���n��q��Z��LR)'���:c�a�
�E~������@�MB�8ж�#�?*��A�}p��n"�������_q)ak�ޮxj�`�X
&�fN��{�(�Qs7G@���k.�Y��E\E?B�s�y���b��c�]��9U%�>����U�6�xv�;9k���^/�ְ]�^�-Kr>���3�������z>/��N�*��B77�.�N9s3\�Jߥ����X�X�ґ��]tj�0<e�ݩ��P���T�"!Iz��(ݤN謨0��� �H�ӹi�I=�
�g��"nu�����U~*vBmC���wh����P�9ʵ�̸���!�E�1��~BU���,�wN��#�F�(�
��M)��������3��3FØ�P�E���<�-i��B$��#�}���8�n�T�^����ď[���-��j�'�����Y�@A	�NuS (0h2>��R׭*ƅ��)13��
?=�N���*c��kB;�̦1�W��CoB����u�ڥ��g��l�BE17.C6�ގ������ex��{1����/�ϊF#�p�H�����V8Iy�*�=���i��������/4�3�j�($��}ynW��z�*<�:ֲ��P{����<�7ӃW>K���G|/����r��@�O����!Ld/��J� T�1�R�Ї���g#b�h��_`�Q�p��$�$p��H2
�D7&S��=�I^^��M7�|�Ah��dp1,���1��t[2�f,�OF��W,�皬��;%��ͯ{�gJ��1���,������`࠸����U,��t���?�za��(�݉��&f��N�	ɻ�"$2ZS+[S+��g�_�f�߾�{�hR������`�⌒1�V׻���j�q�Z��2�
-����j�|�v�C]�Xu8��rTQu�����:K�A��5�52:�\n��DӉ|��_܇CC�f~j�$c'B��Q�&ֺm�yZ�<�_X�_���枳BQ�N��qU�����\�{.$�/�����V�r�н�ڙW3�1����Ų��������Pp ��{��aa8w�w��*���kNt�v��V��C,'��	�r7�{�Sh9Y�c��0r)d�E.��qz���&�%#G��u�.��!T%��s���"�#2gdvs��gJ�|>
��2����-
��{Cx�;i��`�կ	rƲ���r��C�;I��\��$z/Tjڮ�Lw��Ӊ�0۩�/�"�^��}�1y���d�,;��:0!�30��a���]G�ˮ������Q��j��0��V>�����oqeUD	���օ�ēo�|9�b��+����
@:��Q�
���_Q��>��bgI�!�C)�x#=��
djri��cT$ЂE�?��\8�?
�*�����(�H��5����`mc._j*ͪ�t�a2
��)>���W��oG�$m���_hSl�}�ss���^�Q#K����f����y�d�胕bX�K�]����՝ ��_jn��>��_��J1�W{iv��F�#�v5��;��3j�� ��\�2
B}��E6}�f�N
|������b����r:�2E���DO��2#H�%��lSN�t�m�~�2�},�����SSV4Nq�ڴ%�Fπ�!�u4�h�C�eMMఃPuEm�#�<�%Ӷ�Q�.<�^z=D���7-(��%��]�͌�G(�� �C�����(R�;�86�L_����mt*�z����SL����+9�3�s����Gf�b���Ȑ'$��.#���v�155��[�[����kx�q��2'�+���Pj�%5�j�מ��K�pdxhZ����_w�Kȅ�[����r�-Q���“�4]��4K��c)_C�C�����)wC�CM�����v�������N)/C�E�FCG�b���V�_��An�_�����e	������T)5C�E�FIG�h���\�k��Az�k������	�B�D�-�.�0�4�6�:�<�>�@�F��������������QR<
h[
i��
�|���[��`k	ao�qJt�w7
z��"��Q��	������!��5�b�����M����%�:�V�y����
�I�������z������!��
���C���������/�����X�-��s�T���������
�
h�6����4v���������w�0F`}/L
����;�"P&�&z'�'<(�(�(�)�)*�1H@�B�CDZD�D�DE[EtE�EFSF�F�F�F
G]G�G�G�G�Q�Q�RSOTUpUV8V�V�V%W�WZX�VXPikj��z�R�k�������<�����/����!�����'�>�Y�n��������6���X���Y�w�9�R�m���������P�9�W���r
�������z�e��
���	�D�}�<�����H�c������\������w���;�����5�������E���3�������D���N�/�����;���T���R�m��n�q�P�B����
�t�����(/#J#n!&�+�->1�!3v8�;=3>�>�?@�A�BFF�F�F�O�O�OCP�FP\azbce+f�f'g�g�g�h�h�ij0jQj�jJk�kSl�lIm�m5n�nFocoJp�p�p2q�q�qr7r`r�r�rs0s�s�s?t�tu4u�u�u<vfv�v�v9w�wAxqx�xy�y�y�yz'z\{q{�{�|�|�}��P�m�����#�u�����E������6�����&�����B���
�%�@�\�����G�����0�F�������D�������������'���������.�k���o���"����������=�~���7���&����������f��f�������
���3���s�������g�����[�����#�@�������3�����U�t�����^����j�}����B����0�L�h������r���#�Y���������-�i������L�������)�k�������&?;m�����6Ml.M�~��%��n��7S�W� � �  !�!�" '?'�'�'�'u(�(�(�,�,�,-'-�-�-).K.g.�.�.v/�/80V0�0171�1�1F2d23&3�3�3�4�4N5l56.6�6�6�7�7W8u8989�9�9�:�:c;�;&<D<�<=�=�=o>�>0&?xF�FFGfG�G�G�G#HsK�KALaL�L�L�L M?M�MDN�NzO*P�P�QtR.S9TUAVWyXUY�Z�[y]_^A`,a9c)dcfVgzg�g�gh7h�h�h�h*iNioi�i�ij`jxj�j�jkvk�k�k�kEl�l�l)mrm�m�mnnjn�n�nJo�o�o�(oTvpv�v�v
w�w+x�x�x�y�y�z�z�z{���B�����7���%�|����[�t�������/�������6��������5�e�#���E�T+��������N�����6���%�p���2�������1�P���R������
�)�{�������X���:�T�s����������,��������.�h�0���v������Y�x���z�6����2�Q�����������
�b�|������F����T�������7�V���X�������/���������^���@�Z�y�����$�����2��
� �=�Z�w������&�F����.�����*	������q�����Z�o��������m��������3�S���8�����/�v��������c����������������0�E�e�����\���c����p�����Y�n�������G���\�n$e�9�;/��[���5a	a	�	�
�

�
6*
�
�
V���0\�\�|��:�=�M � !M!�!"B"`"�"�"#�#�#�#G$m$�$%&%D%�%�%�%r&�&�&+'Q'o'�'
(((�(�(�(V)|)�)*5*S*�*�*+�+�+�+6,Q-�-x.�/m0�0=1]1�1�1�1�1i2�2�_2�D�D�DE4E�EF9FYFG"G�G�G�H�HaI�I,JMJ�JK�K�K�L�LXMyM#NDN�NO�O�O�P�POQpQR;R�RS�S�S{T�TFUgUV2V�V�V�7W�bc�ccd�d�de4eQe�e~f,kRkzk�kXll�l�lm�m�m(Anez�z�z�z{�{�{�{d|�|�|}U}u}%~E~�~�~�~8X�3	�%�E�����i�~����(��4�^�|������@��������d������6�����W�����`�z����������k�����O������������"�B���p��������{������(Z);C�E�FOG�QR(
hYi����n���b�v���w[���A�`eao�qHt�w/z�� ���O�����w�
���o
�����
Q���-"��V�G��������������W�����
u(������m<���&(^)KC�E�F�FGQG�G�RMU'V�VW^���2���f�F�z�F��X����z�$��������f�}��*���7�(�R��{����?�A
FP�b�fmhhi�i!k�m�nZo^pr
s�tsvNx�y"z~{�|]�������b��������������a�%�[�s�������t���0���n���w��������G���������G^+?����` �!�&1'�'�'�(S,�,--�-5.�.�/E01�1S23�3�4[56�6�7d8'9�9�:p;3<�<�=|>KF�FXG�G�GFK�KSL�L�L.M&NMO�P)R�S�UXZZ�\�_�b�ebg�g�h6i�i�j k~m�m�o9v�vx�x�y�y�z{�'�����_���g���,�������3�����S��������6�F����������$�^�n��������<�L�������8�� ����������l����e���,�E��*���\�e�l�������B�W������������k���
���A�QS�|��Bn	�
�
�=i��|� ;!�!)"�"�#T$
%�%&8'�'�(c)*�*�+5-=-E-M-0O1�1�1�1{2YD�D
E&E�EFFG�G�HoI:JK�K�LfM1N�N�O�P]Q(R�R�S�TTUV�V�b~c�d�e$k�kql�lm�mz�z{�{�{v|}g}7~�~�~J��7���{����W�������2�G����(���;�f�{���4�)))))



)))



))
)))

)))











)
))))

















(&&

&&










&























((%((((&%%%
''''''̻
�9�f�����o����)�k�����~�����Y�J����X�����������7���y�����������
�K��8z%������4J�a��?�"�&Q(�(�(�)�)*2L@�B�C!DoD�D�DE_E�E�E FYF�FGrG�G�G�QR�S�T�UMV:W'hViojˋ~�p�޲�R����'��B�]�r�����'���о��V�������e�l�����������3���6�����U��L�x���*�U�s�4������������Z���8�u������T�3���P�i�V����
��
�
��Z�e�"�%�*�-�03�7L;�<x=�>_?�AB�B3F�F�F�O�OXP�`bahd�e�f<g�g�hj4jfj_k
l�l�m�np�p�pGq�q�q;rur�r�rEs�s�sEtuIuv@v�v�vNw�w�x�x)y�y�y-z`{�{�|Ȁ���8������K������ۈ;�����H���)�D����͌
�4�L�/��ƛ<���ۣ��e�������J�l�������Y���������;�������l�K�����r�������=�����U����������(�f��� ���/���4�P������ �����B�~���+�a����>�����������
������`�@g�8�� ;Wj�� � � "�&	'R'�'�(1,i,�,:-.P.}.�.�/l0 1M1�1z2<3�3�4�5D67�7�8N9:�:�;Z<=�=�>)FaF�FyGH$K\K�KtL�LUMZN�O�P�ROTWV�X�Z�]W`Ocyfg�ghMh�h�hSi�i�i!jej�j�j{k�k�kl[l�l�l?m�mn4n�n�no`o�o�uXvtv�vw>xfy�y�y�zt��U�J����y���E����%�L����K�{�9�ߌ[�a���И�a�I���a�Ɯ7�g���x�%��������¥o�3�Z�˩��5����}����E��V��Ǵ�_���ɷ��M��8���ټ����[�����#�]�4�������=�m���~�+������������u�9�`����;��������%�B�_�|���Y�A�������0�����H�F�q�����f�K���5�z��������g����������x����&�M�����/�����G�E�����o���SG�s��y	�	�
"�NB
�
n��t�����#�� �!H"w"#0#�#�#s$�$,%[%�%&�&�&W'�'(?(�(�(�)�);*j*�*"+�+�+-�-�-;.b.�/�/.0U0�0p12�27DoD�DGEFpF9GH�H�IdJ/K�K�L�M[N&O�O�P�QRRS�S�T~UIVWb�b�b�cid�dee8e�e�j0kVk�k�l0m�m�y>zgz�z({
|�|�| }�}X~�~�����X�̉��W�8�b�����$�7��3�ۚ���������ҝ�=�b���!���G�m���ޡ�b�<�����F�q����U�״�������1�^������������������������
�!�5�Q�t�����D�������i�v���������������������������$�1�>�����������������*���������`�m�z�����G�T�(�	��b�o�&�+�/�3�7�<�@�D�J�P��������Q
V
\
b
i
n
t
z
�
�
�
�
�
�
�
�
�
�
�
�
Vc~	1���o|�"/r�����dq�������������r��er�,A[x*G�	��q~�*7�"K&�&�&�&i'v'�'*(7(�(�(�(�)�)�)*�1D@�B�CDVD�D�DEWEoE�EFNF�F�F�FGYG�G�G�G�Q�Q�Q�R�R�R�R�R�R�R�R�R
SJTUXU^UkUVV3V�V�V W�W�WVX�XLi0j5j9j=jAjEjKjPjTjXj\j`jfj����T�Y�]�a�e�i�p�v�M�f���Բ��%�5�Դ���������
��*���
����������������������	�
����#�:�T�j��������#�2���6�E�T���G�T�q�'�4�N�h�����������z�����K�����������������%�)�/�5�R���_�l�������l�{�������i�v�`������ �/�>�Z�i�x�)�6�����������������7�D�^��������W���������r�����7�u�������0�����������3�@�����-�����������������������������������1�>�����=�C�I�� �-�����)�6���C�P���;�H�N�h��\�i�bhl��K��1>�����
�o��PU[aintz���������dkqw}�����������������������*7#D#\&i&d+q+~+�-91�3�3�3W8d8q8�;�;�<=>!>.>�>�?�?@�A�B�B�EF�F�F�F�O�O�O)P6P>P�P�PXaEbKbPbTbXb\babebibmbqbub�b
cc�d&f�f�f�f#g~g�gyh�h�h�hiivi�i�i�ij,jLj�j+k8kEk�kOl�lDm�m�m�m/n�n�n�n�n6o:o>oBo^oFp}p�p-q�q�q�q�q�qr3rMr[r�r�r�r,s}s�s;t�t�t�t�t�t�tu!u/uquu�u�u8vMvav�v�v4w�w x%x)x-x1x7x=xmx�xy|y�y�y�yz#z {&{,{2{8{={A{E{K{Q{W{m{�{~|�|�}ހL�i���΁�p�݂��������:�@�ԇ����1�o�|���!����1�5�9�=�ߊ��!�<�W������C�����,�B���������ƍ������3�@��ĠѠr��£ѣ����äȤ̤Фդۤߤ�������#�����������������(� �-�:�G�T�Y�a�g��D�Q�^�k��������>�K�X�e�r�w����������,�9�m�z���&�3�r���!�������������������a��������b��������������������������������������/���o�������c�������W������<�}�����+�/�����P�o�����V�Z����a�e�x�������
��.�<������������������������,�H�c�����������m������H�U�������������)�e������H�������%�d�z�������������������p�v�z��������������-:)6N[h�������1Hj,K�Ry��#��i����3N�(7FUf s � � � � � !�!�!�!�!�!�"�&'='�'�'�'p(�(�(S,{,�,�,-%-�-�-$.F.a.�.�.c/p/�/%020P0�0�0111~1�132@2^2�23 3�3�3�3y4�4�4;5H5f5�5
6(6�6�6�6�7�7�7D8Q8o89929�9�9�9�:�:�:P;];{;< <><�<�<=�=�=�=\>i>�>?,?KFsF�FAGdG�G�G�GHFKnK�K<L_L�L�L�LM9M�M�M1N>N�N�NXOgOtOP#P�P�P�P�P�Q�Q4RCRRRaRnRS'S�S�STT&T3T�TU�U�UVVV.V;VWWXX*X9XHXWXfXsXAYNYeZtZ�Z�Z�Z�Z�Z�Z�Z�[�[�\�\]]*]9]H]W]f]s]K^X^�_�_�_�_�_�_```.`;`a%a�b�b�b�b�b�b�b�bcc&c3cd"d�e�e�e�e�e�eff!f0f?fNf]fDgQgug�g�gh1h�h�h�h%iIiii�i�ij]jrj�j�jkqk�k�k�k@l�l�l#mmmm�m�mndn�n�nDo�o�o�o?vEvRvlv�v�v�v�vw�wxx)x�x�x�x�x�y�y�y}z�z�z{����3�@���Ѐ߀&�5���#�k�z����V�o���݃����(�Džׅ����ۇ�������
��0��������.�>�N�^���
����Œ��.�>�#�0�@�P�����Ș��?�L���֙�%�4���#�_�n�ٛ!�0�����؜+�H�`�q���)�:�K����a�n������Ȣ٢��"�u�������̤s�����C�P�����ɧڧ��#�4�N�l���ܩ������Ϋ߫��������$�O�\�m�~�����	�&�>�O�`���)�ײ�?�L�]�n�������ȵ��S�p�������Q�b�s�!�.�������������,�J�����ҽ���������k�x��������-�:�K�\�v�������-�>�����������*�;�L�w�����������1�N�f�w���/�@�Q����g�t�������������
�(�{���������y�����I�V�����������)�:�T�r�����������������������*�U�b�s����8�U�r�������D����,�����&������k�����T�m��������i��������-�Q����6�����+�r��������_�{���������������*�C�c�����X���8�_������j�����S�l����������������MZ��]lTc��3��3(��GT����-Y��Y	�	m
z
�
��.
#

�
BO����(T��T�hu��������7��G � � � <!K!�!�!"<"Y"�"�"#�#�#�#A$g$�$�$ %=%�%�%�%l&�&�&%'K'h'�'(!(�(�(�(P)v)�)	*/*L*�*�*+z+�+�+2,M-�-�-M.t.�/�/@0g0�071[1�1�1�1�1c2�2�2YD�D�D�DE2E�EF3FRF�F�FG�G�G�G�H�H�HNI[I{IJ&JFJ�J�JK�K�K�KzL�L�LEMRMrMNN=N�N�NO�O�O�OqP~P�P<QIQiQRR4R�R�R�R�S�S�ShTuT�T3U@U`U�UV+V�V�V�V�W�W�b�b�b�bc�c�c�c_d�d�d�d�de0eKe�e�e�ezf(kNktk�kRl}l�l�lm�m�m%n(zaz{z�z�z{�{�{�{^|�|�|}A}O}s}~C~�~�~�~2V���̈��C�����c�|����&���Y�v�����<���Ɨ����_�����Ś՚���0�����Ǜٛ��T���̝�&�\�t���������0�g��ǡ���G�M����ʣ��Z�����̤�@�������������"�(�-�2�7�=�B�H�N�S�Y�_�e�k�q�w�}�����������������������Ŧ˦Ѧצݦ����������� �'�.�5�<�C�J�Q�X�_�f�m�t�{�������������������§ɧЧקާ����������$�+�2�9�@�G�N�U�\�c�j�q�x��������������������Ų̃Өڨ����������� �'�.�5�<�C�J�Q�X�_�f�m�t�{���������������������ȩϩ֩ݩ����������#�*�1�8�?�F�M�T�[�b�i�p�w�~�������������������Ī˪Ҫ٪��������
����&�-�4�;�B�I�P�W�^�e�l�s�z���������������������ǫΫիܫ��������
���"�)�0�7�>�E�L�S�Z�a�h�o�v�}�������������������ìʬѬج߬����������"�*�1�9�@�H�O�W�^�f�m�u�|�������������������ǭϭ֭ޭ�����������!�(�/�6�=�D�K�R�Y�a�h�p�w������������������®ʮѮٮ��������
���#�*�1�8�?�F�M�T�[�b�i�p�w�~�������������������Ưͯԯۯ����������%�.�5�<�B�K�Q�W�]�f�l�r�x���������������������ðɰҰذް�������������#�)�/�5�;�A�G�M�S�Y�_�e�k�q�w�}�����������������������ű˱ѱױݱ���������
����%�+�1�7�=�C�I�O�U�[�a�g�m�s�y����������������������DzͲֲܲ�������	���!�'�0�6�?�E�N�T�]�c�l�r�{�����������������������ó̳ҳ۳�����������&�,�5�;�D�J�S�Y�b�h�q�w�������������������´˴Ѵڴ��������
����%�+�1�7�=�C�I�O�U�[�a�g�m�s�y������������������������ǵ͵ӵٵߵ��������	����!�'�������5�b���������������k��������%�V���q�i���k�|�������U���5������������&�3�C���������������������b�o�|�����I���"����d�u�-�1�5�>�B�H�N�|��������Y
_
f
q
w
�
�
�
�
�
�
�
�
�
�
�
X�6��q�$4v��f�����������t��g�!0F}
L��s�,;�"�&�&�&k',(<(�(�(�(�)�)�)*�1H@�B�CDZD�D�DE[EtE�EFUF�FG]G�G�G�Q�QR�R�R�R�R�R�R�R�S�T\U`UpU
V8V%W�W#hRi7j;j?jCjIjRjVjZj^jdjkj��Nj[�_�c�g�n�t�z�k�ٲ���*�<�ٴ�����������������������������!�>�Y�n�������'���:�I���I�w�)�R�����������~���P���������	����"�,�2�W�a���������p������k�����/���!�$�3���^�m���+�@���������������9�H�c������Q���^�������
�w���������������5�E�����3�q�������������������������3�������A�G�P��"�/���+�;�E�T�=�L�R�m�^��f�����3���	�
��X^fqw}������Vhou{������������������a�"9#�%^&�*f+s+k-�0�2�3�3z7Y8f86;�;x<�<c=>#>�>J?�?�A�A�B�BF�F�F�F�O�O+P8PCP�P�`^aIbRbVbZbcbgbkbobsb�bcSd}e�f�f�f'g�g{h�h�hkixi�ijj0jQj-k:kJk�k�l�m�m�m�n�n�n�n<o@o�o�p�p2q�q�q�q�q7r`r�r�r0s�s�sAt�t�t�t�tu4u�u<v�v�v9w�w'x+x/x5x;xqx�xy�y�y)z${*{0{6{?{C{I{O{U{\{�{�|��m�ҁ#�u���������>�G�և����q���ƈ&�����7�;�D����
�%�@����������0�H�������č+�ޖ����5�'�Ơ��t�ƣף����ʤΤ٤ݤ����ѦP���������������5�"�/�<�I�]�e�W�F�S�`���������@�M�Z�g�{���U�v��x�.�o�~�(�t����&���������������������h�����������������������6�����]�������(�����@������������P������������	����������������!�0�L������������J�����������-�i����L�����)�k�|�����������������t�������	������/�+�
P]��p����lM�>T�%��
7S+:IW�h u � � � � � �!�!�!�!�!�&�&?'�'�(-,V,�,'-�-K.g.�.e/�/'0V0�0171�152d2�2&3�3�3{4�4=5l5�5.6�6�6�7�7F8u8	989�9�9�:�:R;�;<D<�<=�=�=^>�>!?%FNF�FfG�G KIK�KaL�L?M�M3NDN�N[OiOzOP�P�P�P�P�Q7RFRURcRtRS�S�STT(T9T�T�U�UVV"V0VAVWXX-X<XKXZXhXyXCYhZwZ�Z�Z�Z�Z�Z�Z�Z�[�\]]]-]<]K]Z]h]y]M^�_�_�_�_�_�_``"`0`A`a�b�b�b�b�b�b�b�bcc(c9cd�e�e�e�e�e�eff$f3fBfQfcfFgzg�gh7h�h�hNioi�ij`j�j�jvk�k�k�kEl�l�l)m�mnnjn�n�nJo�o�uCvGvTvpv�v�v�v
wxx+x�x�xby�y�y�zp���5�B�Ӏ)�7��n�|��t����
��/�̅܅�����݇��������6����5�C�S�e���#���Ɍ�#�3�E�%�5�E�]�����̘�A�N�ٙ(�6��b�p�$�N���1�P�f�w���/�@�a����c�t���ҡ��΢ߢ
�{�������Ԥy�����E�X�����ϧ���)�T�ũ�����ëԫ����������f�Q�b�s����.�D�U�h�
��?�ٲ�A�R�c����������Y�x�������W�h���#�6�������������2���¼ؽ�������Ӿm���������D�/�@�Q�|����"�3�F�����������0�A���y�������7�V�l�}���5�F�g���i�z���������������������������K�^�������"�
��/�Z�������$���������������l�W�h�y��� �=�Z�w���F�.������������5�B�m�����S�8���1�x��������e����������e����$�:����������4�A�������O\�`nW����;/�I[���a�	�	o
�

��6
*
�
DV���\���j|�������� � ?!�!�!B"`"�"#�#�#m$�$&%D%�%�%�&�&Q'o'
(((�(�(|)�)5*S*�*+�+�+�,�-�-9.O.�/�/,0B0�0]1�1�23D\D�D4EFYF�F"G�G�G�H�HPI�IJMJ�JK�K�K|L�LGMyMNDN�NO�O�OsP�P>QpQ	R;R�RS�S�SjT�T5UgUV2V�V�V�Wb�b�b�b�b�c�c�ced�d�d�d�de4e�e�e�e�j,kRk�klm�m�y+zez�z{�{�|�|}u}E~�~t��ψ	�E�����D�4�^�������/�����ǚך�������ʛۛ����Н�)�`�������3�k���ʡ�J�O�8���ͣ�C�]���ΤB���������
���� �&�+�0�5�;�@�F�L�Q�W�]�c�i�o�u�{�����������������������æɦϦզۦ������������$�+�2�9�@�G�N�U�\�c�j�q�x��������������������Ƨͧԧۧ�����������!�(�/�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�{���������������������ȪϪ֪ݪ����������#�*�1�8�?�F�M�T�[�b�i�p�w�~�������������������ī˫ҫ٫��������
����&�-�4�;�B�I�P�W�^�e�l�s�z���������������������Ǭάլܬ������	����'�.�6�=�E�L�T�[�c�j�r�y�������������������ĭ̭ӭۭ����������%�,�3�:�A�H�O�V�^�e�m�t�|�������������������Ǯή֮ݮ�������
��� �'�.�5�<�C�J�Q�X�_�f�m�t�{�������������������ïʯѯد߯�������
���"�+�2�9�?�H�N�T�Z�c�i�o�u�~���������������������ưϰհ۰������������ �&�,�2�8�>�D�J�P�V�\�b�h�n�t�z�����������������������±ȱαԱڱ���������
����"�(�.�4�:�@�F�L�R�X�^�d�j�p�v�|���������������������IJʲӲٲ����������$�-�3�<�B�K�Q�Z�`�i�o�x�~�����������������������ɳϳس޳�����������#�)�2�8�A�G�P�V�_�e�n�t�}�������������������ȴδ״ݴ�������
����"�(�.�4�:�@�F�L�R�X�^�d�j�p�v�|�����������������������ĵʵеֵܵ�������������$�*��<y=�>`?�nHopLp�p�pHq��j3kYk�k�k_l�l�l�l1m�m�m�1�B�]�����4�������-�s�y������������������.�;�����.���������i��^���������j�w�������Q������+�l��������
+`p�#���Dy��,�l���7n}�E|��(o�)=Sh�&7�u�3{��4u&�&2's'�'
(4(�(�( )�)�)�)C�C9D�D�D�D6EjE�E�E7FoF�F�FG)G�G�G�G�RS.T�T@UhU�UV"V�V�VW�W�W.X�XZ�z������"�2�����Z���j���'�q������	��c�ʹ/�L�f�{���ƻ��� �/�x��B�Q����Q�a��1�A�`�u���b�����6�����������A����2�i�f�����%�x�������8�s�����H����,�;��f�u���3�
�������e��������A�V��������@�y��������]������2��_����L���I�������=�������;�H�����y�*�?�����3����M�����E�`���-�f� r6g�;�3��
|�7z#A#+&f&+n+{+�-1[3�3�38a8n8�;�;�<=�=>+>�>�?�?�?�AVB�BF|F�F�F�O�O�O3P�P�P�bcc�d
fQf�f�f
geg�g h�h�h�hisi�i�i�i	jj>j�j�j5kBk�k6l�l"mom�m�mn[n�n�nUo#pYp�pq�q�qrErVr�r�r�rsls�s!t�tu*u^uzu�u�u&vIvYvnv�v#w�wIx�x�xby�y�y�y�yzi{y{m|�|q}׀$�X������_�Â�c�އ��*�M�y����h�҉`�����5�P�s���΋.������=�D�z����=�����Π3�|���Σ/����S���O���?�����$�*�7�D�Q�����N�[�h�����������H�U�b�o���n������6�T�w�����0�N�|���������������h���B�������C���r��������u�^�{�����R�o���5������+�j������u���:�i�|���E�����P�r���������)�7�O�����������������)�@�\����������P������:�R���[�����X������W������>�v������S�������I������73Xe������� BY�&:��Jq������Rz���+Fb�4CR�' p } � � � � � h!�!�!�!�!�"�&','{'�'�'Y(�(�(8,s,�,�,�,-�-�-.1.Z.�.�.2/m/~/�//0@0�0�01*1b1�12=2N2�2�23�3�3�3H4�4�4
5E5V5�566�6�6�6P7�7�78N8_8�89"9�9�9�9\:�:�:;Z;k;�;<.<�<�<�<h=�=�=+>f>w>�>)?0FkF�F*GSG�G�G�GH+KfK�K%LNL�L�L�LM)M�M�M�M;N�N�NOdOqO�O P_P�P�P�PCQ�Q�Q@ROR^RkR�R$S�S�STT#T0T�TUmU�U�U
VV+V8V�VW�WX'X6XEXTXcXpX�XKY�YqZ�Z�Z�Z�Z�Z�Z�ZL[�[Q\�\	]]']6]E]T]c]p]�]U^�^�_�_�_�_�_�_
``+`8`�`"a�a�b�b�b�b�b�b�bcc#c0c�cd�d�e�e�e�e�efff-f<fKfZf�fNg^g�g�g�g&hmh�h�h	i2i^i�i�i�iAjnj�j�j�jk�k�k�k%lnl�lmZmzm�m�mnIn�n�n)owo�o�o	vOvdv�v�v�vw�w�w&xix�x�xmy�y�yfz�z�z{�����=����܀�2�ʁ� �A�w�ɂ�0�c���������%�}�ԅ�N���Z�����������'�f�����ω'�ՊK�[���
���������+�;���-�=�M�x�����ܘ��"�I���Ù��1�ʚ� �A�k�����-�����М�A��n��ٞ7�H�ğ�נk�|���I�Ţ֢����1���;���ɤ#������M�!���Ƨק��� �1�B�d�{�թ����m�˫ܫX���k����!�ݮY�j�{�����ů�ϰL�]����&������I�Z�k�'�����ŵֵ���i�������_�p��+���������q������ �B�Y���c���K�����6�u�I���������7�H�Y�j���������*�;������������'�8�I��������������G���t�����=�N���	���q�����O��������� �7���A�����)������S�'����������&�7�H�j���������s�����^���q���'���_�p�����1�N�k��������3�����|��������
�Z�~���=�g�|����q�M�}������'�@����%������>�������
�&�s����������������=�R�����G���0�W�����	�Y�}���<�f�{����p�\�������W��*i@`��U���%p�Q����=��E	i	4
w
�
�
`��� 
k
�
	L����8��@d/r��[�����/Y�+ i � � !!H!i!�!�!%"R"�"�"#j#�#�##$P$}$�$	%6%�%�%�%N&{&�&'4'a'�'�'(y(�(�(2)_)�)�)*E*�*�*�*\+�+�+,
-�-�-E.l.�/�/80_0z0 1J1�1�1�1�1L2v2�2>DyD�D�DE!E�E�E)FBF�F�FG�G�G�GNH�H�HIXIjI�I#J5J�J�JKzK�K�KEL�L�LMOMaM�MN,N�N�N�NqO�O�O<P{P�PQFQXQ�QR#R�R�R�RhS�S�S3TrT�T�T=UOU�UVV�V�V�V_W�WBb�b�b�bc<c�c�c?d�d�d�d�d
e)eDe|e�e�eZfkGkmk�k;lll�l�l
mqm�mnzUzsz�z�z{�{�{�{G|q|�|�|,}J}b}~2~�~�~�~E��������2�����L�v�������?�n���ٖ��5������@�ߘ�h���Ϛ��(�n���ӛq����ܝ�R�l���מ����� �]�w������6��C������P��������/�ե�+�<�Q�{���,��������m�Z���|���v�����������(�5��������������]��1���������d�q�~�����K�����
��f��������
Zj�
x��+s��&�S���ht�)v��iy�#7Mb� 1��u��.R&�&'m'�'�'.(�(�(�(�)�)�)�B�C0D{D�D�D-EaE�E�E.F[F�F�F�FG~G�G�G�RS%T�TUbU�UVV�V�V�V|W�W�WkXT�q���߲s��,�c�۴�=���/���!�@���K����2���)�C�`�u����������)�G�˽<�K�i���K�[�Ϳ+�;�W�o���;����������������;���
��c�?�������r��������m�����4�����&�5���`�o���-���������+���������;�M���������7�V��������P�y�����y�C���
�7���-�������7�z���	���5�0�����W�$�6�����-�����G�����?�W����`�e)R��5S�~
v�*f�";#&`&�*h+u+�-103�3�3�7[8h8z;�;�<�<�=>%>�>�?�?�?�A:B�BF`F�F�F�O�O�O-P�P�P|bcc�df-f�f�f�fXg�g�g}h�h�h�hmizi�i�ijj5j�j�j/k<k�k)ldlmKm�m�m	n7n�n�nOopSp�pqzq�q
r<rPr�r�r�rs_s�st�tu$uUutu�u�uvCvPvhv�vwzwCx�x�xUy�y�y�y�yzc{s{`|�|d}р�R������R����N�؇��!�8�s�����[�ʼnK�����,�G�^���ŋ!�X�ڌ�7�0�^����7�U�n�Ƞ�v���ȣ���7���3������Ʋ۸$�1�>�K�|�I�H�U�b�����f���7�B�O�\�i���Z���
���0�?�q�����*�9�v����q�����������[���5�h�����6���e���������D�Q�u�����I�i����l����%�a������D���-�W�v���8�o���C�l���������
�#�1�������[�����������#�7�S�j���������C�t�����%�L�j�B�����?������N�������5�m������J���~���"�������1�-�
R_�������<S� 4��Ah������Dt���"=Y�.=L��j w � � � � � &!�!�!�!�!�"�&
'&'m'�'�'K({(�(2,j,�,�,�,-�-�-.+.Q.�.�./g/x/�/)0:0�0�0�0!1Y1�1�172H2�2�2
3i3�3�3+4}4�4�4?5P5�566q6�6�637�7�7�7H8Y8�899|9�9�9?:�:�:;T;e;�;<(<�<�<�<K=�=�=>`>q>�>#?*FbFFGMG�G�G�GH%K]KzKLHL�L�L�LM#M�M�M�M5N�N�N�N^OkO�OP-P�P�P�P&Q�Q�Q:RIRXReR�RS1S�S�STT*T�T�TU�U�UVV%V2V�VWWX!X0X?XNX]XjX�XEYXYkZzZ�Z�Z�Z�Z�Z�Z/[�[�[�\]]!]0]?]N]]]j]�]O^b^�_�_�_�_�_�_``%`2`�`a/a�b�b�b�b�b�b�b�bcc*c�cd,d�e�e�e�e�e�e	ff'f6fEfTf�fHgXg�g�g�ghdh�h�hi,iUi�i�i�i8jhjzj�j�jk}k�k�klel�l�lQmtm�m�mn@n�n�n ono�o�o�uIv[vwv�v�v�v�w�w x[x�x�xgy�y�yXz�z�z�zv����7�q���ր�,�����,�q����'�]�z����x���V�΅ޅ1����߇���I����!�]�����ɉ���E�U�����g���U��%�5��'�7�G�c�����Ә�
�C�}���ܙ�+�����,�e����'�|���ǜ�8�ʝh�y���1�B�������e�v���
���Т���+������ä��{����G������ѧW�	��+�<�[�u�̩^���
�F�ū֫:���/���
����S�d�u����������F�W���� ���۲y�C�T�e��������е�	�`������ڷY�j�θ%�ù������5����	��9�S���<�ڽ�$������o�
��������1�B�S�d���������$�5�n�����b���W�!�2�C���{�����������>���n����7�H������k�|�������������1���������������M���������]�� �1�B�a�{���d���L�����@���5����!���Y�j�{���(�E�b�������-�����l���������K�x���.�a�v����b�G�t�������!�:���
��v����8�}�������j���������w�����
�7�L�����8���'�N������J�w���-�`�u�����a�G�������Q���c�+Zl�@���`��K��l�	7��5	c	
q
�
�
A���
[
�
�
F��g�2��0^l��<�����	&D� T � � !B!T!�!�!"I"�"�"#[#�#�#$J$t$�$%-%�%�%�%?&u&�&�&.'X'�'�'(j(�(�(#)Y)�)�)*<*�*�*�*M+�+�+,-�-�-<.c.�/�//0V0t01D1�1�1�1�1=2p2�28DpD�D�DEE�E�E F<F�F�FGeG�G�G0H�H�H�HRIdI�IJ/J�J�J�J\K�K�K'L~L�L�LIM[M�MN&N�N�N�NSO�O�OPuP�P�P@QRQ�QRRR�R�RJS�S�STlT~T�T7UIU�UVVvV�V�VAW�Wb�b�b�b�bc�c�c0dnd�d�d�de e;eXe�e�eKfk>kdk�k,lfl�l�lmbm�mn�yLzjz�z�z�z�{�{�{8|k|�|�|#}D}\}�},~s~�~�~?��������,�s���=�p���܊�q�9�e���ʖ��/�Q���ޗ:���
�7���ɚޚ��=���͛b�	�����ӝ�I�c���Ȟ������T�n�����#�Ԣ=������G�}�������)�ƥ�3�D�a�����8�������R�����z��������m����T� ���?����
?r�%��X�����L��Z��=�?Uj�(9�z�H��&�&G'�'(�(�)�)�C>D�D�D;E�E<F�F�FG�G�G�G�R3TUJU�U$V�V�VW�W3X�X\����������q�϶v����h�Ϲ1�Q�h�}���Ȼ���}����/�c���C�e�w�����[�����C����U���J���M���8�
�i���!�[�����
�E�����b���"�{��z�e�������'������D������4���%�e���O�J�;����
~�<##H&D+�-1�378�;�<�=�>�?�?kB
F�F�F�O�OP<P�P�b�df�fgjg�gjh�hei�i#jCj�jk�k;l�l'm�mn�nWo(p[p�p!q�qrrJrXr�r�r�r
sqs�s&t�tu,ucu|u�u�u+vKv^vpv�v(w�wKx�xygy�y�y�yzzk{{{r|�|v}ـ)�Z������d�Ȃ�u����/�_���	�m�׉r���:�U���Ӌ3����!�?��������H������h�u�z�������������������^���"�X�����p���m���G���H���w������� �z�c�}�����W�q���:������-�o������z���?�k�~���J�����U�t�������+�9���N��E�a�������U����D���m���j� �\�����
�C�{����� �X�P�c������$ 9������%D[(<��Ov������W|��0Kg�I � � � �!�"�&'.'�'�'�'^(�(�(:,x,�,�,�,-�-�-.3._.�.�.I/�/0B0�01/1g1�12P2�23�3�3_4�4!5X5�56�6�6g7�7*8a8�8$9�9�9s:�:6;m;�;0<�<�<=�=B>y>?2FpF�F/GUG�G�G�GH-KkK�K*LPL�L�L�LM+M�M#N�NJO�O�PZQ&R�R�S�T�U�V�WYWZt[�\
^�_�`�b�c�e�f`g�g�g�g+hrh�h�hi4ici�i�i�iFjpj�j�j�jk�k�k�k*lsl�lm_m|m�m�mnNn�n�n.o|o�o�o"viv�v�v�v�wxnx�xoy�y�ykz�z�z{���$���̀�ρ�\�΂�5�e����������e�����)�k�����щ,��܋�������Ř���0���ҙ�Ϛ�P�Û�����՜�F�=��ݟ0������3�����P�'�z�ԨD�i�}�کѪ��q�ĭ�����ǯ$������h�ص���n�e�.��X���"�G�[�����x�O�����l��������������F�������L�C����6����%�9�����V�-�����J�o���������w���$���6�S�p��������5���������������_�����B�i�~����v�O��������)�B����'������@��������+�x����������������?�T�����L���5�\������^����A�h�}����u�n�����>��NP�y��u�)���?�J	k	O
�
�
{��p
�
$���:�EfJ��v���4y0 � � 8!�!�!'"W"�"�"#o#�#�#($R$�$�$%;%�%�%�%S&}&�&'6'f'�'�'(~(�(�(7)a)�)�)*J*�*�*+a+�+�+,-�-�-J.q.�/�/=0d0|0%1L1�1�1�1�1Q2x2�2@D~D�D�D
E#E�E�E.FDF�F
G�G�GgH�H2IlI�I7J�JK�K�K^L�L)McM�M.N�N�N�O�OUP�P QZQ�Q%R�R�R�S�SLT�TUQU�UV�V�VxWlb�bc{cDd�d�de.eIe�e_fkLkrk�k@lnl�l�lmvm�mnz\zxz�z�z{�{�{�{L|s|�|}1}L}d}
~4~�~�~�~ G�������4�����Q�x��������A�s���ޖ�7������B�������-���v����ɝ�!�Y�q���ܞ�����%�d�|������8��E�ţ���U��������1�ڥl��������K����Y�������8������
�L��&�����b���&R(�)�C#DqD�DE�E"F�FtG�G�S�T�UNV;W
�S����(���(�����������f�m�������7�����V��y�+�t�5�����������[������U�Q�j�����
��"�%�*�-�03�7M;�<�=�>k?
B4F�FYPid�e�f=g�g�hgjbk
l�l�mp�p�pOqvr�rFs�s�sJuv�v�vOw�x�x*y�y�{�|������9���M�����>���J������
�����=�����f�������K�m�������������<�����L�����s���>�����V������)�g���2��������#� �	�E�����.�d����A���������
������a�h�9��k�"�&
'S'�'�(2,j,�,;-	.~.�.�/m0N1�1{2=3�3�4�5E67�7�8O9:�:�;[<=�=�>*FbF�FzGH%K]K�KuL�LVM[N�O�P�RPTXV�X�	Z�
]X`Pcz
f�gOh�h�i#j�j�kl]l�l�lAm6n�n�nobo�o�uw?xgy�y�y�zuV�K�����F����&�O�L�|�:���\�b�b�J���b�h���y�&���������p�4���6�
���~�F���W����������N���������\�$�^�5�����n����,���������v�:��<����������Z�B�����1�����I�G���g�L���8����y����N���0�����H�F���p���TH�t��z	�	�
#�OC
�
o��u������ �!x"1#�#�$\%&�&�'@(�(�)k*#+�+-�-c.�/V0�0q12�28DpD�DHEFqF:GH�H�IeJ0K�K�L�M\N'O�O�P�QSRS�S�TUJVWb�b�cld�ek�k�l8m�m�yAz�z){|�|�|�}Y~�~�����Y�����X�9���'�4���	���>���"���H���c�=���r���V�l��������N����]�������:������
�M�'�����c���&T(�)�C$DrD�DE�E#F�FuG�G�S�T�UNV=W�U����+���*���Ҿ�����g�m�������:�����Z��z�,�v�6�����������]�����
�S�l����	�
��"�%�*�-�03�7O;�<�=�>l?B5F�F\Pkd�e�f?g�g�hijdkl�l�mp�p�pOqvr�rFs�s�sJuv�v�vOw�x�x*y�y�{�|ɀ���9�����݈?������Ќ
���ɛ?����g�������P�q�������������>�����L�����s���>�����V������)�h���6������$�!�
�F�����.�d����A���������
�����a�9�n"S'�'�(�,;-	.~.�.�/n0N1�1|2>34�4�5F67�7�8P9:�:�;\<=�=�>�FzGH�KuL�LWM]N�O�P�RVT_V�X[�]c`\c�f�gOh�h�i#j�j�kl]l�l�lAm6n�n�nobo�o wAx�y�zW�L�����H����)�O�N�~�;��_�c�K���c�j���z�)������ĥs�7���8������H���X��˴��̷��Q��ܼ����_�&�`�6�����p�����/���������y�=��>��������Z�B���1�����I���g�L������y��0�����H�����q���UH�t��{	�	�
$�PC
�
o��v����� �!x"1#�#�$\%&�&�'@(�(�)k*#+�+�0q12�2�DHEFrF;GH�H�IfJ1K�K�L�M]N(O�O�P�QTRS�S�T�UKVW�b�b�c�e�k�l8m�mzAz�z){|�|�}Y~�~����Y�͉��X���'��4���I�>���"�*�I����d�h��}�r��V�Z���u�m���9�	���G�������&������
�:�������P
���&z'@(�)�CD^D�DExEF�FaG�G�S�TtU<V)W�WZX��A�����/����!������6���X���{�������T�[�������%�����D���g��b�#�����������I�������?�X�q�����B�	��"�%�*o-�0�2~7:;|<g=�>N?�A"F�FGPWd�e�f+g�g�hUjNk�kSl�l�m�o�p�p6qdr�r4s�s�s8u�uv�v�v=wux�xy�y�{�|���q�ց'�y���ʈ*�������G��������D�+���զT���������9�k�[�o�������z�|�����*�������:�����a���3���,�����[���D���3������^����T���������Y�������1�m����P�����-�p���������
��t�nOV�'�Y�!�&A'�'�(X,�,)-�-l.�.�/[0<1�1i2+3�3�4q536�6�7z8=9:�:�;I<=�=�>PF�FhG�GKK�KcL�LDMINO�PyR>TFV~X�Z~]F`>chf�g<h�htij�j�k�kJl�l�l.m#non�n�nOo�ow-x�y�y�zD�9�~���4�����;�:�j�(�ΌJ�P�8�r�P�V���g��ء��ڤ��^�"��$�����l�4�n�E����~�����<��ȼ�پ��J��L�#�����\���m����������d�(���*����r���H�0��������7���U�:�������g�
�<��������6���^p��B6�b��h	�	�
�=1
�
]��c����� �!f"#�#�$J%&�&u'.(�(�)Y*+�+�-Q.�/D0�0_12�2^D�D6EF_F(G�G�H�ISJK�K�LMJNO�O�PvQARS�S�TmU8VW�b�c�e�k�lm�m-z�z{�{�|w}G~�~vшG�����F����@�͗&�����ݛ��,����6�͡Q�У`�ФD��]�]�]�]8^C^�^�_�_�_�_`�bc�c�c�c�c
ddd�e�exf�f�f)g�g�g�g�m�m�m!n,n�o�ozp�p	qq]q�q�q�q*r�u�uvvHwSw�w�wTz�z�z�z&{0{;{�{-|8|�|�|'}1}<}|}�}�}�}�}�}�}�}7~B~�~�~�~7�.������������#��\
]] ],];]g]r]}]�]�]�]N^�^�^�^�^_2_=_H_S_\_�_�_�_�_�_�_`"`/`<`I`V`�`�`aNa�a�abFb�b@clcwc�c�c�c�c�c*d7dId^dud�d�d�d�deDeqe�e*f7fDfQf^fkf�f�f�f�f�fgg>gjgug�g.h9hDhPh_hih�h�h�hIiTi_ikizi�i�i�i�i7jAj�j�j�j�jBkLk�k�k�k�kMlWl�l�l�lWmbmmmym�m�m�m�m�mnnfn�n�n�n�n�n�nso~o�o�o�op>pIpTp`pop�p�p�p�p�p�p�r�r�r/sis�s�stQt�t�t�t9u�u�u�u v*v4v>vHvRv\vfvpvzv�v�v�v�v�vww"w.w=w^wiwtww�w�w�w�w�w�wxx\xgx�x�x�x�x4y?y|y�y�y�yzz_z�zE{�{�{�{�{�{�{||"|B|w|�|�|�|�|�|}
}}G}�}M~�~�9���u�����������0�=���������������l�y�����S��n�b�{.�p~q+}6�&u'6(�(�)	SjUV�W$�4�����	��)�����"�1�D�S�S�3�����������k�����z�����u�.�=�h�w�5�������������C����������������?���=���,�5�O�G�h��=C#h&p+}+�3�3c8p8�;= >->@�B�F5P�P	cc�f�f�h�hui�i�ij7kDk�m�m�n�n��{������?�Р~�У������,�9�F�S�P�]�j���J�W�d�q��8�y�2�~� �������������������������+�������T�����������95Zg��
6ETr  � � �!�!�!�!o/10�0?23�3�4G5	6�6�7P89�9�:\;<�<�=h>+?�M=N�NfOsO"P�P�P�P�QBRQR`RmR&S�STT%T2TU�UVVV-V:VWX)X8XGXVXeXrXMYsZ�Z�Z�Z�Z�Z�Z�Z�[�\]])]8]G]V]e]r]W^�_�_�_�_�_```-`:`$a�b�b�b�b�b�b�bcc%c2c!d�e�e�e�e�eff f/f>fMf\fPgQvw(x�x�?�ހ4�"�y��'�օ���������	��M�]������-�=�/�?�O���K��3�"�m�/�p���9�J��m�~���Ǣآ���ˤ����O���ȧ٧�"�3���ͫޫ����#�[�l�}�N�_��(��K�\�m�����ǵ����a�r�-����������������w������9�J�[�,�=������)�:�K�������v���?�P��s�������������������U��������(�9�
����������)�a�r�����Ykb��'S��y
�"
N��t���� J!�!�F�G�HZI%J�J�K�LQMN�N�O}PHQR�R�StT?U
V�V�W�b�b�c�c�d�d�e�e��њÛ՛r�֊
�q�Ռ�	�����Ǘ���ϝ"�8���ޟ0���<���/���)���֬(�ŭ���ђ&�|�ԓ0����E����O����i�q������e�M�Ǥ�4���p��ƲՊ�p�Ԍ������В
���Ν!�����ݟ/������L���(���լ'�ĭ���p�%�{�ӓ/����D����N����h�Ɨ�d��7�;��Ƥ.�3���o��Ų���F����bZz��ǝW�b�������NJ�e�Ɍ�������ɒ��ǝ�����՟(�����E�!�|�ά �������t�̓(����=����G����_�����0�4���'�ˊ	�i�͌������
�͒��˝�����ٟ,������I�%���Ҭ$������"�x�Г,����A����K����c����4�8�ä+�e�<�����Z���������}�#�8���K���G��`�UcF��QZ'�(�)�CGD�D�DDE�EEF�F�G�GBTU�U�V�W���z��������$�8����h�������[�Z��I��~�����N���k�0���)�r�����%���#�����
�S�D"�
A0#U&U+�- 1�3H8�;�<>�>�?xB�F�F�P�dfgwg�g�h�j�kHl4m(n-p�p&q�q�r�rvs�s+thu0v�v-w�w�xylyzw|{}�����i������v�����<���$���$���U����u�����	�$���'�����������Z�[�|�������h�\����t�$�I�O�Z�����c���^��v�s�)�e����H�����%�]�]�r��-)F���*���\��"�'c(�(�,�-$.�.R/0�0l1"2�2�3h4*5�5�6p738�8�9|:?;<�<�=K>?4G�GH/L�LM�M�NPoQ	S�T�V0Y�[:^ad3g�gwhi�iKj�j�k/lxl�lmdmSn�n�n3o�o�o�w}xpz�z������:�����n�����p�*����������������J����A�����]�0���������z���/�(������y�r�;��i�������X���
��������W�P����G�����c�6�������������5��������d�G���{�
�����$���#���Q�c�F���z��%z2��#�O	X
�
��
u
-���JS��9 � "�"t#-$�$�%X&'�'�(<)�)�*f+,*1�1V2�2�D�E3F�F�GpH;IJ�J�KgL2M�M�N�O^P)Q�Q�R�SUT U�U�V�WQdlfEl�l{mn�z�{Q|�|~�~%���V�������<��������������Q������>)C�EyF3G��R���F�O��A^�O�����U�ʻi���:�y�����z�S�����/�����s�z���
h�������w`/��P&�'�(�(�B�ESF�F�F
G�G�QR�RUV�V�V!hPiŋR�����'���Y�9�m�9�������-�����O���w��5���o�����N��������Pt�T�_�?�AF�O�`\azb+f�g�h�i�jIm5n�nFoJp�qrs?t�tfv�wAx�yz'zq{�|P�������E�6��B�\�F�)���գ���S�=���7���f�f���s�g���#���U�t�j���h���r�#����������:Q2�<��
��r}��$!�&$'�'�'y(+,�,�,-�-).�.v/80�0�1F23�3�4N56�6�7W89�9�:c;&<�<�=o>#F|FJG�G�GKwKEL�L�L M�M�N*P�Q.SUWUY�[_^,a)dVg�g�h*i�ixjkrm�m�o�u�v�w�x`y�y�z�zn�����)��[������lj[�
�����)����ߜ�)�:�s�����ε��Q�b���������/�@�y������*���������u���^�s���@����7�����/�v���c�������4�I�����"����t���]�r���?��(i=��5a	�

�
�0\��AQ 	!Q!"�"�#G$%�%r&+'�'�(V)*�*�+�,�-7.�/*0q0A1�1�1�1m21D�D�DE�E9FG�G�HaI,J�J�K�LXM#N�N�O�POQR�R�S{TFUV�VbccdUe�j~k\l�l�l�m�y�z�z�{�{h|�|Y})~�~�~<��)���m����2���-�:��}�
�~������ �6���A���&��Ƈϊ���X �&I,AF<K1v~y������^�O���}��-OD{b�dkz}��P��� ��T����Ê����L �&=,5F0K%vry������R�C���q��-CDob�dkz}��D����	�H����
	


#
.
5
A
E
I
M
Q
U
Y
]
i
y
}
�
�
�
�
�
�
�
�
�
�
�
�
�
�

#*<CJRZ^emt{����������������� ';BIMQUY]aeim}��������������������!(,3:>ELPW^w����������������������"*/7?Linv~���������������	#(08@Ldow�������!8DYly������������)19LQYaiqv~��������������������#(-27<AY^mr{�������������"*2:?DINS[`ejoty~�����������
"*/7?DLTYafnv~���������������������#+3;CHPX`u}�������������� (08=EMUiy��������������	&.6Q`e{�������������������!)19>FNS[chpz���������������8Ohmrz~���������������������������� %*/49>CHMUck~�����������
$5=EUfks�������������/49>CHMRW\afks�������������    # + : J O W _ g o t � � � � � � � � � � � � � � � � � !!!!"!'!/!4!@!E!V!a!v!{!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!"""""$","1"6";"@"E"J"O"W"_"g"l"t"y"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"�"#
######+#3#8#=#B#G#L#V#j#o#�#�#�#�#�#�#�#�#�#�#$$#$($-$F$N$V$_$g$o$t$|$�$�$�$�$�$�$�$�$�$�$�$%%%/%7%<%X%`%w%%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%�%&
&&2&:&B&G&L&c&k&s&|&�&�&�&�&�&�&�&�&�&�&�&�&'"'*'2':'B'G'L'Q'V'i'x'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'�'(
((("(*(/(7(?(G(O(](b(g(l(q(v({(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�(�()))))#)()0)5)=)B)J)R)W)\)a)i)n)s){)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)�)*"***2*:*B*G*L*Q*`*h*p*{*�*�*�*�*�*�*�*�*�*�*�*�*�*�*�*++++*+:+?+G+O+W+\+d+l+t+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+�+,,,,!,%,),-,1,8,@,G,O,V,^,f,m,t,{,�,�,�,�,�,�,�,�,�,�,�,�,�,------ -$-,-0-8-C-K-S-[-c-k-z-~-�-�-�-�-�-�-�-�-�-�-�-�-�-�-�-...#.(.,.4.8.<.D.H.O.\.a.e.m.q.u.}.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.///// /(/,/4/</@/H/P/T/\/d/h/p/x/|/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/�/00000$0,00080@0D0L0T0h0m0r0z00�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�0�01
111"1*12171?1G1N1V1^1c1k1s1z1�1�1�1�1�1�1�1�1�1�1�1�1�1�1�1�1�12222 2(2/272?2G2P2X2`2e2m2u2|2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�2�23	3333&3-353=3E3M3U3]3f3n3v3{3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�34444'4/474?4H4P4X4]4e4m4r4z4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�4�45
555%5-52575?5G5O5W5_5g5o5w5|5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�5�56666%6*62676K6S6^6k6p6x6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�67777&7.767>7F7N7V7^7f7n7v7{7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�7�78
888/878?8G8U8Z8b8j8o8w8|8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�8�89
999%9-959=9E9M9U9]9b9j9o9w99�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9�9:	:::!:):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>:>?>G>O>W>_>g>o>w>>�>�>�>�>�>�>�>�>�>�>�>�>�>????? ?%?*?2?7???R?a?f?n?s?x?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?@@#@0@<@I@W@`@m@}@�@�@�@�@�@�@�@�@�@�@�@�@�@�@�@A
AAAA!A)A.A3A;A@AHAWA\AdAlAqAyA�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�ABBBB!B)B1B6B>BFBNBSB[BcBkBpBxB�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�B�BC	CCCC&C.C6CKCSCmCuC�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�C�CDDDD D(D0D5D=DEDJDRDZD_DgDoDtD|D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�D�DE
EE#E8E=EXE]EmErEwEE�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�E�EF
FFF"F'F/F7F<FDFLFQFYFaFfFnFvF{F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�F�FG	GGGG#G+G3G8G@GHGMGUG]GbGjGrGwGG�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�GHH$H,H<HMHgHlHtH|H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�H�HII
IIII'I,I4INIVI[I`IhImIuIzII�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�I�IJJJJ.JQJVJ[J`JJ�J�J�J�J�J�J�J�J�J�J�J�JKKK#K(K0K;K@KHKMKUKZKbKvK~K�K�K�K�K�K�K�K�K�K�K�K�K�K�K�KLLLLL#L)L/L5L;LALGLMLSLYL_LeLkLqLwL}L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�L�LMMMMM#M*M1M8M?MFMMMTM[MbMiMpMwM~M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�M�MN
NNNN&N-N4N;NBNINPNWN^NeNlNsNzN�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�N�NO
OOO"O)O0O7O>OEOLOSOZOaOhOoOvO}O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�O�OP	PPPP%P,P3P:PAPHPOPVP]PdPkPrPyP�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�P�PQQQQ!Q(Q/Q6Q=QDQKQRQYQ`QgQnQuQ|Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�Q�QRRRRR$R+R2R9R@RGRNRUR\RcRjRqRxRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RSSSS S'S.S5S<SCSJSQSXS_SfSmStS{S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�S�STTTTT#T*T1T8T?TFTMTTT[TbTiTpTwT~T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�TU
UUUU&U-U4U;UBUIUPUWU^UeUlUsUzU�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�U�UV
VVV"V)V0V7V>VEVLVSVZVaVhVoVvV}V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�V�VW	WWWW%W,W3W:WAWHWOWVW]WdWkWrWyW�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�W�WXXXX!X(X/X6X=XDXKXRXYX`XgXnXuX|X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�X�XYYYYY$Y+Y2Y9Y@YGYNYUY\YcYjYqYxYY�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�Y�YZZZZ Z'Z.Z5Z<ZCZJZQZXZ_ZfZmZtZ{Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z�Z[[[[[#[*[1[8[?[F[M[T[[[b[i[p[w[~[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[�[\
\\\\&\-\4\;\B\I\P\W\^\e\l\s\z\�\�\�\�\�\�\�\�ɇҊ���[ �&K,CF>K4v�y������`�W�`�g��������--5-=-E-QD~b�dkz}��R���*�?� ���^�s�H����������������������X�� ������
v)������o>���&!(b)�)[C\C]C^C}C~CC�CF�FSG�G�R�ROU)VW`�������������4�ӻػݻ�h�H���������H�\�]����������������(�-����������j�k����� �%�.�/��9�,�1�X�Y�Z�����������������AFP�b�b�f�f�foh�i�i�i'k(k)k�m\odphplpr r%rsss�t�t�tyv}v�vTxXx\x�y�y�{�|_�������j�k�l�m���������������������������������c�_�d�y�~����������������v���2��������������������������������������`A����!3'�'�(�,-�-9.=.�.�/G0	1
1�1U23�3�4]56�6�7f8)9�9�:r;5<�<�=~>�FZG�G�KUL�L0M(NOO�P+R�S�UX\Z�\�_�b�efgkghh�h�h:i?i�i�i�j�j0k5k:k?kDkIkNkSk�m�m�m�m�m�m�m�m�v
x�y�z)��a���i�����������Ã.�����������5��U��������������B�G�L�Q�V�[�H���������������֯ۯ����ܵ �%�*�/�4�9�&�j�o�t�y�~���p�������������������
����H�M�R�W�\�a�N���������������:�"��������
���G�,�������Y���������CS�~ %����FKr	w	�
�
 �
�
��AFmr��~� �!-"2"�"�"�#�#X$]$%%�%�%�&�&<'A'�'�'�(�(g)l) *%*�*�*�+�+�0Q1�1}2�D(E�EHFG�G�HqI<JK�K�LhM3N�N�O�P_Q*R�R�S�TVU!V�V�c�e�kslm�m�z	{�{x|i}9~�~L9�������������=�¤6��;�h�������:|A�"*2N@�Gqj��:��
��B�FH�ӹ��"���0���f�����5�a�R���������~�Y���������
�7��&��!�% ��!��$�X!�� �%��'�#�q��%�B$���%�{�� �<!�� �"�l!��'�K$���Zr.u~u�u`v�y	��;�N}��M��������� �����\�!����
z-������sB���&%(�)�CF�F�FGTG�G�RSU.V�VWe���9��l�M���M��^���_���2�����	���l���*�0�$�>�6�[�������?�AF$P�b�fthhi�i*k�m�n]opp*rs�t�v`x�y"z�{�|d����n������������h�%�i��������{���7���n���w�������G��������Ge+F����#�!8'�'�'�(�,- -�-A.�.�/K01�1Y23�3�4a5#6�6�7j8-9�9�:v;9<�<�=�>�F_G�G�G�KZL�L�L4M,NSO�P/R�S�UX`Z�\�_�b�epgh�hDi�i�jXk~m�m�o�vx�x�y�z{.�π!��f���n�ȃ/�����:�ՙ ��Z������`�M��������>�+���u������	�f�S������?��'��������l������,�L��1���������B�^��������k����H�XS��*��P|	�
%�
�Kw��� ;!�!7"�"�#b$%�%�&F'�'�(q)**�*�+�0V1�1�1�1�2�D
E-E�EMFG�G�HvIAJK�K�LmM8NO�O�PdQ/R�R�S�T[U&V�V�c�e�kxl�lm�m�z{�{�{}|n}>~�~�~Q>���{���!��������B�Ǥ;�#�����0��s����+�"�����/r������!~����.��q��R���� }���-�p������J�|������o�����I��{�����n�$�E*����z��������
D���6�y���������C��5x��������B���4�w��������
A��3v�������Q	@��2�u���������1t������†�X�{}��core_intrinsics�fmt_helpers_for_derive��_�_���,7�G�<��}m����&���Z�����,7�'2�g�`�t%�x}�J���$derive_clone_copy������,7��r�i{�*��S!���8�����,7�O��㻼
�t7�y��$��$�����,7�0	�fo��t?����$��$�����,7���!�����,�����,7���P�,S�[���?�����,7��k�J-�t�,<��$��$�����,7����jk�#��B�N��G������,7��P6^��rAtX�z���$��$�����,7��ԝM�@�� ��*���|Y���,7�sG�E�U�J�%�w���$��$�_�_���,7��A��ٟrd�,��e�f\��$	derive_eq��������,7�l�{\dTo��*��S&;�����,7�+��[���8����������,7���^N�_fK�>}����$��$�������,7�а�B��'�8������
������,7�`=�z������r�����,7�����H��<���j��$�����,7���QV����=����^��[������,7�o��^gS���W!n���$��$�������,7��D�*�m� ��(G|Y���,7�D�do
�%{�*��S#�����,7�*e߹A�,ϛ��O\��$������,7�q ��Bku��>��7��$������,7��<���q�8��3�����,7�E������f(���$��$�_�_���,7�W٥�WA�#��@�N������,7�!�@
N���W~m���$������,7��&q���=� ��(�|Y���,7�{N'!`�*��R#������,7�bC�hU�,ۚ���$��$�_�_���,7��7.Ώf��>I����$��$�_�_���,7���+�\\K�8����T�����,7�Kv�l~$�u�����$��$�����,7�w��-��=����^)�����,7�׾"���xtW�l	��$��$�����,7�L�U���� ��(f|Y���,7�ȏPǍ��~,$����$��$�����,7�h�g�1:�*��R#V�����,7�]w}j\�d~>$�"
,��$��$�����,7�b��_��ɨt�'��$��$�����,7���n�~s�
�#��>�N������,7�0���D0�M�WHl���$��$�_�_���,7�eI�U^*[� ��&�|Y���,7�bY�Cس��*��R!�����,7�(�
.E��t,�����$��$�����,7�"��.t>f�*	��$��$�����,7�)���ԎK���"�	�����,7��!��8����q�����,7��m���0g���"J
��$��$�_�_���,7�x��X�=����^C�����,7�
�[w,�Tof�
��$��$�_�_���,7�\r�1[l;b� ��*�|Y���,7򅞨z����,�
�����,7�6^�������=T�v��$��$�������,7�P��l+L�4ܙ�
�ހ�
�����,7��0*H�������$��$�_�_���,7����F��#��<�N�	�����,7�HA�4Ȼ�STd��$��$�_�_���,7�ס2�B��� ��(�	|Y���,7�x=�����E�)��=5���,�����,7�é�:����4���
*�����,7�;��|����=�����$������,7�WS	��8H���_	�����,7�}d�P��n
��$��$�������,7�豴k�=P���^6	�����,7�R~��� ��(>|Y���,7����1�>�)��<5Z�����,7�k%�`)�t=&�p
��$��$�����,7����	`�C��4��
������,7�2��خ�S��������,7���Q���i�8�����
�����,7�����7�_�	��$������,7�1E�׈v�H�#��:�N������,7�����	��=�p��t��a������,7�ձ}dH� ��(�|Y���,7�gz-�B0.$crate::thread::local_impl::thread_local_inner�����uQb��athread_local_internals����
�f�f���,7���)��������(������,7�!f��U�|�4�LJ
������,7��S�h��Q~=$�"	4	��$��$�����,7����������&:�����,7�/`�Ѻ[*�8����
�����,7��(��/�J�����$��$�_�_���,7�c/�]g�T�=����u	�����,7򖵄�;���� ��&�|Y���,7���׹]{Kk6$crate::thread::local_impl::thread_local_process_attrs�^����Gb��/$b��$�����,7�B��v�E�4̬�
z�����,7�p��*U����=��$��$��$�_�_���,7��O'����~$�-��$��$�����,7��҄9�][�#��8�N������,7���h�	�1�=�p��t������,7�M�f]�`�� ��"���{Y���,7�+��'�6���������,7�n��m�R'�<'����$��$�������,7��#E�b��4Ē�

�����,7�ȗ=;�������&X�����,7�h��C��8����9�����,7�g��<Z�K�t����$��$�����,7�Tdk�k��&�=����u&�����,7�܊F�`(�c� �� �{Y���,7�h�Ƭ���#��P�O������,7�q3�ڈZt\�E��$��$�����,7�o�&���)ڂ��$������,7��h���������?,
������,7�BkY���<��d��$������,7�W.	
�m�E���&C�����,7�y`�RU �����$������,7��yW����=�p��t������,7�D���7� �� D{Y���,7�	j�+5B�[�����$��$�������,7���B՛p����=�����,7�A�����/O�)ہ���$��$�_�_���,7�y4��
f���!,
������,7�-0UF|_���<��+��$��$�_�_���,7�"r����8����������,7�Q�K
�U�����&5�����,7��)t��M�����$��$�_�_���,7��H-�����=����u������,7�(�g9-�D?� �� 7{Y���,7�\@��dťv�#��N�NS�����,7��UL(3���[��z��$������,7�@����1��'��O��C������,7�k��Z���$~)$����$��$�����,7�E4m
{:~<$�!	���$��$�����,7��x������",	������,7��k�q���~$�P��$��$�����,7�V��D��w��L<�F���$�����,7��a@],��<����$�����,7�\Yp�g����=�p��t�
�����,7�t�f��Ȳ^� ��W{Y���,7�&���Dd��[Y�q��$��$�_�_���,7�$B����m��'��O������,7�5�1�؜�t)��G��$��$�����,7��[�o�g�f��	��$��$�_�_���,7���c�@���� ,	������,7�$HWH�92t<����$��$�����,7��nԳ,�h�8����������,7��`�$+t-E��$��$�����,7�����ϙ\�L�E��$��$�_�_���,7�
��k9*y~$���$��$�����,7�_�Ԁ��%��=R���uP
�����,7�+-F�U���1/���XK���,7�h/͏P 6�#��L�N������,7�����W#��t[��r��$��$�����,7�=�؎�'���%Ĉ&��"������,7�&Z��9�?tf����$��$�����,7��w�a����	,	=�����,7��6_���;~����$��$�������,7��0����&
������,7�|��*�Jo~L$�F��$��$�����,7����6���t�L���$��$�����,7����g��w�=Rp��tx�����,7�:m��9Đ���0.(XK���,7��^���lr��%��!��������,7���û��;~'$����$��$�����,7��$�ֺ�S��e��Z��$��$�_�_���,7�:��K#���;�����$������,7�|��Ѧ@�����
h�����,7�6,N�)�8G���H�����,7�-�O�;n�tL�D���$��$�����,7�oX�؜���2LV ��$��$�_�_���,7��H��<�/���&0 �����,7�QF��#��z�#��J�N������,7�Z�6����%����	�����,7��[�-���t'�z� ��$��$�����,7�p�ӻ��(�d��N!��$��$�_�_���,7�c�P0��9�;J��!��$��$�_�_���,7�\��k�x/�F"���$������,7�6�	�����=��w$������,7�f�k��l�i�K�2S��$��$�������,7򍫁m�1�<�P��$�����,7�o�1��N���=�p��tj�����,7���`���#���&_"�����,7�,7f�*��Y� ��$��$�������,7�Ħ�ͪ����%��<�����,7�L�
?��'szR#��$��$�_�_���,7���?���itd��"��$��$�����,7��r��~;$�		���$��$�����,7�QME@T�ɬtF� e#��$��$�����,7��V���=��v �����,7��\'{�%���KY2O��$������,7�1�]��Έ~$�]��$��$�����,7�q`�*5��a�=����u������,7��cx����(�$�����,7���O�����#��H�N#�����,7��{[Z�9�Y(E ��$������,7�E�+��_(��%��������,7�iM�c��c���%��$��$�_�_���,7�� �<yV����,�%�����,7�Z��yQ-`tt;g��%��$��$�����,7����^��F< G&��$��$�_�_���,7��A��^r~K$�P��$��$�����,7�y?{R���t�G%&��$��$�����,7�eᙜC��=�p��t������,7�;fw���y���!�&�����,7�	�4WD��tY�~�&��$��$�����,7�Ղ��:�KK�%̶������,7�̗����*��T&�&�����,7�!����1Of�7!�
%��$��$�������,7�[��P'j���?F%��$��$�������,7򨸾����}tK�1�'��$��$�����,7���+⺯�7G�(��$��$�_�_���,7��I�ᝍ@!�=����u������,7�\'
�����,�(�����,7�oMZE��#��F�N'�����,7��R�x_��Y~D)��$��$�_�_���,7��ͻ]�	�*��T#�(�����,7�:���I���7���$��$������,7�p���k�4�?(�$��$������,7�_����5"�K-1*��$��$�_�_���,7��=yg���<�?&��$�����,7��&,��o��=�p��tY�����,7�Ns�T�F�����(N*�����,7�H�sXbд��X�|(��$��$�������,7�R���d[
��*��T#?*�����,7�?��"퍏�7��B+��$��$�_�_���,7�yȐ�yV�?x+��$��$�_�_���,7��1�]�<
�8����(�����,7򖗜��-0���)�+�����,7�'��l�~��-,��$��$�_�_���,7�I��S�����=Q���u�����,7�@P�3�q�������,7�X��W���#��D�N�*�����,7�^�A�����XT|�'��$������,7����-v]�D���&�,�����,7�p��Ljx�~%$��%��$��$�����,7��w
�m����*��S#�,�����,7��}�O~i7~7$��b&��$��$�����,7���~���~?$�?
�&��$��$�����,7�sv��~}����F&�-�����,7� "��)=����"�-�����,7�#Nb����8�����*�����,7�O]�WI�{��=Qp��tb�����,7��7��I%~$��'��$��$�����,7��vҮ�����H��������^�����G�������P��8�п��+�����,7�Յ�3���#��B�O+��M������,7�\$?�lo�#��H�O+3�����,7���0y�?����%��߃b��$�����,7�����f�r�8H����,�����,7��V����c4�=P���^.,�����,7�c��l�Cu�#��N�O+������,7�g٨$xh�8����!-�����,7�%��`���#��:�O+V�����,7�������=��^&�,�����,7��"�������#��@�O+������,7�=QO�����8�н��-�����,7�5��3�i�N�#��F�O+�����,7�8�[��hK�#��L�O+D�����,7�H���Y?K�8����o.�����,7���L~���=����^.�����,7�K�����8��0�.�����,7� �n"tl��#��8�O+�����,7�-��k�j���#��>�O+2�����,7���A3��8Gл�\/�����,7�FB�0~����#��D�O+������,7�b������8�����/�����,7�k�J�B�j�8��0�/�����,7�XWd����#��J�O+�����,7�h,��D��A�8����J0�����,7�_������=����^�/�����,7�c��Y����#�7�M������,7�����O*{�#��<�O+������,7�>��_'��#��P&�����,7�Y����[	r,	�*	S*	�)	�)	d)	)	�,	L,	,	�+	l+	%+	�*	�*	1*	�)	�)	C)	�(	{,	1,	�+	�+	V+	+	�*	a*	*	�)	r)	2)	�,	Z,	,	�+	z+	8+	�*	�*	D*	�)	�)	V)	)	�a	�[	�*		\	*	5\	{)	�[	�,	\	,	�[	�+	�[	�*	&\	N*	�[	�)	�[	)	0\	G,	�[	�+	\	 +	�*	}*	-*	�)	�)	?)	�(	�*	c,	,	�+	�)	L)	�(	�+	�+	^+	
+	�*	6)	~+	=+	�*	�*	I*	�)	�)	`)	)	�,	C,	�+	�+	h+	+	�*	x*	(*	�)	�)	(,	�+	�+	L+	�*	�*	W*	*	�)	h)	)	�,	P,	,	�+	p+	)+	�*	�*	5*	�)	�)	G)	�(	,	5,	�+	�+	Z+		+	�*	e*	*	�)	\	-)	>\	^,	�[	�+	!\	3+	�[	�*	?*	�[	�)	�[	)	+\	>,	�[	�+	\	+	�*	t*	$*	�)	�)	:)	�,	m,	#,	�+	�+	G+	:\	�*	�[	�)	\	Q)	�[	v,	-,	�+	�+	Q+	+	�*	\*	*	�)	m)	()	�,	U,	,	�+	u+	.+	�*	�*	:*	[)	)	�,	9,	�+	�+	c+	+	�*	o*	*	�)	h,	,	�+	�+	B+	�[	�)	�)	�*	j*	*	�)	v)	#)	�,	?Y	yW	�U	�S	�Q	�O	[M	�K	pI	G	�D	C	FA	�?	)>	#<	r:	9	�7	�5	�4	3	{1	4/	+-	�Y	�a	HT	OR	�O	�M	�K	J	vG	�E	iC	�?	�<	�:	D9	�7	#6	�4	23	�1	�/	�-	/Z	�W	IV	uT	�R	hJ	H	F	�C	B	U@	�>	=	;	u9	K8	�6	d`	G_	@2	
0	=.	�Z	�]	�P	�N	�L	�J	`D	nB	�@	e=	/;	�\	�0	k.	�Z	�X	�H	LF	�D	�B	�@	)?	�=	�;	:	}8	7	]5	�3	m2	�0	�.	�[	�X	W	PU	�S	YQ	(O	%M	4K	I	�F	"a	^?	u_	�;	�]	�8	Pa	�5	�_	�2	'^	�.	s\	hY	`	�U	�^	�Q	�\	�M	�`	�I	�^	 E	j]	rA	c/	\-	�Y	!P	�M	�K	�G	�E	�C	�A	Q6	�4	`3	�1	�/	�-	]Z	X	wV	�T	�R	�P	SN	_L	�J	<H	�E	�C	9B	@	�>	0=	�:	�9	8	�6	(5	�3	2	=0		.	�Z	GX	�V	�T	S	�P	�N	�L	�_	qH	W^	0D	C\	�@	4`	�=	\;	�9	]	�6	�`	�3	�^	x0	�]	#[	}X	�V	U	LS	$Q	�N	�L	�J	�H	�F	C:	;]	O7	�`	54	_	1	S[	Y	IW	�U	�S	�Q	ZO	iK	AI	�F	�D	�B	A	�?	�=	�;	�8	7	�5	e4	�2	?1	�.	�,	�Y	�W	V	T	R	�O	�I	@G	OE	-C	�A	U>	O<	|R	WP	N	)L	3J	�G	�,	XY	�W	�U	T	�Q	�O	yM	�K	�I	0G	E	C	bA	�?	E>	?<	�:	49	�7	6	�4	"3	�1	S/	L-	�Y	�a	eT	lR	P	�M	�K	#J	�G	�E	�C		@	�<	�:	e9	�7	A6	5	P3	�1	�/	�-	MZ	X	gV	�T	�R	�J	,H	<F	�C	)B	s@	�>	 =	;	�9	m8	�6	�`	e_	]2	-0	[.	�Z	^	Q	�N	�L	�J	~D	�B	�@	�=	L;	�\	�0	�.	[	�X	�H	qF	�D	�B	A	N?	�=	�;	3:	�8	?7	�5	%4	�2	�0	�.	�[	Y	9W	vU	�S	~Q	JO	KM	YK	1I	�F	@a	}?	�_	�;	�]	�8	pa	�5	�_	�2	G^	�.	�\	�Y	$`	V	�^	
R	�\	�M	�`	�I	�^	?E	�]	�A	�/	�-	Z	GP	
N	L	�G	�E	�C	�A	v6	�4	�3	�1	�/	�-	�Z	7X	�V	�T	S	�P	yN	�L	�J	aH	F	 D	^B	E@	?	U=	�:	�9	;8	�6	M5	�3	02	h0	-.	�Z	mX	�V	U	<S	�P	�N	�L	�_	�H	w^	PD	c\	�@	T`	�=	|;	�9	+]		7	�`	�3	_	�0	�]	C[	�X	W	@U	qS	IQ	O	M	$K	�H	�F	b:	Z]	o7	a	U4	7_	/1	r[	/Y	iW	�U	�S	�Q	zO	�K	`I	G	�D	�B	6A	�?	>	<	9	�7	�5	�4	�2	k1	$/	-	�Y	�W	9V	8T	?R	�O	�I	fG	tE	YC	�A	�>	�<	�R	|P	CN	OL	XJ	�G	��ODHT D
��gz{����:�j`SoW���P���P)����s�\/��K���x�~P��Q<�0�f�]��`������d������s�	�V��<t	pGh�X�
PYp���|�p���!��@[3H�Ӭ�:t��Jx)� 	(rO� rLE�n1�5��2*�����>v0����H�sp
����| [ʲ�����aƞ�x��za���
�R�Q	 �C���/
z����jcV���`J���%7�=�6C�0�A'G@�!��Q&}
$Є���|-$ �0
	l���%@��	��Q�&ֺ�	T��(�GcH�qq�*0�T���Y-�VO�l�q-�r#�o|�/����x���0�
�����4�)U�
�3.6�\+�1uP;��"	�89<�����o#�?P��5�~�@|6��K�@Ptm���K�@`�����l�E�#&!	"���F�_�=�QG���u�I�N�`��!�
O�����HGNоW\.�a-Q�/:SQgR��A�4S�p;챍T ׈S���UT0a7��	��V0�I0�qW0u	�NuS (0�	J� T�1�	-�]I[02>=�F�k]��|��xV_^���k�AI`+�j;�?aЊA��+b��d1�_�c0��Sg��ba���6�$\c 6�R�HE�f��-����g`S�<:MJg�׽���ʏi��X��p1iP
��>��bbx#L6^8lp�F�c�/o�Wo����Io`GH|dUq!s�w��s`�U���u��SQ�&v�P�*ޏOw������v0�/�嵡xP�'i
�_z�y�Y�z�b
��sz`�P��Ŭ�}Зh�*�@~P�F1���~p���ց��3@ ��fj���G�n |�������[�	��]�NxpK7׭*ƅ��)�	'�u�@�e<�v<�0�x��0��� �y	ގ������	��T��0�׵a����pC�$��R�p�E2�O���ԇ���ߘ�}S��V�r�н��	�4�@�'nf�����c`��&�2��M�[�N�0h|_`�Q�p�ȭ	��v/�qx�y���b�0����0��|�ݩ��P��v	�M� �u;��5��(!d����� ,�M9J*��`�
eUD	�����	�6h|��j����'d�{�5�՝ ��_
Afz��@w�����غ`�S�Ι��֥ufb���8O]p:#�ໆKQ�u� ))�gO����	����po0���A�p`�`�T���0CO;x�p/���5�*�)-Cޮxj�`�a	ĴκȀ��1���ȐK� 	K�� F��:T��̀�nRX
�������~�Tm^��D>��`��m�#�I����S�S�н�
�]tj�0<eu	�L����샱�3j�� ��
o�K��0�J�k������$���o�w�7H�@��3���'QK_�� �I0RF3�8�'�<{�`s�c4���v�ڞ}���u�L���򐋅��hO�8���EC���������������g��j���y�+�������.�K���P��i��(�VZNx�ȕpv�1559
���O1WOC	-Q���“B
���y�§�f�J�qD��b��3�kߛ��\����@L�t4@���*�������<!U��:� 1ϕ��� ��vH�?#"1r=F�V��!1�� ?�[*�m�o"�/�H;�.&!�}�����"�TЊ4l�'� eS&�%���usyT,��=�P�-�'��*�-a~�$	Xdh1��-\(3ar��H��5���	
����61`�=	���7����e�P7����v�AV7ALF�_i�:��"����=�����/z�?�f.�x��C�{�֎�E��(�׎\�Gqx�	�a[I����6g�LJ�o��� �O�<��?]�P�"F���RQ
q�c�.S��n�|��ST�9F�ZP�R�ʩ	��_[!��$��[#C���i]a��t��\�^(�)�L]�Ɨ>�/�_�����_w*a�fF��b1R�5T�jIbA��-��e>a�	�oAV��e�~�8�G�
f��E�^��f�q+R���Dg�g~�_�Vi�Mր����h!�I"p�k�rܝO��i��E>ǤT�m��\�Xg�n1� �-A'o!�7kA��o�P�=&��q���k���mq�1D�??@`�a��!{\q=*.	����r���J	���:c�a�Y	�<}xq+�xq�1y!�w·p�z�����9 zQ�G�%�H}Z�3�=�}�Ɯ��2~��S�_*���������AU>�K�+��Q�	l�Q{�a��Ɔq��I
5�����)��'�����Q����܌Q�N�U����$����莑*�`�⌒1�V�	��2����	��x��Uu�d�J��B!��"���1����V��u���S��~�#��R�������Q�\����נ8k��N������XTh@�!�d;�l�1�!���?��l��إю��]��{�!����������d�|l���GTzk-詡Z?Ӡ�u����{�ʫ!�u�n�N��6Q���������DR �q}ޕ��=�!n�{�(�Qsc	�����Q���	��却AId�!���^�i��Q���/�?*��A�}]	�޸E�QI���K��A�RW�PI����ޓc�T��/�1,�ͽA����X޾��Tlf>н�H��	�13�R��	��q��x�^7���B�66k`�і�w�%T��N�:����QO��ʶ�Ё��F�d�1��C,'��	�	�.��!T�	�4�Ձ��b{Ց+�b��[&�17����'3�q@sp�����-����j:�Qi��b}���S!�o����D�jJ;����S�B���r�%���1���!�30��a��	&Y����Re��u�a�ھ@�Q��2^ل��
Ε�+<~��@��������=u�㼛��Af^�Q�%����ƺ�m3��O]�����^���^�Q#K
/g�QC/	fF�����	�R{��1]�"�g�ak���}��A�������!l[�Rb���q>��঑���x��e
���@��P�_��F���
75��%�D�4at�a��!߱�r�S�
/>~����<�4�X�ґ�t	ˆ�[b}d�胕bX�
����?�#d�T$rS��k�aI�vzü����1|40���T�H�%��l!
Gf�b��6
!�|�/@���r���e���zߎ�|���+���C� 2X=z+�+� ��mP�#�)zy݋N$E�����'˜�'u��*b��c�,"{@!��}-���q��.�Sz����-,����=a��1�/���>*1BR���=X3����Q&8b5����Mc8���c/i�:�~�]�;B�I*�
�:b���.Z(=��5��R�<�B����t(?"�{W��L�?����~�Aₚ��aa�;���adZuAb��XAc��D2t�x��E�I���u)>KV��͗0K�R�^�9�L"�D�(g�N2�7���*kOBk<D�PBōw�%Mb���5�`R�=% ���S���CM�TR��t+wqOb����.iM�h$���g<W�jZ�Z��LR)'X	x6-(Y҈o*��.�Z�+�}1��t[2�f�	��BQ�N�	�j�]��@Y�S�/^�"6#Y�^VN`:��Q�
�
��$�b"���"�dr55�:��jRNYkE�jb��rˍk"��p��n"�^	��ѧr�n�~��
r�t}	T�Jt�+�j�|�v�C]�	�W�xR����]3y��*BCqyR�%� ��{���	T��|��BhXՇ�~��G��G��2�EU	NԒу"�����:Å�gOcV���Z™��_ԇ��F��Ђوҕ��.�	��r3��}Nz��bg0j����b�\��ڍ2gG:����2ASr�L~���S�45��|���i2��Q������bzz�2R���b�M����r���	y���b��g	S�-f�R��}M���r�kh9Y�c�	w$Ob���-��r:�2E�
4s�4�r��2��]3��:r��t���?�	q�Z��2��	�~`?����9~�S���g�e�%#G��u�	j��0��V>�	�/a��	ҷ
�E~����Z	�C��'7�$��BwձG�P̻�e���!Ż�R{,�����������)Y��$��w449�)��52���Ų���	��w���� ���h�����3�f�͒kR��}'�R�9.�F��"�Q�?:Ӣ1 <��&�b*�w�Me��FB�mVk��r�kU�&/lײy^�BC%���H	�0��B������R����A���
��7l�e�|[����5�)A7	�"��E�O�2O#�]�/;�٢�
�\�c}��[�[�:
2R�=����6j/���,�����pʕ���b���td+��P4�}�^O���oP���
[_�c�#��N�����l�+4���
Y�E��ʿ�0}���6�E�1L�oix���
s�I�S'��>4	�G�U�kt�	�^��@3�a���	�&����t������~�_U�����H^���P���`����&�J�����_	�#��&�.*]lcsq����A�M��m·�"3#h�f~j�$c'B�	��g'�nF=�R��'�%f���R)S1��N���*c���	Љv�+���s���,7����O,5ZQ'�.CCm�"�-���e+�N/C6���"�1�Z�`�TA2�ϐ�XŨ*2���b|Ws4��ѫ��xU1�ӡ�c_86�,�H��3�7B�8hf7�j�E17.C6��	kT�:C\����<�7ӃW�	5�52:�\n�	��0r)�	�Q�.<�^z+
d�@_G��[@3~�Zװ�vD��r{��ÞFþd\����L�pa{�N�3l�,O�fR��U�5�\2ZS+[S+��	�{�^���L�[h^�+�R3`3�Y�;��a������^�I��g�{c��t����b��
 �G�e�Q����R�e��x�n�o~g��	�
/j3g�d7le�k�r�}�&��k#�ˑ
��m�`�8��u�kÚ�S��m�>���"�p����Dq���ajrc.5��sS�M��Pb�u�nk��v�4�k�Izc�[��P��{s7!�U��zþ=�tA[e}C��A7!�~3C�
�[�;X
�>A�>{1w�4�ceb���$��$��p1,����	Qu�����:�	��܇�Z�d�_܇CC��	���*�SÙ��Jk�C�q�%��s���"�	��)H�#��xf]^���n��0-�S��C�L��suy�tG�C�V������$�p�����W���*�����ဂb��:����l��1n,Ɍ\����o�ߞ���f�y��l�p|=��:���È��6���㤓m�o8ж�#�\	dQ��SCԤf�S�S�j:��שpO���ά���T�[�­3"H��9��E�vE�$��GF�2;���#��NSl�}�ss�
�#��ã���`θs--n�[�C����;���WG	�Xn���&Z5���C��ޚ0��#���q���@�&���C@�b�@��G��d"ׇ�Ӛ������c�����
��s)Vݩ�y҃����&f��N��	q��S4��br��S��0�A��SD��UJ���:��������A8�����#������S��U��w��Sb���z��c����DO��2# 
�����96Q�g�_�f��	�-
��{�	s.~�,�	ɻ�"$�	�W��CoB�	#�v5��;�
d�^����.#���8
N;���>~��{�hD�1E��DB�\8(�=�%dOfW�ˏ_�����jA4"5G��2��^��|D	�V�xM��w
��T&N���
�)\b�@���f��c
�4�""U$Y
�x\���5
�ߟ�
m���X>	��eԪ;L�݈�%�4����*�pX�h;d�
�H2b�n&XmuT��,9)�R�B_����l4���0zD"���=��3t#$��㙪m#�N��>q;$�R�:�Mͧ$"ARF�'Tq�6�j�($���	�*��)����xG)*��9��Ȑ'$��7
�y�6-/a�HU�-ԯ)4<\+�0��8��P1j�Ol<�2T�M���?3���R���5�k0�M)�:4[�d3�_�;�ge����?4�Y��סA�W}��?A`�“[�At��E\E?B�s�f	��K�Gԝj!�a�H���>.I��b�V�ȴJD��c�Kt%2�-���L�k�V��_Q��>
4ѿ�ST\��A�@T�P�^��cT$Ђ
�?IZp5�1���[4
.�SH�\D�`q�a]D�����^��?����t^t]���X�?`����A�^tX���b���	��qe�5��Q�j�DX���h�j4cu%�@�}lT�O����mt*�2
�\�cnԺ��ףt�pd!*����q�y�p��Hp$����a�p�ǏOI�GKpDs�{¼Bou$t��W�v$D8�w�CtT��=+)xD�Y�#�7x���t�7u$eK�.��{$����Z�|����I�Lx�4��	�ڈ}Ten����|D�����z>/o	������v"�~�9δj�ة�$�E�k4@�������u�ڥ�	ڮ�Lw����	(����$���:���TB׉�����4�mo�4�u��7M�D���~5�$�M���ڒ���(�@��4k��k����wD�M��Ī�I^gʚ�,��wH
�4�d0�޴����@	�X�m�$ڹI'������^�Mt����y�
ȟ�lD�����R���
ne�TfM�(���/�8O�����)_�ؤԁn��]��$D����ĪY��O{��n����ȫd���g����M9B�j����mHB��p�-	W{iv��F�
?Z�����1���݉��m����O��W�PV�lw��;��KЧ�d�}�ҋ���=;��$a��g[�9O~������]M]�T�(P��%��]-
�AO�����������-S����$|��ְ߱Ô'�/����r�	���Ŕ铜�^�"�$>rfض��t���^��T3D�2���Dr��V�	Lʤ�՟hcP��ԙ,b'D��BB�}I�tZ1�$�>��1�:*���p>h��@Ϥ4%�D$�Ѥ��B]0�Ҥ���
���d'��l�s�$��<�볅�t��/mǞ���$�١�K�ԡ����{�t%��v`�ٔ"_�BPC��9�r-�mմ_@1	�oŘ�������;ݴ�=���k��4k�v��A��F�:vi
�T�=�G;��d�t+	��l�4L�(�k���doM!�x��蔸}N�HB�T�G7�P��ԯ2��������\���T������Ē�n�
$�¢�$��S	������v<Q!�$n����xX���89�]K�E�8��|�����앧��14�yq�r	��6�����I�
�E�
5Z/iEV�P
��a��d
eɞqz���&�	HE��ՠiy'o1�TDb�L��ı��%`Z�ɐ�Uu���
�o�5��	�;|8=��	���z��k��<!50��>�!`q�wX`%%2�ms�Q�%us�����+e�zK
�g-e�;4}���.uɒ�J~@-E,P�����3��3�	���4U݇V��7e�z��8�+f\��o9�\�w�\��9E��%<m�O:�宽=%�~۸�'@�
 ��]�AE)>�ݳ E�1��g��G�m��.f�HE���<��GKE��jlgZ�N��"j�Ox�i���Q%�3�O<�R�e�<�;>T�$'���VWո�x"�@uZ��ZAG[%���).\%�OS���dE���Z�BhE�	T��iu����jiUVX�nط�kuu
��7Ule�d��pd�m%�	�"nu��|	���q��h
<�t�@d'[U{��L�"h|�>�N
|���
���4~50C����X~U�(ya��ԏ���D����������%��k;9k���k	��O~���{� ��u&����^��Y�u��%�e��G��K�5O�v݌�̏�f�����E�JS���uO��^W����KC�H�յ,��V�5�(��-8���Z6q
�����y�f�9yƟuy���`G@��C�9 �I@��r��.?�E]�q7���>�D.‚���kWL�T/�展�������q�;�eP�'��<(�����ǩ��u���,�4�5f�i�֦���R���e3`�aEV��yU�Θ��u��?F"T��S	6n�ev�j
d`8��(�X,Qo]���R	ȟ�[��⤬,�OF��W,�	��U,��	U��蘧[*A1��];�#�A����P#��E
۷�(�����˂QT�ƅn�:	��z,�勆�3�k�5|��r.��u��)��{�5�6e������H	�؃�ϥE������U��BL�e�Ev��
�{^�eu�#�<�%Ӷ*
�14���	?EIdem���$t,2�3ߕԓ�0���5*�����M�5/M�;xJ����Lڗ����Լ�r �ᵷ���*���RE��=
�UCX�b�B�(1�>����9���-��0�b���I��u�}���F��U�^L�~BU���	Ǔbi�)D{���!���
�T��I��8R$��U����-ӷ�կ-��u���r�6����e�l
m��E��;gm��E��1D����Bw�����Oh'칀֖u���*�r)���1�5�y�rIվ�5��ydg���E(�)~��Ƭ�[�[����r�A
���&8=���_�N�O���8�[9a2Q�<���H�yeƵ����ch�NF$�ږr�B�v&WM	_��/�cws��2����!"U:U|�y$�����
lg%������\&5�A���&��n�<��b(6�Jb
L�)�M4m^��a*f힅�?�%ƬR��
;'��.�����,�V��C.f:dP���2�9Y�<�5v�r�/'f�6V��g��F�96�,<T�:��M~Q@=6YwG1�g�=���D��=��]�@��&�}��^A�'J E�B�.��1D�@f����+��D��l�DDv�EN�-Kr>���m	ꀙ�G�^*��F��I�u�Y��M6����u�M���)�
� O&Jf?����N-��HؔSf�_!�XT�����p8DUf�%n�JU���KrU&N���>��W�n)�9�W�����o��[6�����X�]�(�0(�_��[8p�_fq�
��dF�2i� �e6i\H�GXe��A�!S g���&�o�&g&�����idcma�j����
Y�j�r�}vlfK��%օ�g�%\��|�Ah��d�	�5W�oV���#2gdvs�	k9�tv�FG����t��x8&u6g�I/��"u/��߬�m~�3RNN�Av�怂Ou�U
������F��N��%'�v�(/	�^"����LW����f	� �"�F����4]��4KC
�J�u�V�Zto���&�9	.y��f�[����V���ب~^�̅��Ɠ��|L$�$p��H2�	$Q�3�֩I�4/��Л	����6NsXd[褙f9���1����5Ih2>��R�	�j�מ��K>
g?<���@O{zn/���.I&�'���������f�
IM	ͦ��.iw<��v�Kg6��q��	`��|.t�f?6N�:����l���W�5X���e.hd@
ݭ�/W�v}��� ��c�g���H��t��@�t@rɩƴ��b���3	$P���@b��0��Vj�2��v�Ц�B���jI	��qU�����	�s츶��A	�Xu8��rT�	�?�F���W�Ƽ��Ca�)ɽև��o���֤2�k� ���y��E	�_�f���jr��¦0��,�v��,��d�o�vW�;	�����V+�nO���Ǧ���kB;�̦1�	�;�rΖo��Me�Ζ���-wK�Цt^z�*�v�+�֖$�&4�Mɨ��Ӧq���;���>���F"�V�(;E��F9��s���
/'�w��Ѽ©٦�Ȼ%sf��f~�vv��$�ul8�8ܖR�?s+�ܶ��������&�-0�����&����*�=���i�	��u�V�9W<��Vt��d���������V����xZ��H�3t�v��V���	b��c�&`g�<���v�(
��&~����D���6w'���F�:�٣���Q��2�;���V�����f6�8
H������Jh1���s�THE�F�]�Q�
�6�{϶���	<.[L���j6	����G�R�ä�I�H�S����$i�x��Ԧ{3,�q7ˁ���
��l���;�(���3�
g�2S��w��<_lב�U™�J��
�)��
oA7Z�#����'�$:U�T
�y�J��x��(U"�&a�����=GL�3�#�	w�	�J�W�E��y�Tw/
E	
�D7&�	q��2'�+<
��JFQ��šɌw���l�״%##�ǘ�Apw
����n,h��'G'b	N5J�(WxO�@��y(g�w��H�(�\�<+�Q;,�Ty�T�0�6d,ND+�1w���pIk�2��1PGϥ3g[ή3V�<6�
��aa8w�w�	Lق:W��7V�?=�k�(&G�b>���
1rv@כ�ZK�A���	���Bw��Wx*:C7�8��_%=D�u�t�0Eg��|ԅ~�B��+	C�;I��\�	�MJ׽T��׃K�p��J��
N�?�y�:�P����Z���R7sH/�^�SwG/7WpJU���<��H^W�*��3^�M)3���ca�TR7ua׎��:�n�a�K��j�n�f�L���Y�fW��xsi'I�Cx�;i��`�	���o;.i��p�"���Hu(p���c���rWR�2ͪ�t�a
�
e�vW?�ӎ:�vw+��H)|w���uO1�v�ը���{w$!�Fj �}���E6}�f
	:����4�،}�79W�������f�%�����&��R��KI>K���G|�	������dW��"�^���	j�����������o���:����p��W5�A����|]���c�1��r��V�w(���w$��
d3i��Q������3��h�����)\7Mߪg��Iu�Lm����:"�N�7׼�"߮լgCJ)��)��)n�k#����R���_j��R
�;��wV}���A��_S텋���-�fm��8@��&���g�ׁ��c���������ɠ�Tb����R�0	�
ѹw��G�,�'d��G�Zϱ��/T	�$m���_h
=D���7-(,
�gW��p�O���0��l�GO�]I�M��-E"������g$�*<�:֣	��2)�WŐEЫ�O����q��7R"�AD* �'��$VT���<U�,�wN��	��O(їr�r�R�Ї���	չ�G?��ŸY��Z�RԎӧ72�rԷ)�'h�m֧ۡ䫘��'v���@�g�ǩ�RD���7�h?�z����
�LC�K`�������WU�
C�z��,�����eM�bC򷹊?z��4�כ\&SN�t�"
ſ6v����س���7��O�dQ��_��ꯋ�ׂ~������W�FW�z|���Ia0-�����z�������2?������tp*q���x_��H�����XU�6�xv�j	�m|@��);)�
����8��9y����w՜���V8Iy�	�2�
� �ɞ
UJ�e~3=�r XMe8Y�����8C�^Y��ny���X��]3Di-8Dh`UǗ��~����*�C���X��Y���D����f�t!H��T�.�	"x@���D#w&���G$(��FK��%������'�ÏT�k(舋�r?��+���v;#,H!���3)W/��MY�p�L2�<��ѐ�3�����j�2�n�Ll�5�П�~�6qw�N9�6�'7�,<ژ6��]Vҡ,7(�q�
$4f��ڙW3�1��	�1<��'t�PZk=�k`�=ȓ�ZL��BX�ʮ����C�0^����D+��V�=�Bh����͌�G(��.
�t�Hx�9b6~��JhV��M�cO��6F�P�E�	a
RXh���)V�S?�Y�zw�F+K[�Dfhv]X[��;;l^���N�[��`�s�)�BB
g(J�����hH�v�d���i��8�|צj�a��y���h(�]���j�l(�M�NM�k���+��ɶnH�?U��oXh�l��po�d�r�iT�Z�s��7��3�u(3�	qfw���@Dyxe6k��Syx�_��c{6���QU$~hQ��r���
����(�p�\�%nu����w�&��XQ�k�Lv���=�W���ņ�fH��h� J�9�ņ�^+�F�@f�H���������g#b�h���	V�z��l�9�6�m�H;���G4�X�I�-3����kGc��H�X�R��'�C�����
�)��F��b�h�g�p=����k�Ɠ�R�8��Дأ�ON�"���i�D’��P���ب��l�h�ȎUX!>ﻛؼC�Xڙ���V�Z�h�AvW��)�xޙ�Ry�h��*	�`࠸���	��㜦�����C
��{�j~O`���i�z���(��\�c��XG�4EJw�����u�T���(�/WS,��Y�&za�����,�����S$
�������	��Zs���9����Α��#�F�(�
�	t~X̻Xi#���H�wV�@���>��r�C��u
E�H�V-/ ���h�A��{��8P��~(ɱ�x���>�̉���u$�@�(���_/�x���#{��x��g'?�x6����8!C����N�B��+�h��M�
��x��ا:p��y��@s�����jKRҨ�3�����X,v�eOֈ� }�1y���d�	��^�ۘQC2Y�@�8S#�V�4��ֲGU�33�8�	��h�8IwQ#�p�H���	���(Ns�y	"]���{��(刬0KoH�+��Dl;Pa���S�+u���tp�v��Th&������?�����E�-+4�������W����� �Ɍ]������X�ۜ�I�����tz����SL3
�u��� �;���X�O����p�(��">�h
�+�NW �hnˋE"�8�1jW^����
�
�5��t�wh����P	;�N��8:rm��k�8aW�'����h�l\eG����9t�� �����C���to�
8x�Y)������y���z��q:��mYQf讼!���%��F���^M���9~
R�������	�<�?_9�E����iy&`�y�m���a�$��Ei1ʫ���y�B���bgI�!
14X9wB���|i��l�s����5
M��*%�v��������J�
$���d\9���'1vI���So;Si���VIA�d�wt. �.��T�"!Iz�w	�r'"�A��~9")[���$������V�%I�d��>V$����9yt+ɌA��VV,���?c$�-���]S�3�.���6���}/�gU���0i(��*F/�{%�g��U2�N;�m�~�2�}#
����+9�34
�Q5�W����¼6 ����9I��tl�^�;Y�bc�|t<��r���Y�AuX�i
�B�F��x~B�Cy阭�L.7Gyz�2a�C�H��~���G�d�����KYIφپ��Nٮ���O�~��
?m�Q9Ӭ�y���S������S�VYJ��&0WXY�����]Y�%�����ZY�Hj�LXI�����LfZ��ms����Y�@A�	1��^��Ֆ�
�^��fb�v�h`9��8Z\�sa�F�if�Ĺ
	��Ih���;����h	o}.���j�j�m�i!k	�R#�{�i38O
ر\k�D����xsn�y����`i�`+�o�Rq)+!B���rI���2�*tI�v^md��x�	9��y�~E���X{	��D"+w�����1I��ٺM"K�)U�i9(	�����D���&�}�٪��[�IS����n�Z�ፙ,5=� �3�)��/+��׍{��皬��;%�	cL�9�)j"G�����h�k�G�)l%���N�)lі�B���0����ߗ������������O��<�1��,���q>	��Ҝ�����C�#��K&2�	�$�E9Ƕ�	�B/��ՠ�P1��ˠ�ss�M�N<����
v�"\�Y#�v~E�����}�:�ۙ�`A	�����	,x�E
�i�ڤ\��9�M��|�y�3��mk��R��&������|�g���隠���@}��QL�JMݮ	��q�b�����F.�Y��e	c�]��9Uh	Sv���)6P�կ	r��	�c{���b<�ɵɀ=YH�ӹi�Iz	���޺i.�.+ө�����4��Y��8<XP��9�p�zK���Ins5��m�Ét�W�����	��+�r�iׁ�7�0��Y<�3o��r�9��c�q���޿RWO�����Cy,�̹;y�O/�E�y �����	�jfj��Ϲ��#����	Ζ�G�H�I|d%���I����y/��	��S�7a�yJ��yTY�	�q`(�[��ߎ~��DӉ|��	����^3J��0۩�/�	���&���>�}��:���\?a���I�Q=�O���?�[�٘y�	�A^�4������|�B����8�fB��0@��2-�����5}[鹡�z��9���$5V �tY�)�L�IH��f�!�M_
��VM�3�,�z�1�	$��E�_����8�-Nu�97������X|4TB�I"tt��[����eo�V���=�IN������&	�/���|���ʘ���F	6�C*6U�|ﰭ�͔�\j��Nj��\�Uj��t�G�ʣu��h
*�>S!�Ӧ�#�E"FP
*	VU�[@4Z��3�`k��d�:u/��L��ݱ�8j�����
z��'��
djri
�|%�Z��Mf�@%!�"?a|�
�&*c�/���(��,��Z�):3�����)��������)�ґ�����-:���.*0:�c`��/4�3�	���5j'L�u���7���o��q7��ґ���9
�U� �"%=�`f"i>z�3��=��Az`��!�kC����ɗ�C��D�4�	PC�����’FZN���iG�%pK���H��	�e�Fj��&�QJ*c�����M�����c�N�����W?Nz�+���xN�D�xQ�LOj�L7�.RJ��ݛ�vSzϣ��g�T*u����	pXZ����le�Y�of�<��[�"��,^�Qj�g_j�nwP��`&/xk��`�t����b*t���2�c�	�c7 \ddj�:�LX�d�]"o��g����y�g�Fb����Jg���pdxhZ��?
n9�l�e�?��I�l
��l�F�8n*$���ܤn��.�lns��y�ҖOu��UoL<5�vjM?i}�Ru��}p<�JwJ{��Nu��y�SK�J�z�=x��Qx�gA��_�Yuj�.[5
u�]��
��~�@�
.��}
Z���>�ʔn���Z���|{g,��
��'�T4q�z=l�3�����n	�I����Tq����}��
�Ǝz��a�\x ��~���ճ��e�W*#Y�*&���&'�Zsh���H3�:o
Z.���J����]�q��!�P����:M��;��ʞZ������*��
s�u�J)�+�g��m9�U�w��?�ݻcj�j{�tbh�̨*NX-�I��M�a��{)�
������26�8v"���8���N�*��p	P��ٳ�^�,������	T�p�J�����J�ڮ���??�����>�&w���0�0f�[������PD��K��u���:�6Au�B��XU||����/��sê�h[CJ�Ŋ�chf���j�����Ǫ��${!��j�����ڕɚ�)'�X���\؎һ��=���n��q�W	jI7Ϛ����W��*�F������ːmӀ�>��VBRd�C�:B4�0)r��������Ժ��		e�Q�̾e�y\���7ܪr�	۹���*�W�BmC���~	�����J	M}����*��uԂ�:4�*�,;��:0�	�7�/�
+M��W��j����z�~���~뚩�=��誼��a.�e�z,��ͩ%����g^�-�J�7�a��Jce��5����|.<�J��xΊ�D�����2R���O\�F�/�O�}ޣ���:r��[kB���.e��*MTz�c��*��e-�T�v��_��J1�
������Pp�	�:�Mn~uķ��X��Ѡ��ijp�
��_/�i&R:ySQ)���bI�ԗ��	����ݘ���Nm=�
�g�{	߹��;�j;���kx�;
6��b�v>��!F��;a^^��M7�	�v[2<����>P� �G�_�9l��{�(��C[��S��G�c�kVf)	�P�"��
}��$K
�U�Q�)� !��Z�*�=V��,�l�Ue8\�.���+Qy8e/{�	-b��0�"�k� �1ۏ������0��Z��O�4K�Q!�u4�h�'
���6��I��b�36�蚿{��7�_��
�7������r;�
���6��<���_[�;ۢ�85N?+��L�Y�@�����jAkV����B�P˪��E?k��{`�E�,yf= �E�P	�̟kG��t�6h�N[T�����O�N�i�^��O�\�`~��9Q�R����P{���	���T�n�ᵅV�R$/�b!W�$��A��X{�g�Rc�YyZLd�7�Z���|��sXKY�q�v��Z�ڐ��t�[�����ho_+1G���aK�=��H��aK�1�_q)ak�`	���e[�/n���f��_�.T&�g�5�C�,��h+���Ci�z�,���_i;\_Vi#yi+r��J�lۏݚ��@�o��֟��ēo�|9�	��s;ً�.�S�s�7�b�9vk�&��=�w;�?��NKz�BЗ�h�!z�2�m!ɛ�{[ip+�/�}�����N~˶�c��BWzk�eъ���k?HS�‡��WNx������d!�N1ւˤ��ߥ����Xs	�s2%�"r���O��q�s������|�������	VƱU��i��wL��[U����َ�:-'�#ɐ{s�1��`����@~F��Kˁ�\⪅�˂;n�3�`��2	LE���[X�_X�_�����	��_w�Kȅ@
�wM+�n��cN���+	��r7�{�S�	��s��[��g�N����T� �E�K4�g�|n�{���B�kޥ�G�H�gB���3�'�����������ND6X�M�kH)��@�Kl��s�K)�����k,��i��ֲ�z�Txd&|�����M)���Ņ	��ͯ{�	}ynW��z�	<6ۣ݅)�[x���dj��{ʼ��񙺫�������{�=��]G�ˮ��	���Żx�_�G�4�ۋ�rc�QS�;5��=�W��q�5���ѫ�]ŦZ���ϩ����k��	p^|��{�P#�3Ջ5aW���ػ,�
�ex��{1��	�%-k�K����(
!���kw�M�⟮޻XlX63}�K���z��;:9<�Kص
�?������L��k�!Z_`�BimR����˵�����K@��,�Q�}~��f�[w��)c*������f��;<���,�;ۂ���f;��{p�Ш���,m*_%��|�r�;�|����K�]f��xq�޵��i*w\�aRT��Y%8���l\&ftʚ�	����u\�~���y�d�
ҳd><ّ�|���
���$f��_5��$�,�(	{�C�L�����|�85S��=�I�	jn��>�
慲,J�3/	���{C�qp\���1�\�!�6��<X4�O+���Yh��w��f���|P�<�P�k� �wk��A!�qt�����"��E2�y",�w�7J'Lomd|?�'܇]z,�i(����*+��G�d+B��ó:�)����7�V.��&���.��m�5��0\"��9s3\�Jr	�H��4��$��4l�X�g��6�~�*[d[7L=�CZ��<�<M�֣�=�8ݗ,f>�JՄuFr�@��:!���AÐv��AL��VJg�D|�-���7BEL@�C�u��D\v�V	:;�J��+�xv�M|Y5o�N�{��,�#�O�%�(�	�N����ZqÚP���p�X�WL���+�WLer#ai�pX�_����4[��>���P]�զ�=,]E�jP�>�_�"}BL�&�`<Q̤��ʮaܗ����D9b���|�4!a�30t��_\���cܨ�	����f�6[���l�(�ߡm���& �;n�xj�T�_bn��?��*{m�c���m�ĵ�z�E�r,�Qf���m<��SV4Nq��%
3�1ul��V�nIv�.��	�kv��G~��Ky�$���j�z,Z��S�|�z�v4
B��zL+o���^~}\lj@!�0�}�	�����l��yH��=<^���{��z/�3���\Hf�[d�փ��ʌ�:��͓���=��Ԟ�=�~��P�gr	X�<�S��|E7�,�p���g��l�B�	��yV����&��L����p�l��^gS�����jixš,wP��9ʵ�̸��	 ���,�3��;���ڳD_*���\孵N䊚�܉����Q��\�>�☫i�����Ȼp�l��@��;@�,��z�;Q�L���`5���6�����������H�F�3-Y�����a��'��69(&/q������Sƶ��3?C���%��ܥ���S�0����lYQ��1퍵�.F�?�m�,K	�͗��<N�Q{Y,K�%&���H�]�Ln$/�����	zRzs�\�t�eӟ��\��u��2_��0�J�l��,郔)�ƛ�9�E,HϜ��C�/D��,Y:}�������86�L_1
-nGՌ�mR�~��<Q���u<،ص����4���)	1z|ی@�Hמ�Z߬��(,1�߼����a��l�
���|�78	hk�|G+����W�34H��䬰�K��gJ�|>
�	G�����]7���\��F0vκ���T';Wc��'���/���s�zMkD�|�5����ܰ#5	�R0�L�ֽ�{�mͶu�>��k�Z� �vy�������YN�{	�<X����Ah�i�p=����1	O
]�U���]=�M�Z�H��xVT�B�-�oW�n�=��hAW��m�V!ߩH$��
��P�e}��>%=	W��n� =y�<Ld۲!=�P���%!]�T�θ!=ĺ�|$-�;��@�MB�[	�!Y�)ݠG^��d�*-i�Or�$ +��o��p�,��,�^�	,���	�z{0�]���2��|3��Q*�{64�ڤ�qQ3����M��w6��B���`�7},��R���7�z�����9]5;��0�.:-m?Z���5}2s�wc��2�]<���z�=]{���-�?�����I6@--т��B�ģ�E�ʹB���\�2
B}�
��!�E�1��	�E��F}��?u�`�Gm]K����ZH-���EŮFm���PuEm�)
�
�K]�"����MM�C�eMM�(
�#W1O]2L	;y[�X�~a>��TX��Y9+Y��:w!��x[M� ���ď[����	!��^�.����F�^�R��X�`Ma1��Xa�o���Y��a�=�V%��e=�E]9e��y�>�o]i=8�~��/�i���S�xi�U0����Pj�%5=
-9n���s5ho]h�A�r;Fq��3�詁�t�r�3Q|-���H�
'|�#�����}\%�x�r�|2���Y�=���?2��˕��"H~�mg�5���D���
g��N��mJ$�X�;��X`�����-p�覺_�-�c`,��̛(���D�u�
��9-/Ý�H�'��C���Z����<�-i��	�es������i����6߿�_'������������$��q�7����
-�����	K�t�=��E�z��֩�eI�]��)(��-
��X�4��0�y^a��mU�
��J<��V�#	�'l����2	^/�ְ]�^l	M>��4-_7G@���kd	�3#p��7�lZ'<�
jq�(�݉�	*y����p�S��MY��+�v���0�ܰ>�ƍs\��1��=|�1�
P�=?�yEZ7�=� .ĘA��?^Y�V��=���r�e�meH���1b�}mA�{�VZ�m���ѡ��]��'	���=��H�l@��)�A��
1�?��
����"��	�mSq����M�[X:����%z�4$���)�h���]2���n
�G;�#�5�p��p� �Q��8d��3�Q+����
@�	������&���}�	B�W����HE��t�^i��3$)�
>(�E�9Y
~vq&St>9<��5�}n$#cG �6.S��r�Nsޜ�W_�_�nt���R�I�	������|�����~�r�fO�nHu<	~�>�.�D��gn,���^��!N����w�!�_&�~�
#����=S�$���%9f%��kn�g''~��]�k)��~��?
�*��
�l�+nD	]O���+�O|2
��)>�
)�^2..��Ndb�6/���$PT�/~`��3��/������@2�����F3^MG�5��/.�k�Dr��/��@4	��06�0�E�B>�9.趁Eܾ;��yA9ße;^����EC,<�(������=^Ee?	�s@n[��ɅL%@���=;��C�FQ��
��C~��i
<
RE�csd�E.���	��N�G�l/����J�А,	���Kީ:�����N^g���3�3O~��Y�b"�P�R����#4R���>�T��H%��LT��Q)��knV�5:
��VC���L�
V~���U~*v}	��eh[~��~J�?\�_B���P]��g]^n$�_^�I
�s�`N���j�J�bΕ�A/]�^c�^�́dK�r�^�d���BX
&�fN��b	ug�I.�F_1g~�d	��<i�R�-A
�8jnc���9��s>�'7m�٬s��#s���u��oBst޲z(���y&
e
Di�{����߾�{�h�	�\�{.$��	 ��O�ΫAO��S��4X*�������,����N�_D�����Tg�����.�C����N�����n�n�ykm]�~��}n	��ώn�R����7�N�����*���kN�	��Rd�>|_��bt�>��,8K����j֛PT�^�+�T3#���S���� ɗ�7��~ۗ>�dAS�E��P��0�]@�n�?!�Z���L�{h�֏�~���.yΟ�P��?���BB77�.�Nq	�(ݤN�x	\�K�������3��������8}�N{ͰU���Ǜ%{m��G�����2�n���І�b���~��)�;�nzdg)�䨳��:��䶵��L��c����M@�'������:��~����?^c��-y~���������4�K��ý�f�������e���^HP4��'����Eăo��Nh~e\���ޡ�nVc�ʎCqM%�>����i	�n�T�^���	-5�	�.�{� � �^����(��^���˫Py�^
(��.X�^��JR�b�������|D��NG)�ࢴ@�x��n������w:˽��>������^W��v<��^�_�A�N�R���;�n��v�ug�~��׍���.@����
��~�z�nX������0�	�~�J�'|������%\>K�]���
�[������U�����^|R���i���7�Q�5��e�Ba�B���g�k
�~"����V���p�ZG;���@��J���1���%������k���t����
��R�t�{\��>,>�֛�nţN	E�?��\8
��T��\��z-�
߈����Rl�G#eqJQ�n�,13��
?=��	�m:��,I%	Nʲ5?�p{�=n���Dh1O��,������U��o��<K#��S�_�����l��1oϞ�:G���"/o�;a+�~#�ds_Q&�'$�2F��W+(�H-b$��(��;B��(�S{�Pwź+�'t���s,��/$S|Z-jS%�`mc._j*

gJ��1���	/��4_����Oe?4�N��JV6Ol�"q�X9�P���z;>��b�%;??a��(�A?i�[5!�B�d�� ��CO�h"�EBv��%�Fπ�&
����G�րTn��JO��e��#
L_����T��M����Q;O����[KOP_9�����0P�Q���:��P���O�r�O�P[���CS�b{i:��UolV����P��Qa��(R�;0
�� �Y�;Am�yZ�<��	��]�ț��_��^�
�
҄^_\-���!Ld/���	�[�h e3A�|i�o�B	-��j�'��	����lO ұ��otn?�O	31SLoϯv]�k��p�Z�yF8�Ko_	���[q/$%Z4�[uO��+�C)�x#=
���y5�Kk���yw��X/%�y�jZ����|�lA��t�|϶�a��$z/Tj�	].xN/���B̮(�_�bV����=��֠���r��O������o5aF}���8�	����Ϙ֑����s���5���Mc�\����D	��ǎ����8����/�0׻���j��	v�Z���w� �����*�\����	(��1��� �D)h�	q ;����ニ[~�"�o���C|���AD�Mܢ�w���<���ϧk9�^o��ܟ�e���1f�g���A6�za�ᶽ	h&���(!�c������$��c@�n����v��7��?�3�:���(�!�ͨ���Ec�$I��)Eghf�_�G�B$��#��	���.��O�H�h�JR�W�oǎp6��ï���4� �ώ@i��d���z���2���Y��l���u4�ì���9�9��W,b����ߋ��4Z���a���m������W��oG�
g{<�я~U�;Ü�/���àүK����I�?5��Q�|�O�X �]
��	^�q����[���t妗��1 ���/�ϊF�	VĬ�߿S�k�*�������P�?���ӝ������@�O���	Ѡ������g��O0'+�K�:Q7	�����oq�	�͎��z�p��_$�����b��O���4Ӡ�/�0���W��ۥ"V����_^X�t��O���t������@^��Z��b�T
����|;&���SBck3y}Q48Q-:9XSec0@5��% �`��ag]1���'U���*�.����Sd��e>6R��/f������0w+g?8DM��>�z 2]b)^jV<#��7#�S�SrtCP(W H	2<C�����k�X��"�C�)r0&�>d<��1}z:����Y�k������Aj/lPRCL7Kc��Cbo��{S?��)c2Ah�����%��e[�����������?��$qy;yBY
a����5Zh
fJ��'��������I��S�F&���ES?J;t
>h2^��TS��	�9�`zly#��f�3���=��x�T}����#�87#T�����_!QNcW3@sSv"?k$n".({0lr�Bd]�Nr�	�d���('�|W��+Z�*
:o����.5C2ZPgd*B:(|o7l��2`>�)orP*A��co�cf�����a��ND*�
X���R�9Z��oQ�M|)Igi:��/�c	/%�a.5B-~<d��@���N)�����u�U2tRq;*6r Fov�d��X��	� t=_�ccW����Q_?$LPc=Mv~l����	�+i"
bK\u-7R3' 'I�������,y�[���7>u�.�jWu!�l�"��l�'a#p�N.#�� )m(���=_�\OzY�������U9�����hS�Y:i�f�jy)|�
���G?����P)z�����H!5/$���Fhb�����kQK�[�`���f����	�M�-���lyG_��7$*N��o:��?\0%O8k�����4�!��#vBhy-6zxAH
hP[mC}+7=�/]��9�2�����8������U�����P��g@
Z:k<s��rveca
d	&�7���-by,�=�1lDcL8t7�J�:��+B���+JFlm��q{O�
�j
'�}$k������#^fE�
h�����L�`���u��@�
UK�Xt�����k�� g��i���W���w���!��l���??3t���/@*uP.O������Cz�7O/��[qEm WOzL[�0�?&]�����f2���,�>	pu��5F1L�����WjA����0xKIf������,:gFX�d^GduU,}	kmX7};g"NRi�����}kI�&s�q��@`2x��\ev"p&r7"R
&qY��s���-b.i�j]Q9I9^Gj!@8xTZcPSf 
gt�����
:Q&>#�����F
ea
����K���j�F�����e��$O��
"b-��m�a��N�0��IE����=�I(���n��2	gE�A������6T��c��Ns�N���\��'����������W,2?k��e�� ������{o!�Gw���wo{df�v��}3�lw������GVklmoJ���T��
�3�)
*M]RC�RUL��Wme�mC�y�\xZ�qPk����v�[����Iy&hja�"�����,EW}>/
"�YY96Uq;4:<sJ~��������F�4K+�������;��js
7%O)+2�����9^��k��;FS|F"�F���zG3��	NxIA|�a��VY���.U1fI.2R9���#ad_������)��AD����&�N%]-NB>M�9B)��%�'$yM��%06++j$ r1Lh5Zy*��Hdz^�Uc�PD\|����eH/GG
?d{6AiI4��f���v^Yq����
;G���aFus._�)b�S@6xad@k*PE
X�A���L8�����1';@�*���2sg��e�;�t��bi�YAi��.*o��N�F�$�	���������)rU��^�s0����FB[�0�Ppj��3h��+���N���H%>+
������p_O�����a���1+Z(oV���g{^
7)>/ kEPxvU4�Un���k�"3k�HA�lNcA\rmaG������������0*������[E.m�~/?z$=8�zO�LEqj<�Q%����,s�<j4�����lx�w`Q�GE��
v��&��bTh8awodH���e/zw�{�a����f"�	���B��;�"�LC�F������L;c.`U
e�~�y��p��zlcGCvBsD$#)H#3)Q�4�(\*!� La}����~=4o}n
������y)H�;:+ RYNpu�����!jdG<x��_2��!�Y;I9�
"\:4qFJ
N\&^'LeT:(9+j7LcYaI��00e!!�oR�x�i	ax�YT_ HWJt����Ku*>p��Z�y9����,~L���af{�g��ex�V�X��%�IG
r6 j3I����\�}>5)zJ�I�;���"�f������i&vb��x���zp��hjL8QF!(9Uu <BSp>P&f]cz���$q�|{8�9��CO@f_��<A5kK2B^p8GO���{��(n� tX 
xT,/_Ged?g���f����Q
���*�J�5q���:Z+����U2E?u���4�G������M�VOH�|��1���&�fi*���
��v�Y"N8Nt��ESJ&QZ���{3���
7WKB.�n1s�{{~���A�*>Z) 
.L-�7=z6~�*�����xu2r��4��Z���IQtpt����Z,�d����W[y~�w�biWsb����*
4qP?m�R����#H!Li�H.~�+�&kD
���&f{WUr2
M{'I^&;g��8�7~5�)��$a�'�U�5v������/|3��������^�r]-�(e$Msr�B
^�QsVeQ�<?:������ZNVW�7�)K3-`hH
�#�F�/m/_n��k��E���hU
Y2�'2[,`���@MU`@����@sB�7)��o*ZU\��xx��'6LFnxbY=n��G^f������m^�a�����VUgp���(0�Uzy	�S6
�Z�V4P{��|���������^A���86���	z�xZ0EBBHxYZ$B=	W�4��H�Z;:";���6.[_S�w6j��%o,D����
j�au�m\�����lC|N�����E9h�H�jm>f]u
B�����q51Z(mXWN�x7DTG	=3eIO()��8�!k��������]]�(��I���YV{|G����tb�ufv�C	(#xD�
��������:dNAxV,A��/6s�Z�v���P{C��������������J�k*Wy�k��[�5��<t�,�[*&+7��W+P��������+{(*]B���#d
h��
�J(RB!Q=9I�Jh�Q}MSu%w�jX��������0}|�rqK��<��a{�R}���|�������C|iX��J�A�0�����81����������]kp-UqoiwvtT����]yt\q/�5e�8w��]�t������.����AT$ ���X���|�������^Q���)���-�Q\P(���w ����$L���������l;��MVs~>���9�:���X�
m5�p�?F'srP#5 g��[�<KQ2�Io�(h1o��H��G`S�G�$(b
;�c!3�$^�t
ub2dB��������Q���q4b����� ,�C'*!<7�)U'?uGH�2���BID(�m'V��\@f�M|��q?��2�&N`<F�^��	�(u���?�E8��X=JAX�D�^;�t)TzP=�������b%�.
�U)xE3�8 y�hDUQ���.����[``$8������U����lhQ~N�]9#���$|=:K)��w��{yx��r����Uq�M|4�;I@��r�
�tWLr=+(� ~��M����Q���2b]�i�E;\��j��j~-6a5t_y0k���X1d�[yx;B���a8C�g�����jk����5O�������� []1;LB{��'GI�=,:	+0Qw��*
ko���,�GD#g{�EU�(8K��o��RR/��vv��wY���SBck3y}Q48Q-:c/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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>qK�I��>��qG���xf/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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"DH��0��]�SG��._/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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
����38��D�h�O2���a/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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""..--,-.."---,--,."--...-.-
�B��7:N
һ���_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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   �����}8�(p��{c�_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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'
!!{��� A޺5I<�){_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/distr/slice.rs� .�"��n�{�Sř#ɩ�)�2ECAA$; ;OOO*;<4,5#+'"(@E",6A2O78HE:04E*$7KL1I$KQ
$0d<?7/YNI@A"7I&5

)O!S�˵�L��xd�Fs�$Yg/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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;;��E�,�����=�-e/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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,��n�=�3�e0��g/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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/
=�.�A��E�+��a/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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-,10^k]ҳ��XIl��z}�q/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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~�������)�-v����W/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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4������`��[�b/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/rngs/reseeding.rs� ����hZH�x��%e�H�2/ECAA$;0@LNG(@JMHOQ/QQH:M-PG@O2OF<"U30J5-'C#$#OQNN:!)>:FR0/$$0 .+/L92@ 6#+1:*KM66
75&%#&?@NM:K,15+"6;6 W37(2
E&/+0'-'@
8@
  !EQ(G0$$(("
& !L(*
%1YI�>kj��+�
�]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/rngs/mock.rs� �r;��7|��Ж̕u���P2ECAA$!!%6KJ%OP2ME:#),#'?HJ<7
$$./.��������b���o��^/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/rngs/small.rs� (�����։w
^11Ӭ��"x2ECAA$'F:$:7QK-T>,M&JPFIO"Q"8!)!$+!OK3.!Q)M6EJJJ$2:gE' <-eFO7'+,$$0 �,�]_J�FG)��!#\/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/rngs/mod.rs� �u�,��6Vd��6��$n2ECAA$*H?VUPFRK8QS;LCOGNBL=JKKIFO:N72 L6DAEMCJ $(0::4<@+')!O8B@	!��Y��}P%����~-+�k/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/rngs/xoshiro256plusplus.rs� �z�%�+�@Th^�G�(�2ECAA$+"'%,O;KO)'? *P$9 *JR++
(=7/- -BB
RL%!&$H#$%&!    //'
#+6cI;!!""""+
.D[<QJ!!! ! ""!!+7
�/�%1��|�����&\/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/rngs/std.rs� �������'k�2�!|2ECAA$2&2%1KK-FMLO3QNCQNQI-%=-2QNM6EJQJx8A'$$/<-%
'$N%>9C0"4"&.&��`��*;��*_/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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 
"-NALjXR�.S�R�	�`��DE`/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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;�������
q٩�*v��U�w<]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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
 $*:�iPx+�'[N�<��e۴e�]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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�갱�E�ĭ��\H��W/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/lib.rs� ,�Um���6���o�1��K�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�aVm5>f�$p�ǧ�f/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/distr/weighted/mod.rs� z���R_�)�2���>7�s2ECAA$FQL_'$=MP&B"K-#%%
$22!$KG
=H-MITCON:5$;"S]G@S�{��:,��B����j/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/seq/increasing_uniform.rs� �xh�u���^�&���l7ECAA$'J2V(J)@8:
9,",!7\@=C[;B>9+<4@D6 O8)"5
Q.*!BJ1)
)DK
�w<�_�q>�����]/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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�>�@a����a	�y0/y,�[/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/prelude.rs� ^��HH�7�����	#2ECAA$,MP6$ T���3�P�����\�[/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/src/seq/mod.rs� S�d7�Y�3��A��P7ECAA$#HS,2HN!NL,6" ?'H6O)3Z

"3/L"
�ьb�ϓg�6hi�od/home/palash/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.2/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
+ݗb��ͻ���Yx��=
?
�@
�B
�D
�F
%I
iJ
�L
Q
�R
�U
Y
@\
^
�^
`
a
Rb
gc
�d
,h
�k
!o
q
4r
Gs
�t
yu
av
x86_64-unknown-linux-gnu�:�g��C�hq�8��b��-59582f3ce6014701����,7���)@�
�*�Y����������������M��$�$��M��%���N��N��N����/����=�=���-��/��/��/��N��/��/���.���������/���������N���.���/���/��/�)���/��/�
���� ���-�������Ԕrust-end-file